smart-admin-web 10.20.0 → 10.21.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 +19 -1
- package/dist/api/index.js +85 -66
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +448 -1
- package/dist/assets/icons/ph-subset.json.js +1 -1
- package/dist/components/FormContainer/index.vue.js +87 -75
- package/dist/components/FormContainer/index.vue.js.map +1 -1
- package/dist/components/UserPicker/UserAvatar.vue.d.ts +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js.map +1 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js +38 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js.map +1 -0
- package/dist/components/UserPicker/index.vue.js +1 -1
- package/dist/components/UserPicker/index2.vue.js +328 -186
- package/dist/components/UserPicker/index2.vue.js.map +1 -1
- package/dist/index.js +248 -246
- package/dist/layouts/NoticeBell.vue.js +2 -2
- package/dist/layouts/NoticeBell2.vue.js +18 -17
- package/dist/layouts/NoticeBell2.vue.js.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/watermark.d.ts +1 -1
- package/dist/locales/en-US.d.ts +62 -3
- package/dist/locales/en-US.js +66 -7
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/kernelMenuTitles.js +2 -1
- package/dist/locales/kernelMenuTitles.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +62 -3
- package/dist/locales/zh-CN.js +66 -7
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +6 -6
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/naive-theme.js +72 -67
- package/dist/theme/naive-theme.js.map +1 -1
- package/dist/types/api.d.ts +91 -0
- package/dist/types/api.js +17 -15
- package/dist/types/api.js.map +1 -1
- package/dist/utils/shake.d.ts +1 -0
- package/dist/utils/shake.js +30 -0
- package/dist/utils/shake.js.map +1 -0
- package/dist/views/login/LoginForm.vue.js +2 -2
- package/dist/views/login/LoginForm2.vue.js +135 -135
- package/dist/views/login/LoginForm2.vue.js.map +1 -1
- package/dist/views/login/components/LoginDesk.vue.js +1 -1
- package/dist/views/login/components/LoginDesk2.vue.js +59 -47
- package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
- package/dist/views/personal/notice2.vue.js +1 -1
- package/dist/views/personal/notice2.vue.js.map +1 -1
- package/dist/views/personal/sessions.vue.js +2 -2
- package/dist/views/personal/sessions2.vue.js +41 -40
- package/dist/views/personal/sessions2.vue.js.map +1 -1
- package/dist/views/system/ai-usage/index.vue.js +3 -3
- package/dist/views/system/ai-usage/index2.vue.js +13 -12
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
- package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
- package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
- package/dist/views/system/dict/index.vue.js +2 -2
- package/dist/views/system/dict/index2.vue.js +12 -1
- package/dist/views/system/dict/index2.vue.js.map +1 -1
- package/dist/views/system/file/index2.vue.js +1 -0
- package/dist/views/system/file/index2.vue.js.map +1 -1
- package/dist/views/system/job/index.vue.js +3 -3
- package/dist/views/system/job/index2.vue.js +182 -181
- package/dist/views/system/job/index2.vue.js.map +1 -1
- package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
- package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
- package/dist/views/system/job-log/index.vue.js +1 -1
- package/dist/views/system/job-log/index2.vue.js +5 -5
- package/dist/views/system/job-log/index2.vue.js.map +1 -1
- package/dist/views/system/log/exception/index.vue.js +2 -2
- package/dist/views/system/log/exception/index2.vue.js +8 -5
- package/dist/views/system/log/exception/index2.vue.js.map +1 -1
- package/dist/views/system/log/login/index2.vue.js +21 -12
- package/dist/views/system/log/login/index2.vue.js.map +1 -1
- package/dist/views/system/log/op/index.vue.js +2 -2
- package/dist/views/system/log/op/index2.vue.js +50 -40
- package/dist/views/system/log/op/index2.vue.js.map +1 -1
- package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
- package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
- package/dist/views/system/menu/index.vue.js +2 -2
- package/dist/views/system/menu/index2.vue.js +11 -11
- package/dist/views/system/menu/index2.vue.js.map +1 -1
- package/dist/views/system/module/index.vue.js +1 -1
- package/dist/views/system/module/index2.vue.js +171 -117
- package/dist/views/system/module/index2.vue.js.map +1 -1
- package/dist/views/system/notice/index.vue.js +3 -3
- package/dist/views/system/notice/index2.vue.js +1 -0
- package/dist/views/system/notice/index2.vue.js.map +1 -1
- package/dist/views/system/org/index.vue.js +2 -2
- package/dist/views/system/org/index2.vue.js +70 -67
- package/dist/views/system/org/index2.vue.js.map +1 -1
- package/dist/views/system/position/index.vue.js +2 -2
- package/dist/views/system/position/index2.vue.js +57 -48
- package/dist/views/system/position/index2.vue.js.map +1 -1
- package/dist/views/system/recycle/index.vue.js +1 -1
- package/dist/views/system/recycle/index2.vue.js +3 -1
- package/dist/views/system/recycle/index2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
- package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
- package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
- package/dist/views/system/role/components/grantMenuGroups.js +116 -76
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
- package/dist/views/system/role/index.vue.js +2 -2
- package/dist/views/system/role/index2.vue.js +152 -145
- package/dist/views/system/role/index2.vue.js.map +1 -1
- package/dist/views/system/session/index2.vue.js +39 -35
- package/dist/views/system/session/index2.vue.js.map +1 -1
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
- package/dist/views/system/user/components/userGrantState.d.ts +64 -0
- package/dist/views/system/user/components/userGrantState.js +117 -0
- package/dist/views/system/user/components/userGrantState.js.map +1 -0
- package/dist/views/system/user/index.vue.js +2 -2
- package/dist/views/system/user/index2.vue.js +250 -207
- package/dist/views/system/user/index2.vue.js.map +1 -1
- package/package.json +3 -3
package/dist/api/schema.d.ts
CHANGED
|
@@ -2559,6 +2559,77 @@ export interface paths {
|
|
|
2559
2559
|
patch?: never;
|
|
2560
2560
|
trace?: never;
|
|
2561
2561
|
};
|
|
2562
|
+
"/api/v1/sys/user/{id}/menus": {
|
|
2563
|
+
parameters: {
|
|
2564
|
+
query?: never;
|
|
2565
|
+
header?: never;
|
|
2566
|
+
path?: never;
|
|
2567
|
+
cookie?: never;
|
|
2568
|
+
};
|
|
2569
|
+
/** 取某用户的单独授权记录(授权菜单弹窗回显) */
|
|
2570
|
+
get: operations["User_GetMenuGrants"];
|
|
2571
|
+
put?: never;
|
|
2572
|
+
post?: never;
|
|
2573
|
+
delete?: never;
|
|
2574
|
+
options?: never;
|
|
2575
|
+
head?: never;
|
|
2576
|
+
patch?: never;
|
|
2577
|
+
trace?: never;
|
|
2578
|
+
};
|
|
2579
|
+
"/api/v1/sys/user/{id}/menus/effective": {
|
|
2580
|
+
parameters: {
|
|
2581
|
+
query?: never;
|
|
2582
|
+
header?: never;
|
|
2583
|
+
path?: never;
|
|
2584
|
+
cookie?: never;
|
|
2585
|
+
};
|
|
2586
|
+
/** 取某用户的有效权限与来源(授权菜单弹窗一次取齐:能否授、能否编辑、模块清单) */
|
|
2587
|
+
get: operations["User_GetEffectiveMenus"];
|
|
2588
|
+
put?: never;
|
|
2589
|
+
post?: never;
|
|
2590
|
+
delete?: never;
|
|
2591
|
+
options?: never;
|
|
2592
|
+
head?: never;
|
|
2593
|
+
patch?: never;
|
|
2594
|
+
trace?: never;
|
|
2595
|
+
};
|
|
2596
|
+
"/api/v1/sys/user/menu-grants/page": {
|
|
2597
|
+
parameters: {
|
|
2598
|
+
query?: never;
|
|
2599
|
+
header?: never;
|
|
2600
|
+
path?: never;
|
|
2601
|
+
cookie?: never;
|
|
2602
|
+
};
|
|
2603
|
+
/** 单独授权一览(分页 + 筛选) */
|
|
2604
|
+
get: operations["User_MenuGrantPage"];
|
|
2605
|
+
put?: never;
|
|
2606
|
+
post?: never;
|
|
2607
|
+
delete?: never;
|
|
2608
|
+
options?: never;
|
|
2609
|
+
head?: never;
|
|
2610
|
+
patch?: never;
|
|
2611
|
+
trace?: never;
|
|
2612
|
+
};
|
|
2613
|
+
"/api/v1/sys/user/menu": {
|
|
2614
|
+
parameters: {
|
|
2615
|
+
query?: never;
|
|
2616
|
+
header?: never;
|
|
2617
|
+
path?: never;
|
|
2618
|
+
cookie?: never;
|
|
2619
|
+
};
|
|
2620
|
+
get?: never;
|
|
2621
|
+
/**
|
|
2622
|
+
* 按变更集保存某用户的单独授权(允许 / 拒绝 / 到期 / 备注),没提到的记录原样保留。
|
|
2623
|
+
* 操作日志记下的请求体就是这次的增改删明细。越权判定见 IUserMenuGrantPolicy。
|
|
2624
|
+
*/
|
|
2625
|
+
put: operations["User_SetMenuGrants"];
|
|
2626
|
+
post?: never;
|
|
2627
|
+
delete?: never;
|
|
2628
|
+
options?: never;
|
|
2629
|
+
head?: never;
|
|
2630
|
+
patch?: never;
|
|
2631
|
+
trace?: never;
|
|
2632
|
+
};
|
|
2562
2633
|
"/api/v1/sys/user/import/template": {
|
|
2563
2634
|
parameters: {
|
|
2564
2635
|
query?: never;
|
|
@@ -3741,6 +3812,8 @@ export interface components {
|
|
|
3741
3812
|
enabled?: boolean;
|
|
3742
3813
|
/** @description 备注 */
|
|
3743
3814
|
remark?: null | string;
|
|
3815
|
+
/** @description 可转授(普通管理员能否单独授权本模块菜单)。更新时为 null = 保持原值;内置 system 模块传什么都按 false。 */
|
|
3816
|
+
isDelegatable?: null | boolean;
|
|
3744
3817
|
};
|
|
3745
3818
|
/** @description 门户模块出参(当前用户视角的可访问应用)。 */
|
|
3746
3819
|
ModuleItem: {
|
|
@@ -4379,6 +4452,34 @@ export interface components {
|
|
|
4379
4452
|
/** @description 当前页数据 */
|
|
4380
4453
|
items?: components["schemas"]["UserItem"][];
|
|
4381
4454
|
};
|
|
4455
|
+
/**
|
|
4456
|
+
* @description 分页结果模型——所有分页查询的统一返回。ORM 中立(放 Core),
|
|
4457
|
+
* SqlSugar 侧的 `ToPagedListAsync` 扩展负责把查询物化成它。
|
|
4458
|
+
*/
|
|
4459
|
+
PagedListOfUserMenuGrantPageItem: {
|
|
4460
|
+
/**
|
|
4461
|
+
* Format: int32
|
|
4462
|
+
* @description 当前页码(从 1 起)
|
|
4463
|
+
*/
|
|
4464
|
+
current?: number | string;
|
|
4465
|
+
/**
|
|
4466
|
+
* Format: int32
|
|
4467
|
+
* @description 每页条数
|
|
4468
|
+
*/
|
|
4469
|
+
size?: number | string;
|
|
4470
|
+
/**
|
|
4471
|
+
* Format: int32
|
|
4472
|
+
* @description 总记录数
|
|
4473
|
+
*/
|
|
4474
|
+
total?: number | string;
|
|
4475
|
+
/**
|
|
4476
|
+
* Format: int32
|
|
4477
|
+
* @description 总页数(向上取整;Size 为 0 时为 0)
|
|
4478
|
+
*/
|
|
4479
|
+
pages?: number | string;
|
|
4480
|
+
/** @description 当前页数据 */
|
|
4481
|
+
items?: components["schemas"]["UserMenuGrantPageItem"][];
|
|
4482
|
+
};
|
|
4382
4483
|
/** @description 密码复杂度策略(运行时可配置,见 ISecurityPolicyProvider)。 */
|
|
4383
4484
|
PasswordPolicy: {
|
|
4384
4485
|
/**
|
|
@@ -5140,6 +5241,28 @@ export interface components {
|
|
|
5140
5241
|
/** @description 业务数据载荷 */
|
|
5141
5242
|
data?: null | components["schemas"]["SysOrg"][];
|
|
5142
5243
|
};
|
|
5244
|
+
/**
|
|
5245
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
5246
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
5247
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
5248
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
5249
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
5250
|
+
*/
|
|
5251
|
+
ResultOfIReadOnlyListOfUserMenuGrantItem: {
|
|
5252
|
+
/**
|
|
5253
|
+
* Format: int32
|
|
5254
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
5255
|
+
*/
|
|
5256
|
+
code?: number | string;
|
|
5257
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
5258
|
+
msgKey?: null | string;
|
|
5259
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
5260
|
+
args?: null | Record<string, never>;
|
|
5261
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
5262
|
+
message?: null | string;
|
|
5263
|
+
/** @description 业务数据载荷 */
|
|
5264
|
+
data?: null | components["schemas"]["UserMenuGrantItem"][];
|
|
5265
|
+
};
|
|
5143
5266
|
/**
|
|
5144
5267
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
5145
5268
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -5692,6 +5815,27 @@ export interface components {
|
|
|
5692
5815
|
message?: null | string;
|
|
5693
5816
|
data?: null | components["schemas"]["PagedListOfUserItem"];
|
|
5694
5817
|
};
|
|
5818
|
+
/**
|
|
5819
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
5820
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
5821
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
5822
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
5823
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
5824
|
+
*/
|
|
5825
|
+
ResultOfPagedListOfUserMenuGrantPageItem: {
|
|
5826
|
+
/**
|
|
5827
|
+
* Format: int32
|
|
5828
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
5829
|
+
*/
|
|
5830
|
+
code?: number | string;
|
|
5831
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
5832
|
+
msgKey?: null | string;
|
|
5833
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
5834
|
+
args?: null | Record<string, never>;
|
|
5835
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
5836
|
+
message?: null | string;
|
|
5837
|
+
data?: null | components["schemas"]["PagedListOfUserMenuGrantPageItem"];
|
|
5838
|
+
};
|
|
5695
5839
|
/**
|
|
5696
5840
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
5697
5841
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -5966,6 +6110,27 @@ export interface components {
|
|
|
5966
6110
|
message?: null | string;
|
|
5967
6111
|
data?: null | components["schemas"]["UserDetail"];
|
|
5968
6112
|
};
|
|
6113
|
+
/**
|
|
6114
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
6115
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
6116
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
6117
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
6118
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
6119
|
+
*/
|
|
6120
|
+
ResultOfUserMenuEffectiveOutput: {
|
|
6121
|
+
/**
|
|
6122
|
+
* Format: int32
|
|
6123
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
6124
|
+
*/
|
|
6125
|
+
code?: number | string;
|
|
6126
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
6127
|
+
msgKey?: null | string;
|
|
6128
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
6129
|
+
args?: null | Record<string, never>;
|
|
6130
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
6131
|
+
message?: null | string;
|
|
6132
|
+
data?: null | components["schemas"]["UserMenuEffectiveOutput"];
|
|
6133
|
+
};
|
|
5969
6134
|
/**
|
|
5970
6135
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
5971
6136
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -6124,6 +6289,21 @@ export interface components {
|
|
|
6124
6289
|
/** @description 关联的用户 Id 列表(全量替换;空列表 = 收回全部) */
|
|
6125
6290
|
userIds?: (number | string)[];
|
|
6126
6291
|
};
|
|
6292
|
+
/**
|
|
6293
|
+
* @description 按变更集保存某用户的单独授权:新增与修改走 IReadOnlyList<UserMenuGrantUpsert> SetUserMenuGrantsInput.Upserts,移除走 IReadOnlyList<long> SetUserMenuGrantsInput.Removes(按菜单 Id),
|
|
6294
|
+
* 没提到的记录原样保留。
|
|
6295
|
+
*/
|
|
6296
|
+
SetUserMenuGrantsInput: {
|
|
6297
|
+
/**
|
|
6298
|
+
* Format: int64
|
|
6299
|
+
* @description 目标用户
|
|
6300
|
+
*/
|
|
6301
|
+
userId?: number | string;
|
|
6302
|
+
/** @description 新增或修改 */
|
|
6303
|
+
upserts?: components["schemas"]["UserMenuGrantUpsert"][];
|
|
6304
|
+
/** @description 要移除记录的菜单 Id */
|
|
6305
|
+
removes?: (number | string)[];
|
|
6306
|
+
};
|
|
6127
6307
|
/** @description 快捷方式操作的请求体——菜单路由 path 本身带斜杠,只能走 body,不能塞进路由段。 */
|
|
6128
6308
|
ShortcutMenuPathInput: {
|
|
6129
6309
|
menuPath: string;
|
|
@@ -6726,7 +6906,7 @@ export interface components {
|
|
|
6726
6906
|
* @description 模块/应用表(多应用门户)——一套登录体系下的多个独立子系统。菜单树按模块分区
|
|
6727
6907
|
* (long? SysMenu.ModuleId 仅顶级目录设置),登录后一次只进一个应用、只加载该应用的菜单与路由。
|
|
6728
6908
|
* 模块不是独立权限轴:用户"拥有"某模块 = 被授权了该模块下任一菜单(派生自菜单授权,
|
|
6729
|
-
* 见 MenuService.GetMyModulesAsync);模块只做运行时的侧边栏/路由分区,不改用户持有的 API
|
|
6909
|
+
* 见 MenuService.GetMyModulesAsync);模块只做运行时的侧边栏/路由分区,不改用户持有的 API 权限码。模块同时是委派授权的边界:见 bool? SysModule.IsDelegatable。内置 system 模块()不可删除。
|
|
6730
6910
|
*/
|
|
6731
6911
|
SysModule: {
|
|
6732
6912
|
/** @description 模块编码(唯一,程序判模块用它而非名称;内置 system) */
|
|
@@ -6745,6 +6925,13 @@ export interface components {
|
|
|
6745
6925
|
sort?: number | string;
|
|
6746
6926
|
enabled?: boolean;
|
|
6747
6927
|
remark?: null | string;
|
|
6928
|
+
/**
|
|
6929
|
+
* @description 可转授:非超管(普通管理员)能否把本模块里的菜单单独授给或拒给用户。可空,存量库补列时无损:
|
|
6930
|
+
* 数据库 NULL(存量模块)与显式 `false` 同判定为不可转授,只有显式 `true` 才放行——
|
|
6931
|
+
* 默认收紧,补列不会静默放宽。内置 system 模块固定不可转授(`ModuleService` 读写都按 false)。
|
|
6932
|
+
* 演进列必须可空:MSSQL 无法对有数据的表 ADD 无 DEFAULT 的 NOT NULL 列(同 bool? SysRole.IsDelegatable)。
|
|
6933
|
+
*/
|
|
6934
|
+
isDelegatable?: null | boolean;
|
|
6748
6935
|
/** @description 软删除标记;`true` 即被全局查询过滤器排除,可经 `RestoreAsync` 恢复。 */
|
|
6749
6936
|
isDelete?: boolean;
|
|
6750
6937
|
/**
|
|
@@ -6990,6 +7177,11 @@ export interface components {
|
|
|
6990
7177
|
* ADD 无 DEFAULT 的 NOT NULL 列(同 bool SysUser.ForceTotp 的成法)。
|
|
6991
7178
|
*/
|
|
6992
7179
|
isDelegatable?: null | boolean;
|
|
7180
|
+
/**
|
|
7181
|
+
* @description 内置角色:内核种子播的固定 Id(1–999)。系统菜单只能授给内置角色,界面上新建的角色(雪花 Id)
|
|
7182
|
+
* 与消费者种子里的角色(Id ≥ 1000)都授不了。只读计算属性,不建列。
|
|
7183
|
+
*/
|
|
7184
|
+
isBuiltin?: boolean;
|
|
6993
7185
|
/** @description 软删除标记;`true` 即被全局查询过滤器排除,可经 `RestoreAsync` 恢复。 */
|
|
6994
7186
|
isDelete?: boolean;
|
|
6995
7187
|
/**
|
|
@@ -7210,6 +7402,151 @@ export interface components {
|
|
|
7210
7402
|
/** Format: date-time */
|
|
7211
7403
|
createTime?: string;
|
|
7212
7404
|
};
|
|
7405
|
+
/** @description 用户单独授权的效果。 */
|
|
7406
|
+
UserMenuEffect: number;
|
|
7407
|
+
/** @description 一个菜单节点对目标用户是否有效、为什么。 */
|
|
7408
|
+
UserMenuEffectiveNode: {
|
|
7409
|
+
/** Format: int64 */
|
|
7410
|
+
menuId?: number | string;
|
|
7411
|
+
/**
|
|
7412
|
+
* Format: int64
|
|
7413
|
+
* @description 所属模块(上溯到根目录取 ModuleId)
|
|
7414
|
+
*/
|
|
7415
|
+
moduleId?: null | number | string;
|
|
7416
|
+
/** @description 最终是否有效 */
|
|
7417
|
+
effective?: boolean;
|
|
7418
|
+
/** @description 授予该节点的启用角色名 */
|
|
7419
|
+
roles?: string[];
|
|
7420
|
+
grant?: null | components["schemas"]["UserMenuEffect"];
|
|
7421
|
+
/** Format: date-time */
|
|
7422
|
+
expireTime?: null | string;
|
|
7423
|
+
/** @description 该节点上的单独授权已过期 */
|
|
7424
|
+
expired?: boolean;
|
|
7425
|
+
/** @description 被某个祖先节点的拒绝连带收回 */
|
|
7426
|
+
deniedByAncestor?: boolean;
|
|
7427
|
+
/** @description 当前授权人能否改这个节点(超管恒为 true;普通管理员看菜单所属模块是否可转授) */
|
|
7428
|
+
grantable?: boolean;
|
|
7429
|
+
/** @description 该节点被拒时仍然有效的权限码及携带它们的节点(只在生效中的拒绝上给出) */
|
|
7430
|
+
leakedCodes?: components["schemas"]["UserMenuLeakedCode"][];
|
|
7431
|
+
};
|
|
7432
|
+
/** @description 授权弹窗需要的全部数据,一次取齐。 */
|
|
7433
|
+
UserMenuEffectiveOutput: {
|
|
7434
|
+
/** Format: int64 */
|
|
7435
|
+
userId?: number | string;
|
|
7436
|
+
/** @description 目标用户有没有启用中的角色(没有时数据范围为「仅本人」,界面据此提示) */
|
|
7437
|
+
hasRoles?: boolean;
|
|
7438
|
+
/** @description 当前授权人能否编辑这个目标用户 */
|
|
7439
|
+
targetEditable?: boolean;
|
|
7440
|
+
readOnlyReason?: null | components["schemas"]["ErrorCode"];
|
|
7441
|
+
/**
|
|
7442
|
+
* Format: int32
|
|
7443
|
+
* @description 委派授权最长天数;超管、配置为 0 时为空
|
|
7444
|
+
*/
|
|
7445
|
+
delegatedMaxDays?: null | number | string;
|
|
7446
|
+
/**
|
|
7447
|
+
* Format: date
|
|
7448
|
+
* @description 委派授权的最晚到期日(服务器当前本地日期加最长天数);超管、配置为 0 时为空。界面的日期选择器上限与保存前校验都按它算,不用浏览器的日期。
|
|
7449
|
+
*/
|
|
7450
|
+
delegatedMaxDate?: null | string;
|
|
7451
|
+
modules?: components["schemas"]["UserMenuModuleItem"][];
|
|
7452
|
+
/** @description 全部未删除菜单节点(含停用的)各一项 */
|
|
7453
|
+
nodes?: components["schemas"]["UserMenuEffectiveNode"][];
|
|
7454
|
+
};
|
|
7455
|
+
/** @description 一条单独授权记录(授权菜单弹窗回显)。 */
|
|
7456
|
+
UserMenuGrantItem: {
|
|
7457
|
+
/**
|
|
7458
|
+
* Format: int64
|
|
7459
|
+
* @description 菜单节点
|
|
7460
|
+
*/
|
|
7461
|
+
menuId?: number | string;
|
|
7462
|
+
/** @description 允许 / 拒绝 */
|
|
7463
|
+
effect?: components["schemas"]["UserMenuEffect"];
|
|
7464
|
+
/**
|
|
7465
|
+
* Format: date-time
|
|
7466
|
+
* @description 到期时间;为空即长期
|
|
7467
|
+
*/
|
|
7468
|
+
expireTime?: null | string;
|
|
7469
|
+
/** @description 授权理由 */
|
|
7470
|
+
remark?: null | string;
|
|
7471
|
+
/**
|
|
7472
|
+
* Format: int64
|
|
7473
|
+
* @description 授权人(建这一行的人;系统写入为空)
|
|
7474
|
+
*/
|
|
7475
|
+
grantorId?: null | number | string;
|
|
7476
|
+
grantorName?: null | string;
|
|
7477
|
+
/**
|
|
7478
|
+
* Format: date-time
|
|
7479
|
+
* @description 授权时间
|
|
7480
|
+
*/
|
|
7481
|
+
grantTime?: string;
|
|
7482
|
+
/**
|
|
7483
|
+
* Format: int64
|
|
7484
|
+
* @description 最后修改人
|
|
7485
|
+
*/
|
|
7486
|
+
updaterId?: null | number | string;
|
|
7487
|
+
updaterName?: null | string;
|
|
7488
|
+
/** Format: date-time */
|
|
7489
|
+
updateTime?: null | string;
|
|
7490
|
+
};
|
|
7491
|
+
/** @description 单独授权一览的一行。 */
|
|
7492
|
+
UserMenuGrantPageItem: {
|
|
7493
|
+
/** Format: int64 */
|
|
7494
|
+
id?: number | string;
|
|
7495
|
+
/** Format: int64 */
|
|
7496
|
+
userId?: number | string;
|
|
7497
|
+
userAccount?: string;
|
|
7498
|
+
userName?: string;
|
|
7499
|
+
/** Format: int64 */
|
|
7500
|
+
menuId?: number | string;
|
|
7501
|
+
menuTitle?: string;
|
|
7502
|
+
/** Format: int64 */
|
|
7503
|
+
moduleId?: null | number | string;
|
|
7504
|
+
moduleTitle?: null | string;
|
|
7505
|
+
effect?: components["schemas"]["UserMenuEffect"];
|
|
7506
|
+
/** Format: date-time */
|
|
7507
|
+
expireTime?: null | string;
|
|
7508
|
+
status?: components["schemas"]["UserMenuGrantStatus"];
|
|
7509
|
+
/** Format: int64 */
|
|
7510
|
+
grantorId?: null | number | string;
|
|
7511
|
+
grantorName?: null | string;
|
|
7512
|
+
/** Format: date-time */
|
|
7513
|
+
grantTime?: string;
|
|
7514
|
+
remark?: null | string;
|
|
7515
|
+
};
|
|
7516
|
+
/** @description 单独授权的状态(一览筛选与展示)。 */
|
|
7517
|
+
UserMenuGrantStatus: number;
|
|
7518
|
+
/** @description 单独授权变更集里的一条新增或修改。 */
|
|
7519
|
+
UserMenuGrantUpsert: {
|
|
7520
|
+
/**
|
|
7521
|
+
* Format: int64
|
|
7522
|
+
* @description 菜单节点
|
|
7523
|
+
*/
|
|
7524
|
+
menuId?: number | string;
|
|
7525
|
+
/** @description 允许 / 拒绝 */
|
|
7526
|
+
effect?: components["schemas"]["UserMenuEffect"];
|
|
7527
|
+
/**
|
|
7528
|
+
* Format: date-time
|
|
7529
|
+
* @description 到期时间(本地时间);为空即长期。非超管授「允许」必填。
|
|
7530
|
+
*/
|
|
7531
|
+
expireTime?: null | string;
|
|
7532
|
+
/** @description 授权理由,最长 200 */
|
|
7533
|
+
remark?: null | string;
|
|
7534
|
+
};
|
|
7535
|
+
/** @description 被拒节点里仍然有效的一条权限码,以及携带它的有效节点。 */
|
|
7536
|
+
UserMenuLeakedCode: {
|
|
7537
|
+
/** @description 权限码(规范化路由) */
|
|
7538
|
+
code?: string;
|
|
7539
|
+
/** @description 仍携带这条码的有效菜单节点 Id */
|
|
7540
|
+
carrierMenuIds?: (number | string)[];
|
|
7541
|
+
};
|
|
7542
|
+
/** @description 授权弹窗用的模块清单项:授权弹窗不调模块列表接口(那个要「模块-查询」权限)。 */
|
|
7543
|
+
UserMenuModuleItem: {
|
|
7544
|
+
/** Format: int64 */
|
|
7545
|
+
id?: number | string;
|
|
7546
|
+
title?: string;
|
|
7547
|
+
/** @description 可转授(内置 system 模块恒为 false) */
|
|
7548
|
+
delegatable?: boolean;
|
|
7549
|
+
};
|
|
7213
7550
|
/** @description 个人资料出参(当前登录用户视角;不含密码哈希)。 */
|
|
7214
7551
|
UserProfile: {
|
|
7215
7552
|
/** Format: int64 */
|
|
@@ -11755,6 +12092,116 @@ export interface operations {
|
|
|
11755
12092
|
};
|
|
11756
12093
|
};
|
|
11757
12094
|
};
|
|
12095
|
+
User_GetMenuGrants: {
|
|
12096
|
+
parameters: {
|
|
12097
|
+
query?: never;
|
|
12098
|
+
header?: never;
|
|
12099
|
+
path: {
|
|
12100
|
+
id: number | string;
|
|
12101
|
+
};
|
|
12102
|
+
cookie?: never;
|
|
12103
|
+
};
|
|
12104
|
+
requestBody?: never;
|
|
12105
|
+
responses: {
|
|
12106
|
+
/** @description OK */
|
|
12107
|
+
200: {
|
|
12108
|
+
headers: {
|
|
12109
|
+
[name: string]: unknown;
|
|
12110
|
+
};
|
|
12111
|
+
content: {
|
|
12112
|
+
"text/plain": components["schemas"]["ResultOfIReadOnlyListOfUserMenuGrantItem"];
|
|
12113
|
+
"application/json": components["schemas"]["ResultOfIReadOnlyListOfUserMenuGrantItem"];
|
|
12114
|
+
"text/json": components["schemas"]["ResultOfIReadOnlyListOfUserMenuGrantItem"];
|
|
12115
|
+
};
|
|
12116
|
+
};
|
|
12117
|
+
};
|
|
12118
|
+
};
|
|
12119
|
+
User_GetEffectiveMenus: {
|
|
12120
|
+
parameters: {
|
|
12121
|
+
query?: never;
|
|
12122
|
+
header?: never;
|
|
12123
|
+
path: {
|
|
12124
|
+
id: number | string;
|
|
12125
|
+
};
|
|
12126
|
+
cookie?: never;
|
|
12127
|
+
};
|
|
12128
|
+
requestBody?: never;
|
|
12129
|
+
responses: {
|
|
12130
|
+
/** @description OK */
|
|
12131
|
+
200: {
|
|
12132
|
+
headers: {
|
|
12133
|
+
[name: string]: unknown;
|
|
12134
|
+
};
|
|
12135
|
+
content: {
|
|
12136
|
+
"text/plain": components["schemas"]["ResultOfUserMenuEffectiveOutput"];
|
|
12137
|
+
"application/json": components["schemas"]["ResultOfUserMenuEffectiveOutput"];
|
|
12138
|
+
"text/json": components["schemas"]["ResultOfUserMenuEffectiveOutput"];
|
|
12139
|
+
};
|
|
12140
|
+
};
|
|
12141
|
+
};
|
|
12142
|
+
};
|
|
12143
|
+
User_MenuGrantPage: {
|
|
12144
|
+
parameters: {
|
|
12145
|
+
query?: {
|
|
12146
|
+
/** @description 目标用户账号或姓名,模糊 */
|
|
12147
|
+
User?: string;
|
|
12148
|
+
/** @description 授权人账号或姓名,模糊 */
|
|
12149
|
+
Grantor?: string;
|
|
12150
|
+
MenuId?: number | string;
|
|
12151
|
+
Effect?: components["schemas"]["UserMenuEffect"];
|
|
12152
|
+
Status?: components["schemas"]["UserMenuGrantStatus"];
|
|
12153
|
+
Current?: number | string;
|
|
12154
|
+
Size?: number | string;
|
|
12155
|
+
SortField?: string;
|
|
12156
|
+
SortOrder?: string;
|
|
12157
|
+
};
|
|
12158
|
+
header?: never;
|
|
12159
|
+
path?: never;
|
|
12160
|
+
cookie?: never;
|
|
12161
|
+
};
|
|
12162
|
+
requestBody?: never;
|
|
12163
|
+
responses: {
|
|
12164
|
+
/** @description OK */
|
|
12165
|
+
200: {
|
|
12166
|
+
headers: {
|
|
12167
|
+
[name: string]: unknown;
|
|
12168
|
+
};
|
|
12169
|
+
content: {
|
|
12170
|
+
"text/plain": components["schemas"]["ResultOfPagedListOfUserMenuGrantPageItem"];
|
|
12171
|
+
"application/json": components["schemas"]["ResultOfPagedListOfUserMenuGrantPageItem"];
|
|
12172
|
+
"text/json": components["schemas"]["ResultOfPagedListOfUserMenuGrantPageItem"];
|
|
12173
|
+
};
|
|
12174
|
+
};
|
|
12175
|
+
};
|
|
12176
|
+
};
|
|
12177
|
+
User_SetMenuGrants: {
|
|
12178
|
+
parameters: {
|
|
12179
|
+
query?: never;
|
|
12180
|
+
header?: never;
|
|
12181
|
+
path?: never;
|
|
12182
|
+
cookie?: never;
|
|
12183
|
+
};
|
|
12184
|
+
requestBody: {
|
|
12185
|
+
content: {
|
|
12186
|
+
"application/json": components["schemas"]["SetUserMenuGrantsInput"];
|
|
12187
|
+
"text/json": components["schemas"]["SetUserMenuGrantsInput"];
|
|
12188
|
+
"application/*+json": components["schemas"]["SetUserMenuGrantsInput"];
|
|
12189
|
+
};
|
|
12190
|
+
};
|
|
12191
|
+
responses: {
|
|
12192
|
+
/** @description OK */
|
|
12193
|
+
200: {
|
|
12194
|
+
headers: {
|
|
12195
|
+
[name: string]: unknown;
|
|
12196
|
+
};
|
|
12197
|
+
content: {
|
|
12198
|
+
"text/plain": components["schemas"]["ResultOfboolean"];
|
|
12199
|
+
"application/json": components["schemas"]["ResultOfboolean"];
|
|
12200
|
+
"text/json": components["schemas"]["ResultOfboolean"];
|
|
12201
|
+
};
|
|
12202
|
+
};
|
|
12203
|
+
};
|
|
12204
|
+
};
|
|
11758
12205
|
User_ImportTemplate: {
|
|
11759
12206
|
parameters: {
|
|
11760
12207
|
query?: never;
|