- 新增用户模型字段:auditStatus、auditRemark、auditTime - 添加用户审核接口 auditUser,支持单条审核 - 用户列表页增加审核状态筛选项和对应列展示 - 列表行内仅待审核用户显示“审核”操作链接 - 工具栏添加批量审核按钮,实现批量审核功能 - 审核弹窗支持选择通过或拒绝及填写备注 - 审核提交支持单条和批量调用接口 - 保持代码类型检查无新增错误,符合项目字段命名规范
4.5 KiB
4.5 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确认改动无新增错误;旧写法已无残留。
审核功能(19:27):system/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 替代。