@skyfox2000/webui 1.2.8 → 1.2.10

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 (148) hide show
  1. package/package.json +1 -1
  2. package/scripts/userInput.py +2 -0
  3. package/src/components/common/index.ts +3 -0
  4. package/src/components/common/loading/index.vue +11 -0
  5. package/src/components/content/dialog/index.vue +15 -8
  6. package/src/components/content/dialog/uploadForm.vue +38 -79
  7. package/src/components/content/drawer/index.vue +26 -6
  8. package/src/components/content/form/formItem.vue +21 -5
  9. package/src/components/content/form/index.vue +4 -2
  10. package/src/components/content/search/searchItem.vue +1 -1
  11. package/src/components/form/autoComplete/index.vue +12 -4
  12. package/src/components/form/cascader/index.vue +1 -1
  13. package/src/components/form/datePicker/index.vue +1 -1
  14. package/src/components/form/index.ts +1 -0
  15. package/src/components/form/input/inputIcon.vue +1 -1
  16. package/src/components/form/propEditor/index.vue +113 -33
  17. package/src/components/form/select/index.vue +27 -17
  18. package/src/components/form/upload/uploadList.vue +174 -34
  19. package/src/components/index.ts +13 -1
  20. package/src/directives/permission.ts +2 -2
  21. package/src/index.ts +3 -1
  22. package/src/stores/userInfo.ts +28 -2
  23. package/src/typings/form.d.ts +18 -2
  24. package/src/typings/option.d.ts +16 -2
  25. package/src/typings/page.d.ts +1 -0
  26. package/src/utils/download.ts +1 -1
  27. package/src/utils/eventbus.ts +1 -1
  28. package/src/utils/file-upload.ts +75 -14
  29. package/src/utils/form-excel.ts +50 -1
  30. package/src/utils/form-validate.ts +18 -1
  31. package/src/utils/form.ts +3 -1
  32. package/src/utils/options.ts +38 -12
  33. package/lib/AceEditor.d.ts +0 -1
  34. package/lib/BasicLayout.d.ts +0 -1
  35. package/lib/Error403.d.ts +0 -1
  36. package/lib/Error404.d.ts +0 -1
  37. package/lib/ExcelForm.d.ts +0 -1
  38. package/lib/UploadForm.d.ts +0 -1
  39. package/lib/assets/modules/file-upload-CZO-pMJd.js +0 -176
  40. package/lib/assets/modules/form-excel-N-2OYqKv.js +0 -211
  41. package/lib/assets/modules/index-BnHnS9ug.js +0 -111
  42. package/lib/assets/modules/index-CTVMLeDF.js +0 -109
  43. package/lib/assets/modules/index-D9kzQ23e.js +0 -2213
  44. package/lib/assets/modules/menuTabs-BtOiocOC.js +0 -676
  45. package/lib/assets/modules/toolIcon-B9Mw9Ktm.js +0 -50
  46. package/lib/assets/modules/uploadList-B4LxzsC6.js +0 -210
  47. package/lib/components/common/button/index.vue.d.ts +0 -41
  48. package/lib/components/common/icon/appicon.vue.d.ts +0 -11
  49. package/lib/components/common/icon/fullscreen.vue.d.ts +0 -3
  50. package/lib/components/common/icon/helper.vue.d.ts +0 -22
  51. package/lib/components/common/icon/index.vue.d.ts +0 -243
  52. package/lib/components/common/icon/layoutIcon.vue.d.ts +0 -43
  53. package/lib/components/common/icon/projectIcon.vue.d.ts +0 -59
  54. package/lib/components/common/icon/toolIcon.vue.d.ts +0 -43
  55. package/lib/components/common/index.d.ts +0 -18
  56. package/lib/components/common/tooltip/index.vue.d.ts +0 -21
  57. package/lib/components/content/dialog/index.vue.d.ts +0 -34
  58. package/lib/components/content/drawer/index.vue.d.ts +0 -26
  59. package/lib/components/content/form/formItem.vue.d.ts +0 -25
  60. package/lib/components/content/form/index.vue.d.ts +0 -25
  61. package/lib/components/content/index.d.ts +0 -22
  62. package/lib/components/content/search/index.vue.d.ts +0 -30
  63. package/lib/components/content/search/searchItem.vue.d.ts +0 -23
  64. package/lib/components/content/table/index.vue.d.ts +0 -36
  65. package/lib/components/content/table/tableOperate.vue.d.ts +0 -18
  66. package/lib/components/content/toolbar/icontool.vue.d.ts +0 -7
  67. package/lib/components/content/toolbar/index.vue.d.ts +0 -18
  68. package/lib/components/content/tree/index.vue.d.ts +0 -46
  69. package/lib/components/form/aceEditor/aceConfig.d.ts +0 -8
  70. package/lib/components/form/autoComplete/index.vue.d.ts +0 -139
  71. package/lib/components/form/cascader/index.vue.d.ts +0 -109
  72. package/lib/components/form/checkbox/index.vue.d.ts +0 -128
  73. package/lib/components/form/datePicker/index.vue.d.ts +0 -6
  74. package/lib/components/form/index.d.ts +0 -38
  75. package/lib/components/form/input/index.vue.d.ts +0 -26
  76. package/lib/components/form/input/inputIcon.vue.d.ts +0 -10
  77. package/lib/components/form/input/inputNumber.vue.d.ts +0 -3
  78. package/lib/components/form/input/inputPassword.vue.d.ts +0 -3
  79. package/lib/components/form/propEditor/index.vue.d.ts +0 -12
  80. package/lib/components/form/radio/index.vue.d.ts +0 -133
  81. package/lib/components/form/radio/radioStatus.vue.d.ts +0 -31
  82. package/lib/components/form/rangePicker/index.vue.d.ts +0 -16
  83. package/lib/components/form/select/index.vue.d.ts +0 -142
  84. package/lib/components/form/switch/index.vue.d.ts +0 -43
  85. package/lib/components/form/textarea/index.vue.d.ts +0 -3
  86. package/lib/components/form/transfer/index.vue.d.ts +0 -38
  87. package/lib/components/form/transfer/transferTable.vue.d.ts +0 -38
  88. package/lib/components/form/treeSelect/index.vue.d.ts +0 -38
  89. package/lib/components/form/upload/uploadList.vue.d.ts +0 -476
  90. package/lib/components/index.d.ts +0 -4
  91. package/lib/components/layout/breadcrumb/index.vue.d.ts +0 -3
  92. package/lib/components/layout/content/index.vue.d.ts +0 -22
  93. package/lib/components/layout/datetime/index.vue.d.ts +0 -3
  94. package/lib/components/layout/header/headerExits.vue.d.ts +0 -3
  95. package/lib/components/layout/header/index.vue.d.ts +0 -3
  96. package/lib/components/layout/header/user.vue.d.ts +0 -3
  97. package/lib/components/layout/index.d.ts +0 -14
  98. package/lib/components/layout/menu/index.vue.d.ts +0 -6
  99. package/lib/components/layout/menu/menuTabs.vue.d.ts +0 -3
  100. package/lib/const/options.d.ts +0 -32
  101. package/lib/directives/enter-submit.d.ts +0 -4
  102. package/lib/directives/index.d.ts +0 -2
  103. package/lib/directives/permission.d.ts +0 -5
  104. package/lib/es/AceEditor/index.js +0 -167
  105. package/lib/es/BasicLayout/index.js +0 -101
  106. package/lib/es/Error403/index.js +0 -39
  107. package/lib/es/Error404/index.js +0 -39
  108. package/lib/es/ExcelForm/index.js +0 -321
  109. package/lib/es/UploadForm/index.js +0 -137
  110. package/lib/index.d.ts +0 -45
  111. package/lib/router/index.d.ts +0 -15
  112. package/lib/stores/appInfo.d.ts +0 -31
  113. package/lib/stores/hostInfo.d.ts +0 -9
  114. package/lib/stores/pageInfo.d.ts +0 -18
  115. package/lib/stores/pinia.d.ts +0 -3
  116. package/lib/stores/settingInfo.d.ts +0 -8
  117. package/lib/stores/userInfo.d.ts +0 -24
  118. package/lib/typings/data.d.ts +0 -80
  119. package/lib/typings/form.d.ts +0 -171
  120. package/lib/typings/menu.d.ts +0 -7
  121. package/lib/typings/option.d.ts +0 -175
  122. package/lib/typings/page.d.ts +0 -69
  123. package/lib/typings/table.d.ts +0 -181
  124. package/lib/typings/tools.d.ts +0 -130
  125. package/lib/typings/tree.d.ts +0 -72
  126. package/lib/typings/upload.d.ts +0 -161
  127. package/lib/typings/urls.d.ts +0 -69
  128. package/lib/utils/cache.d.ts +0 -23
  129. package/lib/utils/data.d.ts +0 -6
  130. package/lib/utils/download.d.ts +0 -4
  131. package/lib/utils/eventbus.d.ts +0 -16
  132. package/lib/utils/export-table.d.ts +0 -12
  133. package/lib/utils/file-upload.d.ts +0 -15
  134. package/lib/utils/form-excel.d.ts +0 -30
  135. package/lib/utils/form-validate.d.ts +0 -29
  136. package/lib/utils/form.d.ts +0 -9
  137. package/lib/utils/icon-loader.d.ts +0 -125
  138. package/lib/utils/isEmpty.d.ts +0 -1
  139. package/lib/utils/main-openapis.d.ts +0 -8
  140. package/lib/utils/menu.d.ts +0 -6
  141. package/lib/utils/options.d.ts +0 -10
  142. package/lib/utils/page.d.ts +0 -25
  143. package/lib/utils/table.d.ts +0 -21
  144. package/lib/utils/tools.d.ts +0 -18
  145. package/lib/utils/tree.d.ts +0 -3
  146. package/lib/vite-env.d.ts +0 -8
  147. package/lib/webui.css +0 -1
  148. package/lib/webui.es.js +0 -2240
