wsj
3 days ago cd2b7d36f3610417c268d062454b7ec43e9ca937
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
import type { PageResult } from '@/types/api';
 
/** 员工状态。 */
export type EmployeeStatus = 'ACTIVE' | 'DISABLED';
 
/** 员工响应体(EmployeeVO)。 */
export interface EmployeeVO {
  id: number;
  createdAt?: string;
  updatedAt?: string;
  createdBy?: string;
  updatedBy?: string;
  tenantId?: string;
  deleted?: number;
  name: string;
  phone: string;
  orgId: number;
  roleId: number;
  position?: string;
  email?: string;
  avatarUrl?: string;
  status: EmployeeStatus;
  holdLimit?: number;
  region?: string;
  hireDate?: string;
}
 
/** GET /tenant/employees 请求参数(EmployeePageQuery)。 */
export interface TenantEmployeeListRequest {
  page?: number;
  size?: number;
  sortBy?: string;
  sortDir?: string;
  orgId?: number;
  roleId?: number;
  status?: EmployeeStatus;
  keyword?: string;
}
 
/** GET /tenant/employees 响应数据(ResultPageResultEmployeeVO 的 data)。 */
export type TenantEmployeeListResponse = PageResult<EmployeeVO>;
 
/** POST /tenant/employees 请求体(EmployeeCreateDTO)。 */
export interface TenantEmployeeCreateRequest {
  name: string;
  phone: string;
  orgId: number;
  roleId: number;
  position?: string;
  email?: string;
  avatarUrl?: string;
  holdLimit?: number;
  region?: string;
}
 
/** POST /tenant/employees 响应数据(ResultEmployeeVO 的 data)。 */
export type TenantEmployeeCreateResponse = EmployeeVO;
 
/** GET /tenant/employees/{id} 请求参数。 */
export interface TenantEmployeeDetailRequest {
  /** 员工 ID(路径参数)。 */
  id: number;
}
 
/** GET /tenant/employees/{id} 响应数据(ResultEmployeeVO 的 data)。 */
export type TenantEmployeeDetailResponse = EmployeeVO;
 
/** PUT /tenant/employees/{id} 请求参数(路径参数 + EmployeeUpdateDTO)。 */
export interface TenantEmployeeUpdateRequest {
  /** 员工 ID(路径参数)。 */
  id: number;
  name?: string;
  phone?: string;
  orgId?: number;
  roleId?: number;
  position?: string;
  email?: string;
  holdLimit?: number;
  region?: string;
}
 
/** PUT /tenant/employees/{id} 请求体。 */
export type TenantEmployeeUpdateBody = Omit<TenantEmployeeUpdateRequest, 'id'>;
 
/** PUT /tenant/employees/{id} 响应数据(ResultEmployeeVO 的 data)。 */
export type TenantEmployeeUpdateResponse = EmployeeVO;
 
/** DELETE /tenant/employees/{id} 请求参数。 */
export interface TenantEmployeeDeleteRequest {
  /** 员工 ID(路径参数)。 */
  id: number;
}
 
/** DELETE /tenant/employees/{id} 响应数据(ResultVoid 的 data)。 */
export type TenantEmployeeDeleteResponse = void;
 
/** GET /tenant/employees/export 请求参数。 */
export interface TenantEmployeeExportRequest {
  /** 不填导出全部,填则仅导出指定组织。 */
  orgId?: number;
}
 
/** GET /tenant/employees/export 响应数据(Excel 文件流)。 */
export type TenantEmployeeExportResponse = Blob;
 
/** POST /tenant/employees/import 请求参数(multipart/form-data,字段名 file)。 */
export interface TenantEmployeeImportRequest {
  file: File;
}
 
/** POST /tenant/employees/import 响应数据(成功导入行数)。 */
export type TenantEmployeeImportResponse = number;
 
/** GET /tenant/organizations/tree 请求参数。 */
export interface TenantOrgTreeRequest {
  orgId?: number;
}
 
/** 组织树节点(OrgVO 子集)。 */
export interface OrgTreeNode {
  id: number;
  orgName: string;
  status?: boolean;
  children?: OrgTreeNode[];
}
 
/** GET /tenant/organizations/tree 响应数据(ResultListOrgVO 的 data)。 */
export type TenantOrgTreeResponse = OrgTreeNode[];
 
/** GET /tenant/roles 请求参数:该接口未定义查询参数。 */
export type TenantRoleOptionRequest = Record<string, never>;
 
/** 角色选项(RoleVO 子集)。 */
export interface RoleOption {
  id: number;
  roleName: string;
  status?: string;
}
 
/** GET /tenant/roles 响应数据(ResultListRoleVO 的 data)。 */
export type TenantRoleOptionResponse = RoleOption[];
 
/** ProTable 搜索参数,与 EmployeePageQuery 中可筛选字段一致。 */
export interface EmployeeListQuery {
  keyword?: string;
  status?: EmployeeStatus;
  orgId?: number;
  roleId?: number;
}
 
/** 新增 / 编辑 / 详情表单值。 */
export interface EmployeeFormValues {
  name: string;
  phone: string;
  /** 所属组织级联选择路径,最后一项为实际的 orgId。 */
  orgPath: number[];
  roleId: number;
  position?: string;
  email?: string;
  holdLimit?: number;
  region?: string;
}
 
/** 下拉选项。 */
export interface SelectOption {
  label: string;
  value: number;
}