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:22:11 +08:00
parent 01ebec6dfb
commit 9c7896df50
18 changed files with 564 additions and 118 deletions
+2 -1
View File
@@ -27,6 +27,7 @@ export type {
ListUsersRequest,
ListUsersResponse,
UpdateUserStatusRequest,
UpdateUserRequest,
SystemStatus,
AppUpdateStatus,
Schedule,
@@ -40,4 +41,4 @@ export type {
StorageDriver,
StorageConfig,
ObjectStorageConfig,
} from './types';
} from './types';
+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;
}
/**
* 认证源信息
*/
+6 -1
View File
@@ -4,6 +4,7 @@ import type {
CreateUserRequest,
ListUsersRequest,
ListUsersResponse,
UpdateUserRequest,
UpdateUserStatusRequest,
} from './types';
@@ -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);
}
}