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.
 
 
 
 
 

2.8 KiB

04 — 前端 demo 客户信息联调验收

What to build: 在既有商机 E2E demo(.scratch/opportunity-e2e/demo/index.html)上补齐"客户信息区"联调界面,让用户能在浏览器里点着验收前面三张票的成果。demo 需真实调用后端接口,把本次最小联调范围端到端串起来:新增/添加关联客户流程中——"客户类型"与"客户角色"两个下拉从字典接口取真值、关联客户搜索走候选池接口、选中客户后"客户联系人"下拉调 stub 端点级联刷新(空/mock 也要能看出级联在动)、最终提交新增/关联成功。demo 的 dict 预加载已含 customer_role,本票补 customer_type 分组并把客户信息区控件接上真接口。

Blocked by: 01, 02, 03

Status: resolved

  • demo 的 DICT_GROUPS 预加载补上 customer_type,"客户类型"下拉出 6 项真值
  • "客户角色"下拉从 customer_role 字典出 6 项真值
  • 关联客户搜索框调 POST /api/opportunity/customer/search,输入关键字能出候选客户
  • 选中关联客户后"客户联系人"下拉调 stub 端点级联刷新(切换客户会重新拉取、可见级联行为),空/mock 返回不报错
  • 走通"搜客户→选客户→选角色→联系人级联→提交"整条链路,无 404/500,结果可在 demo 上看到
  • 用户在浏览器打开 demo 完成人工验收

Answer

在既有 demo .scratch/opportunity-e2e/demo/index.html 上完成客户信息区联调改造:

  • DICT_GROUPS 增补 customer_type,demo 启动预加载。
  • 关联客户 subtab 新增「+ 添加关联客户」按钮 → dlgAddCustomer() 弹窗:客户类型筛选(customer_type 字典)/ 关联客户搜索(POST /customer/search)/ 选客户后客户联系人级联(GET /customer/{id}/contacts stub)/ 客户角色(customer_role 字典)/ 是否主要 → 提交 POST /customer/add

Playwright 无头回归全绿drive-demo04.py,连线上后端 :8080 verify profile):

校验点 结果
字典预加载 customer_type=6, customer_role=6
弹窗下拉渲染 customerType 7 项(全部+6)、customerRole 7 项(必选+6)
客户搜索 返回 10 条候选
选客户 + 联系人级联 选中「华东设计院(E2E第二客户)」,联系人下拉级联刷新(stub 空 → 显示「已触发」提示项)
提交关联 成功,客户列表 +1
控制台错误

截图证据:.scratch/opp-customer-dependency/demo04-1..5-*.png(客户subtab / 弹窗 / 搜索结果 / 选中级联 / 关联后)。

待用户人工验收:起服务 SPRING_PROFILES_ACTIVE=verify java -jar crm-app/target/crm-app-1.0.0-SNAPSHOT.jar,浏览器打开 demo index.html → 选人登录 → 打开任一商机详情 → 关联客户 Tab → +添加关联客户,走一遍搜索/级联/提交。