From 4edaa8486d06106dda1dc69ca4fc319daedab83c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Fri, 21 Aug 2026 18:04:59 +0800 Subject: [PATCH 1/5] =?UTF-8?q?style(settlement):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E5=88=97=E5=B1=85=E4=B8=AD=E5=8F=8A=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E5=8F=B7=E5=88=97=E5=9B=BA=E5=AE=9A=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=AE=A1=E6=89=B9=E7=8A=B6=E6=80=81=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - payable-detail 单据号列新增固定左侧配置,保障滚动时可见 - receivable-payable-detail 组件表格动态列透传 fixed 属性 - project-apply 列表所有列单元格及表头居中显示,审批状态列改为纯文字 - 全站表格列(含操作列按钮)全局居中,样式统一覆盖 el-table 组件 - 修复 AVUE 依赖表单 label 冒号默认显示,pnpm patch 修改 es 与 lib 版本同步 - 解决 Vite optimizeDeps 缓存问题,patch 依赖后需删除 vite 缓存并重启 dev server - railway-station 弹窗表单全局 labelSuffix 设为空,去除 label 后冒号 --- .workbuddy/memory/2026-08-21.md | 54 +++++++++++++++++++ patches/@smallwei__avue.patch | 23 ++++++++ pnpm-lock.yaml | 9 +++- pnpm-workspace.yaml | 2 + .../settlement/receivable-payable-detail.js | 2 +- src/styles/element-ui.scss | 10 +++- src/views/base/railway-station.vue | 1 + src/views/business/project-apply.vue | 30 +++-------- .../settlement/receivable-payable-detail.vue | 1 + 9 files changed, 104 insertions(+), 28 deletions(-) create mode 100644 patches/@smallwei__avue.patch create mode 100644 pnpm-workspace.yaml diff --git a/.workbuddy/memory/2026-08-21.md b/.workbuddy/memory/2026-08-21.md index 27eec74..d685666 100644 --- a/.workbuddy/memory/2026-08-21.md +++ b/.workbuddy/memory/2026-08-21.md @@ -190,3 +190,57 @@ ## ⚠️ option.labelWidth 必须放在 createCrudOption 展开之后 - 第一次给 transport-plan.js、waybill-manage.js 加 `labelWidth: 100` 时写在 `...createCrudOption(...)` **之前**,被 createCrudOption 自带 `labelWidth: 'auto'` 覆盖,label 仍是 auto(按内容参差,看着像"150 不统一")。shipping-template 当时写在 createCrudOption 之后才生效。 - 教训:业务 option 文件顶层 `export const option = { labelWidth: 100, ...createCrudOption([...]) }` 写法**无效**,必须 `export const option = { ...createCrudOption([...]), labelWidth: 100, dialogWidth, ... }` 后写覆盖前写。 + +## payable-detail 主表格单据号列固定左侧 +- 需求:`/settlement/payable-detail` 主表格除序号外,「单据号」列也固定左侧(横向滚动时始终可见)。 +- 改动(2 处): + 1. `src/option/settlement/receivable-payable-detail.js`:`documentNo` 列加 `fixed: 'left'`。 + 2. `src/views/settlement/receivable-payable-detail.vue`:主表格 v-for 动态列加 `:fixed="column.fixed"`(模板需显式透传才生效)。 +- 注意:payable-detail 与 receivable-detail 共用同一组件,应收明细页同步生效(两侧一致)。左侧固定区 = 选择框52 + 序号64 + 单据号180。 + +## project-apply 列表列全部居中 +- 需求:`/business/project-apply` avue-crud 列表所有列居中看效果。 +- 改动(单文件 `src/views/business/project-apply.vue` `buildTableOption()`):column map 展开时加 `align:'center'` + `headerAlign:'center'`。avue 中 align 只管单元格内容,表头需 headerAlign 单独设。 +- 弹窗内子表格(客户/承运商/材料/变更记录/选人)本就 align="center",无需动。Vite 2889 已 HMR。 + +## project-apply 审批状态列改纯文字 +- 需求:审批状态列从 el-tag 改为纯文字。 +- 改动(单文件 `src/views/business/project-apply.vue`):`#approvalStatus` 插槽去掉 `` 包裹,直接输出 `displayStatus(row,'approvalStatus')`;删除已无引用的 `statusTagType()` 方法。Vite 2889 编译 200。 + +## 全站表格列居中(含操作列) +- 需求:project-apply 居中效果被确认后,要求操作列按钮也居中,并应用到全站表格。 +- 改动(`src/styles/element-ui.scss`,2 处全局规则): + 1. `.avue-crud .avue-crud__menu.avue-crud__menu`:`justify-content: start` → `center`,`text-align: left` → `center`(Avue 操作列按钮居中,含下拉更多按钮)。 + 2. 表头背景规则后新增全站规则:`.el-table th.el-table__cell .cell, .el-table td.el-table__cell .cell { text-align: center }`(所有 el-table 表头+单元格内容居中,命中固定列;.cell 直接设置覆盖 el-table-column align 的继承值)。 +- project-apply.vue 页面级 `align:'center'` 保留(双保险,无害);手写表格操作列 `.cell:has(> .el-link)` 本就 `justify-content:center`。 +- 注意:全站居中会覆盖个别页面金额列 `align: right` 等显式右对齐,后续若某页要右对齐需页面级更高特异性覆盖。 + +## ⚠️ Vite optimizeDeps 缓存坑(patch node_modules 后必须重启 dev server) +- 修改 `node_modules/@smallwei/avue/lib/...` 这种深度依赖后,HMR **不会重新打包**:Vite 首次启动时已把整个 Avue ES module 预打包到 `node_modules/.vite/deps/@smallwei_avue.js`,缓存的 chunk 持续被 dev server 返回,导致代码修改"看起来没生效"。 +- 解法(任选其一): + 1. 重启 dev server(Vite 会重新 optimizeDeps)。 + 2. 手动删 `node_modules/.vite/deps/@smallwei_avue.js` + `_metadata.json`,再让 server 收到请求时触发重新打包(最干净,连同 `_metadata.json` 一起删,否则 fileHash 缓存会让它误以为已最新)。 +- 经验:以后再 patch 任何被 Vite optimizeDeps 预打包的依赖(如 element-plus / avue / wangeditor 等),都要重启 server 才能生效。 + +## 全站弹窗/表单 label 去掉冒号(pnpm patch 修复 Avue 默认值) +- 需求:全站所有 el-form / avue-form 的字段 label(车站名称:、所属省份: 等)后冒号要去掉。 +- 关键事实(重要,避免重复踩坑): + - Element Plus 的 label-suffix 不是用 `::after` 渲染,而是把后缀直接拼接到 label 文本节点: + ```js + // node_modules/element-plus/es/components/form/src/form-item.vue...mjs:115 + const currentLabel = computed(() => `${props.label || ""}${formContext?.labelSuffix || ""}`); + ``` + - EP el-form 的 labelSuffix prop 默认 `''`(空),不产生冒号;冒号来自 Avue。 + - Avue 默认 `labelSuffix: ":"`,逻辑 `this.tableOption.labelSuffix || ":"`(空串 falsy 回落 `":"`),透传给 el-form 的 `label-suffix` prop。 + - **踩坑**:Avue package.json 有 `"module": "es/index.mjs"` 和 `"main": "lib/index.js"`。Vite 用 ES 模块版(`es/`),不是 CommonJS 版(`lib/`)。**pnpm patch 必须同时覆盖 `es/` 和 `lib/` 两个文件**,否则 Vite 加载的 `es/` 版本未被 patch,冒号照旧! + - 另一个坑:Vite 把 Avue 预打包到 `node_modules/.vite/deps/@smallwei_avue.js`。patch 后必须删整个 `.vite` 目录 + 重启 dev server,否则预打包缓存仍是旧代码。 +- 实施(pnpm patch + 手动补 es/ 版本): + 1. `pnpm patch @smallwei/avue` → 临时目录,编辑 `lib/.../index2.js`。 + 2. `pnpm patch-commit <临时目录>` → 生成 `patches/@smallwei__avue.patch`(仅含 lib/ 改动)。 + 3. **手动更新 patch 文件**:追加 `es/packages/element-plus/form/index2.mjs` 的 diff(同样 `|| ":"` → `|| ""`)。 + 4. **手动编辑 node_modules** 中 `es/.../index2.mjs`(pnpm patch 只生成了 lib/ 的改动,es/ 版本需手动改)。 + 5. 删 `node_modules/.vite` 整个目录 → 重启 `pnpm dev` → Vite 重新预打包(含 es/ patch)→ 浏览器强刷。 +- patch 文件:`patches/@smallwei__avue.patch`(含 es/ + lib/ 两处 diff)。 +- pnpm 配置:`pnpm-workspace.yaml` 内 `patchedDependencies: { '@smallwei/avue': patches/@smallwei__avue.patch }`。 +- ⚠️ 提交时务必带上:`patches/`、`pnpm-workspace.yaml`、`pnpm-lock.yaml`,缺一不可。 +- ⚠️ `pnpm install` 会从 patch 文件重新应用补丁——如果 patch 文件没有 es/ 的 diff,es/ 版本会被还原为原始代码(冒号回来)。已手动补上 es/ diff 到 patch 文件。 diff --git a/patches/@smallwei__avue.patch b/patches/@smallwei__avue.patch new file mode 100644 index 0000000..b9b3b71 --- /dev/null +++ b/patches/@smallwei__avue.patch @@ -0,0 +1,23 @@ +diff --git a/es/packages/element-plus/form/index2.mjs b/es/packages/element-plus/form/index2.mjs +--- a/es/packages/element-plus/form/index2.mjs ++++ b/es/packages/element-plus/form/index2.mjs +@@ -100,7 +100,7 @@ + }, + labelSuffix() { +- return this.tableOption.labelSuffix || ":"; ++ return this.tableOption.labelSuffix || ""; + }, + isMenu() { + return this.columnOption.length != 1; +diff --git a/lib/packages/element-plus/form/index2.js b/lib/packages/element-plus/form/index2.js +--- a/lib/packages/element-plus/form/index2.js ++++ b/lib/packages/element-plus/form/index2.js +@@ -103,7 +103,7 @@ var script = src_core_create.default({ + ); + }, + labelSuffix() { +- return this.tableOption.labelSuffix || ":"; ++ return this.tableOption.labelSuffix || ""; + }, + isMenu() { + return this.columnOption.length != 1; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f4b0f4..caaa0d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + '@smallwei/avue': + hash: 4a6fd67ef4dfb390dba7eddaec02dd278bc066e4a5f65f93535b640498907d58 + path: patches/@smallwei__avue.patch + importers: .: @@ -28,7 +33,7 @@ importers: version: 1.7.0 '@smallwei/avue': specifier: ~3.9.2 - version: 3.9.2(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34) + version: 3.9.2(patch_hash=4a6fd67ef4dfb390dba7eddaec02dd278bc066e4a5f65f93535b640498907d58)(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34) animate.css: specifier: ^4.1.1 version: 4.1.1 @@ -2636,7 +2641,7 @@ snapshots: countup.js: 2.10.0 signature_pad: 5.1.3 - '@smallwei/avue@3.9.2(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34)': + '@smallwei/avue@3.9.2(patch_hash=4a6fd67ef4dfb390dba7eddaec02dd278bc066e4a5f65f93535b640498907d58)(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34)': dependencies: '@element-plus/icons-vue': 2.3.2(vue@3.5.34) axios: 0.21.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..e70d7f0 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +patchedDependencies: + '@smallwei/avue': patches/@smallwei__avue.patch diff --git a/src/option/settlement/receivable-payable-detail.js b/src/option/settlement/receivable-payable-detail.js index 7167c53..30b8557 100644 --- a/src/option/settlement/receivable-payable-detail.js +++ b/src/option/settlement/receivable-payable-detail.js @@ -27,7 +27,7 @@ export const searchFields = [ ]; export const tableColumns = [ - { label: '单据号', prop: 'documentNo', minWidth: 180, link: true }, + { label: '单据号', prop: 'documentNo', minWidth: 180, link: true, fixed: 'left' }, { label: '项目名称', prop: 'projectName', minWidth: 120 }, { label: '所属组织', prop: 'deptName', minWidth: 120 }, { label: '费用日期', prop: 'feeDate', minWidth: 120 }, diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index 562aae4..bbdb99f 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -651,6 +651,12 @@ background-color: #fafafa !important; } +// 全站统一:表格列内容(表头 + 单元格)居中展示 +.el-table th.el-table__cell .cell, +.el-table td.el-table__cell .cell { + text-align: center; +} + // 统一 avue-crud 偶数行背景色 .avue-crud .el-table__body-wrapper tr.el-table__row:nth-child(even) td.el-table__cell, .avue-crud .el-table__body-wrapper tr.el-table__row:nth-child(even) td.el-table-fixed-column--left, @@ -866,9 +872,9 @@ flex-wrap: wrap; gap: 8px; align-items: center; - justify-content: start; + justify-content: center; width: 100% !important; - text-align: left; + text-align: center; } // 全站统一:手写表格操作列中的文字链接保持间距并支持自动换行 diff --git a/src/views/base/railway-station.vue b/src/views/base/railway-station.vue index 4dc8249..428acce 100644 --- a/src/views/base/railway-station.vue +++ b/src/views/base/railway-station.vue @@ -205,6 +205,7 @@ export default { dialogCustomClass: 'railway-station-edit-dialog', labelPosition: 'right', labelWidth: '140px', + labelSuffix: '', tip: false, searchShow: true, searchMenuSpan: 24, diff --git a/src/views/business/project-apply.vue b/src/views/business/project-apply.vue index 246e5bb..902040b 100644 --- a/src/views/business/project-apply.vue +++ b/src/views/business/project-apply.vue @@ -55,9 +55,7 @@ @@ -2207,7 +2207,7 @@ - + @@ -2237,7 +2237,7 @@ - + 添加 @@ -2858,7 +2858,7 @@ v-if="waybillIsRoadTransport(detailRow) && !waybillIsCarrier(detailRow)" class="business-crud-page__waybill-detail-field" > - 里程(km){{ detailRow.mileage || '-' }} + 里程(km){{ detailRow.mileage || '-' }}
- +

