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.
 
 
 
 
 
luoweijian 1e677fce85 ticket16R: 修复 P1 三项——D-01 看板冲突badge/入口仅进行中项目;D-02 状态动作授权 68010(负责人∨管理员∨销售总监);D-03 赢单快照随标记落列。冒烟扩到 35 步全过 15 hours ago
..
README.md ticket14+15: A5 demo 单页(看板7列/列表双筛/详情8页签/状态机全动作/角色切换)+ 种子与 Playwright 冒烟 25 步全过 + 操作说明;悬空字典码回显不再冒充字典名 16 hours ago
debug_login.py ticket14+15: A5 demo 单页(看板7列/列表双筛/详情8页签/状态机全动作/角色切换)+ 种子与 Playwright 冒烟 25 步全过 + 操作说明;悬空字典码回显不再冒充字典名 16 hours ago
index.html ticket16R: 修复 P1 三项——D-01 看板冲突badge/入口仅进行中项目;D-02 状态动作授权 68010(负责人∨管理员∨销售总监);D-03 赢单快照随标记落列。冒烟扩到 35 步全过 15 hours ago
seed_project_demo.py ticket14+15: A5 demo 单页(看板7列/列表双筛/详情8页签/状态机全动作/角色切换)+ 种子与 Playwright 冒烟 25 步全过 + 操作说明;悬空字典码回显不再冒充字典名 16 hours ago
smoke_a5.py ticket16R: 修复 P1 三项——D-01 看板冲突badge/入口仅进行中项目;D-02 状态动作授权 68010(负责人∨管理员∨销售总监);D-03 赢单快照随标记落列。冒烟扩到 35 步全过 15 hours ago

README.md

A5 项目管理 Demo 操作说明(票 14/15 产出 · 供 16 审计与 19 验收使用)

入口

  • 单页入口.scratch/crm-project/demo/index.html(浏览器直接打开;默认 API=http://localhost:8080,可用 ?api=<base> 覆写,存 localStorage)。
  • 被测后端:crm-app fat jar,verify profile(见下「环境」)。

环境(起服)

构建:mvn -s settings.xml clean package -DskipTests   (JAVA_HOME=C:\Users\Administrator\.jdks\corretto-17.0.13,mvn=IDEA 捆绑 D:\INTELL~1.3\plugins\maven\lib\maven3\bin\mvn.cmd)
起服:SPRING_PROFILES_ACTIVE=verify + CRM_MINIO_AK=admin + CRM_MINIO_SK=Itc@123456 → java -jar crm-app\target\crm-app-1.0.0-SNAPSHOT.jar
DB:远程共享库 8.129.84.155(凭据在 application.yml 默认值);本地 8080 占用时先杀 java 进程(jar 锁)。

种子数据(幂等)

py -X utf8 .scratch/crm-project/demo/seed_project_demo.py           # 造客户/商机/方案卡/两个用户
py -X utf8 .scratch/crm-project/demo/seed_project_demo.py --wipe    # 清理(demo 项目按名 A5DEMO-% 清)

产出固定 id:客户 99021001 / 方案卡 99021008 / 销售总监 99021002(title=销售总监,可回退)/ 普通销售 99021003(回退被拒 68005)。

角色切换

页头输入 userId → 「uid 登录」(verify profile /api/auth/debug/token,ADR-0014)。审计/验收至少切:99021002(总监,回退可见可操作)、99021003(普通销售,回退按钮可见但服务端 68005 拒绝——原型权限在服务端强制)。真实管理员角色用户(ROLE_ADMIN)同样可回退。

全流程演示路径(对齐票 19 验收路径)

  1. 建项+ 新建项目 → 名称 + 客户 99021001 + 方案卡 99021008 → 创建。落库 stage=0 冲突处理 / 报备审核中(建项即报备,grill#12);自动跳详情。
  2. 冲突解除=报备审核(详情动作区或看板 stage0 卡「冲突解除」):通过 → filing=2 + stage 0→1 双写;驳回 → filing=3 停 stage0(可再审)。
  3. 推进:1→2→3 逐级(动作区按钮);stage3 有两颗按钮:投标完成→4无需招投标(3→5 连跳)(唯一连跳)。
  4. 回退:stage≥2 出现「回退…」→ 弹窗列可选节点(已过节点、下限 stage1;3→5 连跳后 stage4 不在列)→ 选节点回退。总监可操作;普通销售服务端拒绝。
  5. 赢/输分叉(stage5):标记赢单 → stage5 闭环锁死(回退 68003);标记输单 → stage6 结项终态(status=3)。
  6. 关闭:任意 stage(进行中)→ 关闭类型/原因/备注 → status=2,关后无动作(终态锁)。
  7. 详情 8 页签:跟进(可新增)、附件(fileId 挂载/软删)、客户(目录单客户)、动态(全事件投影)、方案设计/商务报价/招投标(含标底等级名)/开标(赢输快照)——全读主表扩展列,零阶段子表。

冒烟自检

.scratch/customer-e2e/.venv10/Scripts/python.exe .scratch/crm-project/demo/smoke_a5.py

25 步:登录→建项→看板 7 列/badge→列表双筛/mine→动态→冲突解除→推进→连跳→回退口径→赢单锁死(68003)→输单终态→关闭→8 页签→跟进新增→普通销售 68005→零 PUT/DELETE、零 console error。结果落 smoke-result.json,截图落 shots/

已知演示性简化(非缺陷)

  • 附件新增需先经 crm-file 上传拿 fileId(demo 不含上传控件,直接贴 fileId)。
  • 「跟进时间」默认值取浏览器 UTC 时间(toISOString),演示时可手改本地时间。
  • 看板卡/列表行点击进详情;详情依赖最近一次点击的项目(刷新页面后需重进)。