little-wheels 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +312 -45
- package/dist/index.d.ts +41 -0
- package/dist/index.es.js +42 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,45 +1,312 @@
|
|
|
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
|
-
|
|
1
|
+
# little-wheels
|
|
2
|
+
|
|
3
|
+
一个面向 React + TypeScript 项目的轻量工具库,提供 SSO 登录、用户与组织查询接口,以及常用 React Hooks。
|
|
4
|
+
|
|
5
|
+
## 功能
|
|
6
|
+
|
|
7
|
+
| 模块 | 说明 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `AuthLogin` | SSO 登录、登出、Token 存取、刷新与解析 |
|
|
10
|
+
| `useSSOApi` | 用户、角色、公司和分组查询接口 |
|
|
11
|
+
| `LocalStorageUtil` | 按应用 ID 隔离的本地存储工具 |
|
|
12
|
+
| `useAudio` | 音频播放状态与控制 |
|
|
13
|
+
| `usePage` | 列表分页、查询和重置状态管理 |
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add little-wheels
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
也可以使用 `npm install little-wheels` 或 `yarn add little-wheels`。
|
|
22
|
+
|
|
23
|
+
## SSO 登录
|
|
24
|
+
|
|
25
|
+
### 快速开始
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { AuthLogin } from "little-wheels";
|
|
29
|
+
|
|
30
|
+
const authLogin = new AuthLogin({
|
|
31
|
+
APPID: "your-app-id",
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
async function bootstrap() {
|
|
35
|
+
if (!authLogin.getTokenInfo()) {
|
|
36
|
+
// 首次访问会跳转至登录页;登录回调时会自动换取并保存 Token。
|
|
37
|
+
await authLogin.SSOLogin();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
console.log(authLogin.getDecodeToken());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
void bootstrap();
|
|
44
|
+
|
|
45
|
+
// 退出登录
|
|
46
|
+
// authLogin.logout();
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`AuthLogin` 从 `v1.2.1` 起使用实例方法,请勿再通过 `AuthLogin.getTokenInfo()` 等静态方式调用。
|
|
50
|
+
|
|
51
|
+
### 配置项
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
interface AuthLoginType {
|
|
55
|
+
APPID: string;
|
|
56
|
+
dev?: boolean;
|
|
57
|
+
baseURL?: string;
|
|
58
|
+
token?: string;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
63
|
+
| --- | --- | --- | --- |
|
|
64
|
+
| `APPID` | 是 | - | 应用唯一标识,同时用于隔离本地 Token |
|
|
65
|
+
| `dev` | 否 | `false` | 开发环境标记,影响 IP 地址访问时的 Keycloak 地址处理 |
|
|
66
|
+
| `baseURL` | 否 | `""` | API 请求基础地址;为空时使用当前域名 |
|
|
67
|
+
| `token` | 否 | `""` | 初始 Access Token,适用于独立鉴权场景 |
|
|
68
|
+
|
|
69
|
+
前后端分离开发时,需要将 `/lxwork/api` 和 `/sso` 代理到认证服务。例如:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// vite.config.ts
|
|
73
|
+
export default {
|
|
74
|
+
server: {
|
|
75
|
+
proxy: {
|
|
76
|
+
"/lxwork/api": {
|
|
77
|
+
target: "https://your-sso-host.example.com",
|
|
78
|
+
changeOrigin: true,
|
|
79
|
+
},
|
|
80
|
+
"/sso": {
|
|
81
|
+
target: "https://your-sso-host.example.com",
|
|
82
|
+
changeOrigin: true,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 常用方法
|
|
90
|
+
|
|
91
|
+
| 方法 | 说明 |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `SSOLogin()` | 执行 SSO 登录或处理登录回调 |
|
|
94
|
+
| `login()` | 直接跳转至登录页 |
|
|
95
|
+
| `logout()` | 清除 Token 并跳转至登出页 |
|
|
96
|
+
| `getTokenInfo()` | 获取完整 Token 信息 |
|
|
97
|
+
| `getToken()` | 获取 Access Token |
|
|
98
|
+
| `getRefreshToken()` | 获取 Refresh Token |
|
|
99
|
+
| `getDecodeToken()` | 解析当前 Access Token |
|
|
100
|
+
| `setToken(data, type?)` | 保存完整 Token 信息 |
|
|
101
|
+
| `setTokenStr(token)` | 仅保存 Access Token 字符串 |
|
|
102
|
+
| `refreshToken(forceRefresh?)` | Token 临近过期时刷新;传入 `true` 可强制刷新 |
|
|
103
|
+
| `removeToken()` | 清除本地 Token |
|
|
104
|
+
| `getCompanyList()` | 获取公司列表 |
|
|
105
|
+
| `getUserBranchGroup()` | 获取当前用户所属分公司名称 |
|
|
106
|
+
| `getUserBranchGroupByGroupId({ groupId })` | 根据分组 ID 获取所属分公司信息 |
|
|
107
|
+
|
|
108
|
+
### 独立 Token 鉴权
|
|
109
|
+
|
|
110
|
+
适用于 App WebView 等由外部传入 Access Token、无需发起完整 SSO 登录的场景:
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
import { AuthLogin, useSSOApi } from "little-wheels";
|
|
114
|
+
|
|
115
|
+
const authLogin = new AuthLogin({ APPID: "your-app-id" });
|
|
116
|
+
const token = new URLSearchParams(window.location.search).get("token");
|
|
117
|
+
|
|
118
|
+
if (token) {
|
|
119
|
+
authLogin.setTokenStr(token);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const userInfo = await useSSOApi(authLogin).getUserInfo();
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 请求 API
|
|
126
|
+
|
|
127
|
+
`useSSOApi` 接收一个 `AuthLogin` 实例。请求会自动携带 Bearer Token,并在常规业务接口返回 `401` 时合并并发重登录,然后重试一次。
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { AuthLogin, useSSOApi } from "little-wheels";
|
|
131
|
+
|
|
132
|
+
const authLogin = new AuthLogin({ APPID: "your-app-id" });
|
|
133
|
+
const api = useSSOApi(authLogin);
|
|
134
|
+
|
|
135
|
+
const currentUser = await api.getUserDetail();
|
|
136
|
+
const users = await api.getUsers({
|
|
137
|
+
real_name: "张三",
|
|
138
|
+
exact: false,
|
|
139
|
+
first: 0,
|
|
140
|
+
max_size: 20,
|
|
141
|
+
});
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
所有路径都会自动拼接构造 `AuthLogin` 时传入的 `baseURL`。
|
|
145
|
+
|
|
146
|
+
| 方法 | 请求 |
|
|
147
|
+
| --- | --- |
|
|
148
|
+
| `getTokenInfo(params)` | `GET /lxwork/api/auth/token?{查询参数}` |
|
|
149
|
+
| `createPermissionTicket(data)` | `POST /lxwork/api/auth/create-permission-ticket` |
|
|
150
|
+
| `getAuthTokenInfo(data)` | `POST /sso/realms/myrealm/protocol/openid-connect/token` |
|
|
151
|
+
| `refreshAuthToken(refreshToken?)` | `GET /lxwork/api/auth/refresh` |
|
|
152
|
+
| `getCompanyList()` | `GET /lxwork/api/auth/groups/branch` |
|
|
153
|
+
| `getUserGroupList()` | `GET /lxwork/api/auth/users/groups` |
|
|
154
|
+
| `getUserInfo()` | `GET /lxwork/api/auth/userinfo` |
|
|
155
|
+
| `getUserDetail()` | `GET /lxwork/api/auth/users/detail` |
|
|
156
|
+
| `getUserDetailById({ id })` | `GET /lxwork/api/auth/users/{id}` |
|
|
157
|
+
| `getUsers(params)` | `GET /lxwork/api/auth/users/search?{查询参数}` |
|
|
158
|
+
| `getUsersByRole(params)` | `GET /lxwork/api/auth/users/search-by-role?{查询参数}` |
|
|
159
|
+
| `getCurUserGroupList()` | `GET /lxwork/api/auth/users/groups-parsed` |
|
|
160
|
+
| `getAllRoles()` | `GET /lxwork/api/auth/users/all-roles` |
|
|
161
|
+
| `getCurUserRoles()` | `GET /lxwork/api/auth/users/role-mappings` |
|
|
162
|
+
| `getGroupByParentId(params)` | `GET /lxwork/api/auth/groups?{查询参数}` |
|
|
163
|
+
| `getAllGroup()` | `GET /lxwork/api/auth/groups/all` |
|
|
164
|
+
| `getGroupsByName(params)` | `GET /lxwork/api/auth/groups/search?{查询参数}` |
|
|
165
|
+
| `getGroupDetail({ id })` | `GET /lxwork/api/auth/groups/{id}` |
|
|
166
|
+
| `getChildrenGroup({ group_id })` | `GET /lxwork/api/auth/groups/{group_id}/children-parse` |
|
|
167
|
+
| `getUsersByGroup(params)` | `GET /lxwork/api/auth/groups/{group_id}/members?{查询参数}` |
|
|
168
|
+
|
|
169
|
+
参数和返回值均已提供 TypeScript 类型声明,可直接通过编辑器查看。
|
|
170
|
+
|
|
171
|
+
## React Hooks
|
|
172
|
+
|
|
173
|
+
Hooks 会单独构建到 `dist/react-hooks/index.es.js`。
|
|
174
|
+
|
|
175
|
+
### useAudio
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
import { useAudio } from "little-wheels/dist/react-hooks/index.es.js";
|
|
179
|
+
|
|
180
|
+
const {
|
|
181
|
+
currentTime,
|
|
182
|
+
duration,
|
|
183
|
+
isPlaying,
|
|
184
|
+
volume,
|
|
185
|
+
playRate,
|
|
186
|
+
audioPlay,
|
|
187
|
+
audioPause,
|
|
188
|
+
togglePlay,
|
|
189
|
+
setAudioCurrentTime,
|
|
190
|
+
setAudioVolume,
|
|
191
|
+
setAudioRate,
|
|
192
|
+
} = useAudio({
|
|
193
|
+
src: "/audio/example.mp3",
|
|
194
|
+
onError: (error) => console.error(error),
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
- 音量范围为 `0` 到 `1`。
|
|
199
|
+
- 播放倍速范围为 `0.5` 到 `4`。
|
|
200
|
+
- `audioPlay(url?)` 和 `togglePlay(url?)` 可在调用时切换音频地址。
|
|
201
|
+
|
|
202
|
+
### usePage
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
import { usePage } from "little-wheels/dist/react-hooks/index.es.js";
|
|
206
|
+
|
|
207
|
+
const {
|
|
208
|
+
state,
|
|
209
|
+
listLoading,
|
|
210
|
+
getTableData,
|
|
211
|
+
onPageInfoChange,
|
|
212
|
+
reset,
|
|
213
|
+
} = usePage<User>({
|
|
214
|
+
defaultPageInfo: { pageNum: 1, pageSize: 20 },
|
|
215
|
+
getListApi: (params) => fetchUserList(params),
|
|
216
|
+
customQueryParameters: () => ({ enabled: true }),
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
console.log(state.tableData, state.total, state.pageInfo);
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
`getListApi` 可以返回数组,也可以返回包含 `dataList`、`list` 和 `total` 字段的对象。传入的 `form` 如包含 `getFieldsValue()` 和 `resetFields()`,会自动参与查询与重置。
|
|
223
|
+
|
|
224
|
+
## 本地开发
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
pnpm install
|
|
228
|
+
pnpm start
|
|
229
|
+
pnpm build
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
- `pnpm start`:启动示例项目,默认端口为 `3000`。
|
|
233
|
+
- `pnpm build`:生成 ESM 构建产物和 TypeScript 声明文件。
|
|
234
|
+
|
|
235
|
+
## 版本记录
|
|
236
|
+
|
|
237
|
+
### v1.3.1
|
|
238
|
+
|
|
239
|
+
- 修正获取所有分组的接口地址为 `/lxwork/api/auth/groups/all`
|
|
240
|
+
- 补充 Login 请求方法的 URL 注释与项目使用文档
|
|
241
|
+
|
|
242
|
+
### v1.3.0
|
|
243
|
+
|
|
244
|
+
- 优化 SSO 回调参数校验和 URL 参数清理逻辑
|
|
245
|
+
- 登录及登出重定向地址会移除 SSO 回调参数
|
|
246
|
+
|
|
247
|
+
### v1.2.14
|
|
248
|
+
|
|
249
|
+
- 合并同一实例的并发重登录,避免多个 `401` 重复跳转
|
|
250
|
+
- 优化多实例场景下的 Token 清理逻辑
|
|
251
|
+
|
|
252
|
+
### v1.2.13
|
|
253
|
+
|
|
254
|
+
- `refreshAuthToken` 支持传入自定义 Refresh Token
|
|
255
|
+
|
|
256
|
+
### v1.2.12
|
|
257
|
+
|
|
258
|
+
- 修复登出时缺少 `id_token` 导致的问题
|
|
259
|
+
|
|
260
|
+
### v1.2.11
|
|
261
|
+
|
|
262
|
+
- 修复独立鉴权模式下的 `401` 响应处理
|
|
263
|
+
|
|
264
|
+
### v1.2.10
|
|
265
|
+
|
|
266
|
+
- 新增 `setTokenStr` 方法用于仅设置 Access Token
|
|
267
|
+
- 更新 `.npmrc` 配置文件
|
|
268
|
+
|
|
269
|
+
### v1.2.9
|
|
270
|
+
|
|
271
|
+
- 修复 SSO 用户组类型判断逻辑
|
|
272
|
+
|
|
273
|
+
### v1.2.8
|
|
274
|
+
|
|
275
|
+
- 修复 SSO 登录分组数据匹配失败时返回 `null`
|
|
276
|
+
- 添加 `.npmrc` 配置文件
|
|
277
|
+
|
|
278
|
+
### v1.2.7
|
|
279
|
+
|
|
280
|
+
- 添加根据 `groupId` 获取分公司信息的方法
|
|
281
|
+
|
|
282
|
+
### v1.2.6
|
|
283
|
+
|
|
284
|
+
- 支持传入初始 `token` 参数
|
|
285
|
+
|
|
286
|
+
### v1.2.5
|
|
287
|
+
|
|
288
|
+
- 支持自定义基础 URL 配置
|
|
289
|
+
|
|
290
|
+
### v1.2.4
|
|
291
|
+
|
|
292
|
+
- 将请求参数从 body 移动到 URL 查询字符串
|
|
293
|
+
|
|
294
|
+
### v1.2.3
|
|
295
|
+
|
|
296
|
+
- 更新用户组列表接口地址
|
|
297
|
+
|
|
298
|
+
### v1.2.2
|
|
299
|
+
|
|
300
|
+
- 支持 TypeScript 类型导出声明
|
|
301
|
+
|
|
302
|
+
### v1.2.1
|
|
303
|
+
|
|
304
|
+
- Login 模块移除所有静态方法,调用方式发生变化
|
|
305
|
+
|
|
306
|
+
### v1.2.0
|
|
307
|
+
|
|
308
|
+
- 新增 React Hooks
|
|
309
|
+
|
|
310
|
+
### v1.1.0
|
|
311
|
+
|
|
312
|
+
- 新增 Login 模块
|
package/dist/index.d.ts
CHANGED
|
@@ -380,26 +380,56 @@ export declare interface UserRoleItem {
|
|
|
380
380
|
}
|
|
381
381
|
|
|
382
382
|
export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
383
|
+
/**
|
|
384
|
+
* 获取令牌信息
|
|
385
|
+
* 请求 URL:GET /lxwork/api/auth/token?{查询参数}
|
|
386
|
+
*/
|
|
383
387
|
getTokenInfo: (params: SearchTokenParams) => Promise<TokenInfoType<number>>;
|
|
388
|
+
/**
|
|
389
|
+
* 创建权限票据
|
|
390
|
+
* 请求 URL:POST /lxwork/api/auth/create-permission-ticket
|
|
391
|
+
*/
|
|
384
392
|
createPermissionTicket: (data: {
|
|
385
393
|
client_id: string;
|
|
386
394
|
}) => Promise<{
|
|
387
395
|
ticket: string;
|
|
388
396
|
}>;
|
|
397
|
+
/**
|
|
398
|
+
* 使用权限票据获取认证令牌
|
|
399
|
+
* 请求 URL:POST /sso/realms/myrealm/protocol/openid-connect/token
|
|
400
|
+
*/
|
|
389
401
|
getAuthTokenInfo: (data: {
|
|
390
402
|
grant_type: string;
|
|
391
403
|
ticket: string;
|
|
392
404
|
}) => Promise<TokenInfoType<number>>;
|
|
405
|
+
/**
|
|
406
|
+
* 刷新认证令牌
|
|
407
|
+
* 请求 URL:GET /lxwork/api/auth/refresh
|
|
408
|
+
*/
|
|
393
409
|
refreshAuthToken: (refreshToken?: string) => Promise<TokenInfoType<number>>;
|
|
410
|
+
/**
|
|
411
|
+
* 获取所有分公司
|
|
412
|
+
* 请求 URL:GET /lxwork/api/auth/groups/branch
|
|
413
|
+
*/
|
|
394
414
|
getCompanyList: () => Promise<CompanyItem[]>;
|
|
415
|
+
/**
|
|
416
|
+
* 获取当前用户所属分组
|
|
417
|
+
* 请求 URL:GET /lxwork/api/auth/users/groups
|
|
418
|
+
*/
|
|
395
419
|
getUserGroupList: () => Promise<UserGroupItem[]>;
|
|
420
|
+
/**
|
|
421
|
+
* 获取当前登录用户信息
|
|
422
|
+
* 请求 URL:GET /lxwork/api/auth/userinfo
|
|
423
|
+
*/
|
|
396
424
|
getUserInfo: () => Promise<UserInfo>;
|
|
397
425
|
/**
|
|
398
426
|
* 获取当前登录用户详细信息
|
|
427
|
+
* 请求 URL:GET /lxwork/api/auth/users/detail
|
|
399
428
|
*/
|
|
400
429
|
getUserDetail: () => Promise<UserDetail>;
|
|
401
430
|
/**
|
|
402
431
|
* 获取当前登录用户详细信息
|
|
432
|
+
* 请求 URL:GET /lxwork/api/auth/users/{id}
|
|
403
433
|
* @param id 用户id
|
|
404
434
|
*/
|
|
405
435
|
getUserDetailById: ({ id }: {
|
|
@@ -407,6 +437,7 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
407
437
|
}) => Promise<OriginUserDetail>;
|
|
408
438
|
/**
|
|
409
439
|
* 根据工号姓名等搜索用户
|
|
440
|
+
* 请求 URL:GET /lxwork/api/auth/users/search?{查询参数}
|
|
410
441
|
* @param params.username 工号 至少四个字符
|
|
411
442
|
* @param params.real_name 姓名 至少两个字符
|
|
412
443
|
* @param params.exact 是否精确查找, 如果为 true 只返回完全匹配的记录, 否则返回模糊匹配的记录
|
|
@@ -426,6 +457,7 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
426
457
|
}) => Promise<SearchUserItem[]>;
|
|
427
458
|
/**
|
|
428
459
|
* 根据角色名称搜索用户列表(带分页)
|
|
460
|
+
* 请求 URL:GET /lxwork/api/auth/users/search-by-role?{查询参数}
|
|
429
461
|
* @param params 查询参数对象
|
|
430
462
|
* @param params.role_name 必填,角色名称(需完全匹配)
|
|
431
463
|
* @param params.name 可选,用户姓名模糊搜索(支持部分匹配)
|
|
@@ -442,21 +474,25 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
442
474
|
/**
|
|
443
475
|
* 获取当前用户可用的分公司或业务组
|
|
444
476
|
* 如果当前用户属于分公司,则返回分公司及下属分公司,如果属于分公司下的部门,则返回部门下的业务组, 如果属于业务组,则返回业务组
|
|
477
|
+
* 请求 URL:GET /lxwork/api/auth/users/groups-parsed
|
|
445
478
|
* @returns Promise<CompanyItem[]>
|
|
446
479
|
*/
|
|
447
480
|
getCurUserGroupList: () => Promise<CompanyItem[]>;
|
|
448
481
|
/**
|
|
449
482
|
* 获取所有岗位角色名称
|
|
483
|
+
* 请求 URL:GET /lxwork/api/auth/users/all-roles
|
|
450
484
|
* @returns Promise<RoleItem[]>
|
|
451
485
|
*/
|
|
452
486
|
getAllRoles: () => Promise<RoleItem[]>;
|
|
453
487
|
/**
|
|
454
488
|
* 获取当前用户Roles
|
|
489
|
+
* 请求 URL:GET /lxwork/api/auth/users/role-mappings
|
|
455
490
|
* @returns Promise<UserRoleItem[]>
|
|
456
491
|
*/
|
|
457
492
|
getCurUserRoles: () => Promise<UserRoleItem[]>;
|
|
458
493
|
/**
|
|
459
494
|
* 获取所属 parent_id 下分组
|
|
495
|
+
* 请求 URL:GET /lxwork/api/auth/groups?{查询参数}
|
|
460
496
|
* @param params.parent_id 可选,分组的父级id
|
|
461
497
|
* 接口文档 不统一 GroupItem UserGroupItem 字段有下划线 有驼峰
|
|
462
498
|
* @returns Promise<GroupItem[]>
|
|
@@ -466,11 +502,13 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
466
502
|
}) => Promise<GroupItem[]>;
|
|
467
503
|
/**
|
|
468
504
|
* 获取所有分组
|
|
505
|
+
* 请求 URL:GET /lxwork/api/auth/groups/all
|
|
469
506
|
* @returns Promise<GroupItem[]>
|
|
470
507
|
*/
|
|
471
508
|
getAllGroup: () => Promise<GroupItem[]>;
|
|
472
509
|
/**
|
|
473
510
|
* 按组名搜索组, 按树结构返回匹配的组,以及这个组的上级组, 直到根节点
|
|
511
|
+
* 请求 URL:GET /lxwork/api/auth/groups/search?{查询参数}
|
|
474
512
|
* @param params.search 搜索组, 不少于2个字符
|
|
475
513
|
* @param params.max 返回结果数, keycloak 默认返回 11 个, 如何希望返回所有,可以设一个较大值
|
|
476
514
|
* @returns Promise<GroupItem[]> 会按照树形结构返回所有符合搜索条件的树形结果
|
|
@@ -481,6 +519,7 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
481
519
|
}) => Promise<GroupItem[]>;
|
|
482
520
|
/**
|
|
483
521
|
* 获取组的详细信息
|
|
522
|
+
* 请求 URL:GET /lxwork/api/auth/groups/{id}
|
|
484
523
|
* @returns Promise<UserGroupItem>
|
|
485
524
|
*/
|
|
486
525
|
getGroupDetail: ({ id }: {
|
|
@@ -488,6 +527,7 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
488
527
|
}) => Promise<UserGroupItem>;
|
|
489
528
|
/**
|
|
490
529
|
* 获取某个分公司或分公司部门下的所有下级业务组
|
|
530
|
+
* 请求 URL:GET /lxwork/api/auth/groups/{group_id}/children-parse
|
|
491
531
|
* @param group_id 分组id
|
|
492
532
|
* @returns Promise<CompanyItem[]>
|
|
493
533
|
*/
|
|
@@ -496,6 +536,7 @@ export declare const useSSOApi: (authLogin: AuthLogin) => {
|
|
|
496
536
|
}) => Promise<CompanyItem[]>;
|
|
497
537
|
/**
|
|
498
538
|
* 获取某个分组下的所有用户
|
|
539
|
+
* 请求 URL:GET /lxwork/api/auth/groups/{group_id}/members?{查询参数}
|
|
499
540
|
* @param group_id 分组id
|
|
500
541
|
* @param params.first Pagination offset, 从 0 开始
|
|
501
542
|
* @param params.max_size Maximum results size (defaults to 100)
|
package/dist/index.es.js
CHANGED
|
@@ -1669,7 +1669,15 @@ async function U(r, e, t, a = {}) {
|
|
|
1669
1669
|
return await c.json();
|
|
1670
1670
|
}
|
|
1671
1671
|
const ie = (r) => ({
|
|
1672
|
+
/**
|
|
1673
|
+
* 获取令牌信息
|
|
1674
|
+
* 请求 URL:GET /lxwork/api/auth/token?{查询参数}
|
|
1675
|
+
*/
|
|
1672
1676
|
getTokenInfo: (e) => U(r, `${G.token}?${he.stringify(e)}`, void 0, { retryUnauthorized: !1 }),
|
|
1677
|
+
/**
|
|
1678
|
+
* 创建权限票据
|
|
1679
|
+
* 请求 URL:POST /lxwork/api/auth/create-permission-ticket
|
|
1680
|
+
*/
|
|
1673
1681
|
createPermissionTicket: (e) => U(
|
|
1674
1682
|
r,
|
|
1675
1683
|
`${G.permissionTicket}`,
|
|
@@ -1679,6 +1687,10 @@ const ie = (r) => ({
|
|
|
1679
1687
|
},
|
|
1680
1688
|
{ retryUnauthorized: !1 }
|
|
1681
1689
|
),
|
|
1690
|
+
/**
|
|
1691
|
+
* 使用权限票据获取认证令牌
|
|
1692
|
+
* 请求 URL:POST /sso/realms/myrealm/protocol/openid-connect/token
|
|
1693
|
+
*/
|
|
1682
1694
|
getAuthTokenInfo: (e) => {
|
|
1683
1695
|
const t = new URLSearchParams();
|
|
1684
1696
|
return t.append("grant_type", e.grant_type), t.append("ticket", e.ticket), U(
|
|
@@ -1695,26 +1707,45 @@ const ie = (r) => ({
|
|
|
1695
1707
|
{ retryUnauthorized: !1 }
|
|
1696
1708
|
);
|
|
1697
1709
|
},
|
|
1710
|
+
/**
|
|
1711
|
+
* 刷新认证令牌
|
|
1712
|
+
* 请求 URL:GET /lxwork/api/auth/refresh
|
|
1713
|
+
*/
|
|
1698
1714
|
refreshAuthToken: (e) => U(r, `${G.refreshToken}`, {
|
|
1699
1715
|
headers: {
|
|
1700
1716
|
"Content-Type": "application/json",
|
|
1701
1717
|
Authorization: "Bearer " + (e || r.getRefreshToken())
|
|
1702
1718
|
}
|
|
1703
1719
|
}),
|
|
1720
|
+
/**
|
|
1721
|
+
* 获取所有分公司
|
|
1722
|
+
* 请求 URL:GET /lxwork/api/auth/groups/branch
|
|
1723
|
+
*/
|
|
1704
1724
|
getCompanyList: () => U(r, `${G.allCompany}`, {}),
|
|
1725
|
+
/**
|
|
1726
|
+
* 获取当前用户所属分组
|
|
1727
|
+
* 请求 URL:GET /lxwork/api/auth/users/groups
|
|
1728
|
+
*/
|
|
1705
1729
|
getUserGroupList: () => U(r, `${G.userGroup}`, {}),
|
|
1730
|
+
/**
|
|
1731
|
+
* 获取当前登录用户信息
|
|
1732
|
+
* 请求 URL:GET /lxwork/api/auth/userinfo
|
|
1733
|
+
*/
|
|
1706
1734
|
getUserInfo: () => U(r, `${G.userinfo}`),
|
|
1707
1735
|
/**
|
|
1708
1736
|
* 获取当前登录用户详细信息
|
|
1737
|
+
* 请求 URL:GET /lxwork/api/auth/users/detail
|
|
1709
1738
|
*/
|
|
1710
1739
|
getUserDetail: () => U(r, `${G.user}/detail`),
|
|
1711
1740
|
/**
|
|
1712
1741
|
* 获取当前登录用户详细信息
|
|
1742
|
+
* 请求 URL:GET /lxwork/api/auth/users/{id}
|
|
1713
1743
|
* @param id 用户id
|
|
1714
1744
|
*/
|
|
1715
1745
|
getUserDetailById: ({ id: e }) => U(r, `${G.user}/${e}`),
|
|
1716
1746
|
/**
|
|
1717
1747
|
* 根据工号姓名等搜索用户
|
|
1748
|
+
* 请求 URL:GET /lxwork/api/auth/users/search?{查询参数}
|
|
1718
1749
|
* @param params.username 工号 至少四个字符
|
|
1719
1750
|
* @param params.real_name 姓名 至少两个字符
|
|
1720
1751
|
* @param params.exact 是否精确查找, 如果为 true 只返回完全匹配的记录, 否则返回模糊匹配的记录
|
|
@@ -1728,6 +1759,7 @@ const ie = (r) => ({
|
|
|
1728
1759
|
}),
|
|
1729
1760
|
/**
|
|
1730
1761
|
* 根据角色名称搜索用户列表(带分页)
|
|
1762
|
+
* 请求 URL:GET /lxwork/api/auth/users/search-by-role?{查询参数}
|
|
1731
1763
|
* @param params 查询参数对象
|
|
1732
1764
|
* @param params.role_name 必填,角色名称(需完全匹配)
|
|
1733
1765
|
* @param params.name 可选,用户姓名模糊搜索(支持部分匹配)
|
|
@@ -1741,6 +1773,7 @@ const ie = (r) => ({
|
|
|
1741
1773
|
/**
|
|
1742
1774
|
* 获取当前用户可用的分公司或业务组
|
|
1743
1775
|
* 如果当前用户属于分公司,则返回分公司及下属分公司,如果属于分公司下的部门,则返回部门下的业务组, 如果属于业务组,则返回业务组
|
|
1776
|
+
* 请求 URL:GET /lxwork/api/auth/users/groups-parsed
|
|
1744
1777
|
* @returns Promise<CompanyItem[]>
|
|
1745
1778
|
*/
|
|
1746
1779
|
getCurUserGroupList: () => U(r, `${G.user}/groups-parsed`, {
|
|
@@ -1748,6 +1781,7 @@ const ie = (r) => ({
|
|
|
1748
1781
|
}),
|
|
1749
1782
|
/**
|
|
1750
1783
|
* 获取所有岗位角色名称
|
|
1784
|
+
* 请求 URL:GET /lxwork/api/auth/users/all-roles
|
|
1751
1785
|
* @returns Promise<RoleItem[]>
|
|
1752
1786
|
*/
|
|
1753
1787
|
getAllRoles: () => U(r, `${G.user}/all-roles`, {
|
|
@@ -1755,6 +1789,7 @@ const ie = (r) => ({
|
|
|
1755
1789
|
}),
|
|
1756
1790
|
/**
|
|
1757
1791
|
* 获取当前用户Roles
|
|
1792
|
+
* 请求 URL:GET /lxwork/api/auth/users/role-mappings
|
|
1758
1793
|
* @returns Promise<UserRoleItem[]>
|
|
1759
1794
|
*/
|
|
1760
1795
|
getCurUserRoles: () => U(r, `${G.user}/role-mappings`, {
|
|
@@ -1762,6 +1797,7 @@ const ie = (r) => ({
|
|
|
1762
1797
|
}),
|
|
1763
1798
|
/**
|
|
1764
1799
|
* 获取所属 parent_id 下分组
|
|
1800
|
+
* 请求 URL:GET /lxwork/api/auth/groups?{查询参数}
|
|
1765
1801
|
* @param params.parent_id 可选,分组的父级id
|
|
1766
1802
|
* 接口文档 不统一 GroupItem UserGroupItem 字段有下划线 有驼峰
|
|
1767
1803
|
* @returns Promise<GroupItem[]>
|
|
@@ -1771,13 +1807,15 @@ const ie = (r) => ({
|
|
|
1771
1807
|
}),
|
|
1772
1808
|
/**
|
|
1773
1809
|
* 获取所有分组
|
|
1810
|
+
* 请求 URL:GET /lxwork/api/auth/groups/all
|
|
1774
1811
|
* @returns Promise<GroupItem[]>
|
|
1775
1812
|
*/
|
|
1776
|
-
getAllGroup: () => U(r, `${G.groups}`, {
|
|
1813
|
+
getAllGroup: () => U(r, `${G.groups}/all`, {
|
|
1777
1814
|
method: "GET"
|
|
1778
1815
|
}),
|
|
1779
1816
|
/**
|
|
1780
1817
|
* 按组名搜索组, 按树结构返回匹配的组,以及这个组的上级组, 直到根节点
|
|
1818
|
+
* 请求 URL:GET /lxwork/api/auth/groups/search?{查询参数}
|
|
1781
1819
|
* @param params.search 搜索组, 不少于2个字符
|
|
1782
1820
|
* @param params.max 返回结果数, keycloak 默认返回 11 个, 如何希望返回所有,可以设一个较大值
|
|
1783
1821
|
* @returns Promise<GroupItem[]> 会按照树形结构返回所有符合搜索条件的树形结果
|
|
@@ -1787,17 +1825,20 @@ const ie = (r) => ({
|
|
|
1787
1825
|
}),
|
|
1788
1826
|
/**
|
|
1789
1827
|
* 获取组的详细信息
|
|
1828
|
+
* 请求 URL:GET /lxwork/api/auth/groups/{id}
|
|
1790
1829
|
* @returns Promise<UserGroupItem>
|
|
1791
1830
|
*/
|
|
1792
1831
|
getGroupDetail: ({ id: e }) => U(r, `${G.groups}/${e}`),
|
|
1793
1832
|
/**
|
|
1794
1833
|
* 获取某个分公司或分公司部门下的所有下级业务组
|
|
1834
|
+
* 请求 URL:GET /lxwork/api/auth/groups/{group_id}/children-parse
|
|
1795
1835
|
* @param group_id 分组id
|
|
1796
1836
|
* @returns Promise<CompanyItem[]>
|
|
1797
1837
|
*/
|
|
1798
1838
|
getChildrenGroup: ({ group_id: e }) => U(r, `${G.groups}/${e}/children-parse`),
|
|
1799
1839
|
/**
|
|
1800
1840
|
* 获取某个分组下的所有用户
|
|
1841
|
+
* 请求 URL:GET /lxwork/api/auth/groups/{group_id}/members?{查询参数}
|
|
1801
1842
|
* @param group_id 分组id
|
|
1802
1843
|
* @param params.first Pagination offset, 从 0 开始
|
|
1803
1844
|
* @param params.max_size Maximum results size (defaults to 100)
|