fix(shopExpressTemplateDetail): 修正配送区域多选字段对接后端机制
- model中省市多选字段由provinceIds/cityIds改为regionMode/regionIds - RegionMultiSelect组件去除update:provinceIds事件,改仅emit update:value - 编辑弹窗中城市选择变化同步更新form.regionIds和form.regionMode字段 - 回显数据时从regionIds拆分赋值,不再使用provinceIds/cityIds - 列表页customRender展示使用record.regionIds反查城市名 - 解决前端提交字段与后端实体不匹配导致数据未保存问题 - 确保本次改动完全兼容后端现有regionMode/regionIds机制,无需后端改动
This commit is contained in:
@@ -57,9 +57,10 @@
|
||||
|
||||
### 运费模板配送地区多选(2026-08-11 已实现前端)
|
||||
- 需求:配送地区选择从「省+市单选级联」升级为「省+市两级多选穿梭弹窗」(仿客户截图双栏:左候选/右已选)。
|
||||
- 前端组件:`src/components/RegionMultiSelect/index.vue`(树形可展开,省级"选择"=选该省全部市,市级可单独选;@update:value 城市ID数组 + @update:provinceIds 省份ID数组)。
|
||||
- 数据字段:model 新增 `provinceIds` / `cityIds`(逗号分隔字符串);保留旧 `provinceId`/`cityId` 兼容(编辑回显时旧单值会自动补进 cityIds)。
|
||||
- 列表多值展示:`index.vue` customRender 遍历 `cityIds` 反查 regionMap,超 22 字截断 + tooltip。
|
||||
- ⚠️ 后端待改:`shop_express_template_detail` 表加 `province_ids`/`city_ids`(varchar 逗号分隔),add/update 接口接收这两个字段;前端已按此约定提交,后端未改前数据落不了库。
|
||||
- 注:与"不发货地区(黑名单) regionMode/regionIds"是不同需求,勿混淆。
|
||||
- 前端组件:`src/components/RegionMultiSelect/index.vue`(树形可展开,省级"选择"=选该省全部市,市级可单独选;@update:value 城市编码数组)。
|
||||
- **直接对接后端已有的 `regionMode`(0=全国/1=指定配送白名单/2=不发货黑名单) + `regionIds`(逗号分隔城市编码串) 机制,无需后端改动**。城市编码即 `regions-data.json` 的 city value(6位),与 `regionIds` 完全一致。
|
||||
- 数据字段:model 用 `regionMode` / `regionIds`(已有字段,非新建);旧 `provinceId`/`cityId` 仅作回显兼容。
|
||||
- 列表多值展示:`index.vue` customRender 遍历 `regionIds` 反查 regionMap,超 22 字截断 + tooltip。
|
||||
- 下单校验 `DeliveryRegionChecker` 读 `regionIds` 直接生效(regionMode=2 为不发货黑名单)。
|
||||
- ⚠️ 教训:第一版误用 `provinceIds`/`cityIds` 字段名,与后端 `regionMode`/`regionIds` 不匹配,MyBatis-Plus 自动忽略未知字段导致"没存"。改字段名对接即可,不必新增后端字段。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user