- 删除 beforeOpen 中 view/edit 分支的 getDetail 调用,避免请求失败卡死弹窗 - 直接复用已填充的 this.form,提升弹窗打开性能和稳定性 - 调整菜单宽度由 220 改为 160,优化界面布局 - 更新导出逻辑,去除导出时对 ids 的拼接,统一按搜索条件导出 - 隐藏 Avue 内置“新增”按钮,仅保留自定义菜单中新增按钮
3.2 KiB
3.2 KiB
2026-07-29 工作日志
cargo-type 顶部按钮区优化
- 文件:
src/views/base/cargo-type.vue+src/option/base/cargo-type.js - 改动:
- 新增按钮文字
添加分类→新增(与截图一致) - 为 4 个按钮补齐 Element Plus 图标:批量导入(Upload)、下载模板(Download)、批量导出(Download)、批量删除(Delete),均带
el-icon--left - 图标导入注册:
import { Plus, Upload, Download, Delete }(移除不再需要的 Search),components 同步注册 - 补充规范样式:
: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的 import(api 文件中的导出保留勿删)。 - 副作用消除:查看/编辑不再发 detail 请求,彻底规避该接口失败导致的卡死与报错。若后续确需"打开时拉最新数据",需先排查后端
/blade-system/cargo-type/detail为何报错(网关默认只拦 actuator/health,detail 不在拦截名单)。