Files
shanxia2.0/docs/crm-migration/plans/contract/08-verify.md
T
2026-06-01 08:21:21 +08:00

4.1 KiB
Raw Blame History

合同管理模块 — 08 验证清单

阶段 E 步骤 28 产出 | 日期:2026-05-31
代码审查 + 构建验证已完成;浏览器联调手测项建议在测试环境复验。


构建与注册

  • pnpm build 通过(web-admin)
  • 路由注册:crm.py → register_contract_routes + register_contract_sub_routes
  • 前端 API 基路径 /web/crm/contract,HTTP 动词对齐 Java(GET/PUT/DELETE/POST)
  • DDL 已在测试库执行(步骤 14)

功能验证(代码对齐)

列表 Tab

  • 7 个 Tab:my / all / submitted / approved / executing / finished / invalid
  • handleViewChange 设置 ownerUserId / pendingApprovalUserId / approvedByUserId / status
  • 非「已作废」Tab 默认 excludeStatus=invalid(getList)
  • 后端 build_query_wrapper 支持上述筛选字段
  • 统计卡片由当前页列表前端聚合(loadStatistics)
  • Tab 切换后数据与权限角色一致(手测)

筛选 / 分页 / 展开

  • 筛选区:合同编号/名称/客户、类型、状态、审批状态、签订日期
  • 快捷日期 + 快速搜索 OR 三字段
  • 查询/重置触发 getList,分页绑定 pageNum / pageSize
  • 行展开懒加载产品明细(getContractDetail)
  • 筛选组合与导出结果一致(手测)

审批流

  • ApprovalDialog:提交 / 批量提交 / 通过 / 驳回 / 撤回
  • 前端状态校验:仅 draft 可提交;对话框 Fresh Mint
  • 后端:submit_contract_approval / batch_submit / withdraw + approve_contract_by_contract_id
  • 多步审批:选下一步审批人、会签/或签(手测;当前对话框为顺序多选审批人)
  • 待审批 Tab 仅见 canApprove=true 行(手测)

执行 / 完成 / 作废

  • ExecuteDialog:开始执行(startExecute)/ 完成(finishContract)
  • InvalidDialog:作废原因字典 + 二次确认 + 回款/开票风险提示
  • 状态机:approved→executing→finished;非 finished 可 invalid
  • 执行汇总金额与详情一致(手测)

附件 / 导出

  • UploadDialog:分类上传、MinIO、保存 uploadAttachments
  • 列表导出 exportContract → POST /export xlsx
  • 导出列与字典翻译正确(手测)
  • 附件预览/下载/删除(手测)

跨模块

  • 报价转合同:createFromQuote + quote.to_contract 已恢复
  • 商机转合同、续签、签约、批量分配负责人(手测)
  • 回款/开票金额回写 updateReceivedAmount / updateInvoiceAmount(手测,依赖回款/开票模块)

UI 合规(Fresh Mint)

  • 列表单 panel-top 标题「合同管理」
  • 工具栏「已选 N 项」在前;仅首个主按钮 type="primary"
  • 4 子对话框 + 列设置/详情弹窗:align-center、dialog-form-layout、order-module-dialog-mask
  • 子对话框 label-position="top";footer Close/Check 图标
  • 状态/审批状态列与详情:el-tag + dictStore.getTagType
  • 操作列 fixed="right",min-width="260"

权限

  • useContractPerm + hasContractPerm 替代 v-hasPermi(列表/详情/变更/模板/审批子页)
  • 测试角色勾选 crm:contract:* 后按钮可见性(手测)

子模块(变更 / 模板 / 审批独立页)

  • 后端 crm_contract_sub_routes.py:change / template / approval CRUD + export + transfer
  • 前端页面与 API 文件齐全(Fresh Mint 适配在步骤 7–10 完成)
  • 变更提交/执行、模板启停、审批转办(手测)

回归

  • 报价单列表「转合同」链路(手测)
  • 客户详情弹窗引用合同 types 未破坏(手测)
  • 产品/客户/报价模块未受影响(手测)

手测建议顺序

  1. 登录测试租户 → 合同列表 7 Tab 各点一次
  2. 筛选 + 分页 + 行展开产品
  3. 草稿 → 提交审批 → 待审批 Tab 通过/驳回
  4. 已通过 → 开始执行 → 完成
  5. 另选合同 → 作废
  6. 上传扫描件 → 导出 xlsx
  7. 报价单 → 转合同