1.5 KiB
1.5 KiB
合同管理 — 作废恢复
日期: 2026-09-30
状态: 已实现
界面模式: P01 标准列表 + 详情抽屉
参考:InvalidDialog.vue;invalid_contract;加油登记 restore 模式
目标
在「合同管理」为已作废(invalid)合同提供「作废恢复」:恢复为草稿(draft),清空作废原因/时间,需重新提交审批。
已确认规则
| # | 规则 | 决策 |
|---|---|---|
| D1 | 可恢复条件 | 仅 status === 'invalid' |
| D2 | 恢复后状态 | status=draft;清空 invalid_reason / invalid_time;approval_status=None;invalidate_all_approvals(与再编辑回草稿对齐) |
| D3 | 入口 | 详情抽屉 / 详情页 hero:已作废时显示「作废恢复」;列表工具栏:勾选恰好 1 条且为已作废时可点 |
| D4 | 确认文案 | 「确定恢复该合同为草稿吗?恢复后需重新提交审批。」 |
| D5 | 作废弹窗文案 | 去掉「无法恢复」;改为可恢复说明 |
| D6 | 范围 | 仅 web-admin;不改库表结构 |
非目标
- 恢复为已审批 / 执行中 / 作废前状态
- 批量多选恢复
- 小程序
API
| 路径 | 说明 |
|---|---|
PUT /web/crm/contract/restore |
body: { id };仅 invalid → draft;否则 400 |
前端行为
- 详情:
status === 'invalid'显示「作废恢复」,隐藏「作废」 - 列表:
ids.length === 1且选中行status === 'invalid'时工具栏可点 - 成功后刷新列表 / 详情;作废记录区块随字段清空而不再展示