diff --git a/.workbuddy/memory/2026-08-27.md b/.workbuddy/memory/2026-08-27.md new file mode 100644 index 0000000..223e37b --- /dev/null +++ b/.workbuddy/memory/2026-08-27.md @@ -0,0 +1,30 @@ +# 2026-08-27 工作日志 + +## 全站底部操作栏「返回」按钮统一改为「取消」 +- 起因:用户访问 `/vehicle/customer-archive/form` 独立表单页,指出底部「返回」按钮应全站统一为「取消」。 +- 改动文件(模板/逻辑中的「返回」→「取消」): + - `src/views/vehicle/customer-archive.vue`:主表单页 footer 逻辑 `readonly ? '关闭' : isArchivePage ? '返回' : '取消'` → `readonly ? '关闭' : '取消'`;4 处子弹窗(contact/receipt/invoice/score)`>返回` → `>取消`(replace_all)。 + - `src/views/payment/invoice-receipt-form.vue`、`payment-application-form.vue`、`payment/payment-application-form.vue`:`goBack` 返回按钮 →「取消」。 + - `src/views/business/components/master-order-editor.vue`、`master-order-dispatch.vue`、`master-order-detail.vue`:`$emit('back')` 返回按钮 →「取消」。 + - `src/views/business/components/business-crud-page.vue`:运输计划导入弹窗关闭按钮 →「取消」。 + - `src/views/system/user.vue`:用户弹窗关闭按钮 →「取消」。 + - `src/views/business/project-apply.vue`:独立表单页(isProjectFormPage)`closeProjectForm` 返回按钮 ×2 →「取消」。 +- 未改动:`src/lang/zh.js` 登录 i18n 段 `back: '返回'`(无 `$t('back')` 引用,属登录流程返回,非业务 footer 操作栏)。 +- 规范固化:更新 MEMORY.md「弹窗 / 独立表单页底栏按钮统一规则」,明确全站底部操作栏「返回」统一为「取消」,仅只读查看 / 纯关闭场景保留「关闭」。 + +## 发货模板独立表单页(shipping-template/form)footer 缺「取消」+ 去图标 +- 起因:用户访问 `/business/shipping-template/form?mode=add`,指出底部按钮缺「取消」且不需要图标(统一只要文字)。 +- 该页极薄,仅 ``,footer 由 `business-crud-page.vue` 的 `PageAvueForm` 渲染。 +- 改动(`src/views/business/components/business-crud-page.vue`): + - `#menu-form-before` 次要按钮 `关闭` → `取消`(条件 `isStandaloneFormPage && !showTransportPlanCreateActions`),影响 `/waybill-manage/form`、`/transport-plan/form`、`/shipping-template/form` 三处独立表单页。 + - `#menu-form` 的运输计划创建模式次要按钮 `关闭` → `取消`。 + - 新增样式 `:global(.business-crud-form-page-dialog .avue-form__menu .el-icon){display:none}`:Avue 的 `avue-form` 提交/清空按钮内置图标(`submitIcon:'el-icon-check'`、`emptyIcon:'el-icon-delete'`),且 Avue 源码用 `||` 兜底无法通过 option 去除,故用 CSS 在独立表单页容器内统一隐藏图标,仅保留文字,不影响其它弹窗。 +- 规范固化:MEMORY.md「弹窗 / 独立表单页底栏按钮统一规则」补充「独立表单页 Avue 表单 footer 去图标(统一纯文字)」说明。 + +## 底部操作栏按钮间距统一去 gap +- 起因:用户指出这些底部按钮间距不一致,要求统一,并把用了 `gap` 的全部去掉。 +- 方案:所有底部操作栏(footer / `__actions` / `page-actions`)**移除 `gap`**,间距统一回落到 Element Plus 全局默认的相邻按钮 `.el-button+.el-button{margin-left:12px}`(恒为 12px),不再散落 `gap:8/12/16px`。 +- 全局对齐:`.el-dialog__footer .el-button + .el-button` 由 `margin-left:8px` 改为 `12px`(`src/styles/element-ui.scss`),使弹窗 footer 也与之一致。 +- 已去 gap 的 footer 容器:`vehicle/customer-archive.vue`(`.archive-form__footer`)、`business/components/master-order-editor.vue`(`footer`)、`business/components/master-order-dispatch.vue`(`.segment-actions`/`.pending-actions`)、`business/project-apply.vue`(`.project-apply-dialog__footer`)、`business/components/business-crud-page.vue`(`.business-crud-form-page-dialog .avue-form__menu`)、payment 6 个表单页(`*__actions`)、`settlement/components/pre-settlement-editor.vue`(`&__page-actions`)、`settlement/components/formal-settlement-editor.vue`(`.formal-editor__page-actions`)、`settlement/receivable-payable-detail.vue`(`.settlement-detail-page__actions`)。 +- 风控:确认 Avue 的 `.avue-form__menu`/`.avue-dialog__footer` 自身不带按钮间距,去掉 gap 后由 EP 默认 12px margin 接管(不会贴死)。 +- 范围说明:本次聚焦近几轮在统一的模块(vehicle/payment/business/settlement)。若要把 loading-manage、contract-manage、transit 等其它模块的底部栏也纳入,需再处理。 diff --git a/.workbuddy/memory/MEMORY.md b/.workbuddy/memory/MEMORY.md index 1383f44..ce2389b 100644 --- a/.workbuddy/memory/MEMORY.md +++ b/.workbuddy/memory/MEMORY.md @@ -38,8 +38,8 @@ ### 弹窗 / 独立表单页底栏按钮统一规则 - **排序**:从左到右按次→主排(次要居左、主操作居右),主操作永远放最后。 - - 顺序模板:`[可选辅助工具(如同步/导入)][返回/取消][保存草稿][提交/确认]` -- **容器布局**:`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); }`。 + - 顺序模板:`[可选辅助工具(如同步/导入)][取消][保存草稿][提交/确认]` +- **容器布局(2026-08-27 改为「去 gap」)**:`display:flex; justify-content:flex-end;`(**不写 `gap`**)。按钮间距统一由 Element Plus 全局默认的相邻按钮 `.el-button+.el-button{margin-left:12px}` 提供,全站恒为 12px。原各 footer 写死的 `gap:8/12px` 已全部移除。`src/styles/element-ui.scss` 里 `.el-dialog__footer .el-button + .el-button` 也已从 `8px` 改 `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 { @@ -53,7 +53,8 @@ - **颜色层级 3 档**: | 语义 | type | 备注 | | --- | --- | --- | - | 次要(返回 / 取消 / 关闭) | 不写 type(默认) | 灰描边 | + | 次要(取消 / 关闭) | 不写 type(默认) | 灰描边 | + - **全站底部操作栏「返回」已统一改为「取消」**:独立表单页返回列表、弹窗关闭、主从编辑器返回等场景一律写「取消」;仅只读查看 / 纯关闭场景保留「关闭」。 | 中间步骤(保存草稿 / 按匹配结果更新) | `type="primary" plain` | 蓝描边 | | 主操作(提交 / 完成对账 / 复评确认) | `type="primary"` | 蓝实心 | - **禁区**: @@ -62,11 +63,11 @@ - **生效页面(已按规则统一)**: - `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` 主 `