smart-admin-web 10.24.0 → 10.26.0
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/dist/api/index.d.ts +26 -5
- package/dist/api/index.js +35 -17
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +333 -6
- package/dist/components/OrgTreeSelect/index.vue.js +32 -20
- package/dist/components/OrgTreeSelect/index.vue.js.map +1 -1
- package/dist/components/RoleSelect/index.vue.js +12 -14
- package/dist/components/RoleSelect/index.vue.js.map +1 -1
- package/dist/components/UserPicker/index.vue.js +2 -2
- package/dist/components/UserPicker/index2.vue.js +179 -208
- package/dist/components/UserPicker/index2.vue.js.map +1 -1
- package/dist/components/UserSelect/index.vue.js +10 -10
- package/dist/components/UserSelect/index.vue.js.map +1 -1
- package/dist/layouts/NoticeBell.vue.js +2 -2
- package/dist/layouts/NoticeBell2.vue.js +203 -146
- package/dist/layouts/NoticeBell2.vue.js.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/locales/en-US.d.ts +6 -2
- package/dist/locales/en-US.js +8 -3
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +6 -2
- package/dist/locales/zh-CN.js +8 -3
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/api.d.ts +22 -0
- package/dist/types/api.js.map +1 -1
- package/dist/views/system/user/index.vue.js +2 -2
- package/dist/views/system/user/index2.vue.js +266 -257
- package/dist/views/system/user/index2.vue.js.map +1 -1
- package/package.json +1 -1
package/dist/api/schema.d.ts
CHANGED
|
@@ -1482,7 +1482,7 @@ export interface paths {
|
|
|
1482
1482
|
path?: never;
|
|
1483
1483
|
cookie?: never;
|
|
1484
1484
|
};
|
|
1485
|
-
/** 当前用户未读通知数(顶栏角标) */
|
|
1485
|
+
/** 当前用户未读通知数(顶栏角标);带 Types 时只数这几种类型(铃铛页签角标) */
|
|
1486
1486
|
get: operations["Notice_UnreadCount"];
|
|
1487
1487
|
put?: never;
|
|
1488
1488
|
post?: never;
|
|
@@ -1517,7 +1517,7 @@ export interface paths {
|
|
|
1517
1517
|
cookie?: never;
|
|
1518
1518
|
};
|
|
1519
1519
|
get?: never;
|
|
1520
|
-
/**
|
|
1520
|
+
/** 标记全部通知为已读;带 Types 时只标这几种类型(铃铛当前页签) */
|
|
1521
1521
|
put: operations["Notice_ReadAll"];
|
|
1522
1522
|
post?: never;
|
|
1523
1523
|
delete?: never;
|
|
@@ -1543,6 +1543,26 @@ export interface paths {
|
|
|
1543
1543
|
patch?: never;
|
|
1544
1544
|
trace?: never;
|
|
1545
1545
|
};
|
|
1546
|
+
"/api/v1/sys/org/options": {
|
|
1547
|
+
parameters: {
|
|
1548
|
+
query?: never;
|
|
1549
|
+
header?: never;
|
|
1550
|
+
path?: never;
|
|
1551
|
+
cookie?: never;
|
|
1552
|
+
};
|
|
1553
|
+
/**
|
|
1554
|
+
* 机构选择器数据源(平铺 id / parentId / name)。只回拼树所需字段,
|
|
1555
|
+
* 故 `[ActiveSession]` 而非 `[RolePermission]`:没有机构页权限的角色也能在表单里选机构;数据范围与 list 一致。
|
|
1556
|
+
*/
|
|
1557
|
+
get: operations["Org_Options"];
|
|
1558
|
+
put?: never;
|
|
1559
|
+
post?: never;
|
|
1560
|
+
delete?: never;
|
|
1561
|
+
options?: never;
|
|
1562
|
+
head?: never;
|
|
1563
|
+
patch?: never;
|
|
1564
|
+
trace?: never;
|
|
1565
|
+
};
|
|
1546
1566
|
"/api/v1/sys/org/{id}": {
|
|
1547
1567
|
parameters: {
|
|
1548
1568
|
query?: never;
|
|
@@ -1878,6 +1898,23 @@ export interface paths {
|
|
|
1878
1898
|
patch?: never;
|
|
1879
1899
|
trace?: never;
|
|
1880
1900
|
};
|
|
1901
|
+
"/api/v1/sys/position/options": {
|
|
1902
|
+
parameters: {
|
|
1903
|
+
query?: never;
|
|
1904
|
+
header?: never;
|
|
1905
|
+
path?: never;
|
|
1906
|
+
cookie?: never;
|
|
1907
|
+
};
|
|
1908
|
+
/** 职位选择器数据源(id / name)。只回 Id 与名称,故 `[ActiveSession]`:没有职位页权限的角色也能在表单里选职位。 */
|
|
1909
|
+
get: operations["Position_Options"];
|
|
1910
|
+
put?: never;
|
|
1911
|
+
post?: never;
|
|
1912
|
+
delete?: never;
|
|
1913
|
+
options?: never;
|
|
1914
|
+
head?: never;
|
|
1915
|
+
patch?: never;
|
|
1916
|
+
trace?: never;
|
|
1917
|
+
};
|
|
1881
1918
|
"/api/v1/sys/position/{id}": {
|
|
1882
1919
|
parameters: {
|
|
1883
1920
|
query?: never;
|
|
@@ -2266,6 +2303,26 @@ export interface paths {
|
|
|
2266
2303
|
patch?: never;
|
|
2267
2304
|
trace?: never;
|
|
2268
2305
|
};
|
|
2306
|
+
"/api/v1/sys/role/options": {
|
|
2307
|
+
parameters: {
|
|
2308
|
+
query?: never;
|
|
2309
|
+
header?: never;
|
|
2310
|
+
path?: never;
|
|
2311
|
+
cookie?: never;
|
|
2312
|
+
};
|
|
2313
|
+
/**
|
|
2314
|
+
* 角色选择器数据源(仅启用,id / name)。只回 Id 与名称,故 `[ActiveSession]`:
|
|
2315
|
+
* 没有角色页权限的角色也能在用户表单里选角色;能否真的分配仍由用户更新接口的授权与转授校验把关。
|
|
2316
|
+
*/
|
|
2317
|
+
get: operations["SysRole_Options"];
|
|
2318
|
+
put?: never;
|
|
2319
|
+
post?: never;
|
|
2320
|
+
delete?: never;
|
|
2321
|
+
options?: never;
|
|
2322
|
+
head?: never;
|
|
2323
|
+
patch?: never;
|
|
2324
|
+
trace?: never;
|
|
2325
|
+
};
|
|
2269
2326
|
"/api/v1/sys/role/{id}": {
|
|
2270
2327
|
parameters: {
|
|
2271
2328
|
query?: never;
|
|
@@ -2472,6 +2529,26 @@ export interface paths {
|
|
|
2472
2529
|
patch?: never;
|
|
2473
2530
|
trace?: never;
|
|
2474
2531
|
};
|
|
2532
|
+
"/api/v1/sys/user/options": {
|
|
2533
|
+
parameters: {
|
|
2534
|
+
query?: never;
|
|
2535
|
+
header?: never;
|
|
2536
|
+
path?: never;
|
|
2537
|
+
cookie?: never;
|
|
2538
|
+
};
|
|
2539
|
+
/**
|
|
2540
|
+
* 用户选择器数据源(仅启用,分页,id / name / account)。只回这三个字段,故 `[ActiveSession]`:
|
|
2541
|
+
* 没有用户页权限的角色也能选人;数据范围与 page 一致,不接受客户端排序。
|
|
2542
|
+
*/
|
|
2543
|
+
get: operations["User_Options"];
|
|
2544
|
+
put?: never;
|
|
2545
|
+
post?: never;
|
|
2546
|
+
delete?: never;
|
|
2547
|
+
options?: never;
|
|
2548
|
+
head?: never;
|
|
2549
|
+
patch?: never;
|
|
2550
|
+
trace?: never;
|
|
2551
|
+
};
|
|
2475
2552
|
"/api/v1/sys/user/{id}": {
|
|
2476
2553
|
parameters: {
|
|
2477
2554
|
query?: never;
|
|
@@ -3948,6 +4025,17 @@ export interface components {
|
|
|
3948
4025
|
/** @description 是否启用 */
|
|
3949
4026
|
enabled?: boolean;
|
|
3950
4027
|
};
|
|
4028
|
+
/** @description 机构选择器选项:只有拼树所需的三个字段。 */
|
|
4029
|
+
OrgOption: {
|
|
4030
|
+
/** Format: int64 */
|
|
4031
|
+
id: number | string;
|
|
4032
|
+
/**
|
|
4033
|
+
* Format: int64
|
|
4034
|
+
* @description 父机构 Id(0=根)
|
|
4035
|
+
*/
|
|
4036
|
+
parentId: number | string;
|
|
4037
|
+
name: string;
|
|
4038
|
+
};
|
|
3951
4039
|
/**
|
|
3952
4040
|
* @description 分页结果模型——所有分页查询的统一返回。ORM 中立(放 Core),
|
|
3953
4041
|
* SqlSugar 侧的 `ToPagedListAsync` 扩展负责把查询物化成它。
|
|
@@ -4480,6 +4568,34 @@ export interface components {
|
|
|
4480
4568
|
/** @description 当前页数据 */
|
|
4481
4569
|
items?: components["schemas"]["UserMenuGrantPageItem"][];
|
|
4482
4570
|
};
|
|
4571
|
+
/**
|
|
4572
|
+
* @description 分页结果模型——所有分页查询的统一返回。ORM 中立(放 Core),
|
|
4573
|
+
* SqlSugar 侧的 `ToPagedListAsync` 扩展负责把查询物化成它。
|
|
4574
|
+
*/
|
|
4575
|
+
PagedListOfUserOption: {
|
|
4576
|
+
/**
|
|
4577
|
+
* Format: int32
|
|
4578
|
+
* @description 当前页码(从 1 起)
|
|
4579
|
+
*/
|
|
4580
|
+
current?: number | string;
|
|
4581
|
+
/**
|
|
4582
|
+
* Format: int32
|
|
4583
|
+
* @description 每页条数
|
|
4584
|
+
*/
|
|
4585
|
+
size?: number | string;
|
|
4586
|
+
/**
|
|
4587
|
+
* Format: int32
|
|
4588
|
+
* @description 总记录数
|
|
4589
|
+
*/
|
|
4590
|
+
total?: number | string;
|
|
4591
|
+
/**
|
|
4592
|
+
* Format: int32
|
|
4593
|
+
* @description 总页数(向上取整;Size 为 0 时为 0)
|
|
4594
|
+
*/
|
|
4595
|
+
pages?: number | string;
|
|
4596
|
+
/** @description 当前页数据 */
|
|
4597
|
+
items?: components["schemas"]["UserOption"][];
|
|
4598
|
+
};
|
|
4483
4599
|
/** @description 密码复杂度策略(运行时可配置,见 ISecurityPolicyProvider)。 */
|
|
4484
4600
|
PasswordPolicy: {
|
|
4485
4601
|
/**
|
|
@@ -4538,6 +4654,12 @@ export interface components {
|
|
|
4538
4654
|
/** @description 是否启用 */
|
|
4539
4655
|
enabled?: boolean;
|
|
4540
4656
|
};
|
|
4657
|
+
/** @description 职位选择器选项:只有 Id 与名称。 */
|
|
4658
|
+
PositionOption: {
|
|
4659
|
+
/** Format: int64 */
|
|
4660
|
+
id: number | string;
|
|
4661
|
+
name: string;
|
|
4662
|
+
};
|
|
4541
4663
|
/** @description 再次认证入参。 */
|
|
4542
4664
|
ReauthInput: {
|
|
4543
4665
|
/** @description 方法:`totp` | `password` */
|
|
@@ -5153,6 +5275,28 @@ export interface components {
|
|
|
5153
5275
|
/** @description 业务数据载荷 */
|
|
5154
5276
|
data?: null | components["schemas"]["MySessionItem"][];
|
|
5155
5277
|
};
|
|
5278
|
+
/**
|
|
5279
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
5280
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
5281
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
5282
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
5283
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
5284
|
+
*/
|
|
5285
|
+
ResultOfIReadOnlyListOfOrgOption: {
|
|
5286
|
+
/**
|
|
5287
|
+
* Format: int32
|
|
5288
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
5289
|
+
*/
|
|
5290
|
+
code?: number | string;
|
|
5291
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
5292
|
+
msgKey?: null | string;
|
|
5293
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
5294
|
+
args?: null | Record<string, never>;
|
|
5295
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
5296
|
+
message?: null | string;
|
|
5297
|
+
/** @description 业务数据载荷 */
|
|
5298
|
+
data?: null | components["schemas"]["OrgOption"][];
|
|
5299
|
+
};
|
|
5156
5300
|
/**
|
|
5157
5301
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
5158
5302
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -5175,6 +5319,50 @@ export interface components {
|
|
|
5175
5319
|
/** @description 业务数据载荷 */
|
|
5176
5320
|
data?: null | components["schemas"]["PermissionRouteItem"][];
|
|
5177
5321
|
};
|
|
5322
|
+
/**
|
|
5323
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
5324
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
5325
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
5326
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
5327
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
5328
|
+
*/
|
|
5329
|
+
ResultOfIReadOnlyListOfPositionOption: {
|
|
5330
|
+
/**
|
|
5331
|
+
* Format: int32
|
|
5332
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
5333
|
+
*/
|
|
5334
|
+
code?: number | string;
|
|
5335
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
5336
|
+
msgKey?: null | string;
|
|
5337
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
5338
|
+
args?: null | Record<string, never>;
|
|
5339
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
5340
|
+
message?: null | string;
|
|
5341
|
+
/** @description 业务数据载荷 */
|
|
5342
|
+
data?: null | components["schemas"]["PositionOption"][];
|
|
5343
|
+
};
|
|
5344
|
+
/**
|
|
5345
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
5346
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
5347
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
5348
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
5349
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
5350
|
+
*/
|
|
5351
|
+
ResultOfIReadOnlyListOfRoleOption: {
|
|
5352
|
+
/**
|
|
5353
|
+
* Format: int32
|
|
5354
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
5355
|
+
*/
|
|
5356
|
+
code?: number | string;
|
|
5357
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
5358
|
+
msgKey?: null | string;
|
|
5359
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
5360
|
+
args?: null | Record<string, never>;
|
|
5361
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
5362
|
+
message?: null | string;
|
|
5363
|
+
/** @description 业务数据载荷 */
|
|
5364
|
+
data?: null | components["schemas"]["RoleOption"][];
|
|
5365
|
+
};
|
|
5178
5366
|
/**
|
|
5179
5367
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
5180
5368
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -5836,6 +6024,27 @@ export interface components {
|
|
|
5836
6024
|
message?: null | string;
|
|
5837
6025
|
data?: null | components["schemas"]["PagedListOfUserMenuGrantPageItem"];
|
|
5838
6026
|
};
|
|
6027
|
+
/**
|
|
6028
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
6029
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
6030
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
6031
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
6032
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
6033
|
+
*/
|
|
6034
|
+
ResultOfPagedListOfUserOption: {
|
|
6035
|
+
/**
|
|
6036
|
+
* Format: int32
|
|
6037
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
6038
|
+
*/
|
|
6039
|
+
code?: number | string;
|
|
6040
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
6041
|
+
msgKey?: null | string;
|
|
6042
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
6043
|
+
args?: null | Record<string, never>;
|
|
6044
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
6045
|
+
message?: null | string;
|
|
6046
|
+
data?: null | components["schemas"]["PagedListOfUserOption"];
|
|
6047
|
+
};
|
|
5839
6048
|
/**
|
|
5840
6049
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
5841
6050
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -6194,6 +6403,12 @@ export interface components {
|
|
|
6194
6403
|
*/
|
|
6195
6404
|
isDelegatable?: null | boolean;
|
|
6196
6405
|
};
|
|
6406
|
+
/** @description 角色选择器选项:只有 Id 与名称。 */
|
|
6407
|
+
RoleOption: {
|
|
6408
|
+
/** Format: int64 */
|
|
6409
|
+
id: number | string;
|
|
6410
|
+
name: string;
|
|
6411
|
+
};
|
|
6197
6412
|
/**
|
|
6198
6413
|
* @description 服务器监控快照。只报<b>进程与主机基础面</b>——系统级全量指标(APM/链路/告警)
|
|
6199
6414
|
* 留给消费方的观测栈(OpenTelemetry 等可选包方向),内核不越位。
|
|
@@ -7178,8 +7393,8 @@ export interface components {
|
|
|
7178
7393
|
*/
|
|
7179
7394
|
isDelegatable?: null | boolean;
|
|
7180
7395
|
/**
|
|
7181
|
-
* @description 内置角色:内核种子播的固定 Id(1–999)
|
|
7182
|
-
* 与消费者种子里的角色(Id ≥ 1000)
|
|
7396
|
+
* @description 内置角色:内核种子播的固定 Id(1–999)。除「用户管理」「角色管理」外,系统菜单只能授给内置角色,界面上新建的角色(雪花 Id)
|
|
7397
|
+
* 与消费者种子里的角色(Id ≥ 1000)都授不了那部分。只读计算属性,不建列。
|
|
7183
7398
|
*/
|
|
7184
7399
|
isBuiltin?: boolean;
|
|
7185
7400
|
/** @description 软删除标记;`true` 即被全局查询过滤器排除,可经 `RestoreAsync` 恢复。 */
|
|
@@ -7547,6 +7762,13 @@ export interface components {
|
|
|
7547
7762
|
/** @description 可转授(内置 system 模块恒为 false) */
|
|
7548
7763
|
delegatable?: boolean;
|
|
7549
7764
|
};
|
|
7765
|
+
/** @description 用户选择器选项:只有 Id、姓名、账号,其余字段(手机、邮箱、头像等)一律不出。 */
|
|
7766
|
+
UserOption: {
|
|
7767
|
+
/** Format: int64 */
|
|
7768
|
+
id: number | string;
|
|
7769
|
+
name: string;
|
|
7770
|
+
account: string;
|
|
7771
|
+
};
|
|
7550
7772
|
/** @description 个人资料出参(当前登录用户视角;不含密码哈希)。 */
|
|
7551
7773
|
UserProfile: {
|
|
7552
7774
|
/** Format: int64 */
|
|
@@ -10122,6 +10344,8 @@ export interface operations {
|
|
|
10122
10344
|
Title?: string;
|
|
10123
10345
|
/** @description 类型(精确匹配,可选) */
|
|
10124
10346
|
Type?: components["schemas"]["NoticeType"];
|
|
10347
|
+
/** @description 类型(多选,命中任一即可;可选,与 Type 同时给时两条都要满足) */
|
|
10348
|
+
Types?: components["schemas"]["NoticeType"][];
|
|
10125
10349
|
/** @description 仅未读(用户端"未读"页签用;管理端列表忽略) */
|
|
10126
10350
|
OnlyUnread?: boolean;
|
|
10127
10351
|
Current?: number | string;
|
|
@@ -10179,6 +10403,8 @@ export interface operations {
|
|
|
10179
10403
|
Title?: string;
|
|
10180
10404
|
/** @description 类型(精确匹配,可选) */
|
|
10181
10405
|
Type?: components["schemas"]["NoticeType"];
|
|
10406
|
+
/** @description 类型(多选,命中任一即可;可选,与 Type 同时给时两条都要满足) */
|
|
10407
|
+
Types?: components["schemas"]["NoticeType"][];
|
|
10182
10408
|
/** @description 仅未读(用户端"未读"页签用;管理端列表忽略) */
|
|
10183
10409
|
OnlyUnread?: boolean;
|
|
10184
10410
|
Current?: number | string;
|
|
@@ -10207,7 +10433,9 @@ export interface operations {
|
|
|
10207
10433
|
};
|
|
10208
10434
|
Notice_UnreadCount: {
|
|
10209
10435
|
parameters: {
|
|
10210
|
-
query?:
|
|
10436
|
+
query?: {
|
|
10437
|
+
Types?: components["schemas"]["NoticeType"][];
|
|
10438
|
+
};
|
|
10211
10439
|
header?: never;
|
|
10212
10440
|
path?: never;
|
|
10213
10441
|
cookie?: never;
|
|
@@ -10253,7 +10481,9 @@ export interface operations {
|
|
|
10253
10481
|
};
|
|
10254
10482
|
Notice_ReadAll: {
|
|
10255
10483
|
parameters: {
|
|
10256
|
-
query?:
|
|
10484
|
+
query?: {
|
|
10485
|
+
Types?: components["schemas"]["NoticeType"][];
|
|
10486
|
+
};
|
|
10257
10487
|
header?: never;
|
|
10258
10488
|
path?: never;
|
|
10259
10489
|
cookie?: never;
|
|
@@ -10295,6 +10525,28 @@ export interface operations {
|
|
|
10295
10525
|
};
|
|
10296
10526
|
};
|
|
10297
10527
|
};
|
|
10528
|
+
Org_Options: {
|
|
10529
|
+
parameters: {
|
|
10530
|
+
query?: never;
|
|
10531
|
+
header?: never;
|
|
10532
|
+
path?: never;
|
|
10533
|
+
cookie?: never;
|
|
10534
|
+
};
|
|
10535
|
+
requestBody?: never;
|
|
10536
|
+
responses: {
|
|
10537
|
+
/** @description OK */
|
|
10538
|
+
200: {
|
|
10539
|
+
headers: {
|
|
10540
|
+
[name: string]: unknown;
|
|
10541
|
+
};
|
|
10542
|
+
content: {
|
|
10543
|
+
"text/plain": components["schemas"]["ResultOfIReadOnlyListOfOrgOption"];
|
|
10544
|
+
"application/json": components["schemas"]["ResultOfIReadOnlyListOfOrgOption"];
|
|
10545
|
+
"text/json": components["schemas"]["ResultOfIReadOnlyListOfOrgOption"];
|
|
10546
|
+
};
|
|
10547
|
+
};
|
|
10548
|
+
};
|
|
10549
|
+
};
|
|
10298
10550
|
Org_Get: {
|
|
10299
10551
|
parameters: {
|
|
10300
10552
|
query?: never;
|
|
@@ -10852,6 +11104,28 @@ export interface operations {
|
|
|
10852
11104
|
};
|
|
10853
11105
|
};
|
|
10854
11106
|
};
|
|
11107
|
+
Position_Options: {
|
|
11108
|
+
parameters: {
|
|
11109
|
+
query?: never;
|
|
11110
|
+
header?: never;
|
|
11111
|
+
path?: never;
|
|
11112
|
+
cookie?: never;
|
|
11113
|
+
};
|
|
11114
|
+
requestBody?: never;
|
|
11115
|
+
responses: {
|
|
11116
|
+
/** @description OK */
|
|
11117
|
+
200: {
|
|
11118
|
+
headers: {
|
|
11119
|
+
[name: string]: unknown;
|
|
11120
|
+
};
|
|
11121
|
+
content: {
|
|
11122
|
+
"text/plain": components["schemas"]["ResultOfIReadOnlyListOfPositionOption"];
|
|
11123
|
+
"application/json": components["schemas"]["ResultOfIReadOnlyListOfPositionOption"];
|
|
11124
|
+
"text/json": components["schemas"]["ResultOfIReadOnlyListOfPositionOption"];
|
|
11125
|
+
};
|
|
11126
|
+
};
|
|
11127
|
+
};
|
|
11128
|
+
};
|
|
10855
11129
|
Position_Get: {
|
|
10856
11130
|
parameters: {
|
|
10857
11131
|
query?: never;
|
|
@@ -11518,6 +11792,28 @@ export interface operations {
|
|
|
11518
11792
|
};
|
|
11519
11793
|
};
|
|
11520
11794
|
};
|
|
11795
|
+
SysRole_Options: {
|
|
11796
|
+
parameters: {
|
|
11797
|
+
query?: never;
|
|
11798
|
+
header?: never;
|
|
11799
|
+
path?: never;
|
|
11800
|
+
cookie?: never;
|
|
11801
|
+
};
|
|
11802
|
+
requestBody?: never;
|
|
11803
|
+
responses: {
|
|
11804
|
+
/** @description OK */
|
|
11805
|
+
200: {
|
|
11806
|
+
headers: {
|
|
11807
|
+
[name: string]: unknown;
|
|
11808
|
+
};
|
|
11809
|
+
content: {
|
|
11810
|
+
"text/plain": components["schemas"]["ResultOfIReadOnlyListOfRoleOption"];
|
|
11811
|
+
"application/json": components["schemas"]["ResultOfIReadOnlyListOfRoleOption"];
|
|
11812
|
+
"text/json": components["schemas"]["ResultOfIReadOnlyListOfRoleOption"];
|
|
11813
|
+
};
|
|
11814
|
+
};
|
|
11815
|
+
};
|
|
11816
|
+
};
|
|
11521
11817
|
SysRole_Get: {
|
|
11522
11818
|
parameters: {
|
|
11523
11819
|
query?: never;
|
|
@@ -11898,6 +12194,37 @@ export interface operations {
|
|
|
11898
12194
|
};
|
|
11899
12195
|
};
|
|
11900
12196
|
};
|
|
12197
|
+
User_Options: {
|
|
12198
|
+
parameters: {
|
|
12199
|
+
query?: {
|
|
12200
|
+
/** @description 姓名或账号(模糊) */
|
|
12201
|
+
Keyword?: string;
|
|
12202
|
+
/** @description 主属机构 Id(精确) */
|
|
12203
|
+
OrgId?: number | string;
|
|
12204
|
+
/** @description 页码(从 1 起) */
|
|
12205
|
+
Current?: number | string;
|
|
12206
|
+
/** @description 每页条数,上限同 `SmartAdmin:Api:MaxPageSize` */
|
|
12207
|
+
Size?: number | string;
|
|
12208
|
+
};
|
|
12209
|
+
header?: never;
|
|
12210
|
+
path?: never;
|
|
12211
|
+
cookie?: never;
|
|
12212
|
+
};
|
|
12213
|
+
requestBody?: never;
|
|
12214
|
+
responses: {
|
|
12215
|
+
/** @description OK */
|
|
12216
|
+
200: {
|
|
12217
|
+
headers: {
|
|
12218
|
+
[name: string]: unknown;
|
|
12219
|
+
};
|
|
12220
|
+
content: {
|
|
12221
|
+
"text/plain": components["schemas"]["ResultOfPagedListOfUserOption"];
|
|
12222
|
+
"application/json": components["schemas"]["ResultOfPagedListOfUserOption"];
|
|
12223
|
+
"text/json": components["schemas"]["ResultOfPagedListOfUserOption"];
|
|
12224
|
+
};
|
|
12225
|
+
};
|
|
12226
|
+
};
|
|
12227
|
+
};
|
|
11901
12228
|
User_Get: {
|
|
11902
12229
|
parameters: {
|
|
11903
12230
|
query?: never;
|
|
@@ -1,42 +1,54 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { NTreeSelect as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { defineComponent as f, ref as l, onMounted as p, computed as m, openBlock as v, createBlock as b, unref as r, mergeProps as h, createSlots as x, withCtx as y, createVNode as S } from "vue";
|
|
2
|
+
import { NTreeSelect as _, NEmpty as g } from "naive-ui";
|
|
3
|
+
import { useI18n as k } from "vue-i18n";
|
|
4
|
+
import { orgApi as w } from "../../api/index.js";
|
|
5
|
+
import { collectSubtreeIds as N, buildTree as O } from "../../utils/tree.js";
|
|
6
|
+
const T = /* @__PURE__ */ f({
|
|
6
7
|
inheritAttrs: !1,
|
|
7
8
|
__name: "index",
|
|
8
9
|
props: {
|
|
9
10
|
excludeSubtreeOf: {}
|
|
10
11
|
},
|
|
11
|
-
setup(
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
setup(c) {
|
|
13
|
+
const n = c, { t: s } = k(), e = l([]), t = l(!1), a = l(!1);
|
|
14
|
+
p(async () => {
|
|
15
|
+
t.value = !0;
|
|
15
16
|
try {
|
|
16
|
-
e.value = await
|
|
17
|
+
e.value = await w.options();
|
|
17
18
|
} catch {
|
|
19
|
+
a.value = !0;
|
|
18
20
|
} finally {
|
|
19
|
-
|
|
21
|
+
t.value = !1;
|
|
20
22
|
}
|
|
21
23
|
});
|
|
22
|
-
const u =
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
return e.value.filter((
|
|
24
|
+
const u = m(() => {
|
|
25
|
+
const o = n.excludeSubtreeOf == null ? e.value : (() => {
|
|
26
|
+
const i = N(e.value, n.excludeSubtreeOf);
|
|
27
|
+
return e.value.filter((d) => !i.has(d.id));
|
|
26
28
|
})();
|
|
27
|
-
return
|
|
29
|
+
return O(o);
|
|
28
30
|
});
|
|
29
|
-
return (
|
|
31
|
+
return (o, i) => (v(), b(r(_), h({
|
|
30
32
|
options: u.value,
|
|
31
|
-
loading:
|
|
33
|
+
loading: t.value,
|
|
32
34
|
"key-field": "id",
|
|
33
35
|
"label-field": "name",
|
|
34
36
|
"children-field": "children",
|
|
35
37
|
clearable: ""
|
|
36
|
-
},
|
|
38
|
+
}, o.$attrs), x({ _: 2 }, [
|
|
39
|
+
a.value ? {
|
|
40
|
+
name: "empty",
|
|
41
|
+
fn: y(() => [
|
|
42
|
+
S(r(g), {
|
|
43
|
+
description: r(s)("common.loadFailed")
|
|
44
|
+
}, null, 8, ["description"])
|
|
45
|
+
]),
|
|
46
|
+
key: "0"
|
|
47
|
+
} : void 0
|
|
48
|
+
]), 1040, ["options", "loading"]));
|
|
37
49
|
}
|
|
38
50
|
});
|
|
39
51
|
export {
|
|
40
|
-
|
|
52
|
+
T as default
|
|
41
53
|
};
|
|
42
54
|
//# sourceMappingURL=index.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.js","sources":["../../../src/components/OrgTreeSelect/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 机构树下拉:onMounted 拉 orgApi.
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":["../../../src/components/OrgTreeSelect/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 机构树下拉:onMounted 拉 orgApi.options()(平铺,不占机构页权限码)→ buildTree 拼树;value/placeholder/size… 一切经 $attrs 透传 n-tree-select。\n// excludeSubtreeOf:编辑机构选上级时剪掉自身子树(防把自己挂到自己后代下成环)——用户页传 null(不剪),机构页传 editingId。\nimport { computed, onMounted, ref } from 'vue'\nimport { NEmpty, NTreeSelect } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { orgApi } from '#/api'\nimport { buildTree, collectSubtreeIds } from '#/utils/tree'\nimport type { OrgOption } from '#/types/api'\n\ndefineOptions({ inheritAttrs: false })\nconst props = defineProps<{ excludeSubtreeOf?: number | null }>()\n\nconst { t } = useI18n()\nconst flat = ref<OrgOption[]>([])\nconst loading = ref(false)\n// 失败不弹 message(本组件不依赖 message provider),但下拉空态要说明是加载失败,不能让人当成「没有机构」\nconst loadFailed = ref(false)\nonMounted(async () => {\n loading.value = true\n try {\n flat.value = await orgApi.options()\n } catch {\n loadFailed.value = true\n } finally {\n loading.value = false\n }\n})\n\nconst options = computed(() => {\n const rows =\n props.excludeSubtreeOf == null\n ? flat.value\n : (() => {\n const excluded = collectSubtreeIds(flat.value, props.excludeSubtreeOf!)\n return flat.value.filter(o => !excluded.has(o.id))\n })()\n return buildTree(rows)\n})\n</script>\n\n<template>\n <n-tree-select\n :options=\"options\"\n :loading=\"loading\"\n key-field=\"id\"\n label-field=\"name\"\n children-field=\"children\"\n clearable\n v-bind=\"$attrs\"\n >\n <template v-if=\"loadFailed\" #empty>\n <n-empty :description=\"t('common.loadFailed')\" />\n </template>\n </n-tree-select>\n</template>\n"],"names":["props","__props","t","useI18n","flat","ref","loading","loadFailed","onMounted","orgApi","options","computed","rows","excluded","collectSubtreeIds","o","buildTree","_openBlock","_createBlock","_unref","_mergeProps","$attrs","_createSlots","_createVNode","NEmpty"],"mappings":";;;;;;;;;;;;AAWA,UAAMA,IAAQC,GAER,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAOC,EAAiB,EAAE,GAC1BC,IAAUD,EAAI,EAAK,GAEnBE,IAAaF,EAAI,EAAK;AAC5B,IAAAG,EAAU,YAAY;AACpB,MAAAF,EAAQ,QAAQ;AAChB,UAAI;AACF,QAAAF,EAAK,QAAQ,MAAMK,EAAO,QAAA;AAAA,MAC5B,QAAQ;AACN,QAAAF,EAAW,QAAQ;AAAA,MACrB,UAAA;AACE,QAAAD,EAAQ,QAAQ;AAAA,MAClB;AAAA,IACF,CAAC;AAED,UAAMI,IAAUC,EAAS,MAAM;AAC7B,YAAMC,IACJZ,EAAM,oBAAoB,OACtBI,EAAK,SACJ,MAAM;AACL,cAAMS,IAAWC,EAAkBV,EAAK,OAAOJ,EAAM,gBAAiB;AACtE,eAAOI,EAAK,MAAM,OAAO,CAAAW,MAAK,CAACF,EAAS,IAAIE,EAAE,EAAE,CAAC;AAAA,MACnD,GAAA;AACN,aAAOC,EAAUJ,CAAI;AAAA,IACvB,CAAC;sBAICK,KAAAC,EAYgBC,MAZhBC,EAYgB;AAAA,MAXb,SAASV,EAAA;AAAA,MACT,SAASJ,EAAA;AAAA,MACV,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,kBAAe;AAAA,MACf,WAAA;AAAA,IAAA,GACQe,EAAAA,MAAM,GAAAC,EAAA,EAAA,GAAA,KAAA;AAAA,MAEEf,EAAA;cAAa;AAAA,cAC3B,MAAiD;AAAA,UAAjDgB,EAAiDJ,EAAAK,CAAA,GAAA;AAAA,YAAvC,aAAaL,EAAAjB,CAAA,EAAC,mBAAA;AAAA,UAAA;;;;;;;"}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import { roleApi as
|
|
4
|
-
const _ = /* @__PURE__ */
|
|
1
|
+
import { defineComponent as a, openBlock as i, createBlock as s, mergeProps as p } from "vue";
|
|
2
|
+
import m from "../ApiSelect/index.vue.js";
|
|
3
|
+
import { roleApi as c } from "../../api/index.js";
|
|
4
|
+
const _ = /* @__PURE__ */ a({
|
|
5
5
|
inheritAttrs: !1,
|
|
6
6
|
__name: "index",
|
|
7
7
|
props: {
|
|
8
8
|
pageSize: { default: 100 }
|
|
9
9
|
},
|
|
10
|
-
setup(
|
|
11
|
-
const r =
|
|
12
|
-
async function
|
|
13
|
-
|
|
14
|
-
page: 1,
|
|
15
|
-
pageSize: r.pageSize,
|
|
16
|
-
name: t || void 0
|
|
17
|
-
});
|
|
18
|
-
return a.filter((e) => e.enabled).map((e) => ({ label: e.name, value: e.id }));
|
|
10
|
+
setup(o) {
|
|
11
|
+
const r = o;
|
|
12
|
+
async function n() {
|
|
13
|
+
return (await c.options()).slice(0, r.pageSize).map((e) => ({ label: e.name, value: e.id }));
|
|
19
14
|
}
|
|
20
|
-
return (t,
|
|
15
|
+
return (t, e) => (i(), s(m, p({
|
|
16
|
+
fetch: n,
|
|
17
|
+
remote: !1
|
|
18
|
+
}, t.$attrs), null, 16));
|
|
21
19
|
}
|
|
22
20
|
});
|
|
23
21
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.js","sources":["../../../src/components/RoleSelect/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 角色选择器:基于 ApiSelect,fetch=roleApi.
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":["../../../src/components/RoleSelect/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 角色选择器:基于 ApiSelect,fetch=roleApi.options(不占角色页权限码)。只列启用角色,label=角色名,\n// value=角色 id。多选常用(用户分配角色);multiple/placeholder 等经 $attrs 透传。\n// options 不带搜索与分页:一次取回,pageSize 只限制下拉最多列出多少个,按名称搜索交给 n-select 本地过滤。\nimport type { SelectOption } from 'naive-ui'\nimport ApiSelect from '#/components/ApiSelect/index.vue'\nimport { roleApi } from '#/api'\n\ndefineOptions({ inheritAttrs: false })\nconst props = withDefaults(defineProps<{ pageSize?: number }>(), { pageSize: 100 })\n\nasync function fetch(): Promise<SelectOption[]> {\n const items = await roleApi.options()\n return items.slice(0, props.pageSize).map(r => ({ label: r.name, value: r.id }))\n}\n</script>\n\n<template>\n <ApiSelect :fetch=\"fetch\" :remote=\"false\" v-bind=\"$attrs\" />\n</template>\n"],"names":["props","__props","fetch","roleApi","r","_openBlock","_createBlock","ApiSelect","_mergeProps","$attrs"],"mappings":";;;;;;;;;;AASA,UAAMA,IAAQC;AAEd,mBAAeC,IAAiC;AAE9C,cADc,MAAMC,EAAQ,QAAA,GACf,MAAM,GAAGH,EAAM,QAAQ,EAAE,IAAI,CAAAI,OAAM,EAAE,OAAOA,EAAE,MAAM,OAAOA,EAAE,KAAK;AAAA,IACjF;sBAIEC,EAAA,GAAAC,EAA4DC,GAA5DC,EAA4D;AAAA,MAAhD,OAAAN;AAAA,MAAe,QAAQ;AAAA,IAAA,GAAeO,EAAAA,MAAM,GAAA,MAAA,EAAA;AAAA;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import o from "./index2.vue.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import r from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const
|
|
4
|
+
const f = /* @__PURE__ */ r(o, [["__scopeId", "data-v-4c72fb5c"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
f as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=index.vue.js.map
|