types.ts
3.16 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
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
// REQ-USR-004: 前端跨 task 共享类型契约(对齐 docs/05 § REQ-USR-004 / spec § 4)
/** 登录用户(对齐 Result<{ token, user }> 的 user 字段) */
export interface AuthUser {
id: number;
sUserName: string;
sUserType: string;
sLanguage: string;
}
/** POST /api/usr/login 请求体 */
export interface LoginPayload {
sUserName: string;
password: string;
companyId: number;
}
/** POST /api/usr/login 成功响应(已拆 Result.data) */
export interface LoginResult {
token: string;
user: AuthUser;
}
/** GET /api/usr/companies 列表项(登录「版本」下拉,D8;sVersion 可空) */
export interface CompanyOption {
id: number;
sCompanyName: string;
sVersion: string | null;
}
// === REQ-USR-003 用户列表查询契约(FE-03) ===
/**
* 用户列表行 VO(已在 api 层把 docs/05 中文键 `员工名`/`部门` 归一为 ASCII
* `employeeName`/`departmentName`,组件/列定义统一用 ASCII 键,D-PLAN-2 / spec D9)。
*/
export interface UserVO {
id: number;
sUserName: string;
employeeName: string | null;
sUserNo: string | null;
departmentName: string | null;
sUserType: string;
sLanguage: string;
iIsVoid: number;
tLastLoginDate: string | null;
sCreator: string;
tCreateDate: string;
}
/** 统一分页返回体(docs/04 § 1.4 / § 3.2) */
export interface PageResult<T> {
records: T[];
total: number;
pageNum: number;
pageSize: number;
}
/**
* GET /api/usr/users 查询参数(提交给后端的 query)。
* `queryValue` 为空字符串时由 listUsers 省略(空为全部,BR3)。
*/
export interface UserListQuery {
queryField?: string;
matchType?: string;
queryValue?: string;
pageNum: number;
pageSize: number;
}
// === REQ-USR-001 / REQ-USR-002 用户单据契约(FE-04) ===
/** 单据模式:新增 / 修改(由路由 :id 判定,spec § 3) */
export type UserDetailMode = 'create' | 'edit';
/**
* 员工名下拉项(D1)。后端 GET /api/usr/employees 原始行
* `iIncrement`/`sEmployeeName`/`sEmployeeNo` 在 api 层归一为此结构。
*/
export interface EmployeeOption {
value: number;
label: string;
sEmployeeNo: string | null;
}
/**
* 权限项(D2/D3)。后端 GET /api/usr/permissions 原始行
* `iIncrement`/`sPermissionName`/`sPermissionCategory` 在 api 层归一为此结构。
*/
export interface PermissionItem {
id: number;
name: string;
category: string;
}
/**
* POST /api/usr/users 请求体(create,对齐 docs/05 § REQ-USR-001)。
* 密码 `initialPassword` 前端不传,由后端默认 666666(BR9)。
*/
export interface UserCreateReq {
sUserName: string;
sUserNo?: string;
iEmployeeId?: number | null;
sUserType: string;
sLanguage: string;
iCanModifyBill?: 0 | 1;
permissionIds?: number[];
}
/**
* PUT /api/usr/users/{id} 请求体(edit,对齐 docs/05 § REQ-USR-002)。
* `sUserName` 不可改不传、密码不在本接口(BR3/BR9);`permissionIds` 全量覆盖(BR11)。
*/
export interface UserUpdateReq {
sUserNo?: string;
iEmployeeId?: number | null;
sUserType: string;
sLanguage: string;
iCanModifyBill?: 0 | 1;
iIsVoid?: 0 | 1;
permissionIds?: number[];
}