Merge remote-tracking branch 'websoft/master'

This commit is contained in:
2026-08-26 23:18:19 +08:00
25 changed files with 629 additions and 100 deletions
+289
View File
@@ -52,3 +52,292 @@ autocomplete 没有拉满 cell,placeholder 被内边距 / clear 图标挤压截
不受本规则影响。 不受本规则影响。
其余残留 160px 均非搜索栏: project-apply.vue:2095(表单详情弹窗 label,故意留 6 汉字)、 其余残留 160px 均非搜索栏: project-apply.vue:2095(表单详情弹窗 label,故意留 6 汉字)、
customer-archive.vue:4980(按钮 min-width)、cargo-type.vue:604(选择器拼错不生效,设 50px)。 customer-archive.vue:4980(按钮 min-width)、cargo-type.vue:604(选择器拼错不生效,设 50px)。
## payment-application 表单 input 文字居左
- `src/views/payment/payment-application-form.vue`:追加 scoped 样式,使 `el-input-number` 的输入文字居左对齐(付款比例、申请付款金额等数字字段),与 bill-ledger-form 保持一致。
## 正式结算查看页去除内容行高
**问题**: `settlement/formal-settlement/form?mode=view` 中只读字段(如项目名称、合同名称)
多行文本行高过大,Element Plus 默认 `.el-form-item__content``line-height` 导致显示松散。
**修复**: `src/views/settlement/components/formal-settlement-editor.vue` scoped 样式追加:
```scss
.formal-editor :deep(.el-form-item__content) {
line-height: normal;
}
```
## 全站表单项间距统一 14px
**诉求**: `settlement/pre-settlement/form?mode=add``.el-form-item` 间距偏大,要求统一为 14px 且全站一致(用户指"表单项间距")。
**排查**: 全站 `.el-form-item``margin-bottom` 取值不一致——表单填写区有 16px / 18px / 20px
搜索栏统一 8px(保留),个别特殊分组 28pxrisk-disposal,保留)。全局 `.el-form-item--default`
已是 14px,但各页面 scoped `:deep(.xxx .el-form-item)` 覆盖成了 16/18/20px。
**改动(表单填写区统一 14px16/18/20 → 14**:
- settlement: `components/pre-settlement-editor.vue:1637`(16→14)、
`components/formal-settlement-editor.vue:1560`(16→14)、
`receivable-payable-detail.vue:1860`(16→14)、
`components/transport-reconciliation-editor.vue:805`(16→14)、
`components/settlement-adjustment-editor.vue:560`(16→14)
- business: `voucher-manage.vue:1022`(16→14)、`loading-manage.vue:2751`(16→14)、
`project-apply.vue:2091`(16→14)、`contract-manage.vue:2253`(16→14)、
`components/business-crud-page.vue:13380/13894`(16→14)、
`components/master-order-dispatch.vue:700`(16→14)
- payment: `invoice-receipt-form.vue:755`(16→14)、`user.vue:1097`(16→14)、
`bill-ledger-form.vue:564`(16→14)、`payment-application-form.vue:1324`(16→14)、
`bill-payment-form.vue:382`(16→14)
- 全局: `components/cron-editor/main.vue:579`(18→14)、
`styles/element-ui.scss:430`(`.dialog-form--carded` 20→14)
**保留未动**: 所有 `__search` 搜索栏的 8px、risk-disposal 的 28px 特殊分组、transportCapacity
vehicle/driver/ship 与 customer-archive 等本就是 14px(含 !important)。
## project-apply 表头颜色在不同电脑不一致
**问题**: 客户反馈 `business/project-apply/form?mode=add` 页面中「客户信息」等表格表头颜色
在用户电脑是 `#374151`,客户电脑是 `#909399`
**根因**:
- `src/styles/theme/go.scss``.theme-go .el-table tr th .cell { color: #374151 }` 把表头文字写死为 `#374151`
- 客户电脑未使用 `theme-go`,表头文字走 Element Plus 默认 CSS 变量
`--el-table-header-text-color: #909399`
- `src/views/business/project-apply.vue` 里的 `:deep(.el-table__header th) { color: #303133 }`
只作用在 `th` 上,颜色靠继承,优先级敌不过直接写在 `.cell` 上的规则和 Element Plus 默认值,
所以实际没生效。
**修复**:
- `src/styles/element-ui.scss` 在「统一全站 el-table 表头背景色」之后追加规则:
```scss
.el-table .el-table__header-wrapper th.el-table__cell .cell {
color: #374151;
}
```
直接作用于 `.cell`,特异性高于 `theme-go` 和 Element Plus 默认,全站统一为 `#374151`。
- `src/views/business/project-apply.vue` 清理两处与全局冲突且不生效的局部表头样式:
删除 `background: #f5f7fa; color: #303133;`,保留 `font-weight: 600`
选择器改为 `:deep(.el-table__header th .cell)`。
## 弹窗 / 独立表单页底栏「保存+提交+返回」按钮统一风格
**问题**: 主人截图 `business/project-apply/form?mode=add` 页面底部 `[保存][提交][返回]` 三个按钮,
- 保存 + 提交 都是 `type="primary"` 蓝实心,视觉层级无区分。
- 排序「主→主→次」,主操作不靠右,与全站其它页面(business-crud-page 等)已用的「次→中→主」不一致。
**修复**: 统一定 3 档层级 + 「次→中→主」排序。
| 语义 | 写法 |
| --- | --- |
| 次要(返回/取消) | 默认(无 type)灰描边 |
| 中间步骤(保存草稿) | `type="primary" plain` 蓝描边 |
| 主操作(提交) | `type="primary"` 蓝实心 |
排序模板:`[可选辅助(如同步)][返回/取消][保存草稿][提交]`,主操作永远最右。
**改动文件**:
- `business/project-apply.vue:617-651` — 主 footer + 变更 footer 都重排,`保存` 加 plain。
- `payment/invoice-receipt-form.vue:242-252` — 保存加 plain,返回挪到保存前面。
- `payment/invoice-application-form.vue:419-429` — 同上。
**未改动(已合规)**:
- `settlement/components/pre-settlement-editor.vue` — 默认已是「默认保存 + primary 提交」。
- `settlement/components/transport-reconciliation-editor.vue` — 两个 plain 中间步骤 + 完成对账 实心,层级清晰。
**沉淀**: `MEMORY.md` 新增「弹窗 / 独立表单页底栏按钮统一规则」一节,作为新页面 footer 写法标准。
## customer-archive 全部 footer 同步按新增项目模块标准对齐
**问题**: 主人指出客户档案页面 `/vehicle/customer-archive/form?name=新增客商档案` 没有按统一规则调整,
并明确要求「浮动页面底部、按钮区域靠右对齐,返回在第一个,中间的用浅蓝色,最后一个是 primary 深蓝色」,
参考新增项目模块 `/business/project-apply/form?mode=add`。
### customer-archive.vue 共 5 处 footer 改动
- `archive-form__footer` (802-809) 原状「取消/返回 + 保存 primary + 提交 success 绿」混合 4 按钮。改为 `[返回/取消/关闭] + 保存 plain + 提交 primary`,并删掉「success 绿」换成 primary 深蓝。
- `contact-dialog` (867-870) 原状 `[保存 primary][返回]`,容器居中。改为 `[返回][保存 plain]`,容器 flex-end。
- `receipt-dialog` (965-969) 同上模式。
- `invoice-dialog` (1085-1089) 同上模式。
- `score-detail-dialog` (1343-1359) 原状 total 左 + `[保存 primary][复评确认 primary][返回]`。改为 total 左 + `[返回][保存 plain][复评确认 primary]`。
### customer-archive.vue SCSS 同步
- `.contact-dialog__footer-actions` `justify-content: center` 改 `flex-end`。
- `.receipt-dialog__footer-actions` 同上。
- `.invoice-dialog__footer-actions` 同上。
- `.archive-form__footer` 维持 flex-end 不变(独立页 `.archive-page-form &` 下 `position: fixed` 浮动底部已经写好)。
### 顺序小结(标准模板)
```vue
<div class="xxx-dialog__footer-actions">
<!-- 最左:信息聚合(如总分合计、统计)用 flex:1 自己推 -->
<!-- 次要:默认描边灰按钮 -->
<el-button @click="close">返回</el-button>
<!-- 中间:浅蓝实心 plain -->
<el-button type="primary" plain @click="saveDraft">保存</el-button>
<!-- 主操作:蓝实心 -->
<el-button type="primary" @click="submit">提交</el-button>
</div>
```
左→右阅读顺序:辅助信息聚合 → 次要 → 中间步骤 → 主操作。视觉权重递增,颜色从「灰 → 蓝描边 → 蓝实心」。
## 全站 disabled 输入框文字颜色统一
**问题**: 客户档案编辑页等「不可编辑」状态下,`el-input` / `el-textarea` / `el-input-number` 的文字颜色
在不同电脑显示不一致(有的深、有的浅)。
**根因**: Element Plus 默认 disabled 文字色由 `--el-disabled-text-color` 控制,不同主题/浏览器/变量覆盖下可能表现为 `#374151` / `#606266` / `#a8abb2` / `#909399` 等。
**修复**: `src/styles/element-ui.scss` 在表头颜色统一规则后追加:
```scss
.el-input.is-disabled .el-input__inner,
.el-textarea.is-disabled .el-textarea__inner,
.el-input-number.is-disabled .el-input__inner {
color: #a8abb2;
}
```
直接写死为 `#a8abb2`,覆盖 Element Plus 默认 CSS 变量及主题差异,保证全站一致。
**如需再深**,可把 `#a8abb2` 改为 `#606266`。
## shipping-template 独立表单页「关闭」按钮位置修正
**问题**: `/business/shipping-template/form?mode=add`(独立表单页)底部 `[提交][关闭]` 顺序,
主操作「提交」在左、次要「关闭」在右,与全站「次→主」规则不符。
**根因**: shipping-template 走 `business-crud-page` 复用的 PageAvueFormfooter 用的是 Avue-form 内置结构。
Avue-form 内置按钮默认在中间,自定义内容分两侧插槽:
- `#menu-form-before` slot → 在 Avue 内置按钮之左
- `#menu-form` slot → 在 Avue 内置按钮之右
之前「关闭」按钮写在 `#menu-form` slot(在 Avue 内置按钮之右),导致渲染成 `[Avue 提交][关闭]`,顺序反了。
**修复**: `src/views/business/components/business-crud-page.vue:2059-2090`
- 把「关闭」按钮从 `#menu-form` slot 移到 `#menu-form-before` slot 的「保存草稿」按钮之前。
- 触发条件 `v-if="isStandaloneFormPage && !showTransportPlanCreateActions"`,仅独立表单页生效;
弹窗模式(list 页内点新增/编辑)继续走 Avue 自带的 `[取消][提交]` 不动。
- 「关闭」按钮文字保持默认色(次要),无 type。
- 同步清空 `#menu-form` slot 中 shipping-template 残留(实际只剩 `showTransportPlanCreateActions` 块,
shipping-template 不会触发,留着不影响)。
**最终渲染**(独立表单页):
- 有运费合计 + 草稿:`[运费合计][关闭][保存草稿 plain][Avue 提交]`
- 仅有运费合计:`[运费合计][关闭][Avue 提交]`
- 无运费合计:`[关闭][Avue 提交]`(即主人截图场景)
**未触发场景**:
- transport-plan / waybill / loading-manage 等其它走 business-crud-page 但未声明 `standalone-form-page` 的页面,
本次未改。需要时可按相同模式补 slot。
## master-order 编辑页底栏按钮统一
**问题**: `/business/master-order?mode=editor`(多联总单编辑/新增页)底部按钮没统一。
**根因**: 编辑页是 `master-order.vue` 的 `mode==='editor'` 模板里内嵌 `<master-order-editor>` 组件,
主 footer 在 `src/views/business/components/master-order-editor.vue:534-539`。
**原状**:
```
[返回 default] [暂存 default] [确认创建 primary] [创建并调度 primary]
```
- 暂存 无 type,与返回同为灰描边,缺层级
- 确认创建 / 创建并调度 两个都 primary 实心,无视觉优先级
- footer 仅 `flex-end` + `padding:16px 0`,不浮动
**修复** (`master-order-editor.vue`):
- 按钮改:`[返回 default] [暂存 primary plain] [确认创建 primary plain] [创建并调度 primary]`
严格按「返回第一个、中间浅蓝 plain、最后深蓝实心」规则,仅最右一个深蓝。
- footer 样式改浮动底部:`position: sticky; bottom:0; z-index:10; background:#fff;
border-top:1px solid #eff1f7; box-shadow:0 -2px 8px rgba(0,0,0,.06); gap:12px; padding:12px 24px`。
**未动**: 页内各 el-dialog 的 footer(线路/地图/常用货物/货物导入等)已是 `[关闭 default][确定 primary]`
符合「次→主」规则,无需调整。
## payment-application 表单页底栏按钮统一
**问题**: `/payment/payment-application/form?mode=add`(付款申请表单页)底部按钮没统一。
**根因**: 独立表单页 `src/views/payment/payment-application-form.vue` 的 `.payment-form-page__actions` footer330 行)。
**原状**:
```
justify-content: center(居中)
[返回 default] [保存 default(缺 plain] [提交 primary]
```
- 保存 无 type,与返回同为灰描边,缺层级
- footer 居中且不浮动
**修复** (`payment-application-form.vue`):
- 按钮:`[返回 default] [保存 primary plain] [提交 primary]`,仅最后深蓝。
- footer 样式:`justify-content: center` → `flex-end`;加 `position: sticky; bottom:0; z-index:10;
background:#fff; border-top:1px solid #eff1f7; box-shadow:0 -2px 8px rgba(0,0,0,.06); gap:12px; padding:12px 24px`。
**未动**: `payment-application.vue`list 表格页,无独立 footer);`invoice-application-form.vue` / `invoice-receipt-form.vue` 上一轮已改。
## invoice-application / invoice-receipt 表单页底栏按钮统一
**问题**: `/payment/invoice-application/form?mode=add` 底部按钮没统一(用户反馈)。排查发现同族 `invoice-receipt-form.vue` 完全同款问题,一并修了。
**根因**: 两个发票表单页 footer 都是 `[同步 plain][返回 default][保存 plain][提交 primary]` + `justify-content: center`(居中),且未浮动。
- 同步 在 返回 之前,违反「返回在第一个」
- footer 居中,不靠右、不浮动
**修复**`invoice-application-form.vue` 419-433 + 980`invoice-receipt-form.vue` 242-256 + 777):
- 按钮重排为 `[返回 default][同步 plain][保存 plain][提交 primary]`,返回置首、最后仅提交深蓝。
- footer 样式:`justify-content: center` → `flex-end`;加 `position: sticky; bottom:0; z-index:10;
background:#fff; border-top:1px solid #eff1f7; box-shadow:0 -2px 8px rgba(0,0,0,.06); gap:12px; padding:12px 24px`。
**注意**: 之前首轮曾把这两个页「保存加 plain、返回挪到保存前面」,但当时没动 同步 的位置、没改居中/浮动,所以用户仍觉得没统一。本次彻底对齐。
## payment + settlement 模块底栏按钮全量统一
**背景**: 用户要求检查 payment 模块和 settlement 模块下所有页面底栏按钮是否统一。
### payment 模块(表单页 footer
| 文件 | 原状 | 修复 |
| --- | --- | --- |
| `payment/bill-ledger-form.vue` | `[确认 primary][取消 default]` + 居中 | `[取消 default][确认 primary]`footer flex-end + sticky 浮动 |
| `payment/bill-payment-form.vue` | `[保存 primary][提交 primary][取消 default]` | `[取消 default][保存 plain][提交 primary]`footer 加 sticky 浮动(已 flex-end |
| `payment/receipt-flow-form.vue` | `[确认 primary][取消 default]` + 居中(class 误用 `receipt-claim-form-page__actions` | `[取消 default][确认 primary]`footer flex-end + sticky 浮动 |
| `payment/receipt-claim-record-form.vue` | 单「关闭」按钮居中 | footer flex-end + sticky 浮动 |
| (此前已改)invoice/payment-application 各表单页 | — | 已合规 |
### settlement 模块
| 文件 | 原状 | 修复 |
| --- | --- | --- |
| `settlement/components/pre-settlement-editor.vue` | 两处 footer `[取消][保存 default][提交]`(弹窗 + pageMode | 保存加 `type="primary" plain``&__page-actions` 加 sticky 浮动 |
| `settlement/components/formal-settlement-editor.vue` | footer 已 `[取消][提交]` 合规,独立页未浮动 | `.formal-editor__page-actions` 加 sticky 浮动 |
| `settlement/receivable-payable-detail.vue` | 生成费用弹窗 `[取消][上一步 primary][提交 primary]` | 上一步改 `type="primary" plain` |
| (已合规未动)`transport-reconciliation-editor.vue` | `[取消][保存草稿 plain][按匹配结果更新账单 plain][完成对账 primary]` | 已符合次→主 |
| (已合规未动)`settlement-adjustment-editor.vue` | 弹窗 `[取消][保存 primary]` | 合规 |
**注意**: settlement 的 `*_editor.vue` 多为「弹窗(!pageMode) + 独立页(pageMode)」双模式;弹窗 footer 走 `.el-dialog__footer` 全局规则(已右对齐/浮动),仅 pageMode 的 `.xxx__page-actions` 需手动加 sticky。
**注意**: payment 表单页剩余的 `justify-content: center` 全在 `__links` 链接行(非 action footer),属正常布局,未改。
## 浮动底栏根本修复:sticky → fixed
**问题**: 用户反馈 `/settlement/formal-settlement/form?mode=add`「有些页面还没能固定在底部」。
**根因(关键)**: 之前给 9 个独立表单页 footer 写的都是 `position: sticky; bottom:0`,但本项目布局
`.app-main` / `.basic-container` 祖先带 `overflow:hidden`,sticky 的滚动容器判断失效 → footer 永不吸底。
customer-archive 当初就是因此改用 `position:fixed`,且要带侧栏左偏移。
**修复(9 个文件全部 sticky→fixed**:
- `business/components/master-order-editor.vue` `<footer>`2050 行,含 `:global(.avue--collapse footer)`/`horizontal`
- `payment/invoice-receipt-form.vue` / `bill-ledger-form.vue` / `receipt-claim-record-form.vue` /
`payment-application-form.vue` / `bill-payment-form.vue` / `invoice-application-form.vue` / `receipt-flow-form.vue`
各 `__actions`(均加 fixed + `:global(.avue--collapse .xxx)`/`horizontal` 左偏移 60px/0
- `settlement/components/pre-settlement-editor.vue` `&__page-actions`nested,全局覆盖放 style 末尾)
- `settlement/components/formal-settlement-editor.vue` `.formal-editor__page-actions`(上一轮已改 fixed,本轮复核确认)
**统一 fixed 模板**:
```scss
.xxx { position: fixed; right:0; left:230px; bottom:0; margin:0; z-index:10; flex-end + padding + border-top + 白底 + 上投影 }
:global(.avue--collapse .xxx) { left:60px; }
:global(.avue-layout--horizontal .xxx) { left:0; }
```
注意 `:global()` 要包整个选择器(customer-archive 写法),只包前缀会让 scoped 在中间选择器追加 data 属性而不匹配。
**验证**: 全仓 `position: sticky` 已清零(grep 无残留)。
+43
View File
@@ -36,6 +36,49 @@
- 全站"状态语义"的 `el-tag``class="status-text"`,转为普通文字,不带颜色/背景/边框/圆点。 - 全站"状态语义"的 `el-tag``class="status-text"`,转为普通文字,不带颜色/背景/边框/圆点。
- 实现:`element-ui.scss` 末尾 `.el-tag.status-text { ... }` - 实现:`element-ui.scss` 末尾 `.el-tag.status-text { ... }`
### 弹窗 / 独立表单页底栏按钮统一规则
- **排序**:从左到右按次→主排(次要居左、主操作居右),主操作永远放最后。
- 顺序模板:`[可选辅助工具(如同步/导入)][返回/取消][保存草稿][提交/确认]`
- **容器布局**`display:flex; justify-content:flex-end; gap:12px;`。弹窗关闭按钮继承 Element Plus 自带 `.el-dialog__footer` 全局规则(见上条),独立页用 `.archive-form__footer``.archive-page-form & { position:fixed; right:0; left:230px; bottom:0; z-index:10; margin:0; padding:12px 24px; border-top:1px solid #eff1f7; background:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.06); }`
- **⚠️ 浮动底部必须用 `position:fixed`,不能用 `position:sticky`**:本项目布局 `.app-main` / `.basic-container` 祖先带 `overflow:hidden`,会导致 `sticky` 永不触发(footer 不吸底)。固定写法照搬 customer-archive
```scss
.xxx-actions {
position: fixed; right: 0; left: 230px; bottom: 0; margin: 0; z-index: 10;
/* flex-end + padding + border-top + 白底 + 上投影 */
}
:global(.avue--collapse .xxx-actions) { left: 60px; } /* 侧栏折叠 */
:global(.avue-layout--horizontal .xxx-actions) { left: 0; } /* 横向布局 */
```
注意 `:global()` 要把「整个选择器」包进去(customer-archive 写法),不要只包前缀,否则 scoped 会在中间选择器上追加 data 属性导致不匹配。
- **颜色层级 3 档**
| 语义 | type | 备注 |
| --- | --- | --- |
| 次要(返回 / 取消 / 关闭) | 不写 type(默认) | 灰描边 |
| 中间步骤(保存草稿 / 按匹配结果更新) | `type="primary" plain` | 蓝描边 |
| 主操作(提交 / 完成对账 / 复评确认) | `type="primary"` | 蓝实心 |
- **禁区**
- 保存草稿和主操作不允许同为 `type="primary"`,否则两个蓝实心无视觉层级。
- 主操作禁止用 `type="success"`(绿)。全站统一深蓝实心。
- **生效页面(已按规则统一)**:
- `business/project-apply.vue`footer + 变更 footer
- `vehicle/customer-archive.vue` 全部 5 处 footer`archive-form__footer` 主表单页 + `contact-dialog`/`receipt-dialog`/`invoice-dialog` 子弹窗 + `score-detail-dialog` 含总分合计)
- `business/components/business-crud-page.vue` 的 PageAvueForm 独立表单页(`#menu-form-before` slot 新增 `关闭` 按钮,shipping-template 模式验证通过)
- `business/components/master-order-editor.vue` 主 `<footer>`(返回 default + 暂存/确认创建 plain + 创建并调度 primary`position:fixed` 浮动,含 `avue--collapse`/`avue-layout--horizontal` 左偏移)
- **payment 模块**表单页(`__actions` 均 `flex-end` + `position:fixed` 浮动,含 `avue--collapse`/`avue-layout--horizontal` 左偏移):
- `payment-application-form.vue``[返回][保存 plain][提交]`
- `invoice-application-form.vue` / `invoice-receipt-form.vue``[返回][同步 plain][保存 plain][提交]`
- `bill-ledger-form.vue``[取消][确认 primary]`
- `bill-payment-form.vue``[取消][保存 plain][提交]`
- `receipt-flow-form.vue``[取消][确认 primary]`
- `receipt-claim-record-form.vue`(单「关闭」按钮,居中→右对齐浮动)
- **settlement 模块**
- `settlement/components/pre-settlement-editor.vue`(弹窗 + pageMode 两处 footer:保存加 `plain``&__page-actions` 加 `position:fixed` 浮动,含 `avue--collapse`/`avue-layout--horizontal` 左偏移)
- `settlement/components/formal-settlement-editor.vue``.formal-editor__page-actions` 加 `position:fixed` 浮动,含 `avue--collapse`/`avue-layout--horizontal` 左偏移;按钮已 `[取消][提交]` 合规)
- `settlement/receivable-payable-detail.vue`(生成费用弹窗「上一步」改 `plain`
- **已合规未动**`settlement/components/transport-reconciliation-editor.vue``[取消][保存草稿 plain][按匹配结果更新账单 plain][完成对账 primary]`)、`settlement/components/settlement-adjustment-editor.vue`(弹窗 `[取消][保存 primary]`)、`business/temporary-credit-limit.vue`。
- **Avue-form footer 结构注意**`#menu-form-before` slot 内容在 Avue 内置按钮之**左**;`#menu-form` slot 在 Avue 内置按钮之**右**。要实现 `[次要][Avue 主操作]` 顺序,把次要按钮放进 `#menu-form-before`,主操作保留 Avue 内置即可。
- **复杂 footer 例外**:当 footer 需要在按钮组左侧展示「总分合计 / 数量统计」等聚合信息时,块用 `flex:1` 推自己到最左,按钮组按上述规则排在右半边(参考 `score-detail-dialog`)。
## 关键文件 ## 关键文件
- `src/components/section-card/main.vue` - `src/components/section-card/main.vue`
- `src/styles/element-ui.scss` - `src/styles/element-ui.scss`
+1 -1
View File
@@ -576,7 +576,7 @@ export default {
} }
.mode-content :deep(.el-form-item) { .mode-content :deep(.el-form-item) {
margin-bottom: 18px; margin-bottom: 14px;
} }
.mode-content :deep(.el-form-item:last-child) { .mode-content :deep(.el-form-item:last-child) {
+39 -1
View File
@@ -427,7 +427,7 @@
.dialog-form--carded { .dialog-form--carded {
.el-form-item { .el-form-item {
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 14px;
} }
.el-form-item__label { .el-form-item__label {
@@ -651,6 +651,20 @@
background-color: #fafafa !important; background-color: #fafafa !important;
} }
// 统一全站 el-table 表头文字颜色,避免不同主题/浏览器下颜色不一致(#909399 vs #374151
.el-table .el-table__header-wrapper th.el-table__cell .cell {
color: #374151;
}
// 统一全站 disabled 输入框文字颜色,避免不同主题/浏览器下颜色不一致
.el-input.is-disabled .el-input__inner,
.el-textarea.is-disabled .el-textarea__inner,
.el-input-number.is-disabled .el-input__inner {
color: #909399;
-webkit-text-fill-color: #909399;
}
// 全站统一:表格列内容(表头 + 单元格)居中展示 // 全站统一:表格列内容(表头 + 单元格)居中展示
.el-table th.el-table__cell .cell, .el-table th.el-table__cell .cell,
.el-table td.el-table__cell .cell { .el-table td.el-table__cell .cell {
@@ -1057,3 +1071,27 @@
.el-select__tags-text { .el-select__tags-text {
font-size: var(--el-form-label-font-size); font-size: var(--el-form-label-font-size);
} }
// ============ 加深输入框 / 下拉框占位符颜色 ============
// 客户反馈默认 placeholder 灰色(#a8abb2)太浅,统一加深一档到 #909399Element Plus 次级文字标准灰)。
// 同时覆盖原生 input/textarea 与 el-select 的占位文本,保证全站一致。
// 注:.el-select__placeholder.is-transparent 是聚焦未选值时的透明态,无需处理。
.el-input__inner,
.el-textarea__inner {
&::-webkit-input-placeholder {
color: #909399 !important;
}
&::-moz-placeholder {
color: #909399 !important;
}
&:-ms-input-placeholder {
color: #909399 !important;
}
&::placeholder {
color: #909399 !important;
}
}
.el-select__placeholder {
color: #909399 !important;
}
@@ -2072,6 +2072,12 @@
查看过程配置 查看过程配置
</el-link> </el-link>
</div> </div>
<el-button
v-if="isStandaloneFormPage && !showTransportPlanCreateActions"
@click="closeCrudDialog"
>
关闭
</el-button>
<el-button <el-button
v-if="config.enableDraftSave && !dialogReadonly" v-if="config.enableDraftSave && !dialogReadonly"
type="primary" type="primary"
@@ -2106,12 +2112,6 @@
确认创建 确认创建
</el-button> </el-button>
</div> </div>
<el-button
v-if="isStandaloneFormPage && !showTransportPlanCreateActions"
@click="closeCrudDialog"
>
关闭
</el-button>
</template> </template>
<template #menu="{ row, index }"> <template #menu="{ row, index }">
@@ -13386,7 +13386,7 @@ export default {
&__dispatch-shipping-form { &__dispatch-shipping-form {
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
} }
@@ -13900,7 +13900,7 @@ export default {
width: 100%; width: 100%;
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
:deep(.el-select), :deep(.el-select),
@@ -704,7 +704,7 @@ export default {
.route-overview__line { flex: 0 1 56px; min-width: 24px; height: 32px; margin-top: 0; border-bottom: 6px solid #e4e7ed; } .route-overview__line { flex: 0 1 56px; min-width: 24px; height: 32px; margin-top: 0; border-bottom: 6px solid #e4e7ed; }
.segment-header { min-height: 46px; padding: 0 20px; border-bottom: 1px solid #eff1f7; font-weight: 600; em { color: #409eff; font-style: normal; } } .segment-header { min-height: 46px; padding: 0 20px; border-bottom: 1px solid #eff1f7; font-weight: 600; em { color: #409eff; font-style: normal; } }
.segment-content { padding: 16px 24px; } .segment-content { padding: 16px 24px; }
.dispatch-form { :deep(.el-form-item) { margin-bottom: 16px; } :deep(.el-input), :deep(.el-select), :deep(.el-date-editor), :deep(.el-input-number) { width: 100%; } :deep(.el-input-group__append .el-select) { width: auto; } } .dispatch-form { :deep(.el-form-item) { margin-bottom: 14px; } :deep(.el-input), :deep(.el-select), :deep(.el-date-editor), :deep(.el-input-number) { width: 100%; } :deep(.el-input-group__append .el-select) { width: auto; } }
.transport-type-field :deep(.el-input) { width: 240px; } .transport-type-field :deep(.el-input) { width: 240px; }
.goods-heading { display: flex; align-items: center; justify-content: space-between; margin: 0 -24px 12px; padding: 14px 24px; border-top: 1px solid #eff1f7; border-bottom: 1px solid #eff1f7; h3 { margin: 0; padding-left: 12px; border-left: 4px solid #409eff; font-size: 16px; } span { color: #909399; font-size: 13px; } } .goods-heading { display: flex; align-items: center; justify-content: space-between; margin: 0 -24px 12px; padding: 14px 24px; border-top: 1px solid #eff1f7; border-bottom: 1px solid #eff1f7; h3 { margin: 0; padding-left: 12px; border-left: 4px solid #409eff; font-size: 16px; } span { color: #909399; font-size: 13px; } }
.freight-heading { margin: 16px 0 12px; h3 { margin: 0; padding-left: 12px; border-left: 4px solid #409eff; font-size: 16px; } } .freight-heading { margin: 16px 0 12px; h3 { margin: 0; padding-left: 12px; border-left: 4px solid #409eff; font-size: 16px; } }
@@ -532,10 +532,10 @@
</template> </template>
</el-dialog> </el-dialog>
<footer> <footer>
<el-button @click="$emit('back')">返回</el-button <el-button @click="$emit('back')">返回</el-button>
><el-button @click="saveDraft">暂存</el-button <el-button type="primary" plain @click="saveDraft">暂存</el-button>
><el-button type="primary" @click="confirmCreate">确认创建</el-button <el-button type="primary" plain @click="confirmCreate">确认创建</el-button>
><el-button type="primary" @click="createAndDispatch">创建并调度</el-button> <el-button type="primary" @click="createAndDispatch">创建并调度</el-button>
</footer> </footer>
</div> </div>
</template> </template>
@@ -2050,7 +2050,22 @@ export default {
footer { footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
gap: 8px; gap: 12px;
padding: 16px 0; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse footer) {
left: 60px;
}
:global(.avue-layout--horizontal footer) {
left: 0;
} }
</style> </style>
+1 -1
View File
@@ -2271,7 +2271,7 @@ export default {
:deep(.el-form-item) { :deep(.el-form-item) {
align-items: center; align-items: center;
margin-bottom: 16px; margin-bottom: 14px;
} }
:deep(.el-form-item__label) { :deep(.el-form-item__label) {
+1 -1
View File
@@ -2753,7 +2753,7 @@ export default {
} }
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
:deep(.el-form-item__label) { :deep(.el-form-item__label) {
+8 -11
View File
@@ -619,20 +619,22 @@
:class="{ 'project-apply-dialog__footer--change': isChangeDialog }" :class="{ 'project-apply-dialog__footer--change': isChangeDialog }"
> >
<template v-if="isChangeDialog"> <template v-if="isChangeDialog">
<el-button type="primary" :loading="submitLoading" @click="saveChangeProject"> <el-button v-if="!isProjectFormPage" @click="handleCancelProject">取消</el-button>
<el-button v-if="isProjectFormPage" @click="closeProjectForm">返回</el-button>
<el-button type="primary" plain :loading="submitLoading" @click="saveChangeProject">
保存 保存
</el-button> </el-button>
<el-button type="primary" :loading="submitLoading" @click="submitChangeProject"> <el-button type="primary" :loading="submitLoading" @click="submitChangeProject">
提交 提交
</el-button> </el-button>
<el-button v-if="!isProjectFormPage" @click="handleCancelProject">取消</el-button>
<el-button v-if="isProjectFormPage" @click="closeProjectForm">返回</el-button>
</template> </template>
<template v-else> <template v-else>
<el-button v-if="!isProjectFormPage" @click="handleCancelProject">取消</el-button> <el-button v-if="!isProjectFormPage" @click="handleCancelProject">取消</el-button>
<el-button v-if="isProjectFormPage" @click="closeProjectForm">返回</el-button>
<el-button <el-button
v-if="!dialogReadonly" v-if="!dialogReadonly"
type="primary" type="primary"
plain
:loading="submitLoading" :loading="submitLoading"
@click="saveProject" @click="saveProject"
> >
@@ -646,7 +648,6 @@
> >
提交 提交
</el-button> </el-button>
<el-button v-if="isProjectFormPage" @click="closeProjectForm">返回</el-button>
</template> </template>
</div> </div>
</component> </component>
@@ -2131,7 +2132,7 @@ export default {
} }
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
:deep(.el-form-item__label) { :deep(.el-form-item__label) {
@@ -2198,9 +2199,7 @@ export default {
padding: 12px; padding: 12px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
:deep(.el-table__header th) { :deep(.el-table__header th .cell) {
background: #f5f7fa;
color: #303133;
font-weight: 600; font-weight: 600;
} }
@@ -2244,9 +2243,7 @@ export default {
width: 100%; width: 100%;
margin-bottom: 12px; margin-bottom: 12px;
:deep(.el-table__header th) { :deep(.el-table__header th .cell) {
background: #f5f7fa;
color: #303133;
font-weight: 600; font-weight: 600;
} }
+3 -3
View File
@@ -99,7 +99,7 @@
width="120" width="120"
fixed="right" fixed="right"
align="center" align="center"
/><el-table-column label="" width="120" fixed="right" align="left" /><el-table-column label="" width="160" fixed="right" align="left"
><template #default="{ row }" ><template #default="{ row }"
><div class="voucher-manage-page__actions"> ><div class="voucher-manage-page__actions">
<el-link <el-link
@@ -423,7 +423,7 @@
></el-table-column ></el-table-column
><el-table-column label="上传状态" width="120" ><el-table-column label="上传状态" width="120"
><template #default="{ row }">{{ taskStatusName(row.status) }}</template></el-table-column ><template #default="{ row }">{{ taskStatusName(row.status) }}</template></el-table-column
><el-table-column label="操作" width="160" fixed="right" ><el-table-column label="操作" width="180" fixed="right"
><template #default="{ row }" ><template #default="{ row }"
><el-link ><el-link
v-if="row.status === 'paused' || row.status === 'failed'" v-if="row.status === 'paused' || row.status === 'failed'"
@@ -1019,7 +1019,7 @@ load();
display: none; display: none;
} }
&__upload-form :deep(.el-form-item) { &__upload-form :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
&__upload-tip { &__upload-tip {
margin-left: 16px; margin-left: 16px;
+20 -5
View File
@@ -267,8 +267,8 @@
</section-card> </section-card>
<div class="bill-ledger-form-page__actions"> <div class="bill-ledger-form-page__actions">
<el-button type="primary" :loading="saving" @click="confirmSubmit">确认</el-button>
<el-button @click="goBack">取消</el-button> <el-button @click="goBack">取消</el-button>
<el-button type="primary" :loading="saving" @click="confirmSubmit">确认</el-button>
</div> </div>
</el-form> </el-form>
</basic-container> </basic-container>
@@ -561,7 +561,7 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.bill-ledger-form-page__form :deep(.el-form-item) { .bill-ledger-form-page__form :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
.bill-ledger-form-page__basic-grid { .bill-ledger-form-page__basic-grid {
display: grid; display: grid;
@@ -591,9 +591,24 @@ export default {
} }
.bill-ledger-form-page__actions { .bill-ledger-form-page__actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 8px; gap: 12px;
padding: 16px 0 8px; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .bill-ledger-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .bill-ledger-form-page__actions) {
left: 0;
} }
.bill-ledger-form-page :deep(.el-table) { .bill-ledger-form-page :deep(.el-table) {
--el-table-border-color: #eff1f7; --el-table-border-color: #eff1f7;
+18 -3
View File
@@ -379,7 +379,7 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.bill-payment-form-page__form :deep(.el-form-item) { .bill-payment-form-page__form :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
.bill-payment-form-page__form :deep(.el-input), .bill-payment-form-page__form :deep(.el-input),
.bill-payment-form-page__form :deep(.el-input-number), .bill-payment-form-page__form :deep(.el-input-number),
@@ -399,8 +399,23 @@ export default {
.bill-payment-form-page__actions { .bill-payment-form-page__actions {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
gap: 8px; gap: 12px;
padding: 16px 0 8px; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .bill-payment-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .bill-payment-form-page__actions) {
left: 0;
} }
.bill-payment-form-page__dialog-search { .bill-payment-form-page__dialog-search {
display: flex; display: flex;
+26 -7
View File
@@ -417,15 +417,19 @@
</section-card> </section-card>
<div class="invoice-form-page__actions"> <div class="invoice-form-page__actions">
<el-button @click="goBack">返回</el-button>
<el-button v-if="!readonly" type="primary" plain @click="syncReferenceData">同步</el-button> <el-button v-if="!readonly" type="primary" plain @click="syncReferenceData">同步</el-button>
<el-button v-if="!readonly && canSave" @click="saveDraft">保存</el-button> <el-button
v-if="!readonly && canSave"
type="primary"
plain
@click="saveDraft"
>保存</el-button>
<el-button <el-button
v-if="!readonly && canSave && hasPermission('invoice_application_submit')" v-if="!readonly && canSave && hasPermission('invoice_application_submit')"
type="primary" type="primary"
@click="submitForm" @click="submitForm"
>提交</el-button >提交</el-button>
>
<el-button @click="goBack">返回</el-button>
</div> </div>
</el-form> </el-form>
@@ -975,9 +979,24 @@ export default {
} }
.invoice-form-page__actions { .invoice-form-page__actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 8px; gap: 12px;
padding: 16px 0 8px; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .invoice-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .invoice-form-page__actions) {
left: 0;
} }
.invoice-form-page__attachment-upload { .invoice-form-page__attachment-upload {
display: flex; display: flex;
+27 -8
View File
@@ -240,15 +240,19 @@
</section-card> </section-card>
<div class="receipt-form-page__actions"> <div class="receipt-form-page__actions">
<el-button @click="goBack">返回</el-button>
<el-button v-if="!readonly" type="primary" plain @click="syncReferenceData">同步</el-button> <el-button v-if="!readonly" type="primary" plain @click="syncReferenceData">同步</el-button>
<el-button v-if="!readonly && canSave" @click="saveDraft">保存</el-button> <el-button
v-if="!readonly && canSave"
type="primary"
plain
@click="saveDraft"
>保存</el-button>
<el-button <el-button
v-if="!readonly && canSave && hasPermission('invoice_receipt_submit')" v-if="!readonly && canSave && hasPermission('invoice_receipt_submit')"
type="primary" type="primary"
@click="submitForm" @click="submitForm"
>提交</el-button >提交</el-button>
>
<el-button @click="goBack">返回</el-button>
</div> </div>
</el-form> </el-form>
@@ -752,7 +756,7 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.receipt-form-page__form :deep(.el-form-item) { .receipt-form-page__form :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
.receipt-form-page__form :deep(.el-select), .receipt-form-page__form :deep(.el-select),
.receipt-form-page__form :deep(.el-input-number) { .receipt-form-page__form :deep(.el-input-number) {
@@ -772,9 +776,24 @@ export default {
} }
.receipt-form-page__actions { .receipt-form-page__actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 8px; gap: 12px;
padding: 16px 0 8px; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .receipt-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .receipt-form-page__actions) {
left: 0;
} }
.receipt-form-page__dialog-search { .receipt-form-page__dialog-search {
display: flex; display: flex;
+24 -7
View File
@@ -328,9 +328,9 @@
</div> </div>
</section-card> </section-card>
<div class="payment-form-page__actions"> <div class="payment-form-page__actions">
<el-button @click="goBack">返回</el-button <el-button @click="goBack">返回</el-button>
><el-button v-if="!readonly && canSave" @click="saveDraft(false)">保存</el-button <el-button v-if="!readonly && canSave" type="primary" plain @click="saveDraft(false)">保存</el-button>
><el-button <el-button
v-if="!readonly && canSave && hasPermission('payment_application_submit')" v-if="!readonly && canSave && hasPermission('payment_application_submit')"
type="primary" type="primary"
@click="submitForm" @click="submitForm"
@@ -1282,10 +1282,24 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.payment-form-page__actions { .payment-form-page__actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 16px; gap: 12px;
padding: 24px 0; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7; border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .payment-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .payment-form-page__actions) {
left: 0;
} }
.payment-form-page__section-actions { .payment-form-page__section-actions {
display: flex; display: flex;
@@ -1321,7 +1335,10 @@ export default {
display: inline-flex; display: inline-flex;
} }
.payment-form-page :deep(.el-form-item) { .payment-form-page :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
}
.payment-form-page :deep(.el-input-number .el-input__inner) {
text-align: left;
} }
.payment-form-page :deep(.el-table) { .payment-form-page :deep(.el-table) {
--el-table-border-color: #eff1f7; --el-table-border-color: #eff1f7;
@@ -312,8 +312,24 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.claim-record-form-page__actions { .claim-record-form-page__actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
padding: 16px 0 8px; gap: 12px;
padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .claim-record-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .claim-record-form-page__actions) {
left: 0;
} }
.claim-record-form-page__links { .claim-record-form-page__links {
display: flex; display: flex;
+20 -5
View File
@@ -165,8 +165,8 @@
/></el-form-item> /></el-form-item>
</section-card> </section-card>
<div class="receipt-claim-form-page__actions"> <div class="receipt-claim-form-page__actions">
<el-button type="primary" :loading="submitting" @click="submitClaim">确认</el-button <el-button :disabled="submitting" @click="goBack">取消</el-button>
><el-button :disabled="submitting" @click="goBack">取消</el-button> <el-button type="primary" :loading="submitting" @click="submitClaim">确认</el-button>
</div> </div>
</el-form> </el-form>
@@ -471,9 +471,24 @@ export default {
} }
.receipt-claim-form-page__actions { .receipt-claim-form-page__actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 8px; gap: 12px;
padding: 16px 0 8px; padding: 12px 24px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
border-top: 1px solid #eff1f7;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse .receipt-claim-form-page__actions) {
left: 60px;
}
:global(.avue-layout--horizontal .receipt-claim-form-page__actions) {
left: 0;
} }
.receipt-claim-form-page__dialog-search { .receipt-claim-form-page__dialog-search {
display: flex; display: flex;
@@ -1546,9 +1546,23 @@ export default {
.formal-editor__page-actions { .formal-editor__page-actions {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
padding: 16px 0 4px; padding: 12px 24px;
border-top: 1px solid #eff1f7; border-top: 1px solid #eff1f7;
gap: 8px; gap: 12px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
z-index: 10;
margin: 0;
background: #fff;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
:global(.avue--collapse) .formal-editor__page-actions {
left: 60px;
}
:global(.avue-layout--horizontal) .formal-editor__page-actions {
left: 0;
} }
.formal-editor__links { .formal-editor__links {
display: flex; display: flex;
@@ -1557,7 +1571,10 @@ export default {
gap: 8px; gap: 8px;
} }
.formal-editor :deep(.el-form-item) { .formal-editor :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
}
.formal-editor :deep(.el-form-item__content) {
line-height: normal;
} }
.formal-editor :deep(.el-table) { .formal-editor :deep(.el-table) {
--el-table-border-color: #eff1f7; --el-table-border-color: #eff1f7;
@@ -393,7 +393,7 @@
<template v-if="!pageMode" #footer> <template v-if="!pageMode" #footer>
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button v-if="editable" :loading="saving" @click="saveDraft(false)">保存</el-button> <el-button v-if="editable" type="primary" plain :loading="saving" @click="saveDraft(false)">保存</el-button>
<el-button <el-button
v-if="editable && hasPermission('pre_settlement_submit')" v-if="editable && hasPermission('pre_settlement_submit')"
type="primary" type="primary"
@@ -405,7 +405,7 @@
</template> </template>
<div v-if="pageMode" class="pre-settlement-editor__page-actions"> <div v-if="pageMode" class="pre-settlement-editor__page-actions">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button v-if="editable" :loading="saving" @click="saveDraft(false)">保存</el-button> <el-button v-if="editable" type="primary" plain :loading="saving" @click="saveDraft(false)">保存</el-button>
<el-button <el-button
v-if="editable && hasPermission('pre_settlement_submit')" v-if="editable && hasPermission('pre_settlement_submit')"
type="primary" type="primary"
@@ -1529,9 +1529,17 @@ export default {
&__page-actions { &__page-actions {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
padding: 16px 0 4px; padding: 12px 24px;
border-top: 1px solid #eff1f7; border-top: 1px solid #eff1f7;
gap: 8px; gap: 12px;
position: fixed;
right: 0;
left: 230px;
bottom: 0;
margin: 0;
z-index: 10;
background: #fff;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
} }
&__form { &__form {
@@ -1634,7 +1642,7 @@ export default {
} }
:deep(.pre-settlement-editor .el-form-item) { :deep(.pre-settlement-editor .el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
:deep(.pre-settlement-editor .el-table), :deep(.pre-settlement-editor .el-table),
@@ -1646,4 +1654,10 @@ export default {
:deep(.pre-settlement-candidate-dialog .el-table__body tr:nth-child(even) > td.el-table__cell) { :deep(.pre-settlement-candidate-dialog .el-table__body tr:nth-child(even) > td.el-table__cell) {
background: #fafafa; background: #fafafa;
} }
:global(.avue--collapse .pre-settlement-editor__page-actions) {
left: 60px;
}
:global(.avue-layout--horizontal .pre-settlement-editor__page-actions) {
left: 0;
}
</style> </style>
@@ -557,7 +557,7 @@ export default {
gap: 8px; gap: 8px;
} }
.settlement-adjustment-editor :deep(.el-form-item) { .settlement-adjustment-editor :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
.settlement-adjustment-editor :deep(.el-table) { .settlement-adjustment-editor :deep(.el-table) {
--el-table-border-color: #eff1f7; --el-table-border-color: #eff1f7;
@@ -802,7 +802,7 @@ export default {
display: none; display: none;
} }
.reconciliation-editor :deep(.el-form-item) { .reconciliation-editor :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
} }
.reconciliation-editor :deep(.el-table) { .reconciliation-editor :deep(.el-table) {
--el-table-border-color: #eff1f7; --el-table-border-color: #eff1f7;
@@ -597,7 +597,7 @@
</div> </div>
<template #footer> <template #footer>
<el-button @click="previewDialog.visible = false">取消</el-button> <el-button @click="previewDialog.visible = false">取消</el-button>
<el-button type="primary" @click="backToGenerateDialog">上一步</el-button> <el-button type="primary" plain @click="backToGenerateDialog">上一步</el-button>
<el-button type="primary" :loading="previewDialog.submitting" @click="submitGenerateFee"> <el-button type="primary" :loading="previewDialog.submitting" @click="submitGenerateFee">
提交 提交
</el-button> </el-button>
@@ -1857,7 +1857,7 @@ export default {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 14px;
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
+1 -1
View File
@@ -1094,7 +1094,7 @@ export default {
} }
.user-edit-dialog .el-form-item { .user-edit-dialog .el-form-item {
margin-bottom: 16px; margin-bottom: 14px;
} }
.user-edit-dialog .el-form-item__label { .user-edit-dialog .el-form-item__label {
+17 -17
View File
@@ -809,12 +809,12 @@
</el-dialog> </el-dialog>
<div class="archive-form__footer"> <div class="archive-form__footer">
<el-button v-if="!isArchivePage || readonly" @click="closeArchive"> <!-- 次要独立页返回 / 只读关闭 / 弹窗取消 -->
{{ isArchivePage ? '返回' : readonly ? '关闭' : '取消' }} <el-button @click="closeArchive">{{
</el-button> readonly ? '关闭' : isArchivePage ? '返回' : '取消'
<el-button type="primary" v-if="!readonly" @click="saveArchive">保存</el-button> }}</el-button>
<el-button type="success" v-if="!readonly" @click="saveAndSubmitArchive">提交</el-button> <el-button type="primary" plain v-if="!readonly" @click="saveArchive">保存</el-button>
<el-button v-if="!readonly && !isArchivePage" @click="closeArchive">返回</el-button> <el-button type="primary" v-if="!readonly" @click="saveAndSubmitArchive">提交</el-button>
</div> </div>
</component> </component>
@@ -875,8 +875,8 @@
</section-card> </section-card>
<template #footer> <template #footer>
<div class="contact-dialog__footer-actions"> <div class="contact-dialog__footer-actions">
<el-button type="primary" @click="saveContact">保存</el-button>
<el-button @click="contactBox = false">返回</el-button> <el-button @click="contactBox = false">返回</el-button>
<el-button type="primary" plain @click="saveContact">保存</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@@ -973,8 +973,8 @@
</section-card> </section-card>
<template #footer> <template #footer>
<div class="receipt-dialog__footer-actions"> <div class="receipt-dialog__footer-actions">
<el-button type="primary" @click="saveReceipt">保存</el-button>
<el-button @click="receiptBox = false">返回</el-button> <el-button @click="receiptBox = false">返回</el-button>
<el-button type="primary" plain @click="saveReceipt">保存</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@@ -1093,8 +1093,8 @@
</el-form> </el-form>
<template #footer> <template #footer>
<div class="invoice-dialog__footer-actions"> <div class="invoice-dialog__footer-actions">
<el-button type="primary" @click="saveInvoice">保存</el-button>
<el-button @click="invoiceBox = false">返回</el-button> <el-button @click="invoiceBox = false">返回</el-button>
<el-button type="primary" plain @click="saveInvoice">保存</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@@ -1239,7 +1239,7 @@
</el-input> </el-input>
</template> </template>
<template v-else> <template v-else>
<div class="score-standard-cell__label">请选择</div> <!-- <div class="score-standard-cell__label">请选择</div>-->
<el-select <el-select
v-model="detail.selectedOption" v-model="detail.selectedOption"
filterable filterable
@@ -1356,7 +1356,8 @@
<span>自评{{ formatScoreValue(currentScore.selfScore) }}</span> <span>自评{{ formatScoreValue(currentScore.selfScore) }}</span>
<span>复评{{ formatScoreValue(currentScore.reviewScore) }}</span> <span>复评{{ formatScoreValue(currentScore.reviewScore) }}</span>
</div> </div>
<el-button type="primary" v-if="!readonly" @click="saveScoreDetail">保存</el-button> <el-button @click="scoreBox = false">返回</el-button>
<el-button type="primary" plain v-if="!readonly" @click="saveScoreDetail">保存</el-button>
<el-button <el-button
v-if="!readonly && hasPermission('customer_type_re_cert')" v-if="!readonly && hasPermission('customer_type_re_cert')"
type="primary" type="primary"
@@ -1364,7 +1365,6 @@
> >
复评确认 复评确认
</el-button> </el-button>
<el-button @click="scoreBox = false">返回</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@@ -4875,7 +4875,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
min-height: 104px; //min-height: 104px;
padding: 8px 24px; padding: 8px 24px;
} }
@@ -4895,7 +4895,7 @@ export default {
} }
:deep(.el-table__body td) { :deep(.el-table__body td) {
min-height: 112px; //min-height: 112px;
color: #303133; color: #303133;
} }
@@ -4958,7 +4958,7 @@ export default {
.contact-dialog__footer-actions { .contact-dialog__footer-actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 12px; gap: 12px;
} }
@@ -4971,13 +4971,13 @@ export default {
.receipt-dialog__footer-actions { .receipt-dialog__footer-actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 12px; gap: 12px;
} }
.invoice-dialog__footer-actions { .invoice-dialog__footer-actions {
display: flex; display: flex;
justify-content: center; justify-content: flex-end;
gap: 12px; gap: 12px;
} }