diff --git a/.workbuddy/memory/2026-08-25.md b/.workbuddy/memory/2026-08-25.md
new file mode 100644
index 0000000..ddeee09
--- /dev/null
+++ b/.workbuddy/memory/2026-08-25.md
@@ -0,0 +1,40 @@
+# 2026-08-25
+
+## 全站操作列按钮居中统一
+- 根因:pre-settlement 等手写操作列用 `
` 包裹 `el-link`,而全局 `element-ui.scss` 第 904 行原选择器为 `:has(> .el-link)`(仅命中直接子元素),导致包了一层 div 的操作列未被居中规则命中,按钮靠左。
+- 修复:将 `.el-table .el-table__body .cell:not(.avue-crud__menu)` 相关的三处选择器 `:has(> .el-link)` 全部放宽为 `:has(.el-link)`(第 904 / 935 / 954 行),兼容"el-link 被 div 包裹"的手写操作列;`.avue-crud__menu`(Avue 内置操作列)原已居中不受影响。
+- 另在 `pre-settlement.vue` 的 `.pre-settlement-page__links` 补 `justify-content:center` 兜底。
+- 结论:全站所有基于 el-link 的操作列(无论是否包裹 div)统一居中,符合 AGENTS.md 操作列规范。
+
+## 全站业务状态标签改为普通文字(无颜色圆点)
+- 根因:用户反馈审批状态列显示为带彩色圆点的文字(如截图),要求改成"普通的文字不要颜色"。此前 `.status-text` 是"文字 + 彩色圆点"风格。
+- 修复:修改 `src/styles/element-ui.scss` 中 `.el-tag.status-text` 全局规则,去掉 `&::before` 圆点,并将 `color` 强制设为 `var(--el-text-color-regular)`,`font-weight:normal`,`margin:0`,背景边框保持透明。所有带 `class="status-text"` 的 `el-tag` 自动生效,无需逐页改模板。
+- 结论:全站业务状态(调度状态/运单状态/审批状态等)统一为普通文字,不再带彩色圆点。
+
+## /payment 下全部表单页板块风格统一
+- 需求:所有 /payment 表单页(invoice-receipt / invoice-application / payment-application / bill-ledger / bill-payment / receipt-claim-record / receipt-flow)统一为"页面标题无蓝标 + 每个蓝标板块用白底卡片包裹 + 板块间距 12px",参考 business/project-apply/form。
+- 实现:页面标题改用全局 `archive-page-form__title`(蓝标已注释,无竖条);各 `
标题
` 整体改为全局组件 ``(白底卡片 + 4px 主色竖条 + 卡间 12px,由 `src/styles/element-ui.scss` 全局 `.section-card` 提供);带按钮的板块(附件信息/开票内容)用 `按钮`。
+- 清理:删除各文件 scoped 中 `__title`/`__section` 相关的废弃 CSS(蓝标 ::before、板块间距、heading 等);`payment-application` 的 `.payment-form-page__section-actions`(按钮行右对齐)属有效独立样式,清理时被误删,已补回。
+- 校验:用 @vue/compiler-sfc 对 7 个文件做 template/script 编译,全部通过。
+
+## /payment 板块表单控件统一 4 列(span=6)
+- 需求:用户要求 /payment 下"板块表单控件都改成 4 列"。此前列数不一致:多数页用 `el-col :span="12"`(2 列),invoice-application 用 `:span="8"`(3 列),bill-payment / bill-ledger 是"两列各叠多个控件"的嵌套结构。
+- 实现:
+ - 直接网格(每列一个控件):payment-application、invoice-receipt、receipt-claim-record、receipt-flow 的 `:span="12"` → `:span="6"`;invoice-application 的 `:span="8"` → `:span="6"`(两处 el-row)。
+ - 嵌套网格:bill-payment、bill-ledger 拆成每个字段独立 `el-col :span="6"`(真 4 列),gutter 48→24;备注保留 `:span="24"` 整行。
+ - 媒体查询同步:`.el-col-12`/`.el-col-8` 窄屏折叠规则改成 `.el-col-6`(≤1024/1200/900/768px 折叠为整行)。
+- 结论:全 /payment 表单页板块表单控件统一为 4 列网格,备注/长文本仍整行;pre-settlement-editor「结算基本信息」此前也已改 `:span="8"`→`span="6"`。
+
+## 全站 el-tag 状态语义统一转纯文本(status-text)
+- 需求:用户要求"全站看看还有哪些地方使用 el-tag 的?都要统一改一下",保持与调度状态一致的纯文本风格。
+- 范围确认:用 AskUserQuestion 确认采用"所有状态语义"——业务状态(审批/调度/运单/匹配/认领) + 启用停用 + 工作流激活挂起/完成 + 其它状态(statusName/是否封存/否是/认证/锁状态/合同阶段) 一律转 `.status-text` 纯文本;类型标签/版本号/分类名/值类(车牌颜色、锁类型、运输方式、categoryName、code、apiKey 等) 保留 tag。
+- 改动文件(约 35 个,仅加 `class="status-text"`,不动逻辑/`:type` 绑定):
+ - 启用/停用:base(railway-station/airport-master/currency/customer-type/fee-item/port-terminal)、system/dept、transportCapacity(vehicle/driver/ship)、authority(apikey/ratelimit)
+ - 业务状态遗漏补:settlement/formal-settlement、business/temporary-credit-limit、business/contract-manage(合同阶段+审批)、payment(invoice-application/bill-payment-table/receipt-flow/receipt-claim-record/invoice-receipt/payment-application)、settlement/components/transport-reconciliation-editor(匹配结果/状态/更新结果)、transit/risk-disposal(column.tag/field.tag)
+ - 工作流/其它:flow(manager/follow 激活挂起)、work(start 激活挂起/send 完成)、transportCapacity/vehicle 认证状态、system/authlock lockStatus、tool/codesetting、resource(sms/oss) statusName、vehicle/customer-archive(审批+启用停用)、system/dict+dictbiz 及 util/demo 各 dict 页 是否封存
+- 校验:重新 grep `el-tag[^>]*:type=` 确认除 authlock lockType、vehicle-ledger plateColor 两个刻意保留的"类型标签"外,所有状态语义 el-tag 均已带 status-text。改动为纯属性添加,Vite HMR 自动生效。
+
+## 业务状态文字化后字号/行高对齐单元格
+- 根因:用户截图反馈 customer-archive 的"准入类型/审批状态/状态"列文字比其它列小/错位。`.el-tag` 默认 `font-size: var(--el-tag-font-size)`(12px)且 `height` 固定,即便 `.status-text` 去掉了背景边框,字号和盒模型仍与单元格普通文本不一致。
+- 修复:在 `src/styles/element-ui.scss` 的 `.el-tag.status-text` 全局规则追加 `font-size: inherit !important; height: auto !important; vertical-align: baseline; line-height: inherit;`,强制继承父级字号与行高,高度随内容自适应,基线对齐与普通 inline 文本一致。
+- 结论:所有使用 `.status-text` 的状态列(customer-archive 准入类型/审批状态/状态、transport-plan 调度状态、waybill 运单状态、payment 审批状态、启用停用等)自动与相邻普通文字列的字体字号/行高/基线完全统一,无需逐页修改。
diff --git a/.workbuddy/memory/MEMORY.md b/.workbuddy/memory/MEMORY.md
index 3205c80..5764dfc 100644
--- a/.workbuddy/memory/MEMORY.md
+++ b/.workbuddy/memory/MEMORY.md
@@ -40,11 +40,11 @@
- 已覆盖:pre-settlement-editor「结算明细调整」弹窗(adjustDialog 列内 el-input-number/el-input 全宽)、transport-reconciliation-editor/formal-settlement-editor/settlement-adjustment-editor 同款结构。
### 业务状态标签文字化:全局 `.status-text` 工具类
-- 需求:全站"调度状态/运单状态/审批状态"等用 `el-tag` 展示的字段,统一改为"纯文字 + 颜色"(不用 tag 背景/边框)。
-- 实现:`element-ui.scss` 末尾新增 `.el-tag.status-text { background:transparent!important; border-color:transparent!important; padding:0; margin-left:8px; font-weight:500 }` + `&::before` 6px 圆点(`background:currentColor`,颜色随 el-tag 的 `:type`)。
-- 用法:业务状态 `el-tag` 加 `class="status-text"`,颜色仍由现有 `statusTagType/statusType/waybillStatusType/detailStatusType` 返回的 success/warning/danger/info/primary 决定。
-- 已覆盖:`business-crud-page.vue`(#status/#businessStatus/#approvalStatus 插槽 + 运输计划详情头 + 运单详情头 + 调度弹窗头)、`master-order.vue`/`master-order-detail.vue`/`master-order-dispatch.vue` 的 businessStatus、`loading-manage.vue` 详情弹窗、结算三处 approvalStatus、`process-config.vue` 流程状态、`credit-score-quantification.vue` 状态列。
-- 例外:`loading-manage.vue` 列表状态列本就用 `` 文字化(先例),不动;"类型标签"(transport-flow-tag、transportTypeName 等 `type="primary"`)非状态语义,保持 tag 样式。
+- 需求:全站"调度状态/运单状态/审批状态"等用 `el-tag` 展示的字段,统一改为**普通文字,不带颜色、不显示 tag 背景/边框/圆点**。
+- 实现:`element-ui.scss` 末尾 `.el-tag.status-text { background:transparent!important; border-color:transparent!important; color:var(--el-text-color-regular)!important; padding:0; margin:0; font-weight:normal!important; font-size:inherit!important; height:auto!important; vertical-align:baseline; line-height:inherit }`,并隐藏 `&::before` 圆点。`el-tag` 的 `:type` 继续保留在模板中(无需改动),但颜色/字号/行高已被全局 CSS 强制覆盖为与单元格普通文本一致。
+- 用法:业务状态 `el-tag` 加 `class="status-text"`。
+- **全站统一完成(2026-08-25)**:所有"状态语义"的 el-tag 均已加 `class="status-text"` 转纯文本,含:business-crud-page(#status/#businessStatus/#approvalStatus + 调度弹窗头)、master-order 系列、loading-manage 详情、结算(settlement-adjustment/pre-settlement/formal-settlement/formal-settlement-table-panel/transport-reconciliation-editor 匹配结果·状态)、payment(invoice-application/bill-payment-table/receipt-flow/receipt-claim-record/invoice-receipt/payment-application 审批·认领状态)、contract-manage(合同阶段 + 审批)、temporary-credit-limit、process-config、credit-score-quantification、flow(manager/follow 激活·挂起)、work(start 激活·挂起 / send 完成)、transportCapacity(vehicle 启用·认证 / driver / ship 启用)、base(railway-station/airport-master/currency/customer-type/fee-item/port-terminal 启用停用)、system(dept/authority apikey·ratelimit 启用禁用 / authlock lockStatus / dict·dictbiz 是否封存 / codesetting 否是)、resource(sms/oss statusName)、customer-archive(审批 + 启用停用)、transit/risk-disposal(column.tag/field.tag)。
+- 例外(刻意保留 tag 样式,非状态语义):`loading-manage.vue` 列表状态列用 ``(先例);"类型标签"——transport-flow-tag、transportTypeName、business-crud-page:3252 运输方式、loading-manage:399 运输方式 warning、authlock lockType(锁类型)、vehicle-ledger plateColor/businessRelation、cron-editor、以及 categoryName/version/code/tenantId/roleName/deptName/apiKey/remoteIp/env/tableName/method/recordLevel/pattern/modelTable/fileSize/node.tags 等"值/标签/提示"类。注:customer-archive 准入类型原在例外中,2026-08-25 用户要求也转纯文本(已加 status-text)。
## 关键文件
- 分组白卡:`src/components/section-card/main.vue`。
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
index 5fa2b84..0d8e0e6 100644
--- a/src/styles/element-ui.scss
+++ b/src/styles/element-ui.scss
@@ -898,7 +898,10 @@
}
// 全站统一:手写表格操作列中的文字链接保持间距并支持自动换行
-.el-table .el-table__body .cell:not(.avue-crud__menu):has(> .el-link) {
+// 用后代选择器 :has(.el-link) 而非直接子元素 :has(> .el-link),
+// 以兼容「el-link 被 div 包裹」的手写操作列(如 pre-settlement 的 .pre-settlement-page__links),
+// 让无论是否包了一层 div 的操作列按钮都统一居中。
+.el-table .el-table__body .cell:not(.avue-crud__menu):has(.el-link) {
display: flex;
flex-wrap: wrap;
align-items: center;
@@ -929,7 +932,7 @@
// 全站统一:去除操作列 el-link 默认 margin,避免与 8px gap 叠加导致文字间距过宽
.avue-crud .avue-crud__menu .el-link,
-.el-table .el-table__body .cell:not(.avue-crud__menu):has(> .el-link) .el-link {
+.el-table .el-table__body .cell:not(.avue-crud__menu):has(.el-link) .el-link {
margin: 0;
}
@@ -948,7 +951,7 @@
// 操作列单元格会被加上 .el-tooltip 类并写死宽度,导致内部 el-link 换行后被裁切。
// 此处豁免操作列单元格:让 Avue 行菜单与手写表格操作列保持原有 flex 自动换行,不被固定宽度裁切。
.el-table .cell.avue-crud__menu,
-.el-table .el-table__body .cell.el-tooltip:has(> .el-link) {
+.el-table .el-table__body .cell.el-tooltip:has(.el-link) {
width: auto !important;
overflow: visible;
text-overflow: clip;
@@ -1027,27 +1030,22 @@
// margin-bottom: 15px !important;
//}
-// ============ 业务状态标签:全站统一为「文字 + 颜色」样式 ============
-// 去掉 el-tag 默认背景与边框,仅保留彩色文字,并前置一个状态圆点(颜色同文字)。
+// ============ 业务状态标签:全站统一为普通文字 ============
+// 去掉 el-tag 默认背景、边框、颜色圆点,仅保留文本本身,颜色与正文一致。
// 适用于所有业务状态展示:调度状态 / 运单状态 / 审批状态等。
.el-tag.status-text {
background-color: transparent !important;
border-color: transparent !important;
+ color: var(--el-text-color-regular) !important;
padding: 0;
- margin-left: 8px;
- font-weight: 500;
+ margin: 0;
+ font-weight: normal !important;
+ font-size: inherit !important;
line-height: inherit;
+ height: auto !important;
+ vertical-align: baseline;
&::before {
- content: '';
- display: inline-block;
- width: 6px;
- height: 6px;
- border-radius: 50%;
- background-color: currentColor;
- margin-right: 6px;
- vertical-align: middle;
- position: relative;
- top: -1px;
+ display: none;
}
}
diff --git a/src/views/authority/apikey.vue b/src/views/authority/apikey.vue
index c89d7da..2501704 100644
--- a/src/views/authority/apikey.vue
+++ b/src/views/authority/apikey.vue
@@ -30,7 +30,7 @@
-
+
{{ row.status === 1 ? '启用' : '禁用' }}
diff --git a/src/views/authority/ratelimit.vue b/src/views/authority/ratelimit.vue
index 6a53566..9c46732 100644
--- a/src/views/authority/ratelimit.vue
+++ b/src/views/authority/ratelimit.vue
@@ -47,7 +47,7 @@
{{ row.limitCount }} 次 / {{ row.limitPeriod }} {{ timeUnitLabel(row.timeUnit) }}
-
+
{{ row.status === 1 ? '启用' : '禁用' }}
diff --git a/src/views/base/airport-master.vue b/src/views/base/airport-master.vue
index 1b02c0f..a6073d1 100644
--- a/src/views/base/airport-master.vue
+++ b/src/views/base/airport-master.vue
@@ -55,7 +55,7 @@
-
+
{{ row.status === 1 ? '启用' : '停用' }}
diff --git a/src/views/base/currency.vue b/src/views/base/currency.vue
index 11d32a0..f4441bb 100644
--- a/src/views/base/currency.vue
+++ b/src/views/base/currency.vue
@@ -63,7 +63,7 @@
-
+
{{ row.status === 1 ? '启用' : '停用' }}
diff --git a/src/views/base/customer-type.vue b/src/views/base/customer-type.vue
index cced3b9..fb68968 100644
--- a/src/views/base/customer-type.vue
+++ b/src/views/base/customer-type.vue
@@ -31,7 +31,7 @@
-
+
{{ row.status === 1 ? '启用' : '停用' }}
diff --git a/src/views/base/fee-item.vue b/src/views/base/fee-item.vue
index 69a8091..0fad1fe 100644
--- a/src/views/base/fee-item.vue
+++ b/src/views/base/fee-item.vue
@@ -32,7 +32,7 @@
-
+
{{ row.status === 1 ? '启用' : '停用' }}
@@ -255,7 +255,7 @@ export default {
addDisplay: false,
editDisplay: false,
value: 1,
- minWidth: 100,
+ minWidth: 110,
},
],
},
diff --git a/src/views/base/port-terminal.vue b/src/views/base/port-terminal.vue
index 8c8543d..1dc5b06 100644
--- a/src/views/base/port-terminal.vue
+++ b/src/views/base/port-terminal.vue
@@ -64,7 +64,7 @@
港口/码头
-
+
{{ row.status === 1 ? '启用' : '停用' }}
diff --git a/src/views/base/railway-station.vue b/src/views/base/railway-station.vue
index 428acce..d7b4e94 100644
--- a/src/views/base/railway-station.vue
+++ b/src/views/base/railway-station.vue
@@ -55,7 +55,7 @@
-
+
{{ row.status === 1 ? '启用' : '停用' }}
diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue
index 5d9983a..a58baca 100644
--- a/src/views/business/components/business-crud-page.vue
+++ b/src/views/business/components/business-crud-page.vue
@@ -96,19 +96,19 @@
-
+
{{ displayStatus(row, 'status') }}
-
+
{{ displayStatus(row, 'businessStatus') }}
-
+
{{ displayStatus(row, 'approvalStatus') }}
@@ -2177,15 +2177,15 @@
|
{{ detailRow.planNo || '-' }}
-
+
{{ displayStatus(detailRow, 'businessStatus') }}
-
-
+
+
{{
detailRow.transportTypeName ||
formatTransportPlanDetailTransportType(detailRow.transportType)
}}
-
+
@@ -2347,10 +2347,10 @@
运单详情
{{ detailRow.waybillNo || '-' }}
-
{{ displayStatus(detailRow, 'businessStatus') }}
-
+ {{ displayStatus(detailRow, 'businessStatus') }}
+
{{ formatTransportPlanDetailTransportType(waybillTransportMode(detailRow)) }}
-
+
{{ dispatchDialogNo || '-' }}
-
+
{{ dispatchDialogStatusText }}
@@ -13125,7 +13125,7 @@ export default {
height: auto;
max-height: none;
line-height: 20px;
- white-space: pre-line;
+ //white-space: pre-line;
word-break: break-word;
text-overflow: clip;
}
diff --git a/src/views/business/contract-manage.vue b/src/views/business/contract-manage.vue
index fc3b0c9..2b998d9 100644
--- a/src/views/business/contract-manage.vue
+++ b/src/views/business/contract-manage.vue
@@ -62,13 +62,13 @@
-
+
{{ displayStatus(row, 'contractStage') }}
-
+
{{ displayStatus(row, 'approvalStatus') }}
diff --git a/src/views/business/temporary-credit-limit.vue b/src/views/business/temporary-credit-limit.vue
index 65f6ad1..afd2e58 100644
--- a/src/views/business/temporary-credit-limit.vue
+++ b/src/views/business/temporary-credit-limit.vue
@@ -45,7 +45,7 @@
-
+
{{ displayStatus(row, 'approvalStatus') }}
diff --git a/src/views/flow/follow.vue b/src/views/flow/follow.vue
index f4f0eec..3412052 100644
--- a/src/views/flow/follow.vue
+++ b/src/views/flow/follow.vue
@@ -18,7 +18,7 @@
@on-load="onLoad"
>
- {{ row.suspensionState === 1 ? '激活' : '挂起' }}
+ {{ row.suspensionState === 1 ? '激活' : '挂起' }}
v{{ row.version }}
- {{ row.suspensionState === 1 ? '激活' : '挂起' }}
+ {{ row.suspensionState === 1 ? '激活' : '挂起' }}
{{ row.categoryName }}
diff --git a/src/views/payment/bill-ledger-form.vue b/src/views/payment/bill-ledger-form.vue
index 10638b6..87daa14 100644
--- a/src/views/payment/bill-ledger-form.vue
+++ b/src/views/payment/bill-ledger-form.vue
@@ -1,6 +1,6 @@
-
+
{{ recordId ? '编辑汇票台账' : '新增汇票台账' }}
-
- 基本信息
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
%
+
+
-
+
-
- 附件信息
+
@@ -215,10 +237,9 @@
button-text="上传"
@change="normalizeAttachments"
/>
-
+
-
+
-
- 使用记录
+
@@ -244,7 +264,7 @@
已审核
-
+
确认
@@ -540,28 +560,8 @@ export default {