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 CHANGED
@@ -1,45 +1,312 @@
1
- [keyClock登录](/docs/Login.md)
2
-
3
- #### v1.2.12
4
- - 修复登出时缺少 `id_token` 导致的问题
5
-
6
- #### v1.2.11
7
- - 修复独立鉴权模式下的 401 响应处理
8
-
9
- #### v1.2.10
10
- - 新增 `setTokenStr` 方法用于仅设置 Access Token
11
- - 更新 `.npmrc` 配置文件
12
-
13
- #### v1.2.9
14
- - 修复 SSO 用户组类型判断逻辑
15
-
16
- #### v1.2.8
17
- - 修复 SSO 登录分组数据匹配失败时返回 `null`
18
- - 添加 `.npmrc` 配置文件
19
-
20
- #### v1.2.7
21
- - 添加根据 `groupId` 获取分公司信息的方法
22
-
23
- #### v1.2.6
24
- - 支持传入初始 `token` 参数
25
-
26
- #### v1.2.5
27
- - 支持自定义基础 URL 配置
28
-
29
- #### v1.2.4
30
- - 将请求参数从 body 移动到 URL 查询字符串
31
-
32
- #### v1.2.3
33
- - 更新用户组列表接口地址
34
-
35
- #### v1.2.2
36
- - 支持 TypeScript 类型导出声明
37
-
38
- #### v1.2.1
39
- - Login 模块移除所有静态方法,调用方式发生变化
40
-
41
- #### v1.2.0
42
- - 新增 react-hooks
43
-
44
- #### v1.1.0
45
- - 新增 Login 模块
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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "little-wheels",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "这是一个基于react自用轮子库",
5
5
  "repository": {
6
6
  "type": "git",