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

29 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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: false``searchShow: 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` 已直接返回完整 `CargoTypeVO`id/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 不在拦截名单)。