This commit is contained in:
zlwu committed 2026-08-17 09:22:31 +08:00
1 parent 42ad896456
commit 6b2147aa46
66 files changed
+617071 -28046

No files matched your search

@@ -31,7 +31,7 @@
**Files:**
- Create: `backend/scripts/migrate_20260816_crm_settlement_method_options.sql`
- [ ] **Step 1: 写入幂等 INSERT**
- [x] **Step 1: 写入幂等 INSERT**
```sql
-- backend/scripts/migrate_20260816_crm_settlement_method_options.sql
@@ -69,7 +69,7 @@ ON DUPLICATE KEY UPDATE
`update_time` = NOW();
```
- [ ] **Step 2: 在目标库执行该 SQL,刷新管理端字典缓存后确认下拉出现 6 项**
- [x] **Step 2: 在目标库执行该 SQL,刷新管理端字典缓存后确认下拉出现 6 项**
---
@@ -79,7 +79,7 @@ ON DUPLICATE KEY UPDATE
- Create: `backend/app/services/crm_settlement_clause.py`
- Create: `backend/tests/test_crm_settlement_clause.py`
- [ ] **Step 1: 先写失败单测**
- [x] **Step 1: 先写失败单测**
```python
# backend/tests/test_crm_settlement_clause.py
@@ -115,7 +115,7 @@ def test_empty_falls_back_to_arrive():
assert default_settlement_clause(None) == default_settlement_clause("arrive_payment")
```
- [ ] **Step 2: 运行确认失败**
- [x] **Step 2: 运行确认失败**
```bash
cd backend && source venv/bin/activate && pytest tests/test_crm_settlement_clause.py -v
@@ -123,7 +123,7 @@ cd backend && source venv/bin/activate && pytest tests/test_crm_settlement_claus
Expected: FAIL(模块不存在)
- [ ] **Step 3: 实现纯函数**
- [x] **Step 3: 实现纯函数**
```python
# backend/app/services/crm_settlement_clause.py
@@ -163,7 +163,7 @@ def default_settlement_clause(settlement_method: Optional[str]) -> str:
return ARRIVE_CLAUSE
```
- [ ] **Step 4: 再跑单测,期望全部 PASS**
- [x] **Step 4: 再跑单测,期望全部 PASS**
```bash
cd backend && source venv/bin/activate && pytest tests/test_crm_settlement_clause.py -v
@@ -176,13 +176,13 @@ cd backend && source venv/bin/activate && pytest tests/test_crm_settlement_claus
**Files:**
- Modify: `backend/app/crud/crm/contract.py`(`save_template` 内空草稿兜底,约 1661–1669 行)
- [ ] **Step 1: 增加 import**
- [x] **Step 1: 增加 import**
```python
from app.services.crm_settlement_clause import default_settlement_clause
```
- [ ] **Step 2: 替换空草稿兜底**
- [x] **Step 2: 替换空草稿兜底**
将:
@@ -213,7 +213,7 @@ drafts = json.dumps(
**Files:**
- Create: `web-admin/src/views/crm/contract/settlementClause.ts`
- [ ] **Step 1: 新增共享模块**
- [x] **Step 1: 新增共享模块**
```typescript
/** 与后端 app.services.crm_settlement_clause 保持一致 */
@@ -282,7 +282,7 @@ export function resolveSettlementClauseContent(options: {
**Files:**
- Modify: `web-admin/src/views/crm/contract/components/ContractDetailDialog.vue`
- [ ] **Step 1: import**
- [x] **Step 1: import**
```typescript
import {
@@ -291,7 +291,7 @@ import {
} from '../settlementClause'
```
- [ ] **Step 2: 删除组件内重复的 `getDefaultSettlementClauseContent` / 内层 `parseSettlementClauseDrafts`(`replacePlaceholders` 内与文件级各一处),改为调用共享函数**
- [x] **Step 2: 删除组件内重复的 `getDefaultSettlementClauseContent` / 内层 `parseSettlementClauseDrafts`(`replacePlaceholders` 内与文件级各一处),改为调用共享函数**
在 `replacePlaceholders` 内,第五条取值改为:
@@ -306,7 +306,7 @@ const getSettlementClauseContent = (): string =>
文件级若仍有 `parseSettlementClauseDrafts` 供保存草稿使用,改为直接使用 import 的同名函数,删除本地实现。
- [ ] **Step 3: 手工验证**
- [ ] **Step 3: 手工验证**(需在浏览器确认)
1. 选月结 → 打开打印 → 第五条含「结算方式:月结。」
2. 选手改第五条并保存 → 再打开仍为改后文案
@@ -320,7 +320,7 @@ const getSettlementClauseContent = (): string =>
**Files:**
- Modify: `web-admin/src/views/crm/contract/detail.vue`
- [ ] **Step 1: 同样 import `resolveSettlementClauseContent` / `parseSettlementClauseDrafts`,删除本地重复实现,第五条解析走共享函数**(与 Task 5 相同规则)
- [x] **Step 1: 同样 import `resolveSettlementClauseContent` / `parseSettlementClauseDrafts`,删除本地重复实现,第五条解析走共享函数**(与 Task 5 相同规则)
若该页已废弃不再进入打印路径,仍建议对齐,避免双份逻辑分叉。
@@ -328,7 +328,7 @@ const getSettlementClauseContent = (): string =>
### Task 7: 验收与图谱
- [ ] **Step 1: 再跑**
- [x] **Step 1: 再跑**
```bash
cd backend && source venv/bin/activate && pytest tests/test_crm_settlement_clause.py -v
@@ -336,9 +336,9 @@ cd backend && source venv/bin/activate && pytest tests/test_crm_settlement_claus
Expected: PASS
- [ ] **Step 2: 对照 spec「验收要点」手工走一遍 6 项结算方式**
- [ ] **Step 2: 对照 spec「验收要点」手工走一遍 6 项结算方式**(需在浏览器确认)
- [ ] **Step 3: 更新图谱**
- [x] **Step 3: 更新图谱**
```bash
./scripts/update-graph.sh backend
@@ -1,7 +1,7 @@
# 报价单列表 · 可配置列统计行
**日期:** 2026-08-16
**状态:** 待实现
**状态:** 已实现(V1.5:`6ce755455` / `072790989` / `42ad89645`)
**范围:** `web-admin` 报价单管理主列表(`/#/crm/quote`)
**非目标:** 后端聚合、跨页统计、`ListTable` 通用能力、展开行产品子表、其它业务列表