From bf259ea8ff32e7709c63bd9719bc057e9b4bad49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sat, 11 Jul 2026 19:43:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E5=AE=9E=E7=8E=B0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=AE=A1=E6=A0=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增用户模型字段:auditStatus、auditRemark、auditTime - 添加用户审核接口 auditUser,支持单条审核 - 用户列表页增加审核状态筛选项和对应列展示 - 列表行内仅待审核用户显示“审核”操作链接 - 工具栏添加批量审核按钮,实现批量审核功能 - 审核弹窗支持选择通过或拒绝及填写备注 - 审核提交支持单条和批量调用接口 - 保持代码类型检查无新增错误,符合项目字段命名规范 --- .workbuddy/memory/2026-07-11.md | 9 ++ src/api/system/user/index.ts | 18 +++- src/api/system/user/model/index.ts | 18 ++++ src/views/system/user/index.vue | 134 +++++++++++++++++++++++++++-- 4 files changed, 172 insertions(+), 7 deletions(-) diff --git a/.workbuddy/memory/2026-07-11.md b/.workbuddy/memory/2026-07-11.md index cc76842..116a4da 100644 --- a/.workbuddy/memory/2026-07-11.md +++ b/.workbuddy/memory/2026-07-11.md @@ -35,6 +35,15 @@ - 不改:`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 替代。 diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 9f49596..eeae092 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -1,6 +1,6 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; -import type { User, UserParam } from './model'; +import type { User, UserParam, UserAuditRequest } from './model'; import { SERVER_API_URL } from '@/config/setting'; /** @@ -293,3 +293,19 @@ export async function exportUsers(params?: UserParam) { }); return res.data; } + +/** + * 审核用户 + * @param id 用户id + * @param data 审核结果 + */ +export async function auditUser(id: number, data: UserAuditRequest) { + const res = await request.post>( + SERVER_API_URL + '/system/user/audit/' + id, + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/user/model/index.ts b/src/api/system/user/model/index.ts index be3b50d..f34fb2f 100644 --- a/src/api/system/user/model/index.ts +++ b/src/api/system/user/model/index.ts @@ -129,6 +129,12 @@ export interface User { followers?: number; // 推荐人ID dealerId?: number; + // 审核状态: 0待审核 1通过 2拒绝 + auditStatus?: number; + // 审核备注 + auditRemark?: string; + // 审核时间 + auditTime?: string; } /** @@ -158,4 +164,16 @@ export interface UserParam extends PageParam { showProfile?: boolean; isStaff?: boolean; templateId?: number; + // 审核状态: 0待审核 1通过 2拒绝 + auditStatus?: number; +} + +/** + * 用户审核请求 + */ +export interface UserAuditRequest { + // 审核状态: 1-通过 2-拒绝 + status: number; + // 审核备注 + remark?: string; } diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index dfe3b85..7f88376 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -40,6 +40,18 @@ 普通用户 + + + 待审核 + 通过 + 拒绝 + + 搜索 重置 @@ -84,6 +96,17 @@ :disabled="selection.length === 0" >重置密码 + + + 批量审核 + 冻结 - +