From 90d96e01a414fcfa1fd9439bc6a607dae34754cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Wed, 29 Jul 2026 12:20:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(cargo-type):=20=E4=BF=AE=E5=A4=8D=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E7=BC=96=E8=BE=91=E5=BC=B9=E7=AA=97=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 beforeOpen 中 view/edit 分支的 getDetail 调用,避免请求失败卡死弹窗 - 直接复用已填充的 this.form,提升弹窗打开性能和稳定性 - 调整菜单宽度由 220 改为 160,优化界面布局 - 更新导出逻辑,去除导出时对 ids 的拼接,统一按搜索条件导出 - 隐藏 Avue 内置“新增”按钮,仅保留自定义菜单中新增按钮 --- .workbuddy/memory/2026-07-29.md | 6 ++++++ src/option/base/cargo-type.js | 2 +- src/views/base/cargo-type.vue | 11 ++++------- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.workbuddy/memory/2026-07-29.md b/.workbuddy/memory/2026-07-29.md index 4e80ead..65f7dd2 100644 --- a/.workbuddy/memory/2026-07-29.md +++ b/.workbuddy/memory/2026-07-29.md @@ -20,3 +20,9 @@ ## 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` 的 import(api 文件中的导出保留勿删)。 +- **副作用消除**:查看/编辑不再发 detail 请求,彻底规避该接口失败导致的卡死与报错。若后续确需"打开时拉最新数据",需先排查后端 `/blade-system/cargo-type/detail` 为何报错(网关默认只拦 actuator/health,detail 不在拦截名单)。 diff --git a/src/option/base/cargo-type.js b/src/option/base/cargo-type.js index 8fae2a5..60e4056 100644 --- a/src/option/base/cargo-type.js +++ b/src/option/base/cargo-type.js @@ -47,7 +47,7 @@ export const getCargoTypeOption = ctx => ({ editBtn: false, selection: true, dialogClickModal: false, - menuWidth: 220, + menuWidth: 160, column: [ { label: '类型', diff --git a/src/views/base/cargo-type.vue b/src/views/base/cargo-type.vue index 904a566..0441270 100644 --- a/src/views/base/cargo-type.vue +++ b/src/views/base/cargo-type.vue @@ -131,7 +131,6 @@