fix(expressTemplate): 修正运费模板计费方式类型及删除报错
- 将运费模板和详情模型中的计费方式 type 从 string 改为 boolean 类型 - 修改相关页面中计费方式显示及选择控件为布尔值 true/false 表示按件/按重量 - 统一删除操作使用后端返回的主键 id 替代废弃的 shopExpressTemplateId - 修复删除运费模板时报错“参数格式错误: id 的值 'undefined' 无法转换为 Integer” - ele-modal 关闭按钮定位修复,兼容最大化按钮时的偏移问题 - 小程序端 checkout 运费模板接入,支持动态计算显示运费费用 - 优化编辑表单中首件/续件数量或重量的动态标签和占位提示逻辑
This commit is contained in:
@@ -21,3 +21,38 @@
|
||||
- **search.vue**: 修正类型导入、添加搜索输入框、添加批量删除按钮(disabled 联动 selection)
|
||||
- **Detail Edit**: templateId 改为下拉选择(从 listShopExpressTemplate 加载选项)
|
||||
- 修复 rules 类型错误(reactive<Record<string, any>>)
|
||||
|
||||
### Bug 修复
|
||||
- **JSON 反序列化错误**: 后端 type 字段为 Java Boolean,前端 radio 值从字符串 "0"/"1" 改为 true/false,Model 中 type 类型从 string 改为 boolean
|
||||
- **ele-modal X按钮错位**: component.less 添加 ele-modal 关闭按钮定位修复,有最大化按钮时右移 56px
|
||||
- **shopExpressTemplate/index.vue**: selection 绑定从 `:selection` 修正为 `v-model:selection`
|
||||
|
||||
## 小程序端运费模板接入(guilixu-taro checkout)
|
||||
|
||||
### 现状分析
|
||||
- checkout.tsx 运费硬编码"免运费",零处 import shopExpressTemplate API
|
||||
- ShopGoods 模型中有 expressTemplateId 字段,运费模板与商品关联
|
||||
- ShopExpressTemplate 有 firstNum/firstAmount/extraNum/extraAmount 定价字段
|
||||
- 地址模型只有 province/city 字符串名,无数字 ID,地区匹配暂不可行
|
||||
|
||||
### 实现方案
|
||||
采用主模板定价方案(不依赖地区匹配):
|
||||
- 创建 src/utils/expressFee.ts:computeExpressFee() 工具函数
|
||||
- 按模板分组、合并同模板商品数量、应用计费公式
|
||||
- fee = firstAmount + extraAmount * ceil(max(0, Q - firstNum) / extraNum)
|
||||
- 修改 checkout.tsx:添加 expressFee 状态 + useEffect 自动计算 + 动态显示运费 + 纳入总价
|
||||
|
||||
### 注意事项
|
||||
- 购物车 items 不包含 product 嵌套对象,cart checkout 时 expressTemplateId 为 undefined,运费显示为 0(免运费)
|
||||
- buyNow 流程 items 包含 product 数据,运费计算正常工作
|
||||
- 后端创建订单时会独立计算运费,前端仅用于展示预览
|
||||
|
||||
## 修复 shopExpressTemplate 删除报错
|
||||
|
||||
- 问题:删除运费模板时报错 "参数格式错误: id 的值 'undefined' 无法转换为 Integer"
|
||||
- 根因:后端返回的主键字段是 `id`,但前端代码用了 `row.shopExpressTemplateId`(Model 中定义了两个字段,实际后端只返回 `id`)
|
||||
- 修复文件:
|
||||
- `src/views/shop/shopExpressTemplate/index.vue`:`row-key`、删除、批量删除均改为用 `row.id`
|
||||
- `src/views/shop/shopExpressTemplateDetail/index.vue`:同上
|
||||
- `src/views/shop/shopExpressTemplateDetail/components/shopExpressTemplateDetailEdit.vue`:下拉选择器 `field-names` 的 `value` 改为 `'id'`
|
||||
- 注意:该模块 Model 中 `shopExpressTemplateId` 和 `id` 并存,建议后续清理废弃字段
|
||||
|
||||
Reference in New Issue
Block a user