smart-admin-web 10.20.1 → 10.22.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.
Files changed (165) hide show
  1. package/dist/api/index.d.ts +19 -1
  2. package/dist/api/index.js +85 -66
  3. package/dist/api/index.js.map +1 -1
  4. package/dist/api/schema.d.ts +448 -1
  5. package/dist/assets/icons/ph-subset.json.js +1 -1
  6. package/dist/components/FormContainer/index.vue.js +87 -75
  7. package/dist/components/FormContainer/index.vue.js.map +1 -1
  8. package/dist/components/UserPicker/UserAvatar.vue.d.ts +8 -0
  9. package/dist/components/UserPicker/UserAvatar.vue.js +8 -0
  10. package/dist/components/UserPicker/UserAvatar.vue.js.map +1 -0
  11. package/dist/components/UserPicker/UserAvatar2.vue.js +38 -0
  12. package/dist/components/UserPicker/UserAvatar2.vue.js.map +1 -0
  13. package/dist/components/UserPicker/index.vue.js +1 -1
  14. package/dist/components/UserPicker/index2.vue.js +328 -186
  15. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  16. package/dist/composables/authMenuRoute.d.ts +10 -0
  17. package/dist/composables/authMenuRoute.js +39 -23
  18. package/dist/composables/authMenuRoute.js.map +1 -1
  19. package/dist/composables/useModule.d.ts +3 -1
  20. package/dist/composables/useModule.js +44 -32
  21. package/dist/composables/useModule.js.map +1 -1
  22. package/dist/index.js +246 -242
  23. package/dist/layouts/components/SideNav.vue.js +2 -2
  24. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  25. package/dist/lib/runtime.js +1 -1
  26. package/dist/lib/watermark.d.ts +1 -1
  27. package/dist/locales/en-US.d.ts +68 -3
  28. package/dist/locales/en-US.js +74 -8
  29. package/dist/locales/en-US.js.map +1 -1
  30. package/dist/locales/kernelMenuTitles.js +1 -0
  31. package/dist/locales/kernelMenuTitles.js.map +1 -1
  32. package/dist/locales/zh-CN.d.ts +68 -3
  33. package/dist/locales/zh-CN.js +74 -8
  34. package/dist/locales/zh-CN.js.map +1 -1
  35. package/dist/router/viewRegistry.js +6 -6
  36. package/dist/router/viewRegistry.js.map +1 -1
  37. package/dist/style.css +1 -1
  38. package/dist/theme/naive-theme.js +80 -77
  39. package/dist/theme/naive-theme.js.map +1 -1
  40. package/dist/types/api.d.ts +91 -0
  41. package/dist/types/api.js +17 -15
  42. package/dist/types/api.js.map +1 -1
  43. package/dist/utils/shake.d.ts +1 -0
  44. package/dist/utils/shake.js +30 -0
  45. package/dist/utils/shake.js.map +1 -0
  46. package/dist/utils/tree.d.ts +15 -0
  47. package/dist/utils/tree.js +43 -29
  48. package/dist/utils/tree.js.map +1 -1
  49. package/dist/utils/treeCard.d.ts +6 -0
  50. package/dist/utils/treeCard.js +9 -0
  51. package/dist/utils/treeCard.js.map +1 -0
  52. package/dist/views/error/404.vue.js +2 -2
  53. package/dist/views/error/4042.vue.js +81 -24
  54. package/dist/views/error/4042.vue.js.map +1 -1
  55. package/dist/views/login/LoginForm.vue.js +2 -2
  56. package/dist/views/login/LoginForm2.vue.js +135 -135
  57. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  58. package/dist/views/login/components/LoginDesk.vue.js +2 -2
  59. package/dist/views/login/components/LoginDesk2.vue.js +59 -47
  60. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
  61. package/dist/views/login/components/LoginHeroPanel.vue.js +2 -2
  62. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
  63. package/dist/views/personal/notice2.vue.js +1 -1
  64. package/dist/views/personal/notice2.vue.js.map +1 -1
  65. package/dist/views/personal/sessions.vue.js +2 -2
  66. package/dist/views/personal/sessions2.vue.js +41 -40
  67. package/dist/views/personal/sessions2.vue.js.map +1 -1
  68. package/dist/views/system/ai-usage/index.vue.js +3 -3
  69. package/dist/views/system/ai-usage/index2.vue.js +13 -12
  70. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  71. package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
  72. package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
  73. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
  74. package/dist/views/system/dict/index.vue.js +2 -2
  75. package/dist/views/system/dict/index2.vue.js +12 -1
  76. package/dist/views/system/dict/index2.vue.js.map +1 -1
  77. package/dist/views/system/file/index2.vue.js +1 -0
  78. package/dist/views/system/file/index2.vue.js.map +1 -1
  79. package/dist/views/system/job/index.vue.js +3 -3
  80. package/dist/views/system/job/index2.vue.js +182 -181
  81. package/dist/views/system/job/index2.vue.js.map +1 -1
  82. package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
  83. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
  84. package/dist/views/system/job-log/index.vue.js +1 -1
  85. package/dist/views/system/job-log/index2.vue.js +5 -5
  86. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  87. package/dist/views/system/job-monitor/index.vue.js +2 -2
  88. package/dist/views/system/job-monitor/index2.vue.js +46 -46
  89. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  90. package/dist/views/system/log/exception/index.vue.js +2 -2
  91. package/dist/views/system/log/exception/index2.vue.js +8 -5
  92. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  93. package/dist/views/system/log/login/index2.vue.js +21 -12
  94. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  95. package/dist/views/system/log/op/index.vue.js +2 -2
  96. package/dist/views/system/log/op/index2.vue.js +50 -40
  97. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  98. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  99. package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
  100. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  101. package/dist/views/system/menu/index.vue.js +1 -1
  102. package/dist/views/system/menu/index2.vue.js +162 -151
  103. package/dist/views/system/menu/index2.vue.js.map +1 -1
  104. package/dist/views/system/module/index.vue.js +1 -1
  105. package/dist/views/system/module/index2.vue.js +171 -117
  106. package/dist/views/system/module/index2.vue.js.map +1 -1
  107. package/dist/views/system/notice/index.vue.js +3 -3
  108. package/dist/views/system/notice/index2.vue.js +1 -0
  109. package/dist/views/system/notice/index2.vue.js.map +1 -1
  110. package/dist/views/system/org/index.vue.js +2 -2
  111. package/dist/views/system/org/index2.vue.js +204 -195
  112. package/dist/views/system/org/index2.vue.js.map +1 -1
  113. package/dist/views/system/position/index.vue.js +2 -2
  114. package/dist/views/system/position/index2.vue.js +57 -48
  115. package/dist/views/system/position/index2.vue.js.map +1 -1
  116. package/dist/views/system/recycle/index.vue.js +1 -1
  117. package/dist/views/system/recycle/index2.vue.js +3 -1
  118. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  119. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
  120. package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
  121. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
  122. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
  123. package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
  124. package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
  125. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  126. package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
  127. package/dist/views/system/role/components/grantMenuGroups.js +116 -76
  128. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  129. package/dist/views/system/role/index.vue.js +2 -2
  130. package/dist/views/system/role/index2.vue.js +152 -145
  131. package/dist/views/system/role/index2.vue.js.map +1 -1
  132. package/dist/views/system/session/index2.vue.js +39 -35
  133. package/dist/views/system/session/index2.vue.js.map +1 -1
  134. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
  135. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
  136. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
  137. package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
  138. package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
  139. package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
  140. package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
  141. package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
  142. package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
  143. package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
  144. package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
  145. package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
  146. package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
  147. package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
  148. package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
  149. package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
  150. package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
  151. package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
  152. package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
  153. package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
  154. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
  155. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
  156. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
  157. package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
  158. package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
  159. package/dist/views/system/user/components/userGrantState.d.ts +64 -0
  160. package/dist/views/system/user/components/userGrantState.js +117 -0
  161. package/dist/views/system/user/components/userGrantState.js.map +1 -0
  162. package/dist/views/system/user/index.vue.js +2 -2
  163. package/dist/views/system/user/index2.vue.js +369 -295
  164. package/dist/views/system/user/index2.vue.js.map +1 -1
  165. package/package.json +3 -3
