Files
andyesfly c60caa4770 refactor(客户管理): 完成客户管理模块UI与架构全面调整
1.  调整菜单与路由:重命名客户信息/客户账号为客户档案管理/客户小程序授权管理,移除客户建筑/房间路由,新增空间拓扑路由
2.  后端新增客户统计接口`/customers/stats`,前端同步API与类型定义
3.  重构客户档案与小程序授权页面,仅保留数据库支持字段,移除无支撑功能
4.  新增空间拓扑页面,合并建筑与房间管理为树形拓扑视图
5.  更新数据库种子数据与权限配置,清理废弃菜单与绑定关系
6.  补充UI设计文档与规范说明
2026-09-09 17:31:24 +08:00

6.5 KiB
Raw Permalink Blame History

客户管理 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 改用数据库可聚合统计。