Files
guilixu-admin/.workbuddy/memory/2026-07-11.md
赵忠林 bf259ea8ff feat(system): 实现用户审核功能
- 新增用户模型字段:auditStatus、auditRemark、auditTime
- 添加用户审核接口 auditUser,支持单条审核
- 用户列表页增加审核状态筛选项和对应列展示
- 列表行内仅待审核用户显示“审核”操作链接
- 工具栏添加批量审核按钮,实现批量审核功能
- 审核弹窗支持选择通过或拒绝及填写备注
- 审核提交支持单条和批量调用接口
- 保持代码类型检查无新增错误,符合项目字段命名规范
2026-07-11 19:43:24 +08:00

50 lines
4.5 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` 确认改动无新增错误;旧写法已无残留。
### 审核功能19:27system/user 用户审核
- 需求audit_status=0待审核时实现审核功能。已与用户确认后端接口已有`POST /system/user/audit/{id}`,入参 `{status, remark}`,与 shop 模块一致);状态 `0待审核 / 1通过 / 2拒绝`;支持行内单条 + 勾选批量审核。
- 改动文件:
- `src/api/system/user/model/index.ts`User 加 `auditStatus / auditRemark / auditTime`UserParam 加 `auditStatus`;新增 `UserAuditRequest { status: number; remark?: string }`
- `src/api/system/user/index.ts`:新增 `auditUser(id, data)``POST /system/user/audit/{id}`
- `src/views/system/user/index.vue`高级筛选加「审核状态」下拉列配置加「审核状态」列a-tag 展示);行内仅 `auditStatus===0` 显示「审核」链接(`@click.stop` 防冒泡触发行详情);工具栏加「批量审核」按钮;新增 `a-modal` 审核弹窗radio 通过/拒绝 + 备注 textarea脚本 `openAudit / openBatchAudit / submitAudit`(批量用 `Promise.all` 循环调单条接口)。
- 验证vue-tsc 仅剩项目既有错误(`updateUserRecommend` 的 form any、`$router``loginUser/updateIsAdmin` 未使用等),本功能无新增类型错误。
- 注意点:字段用 camelCase `auditStatus`(与项目约定一致);若后端实际返回下划线 `audit_status` 需同步改模型字段名。批量审核为循环调单条接口(不依赖后端批量接口)。
### 备注
- 方案中的「Batch 3 长期维护项」admin/user 组件合并、导入模板配置化、search.vue 重命名)本次未执行,属可选重构,风险较高,留待后续。
- Grep 工具在当前环境因 pcre2 动态库缺失报错,改用 bash grep 替代。