1. 调整菜单与路由:重命名客户信息/客户账号为客户档案管理/客户小程序授权管理,移除客户建筑/房间路由,新增空间拓扑路由 2. 后端新增客户统计接口`/customers/stats`,前端同步API与类型定义 3. 重构客户档案与小程序授权页面,仅保留数据库支持字段,移除无支撑功能 4. 新增空间拓扑页面,合并建筑与房间管理为树形拓扑视图 5. 更新数据库种子数据与权限配置,清理废弃菜单与绑定关系 6. 补充UI设计文档与规范说明
6.5 KiB
客户管理 UI 调整 Spec
Why
现有客户管理的功能菜单与界面与最新 UI 设计(系统设计/UI/客户档案管理、客户档案编辑、客户档案详情、客户小程序授权管理、空间拓扑与用电架构)不一致。需要按 UI 设计调整菜单结构与页面形态,同时以架构设计(系统设计/xintong-architecture-full.html)和数据库设计(系统设计/db_design.html)为功能边界——UI 中存在但数据库/架构中不存在的功能与字段一律舍弃,以数据库为准。
What Changes
- 菜单结构调整(
database/db_seed.sql+client/src/router/index.ts):客户信息→ 重命名客户档案管理(12)客户账号→ 重命名客户小程序授权管理(14)- 新增
空间拓扑与用电架构菜单(新 id 27,/customer/topology) - 移除
客户建筑(25)、客户房间(26)两个菜单及对应路由 - 保留
客户部门(13)、客户拜访(24)菜单与路由不变
- 客户档案管理页(
client/src/views/customer/info/index.vue重构):- 按 UI 风格重排:顶部 KPI 统计卡 + 搜索栏 + 客户档案表格
- 仅使用数据库
customer字段(客户编号/名称、省市区、地址、联系人/电话、邮编、传真、客户级别、状态、负责业务员) - 舍弃 UI 中数据库不存在的字段/能力:统一社会信用代码、法定代表人、行业属性、托管服务状态、ICC 设备状态、大华 ICC 同步、营业执照智能识别、导入意向客户、托管周期与费用等
- 保留 KPI 卡(基于数据库可聚合统计:客户总数、按状态/级别计数),需新增轻量后端
/customers/stats
- 客户小程序授权管理页(
client/src/views/customer/account/index.vue重构):- 重命名为「客户小程序授权管理」,UI 标题/说明改为「定向邀请准入制」风格
- 仅使用数据库
customer_account字段:所属客户、登录手机号、微信绑定状态(wx_openid 是否存在)、状态、最近登录时间、创建时间 - 舍弃 UI 中无数据库支撑的邀请凭证/二维码/批量短信/发起邀请等能力
- 保留新增/编辑(含重置默认密码)、删除、微信解绑等基于现有 API 的操作
- 空间拓扑与用电架构页(新增
client/src/views/customer/topology/index.vue):- 替换原「客户建筑」「客户房间」两个列表菜单,合并为单一空间拓扑页
- 树形拓扑:客户 → 建筑 → 房间 三层渲染(基于
customer、customer_building、customer_room) - 通过「新增/编辑空间节点」弹窗维护建筑与房间数据(复用现有 building/room CRUD API)
- 舍弃 UI 中不存在的节点类型(变电所/配电室、监测回路、ICC 边缘网关)与相关指标
- 后端 API 基本不变,仅新增一个客户统计端点
/customers/stats
Impact
- 受影响对称菜单/权限:
sys_menu中客户管理子菜单(build/seed 变更) - 受影响前端:
client/src/router/index.ts、client/src/views/customer/info/index.vue、client/src/views/customer/account/index.vue、新增client/src/views/customer/topology/index.vue、client/src/api/customer.ts(新增 stats)、新增client/src/api/customerTopology.ts - 受影响后端:
server/src/客户 controller 新增/customers/stats - 不受影响:
客户部门(customer/department)、客户拜访(customer/visit)页面与后端
ADDED Requirements
Requirement: 客户统计端点
系统 SHALL 新增 GET /customers/stats,返回客户总数及按状态、按级别的计数,用于客户档案管理页顶部 KPI 卡。
Scenario: 成功获取统计
- WHEN 前端加载客户档案管理页
- THEN 后端返回
{ total, statusCounts: {1/2/3/4: n}, levelCounts: {...} },仅统计当前登录人可见的客户(销售员按 salesman_id 过滤)
Requirement: 空间拓扑页
系统 SHALL 提供客户→建筑→房间三层树形拓扑视图,并支持通过节点弹窗对建筑、房间进行新增/编辑/删除。
Scenario: 渲染拓扑
- WHEN 用户在客户管理选择一个客户
- THEN 页面展示该客户下建筑节点(含 building_name、purpose、floor_count),展开建筑展示其房间节点(含 room_code、room_name、floor_no、room_purpose)
Scenario: 维护空间节点
- WHEN 用户点击「新增空间节点/新增子节点」或在节点右键操作
- THEN 弹出创建/编辑弹窗,提交后调用现有 building/room 创建、编辑、删除 API,并刷新拓扑
MODIFIED Requirements
Requirement: 客户档案管理菜单与页面
菜单名由「客户信息」改为「客户档案管理」;页面按 UI 排版重构(KPI 卡 + 搜索 + 表格),字段仅保留数据库 customer 表已有字段。
Scenario: 列表展示
- WHEN 用户进入客户档案管理页
- THEN 展示基于数据库字段的 KPI 统计卡与客户档案表格,表格列包含:客户编号、客户名称、省市区、地址、联系人、联系电话、客户级别、状态、负责业务员、操作
Requirement: 小程序授权管理菜单与页面
菜单名由「客户账号」改为「客户小程序授权管理」;页面按 UI 标题风格调整,字段仅使用数据库 customer_account 字段,去掉无数据库支撑的邀请类能力。
Scenario: 列表与账号维护
- WHEN 用户进入客户小程序授权管理页
- THEN 展示账号列表(手机号、所属客户、微信绑定状态、状态、最近登录时间)并可新增/编辑/删除/重置密码/解绑微信
REMOVED Requirements
Requirement: 客户建筑、客户房间独立菜单页
Reason: UI 设计将建筑/房间合并进「空间拓扑与用电架构」单一页面;数据库支持该合并(customer_building、customer_room)。
Migration: 移除 sys_menu 中 25、26 菜单与前端对应路由;建筑/房间的增删改改由空间拓扑页节点弹窗承担,复用现有 building/room API。
Requirement: UI 中存在但数据库/架构不支持的功能与字段
Reason: 按用户规则「若 UI 中存在架构和数据库中不存在的功能和字段,以架构和数据库设计为准」。 Migration: 舍弃统一社会信用代码、法定代表人、行业属性、托管服务状态、ICC 设备、用电参数、拓扑率、大华 ICC 同步、营业执照导入、邀请凭证/二维码/短信等字段与能力;KPI 改用数据库可聚合统计。