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.
Files changed (146) 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/index.js +248 -246
  17. package/dist/layouts/NoticeBell.vue.js +2 -2
  18. package/dist/layouts/NoticeBell2.vue.js +18 -17
  19. package/dist/layouts/NoticeBell2.vue.js.map +1 -1
  20. package/dist/lib/runtime.js +1 -1
  21. package/dist/lib/watermark.d.ts +1 -1
  22. package/dist/locales/en-US.d.ts +62 -3
  23. package/dist/locales/en-US.js +66 -7
  24. package/dist/locales/en-US.js.map +1 -1
  25. package/dist/locales/kernelMenuTitles.js +2 -1
  26. package/dist/locales/kernelMenuTitles.js.map +1 -1
  27. package/dist/locales/zh-CN.d.ts +62 -3
  28. package/dist/locales/zh-CN.js +66 -7
  29. package/dist/locales/zh-CN.js.map +1 -1
  30. package/dist/router/viewRegistry.js +6 -6
  31. package/dist/router/viewRegistry.js.map +1 -1
  32. package/dist/style.css +1 -1
  33. package/dist/theme/naive-theme.js +72 -67
  34. package/dist/theme/naive-theme.js.map +1 -1
  35. package/dist/types/api.d.ts +91 -0
  36. package/dist/types/api.js +17 -15
  37. package/dist/types/api.js.map +1 -1
  38. package/dist/utils/shake.d.ts +1 -0
  39. package/dist/utils/shake.js +30 -0
  40. package/dist/utils/shake.js.map +1 -0
  41. package/dist/views/login/LoginForm.vue.js +2 -2
  42. package/dist/views/login/LoginForm2.vue.js +135 -135
  43. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  44. package/dist/views/login/components/LoginDesk.vue.js +1 -1
  45. package/dist/views/login/components/LoginDesk2.vue.js +59 -47
  46. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
  47. package/dist/views/personal/notice2.vue.js +1 -1
  48. package/dist/views/personal/notice2.vue.js.map +1 -1
  49. package/dist/views/personal/sessions.vue.js +2 -2
  50. package/dist/views/personal/sessions2.vue.js +41 -40
  51. package/dist/views/personal/sessions2.vue.js.map +1 -1
  52. package/dist/views/system/ai-usage/index.vue.js +3 -3
  53. package/dist/views/system/ai-usage/index2.vue.js +13 -12
  54. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  55. package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
  56. package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
  57. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
  58. package/dist/views/system/dict/index.vue.js +2 -2
  59. package/dist/views/system/dict/index2.vue.js +12 -1
  60. package/dist/views/system/dict/index2.vue.js.map +1 -1
  61. package/dist/views/system/file/index2.vue.js +1 -0
  62. package/dist/views/system/file/index2.vue.js.map +1 -1
  63. package/dist/views/system/job/index.vue.js +3 -3
  64. package/dist/views/system/job/index2.vue.js +182 -181
  65. package/dist/views/system/job/index2.vue.js.map +1 -1
  66. package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
  67. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
  68. package/dist/views/system/job-log/index.vue.js +1 -1
  69. package/dist/views/system/job-log/index2.vue.js +5 -5
  70. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  71. package/dist/views/system/log/exception/index.vue.js +2 -2
  72. package/dist/views/system/log/exception/index2.vue.js +8 -5
  73. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  74. package/dist/views/system/log/login/index2.vue.js +21 -12
  75. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  76. package/dist/views/system/log/op/index.vue.js +2 -2
  77. package/dist/views/system/log/op/index2.vue.js +50 -40
  78. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  79. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  80. package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
  81. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  82. package/dist/views/system/menu/index.vue.js +2 -2
  83. package/dist/views/system/menu/index2.vue.js +11 -11
  84. package/dist/views/system/menu/index2.vue.js.map +1 -1
  85. package/dist/views/system/module/index.vue.js +1 -1
  86. package/dist/views/system/module/index2.vue.js +171 -117
  87. package/dist/views/system/module/index2.vue.js.map +1 -1
  88. package/dist/views/system/notice/index.vue.js +3 -3
  89. package/dist/views/system/notice/index2.vue.js +1 -0
  90. package/dist/views/system/notice/index2.vue.js.map +1 -1
  91. package/dist/views/system/org/index.vue.js +2 -2
  92. package/dist/views/system/org/index2.vue.js +70 -67
  93. package/dist/views/system/org/index2.vue.js.map +1 -1
  94. package/dist/views/system/position/index.vue.js +2 -2
  95. package/dist/views/system/position/index2.vue.js +57 -48
  96. package/dist/views/system/position/index2.vue.js.map +1 -1
  97. package/dist/views/system/recycle/index.vue.js +1 -1
  98. package/dist/views/system/recycle/index2.vue.js +3 -1
  99. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  100. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
  101. package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
  102. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
  103. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
  104. package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
  105. package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
  106. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  107. package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
  108. package/dist/views/system/role/components/grantMenuGroups.js +116 -76
  109. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  110. package/dist/views/system/role/index.vue.js +2 -2
  111. package/dist/views/system/role/index2.vue.js +152 -145
  112. package/dist/views/system/role/index2.vue.js.map +1 -1
  113. package/dist/views/system/session/index2.vue.js +39 -35
  114. package/dist/views/system/session/index2.vue.js.map +1 -1
  115. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
  116. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
  117. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
  118. package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
  119. package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
  120. package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
  121. package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
  122. package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
  123. package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
  124. package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
  125. package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
  126. package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
  127. package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
  128. package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
  129. package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
  130. package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
  131. package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
  132. package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
  133. package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
  134. package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
  135. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
  136. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
  137. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
  138. package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
  139. package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
  140. package/dist/views/system/user/components/userGrantState.d.ts +64 -0
  141. package/dist/views/system/user/components/userGrantState.js +117 -0
  142. package/dist/views/system/user/components/userGrantState.js.map +1 -0
  143. package/dist/views/system/user/index.vue.js +2 -2
  144. package/dist/views/system/user/index2.vue.js +250 -207
  145. package/dist/views/system/user/index2.vue.js.map +1 -1
  146. package/package.json +3 -3
