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.

79 lines
6.1 KiB

20 hours ago
# A7 后台管理验收包(a7-acceptance)
- **生成**:2026-09-09(一期 [a7-parity](../a7-parity/demo/index.html) 12 tab + 二期 [a7-heavy](../a7-heavy/demo/index.html) 3 tab 合并;合并脚本 [_merge_demo.py](_merge_demo.py) 可重放)
- **目标环境**:测试服务 `https://ai.itc.vip/crm-api`(**demo 默认基址已指向,双击即用**;如需换环境,访问一次 `index.html?api=<新基址>` 即被记住)
## 交付物清单
| 文件 | 用途 |
|---|---|
| [demo/index.html](demo/index.html) | **15 tab 统一验收 demo**(双击即用,默认管理员登录入口) |
| [验收步骤清单.md](验收步骤清单.md) | 逐 tab 逐步操作与预期说明,**结果列留白**待验收人填写 |
| [验收结果汇总.md](验收结果汇总.md) | 验收结果登记表(结构化缺陷块,**可整文件回喂 AI 定位修复**) |
| [issues/_TEMPLATE.md](issues/_TEMPLATE.md) | 单缺陷工单模板(本地 issue tracker 惯例,一缺陷一文件) |
| parity-smoke-result.json / heavy-smoke-result.json | 冒烟自测证据(58 步 + 22 步) |
| shots-parity/ · shots-heavy-run/ | 冒烟截图(各 10 张 / 9 张) |
| _merge_demo.py · _check_demo.py · _gen_checklist.py | 再生成 / 静态校验 / 清单再生成工具 |
## 新人上手(4 步)
1. **打开**:双击 `demo/index.html`,页头「API:」应显示 `https://ai.itc.vip/crm-api`
2. **登录**:点「uid 登录」→ 应显示「已登录:罗伟健 (739564171091247104)」。
3. **验收**:按《[验收步骤清单.md](验收步骤清单.md)》逐 tab 从上到下点每个步骤按钮——输出框**绿色 = PASS**,**红色(失败 + code=)= 候选缺陷**;每步结果填进清单结果列。
4. **记缺陷**:FAIL 的按《[验收结果汇总.md](验收结果汇总.md)》格式登记(界面红框原文、执行日志面板里的请求 URL/参数直接复制);每 tab 末尾的「清理」步骤**必须执行**,不留演示数据。
## 覆盖范围(15 tab = A7 全分区)
| tab | 原型分区 | 覆盖 |
|---|---|---|
| 用户管理 user | A7-1 | 用户列表 / 统计三时间戳 / 移交预览·自移交 61019·执行清零·返还 |
| 同步任务 sync | A7-1-2(二期票01) | 任务化契约 SYNC-MMdd / 异步终态 / 61023 并发占位 / 分页倒序 / 详情五块 / 设置读写+61022 / lastSyncTime 切表 |
| 角色管理 role | A7-2 | stats 四计数 / 批量增量分配 / copy 停用草稿 / enable 61021 / 内置角色保护 |
| 权限点管理 res | A7-2 | references 引用清单 / 停启 roundtrip / 禁删两段 61009+61020 |
| 方案推送规则 push | A7-3 | D-01 无步骤④发布 / 4 步骤回显 / 64029 / 64030 / copy / 64027 |
| 项目查重规则 dedup | A7-3 | 发布+referenceCount / 64031 两路 / 引用计数入账 / 64030 / 64033 |
| 项目规则 projrule | A7-3 | current 5 区块聚合 / 分区保存回显 / 64036 比例校验 |
| 线索池 pool | A7-3 线索规则 | 三类异人成员建池回填 / 导出导入 BatchResult / 列表 / 清理 |
| 公海绑定数 poolrule | A7-3-4(二期票03) | 部门专用规则发布 / boundOppCount 增量 base+n / 默认规则兜底 / 清理 |
| 全局日志 glog | A7-4(二期票02 · crm-log) | AOP 采集 / 操作·登录·批量三日志 / 结果文件下载 ZIP / 打包下载 / 40401 形态 / BUDDY 权限拒绝 |
| 字典种子验证 seed | A7-5 | opp_stage 06/07 + opportunity_status 4 值 |
| 分组管理 dgroup | A7-5(v3 契约) | 新建/编辑/启停/删除/设默认值(仅二级项) |
| 字典项管理 ditem | A7-5(v3 契约) | 无键值自动编码 / 组内名称唯一 63007 / 复合子项 / 63013 默认项禁停 |
| 两级树 dtree | A7-5 | 一级列表 + 行内二级展开 |
| 引用计数联测 dref | A7-5 | 客户引用 +1 / 换引用迁移 / 引用项禁删 63009 / 归档保留计数 |
## 登录与账号
- **管理员**:罗伟健 `739564171091247104`(页头默认选中)
- **非管理员**:曾偲青(BUDDY) `744842318024015872`——全局日志 tab 步骤 9 用它验证权限拒绝口径
- 登录通道 = `GET /api/auth/debug/token?userId=`(verify 环境调试通道);输入框可粘贴**任意测试环境 userId** 直登
- 演示数据一律 `e2d-` 前缀可辨;操作/登录/批量日志行与同步任务行为审计数据,留存不删
## 已知边界与争议留白(🟡 不报缺陷)
- 数据共享 3 页(A7-2-3 backup):等原型正式化,未纳入盘点。
- 同步任务两态容忍:测试环境钉钉凭据不可达 → 任务落 all_failed(或长时间 running)为正常形态;61023 并发占位同理。
- lastSyncTime 口径 = 同步任务表最新成功行 endTime,无成功行为空。
- 职务下拉值域来源、「参与商机数」列、池规则冗余列、幻影挂账 3 端点、项目规则「阶段提醒」区块:**争议留白**,见清单尾部待确认清单。
- 全局日志采集 = 写侧(POST)先行不采查询 GET;登录日志仅「退出」钩子采集(debug/token 不走登录采集点)。
## 冒烟自测(可选,验收人自证环境可用)
```bash
# python 用仓库自带 venv;两个脚本均已支持 E2D_* 环境变量
E2D_API=https://ai.itc.vip/crm-api \
E2D_DEMO='E:\code\crm-backend-matt\.scratch\a7-acceptance\demo\index.html' \
E2D_SHOTS='E:\code\crm-backend-matt\.scratch\a7-acceptance\shots-parity' \
E2D_RESULT='E:\code\crm-backend-matt\.scratch\a7-acceptance\parity-smoke-result.json' \
.scratch/customer-e2e/.venv10/Scripts/python.exe .scratch/a7-parity/demo_smoke.py # 一期 58 步
E2D_API=... E2D_DEMO=... E2D_SHOTS='...shots-heavy-run' E2D_RESULT='...heavy-smoke-result.json' \
.scratch/customer-e2e/.venv10/Scripts/python.exe .scratch/a7-heavy/demo_smoke.py # 二期 22 步
```
**最近结论(2026-09-09)**:一期 58/58、二期 22/22 **ALL_PASS**(对测试服务),console/page error 双零(BUDDY 403 拒绝豁免除外),网络层零 PUT/DELETE、零路径变量形态。
## 给负责人的回喂流程
新人填完《验收结果汇总.md》→ **整个文件直接交给 AI**(附本目录与后端仓 `E:\code\crm-backend-matt` 路径)→ AI 按缺陷块逐条定位修复;争议留白项等负责人确认后再改版。