Files
tms-erp-web/.workbuddy/memory/2026-07-29.md
赵忠林 90d96e01a4 fix(cargo-type): 修复查看编辑弹窗请求未完成问题
- 删除 beforeOpen 中 view/edit 分支的 getDetail 调用,避免请求失败卡死弹窗
- 直接复用已填充的 this.form,提升弹窗打开性能和稳定性
- 调整菜单宽度由 220 改为 160,优化界面布局
- 更新导出逻辑,去除导出时对 ids 的拼接,统一按搜索条件导出
- 隐藏 Avue 内置“新增”按钮,仅保留自定义菜单中新增按钮
2026-07-29 12:20:50 +08:00

3.2 KiB
Raw Permalink Blame History

2026-07-29 工作日志

cargo-type 顶部按钮区优化

  • 文件: src/views/base/cargo-type.vue + src/option/base/cargo-type.js
  • 改动:
    1. 新增按钮文字 添加分类新增(与截图一致)
    2. 为 4 个按钮补齐 Element Plus 图标:批量导入(Upload)、下载模板(Download)、批量导出(Download)、批量删除(Delete),均带 el-icon--left
    3. 图标导入注册:import { Plus, Upload, Download, Delete }(移除不再需要的 Searchcomponents 同步注册
    4. 补充规范样式::deep(.basic-container__card) > .el-card__body { padding: 0 }

cargo-type 按钮迁移至 menu-left + 移除紧凑搜索栏(本次)

  • 用户要求:功能按钮从自定义紧凑搜索栏迁移到 avue-crud 的 menu-left 插槽(表格工具栏右侧),同时删除自定义紧凑搜索栏,恢复 Avue 原生搜索。
  • 模板改动
    • 删除整个 .compact-search 自定义搜索栏 div含 el-select + el-input + 按钮)
    • <avue-crud> 内新增 <template #menu-left> 插槽,放置全部 5 个按钮(新增/批量导入/下载模板/批量导出/批量删除)
  • Option 改动searchShow: falsesearchShow: true,恢复 Avue 原生搜索表单(类型 radio + 货物类型编码 input
  • 清理:移除 Search 图标导入、handleCompactSearch() 方法、.compact-search 相关样式、隐藏 .avue-crud__search-btn 规则
  • 确认无需改动项:操作列(220px)、分页组件布局均符合规范

cargo-type 导出逻辑修复 + 去重新增按钮(本次)

  • 导出逻辑buildExportParams() 移除 ids 参数拼接,始终按当前搜索条件导出(不再受勾选行影响)
  • 去重新增按钮Avue 内置 addBtn 由 validData(permission, false) 改为 false,隐藏内置"新增"按钮;仅保留 menu-left 插槽中带图标的"新增"按钮

cargo-type 查看/编辑"请求未完成"修复(本次)

  • 现象:点击查看/编辑弹窗不打开,提示"请求未完成,请联系管理员"(该文案前端/后端 Java 源码均无字面匹配,疑似网关或全局异常统一包装的报错)。
  • 根因beforeOpen 中对 view/edit 调用 getDetail(this.form.id) 重新拉取详情,但 done() 仅在 .then 内调用;该请求一旦失败/超时 → done() 不执行 → 弹窗卡死 + 拦截器 toast 报错。且 getDetail 本身冗余:列表 selectCargoTypePage 已直接返回完整 CargoTypeVOid/typeLevel/parentId/parentCargoName/cargoName/cargoCode/remark 等全字段Avue 打开弹窗前已把整行填充进 this.form
  • 修复:删除 beforeOpen 中 view/edit 分支的 getDetail 调用,改为直接复用 Avue 已填充的 this.form,仅保留 ensureParentOption(this.form) + syncColumnDisplay() + done();同步移除 getDetail 的 importapi 文件中的导出保留勿删)。
  • 副作用消除:查看/编辑不再发 detail 请求,彻底规避该接口失败导致的卡死与报错。若后续确需"打开时拉最新数据",需先排查后端 /blade-system/cargo-type/detail 为何报错(网关默认只拦 actuator/healthdetail 不在拦截名单)。