From 99d6284a588485da3240b813286be9b2a20d391b 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, 28 Aug 2026 14:56:37 +0800
Subject: [PATCH 1/3] =?UTF-8?q?style(billing-plan-editor):=20=E4=BD=BF?=
=?UTF-8?q?=E7=94=A8=20SectionCard=20=E5=8C=85=E8=A3=B9=E8=AE=A1=E8=B4=B9?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E7=BC=96=E8=BE=91=E5=8C=BA=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 引入 SectionCard 组件包裹计费方案显示和编辑区域
- 为默认方案信息添加带提示的 Info 图标和 Tooltip
- 优化模板缩进和结构,提升可读性
feat(contract-manage): 优化合同管理搜索和操作栏体验
- 允许签约类型字段作为搜索条件且支持排序和提示
- 将签约类型从快捷搜索区移动到标准搜索表单中
- 废除冗余的 contractSignType 状态,使用表单绑定自动处理
- 调整搜索栏快捷筛选区域顺序,实现与按钮组的视觉统一
fix(contract-manage): 修正底部操作栏文案及按钮显示逻辑
- 底部操作栏将“关闭”文案修改为“取消”,符合统一规范
- 草稿编辑页底部按钮增加[暂存/提交临时/提交正式],一致新增页操作
- 按钮样式调整,采用右侧对齐并使用按键间距12px替代gap
style(contract-manage-change): 统一变更页底部操作栏样式和交互
- 底部操作栏使用固定悬浮布局,避免内容被遮挡
- 调整按钮顺序为[取消][提交],并修改“关闭”为“取消”
- 增加统一的按钮间距与操作栏背景和阴影样式
- 为页面容器添加底部内边距,保障悬浮栏空间
style(contract-manage): 修复“合同文件”标题样式加粗问题
- 补充 scoped 样式,利用 :deep 影响子组件中标题的字体加粗和颜色
fix(customer-archive): 调整文本行高以优化显示效果
- 将内容文本的行高从18px调整为16px,提升视觉紧凑度
style(customer-archive): 调整必填项标签布局
- 删除因padding造成的标签视觉错位,确保label与控件垂直居中对齐
---
.workbuddy/memory/2026-08-28.md | 35 +++++
src/option/business/contract-manage.js | 5 +-
.../components/billing-plan-editor.vue | 124 +++++++++---------
src/views/business/contract-manage-change.vue | 41 +++++-
src/views/business/contract-manage.vue | 54 ++++----
src/views/vehicle/customer-archive.vue | 4 +-
6 files changed, 170 insertions(+), 93 deletions(-)
create mode 100644 .workbuddy/memory/2026-08-28.md
diff --git a/.workbuddy/memory/2026-08-28.md b/.workbuddy/memory/2026-08-28.md
new file mode 100644
index 0000000..900be52
--- /dev/null
+++ b/.workbuddy/memory/2026-08-28.md
@@ -0,0 +1,35 @@
+# 2026-08-28 工作日志
+
+## contract-manage 表单底部操作栏间距/文案修复
+- 文件:`src/views/business/contract-manage.vue`
+- 问题:底部浮动操作栏 `.contract-manage-page__footer` 用 `gap:8px`,与全站统一 12px 标准不一致("间距不一致不统一")。
+- 修复:去掉 `gap:8px`,改用 `.el-button + .el-button { margin-left:12px }`,对齐全站"去 gap、12px"规范。
+- 文案:底部"关闭"→"取消"(底部操作栏统一命名规范;详情弹窗/流程图弹窗的"关闭"为只读/纯关闭场景,按规范保留)。
+
+## contract-manage 草稿编辑页按钮缺失修复
+- 问题:编辑态(含草稿编辑)底部只有单个"提交"(submitEdit),缺"暂存/提交临时合同/提交正式合同",与新增页不一致。
+- 修复:新增 computed `isDraftEdit`(`formMode==='edit' && form.approvalStatus==='draft'`);footer 三按钮条件由 `formMode==='add'` 改为 `formMode==='add' || isDraftEdit`,草稿编辑复用 `submitCreate`(按 id upsert + temporary/formal 提升),非草稿编辑仍走 submitEdit 单个"提交"。
+
+## contract-manage-change 变更页底部操作栏统一改造
+- 文件:`src/views/business/contract-manage-change.vue`
+- 问题:`.page-footer` 左侧对齐、`gap:16px`、不悬浮,且按钮顺序/命名(提交→关闭)与新增页规范相反。
+- 修复:
+ - DOM:按钮重排为 `[取消][提交]`(次要居左、主操作居右),"关闭"→"取消"。
+ - 样式:`.page-footer` 改为 `position:fixed` 悬浮吸底(left:230px / avue--collapse 60px / avue-layout--horizontal 0)、`justify-content:flex-end` 右对齐、去 gap 改用 `.el-button+.el-button{margin-left:12px}` 统一 12px、白底+上边框+上投影。
+ - 容器 `.contract-change-page` 加 `padding-bottom:72px`,避免内容被悬浮栏遮挡。
+
+## contract-manage 新增页"合同文件"标题未加粗修复
+- 文件:`src/views/business/contract-manage.vue`
+- 问题:`attachment-section` 子组件内渲染的 `.dialog-section-title` 不受当前页面 scoped `> .dialog-section-title` 样式命中,导致"合同文件"标题字重未加粗(截图反馈)。
+- 修复:在 `.contract-manage-form__section` 样式规则中补充 `:deep(.dialog-section-title)`,使直接子元素和子组件内部标题均统一为 16px/600/#303133。
+
+## contract-manage 搜索栏"时间段快捷筛选"组位置前置
+- 文件:`src/views/business/contract-manage.vue` + `src/option/business/contract-manage.js`
+- 第一轮(理解偏差):把"签约类型"select 和 check-tag 组一起塞进 `#search-menu` slot。主人纠正:「签约类型」是普通搜索字段,应与第一行 8 个搜索项同排,不是 slot 内的辅助元素。
+- 第二轮(终态):
+ - option 把 `signType` 加 `search:true / searchOrder:10 / searchPlaceholder:'请选择'`,作为 Avue 标准搜索字段,与其它 8 项同排(放在末尾)。
+ - 页面 `#search-menu` slot 移除「签约类型」select,仅留 5 个 el-check-tag。
+ - 页面 data 移除冗余的 `contractSignType:''`,onLoad/searchReset 不再手动维护 signType(Avue search form 自动绑定到 query)。
+ - 样式:`.el-select { width: 180px }` 已成 dead code,移除。
+ - `:deep(...)` 调整:去掉 `margin-right:auto`,只留 `order:-1`。`.avue-form__menu` 本身 `flex / flex-end`,check-tag 组排首项后,整体仍紧靠右侧,与 `[查询][重置][收起]` 形成 `[快捷筛选] [查询] [重置] [收起]` 右对齐序列。
+
diff --git a/src/option/business/contract-manage.js b/src/option/business/contract-manage.js
index c604260..77bfd77 100644
--- a/src/option/business/contract-manage.js
+++ b/src/option/business/contract-manage.js
@@ -251,6 +251,7 @@ export const option = createCrudOption([
searchPlaceholder: '请输入',
order: 180,
slot: true,
+ overHidden: true,
minWidth: 240,
rules: textRule('合同名称', 100, true),
},
@@ -318,7 +319,9 @@ export const option = createCrudOption([
label: '签约类型',
prop: 'signType',
type: 'select',
- search: false,
+ search: true,
+ searchOrder: 10,
+ searchPlaceholder: '请选择',
span: 8,
order: 190,
dicData: signTypeOptions,
diff --git a/src/views/business/components/billing-plan-editor.vue b/src/views/business/components/billing-plan-editor.vue
index cdd47a4..6876eae 100644
--- a/src/views/business/components/billing-plan-editor.vue
+++ b/src/views/business/components/billing-plan-editor.vue
@@ -6,68 +6,72 @@
append-to-body
destroy-on-close
>
-