# Tasks - [x] Task 1: 调整客户管理菜单权限种子(`database/db_seed.sql`) - [x] 1.1 将 id=12 菜单名「客户信息」改为「客户档案管理」 - [x] 1.2 将 id=14 菜单名「客户账号」改为「客户小程序授权管理」,权限/图标可沿用 - [x] 1.3 删除 id=25「客户建筑」、id=26「客户房间」两条菜单 - [x] 1.4 新增 id=32「空间拓扑与用电架构」,path `/customer/topology`,component `customer/topology/index`,permission `customer:topology` - [x] Task 2: 调整前端路由与侧边菜单(`client/src/router/index.ts`) - [x] 2.1 同步各子菜单 `meta.title`(信息→客户档案管理、账号→客户小程序授权管理) - [x] 2.2 移除 `customer/building`、`customer/room` 路由 - [x] 2.3 新增 `customer/topology` 路由(title「空间拓扑与用电架构」、permission `customer:topology`) - [x] Task 3: 后端客户统计端点(`server/src` 客户 controller/service) - [x] 3.1 新增 `GET /customers/stats`,返回 `{ total, statusCounts, levelCounts }`,按登录人 salesman_id 过滤 - [x] 3.2 前端 `client/src/api/customer.ts` 新增 `getStats()` 并扩展类型 - [x] Task 4: 重构客户档案管理页(`client/src/views/customer/info/index.vue`) - [x] 4.1 顶部 KPI 统计卡(总数、按状态、按级别),数据来自 stats 端点 - [x] 4.2 搜索栏:关键词、行政区划(省市县级联)、客户级别、状态、负责业务员 - [x] 4.3 表格列:客户编号、客户名称、省市区、详细地址、联系人/电话、客户级别、状态、负责业务员、操作(编辑/删除/详情) - [x] 4.4 新增/编辑弹窗仅含数据库 `customer` 字段 - [x] 4.5 仅使用数据库已有字段,去除 UI 中无支撑字段 - [x] Task 5: 重构客户小程序授权管理页(`client/src/views/customer/account/index.vue`) - [x] 5.1 页面标题/说明改为「客户小程序授权管理 / 定向邀请准入制」风格 - [x] 5.2 表格列:登录手机号、所属客户、微信绑定状态(wx_openid 是否存在)、状态、最近登录时间、操作 - [x] 5.3 新增/编辑弹窗保留所属客户、登录电话、状态、重置默认密码;删除、解绑微信操作 - [x] 5.4 去除邀请凭证/二维码/短信等无数据库支撑能力 - [x] Task 6: 新增空间拓扑与用电架构页(`client/src/views/customer/topology/index.vue`) - [x] 6.1 客户选择(复用客户 options 接口) - [x] 6.2 树形拓扑:客户 → 建筑(building_name、purpose、floor_count)→ 房间(room_code、room_name、floor_no、room_purpose) - [x] 6.3 节点新增/编辑/删除:复用现有 `customer-building`、`customer-room` CRUD API,通过弹窗维护 - [x] 6.4 前端组合拓扑数据(客户 list → building list → room list) - [x] 6.5 按 UI 设计风格(KPI/指标卡、搜索、卡片化)排版,仅用数据库字段 - [x] Task 7: 清理废弃建筑/房间页面 - [x] 7.1 删除或停用 `client/src/views/customer/building`、`client/src/views/customer/room` 视图(其 CRUD 逻辑已迁移至空间拓扑页引用) - [x] Task 8: 静态校验与联调 - [x] 8.1 前端 `vue-tsc` / 类型检查通过(`client` `npm run check` 0 错误) - [x] 8.2 后端 TypeScript 编译通过(`server` `npm run build` 成功) - [ ] 8.3 起 dev server 验证:菜单渲染、客户档案管理、小程序授权管理、空间拓扑增删改,salesman 数据权限正常(未在本会话执行,如需可另行启动联调) # Task Dependencies - Task 4 依赖 Task 3(stats 端点)与 Task 1/2(菜单、路由) - Task 5 依赖 Task 1/2 - Task 6 依赖 Task 1/2 - Task 7 依赖 Task 6 - Task 8 依赖 Task 3/4/5/6