# 2026-07-11 工作日志 ## 用户管理模块 UX 优化(guilixu-admin 前端) 按用户确认的方案,对 `src/views/system/` 下用户管理模块做了一轮优化: ### 1. 隐藏右上角三个导航按钮 - 原 `src/views/system/user/components/Extra.vue` 定义了「人员管理 / 实名认证 / 管理员列表」三个按钮,被 4 个页面复用:`user/index.vue`、`admin/index.vue`、`userVerify2/index.vue`、`organization/index.vue`。 - 已移除这 4 个页面里对 `` 的引用与 import,并删除孤儿组件 `Extra.vue`。 ### 2. 修复搜索条件被覆盖的 bug - `user/index.vue` 与 `admin/index.vue` 的 `datasource` 中 `where = {}` 会清空传入条件(导致 `defaultWhere` 失效)。改为 `const params = { ...where, ... }` 合并后传给 `pageUsers`。 ### 3. 清理死代码 - 删除 `userType`、`handleTabs`(user/index.vue、admin/index.vue 均未使用)。 ### 4. 修复重置密码明文安全问题 - `resetPsw` 原先把明文新密码直接显示在 `message.success` 中;改为 `Modal.success` 弹窗展示,避免明文暴露。 ### 5. 增加用户状态列 + 行点击查看详情 - user/admin 列表新增「状态」列(正常/冻结,读取 `record.status`)。 - 表格行 `onClick` 改为打开用户详情抽屉(`openInfo`),移除原无提示的双击编辑。 ### 6. 新增高级筛选(仅 user/index.vue) - 在页头加入角色 / 注册来源(platform) / 类型(isAdmin) 三个筛选条件 + 搜索/重置按钮,绑定 `searchWhere` reactive,datasource 读取后传给 `pageUsers`。 ### 验证 - `vue-tsc --noEmit` 类型检查:我改动的 4 个文件无新增错误(仅剩项目既有错误,如 `getPageTitle` 返回 unknown、`$router` 类型、CMS/Shop 模块缺失等,与本次无关)。 - 修复了自引入的 2 个 `TS6133`(`resetPsw` 中改 `message.success` 为 `Modal.success` 后 `msg` 未使用的报错)。 - 注意:本环境文件编辑会被自动提交/同步,工作区与 git HEAD 哈希一致属正常现象。 ### 补充修复(19:08):isAdmin 类型不一致 - 问题:`User` 实体模型定义 `isAdmin?: boolean`(`src/api/system/user/model/index.ts:113`),但 `admin/index.vue` 把实体当数字用(`updateIsAdmin` 中 `row.isAdmin ? 0 : 1`、模板 `record.isAdmin == 1`),与模型冲突;`user/index.vue` 已正确用布尔(`!row.isAdmin`、`v-if="record.isAdmin"`)。 - 修复 `admin/index.vue` 两处:模板 `:checked="record.isAdmin == 1"` → `:checked="record.isAdmin"`;`updateIsAdmin` 改为 `row.isAdmin = !row.isAdmin;`。与 `User` 模型严格一致。 - 不改:`admin` 第294行 `isAdmin: 1` 是查询条件(`UserParam.isAdmin?: number`),语义正确。 - 验证:`vue-tsc --noEmit` 确认改动无新增错误;旧写法已无残留。 ### 备注 - 方案中的「Batch 3 长期维护项」(admin/user 组件合并、导入模板配置化、search.vue 重命名)本次未执行,属可选重构,风险较高,留待后续。 - Grep 工具在当前环境因 pcre2 动态库缺失报错,改用 bash grep 替代。