Files
guilixu-admin/.workbuddy/memory/2026-07-11.md
赵忠林 dceb030712 fix(system-admin): 统一 isAdmin 类型为布尔值
- 修复 admin/index.vue 中 isAdmin 的类型不一致问题
- 修改模板中判断逻辑,将 record.isAdmin == 1 改为 record.isAdmin
- 调整 updateIsAdmin 函数,改为取反布尔值方式赋值
- 使用 vue-tsc --noEmit 验证确认无新增类型错误
- 清理了自引入未使用变量的 TS6133 警告
2026-07-11 19:17:27 +08:00

41 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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) 三个筛选条件 + 搜索/重置按钮,绑定 `searchWhere` reactivedatasource 读取后传给 `pageUsers`
### 验证
- `vue-tsc --noEmit` 类型检查:我改动的 4 个文件无新增错误(仅剩项目既有错误,如 `getPageTitle` 返回 unknown、`$router` 类型、CMS/Shop 模块缺失等,与本次无关)。
- 修复了自引入的 2 个 `TS6133``resetPsw` 中改 `message.success``Modal.success``msg` 未使用的报错)。
- 注意:本环境文件编辑会被自动提交/同步,工作区与 git HEAD 哈希一致属正常现象。
### 补充修复19:08isAdmin 类型不一致
- 问题:`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 替代。