users.ts
2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import { apiClient } from './client';
export interface UserListItem {
userId: number;
username: string;
employeeName?: string | null;
userCode: string;
departmentName?: string | null;
userType: 'NORMAL' | 'SUPER_ADMIN';
language: string;
isDeleted: boolean;
lastLoginDate?: string | null;
createdBy?: string | null;
createdDate?: string | null;
}
export interface UserDetail extends UserListItem {
employeeId?: number | null;
permissionCategoryIds: number[];
updatedBy?: string | null;
updatedDate?: string | null;
}
export interface UsersListQuery {
page?: number;
size?: number;
sortField?: 'tCreateDate' | 'tLastLoginDate' | 'sUsername' | 'sUserCode';
sortOrder?: 'asc' | 'desc';
queryField?: string;
matchMode?: 'contains' | 'notContains' | 'equals';
queryValue?: string;
userType?: 'NORMAL' | 'SUPER_ADMIN';
isDeleted?: boolean;
}
export interface PageResult<T> {
records: T[];
total: number;
page: number;
size: number;
}
export interface CreateUserReq {
username: string;
userCode: string;
userType: 'NORMAL' | 'SUPER_ADMIN';
language: 'zh-CN' | 'en-US' | 'zh-TW';
canEditDocument: boolean;
employeeId?: number;
permissionCategoryIds?: number[];
}
export interface UpdateUserReq {
userCode?: string;
userType?: 'NORMAL' | 'SUPER_ADMIN';
language?: 'zh-CN' | 'en-US' | 'zh-TW';
canEditDocument?: boolean;
employeeId?: number;
isDeleted?: boolean;
permissionCategoryIds?: number[];
}
export interface CreateUserVo {
userId: number;
username: string;
userCode: string;
}
export const usersApi = {
async list(query: UsersListQuery = {}): Promise<PageResult<UserListItem>> {
return await apiClient.get<unknown, PageResult<UserListItem>>('/users', { params: query });
},
async get(userId: number): Promise<UserDetail> {
return await apiClient.get<unknown, UserDetail>(`/users/${userId}`);
},
async create(req: CreateUserReq): Promise<CreateUserVo> {
return await apiClient.post<unknown, CreateUserVo>('/users', req);
},
async update(userId: number, req: UpdateUserReq): Promise<UserDetail> {
return await apiClient.put<unknown, UserDetail>(`/users/${userId}`, req);
},
};