You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
4.1 KiB
46 lines
4.1 KiB
|
16 hours ago
|
# 03 · demo 页新入口扩展
|
||
|
|
|
||
|
|
Type: task
|
||
|
|
Status: resolved
|
||
|
|
|
||
|
|
## Question
|
||
|
|
|
||
|
|
`.scratch/customer-e2e/demo/index.html` 扩展返工后新能力入口,让 demo 页对得上 73 端点契约的用户可感知面:
|
||
|
|
|
||
|
|
1. **战略协议页签**(客户详情下,v29 树拍板「三页物理在客户详情下、单菜单归属」):页签列表 / 新增 / 编辑 / 删除 / 详情,五端点对照 API-SUMMARY §2.6
|
||
|
|
2. **查重设置表单**:GET 回显 + POST save 五字段(§3 rule 族)
|
||
|
|
3. **批量工商更新入口**:选客户 → batch-update → 五状态结果展示(stub 恒 NO_HIT 口径要如实呈现)
|
||
|
|
4. **导入 duplicateStrategy 选项**:现有导入流程加策略下拉(SKIP 回显)
|
||
|
|
|
||
|
|
约束:
|
||
|
|
|
||
|
|
- 页面结构对照原型 txt(`D:\code\crm-需求梳理\lanhu-mcp\data\axure_extract_bade4454_screenshots\`,`.txt` 为主)——战略协议原型有现成页面形态,查重设置对照 A7 规则页
|
||
|
|
- 风格沿用 demo 现有约定:fetch 层统一 api() + qs()、e2c- 命名空间、simbox 确认流、深 tag 无关(demo 无 tag)
|
||
|
|
- fetch 层只写新调用,不动票 10 已对账的 36 处既有调用
|
||
|
|
- 独立于票 01/02(只依赖契约文档),可与两票并行
|
||
|
|
|
||
|
|
## Answer
|
||
|
|
|
||
|
|
(2026-09-05 工作会话)四入口全部落地于 `.scratch/customer-e2e/demo/index.html`(848 → 938 行,+90):
|
||
|
|
|
||
|
|
**1. 战略协议页签**(详情 subtab「战略协议」,插在关联商机与团队成员之间对齐页签序)
|
||
|
|
- 五端点全接:`list?customerId=`(缓存 `window._agreements` 供编辑回显,对称 contacts 惯例)/ `create`(带 customerId=D.id)/ `edit?id=`(**不带 customerId**——归属不可换,以库内为准)/ `delete?id=`(confirm 流)/ `detail?id=`(kv 网格弹窗)
|
||
|
|
- 表单按 `AgreementDTO` 实锤字段:等级 1~3 下拉(一级/二级/三级)、amount 文本、remark、fileFileId(crm-file id 文本框——demo 无上传 UI,如实以 id 引用呈现);67017 走 errbox
|
||
|
|
- 提示条注明快照联动(strategic_agreement_level 删空=未签)与 oplog 三 action
|
||
|
|
|
||
|
|
**2. 查重设置表单**(settings tab 新面板,A7-3-3-2)
|
||
|
|
- GET `/api/rule/customer/dedup` 回显:masterEnabled / nameEnabled + nameMatchMode(1 精确 2 模糊,空→模糊兜底显示)/ similarityThreshold(空→80)/ phoneEnabled
|
||
|
|
- POST save:阈值**空值经 qs() 丢弃**→服务端缺省 80(规避 `Number('')=0` 陷阱);64023 越界提示;面板注明信用代码系统强制恒开无配置列;nav 设置按钮追加 `loadDedup()`
|
||
|
|
|
||
|
|
**3. 批量工商更新(F6)**:列表「选中客户批量操作」栏新按钮;ids 前端拦 100 上限;结果弹窗五状态徽标映射 `CU_ST`(UPDATED 已回填 / SKIPPED 无空缺 / NO_HIT 未命中 / CONFLICT 信用代码冲突 / NOT_FOUND 客户不存在)+ filledFields + message;**stub 恒 NO_HIT 口径在弹窗 hint 如实呈现**
|
||
|
|
|
||
|
|
**4. 导入 duplicateStrategy(F8)**:`impStrategy` 下拉(SKIP 缺省 / OVERWRITE)插入 impMode 与文件框之间;`impUpload()` 追加 `fd.append('duplicateStrategy')`(URL/方法不动),toast 显示响应回显策略;面板 hint 更新 F8 语义(仅作用文件内重复组、不触 SUSPECT)与 67013 非法策略
|
||
|
|
|
||
|
|
**字段名实锤来源**(不猜):`AgreementDTO.java` / `CompanyBatchUpdateDTO.java`(五态常量+customerId/customerName/status/filledFields/message)/ `CustomerAgreementController.java` 源码直读。
|
||
|
|
|
||
|
|
**静态验证**:`node --check`(script 块抽出)PASS;BOM 无(首字节 3C 21 44);39 条唯一 `api()` 路径 = 票 10 已对账 31 条**零扰动** + 新增 8 条(协议×5 / dedup / dedup-save / F6)+ import/upload 原调用加字段;PUT/DELETE/PATCH=0、POST=20。UI 冒烟按票面依赖留给票 05(03+04 齐)。
|
||
|
|
|
||
|
|
**偏差与顺手项记档**:
|
||
|
|
- 原型缓存 `D:\code\crm-需求梳理\...` 不在本机(换机未迁移,Test-Path False)——页面形态按契约 + demo 既有风格落地,无原型像素对照;票 05 若需原型对照需先迁缓存或走 OSS 重拉
|
||
|
|
- 查重试玩面板头「单例未落地=出厂默认」过时文案顺手校正(纯显示,无 API 变化)
|