package/lib/webui.es.js DELETED
@@ -1,2240 +0,0 @@
1
- import { u as Xe, i as X, a as ve, c as Ze, P as te, o as ie, b as et, d as Pe, e as Ee, r as oe, f as tt, g as at, h as Fe, j as lt, k as A, l as Ne, m as Re, n as V, p as ke, q as rt, s as st, O as Oe, t as Me, _ as ot, v as nt, w as it, x as ct, y as ut, z as dt, A as Be } from "./assets/modules/index-D9kzQ23e.js";
2
- import { a7 as gl, L as _l, M as bl, S as xl, a6 as yl, a4 as kl, a5 as wl, a8 as Cl, V as Sl, Q as $l, a2 as Tl, $ as Il, K as Dl, H as Pl, a1 as El, R as Fl, C as Nl, X as Rl, a0 as Ol, a3 as Ml, J as Bl, I as Al, N as zl, a9 as Ul, B as Ll, Z as Yl, aa as Vl, U as Kl, W as Hl, T as jl, ab as Ql, D as ql, E as Wl, ac as Gl, G as Jl, ad as Xl, F as Zl, Y as er } from "./assets/modules/index-D9kzQ23e.js";
3
- import { A as ar, U as lr, a as rr, g as sr, c as or, d as nr, p as ir, u as cr, b as ur } from "./assets/modules/file-upload-CZO-pMJd.js";
4
- import { EnvConfig as we } from "@skyfox2000/microbase";
5
- import { FrontCache as le, httpPost as Ae, ResStatus as ze, SERVER_HOST as pt, fieldMapping as re } from "@skyfox2000/fapi";
6
- import ne from "vue-m-message";
7
- import { defineComponent as w, createBlock as _, openBlock as m, withModifiers as Z, unref as l, useAttrs as J, withCtx as h, createElementVNode as T, createVNode as y, mergeProps as E, renderSlot as P, normalizeStyle as me, toDisplayString as F, createCommentVNode as k, ref as b, provide as Ue, watch as $, onMounted as z, createTextVNode as N, inject as he, resolveDirective as ae, withDirectives as j, computed as G, createElementBlock as S, normalizeClass as M, createSlots as Le, useSlots as ft, Fragment as O, renderList as U, resolveDynamicComponent as vt, onUnmounted as Ye, onActivated as mt, withKeys as Ce } from "vue";
8
- import "async-validator";
9
- import de from "dayjs";
10
- import { Popover as ht, theme as Ve, Drawer as gt, Space as ee, Form as Ke, message as _t, FormItem as He, ConfigProvider as Se, Popconfirm as bt, Button as je, DropdownButton as xt, Menu as ge, MenuItem as _e, Dropdown as pe, Checkbox as yt, Switch as kt, Table as Qe, Tree as wt, Cascader as Ct, DatePicker as St, Input as fe, InputPassword as $t, InputNumber as Tt, RangePicker as It, Textarea as Dt, Transfer as Pt, TreeSelect as Et, LayoutContent as Ft } from "ant-design-vue";
11
- import { VueDraggableNext as Nt } from "vue-draggable-next";
12
- import { d as qe } from "./assets/modules/uploadList-B4LxzsC6.js";
13
- import { _ as pr, a as fr } from "./assets/modules/uploadList-B4LxzsC6.js";
14
- import { c as mr, p as hr, v as gr } from "./assets/modules/form-excel-N-2OYqKv.js";
15
- import { _ as B } from "./assets/modules/index-CTVMLeDF.js";
16
- import { _ as L } from "./assets/modules/toolIcon-B9Mw9Ktm.js";
17
- import { a as br } from "./assets/modules/toolIcon-B9Mw9Ktm.js";
18
- import { _ as Q } from "./assets/modules/menuTabs-BtOiocOC.js";
19
- import { a as yr, c as kr, d as wr, e as Cr, f as Sr, I as $r, g as Tr, h as Ir, b as Dr } from "./assets/modules/menuTabs-BtOiocOC.js";
20
- import { _ as Er } from "./assets/modules/index-BnHnS9ug.js";
21
- const $e = (r, a, t, e = "remove") => {
22
- if (!t)
23
- if (e === "disable") {
24
- const o = a.component;
25
- o ? o.props.disabled = !0 : (a.el, r.setAttribute("disabled", "disabled"), r.disabled = !0), r.classList.add("disabled");
26
- } else {
27
- const o = document.createComment("No Permission"), n = r.parentNode;
28
- if (n) {
29
- const p = a.component;
30
- p ? p.props.style = { display: "none" } : n.replaceChild(o, r);
31
- }
32
- }
33
- }, Te = (r) => {
34
- const a = Xe(), { url: t, role: e, permit: o } = r;
35
- if (X(e) && X(o))
36
- return !0;
37
- const n = t;
38
- if (we.VITE_PERMISSION_MODE === "role")
39
- return X(e) ? !0 : a.hasRole(e);
40
- if (we.VITE_PERMISSION_MODE === "permit") {
41
- let p = !1, u = !1;
42
- return X(e) || (p = a.hasRole(e)), a.isAdmin() ? p : (X(o) || (u = a.hasPermit(n, o)), p || u);
43
- }
44
- return !1;
45
- }, Rt = {
46
- mounted(r, a, t) {
47
- const e = a.value || {}, o = a.arg || "remove", n = e.behavior || o, p = Te(e);
48
- $e(r, t, p, n);
49
- },
50
- updated(r, a, t) {
51
- const e = a.value || {}, o = a.arg || "remove", n = e.behavior || o, p = Te(e);
52
- $e(r, t, p, n);
53
- }
54
- }, Ot = {
55
- mounted: (r, a) => {
56
- r.addEventListener("keydown", (t) => {
57
- t.key === "Enter" && a.value();
58
- });
59
- },
60
- unmounted: (r) => {
61
- r.removeEventListener("keydown", () => {
62
- });
63
- }
64
- }, ce = {
65
- auth: Rt,
66
- submit: Ot
67
- }, Ya = (r, a) => ((a || Object.keys(ce)).forEach((e) => {
68
- e in ce && r.directive(e, ce[e]);
69
- }), r), K = (r, a) => {
70
- const t = r.find((e) => e.key === a);
71
- if (t)
72
- return t;
73
- for (const e of r)
74
- if (e.children) {
75
- const o = K(e.children, a);
76
- if (o)
77
- return o;
78
- }
79
- }, be = (r, a, t) => {
80
- const e = [], o = [];
81
- return t || (t = [...r]), t.length && t.forEach((n, p) => {
82
- let u;
83
- if (typeof n == "string") {
84
- const i = K(r, n);
85
- u = i ? { ...i } : { key: n, label: n };
86
- } else {
87
- const i = K(r, n.key);
88
- u = i ? { ...i, ...n } : { ...n };
89
- }
90
- u.click || (u.click = (i, c, d) => {
91
- c && (c.rowData.value = d), u.formVisible ? (u.formVisible.value = !1, setTimeout(() => {
92
- u.formVisible.value = !0;
93
- }, 1)) : ne.warning("未配置点击处理事件!");
94
- }), a === 0 || p < a ? e.push(u) : o.push(u);
95
- }), { buttons: e, menus: o };
96
- }, H = (r, a) => r.disabled && typeof r.disabled == "function" ? r.disabled(a) : r.disabled, W = (r, a) => r.visible && typeof r.visible == "function" ? r.visible(a) : r.visible ?? !0, Mt = (r, a) => {
97
- a.reload.value = !0;
98
- }, Bt = (r, a) => {
99
- a.searchBar.value = !a.searchBar.value;
100
- }, At = (r, a) => {
101
- switch (a.tableSize.value) {
102
- case "large":
103
- a.tableSize.value = "middle";
104
- break;
105
- case "middle":
106
- a.tableSize.value = "small";
107
- break;
108
- case "small":
109
- a.tableSize.value = "large";
110
- break;
111
- }
112
- }, zt = (r, a) => {
113
- a.selectable.value = !a.selectable.value, a.selectable.value || (a.selectKeys.value = [], a.selectRows.value = []);
114
- }, Ut = (r, a) => {
115
- a.rowExpand.value = !a.rowExpand.value;
116
- }, Ie = (r, a) => {
117
- a.selectable.value = !a.selectable.value;
118
- }, Y = (r, a, t, e, o) => {
119
- (!r.confirm || o) && r.click && (a ? r.click(a, t, e) : r.click(null, t, e)), Yt(r);
120
- }, Lt = (r, a) => {
121
- a.selectable.value = !a.selectable.value;
122
- }, We = () => {
123
- const r = ve();
124
- r.setFullscreen(!r.fullscreen);
125
- }, Yt = (r, a) => {
126
- (r.icons || r.labels) && (r.iconStatus = r.iconStatus || 0, r.iconStatus += 1, r.labels && r.labels.length && (r.label = r.labels[r.iconStatus % r.labels.length]), r.icons && r.icons.length && (r.icon = r.icons[r.iconStatus % r.icons.length]));
127
- }, Vt = (r, a) => {
128
- a ? delete r.visible : r.visible = !1;
129
- }, De = [
130
- {
131
- key: "Reload",
132
- label: "刷新表格",
133
- icon: "icon-reload",
134
- click: Mt
135
- },
136
- {
137
- key: "Query",
138
- label: "展开搜索栏",
139
- labels: ["展开搜索栏", "折叠搜索栏"],
140
- icon: "icon-search",
141
- iconStatus: 0,
142
- click: Bt
143
- },
144
- {
145
- key: "RowHeight",
146
- label: "行高调整",
147
- icon: "icon-row-height",
148
- click: At
149
- },
150
- {
151
- key: "tool.multiple.checkbox",
152
- label: "显示多选框",
153
- labels: ["显示多选框", "隐藏多选框"],
154
- icon: "icon-checkbox",
155
- click: zt
156
- },
157
- {
158
- key: "tool.expand.rows",
159
- label: "展开记录行",
160
- labels: ["展开记录行", "折叠记录行"],
161
- icon: "icon-row-collapse",
162
- iconStatus: 0,
163
- icons: ["icon-row-collapse", "icon-row-expand"],
164
- click: Ut
165
- },
166
- {
167
- key: "tool.export.excel",
168
- label: "导出Excel",
169
- icon: "icon-export-excel",
170
- children: [
171
- {
172
- key: "tool.export.excel.all",
173
- label: "全部记录",
174
- click: Ie
175
- },
176
- {
177
- key: "tool.export.excel.selected",
178
- label: "选中的记录",
179
- click: Ie
180
- }
181
- ]
182
- },
183
- {
184
- key: "tool.export.pdf",
185
- label: "导出PDF",
186
- icon: "icon-export-pdf",
187
- children: [
188
- {
189
- key: "tool.export.pdf.selected",
190
- label: "选中的记录",
191
- click: Lt
192
- }
193
- ]
194
- },
195
- {
196
- key: "TableHeadset",
197
- label: "表头设置",
198
- icon: "icon-headset",
199
- dropdown: "headset",
200
- click: () => {
201
- }
202
- // 不设置点击事件
203
- },
204
- {
205
- key: "Fullscreen",
206
- label: "设置全屏",
207
- labels: ["设置全屏", "取消全屏"],
208
- icon: "icon-fullscreen",
209
- iconStatus: 0,
210
- icons: ["icon-fullscreen", "icon-exitscreen"],
211
- click: We
212
- }
213
- ], Kt = (r) => {
214
- if (!r.tools || r.tools.length > 0) {
215
- const a = [];
216
- return r.tools ? a.push(...r.tools) : a.push(...De), { tools: be(De, 0, a).buttons };
217
- }
218
- return {
219
- tools: []
220
- };
221
- };
222
- var Ht = /* @__PURE__ */ ((r) => (r.SYS_CONFIG = "SYS_CONFIG_", r.APP_MENU = "APP_MENU_", r.DICT_TYPE = "DICT_TYPE_", r.HOST_INFO = "HOST_INFO_", r.APP_PERMITS = "APP_PERMITS_", r.USER_SETTINGS = "USER_SETTINGS_", r.DICT_DATA = "DICT_DATA_", r.COMMON_OPTIONS = "COMMON_OPTIONS_", r))(Ht || {});
223
- class Ge {
224
- /**
225
- * 设置缓存数据(带服务器时间)
226
- */
227
- static setWithServerTime(a, t, e) {
228
- const o = {
229
- data: t,
230
- lastTime: e
231
- };
232
- le.set({ key: a, storage: "local" }, o);
233
- }
234
- /**
235
- * 设置缓存数据
236
- */
237
- static setData(a, t) {
238
- le.set({ key: a, storage: "local" }, t);
239
- }
240
- /**
241
- * 获取缓存数据
242
- */
243
- static getData(a) {
244
- const t = le.get({ key: a, storage: "local" });
245
- return t && Ge.isTimedData(t) ? t.data : t ?? null;
246
- }
247
- /**
248
- * 清除缓存
249
- */
250
- static remove(a) {
251
- le.remove({ key: a, storage: "local" });
252
- }
253
- /**
254
- * 清理指定前缀的缓存 (基于 localStorage 实现,因为 FrontCache 未提供此方法)
255
- */
256
- static clearByPrefix(a) {
257
- for (let t = 0; t < localStorage.length; t++) {
258
- const e = localStorage.key(t);
259
- e && e.startsWith("frontCache::" + a) && localStorage.removeItem(e);
260
- }
261
- }
262
- /**
263
- * 清理所有缓存
264
- */
265
- static clearAll() {
266
- for (let a = localStorage.length - 1; a >= 0; a--) {
267
- const t = localStorage.key(a);
268
- t && t.startsWith("frontCache::") && localStorage.removeItem(t);
269
- }
270
- }
271
- /**
272
- * 判断是否是带时间戳的数据
273
- */
274
- static isTimedData(a) {
275
- return a && typeof a == "object" && "data" in a && "lastTime" in a && typeof a.lastTime == "number";
276
- }
277
- }
278
- async function Va() {
279
- try {
280
- const r = await Ae(
281
- {
282
- api: "PLATFORM_API",
283
- url: "/api/SysCacheSvr/getLastTime",
284
- loadingText: !1
285
- },
286
- {}
287
- );
288
- if ((r == null ? void 0 : r.status) === ze.SUCCESS) {
289
- const a = r.data;
290
- Object.keys(a).forEach((t) => {
291
- const e = a[t];
292
- ["local", "session"].forEach((n) => {
293
- const p = n === "local" ? localStorage : sessionStorage;
294
- for (let u = 0; u < p.length; u++) {
295
- const i = p.key(u);
296
- if (i && i.endsWith(t))
297
- try {
298
- const c = JSON.parse(p.getItem(i));
299
- c && typeof c == "object" && "lastTime" in c && typeof c.lastTime == "number" && c.lastTime !== e && p.removeItem(i);
300
- } catch {
301
- continue;
302
- }
303
- }
304
- });
305
- });
306
- }
307
- } catch (r) {
308
- console.error("检查缓存更新失败", r);
309
- }
310
- }
311
- const Ka = async (r, a, t) => {
312
- try {
313
- const o = (await import("@json2csv/plainjs")).Parser, n = Je(r), p = a.filter((v) => v.visible !== !1 && v.export !== !1), u = p.map((v) => ({
314
- label: v.title,
315
- value: v.dataIndex || v.key || ""
316
- })), i = t.map((v) => {
317
- const f = { ...v };
318
- return p.forEach((g) => {
319
- const C = g.dataIndex || g.key;
320
- C && g.customRender && (f[C] = g.customRender(v[C], v));
321
- }), f;
322
- }), d = new o({ fields: u }).parse(i), s = new Blob([`\uFEFF${d}`], { type: "text/csv" });
323
- qe(s, n);
324
- } catch (e) {
325
- console.error("导出失败:", e), ne.error("文件导出失败,请稍后重试");
326
- }
327
- }, Je = (r) => {
328
- const a = /\{([^}]+)\}/g;
329
- return r.replace(a, (t, e) => de().format(e));
330
- }, Ha = async (r, a, t, e) => {
331
- try {
332
- const n = (await import("@json2csv/plainjs")).Parser, p = Je(r), u = a.filter((s) => s.visible !== !1), i = u.map((s) => ({
333
- label: s.title,
334
- value: s.dataIndex || s.key || ""
335
- }));
336
- let c = t.page, d = t.gridQuery;
337
- return e.api || (e.api = c.api), e.authorize === void 0 && (e.authorize = c.authorize), t.isGridLoading.value = !0, Ae(e, d).then((s) => {
338
- if (t.isGridLoading.value = !1, (s == null ? void 0 : s.status) === ze.SUCCESS && s.data) {
339
- const f = s.data.map((D) => {
340
- const x = { ...D };
341
- return u.forEach((R) => {
342
- const q = R.dataIndex || R.key;
343
- q && R.customRender && (x[q] = R.customRender(D[q], D));
344
- }), x;
345
- }), C = new n({ fields: i }).parse(f), I = new Blob([`\uFEFF${C}`], { type: "text/csv" });
346
- qe(I, p);
347
- }
348
- });
349
- } catch (o) {
350
- console.error("导出失败:", o), ne.error("文件导出失败,请稍后重试");
351
- }
352
- }, ja = /* @__PURE__ */ w({
353
- __name: "fullscreen",
354
- setup(r) {
355
- const a = ve();
356
- return (t, e) => (m(), _(L, {
357
- onClick: Z(l(We), ["stop"]),
358
- icon: l(a).fullscreen ? "icon-exitscreen" : "icon-fullscreen",
359
- class: "w-[17px] h-[17px]"
360
- }, null, 8, ["onClick", "icon"]));
361
- }
362
- }), jt = { class: "ml-2" }, Qt = /* @__PURE__ */ w({
363
- inheritAttrs: !1,
364
- __name: "helper",
365
- props: {
366
- text: {},
367
- maxWidth: {}
368
- },
369
- setup(r) {
370
- const a = J();
371
- return (t, e) => (m(), _(l(ht), { placement: "topRight" }, {
372
- content: h(() => [
373
- P(t.$slots, "default", {}, () => [
374
- T("div", {
375
- class: "text-[14px]",
376
- style: me({ maxWidth: t.maxWidth })
377
- }, F(t.text), 5)
378
- ])
379
- ]),
380
- default: h(() => [
381
- T("span", jt, [
382
- y(L, E({
383
- icon: "icon-question-circle",
384
- class: "text-[#888] w-4 h-4"
385
- }, l(a)), null, 16)
386
- ])
387
- ]),
388
- _: 3
389
- }));
390
- }
391
- }), Qa = /* @__PURE__ */ w({
392
- __name: "layoutIcon",
393
- props: {
394
- icon: {
395
- type: String
396
- },
397
- icons: {
398
- type: Array
399
- }
400
- },
401
- setup(r) {
402
- const a = r, e = Ze({
403
- iconUrl: `${pt.MICROLAYOUT_ICONS}`,
404
- monoColor: !0,
405
- icon: a.icon,
406
- icons: a.icons
407
- });
408
- return (o, n) => r.icon || r.icons ? (m(), _(l(e), E({
409
- key: 0,
410
- icon: r.icon,
411
- icons: r.icons,
412
- class: ["align-middle"]
413
- }, o.$attrs), null, 16, ["icon", "icons"])) : k("", !0);
414
- }
415
- }), qt = { class: "hover:bg-gray-200 w-[24px] h-[24px] rounded-md" }, qa = /* @__PURE__ */ w({
416
- __name: "index",
417
- props: {
418
- saveText: {},
419
- saveAsText: {},
420
- cancelText: {},
421
- editorCtrl: {}
422
- },
423
- setup(r) {
424
- const { useToken: a } = Ve, { token: t } = a(), e = b(!1), n = r.editorCtrl;
425
- Ue(te.EditorControl, n), $(
426
- () => n.visible.value,
427
- (u) => {
428
- e.value = u ?? !1;
429
- }
430
- ), z(() => {
431
- e.value = n.visible.value ?? !1;
432
- });
433
- const p = () => {
434
- ie(n);
435
- };
436
- return (u, i) => (m(), _(l(gt), {
437
- open: e.value,
438
- "onUpdate:open": i[4] || (i[4] = (c) => e.value = c),
439
- "get-container": !1,
440
- closable: !1,
441
- "header-style": {
442
- height: "40px",
443
- padding: "10px 6px 10px 16px",
444
- backgroundColor: l(t).colorBgLayout
445
- },
446
- "body-style": {
447
- padding: "10px 16px"
448
- },
449
- "footer-style": {
450
- textAlign: "right"
451
- },
452
- style: {
453
- position: "absolute",
454
- boxShadow: "rgba(0, 0, 0, 0.3) -2px 0px 8px"
455
- },
456
- width: "420px",
457
- onClose: p
458
- }, {
459
- extra: h(() => [
460
- T("div", qt, [
461
- y(l(L), {
462
- class: "top-[-2px] left-[2px] w-6 h-6",
463
- icon: "icon-new",
464
- angle: 45,
465
- fontsize: "24px",
466
- clickable: "",
467
- color: "#666",
468
- position: [0, 0],
469
- onClick: i[0] || (i[0] = () => l(ie)(l(n)))
470
- })
471
- ])
472
- ]),
473
- default: h(() => [
474
- P(u.$slots, "default")
475
- ]),
476
- footer: h(() => [
477
- y(l(ee), null, {
478
- default: h(() => [
479
- u.cancelText !== "" ? (m(), _(l(B), {
480
- key: 0,
481
- onClick: i[1] || (i[1] = () => l(ie)(l(n)))
482
- }, {
483
- default: h(() => [
484
- N(F(u.cancelText ?? "取消"), 1)
485
- ]),
486
- _: 1
487
- })) : k("", !0),
488
- u.saveAsText !== "" && l(n).saveAsBtnVisible !== !1 ? (m(), _(l(B), {
489
- key: 1,
490
- onClick: i[2] || (i[2] = () => l(et)(l(n))),
491
- type: "primary",
492
- loading: l(n).isFormSaving.value
493
- }, {
494
- default: h(() => [
495
- N(F(u.saveAsText ?? "另存为"), 1)
496
- ]),
497
- _: 1
498
- }, 8, ["loading"])) : k("", !0),
499
- u.saveText !== "" && l(n).saveBtnVisible !== !1 ? (m(), _(l(B), {
500
- key: 2,
501
- onClick: i[3] || (i[3] = () => l(Pe)(l(n))),
502
- type: "primary",
503
- loading: l(n).isFormSaving.value
504
- }, {
505
- default: h(() => [
506
- N(F(u.saveText ?? "保存"), 1)
507
- ]),
508
- _: 1
509
- }, 8, ["loading"])) : k("", !0)
510
- ]),
511
- _: 1
512
- })
513
- ]),
514
- _: 3
515
- }, 8, ["open", "header-style"]));
516
- }
517
- }), Wa = /* @__PURE__ */ w({
518
- __name: "index",
519
- props: {
520
- labelWidth: {},
521
- wrapperWidth: {},
522
- editorCtrl: {}
523
- },
524
- setup(r) {
525
- const a = r, t = a.editorCtrl ?? he(te.EditorControl, void 0);
526
- return (e, o) => {
527
- const n = ae("submit");
528
- return j((m(), _(l(Ke), {
529
- "label-col": { flex: a.labelWidth ?? "85px" },
530
- "wrapper-col": {
531
- flex: a.wrapperWidth ?? "1"
532
- },
533
- style: {
534
- display: "flex",
535
- flexWrap: "wrap"
536
- }
537
- }, {
538
- default: h(() => [
539
- P(e.$slots, "default")
540
- ]),
541
- _: 3
542
- }, 8, ["label-col", "wrapper-col"])), [
543
- [
544
- n,
545
- () => {
546
- l(t) && l(Pe)(l(t));
547
- }
548
- ]
549
- ]);
550
- };
551
- }
552
- }), Wt = { class: "w-full flex items-center" }, Gt = { class: "flex-grow" }, Jt = { class: "w-8 mt-[-2px]" }, Xt = {
553
- key: 1,
554
- class: "absolute bottom-[3px] left-[85px] text-[12px] text-[#ff4d4fcc] block"
555
- }, Ga = /* @__PURE__ */ w({
556
- inheritAttrs: !1,
557
- __name: "formItem",
558
- props: {
559
- label: {},
560
- rule: {},
561
- helper: {},
562
- width: {}
563
- },
564
- setup(r) {
565
- const a = r, t = J(), e = he(te.EditorControl, void 0), o = Ee(a, e), n = b(!1);
566
- setTimeout(() => {
567
- n.value = !0;
568
- }, 30);
569
- const p = (i, c) => {
570
- if (!c)
571
- return;
572
- const [d, ...s] = i;
573
- return i.length === 1 ? c[d] : p(s, c[d].fields);
574
- }, u = G(() => {
575
- var c;
576
- if (!a.rule)
577
- return !1;
578
- const i = p(a.rule.split("."), (c = e == null ? void 0 : e.formRules) == null ? void 0 : c.value);
579
- return i ? i.required ?? !0 : (_t.error(`"${a.label}" 的验证规则 \`${a.rule}\` 不存在`), o.value.errClass = "text-[#ff4d4f]", o.value.msg = `规则 \`${a.rule}\` 不存在,请检查代码!`, !0);
580
- });
581
- return (i, c) => (m(), S("div", {
582
- class: M(["w-full relative mb-1", i.width])
583
- }, [
584
- n.value ? (m(), _(l(He), E({
585
- key: 0,
586
- required: u.value,
587
- class: "!w-[95%] relative"
588
- }, l(t), {
589
- class: [i.rule ? "" : "mb-3"]
590
- }), {
591
- label: h(() => [
592
- T("span", {
593
- class: M([l(o).errClass ? "text-[#ff4d4f]" : "", "w-full"])
594
- }, F(i.label), 3)
595
- ]),
596
- default: h(() => [
597
- T("div", Wt, [
598
- T("div", Gt, [
599
- P(i.$slots, "default")
600
- ]),
601
- T("div", Jt, [
602
- P(i.$slots, "helper", {}, () => [
603
- i.helper ? (m(), _(l(Qt), {
604
- key: 0,
605
- text: i.helper
606
- }, null, 8, ["text"])) : k("", !0)
607
- ])
608
- ])
609
- ])
610
- ]),
611
- _: 3
612
- }, 16, ["required", "class"])) : k("", !0),
613
- l(o).errClass ? (m(), S("span", Xt, F(l(o).msg), 1)) : k("", !0)
614
- ], 2));
615
- }
616
- }), Zt = { class: "w-1/3 relative mb-1" }, ea = { class: "flex items-center" }, ta = { class: "flex-grow pl-1" }, aa = {
617
- key: 0,
618
- class: "absolute bottom-[3px] left-[85px] text-[12px] text-[#ff4d4fcc] block"
619
- }, ue = /* @__PURE__ */ w({
620
- inheritAttrs: !1,
621
- __name: "searchItem",
622
- props: {
623
- label: {},
624
- width: {},
625
- rule: {}
626
- },
627
- setup(r) {
628
- const a = r, t = J(), e = he(te.EditorControl, void 0), o = Ee(a, e);
629
- return (n, p) => (m(), S("div", Zt, [
630
- y(l(He), E({
631
- required: n.rule !== void 0,
632
- class: "w-[90%] relative"
633
- }, l(t), {
634
- class: [n.rule ? "" : "mb-3", n.width],
635
- labelCol: { span: 6 }
636
- }), Le({
637
- default: h(() => [
638
- T("div", ea, [
639
- T("div", ta, [
640
- P(n.$slots, "default")
641
- ])
642
- ])
643
- ]),
644
- _: 2
645
- }, [
646
- n.label ? {
647
- name: "label",
648
- fn: h(() => [
649
- T("span", {
650
- class: M([l(o).errClass ? "text-[#ff4d4f]" : "", "w-full"])
651
- }, F(n.label), 3)
652
- ]),
653
- key: "0"
654
- } : void 0
655
- ]), 1040, ["required", "class"]),
656
- l(o).msg ? (m(), S("span", aa, F(l(o).msg), 1)) : k("", !0)
657
- ]));
658
- }
659
- }), Ja = /* @__PURE__ */ w({
660
- __name: "index",
661
- props: {
662
- search: {},
663
- gridCtrl: {},
664
- likeFields: {}
665
- },
666
- emits: ["update:search"],
667
- setup(r, { emit: a }) {
668
- const t = r, e = a, o = b(0), n = b(0), p = b(0), u = (f) => {
669
- let g = 0;
670
- for (let C = 0; C < f.length; C++)
671
- typeof f[C].type == "object" && g++;
672
- return g;
673
- }, i = ft(), c = () => {
674
- n.value = 0, p.value = 0, i.default && (n.value = u(i.default({}))), t.gridCtrl.searchBar && i.control && (p.value = u(i.control({}))), o.value = 2 - (n.value + p.value) % 3;
675
- };
676
- $(
677
- () => t.gridCtrl.searchBar,
678
- () => {
679
- c();
680
- }
681
- );
682
- const d = JSON.parse(JSON.stringify(t.search));
683
- z(() => {
684
- var g;
685
- c();
686
- let f = { ...t.search };
687
- t.gridCtrl.gridQuery = {
688
- ...t.gridCtrl.gridQuery,
689
- Query: {
690
- ...(g = t.gridCtrl.gridQuery) == null ? void 0 : g.Query,
691
- ...f
692
- }
693
- };
694
- });
695
- const s = () => {
696
- var g;
697
- let f = { ...t.search };
698
- if (t.likeFields)
699
- for (const C of t.likeFields)
700
- f[C] && (f[C] = { $like: "%" + f[C] + "%" });
701
- t.gridCtrl.gridQuery = {
702
- ...t.gridCtrl.gridQuery,
703
- Query: {
704
- ...(g = t.gridCtrl.gridQuery) == null ? void 0 : g.Query,
705
- ...f
706
- }
707
- }, t.gridCtrl.pageNo.value = 1, t.gridCtrl.reload.value = !0;
708
- }, v = () => {
709
- const f = JSON.parse(JSON.stringify(d));
710
- for (const g in t.search)
711
- f[g] === void 0 && (f[g] = void 0);
712
- e("update:search", f);
713
- };
714
- return (f, g) => {
715
- const C = ae("submit");
716
- return n.value + p.value > 0 ? j((m(), _(l(Ke), {
717
- key: 0,
718
- "label-col": { flex: "60px" },
719
- style: {
720
- flexWrap: "wrap",
721
- borderBottom: "1px solid #e9e9e9"
722
- },
723
- class: "flex mb-[10px]"
724
- }, {
725
- default: h(() => [
726
- P(f.$slots, "default"),
727
- f.gridCtrl.searchBar ? P(f.$slots, "control", { key: 0 }) : k("", !0),
728
- o.value >= 1 ? (m(), _(ue, {
729
- key: 1,
730
- class: "w-1/3"
731
- })) : k("", !0),
732
- o.value >= 2 ? (m(), _(ue, {
733
- key: 2,
734
- class: "w-1/3"
735
- })) : k("", !0),
736
- n.value || f.gridCtrl.searchBar ? (m(), _(ue, {
737
- key: 3,
738
- class: "w-1/3 flex justify-end text-right pr-5",
739
- "wrapper-col": { flex: "auto" }
740
- }, {
741
- default: h(() => [
742
- y(l(ee), null, {
743
- default: h(() => [
744
- y(l(B), {
745
- type: "primary",
746
- onClick: s,
747
- icon: "icon-search"
748
- }, {
749
- default: h(() => g[0] || (g[0] = [
750
- N("搜索")
751
- ])),
752
- _: 1,
753
- __: [0]
754
- }),
755
- y(l(B), {
756
- onClick: v,
757
- icon: "icon-reset"
758
- }, {
759
- default: h(() => g[1] || (g[1] = [
760
- N("重置")
761
- ])),
762
- _: 1,
763
- __: [1]
764
- })
765
- ]),
766
- _: 1
767
- })
768
- ]),
769
- _: 1
770
- })) : k("", !0)
771
- ]),
772
- _: 3
773
- })), [
774
- [C, s]
775
- ]) : k("", !0);
776
- };
777
- }
778
- }), la = /* @__PURE__ */ w({
779
- __name: "tableOperate",
780
- props: {
781
- record: {},
782
- gridCtrl: {}
783
- },
784
- setup(r) {
785
- const a = r, t = a.gridCtrl, e = G(() => oe.currentRoute.value.path), o = [
786
- {
787
- key: "Edit",
788
- label: "编辑",
789
- type: "primary",
790
- visible: !0,
791
- role: ["Super", "Admin"],
792
- permit: ":edit",
793
- click: () => tt(t, a.record)
794
- },
795
- {
796
- key: "Delete",
797
- label: "删除",
798
- type: "primary",
799
- visible: !0,
800
- danger: !0,
801
- role: ["Super", "Admin"],
802
- permit: ":delete",
803
- confirm: !0,
804
- confirmText: "是否删除此记录?",
805
- click: () => at(t, a.record)
806
- }
807
- ], { buttons: n, menus: p } = be(o, 0, t.operates), u = (i) => {
808
- if (typeof i.disabled == "boolean")
809
- return i.disabled;
810
- if (typeof i.disabled == "function")
811
- return H(i, a.record) ?? !1;
812
- if (a.record.hasOwnProperty("Enabled"))
813
- switch (i.key) {
814
- case "Edit":
815
- return !a.record.Enabled;
816
- case "Delete":
817
- return !!a.record.Enabled;
818
- }
819
- return !1;
820
- };
821
- return (i, c) => {
822
- const d = ae("auth");
823
- return m(), _(l(Se), { theme: {
824
- token: {
825
- fontSize: 13
826
- }
827
- } }, {
828
- default: h(() => [
829
- y(l(ee), null, {
830
- default: h(() => [
831
- (m(!0), S(O, null, U(l(n), (s) => (m(), S(O, {
832
- key: s.key
833
- }, [
834
- l(W)(s, a.record) ? (m(), _(l(bt), {
835
- key: 0,
836
- disabled: u(s) || !s.confirm,
837
- cancelText: "否",
838
- okText: "是",
839
- title: s.confirmText,
840
- okButtonProps: { size: "small" },
841
- cancelButtonProps: { size: "small" },
842
- onConfirm: (v) => l(Y)(s, l(t).page, l(t), a.record, !0)
843
- }, {
844
- default: h(() => [
845
- l(W)(s, a.record) ? j((m(), _(l(je), {
846
- key: s.key,
847
- type: s.type ?? "text",
848
- danger: s.danger,
849
- disabled: u(s),
850
- onClick: (v) => l(Y)(s, l(t).page, l(t), a.record),
851
- size: "small",
852
- style: me({
853
- padding: s.type ?? "0px 4px"
854
- })
855
- }, {
856
- default: h(() => [
857
- N(F(s.label), 1)
858
- ]),
859
- _: 2
860
- }, 1032, ["type", "danger", "disabled", "onClick", "style"])), [
861
- [d, { url: e.value, role: s.role, permit: s.permit }]
862
- ]) : k("", !0)
863
- ]),
864
- _: 2
865
- }, 1032, ["disabled", "title", "onConfirm"])) : k("", !0)
866
- ], 64))), 128)),
867
- i.record.Enabled == 1 ? (m(), _(l(Se), {
868
- key: 0,
869
- autoInsertSpaceInButton: !1
870
- }, {
871
- default: h(() => [
872
- l(p).length > 0 ? (m(), _(l(xt), {
873
- key: 0,
874
- size: "small"
875
- }, {
876
- overlay: h(() => [
877
- y(l(ge), null, {
878
- default: h(() => [
879
- (m(!0), S(O, null, U(l(p), (s) => (m(), S(O, {
880
- key: s.key
881
- }, [
882
- l(W)(s, a.record) ? j((m(), _(l(_e), {
883
- key: 0,
884
- disabled: u(s),
885
- onClick: (v) => l(Y)(s, l(t).page, l(t), a.record)
886
- }, {
887
- default: h(() => [
888
- N(F(s.label), 1)
889
- ]),
890
- _: 2
891
- }, 1032, ["disabled", "onClick"])), [
892
- [d, { url: e.value, role: s.role, permit: s.permit }]
893
- ]) : k("", !0)
894
- ], 64))), 128))
895
- ]),
896
- _: 1
897
- })
898
- ]),
899
- default: h(() => [
900
- c[0] || (c[0] = N(" 更多 "))
901
- ]),
902
- _: 1,
903
- __: [0]
904
- })) : k("", !0)
905
- ]),
906
- _: 1
907
- })) : k("", !0)
908
- ]),
909
- _: 1
910
- })
911
- ]),
912
- _: 1
913
- });
914
- };
915
- }
916
- }), ra = { class: "inline-flex [&>div]:ml-[-1px] first:[&>div]:ml-0" }, sa = /* @__PURE__ */ w({
917
- __name: "icontool",
918
- props: {
919
- gridCtrl: {}
920
- },
921
- setup(r) {
922
- const a = r, t = a.gridCtrl, { tools: e } = Kt(a.gridCtrl), o = ve();
923
- $(
924
- () => t.selectable.value,
925
- (u) => {
926
- K(e, "tool.export.excel.selected") && (K(e, "tool.export.excel.selected").disabled = !u), K(e, "tool.export.pdf.selected") && (K(e, "tool.export.pdf.selected").disabled = !u);
927
- }
928
- );
929
- const n = b([]);
930
- $(
931
- () => t.columns.value,
932
- (u) => {
933
- n.value = Fe(u, !0);
934
- },
935
- { deep: !0, immediate: !0 }
936
- );
937
- const p = () => {
938
- t.columns.value.splice(0, t.columns.value.length, ...n.value), o.setTableColumns(oe.currentRoute.value.path, t.columns.value);
939
- };
940
- return (u, i) => (m(), S("div", ra, [
941
- (m(!0), S(O, null, U(l(e), (c, d) => (m(), S(O, {
942
- key: c.key
943
- }, [
944
- l(W)(c) && c.dropdown ? (m(), _(l(pe), {
945
- key: 0,
946
- placement: "bottomRight",
947
- class: "p-0 rounded-none"
948
- }, {
949
- overlay: h(() => [
950
- T("div", {
951
- class: M(["min-w-[100px] bg-white rounded shadow-md p-4", c.dropdownClass])
952
- }, [
953
- c.dropdown === "headset" ? (m(), _(l(Nt), {
954
- key: 0,
955
- modelValue: n.value,
956
- "onUpdate:modelValue": i[1] || (i[1] = (s) => n.value = s),
957
- "item-key": "dataIndex",
958
- onEnd: p,
959
- handle: ".drag-handle"
960
- }, {
961
- default: h(() => [
962
- (m(!0), S(O, null, U(n.value, (s) => (m(), S("div", {
963
- key: s.name,
964
- onClick: i[0] || (i[0] = Z(() => {
965
- }, ["stop"])),
966
- class: "flex items-center mb-2 last:mb-0 select-none"
967
- }, [
968
- i[2] || (i[2] = T("span", { class: "drag-handle mr-2 text-gray-400 hover:text-gray-600 cursor-move" }, "⋮⋮", -1)),
969
- y(l(yt), {
970
- checked: s.visible !== !1,
971
- onChange: Z(
972
- (v) => {
973
- l(Vt)(s, v.target.checked);
974
- },
975
- ["stop", "prevent"]
976
- ),
977
- class: "text-gray-700 hover:text-gray-900 select-none"
978
- }, {
979
- default: h(() => [
980
- N(F(s.title), 1)
981
- ]),
982
- _: 2
983
- }, 1032, ["checked", "onChange"])
984
- ]))), 128))
985
- ]),
986
- _: 1
987
- }, 8, ["modelValue"])) : k("", !0)
988
- ], 2)
989
- ]),
990
- default: h(() => [
991
- y(l(B), {
992
- class: M([
993
- "px-[8px] py-[2px] relative border-[#ccc] bg-[#fcfcfc] rounded-none text-[#666] hover:z-10",
994
- d === 0 ? "rounded-l-[5px]" : "",
995
- d === l(e).length - 1 ? "rounded-r-[5px]" : ""
996
- ]),
997
- disabled: l(H)(c),
998
- tiptext: c.label,
999
- onClick: (s) => l(Y)(c, l(t).page, l(t))
1000
- }, {
1001
- default: h(() => [
1002
- y(l(L), {
1003
- icon: c.icon,
1004
- class: "w-[18px] h-[18.5px]",
1005
- clickable: ""
1006
- }, null, 8, ["icon"])
1007
- ]),
1008
- _: 2
1009
- }, 1032, ["class", "disabled", "tiptext", "onClick"])
1010
- ]),
1011
- _: 2
1012
- }, 1024)) : !c.children && l(W)(c) ? (m(), _(l(B), {
1013
- key: 1,
1014
- class: M([
1015
- "px-[8px] py-[2px] relative border-[#ccc] bg-[#fcfcfc] rounded-none text-[#666] hover:z-10",
1016
- d === 0 ? "rounded-l-[5px]" : "",
1017
- d === l(e).length - 1 ? "rounded-r-[5px]" : ""
1018
- ]),
1019
- disabled: l(H)(c),
1020
- tiptext: c.label,
1021
- onClick: (s) => l(Y)(c, l(t).page, l(t))
1022
- }, {
1023
- default: h(() => [
1024
- y(l(L), {
1025
- icon: c.icon,
1026
- class: "w-[18px] h-[18.5px]",
1027
- clickable: ""
1028
- }, null, 8, ["icon"])
1029
- ]),
1030
- _: 2
1031
- }, 1032, ["class", "disabled", "tiptext", "onClick"])) : l(W)(c) ? (m(), _(l(pe), {
1032
- key: 2,
1033
- placement: "bottomRight",
1034
- class: "p-0 rounded-none"
1035
- }, {
1036
- overlay: h(() => [
1037
- y(l(ge), null, {
1038
- default: h(() => [
1039
- (m(!0), S(O, null, U(c.children, (s) => (m(), _(l(_e), {
1040
- key: s.key,
1041
- disabled: l(H)(s)
1042
- }, {
1043
- default: h(() => [
1044
- N(F(s.label), 1)
1045
- ]),
1046
- _: 2
1047
- }, 1032, ["disabled"]))), 128))
1048
- ]),
1049
- _: 2
1050
- }, 1024)
1051
- ]),
1052
- default: h(() => [
1053
- y(l(B), {
1054
- class: M([
1055
- "!w-[46px] px-[5px] py-[2px] relative border-[#ccc] bg-[#fcfcfc] rounded-none text-[#666] hover:z-10",
1056
- d === 0 ? "rounded-l-[5px]" : ""
1057
- ]),
1058
- disabled: l(H)(c),
1059
- tiptext: c.label,
1060
- icon: c.icon,
1061
- iconProps: { class: "w-[19px] h-[19px]" },
1062
- onClick: (s) => l(Y)(c, l(t).page, l(t))
1063
- }, {
1064
- default: h(() => [
1065
- y(l(L), {
1066
- icon: "icon-down-arrow",
1067
- class: "w-[12px] h-[12px]"
1068
- })
1069
- ]),
1070
- _: 2
1071
- }, 1032, ["class", "disabled", "tiptext", "icon", "onClick"])
1072
- ]),
1073
- _: 2
1074
- }, 1024)) : k("", !0)
1075
- ], 64))), 128))
1076
- ]));
1077
- }
1078
- }), oa = { class: "flex justify-between mb-[10px]" }, na = { key: 1 }, ia = 3, ca = /* @__PURE__ */ w({
1079
- __name: "index",
1080
- props: {
1081
- gridCtrl: {},
1082
- editorCtrl: {}
1083
- },
1084
- setup(r) {
1085
- const a = r, t = a.gridCtrl, e = t.page, o = a.editorCtrl, n = G(() => oe.currentRoute.value.path), p = [
1086
- {
1087
- key: "New",
1088
- label: "新增",
1089
- type: "primary",
1090
- icon: "icon-new",
1091
- danger: !0,
1092
- role: ["Super", "Admin"],
1093
- permit: ":new",
1094
- // 默认仅受权限码控制
1095
- click: () => lt(o)
1096
- }
1097
- ], u = b([]), i = b([]);
1098
- return $(
1099
- () => {
1100
- var c;
1101
- return (c = t.buttons) == null ? void 0 : c.value;
1102
- },
1103
- () => {
1104
- var s;
1105
- const { buttons: c, menus: d } = be(
1106
- p,
1107
- t.flat !== void 0 ? t.flat : ia,
1108
- (s = t.buttons) == null ? void 0 : s.value
1109
- );
1110
- u.value.splice(0, u.value.length, ...c), i.value.splice(0, i.value.length, ...d);
1111
- },
1112
- {
1113
- deep: !0,
1114
- immediate: !0
1115
- }
1116
- ), (c, d) => {
1117
- const s = ae("auth");
1118
- return m(), S("div", oa, [
1119
- y(l(ee), null, {
1120
- default: h(() => [
1121
- (m(!0), S(O, null, U(u.value, (v) => j((m(), _(l(B), {
1122
- key: v.key,
1123
- type: v.type,
1124
- danger: v.danger,
1125
- disabled: l(H)(v),
1126
- icon: v.icon,
1127
- onClick: (f) => l(Y)(v, l(e), l(t))
1128
- }, {
1129
- default: h(() => [
1130
- N(F(v.label), 1)
1131
- ]),
1132
- _: 2
1133
- }, 1032, ["type", "danger", "disabled", "icon", "onClick"])), [
1134
- [s, { url: n.value, role: v.role, permit: v.permit }]
1135
- ])), 128)),
1136
- i.value.length > 0 ? (m(), _(l(pe), { key: 0 }, {
1137
- overlay: h(() => [
1138
- y(l(ge), null, {
1139
- default: h(() => [
1140
- (m(!0), S(O, null, U(i.value, (v) => j((m(), _(l(_e), {
1141
- key: v.key,
1142
- disabled: l(H)(v),
1143
- onClick: (f) => l(Y)(v, l(e), l(t))
1144
- }, {
1145
- default: h(() => [
1146
- N(F(v.label), 1)
1147
- ]),
1148
- _: 2
1149
- }, 1032, ["disabled", "onClick"])), [
1150
- [s, { url: n.value, role: v.role, permit: v.permit }]
1151
- ])), 128))
1152
- ]),
1153
- _: 1
1154
- })
1155
- ]),
1156
- default: h(() => [
1157
- y(l(B), null, {
1158
- default: h(() => d[0] || (d[0] = [
1159
- N(" 更多操作 ")
1160
- ])),
1161
- _: 1,
1162
- __: [0]
1163
- })
1164
- ]),
1165
- _: 1
1166
- })) : k("", !0),
1167
- u.value.length === 0 && i.value.length === 0 ? (m(), S("span", na)) : k("", !0)
1168
- ]),
1169
- _: 1
1170
- }),
1171
- y(l(ee), { class: "mr-1" }, {
1172
- default: h(() => [
1173
- (m(), _(vt(sa), { "grid-ctrl": l(t) }, null, 8, ["grid-ctrl"]))
1174
- ]),
1175
- _: 1
1176
- })
1177
- ]);
1178
- };
1179
- }
1180
- }), ua = /* @__PURE__ */ w({
1181
- __name: "index",
1182
- props: {
1183
- /**
1184
- * 选择项数据
1185
- */
1186
- data: {
1187
- type: Array,
1188
- required: !0
1189
- }
1190
- },
1191
- emits: ["change"],
1192
- setup(r, { emit: a }) {
1193
- const t = r, e = b([]), o = a, { editorCtrl: n, errInfo: p } = A(), u = (i) => {
1194
- p != null && p.value.errClass && n && V(n), o("change", i);
1195
- };
1196
- return z(() => {
1197
- if (!t.data || t.data.length != 2) {
1198
- console.error("Switch组件: ", t.data), ne.error("Switch组件必须有且只有两个选项");
1199
- return;
1200
- }
1201
- Ne(!1, t, e);
1202
- }), Ye(() => {
1203
- Re(t);
1204
- }), (i, c) => {
1205
- var d;
1206
- return e.value.length === 2 ? (m(), _(l(kt), E({
1207
- key: 0,
1208
- class: [
1209
- ((d = l(p)) == null ? void 0 : d.errClass) === "error" ? "error !border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : "",
1210
- "bg-blue-300",
1211
- "w-[58px]"
1212
- ],
1213
- checkedChildren: e.value[0].label,
1214
- checkedValue: e.value[0].value,
1215
- unCheckedChildren: e.value[1].label,
1216
- unCheckedValue: e.value[1].value,
1217
- onChange: u
1218
- }, i.$attrs), null, 16, ["class", "checkedChildren", "checkedValue", "unCheckedChildren", "unCheckedValue"])) : k("", !0);
1219
- };
1220
- }
1221
- }), Xa = /* @__PURE__ */ w({
1222
- inheritAttrs: !1,
1223
- __name: "index",
1224
- props: {
1225
- gridCtrl: {},
1226
- primaryKey: {},
1227
- tableData: {},
1228
- rowSelection: {},
1229
- pagination: { type: [Boolean, Object] },
1230
- scroll: {},
1231
- statusDisabled: { type: Function }
1232
- },
1233
- setup(r) {
1234
- const a = r, t = J(), e = a.gridCtrl, o = G(() => oe.currentRoute.value.path);
1235
- e && (e.pageNo.value = 1, e.total.value = 0, e.pageSize.value = e.pageSize.value);
1236
- const n = b(e.pageSize.value), p = b(e.pageNo.value), u = b([]), i = b({
1237
- total: 0,
1238
- current: 1,
1239
- pageSize: n.value,
1240
- showTotal: (f) => `共 ${f} 条记录`,
1241
- onChange: (f, g) => {
1242
- i.value.current = f, i.value.pageSize = g, n.value = g, p.value = f, e && (e.pageNo.value = f, e.pageSize.value = g, e.remotePage && ke(e));
1243
- },
1244
- ...a.pagination
1245
- });
1246
- $(
1247
- () => e.tableData.value,
1248
- (f) => {
1249
- f && (u.value = f, i.value.total = e.total.value ?? 0, i.value.current = e.pageNo.value ?? 1, i.value.pageSize = e.pageSize.value ?? 10);
1250
- },
1251
- { immediate: !0 }
1252
- ), $(
1253
- () => a.tableData,
1254
- (f) => {
1255
- f && (u.value = f, i.value.total = f.length, i.value.current = e.pageNo.value ?? 1, i.value.pageSize = e.pageSize.value ?? 10);
1256
- },
1257
- { immediate: !0 }
1258
- );
1259
- const c = b(e.columns.value), d = {
1260
- onChange: (f, g) => {
1261
- e && (e.selectKeys.value = f, e.selectRows.value = g);
1262
- },
1263
- columnWidth: "30px",
1264
- getCheckboxProps: (f) => ({
1265
- disabled: f.Enabled === 0
1266
- }),
1267
- ...a.rowSelection
1268
- }, s = b(d);
1269
- $(
1270
- () => e.selectable.value,
1271
- (f) => {
1272
- e && (s.value = f ? d : void 0);
1273
- },
1274
- { immediate: !0 }
1275
- ), $(
1276
- () => e.columns.value,
1277
- () => {
1278
- c.value = Fe(e.columns.value);
1279
- },
1280
- { deep: !0, immediate: !0 }
1281
- );
1282
- const v = b(!1);
1283
- return mt(() => {
1284
- v.value && e && (e.reload.value = !0);
1285
- }), z(async () => {
1286
- Ue(te.GridControl, e), e.tableData.value ? (u.value = e.tableData.value, e.total.value = u.value.length, i.value.total = e.total.value ?? 0) : e.autoload !== !1 && (e.remotePage ? u.value = (await ke(e)).rows : u.value = await rt(e)), setTimeout(() => {
1287
- v.value = !0;
1288
- }, 50);
1289
- }), (f, g) => {
1290
- var I, D;
1291
- const C = ae("auth");
1292
- return m(), S(O, null, [
1293
- (I = l(e).buttons) != null && I.value.length || (D = l(e).tools) != null && D.length ? (m(), _(ca, {
1294
- key: 0,
1295
- "grid-ctrl": l(e),
1296
- "editor-ctrl": l(e).editor
1297
- }, null, 8, ["grid-ctrl", "editor-ctrl"])) : k("", !0),
1298
- v.value ? (m(), _(l(Qe), E({
1299
- key: 1,
1300
- class: "w-full",
1301
- "row-key": a.primaryKey ?? l(e).primaryKey ?? "Id",
1302
- "data-source": u.value,
1303
- loading: l(e).isGridLoading.value,
1304
- columns: c.value,
1305
- pagination: i.value,
1306
- "row-selection": s.value,
1307
- scroll: a.scroll || { x: 700, y: 1e3 },
1308
- size: l(e).tableSize.value,
1309
- bordered: ""
1310
- }, l(t)), {
1311
- bodyCell: h((x) => {
1312
- var R, q;
1313
- return [
1314
- P(f.$slots, "bodyCell", {
1315
- column: x == null ? void 0 : x.column,
1316
- record: x == null ? void 0 : x.record
1317
- }),
1318
- l(e) && ((R = x == null ? void 0 : x.column) == null ? void 0 : R.dataIndex) === "enabled" ? j((m(), _(ua, {
1319
- key: 0,
1320
- checked: x.record.Enabled,
1321
- "onUpdate:checked": (ye) => x.record.Enabled = ye,
1322
- disabled: f.statusDisabled ? f.statusDisabled(x.record) : !1,
1323
- data: l(Oe).EnableDisable,
1324
- onClick: (ye) => l(st)(l(e), x.record),
1325
- class: M([
1326
- "w-[58px]",
1327
- f.statusDisabled && f.statusDisabled(x.record) ? "cursor-not-allowed disabled" : ""
1328
- ]),
1329
- loading: x == null ? void 0 : x.record.isLoading
1330
- }, null, 8, ["checked", "onUpdate:checked", "disabled", "data", "onClick", "class", "loading"])), [
1331
- [C, { url: o.value, role: ["Super", "Admin"], permit: ":enabled" }, "disable"]
1332
- ]) : k("", !0),
1333
- l(e) && ((q = x == null ? void 0 : x.column) == null ? void 0 : q.dataIndex) === "operation" ? P(f.$slots, "operate", {
1334
- key: 1,
1335
- record: x == null ? void 0 : x.record
1336
- }, () => [
1337
- y(la, {
1338
- record: x == null ? void 0 : x.record,
1339
- "grid-ctrl": l(e)
1340
- }, null, 8, ["record", "grid-ctrl"])
1341
- ]) : k("", !0)
1342
- ];
1343
- }),
1344
- _: 3
1345
- }, 16, ["row-key", "data-source", "loading", "columns", "pagination", "row-selection", "scroll", "size"])) : k("", !0)
1346
- ], 64);
1347
- };
1348
- }
1349
- }), da = { class: "flex items-center gap-1" }, pa = { class: "text-nowrap" }, Za = /* @__PURE__ */ w({
1350
- __name: "index",
1351
- props: {
1352
- treeCtrl: {},
1353
- selectedKeys: {},
1354
- expandedKeys: {}
1355
- },
1356
- emits: ["select", "update:selectedKeys"],
1357
- setup(r, { emit: a }) {
1358
- const t = r, e = J(), o = t.treeCtrl, n = b([]);
1359
- $(
1360
- () => o.data.value,
1361
- (d) => {
1362
- d && (n.value = o.fieldMap ? re(o.fieldMap, d) : d, c(t.selectedKeys ?? []));
1363
- }
1364
- );
1365
- const p = a, u = b([]);
1366
- $(
1367
- () => t.selectedKeys,
1368
- (d) => {
1369
- d && (u.value = d);
1370
- },
1371
- { immediate: !0 }
1372
- );
1373
- const i = b(["-"]);
1374
- $(
1375
- () => t.expandedKeys,
1376
- (d) => {
1377
- d && (i.value = d);
1378
- },
1379
- { immediate: !0 }
1380
- );
1381
- const c = (d, s) => {
1382
- d.length === 0 && d.push(...u.value), d.length > 0 && (o.node.value = s == null ? void 0 : s.node.dataRef), u.value = d, p("update:selectedKeys", d), p("select", d, s);
1383
- };
1384
- return z(() => {
1385
- o.fieldMap || (o.fieldMap = {
1386
- label: "Name",
1387
- key: "Id",
1388
- value: "Id",
1389
- icon: "Icon"
1390
- }), o.data.value ? n.value = re(o.fieldMap, o.data.value) : o.autoload && Me(o);
1391
- }), (d, s) => (m(), _(l(wt), E({
1392
- class: "w-full",
1393
- "show-line": !0,
1394
- "tree-data": n.value,
1395
- "expanded-keys": i.value,
1396
- "onUpdate:expandedKeys": s[0] || (s[0] = (v) => i.value = v),
1397
- "selected-keys": u.value,
1398
- loading: l(o).isTreeLoading,
1399
- onSelect: c
1400
- }, l(e)), {
1401
- title: h(({ key: v, label: f, icon: g }) => [
1402
- P(d.$slots, "title", {
1403
- label: f,
1404
- key: v,
1405
- icon: g
1406
- }, () => [
1407
- T("div", da, [
1408
- y(l(L), { icon: g }, null, 8, ["icon"]),
1409
- T("span", pa, F(f), 1)
1410
- ])
1411
- ])
1412
- ]),
1413
- _: 3
1414
- }, 16, ["tree-data", "expanded-keys", "selected-keys", "loading"]));
1415
- }
1416
- }), el = /* @__PURE__ */ Q(ot, [["__scopeId", "data-v-cd4382b7"]]), fa = {
1417
- key: 0,
1418
- class: "absolute z-10 mt-[5px] mr-[10px] text-[#999] flex items-center"
1419
- }, va = /* @__PURE__ */ w({
1420
- inheritAttrs: !1,
1421
- __name: "index",
1422
- props: nt,
1423
- emits: ["change", "update:labels", "update:value"],
1424
- setup(r, { emit: a }) {
1425
- var f, g, C;
1426
- const t = r, e = J(), o = b({
1427
- ...t.url,
1428
- url: ((f = t.url) == null ? void 0 : f.url) || "",
1429
- fieldMap: t.fieldMap || ((g = t.url) == null ? void 0 : g.fieldMap),
1430
- params: t.params || ((C = t.url) == null ? void 0 : C.params),
1431
- loadingText: !1
1432
- }), n = A(), { editorCtrl: p, errInfo: u, labelText: i } = n, c = b(e.placeholder);
1433
- $(
1434
- () => o.value.loading,
1435
- (I) => {
1436
- I ? c.value = "" : c.value || (c.value = "请选择" + i.value);
1437
- },
1438
- { immediate: !0 }
1439
- );
1440
- const d = a;
1441
- n.inputEmit = d;
1442
- const s = b([]), v = (I, D) => {
1443
- if (!D || D.length === 0) {
1444
- d("update:labels", []), d("update:value", []);
1445
- return;
1446
- }
1447
- const x = D.map((R) => R.label);
1448
- d("update:labels", x), d(
1449
- "update:value",
1450
- D.map((R) => R.value)
1451
- ), u != null && u.value.errClass && p && V(p);
1452
- };
1453
- return z(() => {
1454
- o.value && !o.value.fieldMap && (o.value.fieldMap = {
1455
- title: "Name",
1456
- label: "Name",
1457
- value: "Id",
1458
- key: "Id"
1459
- }), Ne(t.autoload, t, s, n, o.value, o.value.params);
1460
- }), Ye(() => {
1461
- Re(t, n);
1462
- }), (I, D) => {
1463
- var x;
1464
- return m(), S("div", null, [
1465
- s.value.length ? k("", !0) : (m(), S("div", fa, [
1466
- y(l(it), { class: "text-[#555] mx-[5px] !ml-[10px] !w-4 !h-4" }),
1467
- D[0] || (D[0] = T("span", null, "数据加载中...", -1))
1468
- ])),
1469
- y(l(Ct), E({
1470
- options: s.value,
1471
- class: [(x = l(u)) == null ? void 0 : x.errClass],
1472
- "allow-clear": !0,
1473
- placeholder: s.value.length > 0 ? "请选择" + l(i) : "",
1474
- onChange: v
1475
- }, l(e)), null, 16, ["options", "class", "placeholder"])
1476
- ]);
1477
- };
1478
- }
1479
- }), tl = /* @__PURE__ */ Q(va, [["__scopeId", "data-v-8517d129"]]), al = /* @__PURE__ */ Q(ct, [["__scopeId", "data-v-602494f4"]]);
1480
- function se() {
1481
- return se = Object.assign ? Object.assign.bind() : function(r) {
1482
- for (var a = 1; a < arguments.length; a++) {
1483
- var t = arguments[a];
1484
- for (var e in t) ({}).hasOwnProperty.call(t, e) && (r[e] = t[e]);
1485
- }
1486
- return r;
1487
- }, se.apply(null, arguments);
1488
- }
1489
- const ma = {
1490
- locale: "zh_CN",
1491
- today: "今天",
1492
- now: "此刻",
1493
- backToToday: "返回今天",
1494
- ok: "确定",
1495
- timeSelect: "选择时间",
1496
- dateSelect: "选择日期",
1497
- weekSelect: "选择周",
1498
- clear: "清除",
1499
- month: "月",
1500
- year: "年",
1501
- previousMonth: "上个月 (翻页上键)",
1502
- nextMonth: "下个月 (翻页下键)",
1503
- monthSelect: "选择月份",
1504
- yearSelect: "选择年份",
1505
- decadeSelect: "选择年代",
1506
- yearFormat: "YYYY年",
1507
- dayFormat: "D日",
1508
- dateFormat: "YYYY年M月D日",
1509
- dateTimeFormat: "YYYY年M月D日 HH时mm分ss秒",
1510
- previousYear: "上一年 (Control键加左方向键)",
1511
- nextYear: "下一年 (Control键加右方向键)",
1512
- previousDecade: "上一年代",
1513
- nextDecade: "下一年代",
1514
- previousCentury: "上一世纪",
1515
- nextCentury: "下一世纪"
1516
- }, ha = {
1517
- placeholder: "请选择时间",
1518
- rangePlaceholder: ["开始时间", "结束时间"]
1519
- }, xe = {
1520
- lang: se({
1521
- placeholder: "请选择日期",
1522
- yearPlaceholder: "请选择年份",
1523
- quarterPlaceholder: "请选择季度",
1524
- monthPlaceholder: "请选择月份",
1525
- weekPlaceholder: "请选择周",
1526
- rangePlaceholder: ["开始日期", "结束日期"],
1527
- rangeYearPlaceholder: ["开始年份", "结束年份"],
1528
- rangeMonthPlaceholder: ["开始月份", "结束月份"],
1529
- rangeQuarterPlaceholder: ["开始季度", "结束季度"],
1530
- rangeWeekPlaceholder: ["开始周", "结束周"]
1531
- }, ma),
1532
- timePickerLocale: se({}, ha)
1533
- };
1534
- xe.lang.ok = "确定";
1535
- const ll = /* @__PURE__ */ w({
1536
- __name: "index",
1537
- props: {
1538
- valueFormat: {}
1539
- },
1540
- setup(r) {
1541
- const a = r, { editorCtrl: t, labelText: e, errInfo: o } = A(), n = () => {
1542
- o != null && o.value.errClass && t && V(t);
1543
- }, p = b(a.valueFormat ?? "YYYY-MM-DD");
1544
- return (u, i) => {
1545
- var c;
1546
- return m(), _(l(St), {
1547
- class: M([[((c = l(o)) == null ? void 0 : c.errClass) === "error" ? "error !border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""], "w-full"]),
1548
- placeholder: "请选择" + l(e),
1549
- locale: l(xe),
1550
- valueFormat: p.value,
1551
- onBlur: n
1552
- }, null, 8, ["class", "placeholder", "locale", "valueFormat"]);
1553
- };
1554
- }
1555
- }), ga = /* @__PURE__ */ w({
1556
- __name: "index",
1557
- props: {
1558
- value: {}
1559
- },
1560
- emits: ["update:value"],
1561
- setup(r, { emit: a }) {
1562
- const { editorCtrl: t, labelText: e, errInfo: o } = A(), n = () => {
1563
- o != null && o.value.errClass && t && V(t);
1564
- }, p = r, u = a, i = b(p.value);
1565
- $(
1566
- () => p.value,
1567
- (d) => {
1568
- i.value = d;
1569
- },
1570
- { immediate: !0 }
1571
- // 立即同步初始值
1572
- ), $(
1573
- () => i.value,
1574
- (d) => {
1575
- if (i.value === "") {
1576
- u("update:value", void 0);
1577
- return;
1578
- }
1579
- u("update:value", d);
1580
- }
1581
- );
1582
- const c = () => {
1583
- i.value === "" && (i.value = void 0);
1584
- };
1585
- return (d, s) => {
1586
- var v, f;
1587
- return m(), _(l(fe), E({
1588
- class: [
1589
- (v = l(o)) == null ? void 0 : v.errClass,
1590
- ((f = l(o)) == null ? void 0 : f.errClass) === "error" && !d.$slots.addonBefore && !d.$slots.addonAfter ? "!border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""
1591
- ],
1592
- value: i.value,
1593
- "onUpdate:value": s[0] || (s[0] = (g) => i.value = g),
1594
- autocomplete: "new-password",
1595
- "allow-clear": !0,
1596
- placeholder: "请输入" + l(e),
1597
- onBlur: n,
1598
- onChange: c
1599
- }, d.$attrs), Le({ _: 2 }, [
1600
- d.$slots.addonBefore ? {
1601
- name: "addonBefore",
1602
- fn: h(() => [
1603
- P(d.$slots, "addonBefore")
1604
- ]),
1605
- key: "0"
1606
- } : void 0,
1607
- d.$slots.addonAfter ? {
1608
- name: "addonAfter",
1609
- fn: h(() => [
1610
- P(d.$slots, "addonAfter")
1611
- ]),
1612
- key: "1"
1613
- } : void 0
1614
- ]), 1040, ["class", "value", "placeholder"]);
1615
- };
1616
- }
1617
- }), _a = /* @__PURE__ */ w({
1618
- __name: "inputIcon",
1619
- props: {
1620
- value: {}
1621
- },
1622
- emits: ["update:value"],
1623
- setup(r, { emit: a }) {
1624
- const t = r, e = a, o = b(void 0);
1625
- return $(
1626
- () => t.value,
1627
- (n) => {
1628
- o.value = n ?? void 0;
1629
- },
1630
- { immediate: !0 }
1631
- ), $(
1632
- () => o.value,
1633
- (n) => {
1634
- e("update:value", n);
1635
- }
1636
- ), (n, p) => (m(), _(ga, E({
1637
- class: ["w-[80%]"],
1638
- value: o.value,
1639
- "onUpdate:value": p[0] || (p[0] = (u) => o.value = u)
1640
- }, n.$attrs), {
1641
- addonBefore: h(() => [
1642
- y(l(L), {
1643
- class: "!w-4 !h-4",
1644
- icon: o.value
1645
- }, null, 8, ["icon"])
1646
- ]),
1647
- _: 1
1648
- }, 16, ["value"]));
1649
- }
1650
- }), rl = /* @__PURE__ */ Q(_a, [["__scopeId", "data-v-f7b3ed74"]]), sl = /* @__PURE__ */ w({
1651
- __name: "inputPassword",
1652
- setup(r) {
1653
- const { editorCtrl: a, labelText: t, errInfo: e } = A(), o = () => {
1654
- e != null && e.value.errClass && a && V(a);
1655
- };
1656
- return (n, p) => {
1657
- var u;
1658
- return m(), _(l($t), E({
1659
- class: ((u = l(e)) == null ? void 0 : u.errClass) === "error" ? ["error", "!border-red-300", "shadow-[0_0_3px_0px_#ff4d4f]"] : "",
1660
- "allow-clear": !0,
1661
- autocomplete: "new-password",
1662
- placeholder: "请输入" + l(t),
1663
- onBlur: o
1664
- }, n.$attrs), null, 16, ["class", "placeholder"]);
1665
- };
1666
- }
1667
- }), ol = /* @__PURE__ */ w({
1668
- __name: "inputNumber",
1669
- setup(r) {
1670
- const { editorCtrl: a, labelText: t, errInfo: e } = A(), o = () => {
1671
- e != null && e.value.errClass && a && V(a);
1672
- };
1673
- return (n, p) => {
1674
- var u;
1675
- return m(), _(l(Tt), E({
1676
- class: [[((u = l(e)) == null ? void 0 : u.errClass) === "error" ? "error !border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""], "w-[50%]"],
1677
- onBlur: o,
1678
- "allow-clear": !1,
1679
- placeholder: "请输入" + l(t)
1680
- }, n.$attrs), null, 16, ["class", "placeholder"]);
1681
- };
1682
- }
1683
- }), ba = { class: "flex flex-col gap-2" }, xa = { class: "w-[33%]" }, ya = { class: "w-[64%]" }, nl = /* @__PURE__ */ w({
1684
- __name: "index",
1685
- props: {
1686
- value: {},
1687
- labelHolder: {},
1688
- valueHolder: {}
1689
- },
1690
- emits: ["update:value"],
1691
- setup(r, { emit: a }) {
1692
- const t = r, e = a, o = b([]);
1693
- let n = !1;
1694
- const p = () => {
1695
- o.value = Object.entries(t.value).map(([d, s]) => ({
1696
- id: Date.now() + Math.random(),
1697
- field: d,
1698
- value: s
1699
- }));
1700
- };
1701
- $(() => t.value, () => {
1702
- n || p(), n = !1;
1703
- }, { immediate: !0 });
1704
- const u = () => {
1705
- const d = o.value.reduce((s, v) => (v.field && (s[v.field] = v.value), s), {});
1706
- n = !0, e("update:value", d);
1707
- }, i = () => {
1708
- o.value.push({
1709
- id: Date.now() + Math.random(),
1710
- field: "",
1711
- value: ""
1712
- });
1713
- }, c = () => {
1714
- u();
1715
- };
1716
- return (d, s) => (m(), S("div", ba, [
1717
- (m(!0), S(O, null, U(o.value, (v) => (m(), S("div", {
1718
- key: v.id,
1719
- class: "flex items-center gap-2"
1720
- }, [
1721
- T("div", xa, [
1722
- y(l(fe), {
1723
- value: v.field,
1724
- "onUpdate:value": (f) => v.field = f,
1725
- title: v.field,
1726
- class: "w-full",
1727
- placeholder: d.labelHolder || "配置名",
1728
- onInput: c
1729
- }, null, 8, ["value", "onUpdate:value", "title", "placeholder"])
1730
- ]),
1731
- s[0] || (s[0] = T("div", { class: "w-[3%]" }, " = ", -1)),
1732
- T("div", ya, [
1733
- y(l(fe), {
1734
- value: v.value,
1735
- "onUpdate:value": (f) => v.value = f,
1736
- placeholder: d.valueHolder,
1737
- onInput: c,
1738
- title: v.value
1739
- }, null, 8, ["value", "onUpdate:value", "placeholder", "title"])
1740
- ])
1741
- ]))), 128)),
1742
- y(l(je), {
1743
- onClick: i,
1744
- class: "mt-1 w-[80px] !text-[12px] text-[#666] bg-[#e6f7ff] border-[#b3e0ff] hover:bg-[#b3e0ff] hover:border-[#8abeff]",
1745
- size: "small"
1746
- }, {
1747
- default: h(() => s[1] || (s[1] = [
1748
- N(" 新增配置行 ")
1749
- ])),
1750
- _: 1,
1751
- __: [1]
1752
- })
1753
- ]));
1754
- }
1755
- }), ka = /* @__PURE__ */ Q(ut, [["__scopeId", "data-v-08c7f643"]]), il = /* @__PURE__ */ w({
1756
- __name: "radioStatus",
1757
- props: {
1758
- /**
1759
- * 数据源OPTIONS的key
1760
- */
1761
- dataKey: {
1762
- type: String,
1763
- default: "EnableDisable"
1764
- },
1765
- /**
1766
- * 是否显示全部选项
1767
- */
1768
- all: {
1769
- type: Boolean,
1770
- required: !1
1771
- },
1772
- /**
1773
- * 自定义全部选项的值
1774
- * 如果all为true,则显示全部选项
1775
- * 未设置allValue,则默认[0, 1]
1776
- */
1777
- allValue: {
1778
- type: [String, Number, Array],
1779
- required: !1
1780
- }
1781
- },
1782
- setup(r) {
1783
- const a = r, t = b(JSON.parse(JSON.stringify(Oe.getOptions(a.dataKey))));
1784
- return a.all === !0 && t.value.unshift({
1785
- label: "全部",
1786
- value: a.allValue || [0, 1]
1787
- }), (e, o) => (m(), _(ka, { data: t.value }, null, 8, ["data"]));
1788
- }
1789
- }), cl = /* @__PURE__ */ w({
1790
- __name: "index",
1791
- props: {
1792
- startDate: {},
1793
- endDate: {},
1794
- valueFormat: { default: "YYYY-MM-DD" }
1795
- },
1796
- emits: ["update:startDate", "update:endDate"],
1797
- setup(r, { emit: a }) {
1798
- const t = r, e = a, o = A(), { errInfo: n } = o, p = G(() => t.valueFormat), u = G(() => {
1799
- const c = t.startDate, d = t.endDate;
1800
- if (!(!c || !d))
1801
- try {
1802
- const s = de(c), v = de(d);
1803
- return !s.isValid() || !v.isValid() ? void 0 : [s, v];
1804
- } catch {
1805
- return;
1806
- }
1807
- }), i = (c, d) => {
1808
- if (!c || !d || d.length !== 2) {
1809
- e("update:startDate", null), e("update:endDate", null);
1810
- return;
1811
- }
1812
- e("update:startDate", d[0] || null), e("update:endDate", d[1] || null);
1813
- };
1814
- return (c, d) => {
1815
- var s;
1816
- return m(), _(l(It), {
1817
- class: M([((s = l(n)) == null ? void 0 : s.errClass) === "error" ? ["error", "!border-red-300", "shadow-[0_0_3px_0px_#ff4d4f]"] : "", "w-full"]),
1818
- locale: l(xe),
1819
- "value-format": p.value,
1820
- value: u.value,
1821
- onChange: i
1822
- }, null, 8, ["class", "locale", "value-format", "value"]);
1823
- };
1824
- }
1825
- }), ul = /* @__PURE__ */ Q(dt, [["__scopeId", "data-v-58735935"]]), dl = /* @__PURE__ */ w({
1826
- __name: "index",
1827
- setup(r) {
1828
- const { editorCtrl: a, labelText: t, errInfo: e } = A(), o = () => {
1829
- e != null && e.value.errClass && a && V(a);
1830
- };
1831
- return (n, p) => {
1832
- var u;
1833
- return m(), _(l(Dt), E({
1834
- class: ((u = l(e)) == null ? void 0 : u.errClass) === "error" ? ["error", "!border-red-300", "shadow-[0_0_3px_0px_#ff4d4f]"] : "",
1835
- "allow-clear": !0,
1836
- placeholder: "请输入" + l(t),
1837
- onBlur: o,
1838
- onKeyup: p[0] || (p[0] = Ce(Z(() => {
1839
- }, ["stop"]), ["enter", "native"])),
1840
- onKeydown: p[1] || (p[1] = Ce(Z(() => {
1841
- }, ["stop"]), ["enter", "native"]))
1842
- }, n.$attrs), null, 16, ["class", "placeholder"]);
1843
- };
1844
- }
1845
- }), wa = /* @__PURE__ */ w({
1846
- __name: "index",
1847
- props: {
1848
- autoload: { type: Boolean },
1849
- url: {},
1850
- params: {},
1851
- value: {}
1852
- },
1853
- emits: ["change", "update:value"],
1854
- setup(r, { emit: a }) {
1855
- const t = r, e = b({ ...t.url }), { editorCtrl: o, labelText: n, errInfo: p } = A(), u = a, i = b([]), c = b([]);
1856
- t.value && t.value.every((s) => {
1857
- c.value.push(s.toString());
1858
- }), $(
1859
- () => t.value,
1860
- (s) => {
1861
- s && (c.value = s);
1862
- }
1863
- );
1864
- const d = (s) => {
1865
- u("update:value", s), u("change", s), c.value = s, p != null && p.value.errClass && o && V(o);
1866
- };
1867
- return z(async () => {
1868
- if (e.value) {
1869
- const s = o == null ? void 0 : o.page;
1870
- if (e.value.api || (e.value.api = s == null ? void 0 : s.api), e.value.authorize === void 0 && (e.value.authorize = s == null ? void 0 : s.authorize), t.autoload) {
1871
- const v = await Be(o, {
1872
- urlKey: "list",
1873
- url: { ...e.value, url: e.value.url },
1874
- loadingText: !1,
1875
- params: t.params
1876
- });
1877
- i.value = (v == null ? void 0 : v.data) ?? [];
1878
- }
1879
- }
1880
- }), (s, v) => {
1881
- var f;
1882
- return m(), _(l(Pt), E({
1883
- class: ((f = l(p)) == null ? void 0 : f.errClass) === "error" ? ["error", "!border-red-300", "shadow-[0_0_3px_0px_#ff4d4f]"] : "",
1884
- placeholder: "请输入" + l(n),
1885
- targetKeys: c.value,
1886
- onChange: d
1887
- }, s.$attrs), {
1888
- children: h(({ direction: g, disabled: C, filteredItems: I, onItemSelectAll: D, onItemSelect: x, selectedKeys: R }) => [
1889
- P(s.$slots, "children", {
1890
- direction: g,
1891
- disabled: C,
1892
- filteredItems: I,
1893
- onItemSelectAll: D,
1894
- onItemSelect: x,
1895
- selectedKeys: R
1896
- })
1897
- ]),
1898
- _: 3
1899
- }, 16, ["class", "placeholder", "targetKeys"]);
1900
- };
1901
- }
1902
- }), pl = /* @__PURE__ */ w({
1903
- __name: "transferTable",
1904
- props: {
1905
- /**
1906
- * 是否自动加载
1907
- */
1908
- autoload: {
1909
- type: Boolean,
1910
- default: !0
1911
- },
1912
- /**
1913
- * 表格控制器
1914
- */
1915
- gridCtrl: {
1916
- type: Object,
1917
- required: !0
1918
- },
1919
- /**
1920
- * 选择结果
1921
- */
1922
- value: {
1923
- type: Array,
1924
- default: () => []
1925
- }
1926
- },
1927
- emits: ["update:value"],
1928
- setup(r, { emit: a }) {
1929
- const t = r, e = a, o = b(t.autoload), n = b(t.value), p = b(t.gridCtrl.primaryKey);
1930
- $(
1931
- () => n.value,
1932
- (c) => {
1933
- e("update:value", c);
1934
- }
1935
- ), $(
1936
- () => t.value,
1937
- (c) => {
1938
- c && (n.value = c);
1939
- }
1940
- ), t.gridCtrl.autoload = !1, t.gridCtrl.remotePage = !1, t.gridCtrl.selectable = b(!0), t.gridCtrl.buttons = b([]), t.gridCtrl.tools = [];
1941
- const u = ({ disabled: c, selectedKeys: d, onItemSelectAll: s, onItemSelect: v }) => ({
1942
- getCheckboxProps: (f) => ({
1943
- // 控制是否禁止
1944
- disabled: c || f.disabled
1945
- }),
1946
- onSelectAll(f, g) {
1947
- const C = g.filter((I) => !I.disabled).map(({ [p.value]: I }) => I);
1948
- s(C, f);
1949
- },
1950
- onSelect({ [p.value]: f }, g) {
1951
- v(f, g);
1952
- },
1953
- selectedRowKeys: d
1954
- }), i = b([]);
1955
- return z(async () => {
1956
- if (o.value) {
1957
- const c = await Be(t.gridCtrl, {
1958
- urlKey: "list",
1959
- url: { ...t.gridCtrl.gridUrl, url: t.gridCtrl.gridUrl.url },
1960
- params: t.gridCtrl.gridQuery,
1961
- loadingText: !1
1962
- });
1963
- i.value = (c == null ? void 0 : c.data) ?? [];
1964
- }
1965
- }), (c, d) => (m(), _(wa, E({
1966
- "data-source": i.value,
1967
- "row-key": (s) => s[p.value],
1968
- value: n.value,
1969
- "onUpdate:value": d[0] || (d[0] = (s) => n.value = s),
1970
- "list-style": {
1971
- width: "300px",
1972
- height: "500px"
1973
- },
1974
- "show-select-all": !1,
1975
- "show-search": !0,
1976
- "filter-option": (s, v) => {
1977
- for (const f of t.gridCtrl.columns.value)
1978
- if (v[f.dataIndex].toString().indexOf(s) !== -1)
1979
- return !0;
1980
- return !1;
1981
- }
1982
- }, c.$attrs), {
1983
- children: h(({ filteredItems: s, onItemSelectAll: v, onItemSelect: f, selectedKeys: g }) => [
1984
- y(l(Qe), {
1985
- columns: r.gridCtrl.columns.value,
1986
- "row-key": p.value,
1987
- "row-selection": u({
1988
- disabled: !1,
1989
- selectedKeys: g,
1990
- onItemSelectAll: v,
1991
- onItemSelect: f
1992
- }),
1993
- bordered: !1,
1994
- size: "small",
1995
- "data-source": s,
1996
- scroll: { x: 300 },
1997
- "custom-row": (C) => ({
1998
- onClick: () => {
1999
- const I = C[p.value];
2000
- f(I, !g.includes(I));
2001
- }
2002
- })
2003
- }, null, 8, ["columns", "row-key", "row-selection", "data-source", "custom-row"])
2004
- ]),
2005
- _: 1
2006
- }, 16, ["data-source", "row-key", "value", "filter-option"]));
2007
- }
2008
- }), Ca = /* @__PURE__ */ w({
2009
- __name: "index",
2010
- props: {
2011
- multiple: {
2012
- type: Boolean,
2013
- default: !1
2014
- },
2015
- treeCtrl: {
2016
- type: Object,
2017
- required: !0
2018
- },
2019
- value: {
2020
- type: [String, Number, Array],
2021
- required: !0
2022
- }
2023
- },
2024
- emits: ["change", "update:value"],
2025
- setup(r, { emit: a }) {
2026
- const t = r, e = t.treeCtrl, o = A(), { errInfo: n, labelText: p } = o, u = a;
2027
- o.inputEmit = u;
2028
- const i = b([]), c = b();
2029
- $(
2030
- () => t.value,
2031
- (s) => {
2032
- c.value = s ?? null;
2033
- },
2034
- { immediate: !0 }
2035
- ), $(
2036
- () => e.data.value,
2037
- (s) => {
2038
- s && (i.value = e.fieldMap ? re(e.fieldMap, s) : s);
2039
- },
2040
- { immediate: !0 }
2041
- );
2042
- const d = (s) => {
2043
- t.multiple ? c.value = s ?? [] : c.value = s ?? "", u("change", c.value), u("update:value", c.value);
2044
- };
2045
- return z(() => {
2046
- e.fieldMap || (e.fieldMap = {
2047
- label: "Name",
2048
- key: "Id",
2049
- value: "Id"
2050
- }), e.data.value ? i.value = e.fieldMap ? re(e.fieldMap, e.data.value) : e.data.value : t.treeCtrl.autoload && Me(t.treeCtrl);
2051
- }), (s, v) => {
2052
- var f;
2053
- return m(), _(l(Et), E({
2054
- class: [[(f = l(n)) == null ? void 0 : f.errClass], "w-full"],
2055
- "tree-line": "",
2056
- multiple: r.multiple,
2057
- "tree-default-expanded-keys": ["-"],
2058
- value: c.value,
2059
- "onUpdate:value": v[0] || (v[0] = (g) => c.value = g),
2060
- "tree-data": i.value,
2061
- placeholder: "请选择" + l(p),
2062
- "allow-clear": !0,
2063
- onChange: d
2064
- }, s.$attrs), null, 16, ["class", "multiple", "value", "tree-data", "placeholder"]);
2065
- };
2066
- }
2067
- }), fl = /* @__PURE__ */ Q(Ca, [["__scopeId", "data-v-f000d1d0"]]), Sa = { class: "relative h-[calc(100vh-80px)] overflow-y-auto" }, $a = { class: "flex w-full h-full min-h-full" }, Ta = {
2068
- key: 0,
2069
- class: "w-1/4 pr-4 min-h-full min-w-[170px] max-w-[200px]"
2070
- }, Ia = { class: "flex-1 h-full overflow-y-auto" }, vl = /* @__PURE__ */ w({
2071
- __name: "index",
2072
- props: {
2073
- left: { type: Boolean }
2074
- },
2075
- setup(r) {
2076
- const { useToken: a } = Ve, { token: t } = a();
2077
- return (e, o) => (m(), S("div", Sa, [
2078
- y(l(Ft), {
2079
- class: "m-[10px] p-[10px] h-[calc(100vh-100px)] !min-h-[calc(100vh-100px)]",
2080
- style: me({
2081
- backgroundColor: l(t).colorBgContainer
2082
- })
2083
- }, {
2084
- default: h(() => [
2085
- T("div", $a, [
2086
- e.left ? (m(), S("div", Ta, [
2087
- P(e.$slots, "left")
2088
- ])) : k("", !0),
2089
- T("div", Ia, [
2090
- P(e.$slots, "default")
2091
- ])
2092
- ])
2093
- ]),
2094
- _: 3
2095
- }, 8, ["style"])
2096
- ]));
2097
- }
2098
- });
2099
- export {
2100
- yr as AppIcon,
2101
- oe as AppRouter,
2102
- ar as AsyncUploader,
2103
- el as AutoComplete,
2104
- kr as Breadcrumb,
2105
- B as Button,
2106
- Ge as Cache,
2107
- Ht as CacheKeys,
2108
- tl as Cascader,
2109
- al as Checkbox,
2110
- vl as Content,
2111
- ll as DatePicker,
2112
- wr as Datetime,
2113
- Er as Dialog,
2114
- qa as Drawer,
2115
- gl as EventPrefix,
2116
- Wa as Form,
2117
- Ga as FormItem,
2118
- ja as Fullscreen,
2119
- Cr as Header,
2120
- Sr as HeaderExits,
2121
- Qt as Helper,
2122
- _l as ICONS_LIB,
2123
- $r as Icon,
2124
- sa as Icontool,
2125
- ga as Input,
2126
- rl as InputIcon,
2127
- ol as InputNumber,
2128
- sl as InputPassword,
2129
- Qa as LayoutIcon,
2130
- Tr as Menu,
2131
- Ir as MenuTabs,
2132
- Oe as OPTIONS,
2133
- nt as OptionCommProps,
2134
- Dr as ProjectIcon,
2135
- nl as PropEditor,
2136
- te as ProviderKeys,
2137
- ka as Radio,
2138
- il as RadioStatus,
2139
- cl as RangePicker,
2140
- Ja as Search,
2141
- ue as SearchItem,
2142
- ul as Select,
2143
- ua as Switch,
2144
- Xa as Table,
2145
- la as TableOperate,
2146
- dl as Textarea,
2147
- L as ToolIcon,
2148
- ca as Toolbar,
2149
- br as Tooltip,
2150
- wa as Transfer,
2151
- pl as TransferTable,
2152
- Za as Tree,
2153
- fl as TreeSelect,
2154
- pr as UploadList,
2155
- lr as UploadStatus,
2156
- mr as checkExcelDuplicates,
2157
- bl as checkIconsExpired,
2158
- it as circleLoading,
2159
- Ze as createFromIconfont,
2160
- xl as crumbs,
2161
- De as defaultTools,
2162
- yl as doDelete,
2163
- kl as doExecute,
2164
- Be as doQuery,
2165
- wl as doSave,
2166
- fr as donwloadFromMinio,
2167
- qe as downloadBlob,
2168
- Cl as eventBus,
2169
- Ha as exportResults,
2170
- Ka as exportSelectedRows,
2171
- Fe as filterColumns,
2172
- V as formValidate,
2173
- rr as getAppInfo,
2174
- Sl as getFormDetail,
2175
- sr as getHostInfo,
2176
- $l as getIconTransform,
2177
- Tl as getRecordDetail,
2178
- Il as getRuleTexts,
2179
- Dl as getSelectedLabels,
2180
- Pl as getSelectedValues,
2181
- or as getToken,
2182
- K as getToolByKey,
2183
- be as getToolGroup,
2184
- H as getToolStatus,
2185
- W as getToolVisible,
2186
- nr as getUserInfo,
2187
- ke as gridQueryFind,
2188
- rt as gridQueryList,
2189
- El as gridRowUpdate,
2190
- st as gridStatusUpdate,
2191
- Va as initCacheCheck,
2192
- Ya as initDirective,
2193
- Fl as initMenu,
2194
- Nl as initPageFactory,
2195
- Rl as initValidate,
2196
- X as isEmpty,
2197
- Ne as loadOption,
2198
- Ol as mergeColumns,
2199
- Vt as onColumnVisibleChanged,
2200
- ie as onFormClose,
2201
- Pe as onFormSave,
2202
- et as onFormSaveAs,
2203
- We as onFullscreenClick,
2204
- at as onGridRowDelete,
2205
- tt as onGridRowEdit,
2206
- Ml as onGridRowExpand,
2207
- Bl as onOptionChanged,
2208
- Mt as onReloadClick,
2209
- Y as onToolClicked,
2210
- lt as openNewForm,
2211
- Al as outFormDataFields,
2212
- zl as parseIcons,
2213
- ir as path,
2214
- Ul as pendingNavigation,
2215
- Ll as pinia,
2216
- hr as processExcelFile,
2217
- Me as queryTree,
2218
- Yl as resetRules,
2219
- Vl as routes,
2220
- Kl as saveForm,
2221
- Hl as setFormData,
2222
- jl as showBreadcrumb,
2223
- Re as unloadOption,
2224
- Ql as useAppInfo,
2225
- ql as useEditorFactory,
2226
- Ee as useFormItemFactory,
2227
- Wl as useGridFactory,
2228
- Gl as useHostInfo,
2229
- A as useInputFactory,
2230
- Jl as usePageFactory,
2231
- Xl as usePageInfo,
2232
- ve as useSettingInfo,
2233
- Kt as useToolFactory,
2234
- Zl as useTreeFactory,
2235
- Xe as useUserInfo,
2236
- cr as userLogin,
2237
- ur as userLogout,
2238
- er as validateData,
2239
- gr as validateExcel
2240
- };