feat(admin): support user profile editing, password resetting, and email column with search

- Add UpdateUser API and logics supporting nickname, email, admin flag modification, and password reset.
- Relocate user delete button and confirmation Alert into the EditUserModal.
- Optimize admin Switch change to trigger instant API request with rollback support.
- Fix missing email field in edit form initialization by fetching full profile metadata.
- Render email column in users list and support email-based filtering in UserFilterBar.
- Remove hardcoded styles and sizes from Switch components to follow global theme.
This commit is contained in:
ryan
2026-06-28 11:05:57 +08:00
parent 206f8b59c9
commit 932f0c65b9
16 changed files with 536 additions and 91 deletions
+1
View File
@@ -27,6 +27,7 @@ export type {
ListUsersRequest,
ListUsersResponse,
UpdateUserStatusRequest,
UpdateUserRequest,
SystemStatus,
AppUpdateStatus,
Schedule,
+16
View File
@@ -310,6 +310,8 @@ export interface ListUsersRequest {
user_id?: string;
/** 用户名前缀过滤(可选) */
username?: string;
/** 邮箱前缀过滤(可选) */
email?: string;
}
/**
@@ -348,6 +350,20 @@ export interface CreateUserRequest {
is_admin?: boolean;
}
/**
* 更新用户请求参数
*/
export interface UpdateUserRequest {
/** 昵称 */
nickname?: string;
/** 邮箱 */
email: string;
/** 是否管理员 */
is_admin?: boolean;
/** 密码(可选重置) */
password?: string;
}
/**
* 认证源信息
*/
@@ -5,6 +5,7 @@ import type {
ListUsersRequest,
ListUsersResponse,
UpdateUserStatusRequest,
UpdateUserRequest,
} from './types';
export class AdminUserService extends BaseService {
@@ -29,4 +30,8 @@ export class AdminUserService extends BaseService {
static async deleteUser(id: string): Promise<void> {
return this.delete<void>(`/users/${id}`);
}
static async updateUser(id: string, request: UpdateUserRequest): Promise<void> {
return this.put<void>(`/users/${id}`, request);
}
}