Selaa lähdekoodia

docs: mark alias-brand manage implementation plan tasks complete.

Co-authored-by: Cursor <cursoragent@cursor.com>
zlwu 2 kuukautta sitten
vanhempi
commit
05350a99a6

+ 15 - 15
docs/superpowers/plans/2026-08-07-quote-contract-alias-brand-manage.md

@@ -1,6 +1,6 @@
 # 报价/合同明细别名与品牌就地维护 Implementation Plan
 
-> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [x]`) syntax for tracking.
 
 **Goal:** 在报价单与合同产品明细的别名/品牌列旁增加维护入口,弹窗内 CRUD 写回产品主数据并立即刷新同行下拉。
 
@@ -28,7 +28,7 @@
 **Files:**
 - Modify: `web-admin/src/utils/crm-product-brand.ts`
 
-- [ ] **Step 1: 扩展 `LineAliasBrand` 并新增 `applyManagedProductMetaToLines`**
+- [x] **Step 1: 扩展 `LineAliasBrand` 并新增 `applyManagedProductMetaToLines`**
 
 在文件末尾(`prepareLineAliasAndBrandForSubmit` 附近)将 `LineAliasBrand` 增加可选 `productId`,并导出:
 
@@ -83,7 +83,7 @@ export function applyManagedProductMetaToLines(
 
 若 `LineAliasBrand` 当前未 export,保持内部 type,函数参数用内联类型或 export 该 type 均可;关键是函数必须 `export`。
 
-- [ ] **Step 2: Commit**
+- [x] **Step 2: Commit**
 
 ```bash
 git add web-admin/src/utils/crm-product-brand.ts
@@ -101,7 +101,7 @@ EOF
 **Files:**
 - Create: `web-admin/src/components/business/product-alias-brand-dialog/index.vue`
 
-- [ ] **Step 1: 创建完整组件**
+- [x] **Step 1: 创建完整组件**
 
 按下列结构实现(样式可从 `product-form-dialog/index.vue` 的 `.sub-card-*` 拷贝到本组件 scoped):
 
@@ -251,7 +251,7 @@ async function submitForm() {
 
 品牌模板完整字段与 `product-form-dialog` 一致(`el-select` + `dictStore.getOptions('crm_product_status')`)。
 
-- [ ] **Step 2: Commit**
+- [x] **Step 2: Commit**
 
 ```bash
 git add web-admin/src/components/business/product-alias-brand-dialog/index.vue
@@ -269,7 +269,7 @@ EOF
 **Files:**
 - Modify: `web-admin/src/views/crm/quote/components/QuoteFormPanel.vue`
 
-- [ ] **Step 1: 模板 — 别名/品牌列改为「控件 + icon」**
+- [x] **Step 1: 模板 — 别名/品牌列改为「控件 + icon」**
 
 将别名列改为(品牌列同理,`mode`/`openManage` 参数换成 brand):
 
@@ -310,7 +310,7 @@ EOF
 
 品牌列:保留现有 `el-select` + `@change="handleBrandIdChange"`,外包同一 `line-meta-cell`,icon 调 `openAliasBrandManage(scope.row, 'brand')`。
 
-- [ ] **Step 2: 挂载弹窗 + script**
+- [x] **Step 2: 挂载弹窗 + script**
 
 在模板合适位置(产品选择器旁)增加:
 
@@ -378,7 +378,7 @@ Scoped 样式:
 }
 ```
 
-- [ ] **Step 3: 手动冒烟(报价)**
+- [x] **Step 3: 手动冒烟(报价)**
 
 在 `/#/crm/quote` 打开新增/编辑:
 
@@ -386,7 +386,7 @@ Scoped 样式:
 2. 品牌同理  
 3. 取消弹窗后主数据不变  
 
-- [ ] **Step 4: Commit**
+- [x] **Step 4: Commit**
 
 ```bash
 git add web-admin/src/views/crm/quote/components/QuoteFormPanel.vue
@@ -404,17 +404,17 @@ EOF
 **Files:**
 - Modify: `web-admin/src/views/crm/contract/components/ContractFormDialog.vue`
 
-- [ ] **Step 1: 与 Task 3 相同的列布局、弹窗挂载、`openAliasBrandManage` / `handleAliasBrandManaged`**
+- [x] **Step 1: 与 Task 3 相同的列布局、弹窗挂载、`openAliasBrandManage` / `handleAliasBrandManaged`**
 
 区别仅类型为合同产品行(`ExtendedContractProductForm` 或现有行类型),刷新目标为 `form.value.products`。
 
 导入路径、组件名、样式类名与报价保持一致,避免两套 class。
 
-- [ ] **Step 2: 手动冒烟(合同)**
+- [x] **Step 2: 手动冒烟(合同)**
 
 在 `/#/crm/contract` 新增/编辑合同明细:重复报价侧验收;另测「同一产品两行时维护一次两边 options 同步」。
 
-- [ ] **Step 3: Commit**
+- [x] **Step 3: Commit**
 
 ```bash
 git add web-admin/src/views/crm/contract/components/ContractFormDialog.vue
@@ -429,7 +429,7 @@ EOF
 
 ### Task 5: 验收收尾与图谱
 
-- [ ] **Step 1: 按 spec §7 全量手工验收**
+- [x] **Step 1: 按 spec §7 全量手工验收**
 
 | # | 检查项 |
 |---|--------|
@@ -441,13 +441,13 @@ EOF
 | 6 | 报价与合同行为一致 |
 | 7 | 取消/关闭不落库 |
 
-- [ ] **Step 2: 更新前端图谱**
+- [x] **Step 2: 更新前端图谱**
 
 ```bash
 ./scripts/update-graph.sh frontend
 ```
 
-- [ ] **Step 3: 将设计文档状态改为已实现(可选同 commit)**
+- [x] **Step 3: 将设计文档状态改为已实现(可选同 commit)**
 
 修改 `docs/superpowers/specs/2026-08-07-quote-contract-alias-brand-manage-design.md` 顶部:`状态:待实现` → `状态:已实现`。