@@ -1,130 +1,142 @@
1
- import { defineComponent as Ee, ref as n, computed as f, watch as F, onMounted as Ne, h as d, resolveDirective as Se, openBlock as x, createElementBlock as oe, Fragment as Te, createVNode as l, unref as a, withCtx as i, createElementVNode as h, createBlock as B, createTextVNode as P, toDisplayString as E, createCommentVNode as ae, normalizeClass as Ae, createSlots as Ce, withDirectives as le } from "vue";
2
- import { useElementSize as Pe, createReusableTemplate as Ie } from "@vueuse/core";
3
- import { useRoute as Oe } from "vue-router";
4
- import { useMessage as _e, NAvatar as ze, NTag as Me, NSpace as Re, NButton as w, NPopconfirm as De, NDropdown as Ue, NTooltip as Fe, NInput as Be, NSpin as Le, NTree as qe, NDrawer as $e, NDrawerContent as Ke } from "naive-ui";
5
- import { useI18n as He } from "vue-i18n";
6
- import { SmartTable as Ve } from "smart-naive-table";
7
- import v from "../../../components/AppIcon.vue.js";
8
- import Ge from "../../../components/StatusSwitch/index.vue.js";
9
- import We from "../../../components/DictTag/index.vue.js";
10
- import je from "../../../components/ImportWizard/index.vue.js";
11
- import Je from "../../../components/ExportColumnsModal/index.vue.js";
12
- import Qe from "./components/UserFormModal.vue.js";
13
- import Xe from "./components/ResetPasswordModal.vue.js";
14
- import { useConfirm as Ye } from "../../../composables/useConfirm.js";
15
- import { useBatchDelete as Ze } from "../../../composables/useBatchDelete.js";
16
- import { userApi as m, positionApi as er, roleApi as rr, orgApi as tr, mfaApi as or } from "../../../api/index.js";
17
- import { useAuthStore as ar } from "../../../stores/auth.js";
18
- import { translateError as se } from "../../../utils/error.js";
19
- import { presetEqualFilter as lr, SEARCH_ACTIONS as L, deriveHeaderFilters as sr, flatSearchOf as nr } from "../../../utils/tableFilter.js";
20
- import { TABLE_TOOLBAR as ir, TABLE_MIN_ROW_HEIGHT as ur } from "../../../utils/tableToolbar.js";
21
- import dr from "../../../components/TableTotal/index.vue.js";
22
- import { triggerBlobDownload as mr } from "../../../utils/download.js";
23
- import { buildTree as pr, expandableIds as cr } from "../../../utils/tree.js";
24
- const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions" }, yr = { class: "side-row__label" }, gr = {
1
+ import { defineComponent as Pe, ref as n, computed as f, watch as $, onMounted as Ie, h as d, resolveDirective as Ce, openBlock as S, createElementBlock as se, Fragment as _e, createVNode as l, unref as a, withCtx as i, createElementVNode as h, createBlock as q, createTextVNode as C, toDisplayString as E, createCommentVNode as ne, normalizeClass as ze, createSlots as Re, withDirectives as ie } from "vue";
2
+ import { useElementSize as Me, createReusableTemplate as Ue } from "@vueuse/core";
3
+ import { useRoute as De } from "vue-router";
4
+ import { useMessage as Fe, NAvatar as Be, NTag as Ge, NSpace as Le, NButton as w, NPopconfirm as $e, NDropdown as qe, NTooltip as Ke, NInput as He, NSpin as Ve, NTree as We, NDrawer as je, NDrawerContent as Je } from "naive-ui";
5
+ import { useI18n as Qe } from "vue-i18n";
6
+ import { SmartTable as Xe } from "smart-naive-table";
7
+ import y from "../../../components/AppIcon.vue.js";
8
+ import Ye from "../../../components/StatusSwitch/index.vue.js";
9
+ import Ze from "../../../components/DictTag/index.vue.js";
10
+ import er from "../../../components/ImportWizard/index.vue.js";
11
+ import rr from "../../../components/ExportColumnsModal/index.vue.js";
12
+ import tr from "./components/UserFormModal.vue.js";
13
+ import or from "./components/ResetPasswordModal.vue.js";
14
+ import ar from "./components/UserGrantMenuSheet.vue.js";
15
+ import lr from "./components/UserGrantOverviewDrawer2.vue.js";
16
+ import { useConfirm as sr } from "../../../composables/useConfirm.js";
17
+ import { useBatchDelete as nr } from "../../../composables/useBatchDelete.js";
18
+ import { userApi as p, positionApi as ir, roleApi as ur, orgApi as dr, mfaApi as pr } from "../../../api/index.js";
19
+ import { useAuthStore as mr } from "../../../stores/auth.js";
20
+ import { useUserStore as cr } from "../../../stores/user.js";
21
+ import { translateError as ue } from "../../../utils/error.js";
22
+ import { presetEqualFilter as fr, SEARCH_ACTIONS as K, deriveHeaderFilters as vr, flatSearchOf as yr } from "../../../utils/tableFilter.js";
23
+ import { TABLE_TOOLBAR as gr, TABLE_MIN_ROW_HEIGHT as hr } from "../../../utils/tableToolbar.js";
24
+ import wr from "../../../components/TableTotal/index.vue.js";
25
+ import { triggerBlobDownload as kr } from "../../../utils/download.js";
26
+ import { buildTree as br, expandableIds as xr } from "../../../utils/tree.js";
27
+ const Sr = { class: "side-filter__head" }, Er = { class: "side-filter__actions" }, Nr = { class: "side-row__label" }, Tr = {
25
28
  key: 0,
26
29
  class: "side-filter"
27
- }, hr = { class: "org-drawer-body" }, wr = 1e3, Hr = /* @__PURE__ */ Ee({
30
+ }, Ar = { class: "org-drawer-body" }, Or = 1e3, tt = /* @__PURE__ */ Pe({
28
31
  __name: "index",
29
- setup(br) {
30
- const { t } = He(), I = _e(), { run: ne, confirm: ie } = Ye(), y = ar(), p = n(), { checkedKeys: q, run: ue } = Ze({
31
- remove: m.batchRemove,
32
+ setup(Pr) {
33
+ const { t } = Qe(), _ = Fe(), { run: de, confirm: pe } = sr(), m = mr(), c = n(), { checkedKeys: H, run: me } = nr({
34
+ remove: p.batchRemove,
32
35
  refresh: () => {
33
36
  var e;
34
- return (e = p.value) == null ? void 0 : e.refresh();
37
+ return (e = c.value) == null ? void 0 : e.refresh();
35
38
  },
36
39
  successMsg: t("user.deleted")
37
- }), O = n(null), _ = n(null), N = n(!1);
38
- async function de(e) {
40
+ }), z = n(null), R = n(null), M = n(null), ce = cr(), fe = f(() => {
41
+ var e;
42
+ return (e = ce.userInfo) == null ? void 0 : e.userId;
43
+ }), N = n(!1);
44
+ async function ve(e) {
39
45
  var r;
40
46
  N.value = !0;
41
47
  try {
42
- await ie({
48
+ await pe({
43
49
  content: t("user.clearMfaConfirm", { name: e.name }),
44
- action: () => or.clear({ userId: e.id }),
50
+ action: () => pr.clear({ userId: e.id }),
45
51
  successMsg: t("user.mfaCleared")
46
- }) && ((r = p.value) == null || r.refresh());
52
+ }) && ((r = c.value) == null || r.refresh());
47
53
  } finally {
48
54
  N.value = !1;
49
55
  }
50
56
  }
51
- const $ = n([]), z = n([]), K = n([]), S = n([]), H = n(!0), V = f(() => pr(S.value)), c = n(null), G = f(
52
- () => c.value == null ? {} : { orgId: c.value }
57
+ const V = n([]), U = n([]), W = n([]), T = n([]), j = n(!0), J = f(() => br(T.value)), v = n(null), Q = f(
58
+ () => v.value == null ? {} : { orgId: v.value }
53
59
  );
54
- function me(e) {
55
- Q(e.length ? Number(e[0]) : null);
60
+ function ye(e) {
61
+ ee(e.length ? Number(e[0]) : null);
56
62
  }
57
- const W = n(), { width: j } = Pe(W), J = f(() => j.value > 0 && j.value < wr), T = n(!1);
58
- function Q(e) {
59
- c.value = e, T.value = !1;
63
+ const X = n(), { width: Y } = Me(X), Z = f(() => Y.value > 0 && Y.value < Or), A = n(!1);
64
+ function ee(e) {
65
+ v.value = e, A.value = !1;
60
66
  }
61
- const [pe, X] = Ie(), ce = f(
67
+ const [ge, re] = Ue(), he = f(
62
68
  () => {
63
69
  var e;
64
- return ((e = S.value.find((r) => r.id === c.value)) == null ? void 0 : e.name) ?? t("user.orgFilter");
70
+ return ((e = T.value.find((r) => r.id === v.value)) == null ? void 0 : e.name) ?? t("user.orgFilter");
65
71
  }
66
- ), M = n("");
67
- function fe(e, r) {
72
+ ), D = n("");
73
+ function we(e, r) {
68
74
  const u = e.trim().toLowerCase();
69
75
  if (!u) return !0;
70
76
  const o = r;
71
77
  return o.name.toLowerCase().includes(u) || (o.code ?? "").toLowerCase().includes(u);
72
78
  }
73
- const g = n([]), b = f(() => cr(V.value)), A = f(
74
- () => b.value.length > 0 && g.value.length >= b.value.length
79
+ const g = n([]), k = f(() => xr(J.value)), O = f(
80
+ () => k.value.length > 0 && g.value.length >= k.value.length
75
81
  );
76
- function ve() {
77
- g.value = A.value ? [] : [...b.value];
82
+ function ke() {
83
+ g.value = O.value ? [] : [...k.value];
78
84
  }
79
- F(b, (e) => g.value = e, { immediate: !0 }), F(c, (e) => {
85
+ $(k, (e) => g.value = e, { immediate: !0 }), $(v, (e) => {
80
86
  var s;
81
87
  if (e == null) return;
82
- const r = new Map(S.value.map((te) => [te.id, te])), u = new Set(g.value);
88
+ const r = new Map(T.value.map((x) => [x.id, x])), u = new Set(g.value);
83
89
  let o = ((s = r.get(e)) == null ? void 0 : s.parentId) ?? 0;
84
90
  for (; o && r.has(o); )
85
91
  u.add(o), o = r.get(o).parentId;
86
92
  g.value = [...u];
87
- }), Ne(async () => {
93
+ }), Ie(async () => {
88
94
  try {
89
- const { items: e } = await er.page({ page: 1, pageSize: 200 });
90
- $.value = e.map((r) => ({ label: r.name, value: r.id }));
95
+ const { items: e } = await ir.page({ page: 1, pageSize: 200 });
96
+ V.value = e.map((r) => ({ label: r.name, value: r.id }));
91
97
  } catch {
92
98
  }
93
99
  try {
94
- const { items: e } = await rr.page({ page: 1, pageSize: 200 });
95
- z.value = e.map((r) => ({ label: r.name, value: r.id }));
100
+ const { items: e } = await ur.page({ page: 1, pageSize: 200 });
101
+ U.value = e.map((r) => ({ label: r.name, value: r.id }));
96
102
  } catch {
97
103
  }
98
104
  try {
99
- const { items: e } = await m.page({ page: 1, pageSize: 200 });
100
- K.value = e.map((r) => ({ label: `${r.name}(${r.account})`, value: r.id }));
105
+ const { items: e } = await p.page({ page: 1, pageSize: 200 });
106
+ W.value = e.map((r) => ({ label: `${r.name}(${r.account})`, value: r.id }));
101
107
  } catch {
102
108
  }
103
109
  try {
104
- S.value = await tr.list();
110
+ T.value = await dr.list();
105
111
  } catch {
106
112
  } finally {
107
- H.value = !1;
113
+ j.value = !1;
108
114
  }
109
115
  });
110
- const Y = Oe();
111
- F(
112
- [p, () => Y.query.roleId],
116
+ const te = De();
117
+ $(
118
+ [c, () => te.query.roleId],
113
119
  ([e, r]) => {
114
- e && Y.path === "/system/user" && lr(e, "roleId", r == null ? void 0 : Number(r));
120
+ e && te.path === "/system/user" && fr(e, "roleId", r == null ? void 0 : Number(r));
115
121
  },
116
122
  { immediate: !0 }
117
123
  );
118
- const Z = (e) => (e || "?").slice(0, 1), R = n(!1), C = n(!1), D = n(!1), ye = f(
124
+ const oe = (e) => (e || "?").slice(0, 1), F = n(!1), P = n(!1), B = n(!1), I = n(!1), ae = n(null);
125
+ function be() {
126
+ var e, r;
127
+ (e = c.value) == null || e.refresh(), I.value && ((r = ae.value) == null || r.refresh());
128
+ }
129
+ const xe = f(
119
130
  () => [
120
- y.hasPerm("POST:/api/v1/sys/user/import/preview") ? { label: t("import.button"), key: "import" } : null,
121
- y.hasPerm("GET:/api/v1/sys/user/export") ? { label: t("export.button"), key: "export" } : null
131
+ m.hasPerm("POST:/api/v1/sys/user/import/preview") ? { label: t("import.button"), key: "import" } : null,
132
+ m.hasPerm("GET:/api/v1/sys/user/export") ? { label: t("export.button"), key: "export" } : null,
133
+ m.hasPerm("GET:/api/v1/sys/user/menu-grants/page") ? { label: t("userGrant.overview"), key: "grantOverview" } : null
122
134
  ].filter((e) => e !== null)
123
- ), ge = f(() => ({ ...ir, more: ye.value }));
124
- function he(e) {
125
- e === "import" ? R.value = !0 : e === "export" && (C.value = !0);
135
+ ), Se = f(() => ({ ...gr, more: xe.value }));
136
+ function Ee(e) {
137
+ e === "import" ? F.value = !0 : e === "export" ? P.value = !0 : e === "grantOverview" && (I.value = !0);
126
138
  }
127
- const we = [
139
+ const Ne = [
128
140
  { key: "Account", title: t("userExport.account") },
129
141
  { key: "Name", title: t("userExport.name") },
130
142
  { key: "Nickname", title: t("userExport.nickname") },
@@ -137,39 +149,39 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
137
149
  { key: "Enabled", title: t("userExport.enabled") },
138
150
  { key: "IsSuperAdmin", title: t("userExport.superAdmin"), defaultSelected: !1 },
139
151
  { key: "CreateTime", title: t("userExport.createTime") }
140
- ], be = {
141
- downloadTemplate: () => m.importTemplate(),
142
- preview: (e, r) => m.importPreview(e, r),
143
- validate: (e) => m.importValidate(e),
144
- commit: (e, r) => m.importCommit(e, r),
145
- errorReport: (e) => m.importErrorReport(e)
146
- }, U = n(null);
147
- function ke(e) {
152
+ ], Te = {
153
+ downloadTemplate: () => p.importTemplate(),
154
+ preview: (e, r) => p.importPreview(e, r),
155
+ validate: (e) => p.importValidate(e),
156
+ commit: (e, r) => p.importCommit(e, r),
157
+ errorReport: (e) => p.importErrorReport(e)
158
+ }, G = n(null);
159
+ function Ae(e) {
148
160
  const r = Array.isArray(e) ? e[0] : e;
149
- U.value = r && r.order ? { field: String(r.columnKey), order: r.order === "ascend" ? "asc" : "desc" } : null;
161
+ G.value = r && r.order ? { field: String(r.columnKey), order: r.order === "ascend" ? "asc" : "desc" } : null;
150
162
  }
151
- async function xe(e) {
163
+ async function Oe(e) {
152
164
  var u, o;
153
- const r = nr(p.value);
154
- D.value = !0;
165
+ const r = yr(c.value);
166
+ B.value = !0;
155
167
  try {
156
- const s = await m.export({
168
+ const s = await p.export({
157
169
  account: r.account || void 0,
158
170
  name: r.name || void 0,
159
- orgId: G.value.orgId,
171
+ orgId: Q.value.orgId,
160
172
  roleId: r.roleId != null ? Number(r.roleId) : void 0,
161
- sortField: (u = U.value) == null ? void 0 : u.field,
162
- sortOrder: (o = U.value) == null ? void 0 : o.order,
173
+ sortField: (u = G.value) == null ? void 0 : u.field,
174
+ sortOrder: (o = G.value) == null ? void 0 : o.order,
163
175
  columns: e.join(",")
164
176
  });
165
- mr(s, t("userExport.fileName")), C.value = !1, I.success(t("export.done"));
177
+ kr(s, t("userExport.fileName")), P.value = !1, _.success(t("export.done"));
166
178
  } catch (s) {
167
- I.error(se(s));
179
+ _.error(ue(s));
168
180
  } finally {
169
- D.value = !1;
181
+ B.value = !1;
170
182
  }
171
183
  }
172
- const k = () => d("span", { class: "faint" }, "—"), ee = (e) => () => d(v, { icon: e, size: 16 }), re = [
184
+ const b = () => d("span", { class: "faint" }, "—"), L = (e) => () => d(y, { icon: e, size: 16 }), le = [
173
185
  { type: "index", title: () => t("common.rowNo"), width: 64, align: "center" },
174
186
  // 超管行禁勾:批量删除同样不可含超管(后端也会整体拒绝)
175
187
  { type: "selection", disabled: (e) => e.isSuperAdmin },
@@ -182,29 +194,33 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
182
194
  card: !1,
183
195
  // 窄档卡片的标题是姓名,头像不进卡片
184
196
  render: (e) => d(
185
- ze,
197
+ Be,
186
198
  { round: !0, size: "small", src: e.avatar || void 0 },
187
- e.avatar ? { fallback: () => Z(e.name) } : { default: () => Z(e.name) }
199
+ e.avatar ? { fallback: () => oe(e.name) } : { default: () => oe(e.name) }
188
200
  )
189
201
  },
190
202
  {
191
203
  key: "account",
204
+ ellipsis: { tooltip: !0 },
192
205
  title: () => t("user.account"),
193
- search: { actions: L.fuzzy },
206
+ search: { actions: K.fuzzy },
194
207
  sorter: !0
195
208
  },
196
209
  {
197
210
  key: "name",
211
+ ellipsis: { tooltip: !0 },
198
212
  title: () => t("user.name"),
199
213
  card: "title",
200
- search: { actions: L.fuzzy },
214
+ search: { actions: K.fuzzy },
201
215
  sorter: !0
202
216
  },
203
217
  {
204
218
  key: "phone",
219
+ width: 130,
220
+ ellipsis: { tooltip: !0 },
205
221
  title: () => t("user.phone"),
206
222
  sorter: !0,
207
- render: (e) => e.phone ? d("span", { class: "num" }, e.phone) : k()
223
+ render: (e) => e.phone ? d("span", { class: "num" }, e.phone) : b()
208
224
  },
209
225
  {
210
226
  key: "gender",
@@ -212,7 +228,7 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
212
228
  width: 80,
213
229
  hideInTable: !0,
214
230
  // 次要列:默认隐藏收窄整表,列设置抽屉可打开
215
- render: (e) => e.gender ? d(We, { typeCode: "gender", value: e.gender }) : k()
231
+ render: (e) => e.gender ? d(Ze, { typeCode: "gender", value: e.gender }) : b()
216
232
  },
217
233
  // 只作搜索项,不进表格也不进列设置。options 直接吃编辑表单已拉好的 roleOptions(SmartTable 支持 Ref 选项源),不额外发请求;
218
234
  // 列上有 options,搜索控件自动是 select。
@@ -220,27 +236,32 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
220
236
  key: "roleId",
221
237
  title: () => t("user.roles"),
222
238
  hideInTable: !0,
223
- options: z,
224
- search: { actions: L.exact, props: { clearable: !0 } }
239
+ options: U,
240
+ search: { actions: K.exact, props: { clearable: !0 } }
241
+ },
242
+ {
243
+ key: "orgName",
244
+ ellipsis: { tooltip: !0 },
245
+ title: () => t("user.org"),
246
+ render: (e) => e.orgName || b()
225
247
  },
226
- { key: "orgName", title: () => t("user.org"), render: (e) => e.orgName || k() },
227
248
  {
228
249
  key: "positionName",
229
250
  title: () => t("user.position"),
230
251
  hideInTable: !0,
231
- render: (e) => e.positionName || k()
252
+ render: (e) => e.positionName || b()
232
253
  },
233
254
  {
234
255
  key: "enabled",
235
256
  title: () => t("user.status"),
236
257
  width: 90,
237
258
  sorter: !0,
238
- render: (e) => d(Ge, {
259
+ render: (e) => d(Ye, {
239
260
  value: e.enabled,
240
261
  // 超管不可停用(防自锁 —— 停了就没法从 UI 恢复;后端也保护);无启停权限亦置灰。
241
- disabled: e.isSuperAdmin || !y.hasPerm("PUT:/api/v1/sys/user/{id}/enabled"),
262
+ disabled: e.isSuperAdmin || !m.hasPerm("PUT:/api/v1/sys/user/{id}/enabled"),
242
263
  confirm: (r) => r ? null : t("user.disableConfirm", { name: e.name }),
243
- request: (r) => m.setEnabled(e.id, r),
264
+ request: (r) => p.setEnabled(e.id, r),
244
265
  "onUpdate:value": (r) => {
245
266
  e.enabled = r;
246
267
  }
@@ -250,9 +271,15 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
250
271
  key: "isSuperAdmin",
251
272
  title: () => t("user.superAdmin"),
252
273
  width: 90,
253
- render: (e) => e.isSuperAdmin ? d(Me, { type: "warning", size: "small", bordered: !1 }, () => t("user.superAdmin")) : k()
274
+ render: (e) => e.isSuperAdmin ? d(Ge, { type: "warning", size: "small", bordered: !1 }, () => t("user.superAdmin")) : b()
275
+ },
276
+ {
277
+ key: "createTime",
278
+ width: 170,
279
+ title: () => t("user.createTime"),
280
+ format: "datetime",
281
+ sorter: !0
254
282
  },
255
- { key: "createTime", title: () => t("user.createTime"), format: "datetime", sorter: !0 },
256
283
  // 操作:编辑/删除外露;重置密码、解绑验证器进「更多」(放操作列末尾)。
257
284
  // width 须够「编辑+删除+更多」单行;wrap:false 禁止 NSpace 默认换行(否则「更多」掉到删除下一行)。
258
285
  {
@@ -264,16 +291,17 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
264
291
  hideInSetting: !0,
265
292
  render: (e) => {
266
293
  const u = [
267
- y.hasPerm("PUT:/api/v1/sys/user/{id}/password") ? { key: "resetPassword", label: t("user.resetPassword"), icon: ee("ph:key") } : null,
268
- e.totpEnabled && y.hasPerm("POST:/api/v1/sys/mfa/clear") ? {
294
+ m.hasPerm("PUT:/api/v1/sys/user/menu") && !e.isSuperAdmin && e.id !== fe.value ? { key: "grantMenus", label: t("userGrant.action"), icon: L("ph:list-checks") } : null,
295
+ m.hasPerm("PUT:/api/v1/sys/user/{id}/password") ? { key: "resetPassword", label: t("user.resetPassword"), icon: L("ph:key") } : null,
296
+ e.totpEnabled && m.hasPerm("POST:/api/v1/sys/mfa/clear") ? {
269
297
  key: "clearMfa",
270
298
  label: t("user.clearMfa"),
271
- icon: ee("ph:link-break"),
299
+ icon: L("ph:link-break"),
272
300
  disabled: N.value
273
301
  } : null
274
302
  ].filter((o) => o !== null);
275
- return d(Re, { size: 4, wrap: !1, wrapItem: !1 }, () => [
276
- y.hasPerm("PUT:/api/v1/sys/user/{id}") ? d(
303
+ return d(Le, { size: 4, wrap: !1, wrapItem: !1 }, () => [
304
+ m.hasPerm("PUT:/api/v1/sys/user/{id}") ? d(
277
305
  w,
278
306
  {
279
307
  size: "small",
@@ -281,17 +309,17 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
281
309
  type: "primary",
282
310
  onClick: () => {
283
311
  var o;
284
- return (o = O.value) == null ? void 0 : o.openEdit(e);
312
+ return (o = z.value) == null ? void 0 : o.openEdit(e);
285
313
  }
286
314
  },
287
315
  () => t("common.edit")
288
316
  ) : null,
289
- e.isSuperAdmin || !y.hasPerm("DELETE:/api/v1/sys/user/{id}") ? null : d(
290
- De,
317
+ e.isSuperAdmin || !m.hasPerm("DELETE:/api/v1/sys/user/{id}") ? null : d(
318
+ $e,
291
319
  {
292
- onPositiveClick: () => ne(() => m.remove(e.id), t("user.deleted")).then((o) => {
320
+ onPositiveClick: () => de(() => p.remove(e.id), t("user.deleted")).then((o) => {
293
321
  var s;
294
- o && ((s = p.value) == null || s.refresh());
322
+ o && ((s = c.value) == null || s.refresh());
295
323
  })
296
324
  },
297
325
  {
@@ -304,13 +332,13 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
304
332
  }
305
333
  ),
306
334
  u.length ? d(
307
- Ue,
335
+ qe,
308
336
  {
309
337
  trigger: "click",
310
338
  options: u,
311
339
  onSelect: (o) => {
312
- var s;
313
- o === "resetPassword" ? (s = _.value) == null || s.openReset(e) : o === "clearMfa" && de(e);
340
+ var s, x;
341
+ o === "resetPassword" ? (s = R.value) == null || s.openReset(e) : o === "clearMfa" ? ve(e) : o === "grantMenus" && ((x = M.value) == null || x.open({ id: e.id, name: e.name }));
314
342
  }
315
343
  },
316
344
  () => d(
@@ -324,7 +352,7 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
324
352
  },
325
353
  {
326
354
  default: () => t("common.more"),
327
- icon: () => d(v, { icon: "ph:caret-down", size: 12 })
355
+ icon: () => d(y, { icon: "ph:caret-down", size: 12 })
328
356
  }
329
357
  )
330
358
  ) : null
@@ -332,25 +360,25 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
332
360
  }
333
361
  }
334
362
  ];
335
- return sr(re), (e, r) => {
336
- const u = Se("auth");
337
- return x(), oe(Te, null, [
338
- l(a(pe), null, {
363
+ return vr(le), (e, r) => {
364
+ const u = Ce("auth");
365
+ return S(), se(_e, null, [
366
+ l(a(ge), null, {
339
367
  default: i(() => [
340
- h("div", fr, [
341
- h("div", vr, [
342
- b.value.length ? (x(), B(a(Fe), { key: 0 }, {
368
+ h("div", Sr, [
369
+ h("div", Er, [
370
+ k.value.length ? (S(), q(a(Ke), { key: 0 }, {
343
371
  trigger: i(() => [
344
372
  l(a(w), {
345
373
  quaternary: "",
346
374
  circle: "",
347
375
  size: "small",
348
- "aria-label": A.value ? a(t)("common.collapseAll") : a(t)("common.expandAll"),
349
- onClick: ve
376
+ "aria-label": O.value ? a(t)("common.collapseAll") : a(t)("common.expandAll"),
377
+ onClick: ke
350
378
  }, {
351
379
  icon: i(() => [
352
- l(v, {
353
- icon: A.value ? "ph:arrows-in-line-vertical" : "ph:arrows-out-line-vertical",
380
+ l(y, {
381
+ icon: O.value ? "ph:arrows-in-line-vertical" : "ph:arrows-out-line-vertical",
354
382
  size: 18
355
383
  }, null, 8, ["icon"])
356
384
  ]),
@@ -358,21 +386,21 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
358
386
  }, 8, ["aria-label"])
359
387
  ]),
360
388
  default: i(() => [
361
- P(" " + E(A.value ? a(t)("common.collapseAll") : a(t)("common.expandAll")), 1)
389
+ C(" " + E(O.value ? a(t)("common.collapseAll") : a(t)("common.expandAll")), 1)
362
390
  ]),
363
391
  _: 1
364
- })) : ae("", !0)
392
+ })) : ne("", !0)
365
393
  ])
366
394
  ]),
367
- l(a(Be), {
368
- value: M.value,
369
- "onUpdate:value": r[0] || (r[0] = (o) => M.value = o),
395
+ l(a(He), {
396
+ value: D.value,
397
+ "onUpdate:value": r[0] || (r[0] = (o) => D.value = o),
370
398
  size: "small",
371
399
  clearable: "",
372
400
  placeholder: a(t)("org.searchPlaceholder")
373
401
  }, {
374
402
  prefix: i(() => [
375
- l(v, {
403
+ l(y, {
376
404
  icon: "ph:magnifying-glass",
377
405
  size: 14
378
406
  })
@@ -381,23 +409,23 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
381
409
  }, 8, ["value", "placeholder"]),
382
410
  h("button", {
383
411
  type: "button",
384
- class: Ae(["side-row", { "is-active": c.value === null }]),
385
- onClick: r[1] || (r[1] = (o) => Q(null))
412
+ class: ze(["side-row", { "is-active": v.value === null }]),
413
+ onClick: r[1] || (r[1] = (o) => ee(null))
386
414
  }, [
387
- l(v, {
415
+ l(y, {
388
416
  class: "side-row__icon",
389
417
  icon: "ph:squares-four",
390
418
  size: 15
391
419
  }),
392
- h("span", yr, E(a(t)("user.allOrgs")), 1)
420
+ h("span", Nr, E(a(t)("user.allOrgs")), 1)
393
421
  ], 2),
394
- r[13] || (r[13] = h("div", { class: "side-filter__divider" }, null, -1)),
395
- l(a(Le), {
396
- show: H.value,
422
+ r[15] || (r[15] = h("div", { class: "side-filter__divider" }, null, -1)),
423
+ l(a(Ve), {
424
+ show: j.value,
397
425
  class: "fill-pass"
398
426
  }, {
399
427
  default: i(() => [
400
- l(a(qe), {
428
+ l(a(We), {
401
429
  class: "side-tree",
402
430
  "block-line": "",
403
431
  selectable: "",
@@ -405,13 +433,13 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
405
433
  "key-field": "id",
406
434
  "label-field": "name",
407
435
  "children-field": "children",
408
- data: V.value,
409
- pattern: M.value,
410
- filter: fe,
436
+ data: J.value,
437
+ pattern: D.value,
438
+ filter: we,
411
439
  "show-irrelevant-nodes": !1,
412
- "selected-keys": c.value == null ? [] : [c.value],
440
+ "selected-keys": v.value == null ? [] : [v.value],
413
441
  "expanded-keys": g.value,
414
- "onUpdate:selectedKeys": me,
442
+ "onUpdate:selectedKeys": ye,
415
443
  "onUpdate:expandedKeys": r[2] || (r[2] = (o) => g.value = o)
416
444
  }, null, 8, ["data", "pattern", "selected-keys", "expanded-keys"])
417
445
  ]),
@@ -422,49 +450,49 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
422
450
  }),
423
451
  h("div", {
424
452
  ref_key: "layoutRef",
425
- ref: W,
453
+ ref: X,
426
454
  class: "user-layout side-page"
427
455
  }, [
428
- J.value ? ae("", !0) : (x(), oe("aside", gr, [
429
- l(a(X))
456
+ Z.value ? ne("", !0) : (S(), se("aside", Tr, [
457
+ l(a(re))
430
458
  ])),
431
- l(a(Ve), {
459
+ l(a(Xe), {
432
460
  ref_key: "tableRef",
433
- ref: p,
434
- columns: re,
435
- fetcher: a(m).page,
436
- params: G.value,
461
+ ref: c,
462
+ columns: le,
463
+ fetcher: a(p).page,
464
+ params: Q.value,
437
465
  search: { container: "table" },
438
- toolbar: ge.value,
466
+ toolbar: Se.value,
439
467
  "fill-height": "",
440
- "min-row-height": a(ur),
468
+ "min-row-height": a(hr),
441
469
  "card-on-narrow": "",
442
470
  "storage-key": "sys-user",
443
- "checked-row-keys": a(q),
444
- "onUpdate:sorter": ke,
445
- "onUpdate:checkedRowKeys": r[5] || (r[5] = (o) => q.value = o),
446
- onMoreSelect: he,
447
- onError: r[6] || (r[6] = (o) => a(I).error(a(se)(o)))
448
- }, Ce({
471
+ "checked-row-keys": a(H),
472
+ "onUpdate:sorter": Ae,
473
+ "onUpdate:checkedRowKeys": r[5] || (r[5] = (o) => H.value = o),
474
+ onMoreSelect: Ee,
475
+ onError: r[6] || (r[6] = (o) => a(_).error(a(ue)(o)))
476
+ }, Re({
449
477
  "pagination-prefix": i(({ itemCount: o }) => [
450
- l(dr, { count: o }, null, 8, ["count"])
478
+ l(wr, { count: o }, null, 8, ["count"])
451
479
  ]),
452
480
  "toolbar-right": i(() => [
453
- le((x(), B(a(w), {
481
+ ie((S(), q(a(w), {
454
482
  type: "primary",
455
483
  onClick: r[4] || (r[4] = (o) => {
456
484
  var s;
457
- return (s = O.value) == null ? void 0 : s.openAdd();
485
+ return (s = z.value) == null ? void 0 : s.openAdd();
458
486
  })
459
487
  }, {
460
488
  icon: i(() => [
461
- l(v, {
489
+ l(y, {
462
490
  icon: "ph:plus",
463
491
  size: 16
464
492
  })
465
493
  ]),
466
494
  default: i(() => [
467
- P(" " + E(a(t)("common.add")), 1)
495
+ C(" " + E(a(t)("common.add")), 1)
468
496
  ]),
469
497
  _: 1
470
498
  })), [
@@ -472,19 +500,19 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
472
500
  ])
473
501
  ]),
474
502
  batch: i(() => [
475
- le((x(), B(a(w), {
503
+ ie((S(), q(a(w), {
476
504
  secondary: "",
477
505
  type: "error",
478
- onClick: a(ue)
506
+ onClick: a(me)
479
507
  }, {
480
508
  icon: i(() => [
481
- l(v, {
509
+ l(y, {
482
510
  icon: "ph:trash",
483
511
  size: 16
484
512
  })
485
513
  ]),
486
514
  default: i(() => [
487
- P(" " + E(a(t)("common.batchDelete")), 1)
515
+ C(" " + E(a(t)("common.batchDelete")), 1)
488
516
  ]),
489
517
  _: 1
490
518
  }, 8, ["onClick"])), [
@@ -493,21 +521,21 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
493
521
  ]),
494
522
  _: 2
495
523
  }, [
496
- J.value ? {
524
+ Z.value ? {
497
525
  name: "toolbar",
498
526
  fn: i(() => [
499
527
  l(a(w), {
500
528
  secondary: "",
501
- onClick: r[3] || (r[3] = (o) => T.value = !0)
529
+ onClick: r[3] || (r[3] = (o) => A.value = !0)
502
530
  }, {
503
531
  icon: i(() => [
504
- l(v, {
532
+ l(y, {
505
533
  icon: "ph:tree-structure",
506
534
  size: 16
507
535
  })
508
536
  ]),
509
537
  default: i(() => [
510
- P(" " + E(ce.value), 1)
538
+ C(" " + E(he.value), 1)
511
539
  ]),
512
540
  _: 1
513
541
  })
@@ -516,20 +544,20 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
516
544
  } : void 0
517
545
  ]), 1032, ["fetcher", "params", "toolbar", "min-row-height", "checked-row-keys"])
518
546
  ], 512),
519
- l(a($e), {
520
- show: T.value,
521
- "onUpdate:show": r[7] || (r[7] = (o) => T.value = o),
547
+ l(a(je), {
548
+ show: A.value,
549
+ "onUpdate:show": r[7] || (r[7] = (o) => A.value = o),
522
550
  placement: "left",
523
551
  width: "min(300px, 88vw)"
524
552
  }, {
525
553
  default: i(() => [
526
- l(a(Ke), {
554
+ l(a(Je), {
527
555
  title: a(t)("user.orgFilter"),
528
556
  closable: ""
529
557
  }, {
530
558
  default: i(() => [
531
- h("div", hr, [
532
- l(a(X))
559
+ h("div", Ar, [
560
+ l(a(re))
533
561
  ])
534
562
  ]),
535
563
  _: 1
@@ -537,48 +565,63 @@ const fr = { class: "side-filter__head" }, vr = { class: "side-filter__actions"
537
565
  ]),
538
566
  _: 1
539
567
  }, 8, ["show"]),
540
- l(Qe, {
568
+ l(tr, {
541
569
  ref_key: "userFormRef",
542
- ref: O,
543
- "position-options": $.value,
544
- "role-options": z.value,
545
- "director-options": K.value,
570
+ ref: z,
571
+ "position-options": V.value,
572
+ "role-options": U.value,
573
+ "director-options": W.value,
546
574
  onSaved: r[8] || (r[8] = () => {
547
575
  var o;
548
- return (o = p.value) == null ? void 0 : o.refresh();
576
+ return (o = c.value) == null ? void 0 : o.refresh();
549
577
  }),
550
578
  onPasswordGenerated: r[9] || (r[9] = (o) => {
551
579
  var s;
552
- return (s = _.value) == null ? void 0 : s.showResult(o, !0);
580
+ return (s = R.value) == null ? void 0 : s.showResult(o, !0);
553
581
  })
554
582
  }, null, 8, ["position-options", "role-options", "director-options"]),
555
- l(Xe, {
583
+ l(or, {
556
584
  ref_key: "resetModalRef",
557
- ref: _
585
+ ref: R
586
+ }, null, 512),
587
+ l(ar, {
588
+ ref_key: "grantSheetRef",
589
+ ref: M,
590
+ onSaved: be
558
591
  }, null, 512),
559
- l(je, {
560
- show: R.value,
561
- "onUpdate:show": r[10] || (r[10] = (o) => R.value = o),
562
- api: be,
592
+ l(lr, {
593
+ ref_key: "grantOverviewRef",
594
+ ref: ae,
595
+ show: I.value,
596
+ "onUpdate:show": r[10] || (r[10] = (o) => I.value = o),
597
+ onAdjust: r[11] || (r[11] = (o) => {
598
+ var s;
599
+ return (s = M.value) == null ? void 0 : s.open(o);
600
+ })
601
+ }, null, 8, ["show"]),
602
+ l(er, {
603
+ show: F.value,
604
+ "onUpdate:show": r[12] || (r[12] = (o) => F.value = o),
605
+ api: Te,
563
606
  "template-file-name": a(t)("userExport.importTemplateName"),
564
607
  "error-report-file-name": a(t)("userExport.errorReportName"),
565
- onDone: r[11] || (r[11] = () => {
608
+ onDone: r[13] || (r[13] = () => {
566
609
  var o;
567
- return (o = p.value) == null ? void 0 : o.refresh();
610
+ return (o = c.value) == null ? void 0 : o.refresh();
568
611
  })
569
612
  }, null, 8, ["show", "template-file-name", "error-report-file-name"]),
570
- l(Je, {
571
- show: C.value,
572
- "onUpdate:show": r[12] || (r[12] = (o) => C.value = o),
573
- columns: we,
574
- loading: D.value,
575
- onConfirm: xe
613
+ l(rr, {
614
+ show: P.value,
615
+ "onUpdate:show": r[14] || (r[14] = (o) => P.value = o),
616
+ columns: Ne,
617
+ loading: B.value,
618
+ onConfirm: Oe
576
619
  }, null, 8, ["show", "loading"])
577
620
  ], 64);
578
621
  };
579
622
  }
580
623
  });
581
624
  export {
582
- Hr as default
625
+ tt as default
583
626
  };
584
627
  //# sourceMappingURL=index2.vue.js.map