- 修复 admin/index.vue 中 isAdmin 的类型不一致问题 - 修改模板中判断逻辑,将 record.isAdmin == 1 改为 record.isAdmin - 调整 updateIsAdmin 函数,改为取反布尔值方式赋值 - 使用 vue-tsc --noEmit 验证确认无新增类型错误 - 清理了自引入未使用变量的 TS6133 警告
3.1 KiB
3.1 KiB
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 个页面里对
<Extra/>的引用与 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) 三个筛选条件 + 搜索/重置按钮,绑定
searchWherereactive,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 替代。