aae0c03dd8
- image.ts 中 getCompressedImageUrl 增加缓存,避免列表重渲染时重复计算压缩 URL - shopGoods 页面用原生 img 标签替换 antdv a-image,支持浏览器懒加载减少首屏网络压力 - shopGoods 页面数据加载流程优化,取消表格自动首屏加载,改为手动触发,合并请求避免重复调用 - 首屏分类数据延迟加载,不阻塞首屏渲染,提升页面响应速度 - search.vue 中用 onMounted 替代 watch immediate,防止首次入场重复触发请求 - 新增商品封面图样式,保证图片大小固定且样式统一
3.1 KiB
3.1 KiB
2026-08-06 工作日志
运费模板「不发货地区」需求分析
- 客户需求:运费模板要支持"排除地区/不发货地区"(黑名单模式),而非仅"指定配送"(白名单)。
- 现状问题:当前
ShopExpressTemplateDetail仅provinceId+cityId单值,级联选择器只能选 1 个省市,无排除逻辑。截图里的双栏 Transfer modal 前端代码库里不存在,需从零开发。 - 产出接口方案文档:
docs/运费模板-不发货地区-接口方案.md,含表字段变更(region_mode/region_ids)、下单校验逻辑、6 个待后端确认问题。 - 后端在 mp-java 的 shop 模块(前端走 MODULES_API_URL)。用户下一步:先与后端对齐接口方案,再做前端改造。
- 地区 ID 为行政区划编码字符串(省110000/市110100/区110101),下单时可前缀匹配。
- 存储方案确认:region_ids 采用逗号分隔单字段(VARCHAR(2000)),不新建关联表。理由:查询方向固定为"模板→明细"、排除地区少、改动最小可快速上线。已写入方案文档。
- 用户确认"分两步"策略:第1步接口方案已产出(docs/运费模板-不发货地区-接口方案.md),待后端回复 6 个确认问题后做第2步前端改造。
后端实现检查(用户要求检查 guilixu-java 是否实现完)
- guilixu-java 已实现完整:entity 加 regionMode/regionIds、param 加查询字段、迁移 SQL(ALTER+历史数据迁移+索引+回滚)、DeliveryRegionChecker(黑名单命中抛"暂不配送")、RegionCodeResolver(名称→编码)、OrderBusinessService 第 662/668 行已接入校验。
- 用户纠正(18:09): guilixu-admin 的商城接口实际调
https://shop-api.websoft.top(= guilixu-java),不是 mp-java。前端 shopExpressTemplateDetail API 用默认@/utils/request,baseURL =MODULES_API_URL=localStorage ApiUrl || VITE_API_URL;该部署的 ApiUrl 配的就是 shop-api.websoft.top/api,即 guilixu-java 才是生效后端。 - 结论反转:guilixu-java 这套实现正确且生效,不是死代码,后端已完整,无需改 mp-java。 mp-java 与此功能无关(本部署 商城不走 mp-java)。
- 后端
region/regions-data.json用 v/l/c 精简格式(与 RegionCodeResolver 读取一致),无字段名 bug。 - 后端完成度:entity/param/SQL/DeliveryRegionChecker/RegionCodeResolver/下单接入(OrderBusinessService 第 87 行调用 validateDeliveryRegionIfNeeded)全齐。
- 剩余工作 = 纯前端(guilixu-admin):① model 加 regionMode/regionIds;② 新建双栏多选地区组件(替换单路径级联
RegionsSelect,支持"全国/指定配送/指定不发货"模式切换+多选多省);③ 编辑表单加模式切换+多选;④ 列表回显模式与地区汇总。截图里的 Transfer Modal 前端尚不存在。 - 教训:判断"改了哪个后端才生效"要以**运行时的 ApiUrl(localStorage/localStorage 配置的 ApiUrl,本部署=guilixu-java)**为准,不能默认
MODULES_API_URL=mp-java。guilixu-admin 的 商城走 guilixu-java。