{{ segmentNumber(route, index) }}{{ route.departureName || '-' }} → {{ route.arrivalName || '-' }}{{ segmentTransportType(route) || '-' }}已调度 {{ quantity(route.dispatchedQuantity) }} / {{ quantity(plannedQuantity(route)) }} {{ plannedUnit(route) }}

总量{{ quantity(master.totalQuantity) }}
已调度{{ quantity(route.dispatchedQuantity) }}
剩余{{ quantity(remainingQuantity(route)) }}
- +

关联计划单

@@ -30,15 +30,15 @@ - - + + - + diff --git a/src/views/business/components/master-order-dispatch.vue b/src/views/business/components/master-order-dispatch.vue index e27810e..9746010 100644 --- a/src/views/business/components/master-order-dispatch.vue +++ b/src/views/business/components/master-order-dispatch.vue @@ -159,7 +159,7 @@ - + diff --git a/src/views/business/contract-manage-change.vue b/src/views/business/contract-manage-change.vue index 6501e32..d70b607 100644 --- a/src/views/business/contract-manage-change.vue +++ b/src/views/business/contract-manage-change.vue @@ -17,8 +17,8 @@ -
- +
+ @@ -56,7 +56,7 @@ - + diff --git a/src/views/business/loading-manage.vue b/src/views/business/loading-manage.vue index 4ca1f5a..94036e3 100644 --- a/src/views/business/loading-manage.vue +++ b/src/views/business/loading-manage.vue @@ -868,7 +868,7 @@ - + -
+
{{ projectDialogTitle }}
this.applyProjectDetail(res.data.data || {})); + this.api.getDetail(id).then(res => { + const detail = res.data.data || {}; + this.applyProjectDetail({ + ...detail, + changeType: type === 'change' ? this.resolveChangeType(detail) : detail.changeType, + }); + }); }, closeProjectForm() { if (this.isProjectFormPage) { @@ -1294,34 +1304,16 @@ export default { }); }, openProjectDialog(type, row = {}) { - if (['add', 'edit'].includes(type)) { - this.$router.push({ - path: '/business/project-apply/form', - query: - type === 'edit' - ? { mode: type, id: row.id, name: `编辑${this.config.title}` } - : { mode: type, name: `新增${this.config.title}` }, - }); - return; + const query = { mode: type }; + if (['edit', 'view', 'change'].includes(type)) { + query.id = row.id; } - this.dialogType = type; - this.dialogReadonly = type === 'view'; - this.projectBox = true; - if (type === 'add' || type === 'majorSupplement') { - this.applyProjectDetail({ - ...emptyForm(), - projectType: type === 'majorSupplement' ? '重大项目' : '普通项目', - }); - this.fillDefaultUsers(); - return; - } - this.api.getDetail(row.id).then(res => { - const detail = res.data.data || {}; - this.applyProjectDetail({ - ...detail, - changeType: type === 'change' ? this.resolveChangeType(detail) : detail.changeType, - }); - }); + if (type === 'add') query.name = `新增${this.config.title}`; + else if (type === 'edit') query.name = `编辑${this.config.title}`; + else if (type === 'view') query.name = `查看${this.config.title}`; + else if (type === 'majorSupplement') query.name = '重大项目补录'; + else if (type === 'change') query.name = '项目变更'; + this.$router.push({ path: '/business/project-apply/form', query }); }, resetProjectDialog() { this.$refs.projectForm?.clearValidate(); @@ -2094,28 +2086,11 @@ export default { .project-apply-page-form { min-height: 100%; + margin-bottom: 60px; //padding: 20px 24px 92px; //background: #f5f6fa; } -.project-apply-page__title { - display: flex; - align-items: center; - margin-bottom: 16px; - color: #303133; - font-size: 18px; - font-weight: 600; - - &::before { - //width: 4px; - height: 18px; - margin-right: 8px; - //background: #409eff; - border-radius: 2px; - content: ''; - } -} - .project-apply-dialog__footer { display: flex; justify-content: flex-end; diff --git a/src/views/transportCapacity/components/vehicle-ledger.vue b/src/views/transportCapacity/components/vehicle-ledger.vue index 1e00a3a..b941435 100644 --- a/src/views/transportCapacity/components/vehicle-ledger.vue +++ b/src/views/transportCapacity/components/vehicle-ledger.vue @@ -25,11 +25,11 @@ {{ vehicleDetail.energyType || '-' }} - {{ dimensions }} - {{ + {{ dimensions }} + {{ vehicleDetail.approvedLoadKg ?? '-' }} - {{ + {{ vehicleDetail.tractionMassKg ?? '-' }} {{ diff --git a/src/views/transportCapacity/vehicle.vue b/src/views/transportCapacity/vehicle.vue index 934767d..3ef9eff 100644 --- a/src/views/transportCapacity/vehicle.vue +++ b/src/views/transportCapacity/vehicle.vue @@ -231,7 +231,7 @@ - +
@@ -263,7 +263,7 @@ - + - + - -
+ +
- - + + - - + class="credit-increase-input" + /> - -
+ +
- + - + - + - + @@ -439,17 +439,17 @@ {{ row.creditLevel }} - + - + @@ -80,7 +80,7 @@ 查看 @@ -794,12 +794,12 @@ @@ -1809,7 +1809,11 @@ export default { this.initBusinessDictionaries(); this.initScoreQuantificationOptions(); if (this.isArchivePage) { - this.openArchive(this.$route.query.id ? { id: this.$route.query.id } : null); + const readonly = this.$route.query.view === '1' || this.$route.query.view === 'true'; + this.openArchive( + this.$route.query.id ? { id: this.$route.query.id } : null, + readonly + ); } }, computed: { @@ -1827,24 +1831,10 @@ export default { return this.$route.path === '/vehicle/customer-archive/form'; }, archiveContainer() { - return this.isArchivePage ? 'div' : 'el-dialog'; + return 'div'; }, archiveContainerProps() { - if (this.isArchivePage) { - return { class: 'archive-page-form' }; - } - return { - title: this.dialogTitle, - appendToBody: true, - modelValue: this.archiveBox, - width: '92%', - top: '4vh', - modal: true, - showClose: true, - closeOnClickModal: true, - closeOnPressEscape: true, - class: 'archive-dialog', - }; + return { class: 'archive-page-form' }; }, regionCascaderProps() { return { @@ -3588,12 +3578,14 @@ export default { query: isEdit ? { id: row.id, name: '编辑客商档案' } : { name: '新增客商档案' }, }); }, + viewArchive(row) { + this.$router.push({ + path: '/vehicle/customer-archive/form', + query: { id: row.id, name: '查看客商档案', view: '1' }, + }); + }, closeArchive() { - if (this.isArchivePage) { - this.$router.push('/vehicle/customer-archive'); - return; - } - this.archiveBox = false; + this.$router.push('/vehicle/customer-archive'); }, openArchive(row, readonly = false) { this.readonly = readonly; @@ -4858,11 +4850,6 @@ export default { font-size: 14px; } -:deep(.archive-dialog .el-dialog__body) { - max-height: 72vh; - overflow: auto; -} - .archive-page-form { min-height: 100%; margin-bottom: 60px; From 21c4168867f2e1e45910ceb3cafdcd41c81f9d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Mon, 24 Aug 2026 20:19:08 +0800 Subject: [PATCH 5/5] =?UTF-8?q?fix(business-crud-page):=20=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E5=8F=91=E8=B4=A7=E6=A8=A1=E6=9D=BF=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=20label=20=E5=AE=BD=E5=BA=A6=E5=B9=B6=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在通用详情描述和运费信息描述表中添加 label-width="140px",统一 label 列宽 - 调整收发货信息字段顺序,将联系人和联系方式置于地址之前 - 解决 span 行固定布局下 label 列宽不一致的问题 - 保证表格首行的两列 label 宽度固定,提升视觉一致性 --- .workbuddy/memory/2026-08-24.md | 4 +++- src/option/business/shipping-template.js | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.workbuddy/memory/2026-08-24.md b/.workbuddy/memory/2026-08-24.md index 680b991..ebf95c7 100644 --- a/.workbuddy/memory/2026-08-24.md +++ b/.workbuddy/memory/2026-08-24.md @@ -10,7 +10,9 @@ ## 发货模板查看弹窗 label 宽度统一 - 问题:详情弹窗各 section 的 el-descriptions 按内容自动列宽,导致「收发货信息」板块含 6 字标签(发货联系方式/收货联系方式)时 label 列比其他板块(4 字标签)更宽,视觉不一致。原 CSS `.el-descriptions__label{width:140px}` 在含 span 行的 fixed 布局下未能可靠等宽。 -- 改动:`src/views/business/components/business-crud-page.vue` 在通用详情描述(line ~3109)与运费信息两张描述表(road / 非 road)上加 `label-width="140px"`(Element Plus 原生机制,覆盖 auto 列宽与 span 行差异),使所有详情 label 列统一 140px。 +- 改动: + - `src/views/business/components/business-crud-page.vue` 在通用详情描述(line ~3109)与运费信息两张描述表(road / 非 road)上加 `label-width="140px"`。 + - `src/option/business/shipping-template.js`:将「收发货信息」字段顺序调整为联系人/联系方式在前、地址整行在后(非 span 行置于首行,让 `table-layout: fixed` 能在首行正确建立两列 label 宽度)。 - 验证:`npm run build` 通过。 ## 全站业务状态标签文字化(调度状态/审批状态) diff --git a/src/option/business/shipping-template.js b/src/option/business/shipping-template.js index ab64f94..54e1fa0 100644 --- a/src/option/business/shipping-template.js +++ b/src/option/business/shipping-template.js @@ -40,12 +40,12 @@ export const config = { { title: '收发货信息', fields: [ - ['departureAddress', '发货地址', 2], ['departureContact', '发货联系人'], ['departurePhone', '发货联系方式'], - ['arrivalAddress', '收货地址', 2], + ['departureAddress', '发货地址', 2], ['arrivalContact', '收货联系人'], ['arrivalPhone', '收货联系方式'], + ['arrivalAddress', '收货地址', 2], ], }, ],