# Checklist - 系统管理与认证授权模块对齐新设计 ## 数据库与配置检查 - [x] server 已安装 pg / pg-hstore 依赖 - [x] config.default.ts 使用 PostgreSQL(dialect=postgres、port 5432、database=xintong) - [x] database/db_init.sql 在 PostgreSQL 中执行成功 - [x] 初始数据齐全:4 角色、11 条菜单(6 顶级 + 5 系统子菜单)、20 条字典、admin 账户、角色菜单绑定 - [x] admin 账户密码为 admin123456(bcrypt hash 正确) ## 后端实体与接口检查 - [x] 7 个系统域实体(sysUser/sysRole/sysUserRole/sysMenu/sysRoleMenu/sysDict/sysOperationLog)创建成功且表名正确 - [x] 旧实体(user/role/userRole/permission/rolePermission/operationLog)已删除 - [x] 登录接口基于 sys_user 校验,返回 userInfo/roles/menus - [x] 刷新 Token 与当前用户接口适配新模型 - [x] RbacMiddleware 基于菜单 permission 标识鉴权,ADMIN 放行 - [x] 用户管理接口字段为 realName/phone/email,返回不包含密码哈希 - [x] 角色管理接口字段为 roleCode/roleName/sortOrder - [x] 角色菜单配置接口(/roles/:id/menus)读写 sys_role_menu 正确 - [x] 菜单管理接口:菜单树查询与 CRUD 正常 - [x] 数据字典接口:列表/类型筛选/CRUD 正常(修复 types() 的 PostgreSQL GROUP BY/ORDER BY SQL 问题) - [x] 操作日志接口与中间件使用新字段(user_id/module/action/method/params/ip/created_at) - [x] system.controller.ts / system.service.ts 已删除,无残留引用 ## 前端检查 - [x] api/auth.ts 返回类型含 realName/roles/menus - [x] api/user.ts、api/role.ts 字段更新,权限接口改为菜单接口 - [x] api/menu.ts、api/dict.ts 新增,api/system.ts 已删除 - [x] stores/permission.ts 管理用户信息与菜单树(login 完整写入 roles/menus) - [x] 侧边栏菜单由用户菜单树动态渲染(含图标、两级结构) - [x] 路由改为静态全量注册,守卫按菜单权限标识控制;未开发模块显示占位页(替代原动态路由注册方案,修复深层刷新跳登录问题) - [x] 设置页路由与菜单已移除 - [x] 用户管理页字段为姓名/手机/邮箱 - [x] 角色管理页权限配置为菜单树勾选 - [x] 菜单管理页(树形表格 CRUD)可用 - [x] 数据字典页(列表+类型筛选 CRUD)可用 - [x] 操作日志页字段与筛选更新 - [x] v-permission 指令及引用已移除 - [x] views/settings 目录已删除 ## 联调与边界检查 - [x] admin 登录 → 仪表盘 → 系统管理各子页面全流程走通(含深层链接整页刷新) - [x] 业务员角色仅显示授权菜单,访问未授权接口返回 403(SALESMAN/WORKER 实测 403) - [x] 写操作自动记录操作日志且可查询 - [x] 无菜单角色登录不报错,侧边栏仅显示仪表盘(WORKER 实测 menus=0) - [x] 删除被占用角色被拦截 - [x] 重复用户名/角色编码校验生效 - [x] yarn build(server/client)无 TypeScript 编译错误