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 > - - {{ - displayValue(draft.planName) - }} - {{ - transportModeLabel(draft.transportMode) - }} - {{ - isDefaultPlan(draft) ? '是' : '否' - }} - {{ displayValue(draft.remark) }} - - - - + + {{ + displayValue(draft.planName) + }} + {{ + transportModeLabel(draft.transportMode) + }} + {{ + isDefaultPlan(draft) ? '是' : '否' + }} + {{ displayValue(draft.remark) }} + + + + - + - + 默认方案 - >默认方案 + - + - - + > + + +
+添加规则
@@ -362,6 +366,7 @@ import { getList as getFeeItemList } from '@/api/base/fee-item'; import { getLazyTree as getRegionLazyTree } from '@/api/base/region'; import { InfoFilled } from '@element-plus/icons-vue'; import { getDictionary } from '@/api/system/dictbiz'; +import SectionCard from '@/components/section-card/main.vue'; const clone = value => JSON.parse(JSON.stringify(value)); const defaultRule = () => ({ @@ -391,7 +396,7 @@ const defaultRule = () => ({ }); export default { - components: { InfoFilled }, + components: { SectionCard, InfoFilled }, props: { modelValue: Boolean, value: { type: Object, default: () => ({}) }, @@ -874,9 +879,6 @@ export default { this.visible = false; }); }, - showDefaultPlanTip() { - this.$message.info('同一运输方式仅支持配置一个默认计费方案'); - }, openMatch(row, index) { this.matchIndex = index; this.matchForm = { ...defaultRule().matchCondition, ...(row.matchCondition || {}) }; diff --git a/src/views/business/contract-manage-change.vue b/src/views/business/contract-manage-change.vue index 3a4267e..53746e9 100644 --- a/src/views/business/contract-manage-change.vue +++ b/src/views/business/contract-manage-change.vue @@ -83,7 +83,10 @@
变更原因
变更材料
上传变更材料
- + @@ -151,11 +154,11 @@ export default { }; - diff --git a/src/views/business/contract-manage.vue b/src/views/business/contract-manage.vue index 7399584..acc3e1f 100644 --- a/src/views/business/contract-manage.vue +++ b/src/views/business/contract-manage.vue @@ -33,16 +33,7 @@