Refactor employee management

This commit is contained in:
Frudrax Cheng
2026-05-28 10:05:56 +08:00
parent 8b930ff44d
commit b9bc8f5419
11 changed files with 285 additions and 1051 deletions
+20 -18
View File
@@ -445,6 +445,13 @@ export const aftersalesApi = {
};
export const usersApi = {
assignable: async () => {
const response = await apiClient.get('/users/assignable');
return (response.data?.data || []) as User[];
},
};
export const employeesApi = {
list: async (filter?: UserListFilter) => {
const params = new URLSearchParams();
if (filter?.page && filter.page > 1) params.append('page', String(filter.page));
@@ -452,29 +459,29 @@ export const usersApi = {
if (filter?.role) params.append('role', filter.role);
if (filter?.search) params.append('search', filter.search);
const url = params.toString() ? `/users?${params.toString()}` : '/users';
const url = params.toString() ? `/employees?${params.toString()}` : '/employees';
const response = await apiClient.get(url);
return response.data as UserListResponse;
},
create: async (data: CreateUserRequest) => {
const response = await apiClient.post('/users', data);
if (response.data.user) {
return response.data.user as User;
const response = await apiClient.post('/employees', data);
if (response.data.employee) {
return response.data.employee as User;
}
throw new Error(response.data.error || '创建用户失败');
throw new Error(response.data.error || '创建员工失败');
},
update: async (id: number, data: UpdateUserRequest) => {
const response = await apiClient.patch(`/users/${id}`, data);
if (response.data.user) {
return response.data.user as User;
const response = await apiClient.patch(`/employees/${id}`, data);
if (response.data.employee) {
return response.data.employee as User;
}
throw new Error(response.data.error || '更新用户失败');
throw new Error(response.data.error || '更新员工失败');
},
resetPassword: async (id: number, newPassword: string) => {
const response = await apiClient.post(`/users/${id}/reset-password`, { newPassword });
const response = await apiClient.post(`/employees/${id}/reset-password`, { newPassword });
if (response.data.message) {
return true;
}
@@ -482,15 +489,10 @@ export const usersApi = {
},
delete: async (id: number) => {
const response = await apiClient.delete(`/users/${id}`);
const response = await apiClient.delete(`/employees/${id}`);
if (response.data.message) {
return true;
}
throw new Error(response.data.error || '删除用户失败');
throw new Error(response.data.error || '删除员工失败');
},
assignable: async () => {
const response = await apiClient.get('/users/assignable');
return (response.data?.data || []) as User[];
},
};
};