@@ -42,6 +42,9 @@ declare const _default: {
42
42
  notFound: {
43
43
  desc: string;
44
44
  back: string;
45
+ currentApp: string;
46
+ otherApp: string;
47
+ switchAndOpen: string;
45
48
  };
46
49
  errorBoundary: {
47
50
  title: string;
@@ -61,11 +64,19 @@ declare const _default: {
61
64
  };
62
65
  userPicker: {
63
66
  title: string;
67
+ org: string;
64
68
  available: string;
65
69
  selected: string;
66
- add: string;
67
- added: string;
68
- addChecked: string;
70
+ searchName: string;
71
+ searchAccount: string;
72
+ selectPage: string;
73
+ unselectPage: string;
74
+ total: string;
75
+ existing: string;
76
+ remove: string;
77
+ emptySelected: string;
78
+ prevPage: string;
79
+ nextPage: string;
69
80
  clear: string;
70
81
  };
71
82
  app: {
@@ -241,6 +252,9 @@ declare const _default: {
241
252
  deleteConfirm: string;
242
253
  disableConfirm: string;
243
254
  builtinNoDisable: string;
255
+ delegatable: string;
256
+ delegatableHint: string;
257
+ builtinNotDelegatable: string;
244
258
  saved: string;
245
259
  deleted: string;
246
260
  };
@@ -355,6 +369,7 @@ declare const _default: {
355
369
  userToggle: string;
356
370
  userImport: string;
357
371
  userExport: string;
372
+ userGrantMenus: string;
358
373
  roleQuery: string;
359
374
  roleCreate: string;
360
375
  roleUpdate: string;
@@ -503,6 +518,9 @@ declare const _default: {
503
518
  org: string;
504
519
  allOrgs: string;
505
520
  orgFilter: string;
521
+ collapseToFirstLevel: string;
522
+ hideOrgPanel: string;
523
+ showOrgPanel: string;
506
524
  orgPlaceholder: string;
507
525
  position: string;
508
526
  positionPlaceholder: string;
@@ -551,6 +569,47 @@ declare const _default: {
551
569
  totpInviteToken: string;
552
570
  totpInviteExpires: string;
553
571
  };
572
+ userGrant: {
573
+ action: string;
574
+ title: string;
575
+ tabGrant: string;
576
+ tabEffective: string;
577
+ hint: string;
578
+ noRoles: string;
579
+ readonly: string;
580
+ readonlyNoReason: string;
581
+ follow: string;
582
+ allow: string;
583
+ deny: string;
584
+ effective: string;
585
+ ineffective: string;
586
+ expired: string;
587
+ deniedByAncestor: string;
588
+ notGrantable: string;
589
+ expireLongTerm: string;
590
+ remark: string;
591
+ leaked: string;
592
+ leakedFrom: string;
593
+ summary: string;
594
+ unsaved: string;
595
+ invalidExpiry: string;
596
+ saved: string;
597
+ overview: string;
598
+ colUser: string;
599
+ colMenu: string;
600
+ colState: string;
601
+ colSource: string;
602
+ colEffect: string;
603
+ colStatus: string;
604
+ colExpire: string;
605
+ colGrantor: string;
606
+ colGrantTime: string;
607
+ colRemark: string;
608
+ adjust: string;
609
+ statusActive: string;
610
+ statusExpiring: string;
611
+ statusExpired: string;
612
+ };
554
613
  mfa: {
555
614
  bindTitle: string;
556
615
  recoveryTitle: string;
@@ -1247,6 +1306,7 @@ declare const _default: {
1247
1306
  grantSummary: string;
1248
1307
  grantSummarySplit: string;
1249
1308
  grantUnsaved: string;
1309
+ systemMenusBuiltinOnly: string;
1250
1310
  dataScope: string;
1251
1311
  scopeType: string;
1252
1312
  customOrgs: string;
@@ -1747,6 +1807,9 @@ declare const _default: {
1747
1807
  denied: string;
1748
1808
  demoReadOnly: string;
1749
1809
  superAdminRequired: string;
1810
+ menuNotGrantable: string;
1811
+ targetIsDelegatedAdmin: string;
1812
+ delegatedGrantExpiryInvalid: string;
1750
1813
  };
1751
1814
  user: {
1752
1815
  notFound: string;
@@ -1757,11 +1820,13 @@ declare const _default: {
1757
1820
  outOfDataScope: string;
1758
1821
  avatarUrlInvalid: string;
1759
1822
  cannotOperateSelf: string;
1823
+ menuGrantInvalid: string;
1760
1824
  };
1761
1825
  role: {
1762
1826
  notFound: string;
1763
1827
  codeExists: string;
1764
1828
  notDelegatable: string;
1829
+ systemMenuNotAssignable: string;
1765
1830
  };
1766
1831
  org: {
1767
1832
  notFound: string;
@@ -41,7 +41,10 @@ const e = {
41
41
  },
42
42
  notFound: {
43
43
  desc: "Page not found",
44
- back: "Back to workbench"
44
+ back: "Back to workbench",
45
+ currentApp: "Current app: {app}",
46
+ otherApp: 'This page belongs to the "{app}" app, not the one you are in',
47
+ switchAndOpen: 'Switch to "{app}" and open it'
45
48
  },
46
49
  // Content-area render fallback (components/ErrorBoundary)
47
50
  errorBoundary: {
@@ -63,11 +66,19 @@ const e = {
63
66
  },
64
67
  userPicker: {
65
68
  title: "Select users",
69
+ org: "Organizations",
66
70
  available: "Available",
67
71
  selected: "Selected",
68
- add: "Add",
69
- added: "Added",
70
- addChecked: "Add checked",
72
+ searchName: "Search by name",
73
+ searchAccount: "Search by account",
74
+ selectPage: "Select page",
75
+ unselectPage: "Deselect page",
76
+ total: "{n} users",
77
+ existing: "Existing",
78
+ remove: "Remove",
79
+ emptySelected: "No users selected",
80
+ prevPage: "Previous page",
81
+ nextPage: "Next page",
71
82
  clear: "Clear"
72
83
  },
73
84
  app: {
@@ -243,6 +254,9 @@ const e = {
243
254
  deleteConfirm: 'Delete app "{title}"?',
244
255
  disableConfirm: 'Disable app "{title}"? It will disappear from the portal',
245
256
  builtinNoDisable: "The built-in app cannot be disabled",
257
+ delegatable: "Delegatable",
258
+ delegatableHint: "When on, administrators can grant or deny this app's menus to individual users (time-limited)",
259
+ builtinNotDelegatable: "The built-in app is never delegatable",
246
260
  saved: "Saved",
247
261
  deleted: "Deleted"
248
262
  },
@@ -358,6 +372,7 @@ const e = {
358
372
  userToggle: "User - Enable / Disable",
359
373
  userImport: "User - Import",
360
374
  userExport: "User - Export",
375
+ userGrantMenus: "User - Grant Menus",
361
376
  roleQuery: "Role - Query",
362
377
  roleCreate: "Role - Create",
363
378
  roleUpdate: "Role - Update",
@@ -510,8 +525,12 @@ const e = {
510
525
  passwordHint: "Leave blank to auto-generate one (shown once after creation)",
511
526
  org: "Org",
512
527
  allOrgs: "All",
513
- // Narrow content area: the org tree moves into a drawer (toolbar button + drawer title)
528
+ // Group name of the org panel; in a narrow content area the tree moves into a drawer, where it is also the toolbar button + drawer title
514
529
  orgFilter: "Organization",
530
+ // Panel header button tips: once fully expanded it becomes "collapse to first level"; "hide" slides the whole panel left, after which the toolbar button's tip is "show"
531
+ collapseToFirstLevel: "Collapse to first level",
532
+ hideOrgPanel: "Hide organization panel",
533
+ showOrgPanel: "Show organization panel",
515
534
  orgPlaceholder: "Select org (optional)",
516
535
  position: "Position",
517
536
  positionPlaceholder: "Select position (optional)",
@@ -560,6 +579,47 @@ const e = {
560
579
  totpInviteToken: "Invite token",
561
580
  totpInviteExpires: "Expires at"
562
581
  },
582
+ userGrant: {
583
+ action: "Grant menus",
584
+ title: "Grant menus · {name}",
585
+ tabGrant: "Individual grants",
586
+ tabEffective: "Effective access",
587
+ hint: "Grant through roles as usual and keep only exceptions here. Allow covers that one node; Deny also revokes everything below it and beats any allow.",
588
+ noRoles: 'This user has no role, so the data scope is "self only": granted pages open but show only data the user created.',
589
+ readonly: "View only: {reason}",
590
+ readonlyNoReason: "View only",
591
+ follow: "Follow roles",
592
+ allow: "Allow",
593
+ deny: "Deny",
594
+ effective: "Effective",
595
+ ineffective: "Not effective",
596
+ expired: "Expired",
597
+ deniedByAncestor: "Denied by parent",
598
+ notGrantable: "Only a super admin can grant menus in this module",
599
+ expireLongTerm: "No expiry",
600
+ remark: "Reason (optional)",
601
+ leaked: "These APIs stay callable:",
602
+ leakedFrom: "{code} (from {from})",
603
+ summary: "Allow {allow} · Deny {deny}",
604
+ unsaved: "Unsaved changes",
605
+ invalidExpiry: "{count} record(s) have a missing or out-of-range expiry date",
606
+ saved: "Grants saved",
607
+ overview: "Individual grants",
608
+ colUser: "User",
609
+ colMenu: "Menu",
610
+ colState: "State",
611
+ colSource: "Source",
612
+ colEffect: "Effect",
613
+ colStatus: "Validity",
614
+ colExpire: "Expires",
615
+ colGrantor: "Granted by",
616
+ colGrantTime: "Granted at",
617
+ colRemark: "Reason",
618
+ adjust: "Adjust",
619
+ statusActive: "Active",
620
+ statusExpiring: "Expiring in 7 days",
621
+ statusExpired: "Expired"
622
+ },
563
623
  mfa: {
564
624
  bindTitle: "Set up authenticator",
565
625
  recoveryTitle: "Use recovery code",
@@ -1250,6 +1310,7 @@ const e = {
1250
1310
  grantSummary: "Granted {on} / {total}",
1251
1311
  grantSummarySplit: "{pages} pages · {buttons} buttons",
1252
1312
  grantUnsaved: "Unsaved changes",
1313
+ systemMenusBuiltinOnly: "Apart from User Management and Role Management, menus that ship with the system can only be granted to built-in roles and are hidden here",
1253
1314
  dataScope: "Data scope",
1254
1315
  scopeType: "Scope type",
1255
1316
  customOrgs: "Custom orgs",
@@ -1747,7 +1808,10 @@ const e = {
1747
1808
  perm: {
1748
1809
  denied: "Access denied",
1749
1810
  demoReadOnly: "Demo environment is read-only",
1750
- superAdminRequired: "This action requires super admin privileges"
1811
+ superAdminRequired: "This action requires super admin privileges",
1812
+ menuNotGrantable: "This menu's module does not allow delegated grants",
1813
+ targetIsDelegatedAdmin: "The user is an administrator; only a super admin can grant them menus individually",
1814
+ delegatedGrantExpiryInvalid: "An allow grant needs an expiry date at most {maxDays} days away"
1751
1815
  },
1752
1816
  user: {
1753
1817
  notFound: "User not found",
@@ -1757,12 +1821,14 @@ const e = {
1757
1821
  passwordReused: "New password must differ from your current and recently used passwords",
1758
1822
  outOfDataScope: "Target user is outside your data scope",
1759
1823
  avatarUrlInvalid: "Avatar URL is not allowed",
1760
- cannotOperateSelf: "You cannot perform this action on yourself"
1824
+ cannotOperateSelf: "You cannot perform this action on yourself",
1825
+ menuGrantInvalid: "Invalid grant changes: each menu at most once, and the expiry must be in the future"
1761
1826
  },
1762
1827
  role: {
1763
1828
  notFound: "Role not found",
1764
1829
  codeExists: "Role code already exists",
1765
- notDelegatable: "Role is not delegatable"
1830
+ notDelegatable: "Role is not delegatable",
1831
+ systemMenuNotAssignable: "Apart from User Management and Role Management, menus that ship with the system can only be granted to built-in roles"
1766
1832
  },
1767
1833
  org: {
1768
1834
  notFound: "Org not found",