xto-fronted 0.4.90 → 0.4.91

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 (120) hide show
  1. package/dist/assets/404-Bq0LY5Cd.js +1 -0
  2. package/dist/assets/404-Cw_4ZCL6.css +1 -0
  3. package/dist/assets/{index-BDgOY6Rp.js → index-7ZZxpSfk.js} +1 -1
  4. package/dist/assets/index-BJUe8VUp.js +1 -0
  5. package/dist/assets/{index-Bz0BgZQ1.js → index-BlOR_ICg.js} +1 -1
  6. package/dist/assets/index-BlRslYYI.css +1 -0
  7. package/dist/assets/index-BudArKxR.css +1 -0
  8. package/dist/assets/{index-CwRA10ac.js → index-BzbOWBCV.js} +1 -1
  9. package/dist/assets/index-CFhWBbxk.css +1 -0
  10. package/dist/assets/{index-CfpZmcpk.css → index-CH6aTfYg.css} +1 -1
  11. package/dist/assets/{index-BIoRANs0.js → index-CT5f37nN.js} +1 -1
  12. package/dist/assets/index-Ce-kjtEM.js +2 -0
  13. package/dist/assets/{index-t-2Y0KhA.css → index-Cpew6d-v.css} +1 -1
  14. package/dist/assets/index-DkkuYBgT.css +1 -0
  15. package/dist/assets/index-vfvEFrCH.css +1 -0
  16. package/dist/assets/{index-CwJSA85U.js → index-wVLLAoVp.js} +1 -1
  17. package/dist/assets/vendor-DZmPBJ9d.js +16 -0
  18. package/dist/assets/vue-vendor-DjmFuEnG.js +29 -0
  19. package/dist/assets/{xto-base-PwLGsxxb.js → xto-base-B5HYOo6i.js} +1 -1
  20. package/dist/assets/{xto-core-CtL4zKiV.js → xto-core-DZYp_YAR.js} +1 -1
  21. package/dist/assets/{xto-data-bCXQa7fT.js → xto-data-ogck6x_i.js} +1 -1
  22. package/dist/assets/{xto-feedback-CPydp0kn.js → xto-feedback-C0-6cAL6.js} +1 -1
  23. package/dist/assets/{xto-form-bywohdAf.js → xto-form-IDg_78Vf.js} +1 -1
  24. package/dist/assets/{xto-navigation-Bbdpine9.js → xto-navigation-CPYLzfu7.js} +1 -1
  25. package/dist/index.html +9 -9
  26. package/package.json +91 -91
  27. package/src/App.vue +48 -48
  28. package/src/assets/styles/_dark.scss +639 -572
  29. package/src/assets/styles/_root.scss +183 -183
  30. package/src/assets/styles/_variables.scss +69 -69
  31. package/src/assets/styles/index.scss +460 -460
  32. package/src/components/Layout/Sidebar.vue +198 -198
  33. package/src/components/Layout/TopMenu.vue +1170 -1170
  34. package/src/components/Layout/index.vue +192 -192
  35. package/src/directives/permission.ts +12 -3
  36. package/src/index.ts +100 -100
  37. package/src/router/layoutRoute.ts +59 -59
  38. package/src/stores/menu.ts +64 -3
  39. package/src/types/json-bigint.d.ts +18 -18
  40. package/src/utils/permission.ts +12 -5
  41. package/src/views/dashboard/index.vue +545 -545
  42. package/src/views/error/403.vue +251 -251
  43. package/src/views/error/404.vue +253 -253
  44. package/src/views/login/index.vue +586 -586
  45. package/src/views/system/menu/index.vue +690 -690
  46. package/src/views/system/role/index.vue +583 -583
  47. package/src/views/system/user/index.vue +655 -655
  48. package/dist/App.vue.d.ts +0 -2
  49. package/dist/api/auth.d.ts +0 -8
  50. package/dist/api/system.d.ts +0 -16
  51. package/dist/api/user.d.ts +0 -13
  52. package/dist/assets/404-C9Uh6Uu-.css +0 -1
  53. package/dist/assets/404-zjGLLssH.js +0 -1
  54. package/dist/assets/index-B5xc4gQB.css +0 -1
  55. package/dist/assets/index-CAdztNsv.css +0 -1
  56. package/dist/assets/index-CCXrcISf.css +0 -1
  57. package/dist/assets/index-D8NDxq9d.js +0 -1
  58. package/dist/assets/index-DEB6-Iv_.js +0 -2
  59. package/dist/assets/index-DM4Ezclc.css +0 -1
  60. package/dist/assets/index-DYv7nImj.css +0 -1
  61. package/dist/assets/vendor-CUVPinTg.js +0 -13
  62. package/dist/assets/vue-vendor-DeJXJVbN.js +0 -29
  63. package/dist/components/Layout/Footer.vue.d.ts +0 -2
  64. package/dist/components/Layout/Header.vue.d.ts +0 -5
  65. package/dist/components/Layout/MixTopMenu.vue.d.ts +0 -5
  66. package/dist/components/Layout/Sidebar.vue.d.ts +0 -11
  67. package/dist/components/Layout/SidebarMenuItem.vue.d.ts +0 -5
  68. package/dist/components/Layout/Tabs.vue.d.ts +0 -2
  69. package/dist/components/Layout/TopMenu.vue.d.ts +0 -5
  70. package/dist/components/Layout/index.vue.d.ts +0 -2
  71. package/dist/composables/useApp.d.ts +0 -29
  72. package/dist/composables/useAuth.d.ts +0 -6
  73. package/dist/composables/useForm.d.ts +0 -20
  74. package/dist/composables/useI18n.d.ts +0 -30
  75. package/dist/composables/useTable.d.ts +0 -29
  76. package/dist/directives/permission.d.ts +0 -4
  77. package/dist/enums/index.d.ts +0 -32
  78. package/dist/index-58aI1w0v.js +0 -515
  79. package/dist/index-A_B_Ap_A.js +0 -4240
  80. package/dist/index-BAmYUT0G.js +0 -189
  81. package/dist/index-BRvi9qW-.js +0 -515
  82. package/dist/index-BVGW4DDQ.js +0 -189
  83. package/dist/index-Bmf0YbVq.js +0 -189
  84. package/dist/index-C2-a5KSQ.js +0 -4233
  85. package/dist/index-CeZ0CSSs.js +0 -641
  86. package/dist/index-D25KzR0I.js +0 -479
  87. package/dist/index-DEYOivza.js +0 -641
  88. package/dist/index-DReodgBw.js +0 -4233
  89. package/dist/index-DjERNRXX.js +0 -515
  90. package/dist/index-LSdsO2Ox.js +0 -479
  91. package/dist/index-gBlRG4kk.js +0 -479
  92. package/dist/index-xWU3J3OH.js +0 -641
  93. package/dist/index.d.ts +0 -59
  94. package/dist/index.es.js +0 -95
  95. package/dist/index.umd.js +0 -8
  96. package/dist/main.d.ts +0 -0
  97. package/dist/router/dynamicRoutes.d.ts +0 -30
  98. package/dist/router/guards.d.ts +0 -17
  99. package/dist/router/index.d.ts +0 -6
  100. package/dist/router/layoutRoute.d.ts +0 -22
  101. package/dist/router/staticRoutes.d.ts +0 -2
  102. package/dist/stores/app.d.ts +0 -93
  103. package/dist/stores/auth.d.ts +0 -41
  104. package/dist/stores/index.d.ts +0 -10
  105. package/dist/stores/locale.d.ts +0 -42
  106. package/dist/stores/menu.d.ts +0 -77
  107. package/dist/stores/user.d.ts +0 -92
  108. package/dist/style.css +0 -1
  109. package/dist/utils/auth.d.ts +0 -27
  110. package/dist/utils/config.d.ts +0 -30
  111. package/dist/utils/permission.d.ts +0 -18
  112. package/dist/utils/request.d.ts +0 -29
  113. package/dist/utils/storage.d.ts +0 -24
  114. package/dist/views/dashboard/index.vue.d.ts +0 -2
  115. package/dist/views/error/403.vue.d.ts +0 -2
  116. package/dist/views/error/404.vue.d.ts +0 -2
  117. package/dist/views/login/index.vue.d.ts +0 -4
  118. package/dist/views/system/menu/index.vue.d.ts +0 -4
  119. package/dist/views/system/role/index.vue.d.ts +0 -4
  120. package/dist/views/system/user/index.vue.d.ts +0 -4
@@ -1,4240 +0,0 @@
1
- import { ref as P, computed as j, watch as Xe, defineComponent as Ae, resolveComponent as Pt, openBlock as w, createBlock as ce, unref as y, withCtx as X, createElementBlock as E, Fragment as he, renderList as ge, createElementVNode as s, toDisplayString as q, createCommentVNode as le, normalizeClass as _e, withDirectives as lt, vShow as Qt, createVNode as z, createTextVNode as De, onMounted as _t, onUnmounted as wt, vModelText as yt, Transition as Ve, withModifiers as it, normalizeStyle as Ye, reactive as kt, createStaticVNode as nt, withKeys as es } from "vue";
2
- import { defineStore as Je } from "pinia";
3
- import { useRoute as qe, useRouter as ze, createRouter as bt, createWebHistory as xt } from "vue-router";
4
- import { SubMenu as gt, MenuItem as He, Menu as Ct, Tabs as ts, TabPane as ss } from "@xto/navigation";
5
- import { Icon as Z, Button as je } from "@xto/base";
6
- import { Drawer as Nt, Message as Ie } from "@xto/feedback";
7
- import { Form as ns, FormItem as mt, Input as Ot, Checkbox as os } from "@xto/form";
8
- import rs from "axios";
9
- import { createLocaleProvider as as, getSupportedLocales as ls, useLocale as is } from "@xto/core/locale";
10
- const ot = P(""), rt = P(""), at = P("");
11
- function cs(r) {
12
- r.appId && (ot.value = r.appId), r.clientId && (rt.value = r.clientId), r.apiBaseUrl && (at.value = r.apiBaseUrl);
13
- }
14
- function ct() {
15
- if (ot.value)
16
- return ot.value;
17
- try {
18
- return "";
19
- } catch {
20
- return "";
21
- }
22
- }
23
- function zt() {
24
- if (rt.value)
25
- return rt.value;
26
- try {
27
- return "";
28
- } catch {
29
- return "";
30
- }
31
- }
32
- function us() {
33
- if (at.value)
34
- return at.value;
35
- try {
36
- return "";
37
- } catch {
38
- return "";
39
- }
40
- }
41
- const Fa = {
42
- appId: ot,
43
- clientId: rt,
44
- apiBaseUrl: at
45
- }, Ke = "xto_", Rt = (r) => ({
46
- get(d) {
47
- const v = r.getItem(Ke + d);
48
- if (!v) return null;
49
- try {
50
- return JSON.parse(v);
51
- } catch {
52
- return v;
53
- }
54
- },
55
- set(d, v) {
56
- if (v == null) {
57
- r.removeItem(Ke + d);
58
- return;
59
- }
60
- const p = typeof v == "string" ? v : JSON.stringify(v);
61
- r.setItem(Ke + d, p);
62
- },
63
- remove(d) {
64
- r.removeItem(Ke + d);
65
- },
66
- clear() {
67
- Object.keys(r).forEach((v) => {
68
- v.startsWith(Ke) && r.removeItem(v);
69
- });
70
- }
71
- }), et = Rt(window.localStorage), tt = Rt(window.sessionStorage), K = {
72
- get: et.get,
73
- set: et.set,
74
- remove: et.remove,
75
- clear: et.clear
76
- }, Va = {
77
- get: tt.get,
78
- set: tt.set,
79
- remove: tt.remove,
80
- clear: tt.clear
81
- }, Re = Je("app", () => {
82
- const r = P(K.get("appName") || "XTO App"), d = P(K.get("indexPath") || "/dashboard"), v = P(K.get("isDark") || !1), p = P(K.get("theme") || "light"), m = P(K.get("layout") || "sidebar"), b = P(K.get("isCollapsed") || !1), A = P(K.get("showTabs") ?? !0), g = P(K.get("showFooter") ?? !0), S = P(K.get("showBreadcrumb") ?? !0), _ = P(K.get("primaryColor") || "#409eff"), x = P([]), M = P([]), C = j(() => v.value ? "dark" : "light"), G = (D) => {
83
- r.value = D, K.set("appName", D);
84
- }, Q = (D) => {
85
- d.value = D, K.set("indexPath", D);
86
- }, O = () => {
87
- v.value = !v.value, p.value = v.value ? "dark" : "light", V();
88
- }, T = (D) => {
89
- p.value = D, v.value = D === "dark", V();
90
- }, V = () => {
91
- const D = document.documentElement;
92
- v.value ? D.classList.add("dark") : D.classList.remove("dark"), K.set("isDark", v.value), K.set("theme", p.value);
93
- }, L = () => {
94
- b.value = !b.value, K.set("isCollapsed", b.value);
95
- }, W = (D) => {
96
- m.value = D, K.set("layout", D);
97
- }, Y = () => {
98
- A.value = !A.value, K.set("showTabs", A.value);
99
- }, oe = () => {
100
- g.value = !g.value, K.set("showFooter", g.value);
101
- }, U = () => {
102
- S.value = !S.value, K.set("showBreadcrumb", S.value);
103
- }, I = (D) => {
104
- _.value = D, document.documentElement.style.setProperty("--color-primary", D), K.set("primaryColor", D);
105
- }, J = (D) => {
106
- x.value.includes(D) || x.value.push(D);
107
- }, ee = (D) => {
108
- const ie = x.value.indexOf(D);
109
- ie > -1 && x.value.splice(ie, 1);
110
- }, $ = () => {
111
- x.value = [];
112
- }, re = (D) => {
113
- M.value = D;
114
- }, te = () => {
115
- V(), _.value !== "#409eff" && document.documentElement.style.setProperty("--color-primary", _.value);
116
- };
117
- return Xe(v, V), {
118
- appName: r,
119
- indexPath: d,
120
- isDark: v,
121
- theme: p,
122
- layout: m,
123
- isCollapsed: b,
124
- showTabs: A,
125
- showFooter: g,
126
- showBreadcrumb: S,
127
- primaryColor: _,
128
- cachedViews: x,
129
- mixSubMenus: M,
130
- themeClass: C,
131
- setAppName: G,
132
- setIndexPath: Q,
133
- toggleTheme: O,
134
- toggleCollapse: L,
135
- setTheme: T,
136
- setLayout: W,
137
- toggleTabs: Y,
138
- toggleFooter: oe,
139
- toggleBreadcrumb: U,
140
- setPrimaryColor: I,
141
- addCachedView: J,
142
- removeCachedView: ee,
143
- clearCachedViews: $,
144
- setMixSubMenus: re,
145
- initTheme: te
146
- };
147
- }), ht = "menu_list", ds = {
148
- menuCode: "home",
149
- menuName: "首页",
150
- menuUrl: "/dashboard",
151
- icon: "home",
152
- closable: !1,
153
- isDefault: !1,
154
- isOut: !1
155
- }, Fe = Je("menu", () => {
156
- const r = P(K.get(ht) || []), d = j(() => r.value.length > 0);
157
- return {
158
- menuList: r,
159
- hasMenu: d,
160
- setMenuList: (m) => {
161
- r.value = [ds, ...m], K.set(ht, r.value);
162
- },
163
- clearMenu: () => {
164
- r.value = [], K.remove(ht);
165
- }
166
- };
167
- }), Et = "/vite.svg", vt = "user_info", $e = Je("user", () => {
168
- const r = P(K.get(vt)), d = j(() => !!r.value), v = j(() => {
169
- var M;
170
- return ((M = r.value) == null ? void 0 : M.userId) || "";
171
- }), p = j(() => {
172
- var M;
173
- return ((M = r.value) == null ? void 0 : M.userName) || "";
174
- }), m = j(() => {
175
- var M;
176
- return ((M = r.value) == null ? void 0 : M.departmentName) || "";
177
- }), b = j(() => {
178
- var M;
179
- return ((M = r.value) == null ? void 0 : M.email) || "";
180
- }), A = j(() => {
181
- var M;
182
- return ((M = r.value) == null ? void 0 : M.mobilePhone) || "";
183
- }), g = j(() => {
184
- var M;
185
- return ((M = r.value) == null ? void 0 : M.positionName) || "";
186
- }), S = j(() => {
187
- var M;
188
- return ((M = r.value) == null ? void 0 : M.avatar) || "";
189
- });
190
- return {
191
- userInfo: r,
192
- isLoggedIn: d,
193
- userId: v,
194
- userName: p,
195
- departmentName: m,
196
- email: b,
197
- mobilePhone: A,
198
- positionName: g,
199
- avatar: S,
200
- setUserInfo: (M) => {
201
- r.value = M, K.set(vt, M);
202
- },
203
- clearUserInfo: () => {
204
- r.value = null, K.remove(vt);
205
- }
206
- };
207
- }), $t = "token", St = "token_type", Mt = "refresh_token", Lt = "expires_time", It = "refresh_time", At = "code", ut = () => K.get($t), fs = (r) => {
208
- K.set($t, r);
209
- }, ps = () => K.get(St), ms = (r) => {
210
- K.set(St, r);
211
- }, ja = () => K.get(Mt), hs = (r) => {
212
- K.set(Mt, r);
213
- }, vs = () => K.get(Lt), gs = (r) => {
214
- K.set(Lt, r);
215
- }, qa = () => K.get(It), _s = (r) => {
216
- K.set(It, r);
217
- }, Ga = () => K.get(At), ws = (r) => {
218
- K.set(At, r);
219
- }, Dt = (r) => {
220
- fs(r.access_token), ms(r.token_type || "Bearer"), hs(r.refresh_token), gs(r.expires_time), _s(r.refresh_time), r.code && ws(r.code);
221
- }, We = () => {
222
- K.remove($t), K.remove(St), K.remove(Mt), K.remove(Lt), K.remove(It), K.remove(At);
223
- }, ys = () => {
224
- const r = vs();
225
- return r ? Date.now() > r : !0;
226
- }, Ft = () => !!ut() && !ys(), Ze = Je("auth", () => {
227
- const r = P(ut()), d = j(() => Ft()), v = P(""), p = P(""), m = P(""), b = P("/login");
228
- return {
229
- token: r,
230
- isLoggedIn: d,
231
- baseUrl: v,
232
- appId: p,
233
- clientId: m,
234
- loginPath: b,
235
- login: (C) => {
236
- r.value = C.access_token, Dt(C);
237
- },
238
- logout: () => {
239
- r.value = null, We();
240
- },
241
- setBaseUrl: (C) => {
242
- v.value = C;
243
- },
244
- setAppId: (C) => {
245
- p.value = C;
246
- },
247
- setClientId: (C) => {
248
- m.value = C;
249
- },
250
- setLoginPath: (C) => {
251
- b.value = C;
252
- }
253
- };
254
- }), ks = { class: "menu-item__content" }, bs = { class: "menu-item__icon" }, xs = {
255
- key: 1,
256
- class: "menu-item__char"
257
- }, Cs = { class: "menu-item__text" }, Ns = { class: "menu-item__content" }, Es = {
258
- key: 0,
259
- class: "menu-item__icon"
260
- }, $s = {
261
- key: 1,
262
- class: "menu-item__char"
263
- }, Ss = { class: "menu-item__text" }, Ms = /* @__PURE__ */ Ae({
264
- __name: "SidebarMenuItem",
265
- props: {
266
- menu: {}
267
- },
268
- setup(r) {
269
- const d = r, v = /* @__PURE__ */ new Set([
270
- "arrow-up",
271
- "arrow-down",
272
- "arrow-left",
273
- "arrow-right",
274
- "caret-down",
275
- "caret-right",
276
- "plus",
277
- "minus",
278
- "close",
279
- "check",
280
- "edit",
281
- "delete",
282
- "copy",
283
- "download",
284
- "upload",
285
- "refresh",
286
- "search",
287
- "filter",
288
- "more",
289
- "setting",
290
- "share",
291
- "loading",
292
- "info",
293
- "success",
294
- "warning",
295
- "error",
296
- "question",
297
- "user",
298
- "user-add",
299
- "user-group",
300
- "logout",
301
- "login",
302
- "file",
303
- "folder",
304
- "folder-open",
305
- "document",
306
- "image",
307
- "video",
308
- "music",
309
- "camera",
310
- "mail",
311
- "phone",
312
- "chat",
313
- "bell",
314
- "message",
315
- "eye",
316
- "eye-off",
317
- "calendar",
318
- "clock",
319
- "history",
320
- "timer",
321
- "location",
322
- "map",
323
- "globe",
324
- "star",
325
- "heart",
326
- "thumb-up",
327
- "link",
328
- "external-link",
329
- "lock",
330
- "unlock",
331
- "key",
332
- "home",
333
- "menu",
334
- "menu-fold",
335
- "menu-unfold",
336
- "sidebar-fold",
337
- "sidebar-expand",
338
- "sidebar-left",
339
- "dashboard",
340
- "chart",
341
- "chart-pie",
342
- "chart-line",
343
- "report",
344
- "analytics",
345
- "system",
346
- "permission",
347
- "role",
348
- "user-manage",
349
- "log",
350
- "notification",
351
- "app",
352
- "list",
353
- "grid",
354
- "fullscreen",
355
- "fullscreen-exit",
356
- "zoom-in",
357
- "zoom-out",
358
- "print",
359
- "bookmark",
360
- "tag",
361
- "code",
362
- "terminal",
363
- "database",
364
- "server",
365
- "cloud",
366
- "gift",
367
- "moon",
368
- "sun",
369
- "theme",
370
- "skin"
371
- ]), p = (g) => {
372
- if (!g || g === "") return "";
373
- if (g.startsWith("tineco-icon-")) {
374
- const _ = g.replace("tineco-icon-", "");
375
- return {
376
- home: "home",
377
- dashboard: "dashboard",
378
- system: "system",
379
- user: "user",
380
- role: "role",
381
- menu: "list",
382
- setting: "setting",
383
- file: "file",
384
- folder: "folder",
385
- chart: "chart",
386
- report: "report",
387
- analytics: "analytics"
388
- }[_] || _;
389
- }
390
- return {
391
- dashboard: "dashboard",
392
- system: "system",
393
- user: "user",
394
- role: "role",
395
- menu: "list",
396
- setting: "setting",
397
- home: "home",
398
- chart: "chart",
399
- report: "report",
400
- analytics: "analytics",
401
- permission: "permission",
402
- log: "log",
403
- notification: "notification",
404
- app: "app",
405
- list: "list",
406
- grid: "grid"
407
- }[g] || g;
408
- }, m = (g) => g ? g.charAt(0) : "", b = (g) => v.has(g), A = j(() => d.menu.children && d.menu.children.length > 0);
409
- return (g, S) => {
410
- const _ = Pt("SidebarMenuItem", !0);
411
- return A.value ? (w(), ce(y(gt), {
412
- key: 0,
413
- index: r.menu.menuUrl
414
- }, {
415
- title: X(() => [
416
- s("span", ks, [
417
- s("span", bs, [
418
- b(p(r.menu.icon)) ? (w(), ce(y(Z), {
419
- key: 0,
420
- name: p(r.menu.icon),
421
- size: 16
422
- }, null, 8, ["name"])) : (w(), E("span", xs, q(m(r.menu.menuName)), 1))
423
- ]),
424
- s("span", Cs, q(r.menu.menuName), 1)
425
- ])
426
- ]),
427
- default: X(() => [
428
- (w(!0), E(he, null, ge(r.menu.children, (x) => (w(), ce(_, {
429
- key: x.menuUrl,
430
- menu: x
431
- }, null, 8, ["menu"]))), 128))
432
- ]),
433
- _: 1
434
- }, 8, ["index"])) : (w(), ce(y(He), {
435
- key: 1,
436
- index: r.menu.menuUrl
437
- }, {
438
- default: X(() => [
439
- s("span", Ns, [
440
- r.menu.menuName !== "首页" ? (w(), E("span", Es, [
441
- b(p(r.menu.icon)) ? (w(), ce(y(Z), {
442
- key: 0,
443
- name: p(r.menu.icon),
444
- size: 16
445
- }, null, 8, ["name"])) : (w(), E("span", $s, q(m(r.menu.menuName)), 1))
446
- ])) : le("", !0),
447
- s("span", Ss, q(r.menu.menuName), 1)
448
- ])
449
- ]),
450
- _: 1
451
- }, 8, ["index"]));
452
- };
453
- }
454
- }), Se = (r, d) => {
455
- const v = r.__vccOpts || r;
456
- for (const [p, m] of d)
457
- v[p] = m;
458
- return v;
459
- }, Ls = /* @__PURE__ */ Se(Ms, [["__scopeId", "data-v-d160ae6a"]]), Is = {
460
- key: 0,
461
- class: "sidebar__logo"
462
- }, As = {
463
- key: 1,
464
- class: "sidebar__user"
465
- }, Ts = { class: "sidebar__user-info" }, Os = { class: "sidebar__user-name" }, Us = { class: "sidebar__user-role" }, Ut = "sidebar_opened_menus", Bs = /* @__PURE__ */ Ae({
466
- __name: "Sidebar",
467
- props: {
468
- menuList: { default: () => [] },
469
- showLogo: { type: Boolean, default: !0 },
470
- showUser: { type: Boolean, default: !0 }
471
- },
472
- setup(r) {
473
- const d = r, v = qe(), p = ze(), m = Fe(), b = $e(), A = Ze(), g = Re(), S = j(() => d.menuList.length > 0 ? d.menuList : m.menuList), _ = j(() => g.isCollapsed), x = j(() => v.path), M = P(K.get(Ut) || []);
474
- Xe(M, (L) => {
475
- K.set(Ut, L);
476
- }, { deep: !0 });
477
- const C = (L, W, Y = []) => {
478
- var oe;
479
- for (const U of L) {
480
- if (W === U.menuUrl || W.startsWith(U.menuUrl + "/"))
481
- return [...Y, U.menuUrl];
482
- if ((oe = U.children) != null && oe.length) {
483
- const I = C(U.children, W, [...Y, U.menuUrl]);
484
- if (I) return I;
485
- }
486
- }
487
- return null;
488
- };
489
- Xe([() => v.path, S], ([L, W]) => {
490
- if (W.length > 0) {
491
- const Y = C(W, L);
492
- Y ? M.value = Y.slice(0, -1) : M.value = [];
493
- }
494
- }, { immediate: !0 });
495
- const G = j(() => g.isDark ? "#1d1e1f" : "#fff"), Q = j(() => g.isDark ? "#cfd3dc" : "#303133"), O = j(() => "#409eff"), T = (L) => {
496
- L && L !== v.path && p.push(L);
497
- }, V = () => {
498
- A.logout(), b.clearUserInfo(), m.clearMenu(), p.push("/login");
499
- };
500
- return (L, W) => (w(), E("div", {
501
- class: _e(["sidebar", { "sidebar--collapsed": _.value }])
502
- }, [
503
- d.showLogo ? (w(), E("div", Is, [
504
- W[2] || (W[2] = s("img", {
505
- src: Et,
506
- alt: "Logo",
507
- class: "sidebar__logo-img"
508
- }, null, -1)),
509
- lt(s("span", { class: "sidebar__logo-text" }, q(y(g).appName), 513), [
510
- [Qt, !_.value]
511
- ])
512
- ])) : le("", !0),
513
- z(y(Ct), {
514
- modelValue: x.value,
515
- "onUpdate:modelValue": W[0] || (W[0] = (Y) => x.value = Y),
516
- openeds: M.value,
517
- "onUpdate:openeds": W[1] || (W[1] = (Y) => M.value = Y),
518
- mode: "vertical",
519
- collapse: _.value,
520
- "collapse-transition": !1,
521
- "background-color": G.value,
522
- "text-color": Q.value,
523
- "active-text-color": O.value,
524
- class: "sidebar__menu",
525
- onSelect: T
526
- }, {
527
- default: X(() => [
528
- (w(!0), E(he, null, ge(S.value, (Y) => (w(), ce(Ls, {
529
- key: Y.menuUrl,
530
- menu: Y
531
- }, null, 8, ["menu"]))), 128))
532
- ]),
533
- _: 1
534
- }, 8, ["modelValue", "openeds", "collapse", "background-color", "text-color", "active-text-color"]),
535
- d.showUser && !_.value ? (w(), E("div", As, [
536
- s("div", Ts, [
537
- s("span", Os, q(y(b).userName), 1),
538
- s("span", Us, q(y(b).departmentName), 1)
539
- ]),
540
- z(y(je), {
541
- type: "text",
542
- size: "small",
543
- onClick: V
544
- }, {
545
- default: X(() => [...W[3] || (W[3] = [
546
- De("退出", -1)
547
- ])]),
548
- _: 1
549
- })
550
- ])) : le("", !0)
551
- ], 2));
552
- }
553
- }), Bt = /* @__PURE__ */ Se(Bs, [["__scopeId", "data-v-3c79a9c4"]]), Ps = { class: "header" }, zs = { class: "header__left" }, Rs = {
554
- key: 0,
555
- class: "header__breadcrumb"
556
- }, Ds = {
557
- key: 0,
558
- class: "breadcrumb-separator"
559
- }, Fs = { class: "header__right" }, Vs = {
560
- key: 0,
561
- class: "header__search-dropdown"
562
- }, js = {
563
- key: 0,
564
- class: "header__search-results"
565
- }, qs = ["onClick"], Gs = {
566
- key: 0,
567
- class: "header__search-icon"
568
- }, Ks = {
569
- key: 1,
570
- class: "header__search-char"
571
- }, Hs = { class: "header__search-item-title" }, Ws = {
572
- key: 1,
573
- class: "header__search-item-parent"
574
- }, Xs = {
575
- key: 1,
576
- class: "header__search-empty"
577
- }, Ys = ["title"], Js = { class: "header__avatar" }, Zs = { class: "header__user-name" }, Qs = {
578
- key: 0,
579
- class: "header__dropdown"
580
- }, en = { class: "header__dropdown-header" }, tn = { class: "header__dropdown-avatar" }, sn = { class: "header__dropdown-info" }, nn = { class: "header__dropdown-name" }, on = { class: "header__dropdown-role" }, rn = { class: "header__dropdown-menu" }, an = { class: "settings-drawer" }, ln = { class: "settings-section" }, cn = { class: "settings-layout-options" }, un = ["onClick"], dn = { class: "layout-option__preview" }, fn = {
581
- key: 0,
582
- class: "layout-preview-sidebar"
583
- }, pn = {
584
- key: 1,
585
- class: "layout-preview-top"
586
- }, mn = {
587
- key: 2,
588
- class: "layout-preview-mix"
589
- }, hn = { class: "layout-option__label" }, vn = { class: "settings-section" }, gn = { class: "settings-color-options" }, _n = ["title", "onClick"], wn = { class: "settings-section" }, yn = { class: "settings-switch-list" }, kn = { class: "settings-switch-item" }, bn = { class: "settings-switch-item" }, xn = /* @__PURE__ */ Ae({
590
- __name: "Header",
591
- setup(r) {
592
- const d = qe(), v = ze(), p = Re(), m = $e(), b = Ze(), A = Fe(), g = P(!1), S = P(!1), _ = P(null), x = P(!1), M = P(!1), C = P(""), G = P(null), Q = P(!1), O = [
593
- { value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
594
- { value: "top", label: "顶部菜单", icon: "menu" },
595
- { value: "mix", label: "混合菜单", icon: "grid" }
596
- ], T = [
597
- { value: "#409eff", label: "默认蓝" },
598
- { value: "#1890ff", label: "科技蓝" },
599
- { value: "#52c41a", label: "极光绿" },
600
- { value: "#faad14", label: "日落橙" },
601
- { value: "#f5222d", label: "薄暮红" },
602
- { value: "#722ed1", label: "酱紫" }
603
- ], V = j(() => d.matched.filter((B) => B.meta && B.meta.title).map((B) => ({
604
- title: B.meta.title,
605
- path: B.path
606
- }))), L = (H, B = "") => {
607
- const t = [];
608
- return H.forEach((e) => {
609
- e.children && e.children.length > 0 ? t.push(...L(e.children, e.menuName)) : t.push({ ...e, parentTitle: B, title: e.menuName, path: e.menuUrl });
610
- }), t;
611
- }, W = /* @__PURE__ */ new Set([
612
- "arrow-up",
613
- "arrow-down",
614
- "arrow-left",
615
- "arrow-right",
616
- "caret-down",
617
- "caret-right",
618
- "plus",
619
- "minus",
620
- "close",
621
- "check",
622
- "edit",
623
- "delete",
624
- "copy",
625
- "download",
626
- "upload",
627
- "refresh",
628
- "search",
629
- "filter",
630
- "more",
631
- "setting",
632
- "share",
633
- "loading",
634
- "info",
635
- "success",
636
- "warning",
637
- "error",
638
- "question",
639
- "user",
640
- "user-add",
641
- "user-group",
642
- "logout",
643
- "login",
644
- "file",
645
- "folder",
646
- "folder-open",
647
- "document",
648
- "image",
649
- "video",
650
- "music",
651
- "camera",
652
- "mail",
653
- "phone",
654
- "chat",
655
- "bell",
656
- "message",
657
- "eye",
658
- "eye-off",
659
- "calendar",
660
- "clock",
661
- "history",
662
- "timer",
663
- "location",
664
- "map",
665
- "globe",
666
- "star",
667
- "heart",
668
- "thumb-up",
669
- "link",
670
- "external-link",
671
- "lock",
672
- "unlock",
673
- "key",
674
- "home",
675
- "menu",
676
- "menu-fold",
677
- "menu-unfold",
678
- "sidebar-fold",
679
- "sidebar-expand",
680
- "sidebar-left",
681
- "dashboard",
682
- "chart",
683
- "chart-pie",
684
- "chart-line",
685
- "report",
686
- "analytics",
687
- "system",
688
- "permission",
689
- "role",
690
- "user-manage",
691
- "log",
692
- "notification",
693
- "app",
694
- "list",
695
- "grid",
696
- "fullscreen",
697
- "fullscreen-exit",
698
- "zoom-in",
699
- "zoom-out",
700
- "print",
701
- "bookmark",
702
- "tag",
703
- "code",
704
- "terminal",
705
- "database",
706
- "server",
707
- "cloud",
708
- "gift",
709
- "moon",
710
- "sun",
711
- "theme",
712
- "skin"
713
- ]), Y = (H) => {
714
- if (!H || H === "") return "";
715
- if (H.startsWith("tineco-icon-")) {
716
- const t = H.replace("tineco-icon-", "");
717
- return {
718
- home: "home",
719
- dashboard: "dashboard",
720
- system: "system",
721
- user: "user",
722
- role: "role",
723
- menu: "list",
724
- setting: "setting",
725
- file: "file",
726
- folder: "folder",
727
- chart: "chart",
728
- report: "report",
729
- analytics: "analytics"
730
- }[t] || t;
731
- }
732
- return {
733
- dashboard: "dashboard",
734
- system: "system",
735
- user: "user",
736
- role: "role",
737
- menu: "list",
738
- setting: "setting",
739
- home: "home",
740
- chart: "chart",
741
- report: "report",
742
- analytics: "analytics",
743
- permission: "permission",
744
- log: "log",
745
- notification: "notification",
746
- app: "app",
747
- list: "list",
748
- grid: "grid"
749
- }[H] || H;
750
- }, oe = (H) => H ? H.charAt(0) : "", U = (H) => W.has(H), I = j(() => C.value.trim() ? L(A.menuList).filter(
751
- (B) => B.title.toLowerCase().includes(C.value.toLowerCase())
752
- ) : []), J = j(() => p.layout), ee = () => {
753
- p.toggleCollapse();
754
- }, $ = () => {
755
- p.toggleTheme();
756
- }, re = () => {
757
- S.value = !0;
758
- }, te = (H) => {
759
- p.setLayout(H), S.value = !1;
760
- }, D = (H) => {
761
- Q.value = H;
762
- const B = document.documentElement;
763
- H ? B.classList.add("grey-mode") : B.classList.remove("grey-mode");
764
- }, ie = () => {
765
- D(!Q.value), S.value = !1;
766
- }, de = () => {
767
- p.toggleTheme(), S.value = !1;
768
- }, Ce = () => {
769
- document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
770
- }, fe = () => {
771
- x.value = !!document.fullscreenElement;
772
- }, ke = () => {
773
- g.value = !g.value;
774
- }, be = () => {
775
- g.value = !1;
776
- }, we = () => {
777
- M.value = !1, C.value = "";
778
- }, Te = (H) => {
779
- v.push(H), we();
780
- }, Ne = (H) => {
781
- p.setPrimaryColor(H), S.value = !1;
782
- }, Oe = () => {
783
- be(), v.push("/profile");
784
- }, N = () => {
785
- be(), v.push("/change-password");
786
- }, Ue = () => {
787
- be(), b.logout(), m.clearUserInfo(), A.clearMenu(), v.push("/login");
788
- }, Be = (H) => {
789
- _.value && !_.value.contains(H.target) && be(), G.value && !G.value.contains(H.target) && we();
790
- }, Me = (H) => {
791
- H.key === "Escape" && (we(), be());
792
- };
793
- return _t(() => {
794
- document.addEventListener("click", Be), document.addEventListener("fullscreenchange", fe), document.addEventListener("keydown", Me), p.initTheme(), Q.value = document.documentElement.classList.contains("grey-mode");
795
- }), wt(() => {
796
- document.removeEventListener("click", Be), document.removeEventListener("fullscreenchange", fe), document.removeEventListener("keydown", Me);
797
- }), (H, B) => {
798
- var t;
799
- return w(), E("div", Ps, [
800
- s("div", zs, [
801
- s("div", {
802
- class: "header__collapse",
803
- onClick: ee
804
- }, [
805
- z(y(Z), {
806
- name: y(p).isCollapsed ? "menu-unfold" : "menu-fold",
807
- size: 18
808
- }, null, 8, ["name"])
809
- ]),
810
- y(p).showBreadcrumb ? (w(), E("div", Rs, [
811
- (w(!0), E(he, null, ge(V.value, (e, o) => (w(), E("span", {
812
- key: e.path
813
- }, [
814
- o > 0 ? (w(), E("span", Ds, "/")) : le("", !0),
815
- s("span", {
816
- class: _e({ "is-current": o === V.value.length - 1 })
817
- }, q(e.title), 3)
818
- ]))), 128))
819
- ])) : le("", !0)
820
- ]),
821
- s("div", Fs, [
822
- s("div", {
823
- class: "header__search",
824
- ref_key: "searchRef",
825
- ref: G
826
- }, [
827
- z(y(Z), {
828
- name: "search",
829
- size: 14,
830
- class: "header__search-icon"
831
- }),
832
- lt(s("input", {
833
- "onUpdate:modelValue": B[0] || (B[0] = (e) => C.value = e),
834
- type: "text",
835
- class: "header__search-input",
836
- placeholder: "搜索菜单...",
837
- onFocus: B[1] || (B[1] = (e) => M.value = !0)
838
- }, null, 544), [
839
- [yt, C.value]
840
- ]),
841
- z(Ve, { name: "search-dropdown" }, {
842
- default: X(() => [
843
- M.value && (I.value.length > 0 || C.value) ? (w(), E("div", Vs, [
844
- I.value.length > 0 ? (w(), E("div", js, [
845
- (w(!0), E(he, null, ge(I.value, (e) => (w(), E("div", {
846
- key: e.path,
847
- class: "header__search-item",
848
- onClick: (o) => Te(e.path)
849
- }, [
850
- e.title !== "首页" ? (w(), E("span", Gs, [
851
- U(Y(e.icon)) ? (w(), ce(y(Z), {
852
- key: 0,
853
- name: Y(e.icon),
854
- size: 16
855
- }, null, 8, ["name"])) : (w(), E("span", Ks, q(oe(e.title)), 1))
856
- ])) : le("", !0),
857
- s("span", Hs, q(e.title), 1),
858
- e.parentTitle ? (w(), E("span", Ws, q(e.parentTitle), 1)) : le("", !0)
859
- ], 8, qs))), 128))
860
- ])) : (w(), E("div", Xs, " 未找到匹配的菜单 "))
861
- ])) : le("", !0)
862
- ]),
863
- _: 1
864
- })
865
- ], 512),
866
- s("div", {
867
- class: "header__action",
868
- onClick: Ce,
869
- title: x.value ? "退出全屏" : "全屏"
870
- }, [
871
- z(y(Z), {
872
- name: x.value ? "fullscreen-exit" : "fullscreen",
873
- size: 16
874
- }, null, 8, ["name"])
875
- ], 8, Ys),
876
- s("div", {
877
- class: "header__action",
878
- onClick: re,
879
- title: "换肤设置"
880
- }, [
881
- z(y(Z), {
882
- name: "skin",
883
- size: 16
884
- })
885
- ]),
886
- s("div", {
887
- class: "header__action",
888
- onClick: $,
889
- title: "切换主题"
890
- }, [
891
- z(y(Z), {
892
- name: y(p).isDark ? "sun" : "moon",
893
- size: 16
894
- }, null, 8, ["name"])
895
- ]),
896
- s("div", {
897
- class: "header__user",
898
- ref_key: "dropdownRef",
899
- ref: _
900
- }, [
901
- s("div", {
902
- class: "header__user-trigger",
903
- onClick: it(ke, ["stop"])
904
- }, [
905
- s("div", Js, [
906
- s("span", null, q(((t = y(m).userName) == null ? void 0 : t.charAt(0)) || "U"), 1)
907
- ]),
908
- s("span", Zs, q(y(m).userName), 1),
909
- s("span", {
910
- class: _e(["header__user-arrow", { "is-active": g.value }])
911
- }, "▼", 2)
912
- ]),
913
- z(Ve, { name: "dropdown" }, {
914
- default: X(() => {
915
- var e;
916
- return [
917
- g.value ? (w(), E("div", Qs, [
918
- s("div", en, [
919
- s("div", tn, [
920
- s("span", null, q(((e = y(m).userName) == null ? void 0 : e.charAt(0)) || "U"), 1)
921
- ]),
922
- s("div", sn, [
923
- s("div", nn, q(y(m).userName), 1),
924
- s("div", on, q(y(m).departmentName), 1)
925
- ])
926
- ]),
927
- B[7] || (B[7] = s("div", { class: "header__dropdown-divider" }, null, -1)),
928
- s("div", rn, [
929
- s("div", {
930
- class: "header__dropdown-item",
931
- onClick: Oe
932
- }, [
933
- z(y(Z), {
934
- name: "user",
935
- size: 16
936
- }),
937
- B[3] || (B[3] = s("span", null, "个人信息", -1))
938
- ]),
939
- s("div", {
940
- class: "header__dropdown-item",
941
- onClick: N
942
- }, [
943
- z(y(Z), {
944
- name: "lock",
945
- size: 16
946
- }),
947
- B[4] || (B[4] = s("span", null, "修改密码", -1))
948
- ]),
949
- B[6] || (B[6] = s("div", { class: "header__dropdown-divider" }, null, -1)),
950
- s("div", {
951
- class: "header__dropdown-item header__dropdown-item--danger",
952
- onClick: Ue
953
- }, [
954
- z(y(Z), {
955
- name: "logout",
956
- size: 16
957
- }),
958
- B[5] || (B[5] = s("span", null, "退出登录", -1))
959
- ])
960
- ])
961
- ])) : le("", !0)
962
- ];
963
- }),
964
- _: 1
965
- })
966
- ], 512)
967
- ]),
968
- z(y(Nt), {
969
- modelValue: S.value,
970
- "onUpdate:modelValue": B[2] || (B[2] = (e) => S.value = e),
971
- title: "换肤设置",
972
- direction: "rtl",
973
- size: "320px"
974
- }, {
975
- default: X(() => [
976
- s("div", an, [
977
- s("div", ln, [
978
- B[11] || (B[11] = s("div", { class: "settings-title" }, "布局模式", -1)),
979
- s("div", cn, [
980
- (w(), E(he, null, ge(O, (e) => s("div", {
981
- key: e.value,
982
- class: _e(["layout-option", { "is-active": J.value === e.value }]),
983
- onClick: (o) => te(e.value)
984
- }, [
985
- s("div", dn, [
986
- e.value === "sidebar" ? (w(), E("div", fn, [...B[8] || (B[8] = [
987
- s("div", { class: "preview-aside" }, null, -1),
988
- s("div", { class: "preview-main" }, [
989
- s("div", { class: "preview-header" }),
990
- s("div", { class: "preview-content" })
991
- ], -1)
992
- ])])) : e.value === "top" ? (w(), E("div", pn, [...B[9] || (B[9] = [
993
- s("div", { class: "preview-header-full" }, null, -1),
994
- s("div", { class: "preview-content-full" }, null, -1)
995
- ])])) : (w(), E("div", mn, [...B[10] || (B[10] = [
996
- s("div", { class: "preview-header-mix" }, [
997
- s("div", { class: "preview-mix-left" })
998
- ], -1),
999
- s("div", { class: "preview-mix-body" }, [
1000
- s("div", { class: "preview-mix-aside" }),
1001
- s("div", { class: "preview-mix-content" })
1002
- ], -1)
1003
- ])]))
1004
- ]),
1005
- s("span", hn, q(e.label), 1)
1006
- ], 10, un)), 64))
1007
- ])
1008
- ]),
1009
- s("div", vn, [
1010
- B[12] || (B[12] = s("div", { class: "settings-title" }, "主题色", -1)),
1011
- s("div", gn, [
1012
- (w(), E(he, null, ge(T, (e) => s("div", {
1013
- key: e.value,
1014
- class: _e(["color-option", { "is-active": y(p).primaryColor === e.value }]),
1015
- style: Ye({ backgroundColor: e.value }),
1016
- title: e.label,
1017
- onClick: (o) => Ne(e.value)
1018
- }, [
1019
- y(p).primaryColor === e.value ? (w(), ce(y(Z), {
1020
- key: 0,
1021
- name: "check",
1022
- size: 12,
1023
- color: "#fff"
1024
- })) : le("", !0)
1025
- ], 14, _n)), 64))
1026
- ])
1027
- ]),
1028
- s("div", wn, [
1029
- B[17] || (B[17] = s("div", { class: "settings-title" }, "功能设置", -1)),
1030
- s("div", yn, [
1031
- s("div", kn, [
1032
- B[14] || (B[14] = s("span", null, "灰色模式", -1)),
1033
- s("div", {
1034
- class: _e(["switch-wrapper", { "is-checked": Q.value }]),
1035
- onClick: ie
1036
- }, [...B[13] || (B[13] = [
1037
- s("span", { class: "switch-core" }, null, -1)
1038
- ])], 2)
1039
- ]),
1040
- s("div", bn, [
1041
- B[16] || (B[16] = s("span", null, "暗黑模式", -1)),
1042
- s("div", {
1043
- class: _e(["switch-wrapper", { "is-checked": y(p).isDark }]),
1044
- onClick: de
1045
- }, [...B[15] || (B[15] = [
1046
- s("span", { class: "switch-core" }, null, -1)
1047
- ])], 2)
1048
- ])
1049
- ])
1050
- ])
1051
- ])
1052
- ]),
1053
- _: 1
1054
- }, 8, ["modelValue"])
1055
- ]);
1056
- };
1057
- }
1058
- }), Cn = /* @__PURE__ */ Se(xn, [["__scopeId", "data-v-89179947"]]), Nn = { class: "top-menu" }, En = { class: "top-menu__logo" }, $n = { class: "top-menu__logo-text" }, Sn = { class: "top-menu__menu-content" }, Mn = {
1059
- key: 0,
1060
- class: "top-menu__menu-icon"
1061
- }, Ln = {
1062
- key: 1,
1063
- class: "top-menu__menu-char"
1064
- }, In = { class: "top-menu__menu-text" }, An = { class: "top-menu__menu-content" }, Tn = { class: "top-menu__menu-icon" }, On = {
1065
- key: 1,
1066
- class: "top-menu__menu-char"
1067
- }, Un = { class: "top-menu__menu-text" }, Bn = { class: "top-menu__menu-content" }, Pn = { class: "top-menu__menu-icon" }, zn = {
1068
- key: 1,
1069
- class: "top-menu__menu-char"
1070
- }, Rn = { class: "top-menu__menu-text" }, Dn = { class: "top-menu__menu-content" }, Fn = { class: "top-menu__menu-icon" }, Vn = {
1071
- key: 1,
1072
- class: "top-menu__menu-char"
1073
- }, jn = { class: "top-menu__menu-text" }, qn = { class: "top-menu__menu-content" }, Gn = {
1074
- key: 0,
1075
- class: "top-menu__menu-icon"
1076
- }, Kn = {
1077
- key: 1,
1078
- class: "top-menu__menu-char"
1079
- }, Hn = { class: "top-menu__menu-text" }, Wn = { class: "top-menu__actions" }, Xn = {
1080
- key: 0,
1081
- class: "top-menu__search-dropdown"
1082
- }, Yn = {
1083
- key: 0,
1084
- class: "top-menu__search-results"
1085
- }, Jn = ["onClick"], Zn = {
1086
- key: 0,
1087
- class: "top-menu__search-icon-item"
1088
- }, Qn = {
1089
- key: 1,
1090
- class: "top-menu__search-char"
1091
- }, eo = { class: "top-menu__search-item-title" }, to = {
1092
- key: 1,
1093
- class: "top-menu__search-item-parent"
1094
- }, so = {
1095
- key: 1,
1096
- class: "top-menu__search-empty"
1097
- }, no = ["title"], oo = { class: "top-menu__avatar" }, ro = { class: "top-menu__user-name" }, ao = {
1098
- key: 0,
1099
- class: "top-menu__dropdown"
1100
- }, lo = { class: "top-menu__dropdown-header" }, io = { class: "top-menu__dropdown-avatar" }, co = { class: "top-menu__dropdown-info" }, uo = { class: "top-menu__dropdown-name" }, fo = { class: "top-menu__dropdown-role" }, po = { class: "top-menu__dropdown-menu" }, mo = { class: "settings-drawer" }, ho = { class: "settings-section" }, vo = { class: "settings-layout-options" }, go = ["onClick"], _o = { class: "layout-option__preview" }, wo = {
1101
- key: 0,
1102
- class: "layout-preview-sidebar"
1103
- }, yo = {
1104
- key: 1,
1105
- class: "layout-preview-top"
1106
- }, ko = {
1107
- key: 2,
1108
- class: "layout-preview-mix"
1109
- }, bo = { class: "layout-option__label" }, xo = { class: "settings-section" }, Co = { class: "settings-color-options" }, No = ["title", "onClick"], Eo = { class: "settings-section" }, $o = { class: "settings-switch-list" }, So = { class: "settings-switch-item" }, Mo = { class: "settings-switch-item" }, Lo = /* @__PURE__ */ Ae({
1110
- __name: "TopMenu",
1111
- setup(r) {
1112
- const d = qe(), v = ze(), p = Fe(), m = Re(), b = $e(), A = Ze(), g = j(() => d.path), S = (e, o = "") => {
1113
- const c = [];
1114
- return e.forEach((n) => {
1115
- n.children && n.children.length > 0 ? c.push(...S(n.children, n.menuName)) : c.push({ ...n, parentTitle: o, title: n.menuName, path: n.menuUrl });
1116
- }), c;
1117
- }, _ = j(() => W.value.trim() ? S(p.menuList).filter(
1118
- (o) => o.title.toLowerCase().includes(W.value.toLowerCase())
1119
- ) : []), x = j(() => m.isDark ? "#1d1e1f" : "#fff"), M = j(() => m.isDark ? "#cfd3dc" : "#303133"), C = j(() => "#409eff"), G = P(!1), Q = P(null), O = P(!1), T = P(!1), V = P(!1), L = P(!1), W = P(""), Y = P(null), oe = (e) => {
1120
- e && e !== d.path && v.push(e);
1121
- }, U = /* @__PURE__ */ new Set([
1122
- "arrow-up",
1123
- "arrow-down",
1124
- "arrow-left",
1125
- "arrow-right",
1126
- "caret-down",
1127
- "caret-right",
1128
- "plus",
1129
- "minus",
1130
- "close",
1131
- "check",
1132
- "edit",
1133
- "delete",
1134
- "copy",
1135
- "download",
1136
- "upload",
1137
- "refresh",
1138
- "search",
1139
- "filter",
1140
- "more",
1141
- "setting",
1142
- "share",
1143
- "loading",
1144
- "info",
1145
- "success",
1146
- "warning",
1147
- "error",
1148
- "question",
1149
- "user",
1150
- "user-add",
1151
- "user-group",
1152
- "logout",
1153
- "login",
1154
- "file",
1155
- "folder",
1156
- "folder-open",
1157
- "document",
1158
- "image",
1159
- "video",
1160
- "music",
1161
- "camera",
1162
- "mail",
1163
- "phone",
1164
- "chat",
1165
- "bell",
1166
- "message",
1167
- "eye",
1168
- "eye-off",
1169
- "calendar",
1170
- "clock",
1171
- "history",
1172
- "timer",
1173
- "location",
1174
- "map",
1175
- "globe",
1176
- "star",
1177
- "heart",
1178
- "thumb-up",
1179
- "link",
1180
- "external-link",
1181
- "lock",
1182
- "unlock",
1183
- "key",
1184
- "home",
1185
- "menu",
1186
- "menu-fold",
1187
- "menu-unfold",
1188
- "sidebar-fold",
1189
- "sidebar-expand",
1190
- "sidebar-left",
1191
- "dashboard",
1192
- "chart",
1193
- "chart-pie",
1194
- "chart-line",
1195
- "report",
1196
- "analytics",
1197
- "system",
1198
- "permission",
1199
- "role",
1200
- "user-manage",
1201
- "log",
1202
- "notification",
1203
- "app",
1204
- "list",
1205
- "grid",
1206
- "fullscreen",
1207
- "fullscreen-exit",
1208
- "zoom-in",
1209
- "zoom-out",
1210
- "print",
1211
- "bookmark",
1212
- "tag",
1213
- "code",
1214
- "terminal",
1215
- "database",
1216
- "server",
1217
- "cloud",
1218
- "gift",
1219
- "moon",
1220
- "sun",
1221
- "theme",
1222
- "skin"
1223
- ]), I = (e) => {
1224
- if (!e || e === "") return "";
1225
- if (e.startsWith("tineco-icon-")) {
1226
- const c = e.replace("tineco-icon-", "");
1227
- return {
1228
- home: "home",
1229
- dashboard: "dashboard",
1230
- system: "system",
1231
- user: "user",
1232
- role: "role",
1233
- menu: "list",
1234
- setting: "setting",
1235
- file: "file",
1236
- folder: "folder",
1237
- chart: "chart",
1238
- report: "report",
1239
- analytics: "analytics"
1240
- }[c] || c;
1241
- }
1242
- return {
1243
- dashboard: "dashboard",
1244
- system: "system",
1245
- user: "user",
1246
- role: "role",
1247
- menu: "list",
1248
- setting: "setting",
1249
- home: "home",
1250
- chart: "chart",
1251
- report: "report",
1252
- analytics: "analytics",
1253
- permission: "permission",
1254
- log: "log",
1255
- notification: "notification",
1256
- app: "app",
1257
- list: "list",
1258
- grid: "grid"
1259
- }[e] || e;
1260
- }, J = (e) => e ? e.charAt(0) : "", ee = (e) => U.has(e), $ = () => {
1261
- m.toggleTheme(), T.value = !1;
1262
- }, re = () => {
1263
- document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
1264
- }, te = () => {
1265
- O.value = !!document.fullscreenElement;
1266
- }, D = () => {
1267
- G.value = !G.value;
1268
- }, ie = () => {
1269
- G.value = !1;
1270
- }, de = () => {
1271
- L.value = !1, W.value = "";
1272
- }, Ce = (e) => {
1273
- v.push(e), de();
1274
- }, fe = () => {
1275
- T.value = !0;
1276
- }, ke = (e) => {
1277
- V.value = e;
1278
- const o = document.documentElement;
1279
- e ? o.classList.add("grey-mode") : o.classList.remove("grey-mode");
1280
- }, be = () => {
1281
- ke(!V.value), T.value = !1;
1282
- }, we = () => {
1283
- m.toggleTheme(), T.value = !1;
1284
- }, Te = [
1285
- { value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
1286
- { value: "top", label: "顶部菜单", icon: "menu" },
1287
- { value: "mix", label: "混合菜单", icon: "grid" }
1288
- ], Ne = j(() => m.layout), Oe = (e) => {
1289
- m.setLayout(e), T.value = !1;
1290
- }, N = [
1291
- { value: "#409eff", label: "默认蓝" },
1292
- { value: "#1890ff", label: "科技蓝" },
1293
- { value: "#52c41a", label: "极光绿" },
1294
- { value: "#faad14", label: "日落橙" },
1295
- { value: "#f5222d", label: "薄暮红" },
1296
- { value: "#722ed1", label: "酱紫" }
1297
- ], Ue = (e) => {
1298
- m.setPrimaryColor(e), T.value = !1;
1299
- }, Be = () => {
1300
- ie(), v.push("/profile");
1301
- }, Me = () => {
1302
- ie(), v.push("/change-password");
1303
- }, H = () => {
1304
- ie(), A.logout(), b.clearUserInfo(), p.clearMenu(), v.push("/login");
1305
- }, B = (e) => {
1306
- Q.value && !Q.value.contains(e.target) && ie(), Y.value && !Y.value.contains(e.target) && de();
1307
- }, t = (e) => {
1308
- e.key === "Escape" && (de(), ie());
1309
- };
1310
- return _t(() => {
1311
- document.addEventListener("click", B), document.addEventListener("fullscreenchange", te), document.addEventListener("keydown", t), V.value = document.documentElement.classList.contains("grey-mode");
1312
- }), wt(() => {
1313
- document.removeEventListener("click", B), document.removeEventListener("fullscreenchange", te), document.removeEventListener("keydown", t);
1314
- }), (e, o) => {
1315
- var c;
1316
- return w(), E("div", Nn, [
1317
- s("div", En, [
1318
- o[3] || (o[3] = s("img", {
1319
- src: Et,
1320
- alt: "Logo",
1321
- class: "top-menu__logo-img"
1322
- }, null, -1)),
1323
- s("span", $n, q(y(m).appName), 1)
1324
- ]),
1325
- z(y(Ct), {
1326
- "model-value": g.value,
1327
- mode: "horizontal",
1328
- "background-color": x.value,
1329
- "text-color": M.value,
1330
- "active-text-color": C.value,
1331
- class: "top-menu__menu",
1332
- onSelect: oe
1333
- }, {
1334
- default: X(() => [
1335
- (w(!0), E(he, null, ge(y(p).menuList, (n) => (w(), E(he, {
1336
- key: n.menuUrl
1337
- }, [
1338
- n.children && n.children.length > 0 ? (w(), ce(y(gt), {
1339
- key: 0,
1340
- index: n.menuUrl
1341
- }, {
1342
- title: X(() => [
1343
- s("span", Sn, [
1344
- n.menuName !== "首页" ? (w(), E("span", Mn, [
1345
- ee(I(n.icon)) ? (w(), ce(y(Z), {
1346
- key: 0,
1347
- name: I(n.icon),
1348
- size: 16
1349
- }, null, 8, ["name"])) : (w(), E("span", Ln, q(J(n.menuName)), 1))
1350
- ])) : le("", !0),
1351
- s("span", In, q(n.menuName), 1)
1352
- ])
1353
- ]),
1354
- default: X(() => [
1355
- (w(!0), E(he, null, ge(n.children, (a) => (w(), E(he, {
1356
- key: a.menuUrl
1357
- }, [
1358
- a.children && a.children.length > 0 ? (w(), ce(y(gt), {
1359
- key: 0,
1360
- index: a.menuUrl
1361
- }, {
1362
- title: X(() => [
1363
- s("span", An, [
1364
- s("span", Tn, [
1365
- ee(I(a.icon)) ? (w(), ce(y(Z), {
1366
- key: 0,
1367
- name: I(a.icon),
1368
- size: 16
1369
- }, null, 8, ["name"])) : (w(), E("span", On, q(J(a.menuName)), 1))
1370
- ]),
1371
- s("span", Un, q(a.menuName), 1)
1372
- ])
1373
- ]),
1374
- default: X(() => [
1375
- (w(!0), E(he, null, ge(a.children, (u) => (w(), ce(y(He), {
1376
- key: u.menuUrl,
1377
- index: u.menuUrl
1378
- }, {
1379
- default: X(() => [
1380
- s("span", Bn, [
1381
- s("span", Pn, [
1382
- ee(I(u.icon)) ? (w(), ce(y(Z), {
1383
- key: 0,
1384
- name: I(u.icon),
1385
- size: 16
1386
- }, null, 8, ["name"])) : (w(), E("span", zn, q(J(u.menuName)), 1))
1387
- ]),
1388
- s("span", Rn, q(u.menuName), 1)
1389
- ])
1390
- ]),
1391
- _: 2
1392
- }, 1032, ["index"]))), 128))
1393
- ]),
1394
- _: 2
1395
- }, 1032, ["index"])) : (w(), ce(y(He), {
1396
- key: 1,
1397
- index: a.menuUrl
1398
- }, {
1399
- default: X(() => [
1400
- s("span", Dn, [
1401
- s("span", Fn, [
1402
- ee(I(a.icon)) ? (w(), ce(y(Z), {
1403
- key: 0,
1404
- name: I(a.icon),
1405
- size: 16
1406
- }, null, 8, ["name"])) : (w(), E("span", Vn, q(J(a.menuName)), 1))
1407
- ]),
1408
- s("span", jn, q(a.menuName), 1)
1409
- ])
1410
- ]),
1411
- _: 2
1412
- }, 1032, ["index"]))
1413
- ], 64))), 128))
1414
- ]),
1415
- _: 2
1416
- }, 1032, ["index"])) : (w(), ce(y(He), {
1417
- key: 1,
1418
- index: n.menuUrl
1419
- }, {
1420
- default: X(() => [
1421
- s("span", qn, [
1422
- n.menuName !== "首页" ? (w(), E("span", Gn, [
1423
- ee(I(n.icon)) ? (w(), ce(y(Z), {
1424
- key: 0,
1425
- name: I(n.icon),
1426
- size: 16
1427
- }, null, 8, ["name"])) : (w(), E("span", Kn, q(J(n.menuName)), 1))
1428
- ])) : le("", !0),
1429
- s("span", Hn, q(n.menuName), 1)
1430
- ])
1431
- ]),
1432
- _: 2
1433
- }, 1032, ["index"]))
1434
- ], 64))), 128))
1435
- ]),
1436
- _: 1
1437
- }, 8, ["model-value", "background-color", "text-color", "active-text-color"]),
1438
- s("div", Wn, [
1439
- s("div", {
1440
- class: "top-menu__search",
1441
- ref_key: "searchRef",
1442
- ref: Y
1443
- }, [
1444
- z(y(Z), {
1445
- name: "search",
1446
- size: 14,
1447
- class: "top-menu__search-icon"
1448
- }),
1449
- lt(s("input", {
1450
- "onUpdate:modelValue": o[0] || (o[0] = (n) => W.value = n),
1451
- type: "text",
1452
- class: "top-menu__search-input",
1453
- placeholder: "搜索菜单...",
1454
- onFocus: o[1] || (o[1] = (n) => L.value = !0)
1455
- }, null, 544), [
1456
- [yt, W.value]
1457
- ]),
1458
- z(Ve, { name: "search-dropdown" }, {
1459
- default: X(() => [
1460
- L.value && (_.value.length > 0 || W.value) ? (w(), E("div", Xn, [
1461
- _.value.length > 0 ? (w(), E("div", Yn, [
1462
- (w(!0), E(he, null, ge(_.value, (n) => (w(), E("div", {
1463
- key: n.path,
1464
- class: "top-menu__search-item",
1465
- onClick: (a) => Ce(n.path)
1466
- }, [
1467
- n.title !== "首页" ? (w(), E("span", Zn, [
1468
- ee(I(n.icon)) ? (w(), ce(y(Z), {
1469
- key: 0,
1470
- name: I(n.icon),
1471
- size: 16
1472
- }, null, 8, ["name"])) : (w(), E("span", Qn, q(J(n.title)), 1))
1473
- ])) : le("", !0),
1474
- s("span", eo, q(n.title), 1),
1475
- n.parentTitle ? (w(), E("span", to, q(n.parentTitle), 1)) : le("", !0)
1476
- ], 8, Jn))), 128))
1477
- ])) : (w(), E("div", so, " 未找到匹配的菜单 "))
1478
- ])) : le("", !0)
1479
- ]),
1480
- _: 1
1481
- })
1482
- ], 512),
1483
- s("div", {
1484
- class: "top-menu__action",
1485
- onClick: re,
1486
- title: O.value ? "退出全屏" : "全屏"
1487
- }, [
1488
- z(y(Z), {
1489
- name: O.value ? "fullscreen-exit" : "fullscreen",
1490
- size: 16
1491
- }, null, 8, ["name"])
1492
- ], 8, no),
1493
- s("div", {
1494
- class: "top-menu__action",
1495
- onClick: fe,
1496
- title: "换肤设置"
1497
- }, [
1498
- z(y(Z), {
1499
- name: "skin",
1500
- size: 16
1501
- })
1502
- ]),
1503
- s("div", {
1504
- class: "top-menu__action",
1505
- onClick: $,
1506
- title: "切换主题"
1507
- }, [
1508
- z(y(Z), {
1509
- name: y(m).isDark ? "sun" : "moon",
1510
- size: 16
1511
- }, null, 8, ["name"])
1512
- ]),
1513
- s("div", {
1514
- class: "top-menu__user",
1515
- ref_key: "dropdownRef",
1516
- ref: Q
1517
- }, [
1518
- s("div", {
1519
- class: "top-menu__user-trigger",
1520
- onClick: it(D, ["stop"])
1521
- }, [
1522
- s("div", oo, [
1523
- s("span", null, q(((c = y(b).userName) == null ? void 0 : c.charAt(0)) || "U"), 1)
1524
- ]),
1525
- s("span", ro, q(y(b).userName), 1),
1526
- s("span", {
1527
- class: _e(["top-menu__user-arrow", { "is-active": G.value }])
1528
- }, "▼", 2)
1529
- ]),
1530
- z(Ve, { name: "dropdown" }, {
1531
- default: X(() => {
1532
- var n;
1533
- return [
1534
- G.value ? (w(), E("div", ao, [
1535
- s("div", lo, [
1536
- s("div", io, [
1537
- s("span", null, q(((n = y(b).userName) == null ? void 0 : n.charAt(0)) || "U"), 1)
1538
- ]),
1539
- s("div", co, [
1540
- s("div", uo, q(y(b).userName), 1),
1541
- s("div", fo, q(y(b).departmentName), 1)
1542
- ])
1543
- ]),
1544
- o[8] || (o[8] = s("div", { class: "top-menu__dropdown-divider" }, null, -1)),
1545
- s("div", po, [
1546
- s("div", {
1547
- class: "top-menu__dropdown-item",
1548
- onClick: Be
1549
- }, [
1550
- z(y(Z), {
1551
- name: "user",
1552
- size: 16
1553
- }),
1554
- o[4] || (o[4] = s("span", null, "个人信息", -1))
1555
- ]),
1556
- s("div", {
1557
- class: "top-menu__dropdown-item",
1558
- onClick: Me
1559
- }, [
1560
- z(y(Z), {
1561
- name: "lock",
1562
- size: 16
1563
- }),
1564
- o[5] || (o[5] = s("span", null, "修改密码", -1))
1565
- ]),
1566
- o[7] || (o[7] = s("div", { class: "top-menu__dropdown-divider" }, null, -1)),
1567
- s("div", {
1568
- class: "top-menu__dropdown-item top-menu__dropdown-item--danger",
1569
- onClick: H
1570
- }, [
1571
- z(y(Z), {
1572
- name: "logout",
1573
- size: 16
1574
- }),
1575
- o[6] || (o[6] = s("span", null, "退出登录", -1))
1576
- ])
1577
- ])
1578
- ])) : le("", !0)
1579
- ];
1580
- }),
1581
- _: 1
1582
- })
1583
- ], 512)
1584
- ]),
1585
- z(y(Nt), {
1586
- modelValue: T.value,
1587
- "onUpdate:modelValue": o[2] || (o[2] = (n) => T.value = n),
1588
- title: "换肤设置",
1589
- direction: "rtl",
1590
- size: "320px"
1591
- }, {
1592
- default: X(() => [
1593
- s("div", mo, [
1594
- s("div", ho, [
1595
- o[12] || (o[12] = s("div", { class: "settings-title" }, "布局模式", -1)),
1596
- s("div", vo, [
1597
- (w(), E(he, null, ge(Te, (n) => s("div", {
1598
- key: n.value,
1599
- class: _e(["layout-option", { "is-active": Ne.value === n.value }]),
1600
- onClick: (a) => Oe(n.value)
1601
- }, [
1602
- s("div", _o, [
1603
- n.value === "sidebar" ? (w(), E("div", wo, [...o[9] || (o[9] = [
1604
- s("div", { class: "preview-aside" }, null, -1),
1605
- s("div", { class: "preview-main" }, [
1606
- s("div", { class: "preview-header" }),
1607
- s("div", { class: "preview-content" })
1608
- ], -1)
1609
- ])])) : n.value === "top" ? (w(), E("div", yo, [...o[10] || (o[10] = [
1610
- s("div", { class: "preview-header-full" }, null, -1),
1611
- s("div", { class: "preview-content-full" }, null, -1)
1612
- ])])) : (w(), E("div", ko, [...o[11] || (o[11] = [
1613
- s("div", { class: "preview-header-mix" }, [
1614
- s("div", { class: "preview-mix-left" })
1615
- ], -1),
1616
- s("div", { class: "preview-mix-body" }, [
1617
- s("div", { class: "preview-mix-aside" }),
1618
- s("div", { class: "preview-mix-content" })
1619
- ], -1)
1620
- ])]))
1621
- ]),
1622
- s("span", bo, q(n.label), 1)
1623
- ], 10, go)), 64))
1624
- ])
1625
- ]),
1626
- s("div", xo, [
1627
- o[13] || (o[13] = s("div", { class: "settings-title" }, "主题色", -1)),
1628
- s("div", Co, [
1629
- (w(), E(he, null, ge(N, (n) => s("div", {
1630
- key: n.value,
1631
- class: _e(["color-option", { "is-active": y(m).primaryColor === n.value }]),
1632
- style: Ye({ backgroundColor: n.value }),
1633
- title: n.label,
1634
- onClick: (a) => Ue(n.value)
1635
- }, [
1636
- y(m).primaryColor === n.value ? (w(), ce(y(Z), {
1637
- key: 0,
1638
- name: "check",
1639
- size: 12,
1640
- color: "#fff"
1641
- })) : le("", !0)
1642
- ], 14, No)), 64))
1643
- ])
1644
- ]),
1645
- s("div", Eo, [
1646
- o[18] || (o[18] = s("div", { class: "settings-title" }, "功能设置", -1)),
1647
- s("div", $o, [
1648
- s("div", So, [
1649
- o[15] || (o[15] = s("span", null, "灰色模式", -1)),
1650
- s("div", {
1651
- class: _e(["switch-wrapper", { "is-checked": V.value }]),
1652
- onClick: be
1653
- }, [...o[14] || (o[14] = [
1654
- s("span", { class: "switch-core" }, null, -1)
1655
- ])], 2)
1656
- ]),
1657
- s("div", Mo, [
1658
- o[17] || (o[17] = s("span", null, "暗黑模式", -1)),
1659
- s("div", {
1660
- class: _e(["switch-wrapper", { "is-checked": y(m).isDark }]),
1661
- onClick: we
1662
- }, [...o[16] || (o[16] = [
1663
- s("span", { class: "switch-core" }, null, -1)
1664
- ])], 2)
1665
- ])
1666
- ])
1667
- ])
1668
- ])
1669
- ]),
1670
- _: 1
1671
- }, 8, ["modelValue"])
1672
- ]);
1673
- };
1674
- }
1675
- }), Io = /* @__PURE__ */ Se(Lo, [["__scopeId", "data-v-5b8c9d39"]]), Ao = { class: "mix-top-menu" }, To = { class: "mix-top-menu__logo" }, Oo = { class: "mix-top-menu__logo-text" }, Uo = { class: "mix-top-menu__menu-content" }, Bo = {
1676
- key: 0,
1677
- class: "mix-top-menu__menu-icon"
1678
- }, Po = {
1679
- key: 1,
1680
- class: "mix-top-menu__menu-char"
1681
- }, zo = { class: "mix-top-menu__menu-text" }, Ro = { class: "mix-top-menu__actions" }, Do = {
1682
- key: 0,
1683
- class: "mix-top-menu__search-dropdown"
1684
- }, Fo = {
1685
- key: 0,
1686
- class: "mix-top-menu__search-results"
1687
- }, Vo = ["onClick"], jo = {
1688
- key: 0,
1689
- class: "mix-top-menu__search-icon-item"
1690
- }, qo = {
1691
- key: 1,
1692
- class: "mix-top-menu__search-char"
1693
- }, Go = { class: "mix-top-menu__search-item-title" }, Ko = {
1694
- key: 1,
1695
- class: "mix-top-menu__search-item-parent"
1696
- }, Ho = {
1697
- key: 1,
1698
- class: "mix-top-menu__search-empty"
1699
- }, Wo = ["title"], Xo = { class: "mix-top-menu__avatar" }, Yo = { class: "mix-top-menu__user-name" }, Jo = {
1700
- key: 0,
1701
- class: "mix-top-menu__dropdown"
1702
- }, Zo = { class: "mix-top-menu__dropdown-header" }, Qo = { class: "mix-top-menu__dropdown-avatar" }, er = { class: "mix-top-menu__dropdown-info" }, tr = { class: "mix-top-menu__dropdown-name" }, sr = { class: "mix-top-menu__dropdown-role" }, nr = { class: "mix-top-menu__dropdown-menu" }, or = { class: "settings-drawer" }, rr = { class: "settings-section" }, ar = { class: "settings-layout-options" }, lr = ["onClick"], ir = { class: "layout-option__preview" }, cr = {
1703
- key: 0,
1704
- class: "layout-preview-sidebar"
1705
- }, ur = {
1706
- key: 1,
1707
- class: "layout-preview-top"
1708
- }, dr = {
1709
- key: 2,
1710
- class: "layout-preview-mix"
1711
- }, fr = { class: "layout-option__label" }, pr = { class: "settings-section" }, mr = { class: "settings-color-options" }, hr = ["title", "onClick"], vr = { class: "settings-section" }, gr = { class: "settings-switch-list" }, _r = { class: "settings-switch-item" }, wr = { class: "settings-switch-item" }, yr = /* @__PURE__ */ Ae({
1712
- __name: "MixTopMenu",
1713
- setup(r) {
1714
- const d = qe(), v = ze(), p = Fe(), m = Re(), b = $e(), A = Ze(), g = P(""), S = (n, a = "") => {
1715
- const u = [];
1716
- return n.forEach((l) => {
1717
- l.children && l.children.length > 0 ? u.push(...S(l.children, l.menuName)) : u.push({ ...l, parentTitle: a, title: l.menuName, path: l.menuUrl });
1718
- }), u;
1719
- }, _ = j(() => I.value.trim() ? S(p.menuList).filter(
1720
- (a) => a.title.toLowerCase().includes(I.value.toLowerCase())
1721
- ) : []), x = j(() => {
1722
- const n = p.menuList.find((a) => a.menuUrl === g.value);
1723
- return (n == null ? void 0 : n.children) || [];
1724
- }), M = j(() => p.menuList.find((n) => !!(d.path === n.menuUrl || n.children && n.children.some((a) => d.path.startsWith(a.menuUrl) || d.path === a.menuUrl)))), C = () => {
1725
- M.value ? g.value = M.value.menuUrl : p.menuList.length > 0 && (g.value = p.menuList[0].menuUrl);
1726
- }, G = (n) => {
1727
- g.value = n;
1728
- const a = p.menuList.find((u) => u.menuUrl === n);
1729
- if (a)
1730
- if (a.children && a.children.length > 0) {
1731
- const u = a.children[0].menuUrl;
1732
- d.path !== u && v.push(u);
1733
- } else
1734
- d.path !== n && v.push(n);
1735
- }, Q = j(() => m.isDark ? "#1d1e1f" : "#fff"), O = j(() => m.isDark ? "#cfd3dc" : "#303133"), T = j(() => "#409eff"), V = P(!1), L = P(null), W = P(!1), Y = P(!1), oe = P(!1), U = P(!1), I = P(""), J = P(null);
1736
- Xe(() => d.path, () => {
1737
- C(), m.setMixSubMenus(x.value);
1738
- }), Xe(() => p.menuList, (n) => {
1739
- n && n.length > 0 && (C(), m.setMixSubMenus(x.value));
1740
- }, { immediate: !0 });
1741
- const ee = /* @__PURE__ */ new Set([
1742
- "arrow-up",
1743
- "arrow-down",
1744
- "arrow-left",
1745
- "arrow-right",
1746
- "caret-down",
1747
- "caret-right",
1748
- "plus",
1749
- "minus",
1750
- "close",
1751
- "check",
1752
- "edit",
1753
- "delete",
1754
- "copy",
1755
- "download",
1756
- "upload",
1757
- "refresh",
1758
- "search",
1759
- "filter",
1760
- "more",
1761
- "setting",
1762
- "share",
1763
- "loading",
1764
- "info",
1765
- "success",
1766
- "warning",
1767
- "error",
1768
- "question",
1769
- "user",
1770
- "user-add",
1771
- "user-group",
1772
- "logout",
1773
- "login",
1774
- "file",
1775
- "folder",
1776
- "folder-open",
1777
- "document",
1778
- "image",
1779
- "video",
1780
- "music",
1781
- "camera",
1782
- "mail",
1783
- "phone",
1784
- "chat",
1785
- "bell",
1786
- "message",
1787
- "eye",
1788
- "eye-off",
1789
- "calendar",
1790
- "clock",
1791
- "history",
1792
- "timer",
1793
- "location",
1794
- "map",
1795
- "globe",
1796
- "star",
1797
- "heart",
1798
- "thumb-up",
1799
- "link",
1800
- "external-link",
1801
- "lock",
1802
- "unlock",
1803
- "key",
1804
- "home",
1805
- "menu",
1806
- "menu-fold",
1807
- "menu-unfold",
1808
- "sidebar-fold",
1809
- "sidebar-expand",
1810
- "sidebar-left",
1811
- "dashboard",
1812
- "chart",
1813
- "chart-pie",
1814
- "chart-line",
1815
- "report",
1816
- "analytics",
1817
- "system",
1818
- "permission",
1819
- "role",
1820
- "user-manage",
1821
- "log",
1822
- "notification",
1823
- "app",
1824
- "list",
1825
- "grid",
1826
- "fullscreen",
1827
- "fullscreen-exit",
1828
- "zoom-in",
1829
- "zoom-out",
1830
- "print",
1831
- "bookmark",
1832
- "tag",
1833
- "code",
1834
- "terminal",
1835
- "database",
1836
- "server",
1837
- "cloud",
1838
- "gift",
1839
- "moon",
1840
- "sun",
1841
- "theme",
1842
- "skin"
1843
- ]), $ = (n) => {
1844
- if (!n || n === "") return "";
1845
- if (n.startsWith("tineco-icon-")) {
1846
- const u = n.replace("tineco-icon-", "");
1847
- return {
1848
- home: "home",
1849
- dashboard: "dashboard",
1850
- system: "system",
1851
- user: "user",
1852
- role: "role",
1853
- menu: "list",
1854
- setting: "setting",
1855
- file: "file",
1856
- folder: "folder",
1857
- chart: "chart",
1858
- report: "report",
1859
- analytics: "analytics"
1860
- }[u] || u;
1861
- }
1862
- return {
1863
- dashboard: "dashboard",
1864
- system: "system",
1865
- user: "user",
1866
- role: "role",
1867
- menu: "list",
1868
- setting: "setting",
1869
- home: "home",
1870
- chart: "chart",
1871
- report: "report",
1872
- analytics: "analytics",
1873
- permission: "permission",
1874
- log: "log",
1875
- notification: "notification",
1876
- app: "app",
1877
- list: "list",
1878
- grid: "grid"
1879
- }[n] || n;
1880
- }, re = (n) => n ? n.charAt(0) : "", te = (n) => ee.has(n), D = () => {
1881
- m.toggleTheme(), Y.value = !1;
1882
- }, ie = () => {
1883
- document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
1884
- }, de = () => {
1885
- W.value = !!document.fullscreenElement;
1886
- }, Ce = () => {
1887
- V.value = !V.value;
1888
- }, fe = () => {
1889
- V.value = !1;
1890
- }, ke = () => {
1891
- U.value = !1, I.value = "";
1892
- }, be = (n) => {
1893
- v.push(n), ke();
1894
- }, we = () => {
1895
- Y.value = !0;
1896
- }, Te = (n) => {
1897
- oe.value = n;
1898
- const a = document.documentElement;
1899
- n ? a.classList.add("grey-mode") : a.classList.remove("grey-mode");
1900
- }, Ne = () => {
1901
- Te(!oe.value), Y.value = !1;
1902
- }, Oe = () => {
1903
- m.toggleTheme(), Y.value = !1;
1904
- }, N = [
1905
- { value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
1906
- { value: "top", label: "顶部菜单", icon: "menu" },
1907
- { value: "mix", label: "混合菜单", icon: "grid" }
1908
- ], Ue = j(() => m.layout), Be = (n) => {
1909
- m.setLayout(n), Y.value = !1;
1910
- }, Me = [
1911
- { value: "#409eff", label: "默认蓝" },
1912
- { value: "#1890ff", label: "科技蓝" },
1913
- { value: "#52c41a", label: "极光绿" },
1914
- { value: "#faad14", label: "日落橙" },
1915
- { value: "#f5222d", label: "薄暮红" },
1916
- { value: "#722ed1", label: "酱紫" }
1917
- ], H = (n) => {
1918
- m.setPrimaryColor(n), Y.value = !1;
1919
- }, B = () => {
1920
- fe(), v.push("/profile");
1921
- }, t = () => {
1922
- fe(), v.push("/change-password");
1923
- }, e = () => {
1924
- fe(), A.logout(), b.clearUserInfo(), p.clearMenu(), v.push("/login");
1925
- }, o = (n) => {
1926
- L.value && !L.value.contains(n.target) && fe(), J.value && !J.value.contains(n.target) && ke();
1927
- }, c = (n) => {
1928
- n.key === "Escape" && (ke(), fe());
1929
- };
1930
- return _t(() => {
1931
- document.addEventListener("click", o), document.addEventListener("fullscreenchange", de), document.addEventListener("keydown", c), oe.value = document.documentElement.classList.contains("grey-mode"), C();
1932
- }), wt(() => {
1933
- document.removeEventListener("click", o), document.removeEventListener("fullscreenchange", de), document.removeEventListener("keydown", c);
1934
- }), (n, a) => {
1935
- var u;
1936
- return w(), E("div", Ao, [
1937
- s("div", To, [
1938
- a[3] || (a[3] = s("img", {
1939
- src: Et,
1940
- alt: "Logo",
1941
- class: "mix-top-menu__logo-img"
1942
- }, null, -1)),
1943
- s("span", Oo, q(y(m).appName), 1)
1944
- ]),
1945
- z(y(Ct), {
1946
- "model-value": g.value,
1947
- mode: "horizontal",
1948
- "background-color": Q.value,
1949
- "text-color": O.value,
1950
- "active-text-color": T.value,
1951
- class: "mix-top-menu__menu",
1952
- onSelect: G
1953
- }, {
1954
- default: X(() => [
1955
- (w(!0), E(he, null, ge(y(p).menuList, (l) => (w(), ce(y(He), {
1956
- key: l.menuUrl,
1957
- index: l.menuUrl
1958
- }, {
1959
- default: X(() => [
1960
- s("span", Uo, [
1961
- l.menuName !== "首页" ? (w(), E("span", Bo, [
1962
- te($(l.icon)) ? (w(), ce(y(Z), {
1963
- key: 0,
1964
- name: $(l.icon),
1965
- size: 16
1966
- }, null, 8, ["name"])) : (w(), E("span", Po, q(re(l.menuName)), 1))
1967
- ])) : le("", !0),
1968
- s("span", zo, q(l.menuName), 1)
1969
- ])
1970
- ]),
1971
- _: 2
1972
- }, 1032, ["index"]))), 128))
1973
- ]),
1974
- _: 1
1975
- }, 8, ["model-value", "background-color", "text-color", "active-text-color"]),
1976
- s("div", Ro, [
1977
- s("div", {
1978
- class: "mix-top-menu__search",
1979
- ref_key: "searchRef",
1980
- ref: J
1981
- }, [
1982
- z(y(Z), {
1983
- name: "search",
1984
- size: 14,
1985
- class: "mix-top-menu__search-icon"
1986
- }),
1987
- lt(s("input", {
1988
- "onUpdate:modelValue": a[0] || (a[0] = (l) => I.value = l),
1989
- type: "text",
1990
- class: "mix-top-menu__search-input",
1991
- placeholder: "搜索菜单...",
1992
- onFocus: a[1] || (a[1] = (l) => U.value = !0)
1993
- }, null, 544), [
1994
- [yt, I.value]
1995
- ]),
1996
- z(Ve, { name: "search-dropdown" }, {
1997
- default: X(() => [
1998
- U.value && (_.value.length > 0 || I.value) ? (w(), E("div", Do, [
1999
- _.value.length > 0 ? (w(), E("div", Fo, [
2000
- (w(!0), E(he, null, ge(_.value, (l) => (w(), E("div", {
2001
- key: l.path,
2002
- class: "mix-top-menu__search-item",
2003
- onClick: (i) => be(l.path)
2004
- }, [
2005
- l.title !== "首页" ? (w(), E("span", jo, [
2006
- te($(l.icon)) ? (w(), ce(y(Z), {
2007
- key: 0,
2008
- name: $(l.icon),
2009
- size: 16
2010
- }, null, 8, ["name"])) : (w(), E("span", qo, q(re(l.title)), 1))
2011
- ])) : le("", !0),
2012
- s("span", Go, q(l.title), 1),
2013
- l.parentTitle ? (w(), E("span", Ko, q(l.parentTitle), 1)) : le("", !0)
2014
- ], 8, Vo))), 128))
2015
- ])) : (w(), E("div", Ho, " 未找到匹配的菜单 "))
2016
- ])) : le("", !0)
2017
- ]),
2018
- _: 1
2019
- })
2020
- ], 512),
2021
- s("div", {
2022
- class: "mix-top-menu__action",
2023
- onClick: ie,
2024
- title: W.value ? "退出全屏" : "全屏"
2025
- }, [
2026
- z(y(Z), {
2027
- name: W.value ? "fullscreen-exit" : "fullscreen",
2028
- size: 16
2029
- }, null, 8, ["name"])
2030
- ], 8, Wo),
2031
- s("div", {
2032
- class: "mix-top-menu__action",
2033
- onClick: we,
2034
- title: "换肤设置"
2035
- }, [
2036
- z(y(Z), {
2037
- name: "skin",
2038
- size: 16
2039
- })
2040
- ]),
2041
- s("div", {
2042
- class: "mix-top-menu__action",
2043
- onClick: D,
2044
- title: "切换主题"
2045
- }, [
2046
- z(y(Z), {
2047
- name: y(m).isDark ? "sun" : "moon",
2048
- size: 16
2049
- }, null, 8, ["name"])
2050
- ]),
2051
- s("div", {
2052
- class: "mix-top-menu__user",
2053
- ref_key: "dropdownRef",
2054
- ref: L
2055
- }, [
2056
- s("div", {
2057
- class: "mix-top-menu__user-trigger",
2058
- onClick: it(Ce, ["stop"])
2059
- }, [
2060
- s("div", Xo, [
2061
- s("span", null, q(((u = y(b).userName) == null ? void 0 : u.charAt(0)) || "U"), 1)
2062
- ]),
2063
- s("span", Yo, q(y(b).userName), 1),
2064
- s("span", {
2065
- class: _e(["mix-top-menu__user-arrow", { "is-active": V.value }])
2066
- }, "▼", 2)
2067
- ]),
2068
- z(Ve, { name: "dropdown" }, {
2069
- default: X(() => {
2070
- var l;
2071
- return [
2072
- V.value ? (w(), E("div", Jo, [
2073
- s("div", Zo, [
2074
- s("div", Qo, [
2075
- s("span", null, q(((l = y(b).userName) == null ? void 0 : l.charAt(0)) || "U"), 1)
2076
- ]),
2077
- s("div", er, [
2078
- s("div", tr, q(y(b).userName), 1),
2079
- s("div", sr, q(y(b).departmentName), 1)
2080
- ])
2081
- ]),
2082
- a[8] || (a[8] = s("div", { class: "mix-top-menu__dropdown-divider" }, null, -1)),
2083
- s("div", nr, [
2084
- s("div", {
2085
- class: "mix-top-menu__dropdown-item",
2086
- onClick: B
2087
- }, [
2088
- z(y(Z), {
2089
- name: "user",
2090
- size: 16
2091
- }),
2092
- a[4] || (a[4] = s("span", null, "个人信息", -1))
2093
- ]),
2094
- s("div", {
2095
- class: "mix-top-menu__dropdown-item",
2096
- onClick: t
2097
- }, [
2098
- z(y(Z), {
2099
- name: "lock",
2100
- size: 16
2101
- }),
2102
- a[5] || (a[5] = s("span", null, "修改密码", -1))
2103
- ]),
2104
- a[7] || (a[7] = s("div", { class: "mix-top-menu__dropdown-divider" }, null, -1)),
2105
- s("div", {
2106
- class: "mix-top-menu__dropdown-item mix-top-menu__dropdown-item--danger",
2107
- onClick: e
2108
- }, [
2109
- z(y(Z), {
2110
- name: "logout",
2111
- size: 16
2112
- }),
2113
- a[6] || (a[6] = s("span", null, "退出登录", -1))
2114
- ])
2115
- ])
2116
- ])) : le("", !0)
2117
- ];
2118
- }),
2119
- _: 1
2120
- })
2121
- ], 512)
2122
- ]),
2123
- z(y(Nt), {
2124
- modelValue: Y.value,
2125
- "onUpdate:modelValue": a[2] || (a[2] = (l) => Y.value = l),
2126
- title: "换肤设置",
2127
- direction: "rtl",
2128
- size: "320px"
2129
- }, {
2130
- default: X(() => [
2131
- s("div", or, [
2132
- s("div", rr, [
2133
- a[12] || (a[12] = s("div", { class: "settings-title" }, "布局模式", -1)),
2134
- s("div", ar, [
2135
- (w(), E(he, null, ge(N, (l) => s("div", {
2136
- key: l.value,
2137
- class: _e(["layout-option", { "is-active": Ue.value === l.value }]),
2138
- onClick: (i) => Be(l.value)
2139
- }, [
2140
- s("div", ir, [
2141
- l.value === "sidebar" ? (w(), E("div", cr, [...a[9] || (a[9] = [
2142
- s("div", { class: "preview-aside" }, null, -1),
2143
- s("div", { class: "preview-main" }, [
2144
- s("div", { class: "preview-header" }),
2145
- s("div", { class: "preview-content" })
2146
- ], -1)
2147
- ])])) : l.value === "top" ? (w(), E("div", ur, [...a[10] || (a[10] = [
2148
- s("div", { class: "preview-header-full" }, null, -1),
2149
- s("div", { class: "preview-content-full" }, null, -1)
2150
- ])])) : (w(), E("div", dr, [...a[11] || (a[11] = [
2151
- s("div", { class: "preview-header-mix" }, [
2152
- s("div", { class: "preview-mix-left" })
2153
- ], -1),
2154
- s("div", { class: "preview-mix-body" }, [
2155
- s("div", { class: "preview-mix-aside" }),
2156
- s("div", { class: "preview-mix-content" })
2157
- ], -1)
2158
- ])]))
2159
- ]),
2160
- s("span", fr, q(l.label), 1)
2161
- ], 10, lr)), 64))
2162
- ])
2163
- ]),
2164
- s("div", pr, [
2165
- a[13] || (a[13] = s("div", { class: "settings-title" }, "主题色", -1)),
2166
- s("div", mr, [
2167
- (w(), E(he, null, ge(Me, (l) => s("div", {
2168
- key: l.value,
2169
- class: _e(["color-option", { "is-active": y(m).primaryColor === l.value }]),
2170
- style: Ye({ backgroundColor: l.value }),
2171
- title: l.label,
2172
- onClick: (i) => H(l.value)
2173
- }, [
2174
- y(m).primaryColor === l.value ? (w(), ce(y(Z), {
2175
- key: 0,
2176
- name: "check",
2177
- size: 12,
2178
- color: "#fff"
2179
- })) : le("", !0)
2180
- ], 14, hr)), 64))
2181
- ])
2182
- ]),
2183
- s("div", vr, [
2184
- a[18] || (a[18] = s("div", { class: "settings-title" }, "功能设置", -1)),
2185
- s("div", gr, [
2186
- s("div", _r, [
2187
- a[15] || (a[15] = s("span", null, "灰色模式", -1)),
2188
- s("div", {
2189
- class: _e(["switch-wrapper", { "is-checked": oe.value }]),
2190
- onClick: Ne
2191
- }, [...a[14] || (a[14] = [
2192
- s("span", { class: "switch-core" }, null, -1)
2193
- ])], 2)
2194
- ]),
2195
- s("div", wr, [
2196
- a[17] || (a[17] = s("span", null, "暗黑模式", -1)),
2197
- s("div", {
2198
- class: _e(["switch-wrapper", { "is-checked": y(m).isDark }]),
2199
- onClick: Oe
2200
- }, [...a[16] || (a[16] = [
2201
- s("span", { class: "switch-core" }, null, -1)
2202
- ])], 2)
2203
- ])
2204
- ])
2205
- ])
2206
- ])
2207
- ]),
2208
- _: 1
2209
- }, 8, ["modelValue"])
2210
- ]);
2211
- };
2212
- }
2213
- }), kr = /* @__PURE__ */ Se(yr, [["__scopeId", "data-v-25806305"]]), br = {
2214
- key: 0,
2215
- class: "layout layout--sidebar"
2216
- }, xr = { class: "layout__main" }, Cr = { class: "layout__header" }, Nr = { class: "layout__content" }, Er = {
2217
- key: 1,
2218
- class: "layout layout--top"
2219
- }, $r = { class: "layout__top-menu" }, Sr = { class: "layout__main" }, Mr = { class: "layout__content" }, Lr = {
2220
- key: 2,
2221
- class: "layout layout--mix"
2222
- }, Ir = { class: "layout__mix-top-menu" }, Ar = { class: "layout__mix-body" }, Tr = { class: "layout__content" }, Or = /* @__PURE__ */ Ae({
2223
- __name: "index",
2224
- setup(r) {
2225
- const d = Re(), v = Fe(), p = j(
2226
- () => d.isCollapsed ? "64px" : "210px"
2227
- ), m = j(() => d.layout), b = j(() => m.value === "mix"), A = j(() => m.value === "sidebar" ? v.menuList : m.value === "mix" ? d.mixSubMenus : []), g = j(() => b.value ? A.value.length > 0 : !1);
2228
- return (S, _) => {
2229
- const x = Pt("router-view");
2230
- return w(), E(he, null, [
2231
- m.value === "sidebar" ? (w(), E("div", br, [
2232
- s("aside", {
2233
- class: "layout__aside",
2234
- style: Ye({ width: p.value })
2235
- }, [
2236
- z(Bt, {
2237
- "menu-list": A.value,
2238
- "show-logo": !0,
2239
- "show-user": !0
2240
- }, null, 8, ["menu-list"])
2241
- ], 4),
2242
- s("div", xr, [
2243
- s("header", Cr, [
2244
- z(Cn)
2245
- ]),
2246
- s("main", Nr, [
2247
- z(x)
2248
- ])
2249
- ])
2250
- ])) : le("", !0),
2251
- m.value === "top" ? (w(), E("div", Er, [
2252
- s("div", $r, [
2253
- z(Io)
2254
- ]),
2255
- s("div", Sr, [
2256
- s("main", Mr, [
2257
- z(x)
2258
- ])
2259
- ])
2260
- ])) : le("", !0),
2261
- m.value === "mix" ? (w(), E("div", Lr, [
2262
- s("div", Ir, [
2263
- z(kr)
2264
- ]),
2265
- s("div", Ar, [
2266
- g.value ? (w(), E("aside", {
2267
- key: 0,
2268
- class: "layout__aside",
2269
- style: Ye({ width: p.value })
2270
- }, [
2271
- z(Bt, {
2272
- "menu-list": A.value,
2273
- "show-logo": !1,
2274
- "show-user": !1
2275
- }, null, 8, ["menu-list"])
2276
- ], 4)) : le("", !0),
2277
- s("main", Tr, [
2278
- z(x)
2279
- ])
2280
- ])
2281
- ])) : le("", !0)
2282
- ], 64);
2283
- };
2284
- }
2285
- }), Vt = /* @__PURE__ */ Se(Or, [["__scopeId", "data-v-fb6a0b14"]]), Ur = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2286
- __proto__: null,
2287
- default: Vt
2288
- }, Symbol.toStringTag, { value: "Module" })), Br = { class: "tabs-wrapper" }, Pr = { class: "tab-label" }, zr = ["onClick"], Rr = /* @__PURE__ */ Ae({
2289
- __name: "Tabs",
2290
- setup(r) {
2291
- const d = qe(), v = ze(), p = j(() => {
2292
- const g = [];
2293
- return d.matched.forEach((S) => {
2294
- var _;
2295
- (_ = S.meta) != null && _.affix && g.push({
2296
- name: S.name,
2297
- title: S.meta.title,
2298
- path: S.path,
2299
- affix: !0
2300
- });
2301
- }), g;
2302
- }), m = j(() => d.path), b = (g) => {
2303
- v.push(g);
2304
- }, A = (g) => {
2305
- const S = p.value.find((_) => _.path === g);
2306
- if (!(S != null && S.affix) && g === m.value) {
2307
- const _ = p.value.findIndex((M) => M.path === g), x = p.value[_ - 1] || p.value[_ + 1];
2308
- x && v.push(x.path);
2309
- }
2310
- };
2311
- return (g, S) => (w(), E("div", Br, [
2312
- z(y(ts), {
2313
- modelValue: m.value,
2314
- "onUpdate:modelValue": S[0] || (S[0] = (_) => m.value = _),
2315
- type: "card",
2316
- onTabClick: b
2317
- }, {
2318
- default: X(() => [
2319
- (w(!0), E(he, null, ge(p.value, (_) => (w(), ce(y(ss), {
2320
- key: _.path,
2321
- name: _.path,
2322
- label: _.title,
2323
- closable: !_.affix
2324
- }, {
2325
- label: X(() => [
2326
- s("span", Pr, [
2327
- De(q(_.title) + " ", 1),
2328
- _.affix ? le("", !0) : (w(), E("span", {
2329
- key: 0,
2330
- class: "tab-close",
2331
- onClick: it((x) => A(_.path), ["stop"])
2332
- }, " ✕ ", 8, zr))
2333
- ])
2334
- ]),
2335
- _: 2
2336
- }, 1032, ["name", "label", "closable"]))), 128))
2337
- ]),
2338
- _: 1
2339
- }, 8, ["modelValue"])
2340
- ]));
2341
- }
2342
- }), Ka = /* @__PURE__ */ Se(Rr, [["__scopeId", "data-v-9156d8cd"]]), Dr = {}, Fr = { class: "footer" };
2343
- function Vr(r, d) {
2344
- return w(), E("div", Fr, [...d[0] || (d[0] = [
2345
- s("span", null, "Copyright © 2024 Xto Demo. All Rights Reserved.", -1)
2346
- ])]);
2347
- }
2348
- const Ha = /* @__PURE__ */ Se(Dr, [["render", Vr], ["__scopeId", "data-v-4852826a"]]);
2349
- var jr = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
2350
- function qr(r) {
2351
- return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
2352
- }
2353
- var dt = { exports: {} }, jt = { exports: {} }, qt = { exports: {} };
2354
- (function(r) {
2355
- (function(d) {
2356
- var v, p = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, m = Math.ceil, b = Math.floor, A = "[BigNumber Error] ", g = A + "Number primitive has more than 15 significant digits: ", S = 1e14, _ = 14, x = 9007199254740991, M = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], C = 1e7, G = 1e9;
2357
- function Q(U) {
2358
- var I, J, ee, $ = N.prototype = { constructor: N, toString: null, valueOf: null }, re = new N(1), te = 20, D = 4, ie = -7, de = 21, Ce = -1e7, fe = 1e7, ke = !1, be = 1, we = 0, Te = {
2359
- prefix: "",
2360
- groupSize: 3,
2361
- secondaryGroupSize: 0,
2362
- groupSeparator: ",",
2363
- decimalSeparator: ".",
2364
- fractionGroupSize: 0,
2365
- fractionGroupSeparator: " ",
2366
- // non-breaking space
2367
- suffix: ""
2368
- }, Ne = "0123456789abcdefghijklmnopqrstuvwxyz", Oe = !0;
2369
- function N(t, e) {
2370
- var o, c, n, a, u, l, i, h, f = this;
2371
- if (!(f instanceof N)) return new N(t, e);
2372
- if (e == null) {
2373
- if (t && t._isBigNumber === !0) {
2374
- f.s = t.s, !t.c || t.e > fe ? f.c = f.e = null : t.e < Ce ? f.c = [f.e = 0] : (f.e = t.e, f.c = t.c.slice());
2375
- return;
2376
- }
2377
- if ((l = typeof t == "number") && t * 0 == 0) {
2378
- if (f.s = 1 / t < 0 ? (t = -t, -1) : 1, t === ~~t) {
2379
- for (a = 0, u = t; u >= 10; u /= 10, a++) ;
2380
- a > fe ? f.c = f.e = null : (f.e = a, f.c = [t]);
2381
- return;
2382
- }
2383
- h = String(t);
2384
- } else {
2385
- if (!p.test(h = String(t))) return ee(f, h, l);
2386
- f.s = h.charCodeAt(0) == 45 ? (h = h.slice(1), -1) : 1;
2387
- }
2388
- (a = h.indexOf(".")) > -1 && (h = h.replace(".", "")), (u = h.search(/e/i)) > 0 ? (a < 0 && (a = u), a += +h.slice(u + 1), h = h.substring(0, u)) : a < 0 && (a = h.length);
2389
- } else {
2390
- if (L(e, 2, Ne.length, "Base"), e == 10 && Oe)
2391
- return f = new N(t), H(f, te + f.e + 1, D);
2392
- if (h = String(t), l = typeof t == "number") {
2393
- if (t * 0 != 0) return ee(f, h, l, e);
2394
- if (f.s = 1 / t < 0 ? (h = h.slice(1), -1) : 1, N.DEBUG && h.replace(/^0\.0*|\./, "").length > 15)
2395
- throw Error(g + t);
2396
- } else
2397
- f.s = h.charCodeAt(0) === 45 ? (h = h.slice(1), -1) : 1;
2398
- for (o = Ne.slice(0, e), a = u = 0, i = h.length; u < i; u++)
2399
- if (o.indexOf(c = h.charAt(u)) < 0) {
2400
- if (c == ".") {
2401
- if (u > a) {
2402
- a = i;
2403
- continue;
2404
- }
2405
- } else if (!n && (h == h.toUpperCase() && (h = h.toLowerCase()) || h == h.toLowerCase() && (h = h.toUpperCase()))) {
2406
- n = !0, u = -1, a = 0;
2407
- continue;
2408
- }
2409
- return ee(f, String(t), l, e);
2410
- }
2411
- l = !1, h = J(h, e, 10, f.s), (a = h.indexOf(".")) > -1 ? h = h.replace(".", "") : a = h.length;
2412
- }
2413
- for (u = 0; h.charCodeAt(u) === 48; u++) ;
2414
- for (i = h.length; h.charCodeAt(--i) === 48; ) ;
2415
- if (h = h.slice(u, ++i)) {
2416
- if (i -= u, l && N.DEBUG && i > 15 && (t > x || t !== b(t)))
2417
- throw Error(g + f.s * t);
2418
- if ((a = a - u - 1) > fe)
2419
- f.c = f.e = null;
2420
- else if (a < Ce)
2421
- f.c = [f.e = 0];
2422
- else {
2423
- if (f.e = a, f.c = [], u = (a + 1) % _, a < 0 && (u += _), u < i) {
2424
- for (u && f.c.push(+h.slice(0, u)), i -= _; u < i; )
2425
- f.c.push(+h.slice(u, u += _));
2426
- u = _ - (h = h.slice(u)).length;
2427
- } else
2428
- u -= i;
2429
- for (; u--; h += "0") ;
2430
- f.c.push(+h);
2431
- }
2432
- } else
2433
- f.c = [f.e = 0];
2434
- }
2435
- N.clone = Q, N.ROUND_UP = 0, N.ROUND_DOWN = 1, N.ROUND_CEIL = 2, N.ROUND_FLOOR = 3, N.ROUND_HALF_UP = 4, N.ROUND_HALF_DOWN = 5, N.ROUND_HALF_EVEN = 6, N.ROUND_HALF_CEIL = 7, N.ROUND_HALF_FLOOR = 8, N.EUCLID = 9, N.config = N.set = function(t) {
2436
- var e, o;
2437
- if (t != null)
2438
- if (typeof t == "object") {
2439
- if (t.hasOwnProperty(e = "DECIMAL_PLACES") && (o = t[e], L(o, 0, G, e), te = o), t.hasOwnProperty(e = "ROUNDING_MODE") && (o = t[e], L(o, 0, 8, e), D = o), t.hasOwnProperty(e = "EXPONENTIAL_AT") && (o = t[e], o && o.pop ? (L(o[0], -G, 0, e), L(o[1], 0, G, e), ie = o[0], de = o[1]) : (L(o, -G, G, e), ie = -(de = o < 0 ? -o : o))), t.hasOwnProperty(e = "RANGE"))
2440
- if (o = t[e], o && o.pop)
2441
- L(o[0], -G, -1, e), L(o[1], 1, G, e), Ce = o[0], fe = o[1];
2442
- else if (L(o, -G, G, e), o)
2443
- Ce = -(fe = o < 0 ? -o : o);
2444
- else
2445
- throw Error(A + e + " cannot be zero: " + o);
2446
- if (t.hasOwnProperty(e = "CRYPTO"))
2447
- if (o = t[e], o === !!o)
2448
- if (o)
2449
- if (typeof crypto < "u" && crypto && (crypto.getRandomValues || crypto.randomBytes))
2450
- ke = o;
2451
- else
2452
- throw ke = !o, Error(A + "crypto unavailable");
2453
- else
2454
- ke = o;
2455
- else
2456
- throw Error(A + e + " not true or false: " + o);
2457
- if (t.hasOwnProperty(e = "MODULO_MODE") && (o = t[e], L(o, 0, 9, e), be = o), t.hasOwnProperty(e = "POW_PRECISION") && (o = t[e], L(o, 0, G, e), we = o), t.hasOwnProperty(e = "FORMAT"))
2458
- if (o = t[e], typeof o == "object") Te = o;
2459
- else throw Error(A + e + " not an object: " + o);
2460
- if (t.hasOwnProperty(e = "ALPHABET"))
2461
- if (o = t[e], typeof o == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(o))
2462
- Oe = o.slice(0, 10) == "0123456789", Ne = o;
2463
- else
2464
- throw Error(A + e + " invalid: " + o);
2465
- } else
2466
- throw Error(A + "Object expected: " + t);
2467
- return {
2468
- DECIMAL_PLACES: te,
2469
- ROUNDING_MODE: D,
2470
- EXPONENTIAL_AT: [ie, de],
2471
- RANGE: [Ce, fe],
2472
- CRYPTO: ke,
2473
- MODULO_MODE: be,
2474
- POW_PRECISION: we,
2475
- FORMAT: Te,
2476
- ALPHABET: Ne
2477
- };
2478
- }, N.isBigNumber = function(t) {
2479
- if (!t || t._isBigNumber !== !0) return !1;
2480
- if (!N.DEBUG) return !0;
2481
- var e, o, c = t.c, n = t.e, a = t.s;
2482
- e: if ({}.toString.call(c) == "[object Array]") {
2483
- if ((a === 1 || a === -1) && n >= -G && n <= G && n === b(n)) {
2484
- if (c[0] === 0) {
2485
- if (n === 0 && c.length === 1) return !0;
2486
- break e;
2487
- }
2488
- if (e = (n + 1) % _, e < 1 && (e += _), String(c[0]).length == e) {
2489
- for (e = 0; e < c.length; e++)
2490
- if (o = c[e], o < 0 || o >= S || o !== b(o)) break e;
2491
- if (o !== 0) return !0;
2492
- }
2493
- }
2494
- } else if (c === null && n === null && (a === null || a === 1 || a === -1))
2495
- return !0;
2496
- throw Error(A + "Invalid BigNumber: " + t);
2497
- }, N.maximum = N.max = function() {
2498
- return Be(arguments, -1);
2499
- }, N.minimum = N.min = function() {
2500
- return Be(arguments, 1);
2501
- }, N.random = function() {
2502
- var t = 9007199254740992, e = Math.random() * t & 2097151 ? function() {
2503
- return b(Math.random() * t);
2504
- } : function() {
2505
- return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
2506
- };
2507
- return function(o) {
2508
- var c, n, a, u, l, i = 0, h = [], f = new N(re);
2509
- if (o == null ? o = te : L(o, 0, G), u = m(o / _), ke)
2510
- if (crypto.getRandomValues) {
2511
- for (c = crypto.getRandomValues(new Uint32Array(u *= 2)); i < u; )
2512
- l = c[i] * 131072 + (c[i + 1] >>> 11), l >= 9e15 ? (n = crypto.getRandomValues(new Uint32Array(2)), c[i] = n[0], c[i + 1] = n[1]) : (h.push(l % 1e14), i += 2);
2513
- i = u / 2;
2514
- } else if (crypto.randomBytes) {
2515
- for (c = crypto.randomBytes(u *= 7); i < u; )
2516
- l = (c[i] & 31) * 281474976710656 + c[i + 1] * 1099511627776 + c[i + 2] * 4294967296 + c[i + 3] * 16777216 + (c[i + 4] << 16) + (c[i + 5] << 8) + c[i + 6], l >= 9e15 ? crypto.randomBytes(7).copy(c, i) : (h.push(l % 1e14), i += 7);
2517
- i = u / 7;
2518
- } else
2519
- throw ke = !1, Error(A + "crypto unavailable");
2520
- if (!ke)
2521
- for (; i < u; )
2522
- l = e(), l < 9e15 && (h[i++] = l % 1e14);
2523
- for (u = h[--i], o %= _, u && o && (l = M[_ - o], h[i] = b(u / l) * l); h[i] === 0; h.pop(), i--) ;
2524
- if (i < 0)
2525
- h = [a = 0];
2526
- else {
2527
- for (a = -1; h[0] === 0; h.splice(0, 1), a -= _) ;
2528
- for (i = 1, l = h[0]; l >= 10; l /= 10, i++) ;
2529
- i < _ && (a -= _ - i);
2530
- }
2531
- return f.e = a, f.c = h, f;
2532
- };
2533
- }(), N.sum = function() {
2534
- for (var t = 1, e = arguments, o = new N(e[0]); t < e.length; ) o = o.plus(e[t++]);
2535
- return o;
2536
- }, J = /* @__PURE__ */ function() {
2537
- var t = "0123456789";
2538
- function e(o, c, n, a) {
2539
- for (var u, l = [0], i, h = 0, f = o.length; h < f; ) {
2540
- for (i = l.length; i--; l[i] *= c) ;
2541
- for (l[0] += a.indexOf(o.charAt(h++)), u = 0; u < l.length; u++)
2542
- l[u] > n - 1 && (l[u + 1] == null && (l[u + 1] = 0), l[u + 1] += l[u] / n | 0, l[u] %= n);
2543
- }
2544
- return l.reverse();
2545
- }
2546
- return function(o, c, n, a, u) {
2547
- var l, i, h, f, k, R, F, ne, pe = o.indexOf("."), ve = te, se = D;
2548
- for (pe >= 0 && (f = we, we = 0, o = o.replace(".", ""), ne = new N(c), R = ne.pow(o.length - pe), we = f, ne.c = e(
2549
- oe(T(R.c), R.e, "0"),
2550
- 10,
2551
- n,
2552
- t
2553
- ), ne.e = ne.c.length), F = e(o, c, n, u ? (l = Ne, t) : (l = t, Ne)), h = f = F.length; F[--f] == 0; F.pop()) ;
2554
- if (!F[0]) return l.charAt(0);
2555
- if (pe < 0 ? --h : (R.c = F, R.e = h, R.s = a, R = I(R, ne, ve, se, n), F = R.c, k = R.r, h = R.e), i = h + ve + 1, pe = F[i], f = n / 2, k = k || i < 0 || F[i + 1] != null, k = se < 4 ? (pe != null || k) && (se == 0 || se == (R.s < 0 ? 3 : 2)) : pe > f || pe == f && (se == 4 || k || se == 6 && F[i - 1] & 1 || se == (R.s < 0 ? 8 : 7)), i < 1 || !F[0])
2556
- o = k ? oe(l.charAt(1), -ve, l.charAt(0)) : l.charAt(0);
2557
- else {
2558
- if (F.length = i, k)
2559
- for (--n; ++F[--i] > n; )
2560
- F[i] = 0, i || (++h, F = [1].concat(F));
2561
- for (f = F.length; !F[--f]; ) ;
2562
- for (pe = 0, o = ""; pe <= f; o += l.charAt(F[pe++])) ;
2563
- o = oe(o, h, l.charAt(0));
2564
- }
2565
- return o;
2566
- };
2567
- }(), I = /* @__PURE__ */ function() {
2568
- function t(c, n, a) {
2569
- var u, l, i, h, f = 0, k = c.length, R = n % C, F = n / C | 0;
2570
- for (c = c.slice(); k--; )
2571
- i = c[k] % C, h = c[k] / C | 0, u = F * i + h * R, l = R * i + u % C * C + f, f = (l / a | 0) + (u / C | 0) + F * h, c[k] = l % a;
2572
- return f && (c = [f].concat(c)), c;
2573
- }
2574
- function e(c, n, a, u) {
2575
- var l, i;
2576
- if (a != u)
2577
- i = a > u ? 1 : -1;
2578
- else
2579
- for (l = i = 0; l < a; l++)
2580
- if (c[l] != n[l]) {
2581
- i = c[l] > n[l] ? 1 : -1;
2582
- break;
2583
- }
2584
- return i;
2585
- }
2586
- function o(c, n, a, u) {
2587
- for (var l = 0; a--; )
2588
- c[a] -= l, l = c[a] < n[a] ? 1 : 0, c[a] = l * u + c[a] - n[a];
2589
- for (; !c[0] && c.length > 1; c.splice(0, 1)) ;
2590
- }
2591
- return function(c, n, a, u, l) {
2592
- var i, h, f, k, R, F, ne, pe, ve, se, ae, ye, Qe, ft, pt, Le, Ge, Ee = c.s == n.s ? 1 : -1, xe = c.c, me = n.c;
2593
- if (!xe || !xe[0] || !me || !me[0])
2594
- return new N(
2595
- // Return NaN if either NaN, or both Infinity or 0.
2596
- !c.s || !n.s || (xe ? me && xe[0] == me[0] : !me) ? NaN : (
2597
- // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.
2598
- xe && xe[0] == 0 || !me ? Ee * 0 : Ee / 0
2599
- )
2600
- );
2601
- for (pe = new N(Ee), ve = pe.c = [], h = c.e - n.e, Ee = a + h + 1, l || (l = S, h = O(c.e / _) - O(n.e / _), Ee = Ee / _ | 0), f = 0; me[f] == (xe[f] || 0); f++) ;
2602
- if (me[f] > (xe[f] || 0) && h--, Ee < 0)
2603
- ve.push(1), k = !0;
2604
- else {
2605
- for (ft = xe.length, Le = me.length, f = 0, Ee += 2, R = b(l / (me[0] + 1)), R > 1 && (me = t(me, R, l), xe = t(xe, R, l), Le = me.length, ft = xe.length), Qe = Le, se = xe.slice(0, Le), ae = se.length; ae < Le; se[ae++] = 0) ;
2606
- Ge = me.slice(), Ge = [0].concat(Ge), pt = me[0], me[1] >= l / 2 && pt++;
2607
- do {
2608
- if (R = 0, i = e(me, se, Le, ae), i < 0) {
2609
- if (ye = se[0], Le != ae && (ye = ye * l + (se[1] || 0)), R = b(ye / pt), R > 1)
2610
- for (R >= l && (R = l - 1), F = t(me, R, l), ne = F.length, ae = se.length; e(F, se, ne, ae) == 1; )
2611
- R--, o(F, Le < ne ? Ge : me, ne, l), ne = F.length, i = 1;
2612
- else
2613
- R == 0 && (i = R = 1), F = me.slice(), ne = F.length;
2614
- if (ne < ae && (F = [0].concat(F)), o(se, F, ae, l), ae = se.length, i == -1)
2615
- for (; e(me, se, Le, ae) < 1; )
2616
- R++, o(se, Le < ae ? Ge : me, ae, l), ae = se.length;
2617
- } else i === 0 && (R++, se = [0]);
2618
- ve[f++] = R, se[0] ? se[ae++] = xe[Qe] || 0 : (se = [xe[Qe]], ae = 1);
2619
- } while ((Qe++ < ft || se[0] != null) && Ee--);
2620
- k = se[0] != null, ve[0] || ve.splice(0, 1);
2621
- }
2622
- if (l == S) {
2623
- for (f = 1, Ee = ve[0]; Ee >= 10; Ee /= 10, f++) ;
2624
- H(pe, a + (pe.e = f + h * _ - 1) + 1, u, k);
2625
- } else
2626
- pe.e = h, pe.r = +k;
2627
- return pe;
2628
- };
2629
- }();
2630
- function Ue(t, e, o, c) {
2631
- var n, a, u, l, i;
2632
- if (o == null ? o = D : L(o, 0, 8), !t.c) return t.toString();
2633
- if (n = t.c[0], u = t.e, e == null)
2634
- i = T(t.c), i = c == 1 || c == 2 && (u <= ie || u >= de) ? Y(i, u) : oe(i, u, "0");
2635
- else if (t = H(new N(t), e, o), a = t.e, i = T(t.c), l = i.length, c == 1 || c == 2 && (e <= a || a <= ie)) {
2636
- for (; l < e; i += "0", l++) ;
2637
- i = Y(i, a);
2638
- } else if (e -= u + (c === 2 && a > u), i = oe(i, a, "0"), a + 1 > l) {
2639
- if (--e > 0) for (i += "."; e--; i += "0") ;
2640
- } else if (e += a - l, e > 0)
2641
- for (a + 1 == l && (i += "."); e--; i += "0") ;
2642
- return t.s < 0 && n ? "-" + i : i;
2643
- }
2644
- function Be(t, e) {
2645
- for (var o, c, n = 1, a = new N(t[0]); n < t.length; n++)
2646
- c = new N(t[n]), (!c.s || (o = V(a, c)) === e || o === 0 && a.s === e) && (a = c);
2647
- return a;
2648
- }
2649
- function Me(t, e, o) {
2650
- for (var c = 1, n = e.length; !e[--n]; e.pop()) ;
2651
- for (n = e[0]; n >= 10; n /= 10, c++) ;
2652
- return (o = c + o * _ - 1) > fe ? t.c = t.e = null : o < Ce ? t.c = [t.e = 0] : (t.e = o, t.c = e), t;
2653
- }
2654
- ee = /* @__PURE__ */ function() {
2655
- var t = /^(-?)0([xbo])(?=\w[\w.]*$)/i, e = /^([^.]+)\.$/, o = /^\.([^.]+)$/, c = /^-?(Infinity|NaN)$/, n = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
2656
- return function(a, u, l, i) {
2657
- var h, f = l ? u : u.replace(n, "");
2658
- if (c.test(f))
2659
- a.s = isNaN(f) ? null : f < 0 ? -1 : 1;
2660
- else {
2661
- if (!l && (f = f.replace(t, function(k, R, F) {
2662
- return h = (F = F.toLowerCase()) == "x" ? 16 : F == "b" ? 2 : 8, !i || i == h ? R : k;
2663
- }), i && (h = i, f = f.replace(e, "$1").replace(o, "0.$1")), u != f))
2664
- return new N(f, h);
2665
- if (N.DEBUG)
2666
- throw Error(A + "Not a" + (i ? " base " + i : "") + " number: " + u);
2667
- a.s = null;
2668
- }
2669
- a.c = a.e = null;
2670
- };
2671
- }();
2672
- function H(t, e, o, c) {
2673
- var n, a, u, l, i, h, f, k = t.c, R = M;
2674
- if (k) {
2675
- e: {
2676
- for (n = 1, l = k[0]; l >= 10; l /= 10, n++) ;
2677
- if (a = e - n, a < 0)
2678
- a += _, u = e, i = k[h = 0], f = b(i / R[n - u - 1] % 10);
2679
- else if (h = m((a + 1) / _), h >= k.length)
2680
- if (c) {
2681
- for (; k.length <= h; k.push(0)) ;
2682
- i = f = 0, n = 1, a %= _, u = a - _ + 1;
2683
- } else
2684
- break e;
2685
- else {
2686
- for (i = l = k[h], n = 1; l >= 10; l /= 10, n++) ;
2687
- a %= _, u = a - _ + n, f = u < 0 ? 0 : b(i / R[n - u - 1] % 10);
2688
- }
2689
- if (c = c || e < 0 || // Are there any non-zero digits after the rounding digit?
2690
- // The expression n % pows10[d - j - 1] returns all digits of n to the right
2691
- // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.
2692
- k[h + 1] != null || (u < 0 ? i : i % R[n - u - 1]), c = o < 4 ? (f || c) && (o == 0 || o == (t.s < 0 ? 3 : 2)) : f > 5 || f == 5 && (o == 4 || c || o == 6 && // Check whether the digit to the left of the rounding digit is odd.
2693
- (a > 0 ? u > 0 ? i / R[n - u] : 0 : k[h - 1]) % 10 & 1 || o == (t.s < 0 ? 8 : 7)), e < 1 || !k[0])
2694
- return k.length = 0, c ? (e -= t.e + 1, k[0] = R[(_ - e % _) % _], t.e = -e || 0) : k[0] = t.e = 0, t;
2695
- if (a == 0 ? (k.length = h, l = 1, h--) : (k.length = h + 1, l = R[_ - a], k[h] = u > 0 ? b(i / R[n - u] % R[u]) * l : 0), c)
2696
- for (; ; )
2697
- if (h == 0) {
2698
- for (a = 1, u = k[0]; u >= 10; u /= 10, a++) ;
2699
- for (u = k[0] += l, l = 1; u >= 10; u /= 10, l++) ;
2700
- a != l && (t.e++, k[0] == S && (k[0] = 1));
2701
- break;
2702
- } else {
2703
- if (k[h] += l, k[h] != S) break;
2704
- k[h--] = 0, l = 1;
2705
- }
2706
- for (a = k.length; k[--a] === 0; k.pop()) ;
2707
- }
2708
- t.e > fe ? t.c = t.e = null : t.e < Ce && (t.c = [t.e = 0]);
2709
- }
2710
- return t;
2711
- }
2712
- function B(t) {
2713
- var e, o = t.e;
2714
- return o === null ? t.toString() : (e = T(t.c), e = o <= ie || o >= de ? Y(e, o) : oe(e, o, "0"), t.s < 0 ? "-" + e : e);
2715
- }
2716
- return $.absoluteValue = $.abs = function() {
2717
- var t = new N(this);
2718
- return t.s < 0 && (t.s = 1), t;
2719
- }, $.comparedTo = function(t, e) {
2720
- return V(this, new N(t, e));
2721
- }, $.decimalPlaces = $.dp = function(t, e) {
2722
- var o, c, n, a = this;
2723
- if (t != null)
2724
- return L(t, 0, G), e == null ? e = D : L(e, 0, 8), H(new N(a), t + a.e + 1, e);
2725
- if (!(o = a.c)) return null;
2726
- if (c = ((n = o.length - 1) - O(this.e / _)) * _, n = o[n]) for (; n % 10 == 0; n /= 10, c--) ;
2727
- return c < 0 && (c = 0), c;
2728
- }, $.dividedBy = $.div = function(t, e) {
2729
- return I(this, new N(t, e), te, D);
2730
- }, $.dividedToIntegerBy = $.idiv = function(t, e) {
2731
- return I(this, new N(t, e), 0, 1);
2732
- }, $.exponentiatedBy = $.pow = function(t, e) {
2733
- var o, c, n, a, u, l, i, h, f, k = this;
2734
- if (t = new N(t), t.c && !t.isInteger())
2735
- throw Error(A + "Exponent not an integer: " + B(t));
2736
- if (e != null && (e = new N(e)), l = t.e > 14, !k.c || !k.c[0] || k.c[0] == 1 && !k.e && k.c.length == 1 || !t.c || !t.c[0])
2737
- return f = new N(Math.pow(+B(k), l ? t.s * (2 - W(t)) : +B(t))), e ? f.mod(e) : f;
2738
- if (i = t.s < 0, e) {
2739
- if (e.c ? !e.c[0] : !e.s) return new N(NaN);
2740
- c = !i && k.isInteger() && e.isInteger(), c && (k = k.mod(e));
2741
- } else {
2742
- if (t.e > 9 && (k.e > 0 || k.e < -1 || (k.e == 0 ? k.c[0] > 1 || l && k.c[1] >= 24e7 : k.c[0] < 8e13 || l && k.c[0] <= 9999975e7)))
2743
- return a = k.s < 0 && W(t) ? -0 : 0, k.e > -1 && (a = 1 / a), new N(i ? 1 / a : a);
2744
- we && (a = m(we / _ + 2));
2745
- }
2746
- for (l ? (o = new N(0.5), i && (t.s = 1), h = W(t)) : (n = Math.abs(+B(t)), h = n % 2), f = new N(re); ; ) {
2747
- if (h) {
2748
- if (f = f.times(k), !f.c) break;
2749
- a ? f.c.length > a && (f.c.length = a) : c && (f = f.mod(e));
2750
- }
2751
- if (n) {
2752
- if (n = b(n / 2), n === 0) break;
2753
- h = n % 2;
2754
- } else if (t = t.times(o), H(t, t.e + 1, 1), t.e > 14)
2755
- h = W(t);
2756
- else {
2757
- if (n = +B(t), n === 0) break;
2758
- h = n % 2;
2759
- }
2760
- k = k.times(k), a ? k.c && k.c.length > a && (k.c.length = a) : c && (k = k.mod(e));
2761
- }
2762
- return c ? f : (i && (f = re.div(f)), e ? f.mod(e) : a ? H(f, we, D, u) : f);
2763
- }, $.integerValue = function(t) {
2764
- var e = new N(this);
2765
- return t == null ? t = D : L(t, 0, 8), H(e, e.e + 1, t);
2766
- }, $.isEqualTo = $.eq = function(t, e) {
2767
- return V(this, new N(t, e)) === 0;
2768
- }, $.isFinite = function() {
2769
- return !!this.c;
2770
- }, $.isGreaterThan = $.gt = function(t, e) {
2771
- return V(this, new N(t, e)) > 0;
2772
- }, $.isGreaterThanOrEqualTo = $.gte = function(t, e) {
2773
- return (e = V(this, new N(t, e))) === 1 || e === 0;
2774
- }, $.isInteger = function() {
2775
- return !!this.c && O(this.e / _) > this.c.length - 2;
2776
- }, $.isLessThan = $.lt = function(t, e) {
2777
- return V(this, new N(t, e)) < 0;
2778
- }, $.isLessThanOrEqualTo = $.lte = function(t, e) {
2779
- return (e = V(this, new N(t, e))) === -1 || e === 0;
2780
- }, $.isNaN = function() {
2781
- return !this.s;
2782
- }, $.isNegative = function() {
2783
- return this.s < 0;
2784
- }, $.isPositive = function() {
2785
- return this.s > 0;
2786
- }, $.isZero = function() {
2787
- return !!this.c && this.c[0] == 0;
2788
- }, $.minus = function(t, e) {
2789
- var o, c, n, a, u = this, l = u.s;
2790
- if (t = new N(t, e), e = t.s, !l || !e) return new N(NaN);
2791
- if (l != e)
2792
- return t.s = -e, u.plus(t);
2793
- var i = u.e / _, h = t.e / _, f = u.c, k = t.c;
2794
- if (!i || !h) {
2795
- if (!f || !k) return f ? (t.s = -e, t) : new N(k ? u : NaN);
2796
- if (!f[0] || !k[0])
2797
- return k[0] ? (t.s = -e, t) : new N(f[0] ? u : (
2798
- // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity
2799
- D == 3 ? -0 : 0
2800
- ));
2801
- }
2802
- if (i = O(i), h = O(h), f = f.slice(), l = i - h) {
2803
- for ((a = l < 0) ? (l = -l, n = f) : (h = i, n = k), n.reverse(), e = l; e--; n.push(0)) ;
2804
- n.reverse();
2805
- } else
2806
- for (c = (a = (l = f.length) < (e = k.length)) ? l : e, l = e = 0; e < c; e++)
2807
- if (f[e] != k[e]) {
2808
- a = f[e] < k[e];
2809
- break;
2810
- }
2811
- if (a && (n = f, f = k, k = n, t.s = -t.s), e = (c = k.length) - (o = f.length), e > 0) for (; e--; f[o++] = 0) ;
2812
- for (e = S - 1; c > l; ) {
2813
- if (f[--c] < k[c]) {
2814
- for (o = c; o && !f[--o]; f[o] = e) ;
2815
- --f[o], f[c] += S;
2816
- }
2817
- f[c] -= k[c];
2818
- }
2819
- for (; f[0] == 0; f.splice(0, 1), --h) ;
2820
- return f[0] ? Me(t, f, h) : (t.s = D == 3 ? -1 : 1, t.c = [t.e = 0], t);
2821
- }, $.modulo = $.mod = function(t, e) {
2822
- var o, c, n = this;
2823
- return t = new N(t, e), !n.c || !t.s || t.c && !t.c[0] ? new N(NaN) : !t.c || n.c && !n.c[0] ? new N(n) : (be == 9 ? (c = t.s, t.s = 1, o = I(n, t, 0, 3), t.s = c, o.s *= c) : o = I(n, t, 0, be), t = n.minus(o.times(t)), !t.c[0] && be == 1 && (t.s = n.s), t);
2824
- }, $.multipliedBy = $.times = function(t, e) {
2825
- var o, c, n, a, u, l, i, h, f, k, R, F, ne, pe, ve, se = this, ae = se.c, ye = (t = new N(t, e)).c;
2826
- if (!ae || !ye || !ae[0] || !ye[0])
2827
- return !se.s || !t.s || ae && !ae[0] && !ye || ye && !ye[0] && !ae ? t.c = t.e = t.s = null : (t.s *= se.s, !ae || !ye ? t.c = t.e = null : (t.c = [0], t.e = 0)), t;
2828
- for (c = O(se.e / _) + O(t.e / _), t.s *= se.s, i = ae.length, k = ye.length, i < k && (ne = ae, ae = ye, ye = ne, n = i, i = k, k = n), n = i + k, ne = []; n--; ne.push(0)) ;
2829
- for (pe = S, ve = C, n = k; --n >= 0; ) {
2830
- for (o = 0, R = ye[n] % ve, F = ye[n] / ve | 0, u = i, a = n + u; a > n; )
2831
- h = ae[--u] % ve, f = ae[u] / ve | 0, l = F * h + f * R, h = R * h + l % ve * ve + ne[a] + o, o = (h / pe | 0) + (l / ve | 0) + F * f, ne[a--] = h % pe;
2832
- ne[a] = o;
2833
- }
2834
- return o ? ++c : ne.splice(0, 1), Me(t, ne, c);
2835
- }, $.negated = function() {
2836
- var t = new N(this);
2837
- return t.s = -t.s || null, t;
2838
- }, $.plus = function(t, e) {
2839
- var o, c = this, n = c.s;
2840
- if (t = new N(t, e), e = t.s, !n || !e) return new N(NaN);
2841
- if (n != e)
2842
- return t.s = -e, c.minus(t);
2843
- var a = c.e / _, u = t.e / _, l = c.c, i = t.c;
2844
- if (!a || !u) {
2845
- if (!l || !i) return new N(n / 0);
2846
- if (!l[0] || !i[0]) return i[0] ? t : new N(l[0] ? c : n * 0);
2847
- }
2848
- if (a = O(a), u = O(u), l = l.slice(), n = a - u) {
2849
- for (n > 0 ? (u = a, o = i) : (n = -n, o = l), o.reverse(); n--; o.push(0)) ;
2850
- o.reverse();
2851
- }
2852
- for (n = l.length, e = i.length, n - e < 0 && (o = i, i = l, l = o, e = n), n = 0; e; )
2853
- n = (l[--e] = l[e] + i[e] + n) / S | 0, l[e] = S === l[e] ? 0 : l[e] % S;
2854
- return n && (l = [n].concat(l), ++u), Me(t, l, u);
2855
- }, $.precision = $.sd = function(t, e) {
2856
- var o, c, n, a = this;
2857
- if (t != null && t !== !!t)
2858
- return L(t, 1, G), e == null ? e = D : L(e, 0, 8), H(new N(a), t, e);
2859
- if (!(o = a.c)) return null;
2860
- if (n = o.length - 1, c = n * _ + 1, n = o[n]) {
2861
- for (; n % 10 == 0; n /= 10, c--) ;
2862
- for (n = o[0]; n >= 10; n /= 10, c++) ;
2863
- }
2864
- return t && a.e + 1 > c && (c = a.e + 1), c;
2865
- }, $.shiftedBy = function(t) {
2866
- return L(t, -x, x), this.times("1e" + t);
2867
- }, $.squareRoot = $.sqrt = function() {
2868
- var t, e, o, c, n, a = this, u = a.c, l = a.s, i = a.e, h = te + 4, f = new N("0.5");
2869
- if (l !== 1 || !u || !u[0])
2870
- return new N(!l || l < 0 && (!u || u[0]) ? NaN : u ? a : 1 / 0);
2871
- if (l = Math.sqrt(+B(a)), l == 0 || l == 1 / 0 ? (e = T(u), (e.length + i) % 2 == 0 && (e += "0"), l = Math.sqrt(+e), i = O((i + 1) / 2) - (i < 0 || i % 2), l == 1 / 0 ? e = "5e" + i : (e = l.toExponential(), e = e.slice(0, e.indexOf("e") + 1) + i), o = new N(e)) : o = new N(l + ""), o.c[0]) {
2872
- for (i = o.e, l = i + h, l < 3 && (l = 0); ; )
2873
- if (n = o, o = f.times(n.plus(I(a, n, h, 1))), T(n.c).slice(0, l) === (e = T(o.c)).slice(0, l))
2874
- if (o.e < i && --l, e = e.slice(l - 3, l + 1), e == "9999" || !c && e == "4999") {
2875
- if (!c && (H(n, n.e + te + 2, 0), n.times(n).eq(a))) {
2876
- o = n;
2877
- break;
2878
- }
2879
- h += 4, l += 4, c = 1;
2880
- } else {
2881
- (!+e || !+e.slice(1) && e.charAt(0) == "5") && (H(o, o.e + te + 2, 1), t = !o.times(o).eq(a));
2882
- break;
2883
- }
2884
- }
2885
- return H(o, o.e + te + 1, D, t);
2886
- }, $.toExponential = function(t, e) {
2887
- return t != null && (L(t, 0, G), t++), Ue(this, t, e, 1);
2888
- }, $.toFixed = function(t, e) {
2889
- return t != null && (L(t, 0, G), t = t + this.e + 1), Ue(this, t, e);
2890
- }, $.toFormat = function(t, e, o) {
2891
- var c, n = this;
2892
- if (o == null)
2893
- t != null && e && typeof e == "object" ? (o = e, e = null) : t && typeof t == "object" ? (o = t, t = e = null) : o = Te;
2894
- else if (typeof o != "object")
2895
- throw Error(A + "Argument not an object: " + o);
2896
- if (c = n.toFixed(t, e), n.c) {
2897
- var a, u = c.split("."), l = +o.groupSize, i = +o.secondaryGroupSize, h = o.groupSeparator || "", f = u[0], k = u[1], R = n.s < 0, F = R ? f.slice(1) : f, ne = F.length;
2898
- if (i && (a = l, l = i, i = a, ne -= a), l > 0 && ne > 0) {
2899
- for (a = ne % l || l, f = F.substr(0, a); a < ne; a += l) f += h + F.substr(a, l);
2900
- i > 0 && (f += h + F.slice(a)), R && (f = "-" + f);
2901
- }
2902
- c = k ? f + (o.decimalSeparator || "") + ((i = +o.fractionGroupSize) ? k.replace(
2903
- new RegExp("\\d{" + i + "}\\B", "g"),
2904
- "$&" + (o.fractionGroupSeparator || "")
2905
- ) : k) : f;
2906
- }
2907
- return (o.prefix || "") + c + (o.suffix || "");
2908
- }, $.toFraction = function(t) {
2909
- var e, o, c, n, a, u, l, i, h, f, k, R, F = this, ne = F.c;
2910
- if (t != null && (l = new N(t), !l.isInteger() && (l.c || l.s !== 1) || l.lt(re)))
2911
- throw Error(A + "Argument " + (l.isInteger() ? "out of range: " : "not an integer: ") + B(l));
2912
- if (!ne) return new N(F);
2913
- for (e = new N(re), h = o = new N(re), c = i = new N(re), R = T(ne), a = e.e = R.length - F.e - 1, e.c[0] = M[(u = a % _) < 0 ? _ + u : u], t = !t || l.comparedTo(e) > 0 ? a > 0 ? e : h : l, u = fe, fe = 1 / 0, l = new N(R), i.c[0] = 0; f = I(l, e, 0, 1), n = o.plus(f.times(c)), n.comparedTo(t) != 1; )
2914
- o = c, c = n, h = i.plus(f.times(n = h)), i = n, e = l.minus(f.times(n = e)), l = n;
2915
- return n = I(t.minus(o), c, 0, 1), i = i.plus(n.times(h)), o = o.plus(n.times(c)), i.s = h.s = F.s, a = a * 2, k = I(h, c, a, D).minus(F).abs().comparedTo(
2916
- I(i, o, a, D).minus(F).abs()
2917
- ) < 1 ? [h, c] : [i, o], fe = u, k;
2918
- }, $.toNumber = function() {
2919
- return +B(this);
2920
- }, $.toPrecision = function(t, e) {
2921
- return t != null && L(t, 1, G), Ue(this, t, e, 2);
2922
- }, $.toString = function(t) {
2923
- var e, o = this, c = o.s, n = o.e;
2924
- return n === null ? c ? (e = "Infinity", c < 0 && (e = "-" + e)) : e = "NaN" : (t == null ? e = n <= ie || n >= de ? Y(T(o.c), n) : oe(T(o.c), n, "0") : t === 10 && Oe ? (o = H(new N(o), te + n + 1, D), e = oe(T(o.c), o.e, "0")) : (L(t, 2, Ne.length, "Base"), e = J(oe(T(o.c), n, "0"), 10, t, c, !0)), c < 0 && o.c[0] && (e = "-" + e)), e;
2925
- }, $.valueOf = $.toJSON = function() {
2926
- return B(this);
2927
- }, $._isBigNumber = !0, U != null && N.set(U), N;
2928
- }
2929
- function O(U) {
2930
- var I = U | 0;
2931
- return U > 0 || U === I ? I : I - 1;
2932
- }
2933
- function T(U) {
2934
- for (var I, J, ee = 1, $ = U.length, re = U[0] + ""; ee < $; ) {
2935
- for (I = U[ee++] + "", J = _ - I.length; J--; I = "0" + I) ;
2936
- re += I;
2937
- }
2938
- for ($ = re.length; re.charCodeAt(--$) === 48; ) ;
2939
- return re.slice(0, $ + 1 || 1);
2940
- }
2941
- function V(U, I) {
2942
- var J, ee, $ = U.c, re = I.c, te = U.s, D = I.s, ie = U.e, de = I.e;
2943
- if (!te || !D) return null;
2944
- if (J = $ && !$[0], ee = re && !re[0], J || ee) return J ? ee ? 0 : -D : te;
2945
- if (te != D) return te;
2946
- if (J = te < 0, ee = ie == de, !$ || !re) return ee ? 0 : !$ ^ J ? 1 : -1;
2947
- if (!ee) return ie > de ^ J ? 1 : -1;
2948
- for (D = (ie = $.length) < (de = re.length) ? ie : de, te = 0; te < D; te++) if ($[te] != re[te]) return $[te] > re[te] ^ J ? 1 : -1;
2949
- return ie == de ? 0 : ie > de ^ J ? 1 : -1;
2950
- }
2951
- function L(U, I, J, ee) {
2952
- if (U < I || U > J || U !== b(U))
2953
- throw Error(A + (ee || "Argument") + (typeof U == "number" ? U < I || U > J ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(U));
2954
- }
2955
- function W(U) {
2956
- var I = U.c.length - 1;
2957
- return O(U.e / _) == I && U.c[I] % 2 != 0;
2958
- }
2959
- function Y(U, I) {
2960
- return (U.length > 1 ? U.charAt(0) + "." + U.slice(1) : U) + (I < 0 ? "e" : "e+") + I;
2961
- }
2962
- function oe(U, I, J) {
2963
- var ee, $;
2964
- if (I < 0) {
2965
- for ($ = J + "."; ++I; $ += J) ;
2966
- U = $ + U;
2967
- } else if (ee = U.length, ++I > ee) {
2968
- for ($ = J, I -= ee; --I; $ += J) ;
2969
- U += $;
2970
- } else I < ee && (U = U.slice(0, I) + "." + U.slice(I));
2971
- return U;
2972
- }
2973
- v = Q(), v.default = v.BigNumber = v, r.exports ? r.exports = v : (d || (d = typeof self < "u" && self ? self : window), d.BigNumber = v);
2974
- })(jr);
2975
- })(qt);
2976
- var Gt = qt.exports;
2977
- (function(r) {
2978
- var d = Gt, v = r.exports;
2979
- (function() {
2980
- var p = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, m, b, A = {
2981
- // table of character substitutions
2982
- "\b": "\\b",
2983
- " ": "\\t",
2984
- "\n": "\\n",
2985
- "\f": "\\f",
2986
- "\r": "\\r",
2987
- '"': '\\"',
2988
- "\\": "\\\\"
2989
- }, g;
2990
- function S(x) {
2991
- return p.lastIndex = 0, p.test(x) ? '"' + x.replace(p, function(M) {
2992
- var C = A[M];
2993
- return typeof C == "string" ? C : "\\u" + ("0000" + M.charCodeAt(0).toString(16)).slice(-4);
2994
- }) + '"' : '"' + x + '"';
2995
- }
2996
- function _(x, M) {
2997
- var C, G, Q, O, T = m, V, L = M[x], W = L != null && (L instanceof d || d.isBigNumber(L));
2998
- switch (L && typeof L == "object" && typeof L.toJSON == "function" && (L = L.toJSON(x)), typeof g == "function" && (L = g.call(M, x, L)), typeof L) {
2999
- case "string":
3000
- return W ? L : S(L);
3001
- case "number":
3002
- return isFinite(L) ? String(L) : "null";
3003
- case "boolean":
3004
- case "null":
3005
- case "bigint":
3006
- return String(L);
3007
- case "object":
3008
- if (!L)
3009
- return "null";
3010
- if (m += b, V = [], Object.prototype.toString.apply(L) === "[object Array]") {
3011
- for (O = L.length, C = 0; C < O; C += 1)
3012
- V[C] = _(C, L) || "null";
3013
- return Q = V.length === 0 ? "[]" : m ? `[
3014
- ` + m + V.join(`,
3015
- ` + m) + `
3016
- ` + T + "]" : "[" + V.join(",") + "]", m = T, Q;
3017
- }
3018
- if (g && typeof g == "object")
3019
- for (O = g.length, C = 0; C < O; C += 1)
3020
- typeof g[C] == "string" && (G = g[C], Q = _(G, L), Q && V.push(S(G) + (m ? ": " : ":") + Q));
3021
- else
3022
- Object.keys(L).forEach(function(Y) {
3023
- var oe = _(Y, L);
3024
- oe && V.push(S(Y) + (m ? ": " : ":") + oe);
3025
- });
3026
- return Q = V.length === 0 ? "{}" : m ? `{
3027
- ` + m + V.join(`,
3028
- ` + m) + `
3029
- ` + T + "}" : "{" + V.join(",") + "}", m = T, Q;
3030
- }
3031
- }
3032
- typeof v.stringify != "function" && (v.stringify = function(x, M, C) {
3033
- var G;
3034
- if (m = "", b = "", typeof C == "number")
3035
- for (G = 0; G < C; G += 1)
3036
- b += " ";
3037
- else typeof C == "string" && (b = C);
3038
- if (g = M, M && typeof M != "function" && (typeof M != "object" || typeof M.length != "number"))
3039
- throw new Error("JSON.stringify");
3040
- return _("", { "": x });
3041
- });
3042
- })();
3043
- })(jt);
3044
- var Gr = jt.exports, st = null;
3045
- const Kr = /(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/, Hr = /(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/;
3046
- var Wr = function(r) {
3047
- var d = {
3048
- strict: !1,
3049
- // not being strict means do not generate syntax errors for "duplicate key"
3050
- storeAsString: !1,
3051
- // toggles whether the values should be stored as BigNumber (default) or a string
3052
- alwaysParseAsBig: !1,
3053
- // toggles whether all numbers should be Big
3054
- useNativeBigInt: !1,
3055
- // toggles whether to use native BigInt instead of bignumber.js
3056
- protoAction: "error",
3057
- constructorAction: "error"
3058
- };
3059
- if (r != null) {
3060
- if (r.strict === !0 && (d.strict = !0), r.storeAsString === !0 && (d.storeAsString = !0), d.alwaysParseAsBig = r.alwaysParseAsBig === !0 ? r.alwaysParseAsBig : !1, d.useNativeBigInt = r.useNativeBigInt === !0 ? r.useNativeBigInt : !1, typeof r.constructorAction < "u")
3061
- if (r.constructorAction === "error" || r.constructorAction === "ignore" || r.constructorAction === "preserve")
3062
- d.constructorAction = r.constructorAction;
3063
- else
3064
- throw new Error(
3065
- `Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${r.constructorAction}`
3066
- );
3067
- if (typeof r.protoAction < "u")
3068
- if (r.protoAction === "error" || r.protoAction === "ignore" || r.protoAction === "preserve")
3069
- d.protoAction = r.protoAction;
3070
- else
3071
- throw new Error(
3072
- `Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${r.protoAction}`
3073
- );
3074
- }
3075
- var v, p, m = {
3076
- '"': '"',
3077
- "\\": "\\",
3078
- "/": "/",
3079
- b: "\b",
3080
- f: "\f",
3081
- n: `
3082
- `,
3083
- r: "\r",
3084
- t: " "
3085
- }, b, A = function(O) {
3086
- throw {
3087
- name: "SyntaxError",
3088
- message: O,
3089
- at: v,
3090
- text: b
3091
- };
3092
- }, g = function(O) {
3093
- return O && O !== p && A("Expected '" + O + "' instead of '" + p + "'"), p = b.charAt(v), v += 1, p;
3094
- }, S = function() {
3095
- var O, T = "";
3096
- for (p === "-" && (T = "-", g("-")); p >= "0" && p <= "9"; )
3097
- T += p, g();
3098
- if (p === ".")
3099
- for (T += "."; g() && p >= "0" && p <= "9"; )
3100
- T += p;
3101
- if (p === "e" || p === "E")
3102
- for (T += p, g(), (p === "-" || p === "+") && (T += p, g()); p >= "0" && p <= "9"; )
3103
- T += p, g();
3104
- if (O = +T, !isFinite(O))
3105
- A("Bad number");
3106
- else
3107
- return st == null && (st = Gt), T.length > 15 ? d.storeAsString ? T : d.useNativeBigInt ? BigInt(T) : new st(T) : d.alwaysParseAsBig ? d.useNativeBigInt ? BigInt(O) : new st(O) : O;
3108
- }, _ = function() {
3109
- var O, T, V = "", L;
3110
- if (p === '"')
3111
- for (var W = v; g(); ) {
3112
- if (p === '"')
3113
- return v - 1 > W && (V += b.substring(W, v - 1)), g(), V;
3114
- if (p === "\\") {
3115
- if (v - 1 > W && (V += b.substring(W, v - 1)), g(), p === "u") {
3116
- for (L = 0, T = 0; T < 4 && (O = parseInt(g(), 16), !!isFinite(O)); T += 1)
3117
- L = L * 16 + O;
3118
- V += String.fromCharCode(L);
3119
- } else if (typeof m[p] == "string")
3120
- V += m[p];
3121
- else
3122
- break;
3123
- W = v;
3124
- }
3125
- }
3126
- A("Bad string");
3127
- }, x = function() {
3128
- for (; p && p <= " "; )
3129
- g();
3130
- }, M = function() {
3131
- switch (p) {
3132
- case "t":
3133
- return g("t"), g("r"), g("u"), g("e"), !0;
3134
- case "f":
3135
- return g("f"), g("a"), g("l"), g("s"), g("e"), !1;
3136
- case "n":
3137
- return g("n"), g("u"), g("l"), g("l"), null;
3138
- }
3139
- A("Unexpected '" + p + "'");
3140
- }, C, G = function() {
3141
- var O = [];
3142
- if (p === "[") {
3143
- if (g("["), x(), p === "]")
3144
- return g("]"), O;
3145
- for (; p; ) {
3146
- if (O.push(C()), x(), p === "]")
3147
- return g("]"), O;
3148
- g(","), x();
3149
- }
3150
- }
3151
- A("Bad array");
3152
- }, Q = function() {
3153
- var O, T = /* @__PURE__ */ Object.create(null);
3154
- if (p === "{") {
3155
- if (g("{"), x(), p === "}")
3156
- return g("}"), T;
3157
- for (; p; ) {
3158
- if (O = _(), x(), g(":"), d.strict === !0 && Object.hasOwnProperty.call(T, O) && A('Duplicate key "' + O + '"'), Kr.test(O) === !0 ? d.protoAction === "error" ? A("Object contains forbidden prototype property") : d.protoAction === "ignore" ? C() : T[O] = C() : Hr.test(O) === !0 ? d.constructorAction === "error" ? A("Object contains forbidden constructor property") : d.constructorAction === "ignore" ? C() : T[O] = C() : T[O] = C(), x(), p === "}")
3159
- return g("}"), T;
3160
- g(","), x();
3161
- }
3162
- }
3163
- A("Bad object");
3164
- };
3165
- return C = function() {
3166
- switch (x(), p) {
3167
- case "{":
3168
- return Q();
3169
- case "[":
3170
- return G();
3171
- case '"':
3172
- return _();
3173
- case "-":
3174
- return S();
3175
- default:
3176
- return p >= "0" && p <= "9" ? S() : M();
3177
- }
3178
- }, function(O, T) {
3179
- var V;
3180
- return b = O + "", v = 0, p = " ", V = C(), x(), p && A("Syntax error"), typeof T == "function" ? function L(W, Y) {
3181
- var oe, U = W[Y];
3182
- return U && typeof U == "object" && Object.keys(U).forEach(function(I) {
3183
- oe = L(U, I), oe !== void 0 ? U[I] = oe : delete U[I];
3184
- }), T.call(W, Y, U);
3185
- }({ "": V }, "") : V;
3186
- };
3187
- }, Xr = Wr, Kt = Gr.stringify, Ht = Xr;
3188
- dt.exports = function(r) {
3189
- return {
3190
- parse: Ht(r),
3191
- stringify: Kt
3192
- };
3193
- };
3194
- dt.exports.parse = Ht();
3195
- dt.exports.stringify = Kt;
3196
- var Yr = dt.exports;
3197
- const Jr = /* @__PURE__ */ qr(Yr), Zr = Jr({ storeAsString: !0 });
3198
- let Wt;
3199
- function Wa(r) {
3200
- Wt = r, Pe && (Pe.defaults.baseURL = r);
3201
- }
3202
- const Qr = () => {
3203
- const r = rs.create({
3204
- timeout: 3e4,
3205
- headers: {
3206
- "Content-Type": "application/json"
3207
- },
3208
- // 使用 json-bigint 解析响应数据,避免大整数精度丢失
3209
- transformResponse: [
3210
- (d) => {
3211
- if (typeof d == "string")
3212
- try {
3213
- return Zr.parse(d);
3214
- } catch {
3215
- return d;
3216
- }
3217
- return d;
3218
- }
3219
- ]
3220
- });
3221
- return r.interceptors.request.use(
3222
- (d) => {
3223
- const v = Wt || void 0;
3224
- v && !d.baseURL && (d.baseURL = v);
3225
- const p = ut(), m = ps() || "Bearer";
3226
- return p && (d.headers.Authorization = `${m} ${p}`), d;
3227
- },
3228
- (d) => Promise.reject(d)
3229
- ), r.interceptors.response.use(
3230
- (d) => {
3231
- const { data: v } = d;
3232
- return v.code === 200 || v.code === 0 ? v.data : v.code === 9121 ? (Ie.error("登录已过期,请重新登录"), We(), window.location.href = "/login", Promise.reject(new Error(v.message || "EXPIRED OR INVALID TOKEN"))) : (Ie.error(v.message || "请求失败"), Promise.reject(new Error(v.message || "请求失败")));
3233
- },
3234
- (d) => {
3235
- var p;
3236
- const { response: v } = d;
3237
- if (v) {
3238
- const { data: m } = v;
3239
- if ((m == null ? void 0 : m.code) === 9121)
3240
- return Ie.error("登录已过期,请重新登录"), We(), window.location.href = "/login", Promise.reject(d);
3241
- switch (v.status) {
3242
- case 401:
3243
- Ie.error("登录已过期,请重新登录"), We(), window.location.href = "/login";
3244
- break;
3245
- case 403:
3246
- Ie.error("没有权限访问");
3247
- break;
3248
- case 404:
3249
- Ie.error("请求资源不存在");
3250
- break;
3251
- case 500:
3252
- Ie.error("服务器错误");
3253
- break;
3254
- default:
3255
- Ie.error(((p = v.data) == null ? void 0 : p.message) || "请求失败");
3256
- }
3257
- } else
3258
- Ie.error("网络连接失败");
3259
- return Promise.reject(d);
3260
- }
3261
- ), r;
3262
- }, Pe = Qr(), ue = {
3263
- get(r, d) {
3264
- return Pe.get(r, d);
3265
- },
3266
- post(r, d, v) {
3267
- return Pe.post(r, d, v);
3268
- },
3269
- put(r, d, v) {
3270
- return Pe.put(r, d, v);
3271
- },
3272
- patch(r, d, v) {
3273
- return Pe.patch(r, d, v);
3274
- },
3275
- delete(r, d) {
3276
- return Pe.delete(r, d);
3277
- },
3278
- // 文件下载 - 返回 Blob 对象
3279
- download(r, d) {
3280
- return Pe.get(r, { ...d, responseType: "blob" });
3281
- }
3282
- };
3283
- function ea(r) {
3284
- return ue.post("/user/v1.0/login/by-domain", r);
3285
- }
3286
- function Xa() {
3287
- return ue.put("/user/v1.0/user/logout");
3288
- }
3289
- function ta() {
3290
- return ue.get("/user/v1.0/user/get-me");
3291
- }
3292
- function Ya(r) {
3293
- return ue.post("/user/v1.0/refresh", { refreshToken: r });
3294
- }
3295
- const sa = { class: "login-page" }, na = { class: "login-form-section" }, oa = { class: "form-container" }, ra = { class: "input-wrapper" }, aa = { class: "input-wrapper" }, la = { class: "form-options" }, ia = { key: 0 }, ca = { key: 1 }, ua = /* @__PURE__ */ Ae({
3296
- __name: "index",
3297
- setup(r) {
3298
- const d = ze(), v = qe(), p = P(!1), m = P(!1), b = kt({
3299
- uid: "",
3300
- password: ""
3301
- }), A = {
3302
- uid: [
3303
- { required: !0, message: "请输入用户名", trigger: "blur" }
3304
- ],
3305
- password: [
3306
- { required: !0, message: "请输入密码", trigger: "blur" },
3307
- { min: 6, message: "密码长度至少6位", trigger: "blur" }
3308
- ]
3309
- }, g = P(), S = async () => {
3310
- var _;
3311
- try {
3312
- await ((_ = g.value) == null ? void 0 : _.validate()), p.value = !0;
3313
- const x = await ea({
3314
- appId: ct(),
3315
- clientId: zt(),
3316
- uid: b.uid,
3317
- password: b.password,
3318
- code: !0
3319
- });
3320
- Dt(x), Ie.success("登录成功");
3321
- const M = v.query.redirect || "/";
3322
- d.push(M);
3323
- } catch (x) {
3324
- console.error("登录失败:", x);
3325
- } finally {
3326
- p.value = !1;
3327
- }
3328
- };
3329
- return (_, x) => (w(), E("div", sa, [
3330
- x[10] || (x[10] = nt('<div class="login-brand" data-v-15fc7de5><div class="brand-content" data-v-15fc7de5><div class="brand-logo" data-v-15fc7de5><div class="logo-icon" data-v-15fc7de5><svg viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-15fc7de5><rect width="48" height="48" rx="12" fill="currentColor" data-v-15fc7de5></rect><path d="M14 24L20 30L34 16" stroke="white" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" data-v-15fc7de5></path></svg></div><span class="logo-text" data-v-15fc7de5>XTO</span></div><div class="brand-slogan" data-v-15fc7de5><h1 data-v-15fc7de5>企业级后台管理解决方案</h1><p data-v-15fc7de5>开箱即用的中后台前端/设计解决方案</p></div><div class="brand-features" data-v-15fc7de5><div class="feature-item" data-v-15fc7de5><div class="feature-icon" data-v-15fc7de5><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-15fc7de5><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" data-v-15fc7de5></path></svg></div><div class="feature-text" data-v-15fc7de5><h4 data-v-15fc7de5>高性能</h4><p data-v-15fc7de5>极致的渲染性能与响应速度</p></div></div><div class="feature-item" data-v-15fc7de5><div class="feature-icon" data-v-15fc7de5><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-15fc7de5><rect x="3" y="3" width="18" height="18" rx="2" data-v-15fc7de5></rect><path d="M9 9h6M9 12h6M9 15h4" data-v-15fc7de5></path></svg></div><div class="feature-text" data-v-15fc7de5><h4 data-v-15fc7de5>丰富组件</h4><p data-v-15fc7de5>60+ 高质量业务组件</p></div></div><div class="feature-item" data-v-15fc7de5><div class="feature-icon" data-v-15fc7de5><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-15fc7de5><circle cx="12" cy="12" r="10" data-v-15fc7de5></circle><path d="M12 6v6l4 2" data-v-15fc7de5></path></svg></div><div class="feature-text" data-v-15fc7de5><h4 data-v-15fc7de5>持续更新</h4><p data-v-15fc7de5>活跃的社区与快速迭代</p></div></div></div><div class="brand-decoration" data-v-15fc7de5><div class="decoration-line" data-v-15fc7de5></div><div class="decoration-dots" data-v-15fc7de5><span data-v-15fc7de5></span><span data-v-15fc7de5></span><span data-v-15fc7de5></span></div></div></div><div class="brand-bg" data-v-15fc7de5><div class="bg-grid" data-v-15fc7de5></div><div class="bg-glow" data-v-15fc7de5></div><div class="bg-pattern" data-v-15fc7de5></div></div></div>', 1)),
3331
- s("div", na, [
3332
- s("div", oa, [
3333
- x[7] || (x[7] = s("div", { class: "form-header" }, [
3334
- s("h2", null, "欢迎登录"),
3335
- s("p", null, "请输入您的账户信息")
3336
- ], -1)),
3337
- z(y(ns), {
3338
- ref_key: "formRef",
3339
- ref: g,
3340
- model: b,
3341
- rules: A,
3342
- class: "login-form",
3343
- "label-width": "0"
3344
- }, {
3345
- default: X(() => [
3346
- z(y(mt), { prop: "uid" }, {
3347
- default: X(() => [
3348
- s("div", ra, [
3349
- x[3] || (x[3] = s("label", { class: "input-label" }, "用户名", -1)),
3350
- z(y(Ot), {
3351
- modelValue: b.uid,
3352
- "onUpdate:modelValue": x[0] || (x[0] = (M) => b.uid = M),
3353
- placeholder: "请输入用户名",
3354
- size: "large"
3355
- }, {
3356
- prefix: X(() => [
3357
- z(y(Z), {
3358
- name: "user",
3359
- size: 18
3360
- })
3361
- ]),
3362
- _: 1
3363
- }, 8, ["modelValue"])
3364
- ])
3365
- ]),
3366
- _: 1
3367
- }),
3368
- z(y(mt), { prop: "password" }, {
3369
- default: X(() => [
3370
- s("div", aa, [
3371
- x[4] || (x[4] = s("label", { class: "input-label" }, "密码", -1)),
3372
- z(y(Ot), {
3373
- modelValue: b.password,
3374
- "onUpdate:modelValue": x[1] || (x[1] = (M) => b.password = M),
3375
- type: "password",
3376
- placeholder: "请输入密码",
3377
- size: "large",
3378
- "show-password": "",
3379
- onKeyup: es(S, ["enter"])
3380
- }, {
3381
- prefix: X(() => [
3382
- z(y(Z), {
3383
- name: "lock",
3384
- size: 18
3385
- })
3386
- ]),
3387
- _: 1
3388
- }, 8, ["modelValue"])
3389
- ])
3390
- ]),
3391
- _: 1
3392
- }),
3393
- s("div", la, [
3394
- z(y(os), {
3395
- modelValue: m.value,
3396
- "onUpdate:modelValue": x[2] || (x[2] = (M) => m.value = M)
3397
- }, {
3398
- default: X(() => [...x[5] || (x[5] = [
3399
- De("记住我", -1)
3400
- ])]),
3401
- _: 1
3402
- }, 8, ["modelValue"]),
3403
- x[6] || (x[6] = s("a", {
3404
- href: "#",
3405
- class: "forgot-link"
3406
- }, "忘记密码?", -1))
3407
- ]),
3408
- z(y(mt), null, {
3409
- default: X(() => [
3410
- z(y(je), {
3411
- type: "primary",
3412
- size: "large",
3413
- loading: p.value,
3414
- class: "login-btn",
3415
- onClick: S
3416
- }, {
3417
- default: X(() => [
3418
- p.value ? (w(), E("span", ca, "登录中...")) : (w(), E("span", ia, "登 录"))
3419
- ]),
3420
- _: 1
3421
- }, 8, ["loading"])
3422
- ]),
3423
- _: 1
3424
- })
3425
- ]),
3426
- _: 1
3427
- }, 8, ["model"]),
3428
- x[8] || (x[8] = nt('<div class="form-footer" data-v-15fc7de5><p data-v-15fc7de5>其他登录方式</p><div class="social-login" data-v-15fc7de5><button class="social-btn" title="企业微信" data-v-15fc7de5><svg viewBox="0 0 24 24" fill="currentColor" data-v-15fc7de5><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" data-v-15fc7de5></path></svg></button><button class="social-btn" title="钉钉" data-v-15fc7de5><svg viewBox="0 0 24 24" fill="currentColor" data-v-15fc7de5><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69a.2.2 0 00-.05-.18c-.06-.05-.14-.03-.21-.02-.09.02-1.49.95-4.22 2.79-.4.27-.76.41-1.08.4-.36-.01-1.04-.2-1.55-.37-.63-.2-1.12-.31-1.08-.66.02-.18.27-.36.74-.55 2.92-1.27 4.86-2.11 5.83-2.51 2.78-1.16 3.35-1.36 3.73-1.36.08 0 .27.02.39.12.1.08.13.19.14.27-.01.06.01.24 0 .38z" data-v-15fc7de5></path></svg></button><button class="social-btn" title="飞书" data-v-15fc7de5><svg viewBox="0 0 24 24" fill="currentColor" data-v-15fc7de5><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" data-v-15fc7de5></path></svg></button></div></div>', 1))
3429
- ]),
3430
- x[9] || (x[9] = s("div", { class: "copyright" }, [
3431
- s("p", null, "© 2024 XTO Team. All rights reserved.")
3432
- ], -1))
3433
- ])
3434
- ]));
3435
- }
3436
- }), da = /* @__PURE__ */ Se(ua, [["__scopeId", "data-v-15fc7de5"]]), fa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3437
- __proto__: null,
3438
- default: da
3439
- }, Symbol.toStringTag, { value: "Module" })), pa = { class: "error-page" }, ma = { class: "error-container" }, ha = { class: "error-content" }, va = { class: "error-actions" }, ga = /* @__PURE__ */ Ae({
3440
- __name: "404",
3441
- setup(r) {
3442
- const d = ze(), v = () => {
3443
- d.push("/");
3444
- };
3445
- return (p, m) => (w(), E("div", pa, [
3446
- s("div", ma, [
3447
- m[7] || (m[7] = s("div", { class: "error-bg" }, [
3448
- s("div", { class: "bg-circle circle-1" }),
3449
- s("div", { class: "bg-circle circle-2" }),
3450
- s("div", { class: "bg-circle circle-3" })
3451
- ], -1)),
3452
- s("div", ha, [
3453
- m[5] || (m[5] = nt('<div class="error-code" data-v-3a9e61ae><span class="code-digit" data-v-3a9e61ae>4</span><span class="code-zero" data-v-3a9e61ae><span class="zero-inner" data-v-3a9e61ae>0</span></span><span class="code-digit" data-v-3a9e61ae>4</span></div><div class="error-illustration" data-v-3a9e61ae><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-3a9e61ae><rect x="40" y="20" width="120" height="80" rx="8" fill="var(--color-fill)" stroke="var(--color-border)" stroke-width="2" data-v-3a9e61ae></rect><rect x="50" y="30" width="100" height="60" rx="4" fill="var(--bg-color)" data-v-3a9e61ae></rect><line x1="60" y1="45" x2="140" y2="45" stroke="var(--color-border-light)" stroke-width="2" data-v-3a9e61ae></line><line x1="60" y1="55" x2="120" y2="55" stroke="var(--color-border-light)" stroke-width="2" data-v-3a9e61ae></line><line x1="60" y1="65" x2="100" y2="65" stroke="var(--color-border-light)" stroke-width="2" data-v-3a9e61ae></line><text x="100" y="75" text-anchor="middle" fill="var(--color-primary)" font-size="24" font-weight="600" data-v-3a9e61ae>?</text><circle cx="150" cy="35" r="12" stroke="var(--color-primary)" stroke-width="2" fill="none" data-v-3a9e61ae></circle><line x1="158" y1="43" x2="168" y2="53" stroke="var(--color-primary)" stroke-width="2" stroke-linecap="round" data-v-3a9e61ae></line></svg></div><h1 class="error-title" data-v-3a9e61ae>页面不存在</h1><p class="error-desc" data-v-3a9e61ae>抱歉,您访问的页面不存在或已被删除</p>', 4)),
3454
- s("div", va, [
3455
- z(y(je), {
3456
- type: "primary",
3457
- size: "large",
3458
- onClick: v
3459
- }, {
3460
- icon: X(() => [...m[1] || (m[1] = [
3461
- s("svg", {
3462
- viewBox: "0 0 24 24",
3463
- fill: "none",
3464
- stroke: "currentColor",
3465
- "stroke-width": "2"
3466
- }, [
3467
- s("path", { d: "M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2V9z" }),
3468
- s("polyline", { points: "9,22 9,12 15,12 15,22" })
3469
- ], -1)
3470
- ])]),
3471
- default: X(() => [
3472
- m[2] || (m[2] = De(" 返回首页 ", -1))
3473
- ]),
3474
- _: 1
3475
- }),
3476
- z(y(je), {
3477
- size: "large",
3478
- onClick: m[0] || (m[0] = (b) => y(d).go(-1))
3479
- }, {
3480
- icon: X(() => [...m[3] || (m[3] = [
3481
- s("svg", {
3482
- viewBox: "0 0 24 24",
3483
- fill: "none",
3484
- stroke: "currentColor",
3485
- "stroke-width": "2"
3486
- }, [
3487
- s("path", { d: "M19 12H5M12 19l-7-7 7-7" })
3488
- ], -1)
3489
- ])]),
3490
- default: X(() => [
3491
- m[4] || (m[4] = De(" 返回上一页 ", -1))
3492
- ]),
3493
- _: 1
3494
- })
3495
- ]),
3496
- m[6] || (m[6] = s("div", { class: "error-tip" }, [
3497
- s("p", null, "您可以尝试:"),
3498
- s("ul", null, [
3499
- s("li", null, "检查您输入的网址是否正确"),
3500
- s("li", null, "返回首页重新浏览"),
3501
- s("li", null, "联系管理员反馈问题")
3502
- ])
3503
- ], -1))
3504
- ])
3505
- ])
3506
- ]));
3507
- }
3508
- }), _a = /* @__PURE__ */ Se(ga, [["__scopeId", "data-v-3a9e61ae"]]), Xt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3509
- __proto__: null,
3510
- default: _a
3511
- }, Symbol.toStringTag, { value: "Module" })), wa = { class: "error-page" }, ya = { class: "error-container" }, ka = { class: "error-content" }, ba = { class: "error-actions" }, xa = /* @__PURE__ */ Ae({
3512
- __name: "403",
3513
- setup(r) {
3514
- const d = ze(), v = () => {
3515
- d.push("/");
3516
- };
3517
- return (p, m) => (w(), E("div", wa, [
3518
- s("div", ya, [
3519
- m[7] || (m[7] = s("div", { class: "error-bg" }, [
3520
- s("div", { class: "bg-circle circle-1" }),
3521
- s("div", { class: "bg-circle circle-2" }),
3522
- s("div", { class: "bg-circle circle-3" })
3523
- ], -1)),
3524
- s("div", ka, [
3525
- m[5] || (m[5] = nt('<div class="error-code" data-v-c733ebac><span class="code-digit" data-v-c733ebac>4</span><span class="code-zero warning" data-v-c733ebac><span class="zero-inner" data-v-c733ebac>0</span></span><span class="code-digit" data-v-c733ebac>3</span></div><div class="error-illustration" data-v-c733ebac><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-c733ebac><path d="M100 15 L150 35 L150 70 C150 95 100 110 100 110 C100 110 50 95 50 70 L50 35 Z" fill="var(--color-warning-lighter)" stroke="var(--color-warning)" stroke-width="2" data-v-c733ebac></path><rect x="85" y="55" width="30" height="25" rx="4" fill="var(--color-warning)" data-v-c733ebac></rect><path d="M92 55 V48 A8 8 0 0 1 108 48 V55" fill="none" stroke="var(--color-warning)" stroke-width="3" data-v-c733ebac></path><circle cx="100" cy="67" r="6" fill="none" stroke="#fff" stroke-width="2" data-v-c733ebac></circle><line x1="96" y1="63" x2="104" y2="71" stroke="#fff" stroke-width="2" data-v-c733ebac></line></svg></div><h1 class="error-title" data-v-c733ebac>无访问权限</h1><p class="error-desc" data-v-c733ebac>抱歉,您没有权限访问此页面,请联系管理员获取权限</p>', 4)),
3526
- s("div", ba, [
3527
- z(y(je), {
3528
- type: "primary",
3529
- size: "large",
3530
- onClick: v
3531
- }, {
3532
- icon: X(() => [...m[1] || (m[1] = [
3533
- s("svg", {
3534
- viewBox: "0 0 24 24",
3535
- fill: "none",
3536
- stroke: "currentColor",
3537
- "stroke-width": "2"
3538
- }, [
3539
- s("path", { d: "M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2V9z" }),
3540
- s("polyline", { points: "9,22 9,12 15,12 15,22" })
3541
- ], -1)
3542
- ])]),
3543
- default: X(() => [
3544
- m[2] || (m[2] = De(" 返回首页 ", -1))
3545
- ]),
3546
- _: 1
3547
- }),
3548
- z(y(je), {
3549
- size: "large",
3550
- onClick: m[0] || (m[0] = (b) => y(d).go(-1))
3551
- }, {
3552
- icon: X(() => [...m[3] || (m[3] = [
3553
- s("svg", {
3554
- viewBox: "0 0 24 24",
3555
- fill: "none",
3556
- stroke: "currentColor",
3557
- "stroke-width": "2"
3558
- }, [
3559
- s("path", { d: "M19 12H5M12 19l-7-7 7-7" })
3560
- ], -1)
3561
- ])]),
3562
- default: X(() => [
3563
- m[4] || (m[4] = De(" 返回上一页 ", -1))
3564
- ]),
3565
- _: 1
3566
- })
3567
- ]),
3568
- m[6] || (m[6] = s("div", { class: "error-tip" }, [
3569
- s("p", null, "可能的原因:"),
3570
- s("ul", null, [
3571
- s("li", null, "您的账号权限不足"),
3572
- s("li", null, "该页面需要特定角色才能访问"),
3573
- s("li", null, "您的登录状态已过期")
3574
- ])
3575
- ], -1))
3576
- ])
3577
- ])
3578
- ]));
3579
- }
3580
- }), Ja = /* @__PURE__ */ Se(xa, [["__scopeId", "data-v-c733ebac"]]);
3581
- function Za() {
3582
- const r = Re(), d = $e(), v = Ze(), p = j(() => d.userName || ""), m = j(() => d.userInfo), b = j(() => r.appName), A = j(() => v.isLoggedIn), g = j(() => r.isDark), S = j(() => r.theme), _ = j(() => r.isCollapsed), x = j(() => r.layout);
3583
- return {
3584
- userName: p,
3585
- userInfo: m,
3586
- appName: b,
3587
- isLoggedIn: A,
3588
- isDark: g,
3589
- theme: S,
3590
- isCollapsed: _,
3591
- layout: x,
3592
- toggleTheme: () => {
3593
- r.toggleTheme();
3594
- },
3595
- toggleCollapse: () => {
3596
- r.toggleCollapse();
3597
- }
3598
- };
3599
- }
3600
- function Qa() {
3601
- const r = $e();
3602
- return {
3603
- isLoggedIn: j(() => r.isLoggedIn)
3604
- };
3605
- }
3606
- function el(r, d = {}) {
3607
- const { rules: v, onSubmit: p } = d, m = P(), b = kt({ ...r }), A = P(!1), g = P(!1), S = P(!1), _ = () => {
3608
- C(), S.value = !1, g.value = !0;
3609
- }, x = (Q) => {
3610
- Object.assign(b, Q), S.value = !0, g.value = !0;
3611
- }, M = () => {
3612
- g.value = !1, C();
3613
- }, C = () => {
3614
- var Q;
3615
- Object.keys(r).forEach((O) => {
3616
- b[O] = r[O];
3617
- }), (Q = m.value) == null || Q.resetFields();
3618
- };
3619
- return {
3620
- formRef: m,
3621
- formData: b,
3622
- rules: v,
3623
- loading: A,
3624
- visible: g,
3625
- isEdit: S,
3626
- openAdd: _,
3627
- openEdit: x,
3628
- close: M,
3629
- resetForm: C,
3630
- handleSubmit: async () => {
3631
- var Q;
3632
- try {
3633
- await ((Q = m.value) == null ? void 0 : Q.validate()), A.value = !0, await (p == null ? void 0 : p(b)), M();
3634
- } catch (O) {
3635
- console.error(O);
3636
- } finally {
3637
- A.value = !1;
3638
- }
3639
- }
3640
- };
3641
- }
3642
- function tl(r) {
3643
- const { fetchData: d, defaultPageSize: v = 10 } = r, p = P(!1), m = P([]), b = P(0), A = P(1), g = P(v), S = kt({}), _ = async () => {
3644
- p.value = !0;
3645
- try {
3646
- const T = {
3647
- ...S,
3648
- page: A.value,
3649
- pageSize: g.value
3650
- }, V = await d(T);
3651
- m.value = V.list, b.value = V.total;
3652
- } catch (T) {
3653
- console.error(T);
3654
- } finally {
3655
- p.value = !1;
3656
- }
3657
- }, x = () => {
3658
- A.value = 1, _();
3659
- }, M = () => {
3660
- Object.keys(S).forEach((T) => {
3661
- S[T] = void 0;
3662
- }), A.value = 1, _();
3663
- }, C = (T) => {
3664
- A.value = T, _();
3665
- }, G = (T) => {
3666
- g.value = T, A.value = 1, _();
3667
- }, Q = () => {
3668
- _();
3669
- }, O = j(() => ({
3670
- current: A.value,
3671
- pageSize: g.value,
3672
- total: b.value
3673
- }));
3674
- return {
3675
- loading: p,
3676
- data: m,
3677
- total: b,
3678
- currentPage: A,
3679
- pageSize: g,
3680
- searchParams: S,
3681
- pagination: O,
3682
- getData: _,
3683
- handleSearch: x,
3684
- handleReset: M,
3685
- handlePageChange: C,
3686
- handleSizeChange: G,
3687
- refresh: Q
3688
- };
3689
- }
3690
- const Tt = Je("locale", () => {
3691
- const r = K.get("locale") || "zh-CN", d = as(r), v = P(r), p = ls(), { t: m, messages: b, setLocale: A, mergeMessages: g } = is(), S = j(() => {
3692
- const C = p.find((G) => G.code === v.value);
3693
- return (C == null ? void 0 : C.name) || v.value;
3694
- });
3695
- return {
3696
- locale: v,
3697
- localeName: S,
3698
- locales: p,
3699
- messages: b,
3700
- t: m,
3701
- changeLocale: (C) => {
3702
- v.value = C, A(C), K.set("locale", C), d.setLocale(C);
3703
- },
3704
- addMessages: (C) => {
3705
- g(C);
3706
- },
3707
- initLocale: () => {
3708
- A(r);
3709
- },
3710
- provider: d
3711
- };
3712
- }), Ca = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3713
- __proto__: null,
3714
- useLocaleStore: Tt
3715
- }, Symbol.toStringTag, { value: "Module" }));
3716
- function sl() {
3717
- const r = Tt();
3718
- return {
3719
- /** 当前语言代码 */
3720
- locale: r.locale,
3721
- /** 当前语言名称 */
3722
- localeName: r.localeName,
3723
- /** 支持的语言列表 */
3724
- locales: r.locales,
3725
- /** 翻译函数 */
3726
- t: r.t,
3727
- /** 当前语言包 */
3728
- messages: r.messages,
3729
- /** 切换语言 */
3730
- setLocale: r.changeLocale,
3731
- /** 添加自定义翻译 */
3732
- addMessages: r.addMessages
3733
- };
3734
- }
3735
- function nl() {
3736
- return Tt().t;
3737
- }
3738
- function ol(r) {
3739
- return $e().isLoggedIn;
3740
- }
3741
- function rl(r) {
3742
- return $e().isLoggedIn;
3743
- }
3744
- function al() {
3745
- return !0;
3746
- }
3747
- const Yt = [
3748
- {
3749
- path: "/login",
3750
- name: "Login",
3751
- component: () => Promise.resolve().then(() => fa),
3752
- meta: {
3753
- title: "登录",
3754
- hidden: !0
3755
- }
3756
- }
3757
- ], Jt = {
3758
- path: "/",
3759
- name: "Layout",
3760
- component: () => Promise.resolve().then(() => Ur),
3761
- redirect: "/dashboard",
3762
- children: [
3763
- {
3764
- path: "/dashboard",
3765
- name: "Dashboard",
3766
- component: () => import("./index-BAmYUT0G.js"),
3767
- meta: {
3768
- title: "仪表盘",
3769
- icon: "dashboard",
3770
- keepAlive: !0,
3771
- affix: !0
3772
- }
3773
- },
3774
- {
3775
- path: "/system/user",
3776
- name: "SystemUser",
3777
- component: () => import("./index-58aI1w0v.js"),
3778
- meta: {
3779
- title: "用户管理",
3780
- icon: "user",
3781
- keepAlive: !0
3782
- }
3783
- },
3784
- {
3785
- path: "/system/role",
3786
- name: "SystemRole",
3787
- component: () => import("./index-LSdsO2Ox.js"),
3788
- meta: {
3789
- title: "角色管理",
3790
- icon: "role",
3791
- keepAlive: !0
3792
- }
3793
- },
3794
- {
3795
- path: "/system/menu",
3796
- name: "SystemMenu",
3797
- component: () => import("./index-xWU3J3OH.js"),
3798
- meta: {
3799
- title: "菜单管理",
3800
- icon: "menu",
3801
- keepAlive: !0
3802
- }
3803
- },
3804
- // catch-all 路由:让 404 在 Layout 内部渲染,保持左侧菜单显示
3805
- {
3806
- path: "/:pathMatch(.*)*",
3807
- name: "CatchAll",
3808
- component: () => Promise.resolve().then(() => Xt),
3809
- meta: {
3810
- title: "404",
3811
- hidden: !0
3812
- }
3813
- }
3814
- ]
3815
- }, ll = [
3816
- {
3817
- path: "/dashboard",
3818
- name: "Dashboard",
3819
- component: () => import("./index-BAmYUT0G.js"),
3820
- meta: {
3821
- title: "仪表盘",
3822
- icon: "dashboard",
3823
- keepAlive: !0,
3824
- affix: !0
3825
- }
3826
- },
3827
- {
3828
- path: "/system",
3829
- name: "System",
3830
- redirect: "/system/user",
3831
- meta: {
3832
- title: "系统管理",
3833
- icon: "setting"
3834
- },
3835
- children: [
3836
- {
3837
- path: "user",
3838
- name: "SystemUser",
3839
- component: () => import("./index-58aI1w0v.js"),
3840
- meta: {
3841
- title: "用户管理",
3842
- icon: "user",
3843
- keepAlive: !0
3844
- }
3845
- },
3846
- {
3847
- path: "role",
3848
- name: "SystemRole",
3849
- component: () => import("./index-LSdsO2Ox.js"),
3850
- meta: {
3851
- title: "角色管理",
3852
- icon: "role",
3853
- keepAlive: !0
3854
- }
3855
- },
3856
- {
3857
- path: "menu",
3858
- name: "SystemMenu",
3859
- component: () => import("./index-xWU3J3OH.js"),
3860
- meta: {
3861
- title: "菜单管理",
3862
- icon: "menu",
3863
- keepAlive: !0
3864
- }
3865
- }
3866
- ]
3867
- }
3868
- ], Na = [
3869
- {
3870
- menuCode: "dashboard",
3871
- menuName: "仪表盘",
3872
- menuUrl: "/dashboard",
3873
- icon: "dashboard",
3874
- closable: !0,
3875
- isDefault: !0,
3876
- isOut: !1
3877
- },
3878
- {
3879
- menuCode: "system",
3880
- menuName: "系统管理",
3881
- menuUrl: "/system",
3882
- icon: "setting",
3883
- closable: !1,
3884
- isDefault: !1,
3885
- isOut: !1,
3886
- children: [
3887
- {
3888
- menuCode: "system_user",
3889
- menuName: "用户管理",
3890
- menuUrl: "/system/user",
3891
- icon: "user",
3892
- closable: !0,
3893
- isDefault: !1,
3894
- isOut: !1
3895
- },
3896
- {
3897
- menuCode: "system_role",
3898
- menuName: "角色管理",
3899
- menuUrl: "/system/role",
3900
- icon: "role",
3901
- closable: !0,
3902
- isDefault: !1,
3903
- isOut: !1
3904
- },
3905
- {
3906
- menuCode: "system_menu",
3907
- menuName: "菜单管理",
3908
- menuUrl: "/system/menu",
3909
- icon: "menu",
3910
- closable: !0,
3911
- isDefault: !1,
3912
- isOut: !1
3913
- }
3914
- ]
3915
- }
3916
- ], Zt = bt({
3917
- history: xt(),
3918
- routes: [...Yt, Jt],
3919
- scrollBehavior: () => ({ left: 0, top: 0 })
3920
- }), Ea = ["/login"];
3921
- Zt.beforeEach(async (r, d, v) => {
3922
- const p = Re();
3923
- if (p.initTheme(), Ft())
3924
- if (r.path === "/login")
3925
- v({ path: "/" });
3926
- else {
3927
- const m = $e();
3928
- m.isLoggedIn || (m.setUserInfo({
3929
- appId: ct(),
3930
- userId: "1",
3931
- userName: "管理员",
3932
- departmentName: "技术部",
3933
- email: "admin@example.com",
3934
- mobilePhone: "13800138000",
3935
- positionName: "管理员",
3936
- avatar: ""
3937
- }), Fe().setMenuList(Na)), r.name && r.meta.keepAlive && p.addCachedView(r.name), v();
3938
- }
3939
- else
3940
- Ea.includes(r.path) ? v() : v("/login");
3941
- });
3942
- function il() {
3943
- const r = bt({
3944
- history: xt(),
3945
- routes: [...Yt, Jt]
3946
- });
3947
- Zt.matcher = r.matcher;
3948
- }
3949
- function cl(r, d = {}) {
3950
- const v = d.indexPath || "/dashboard", p = {
3951
- path: "/:pathMatch(.*)*",
3952
- name: "CatchAll",
3953
- component: () => Promise.resolve().then(() => Xt),
3954
- meta: {
3955
- title: "404"
3956
- }
3957
- };
3958
- return {
3959
- path: "/",
3960
- name: "Layout",
3961
- component: Vt,
3962
- redirect: v,
3963
- children: [...r, p]
3964
- };
3965
- }
3966
- function ul(r, d = {}) {
3967
- return bt({
3968
- history: xt(d.base),
3969
- routes: r,
3970
- scrollBehavior: () => ({ left: 0, top: 0 })
3971
- });
3972
- }
3973
- function dl(r) {
3974
- return ue.get("/role/list", { params: r });
3975
- }
3976
- function fl(r) {
3977
- return ue.get(`/role/${r}`);
3978
- }
3979
- function pl(r) {
3980
- return ue.post("/role", r);
3981
- }
3982
- function ml(r, d) {
3983
- return ue.put(`/role/${r}`, d);
3984
- }
3985
- function hl(r) {
3986
- return ue.delete(`/role/${r}`);
3987
- }
3988
- function vl(r, d) {
3989
- return ue.patch(`/role/${r}/status`, { status: d });
3990
- }
3991
- function gl() {
3992
- return ue.get("/user/v1.0/menu/list");
3993
- }
3994
- function $a(r) {
3995
- const d = r || ct();
3996
- return ue.get(`/user/v1.0/menu/get-menu?appId=${d}`);
3997
- }
3998
- function _l(r) {
3999
- return ue.post("/menu", r);
4000
- }
4001
- function wl(r, d) {
4002
- return ue.put(`/menu/${r}`, d);
4003
- }
4004
- function yl(r) {
4005
- return ue.delete(`/menu/${r}`);
4006
- }
4007
- const Sa = ["/login", "/404", "/403"];
4008
- function kl(r, d = {}) {
4009
- const v = d.whiteList || Sa, p = d.loginPath || "/login", m = d.homePath || "/";
4010
- r.beforeEach(async (b, A, g) => {
4011
- const S = Re(), _ = $e(), x = Fe();
4012
- if (S.initTheme(), ut())
4013
- if (b.path === p)
4014
- g({ path: m });
4015
- else if (_.isLoggedIn)
4016
- b.name && b.meta.keepAlive && S.addCachedView(b.name), g();
4017
- else
4018
- try {
4019
- if (d.fetchUserInfo) {
4020
- const C = await d.fetchUserInfo();
4021
- _.setUserInfo(C);
4022
- } else {
4023
- const C = await ta();
4024
- _.setUserInfo(C);
4025
- }
4026
- if (d.fetchMenu) {
4027
- const C = await d.fetchMenu();
4028
- x.setMenuList(C);
4029
- } else {
4030
- const C = await $a(d.appId);
4031
- x.setMenuList(C);
4032
- }
4033
- d.onLoginSuccess && d.onLoginSuccess(), b.name && b.meta.keepAlive && S.addCachedView(b.name), g({ ...b, replace: !0 });
4034
- } catch (C) {
4035
- console.error("获取用户信息失败:", C), _.clearUserInfo(), x.clearMenu(), We(), g({ path: p, query: { redirect: b.fullPath } });
4036
- }
4037
- else
4038
- v.includes(b.path) ? g() : g({ path: p, query: { redirect: b.fullPath } });
4039
- }), r.afterEach(() => {
4040
- });
4041
- }
4042
- function bl(r) {
4043
- return ue.get("/user/list", { params: r });
4044
- }
4045
- function xl(r) {
4046
- return ue.get(`/user/${r}`);
4047
- }
4048
- function Cl(r) {
4049
- return ue.post("/user", r);
4050
- }
4051
- function Nl(r, d) {
4052
- return ue.put(`/user/${r}`, d);
4053
- }
4054
- function El(r) {
4055
- return ue.delete(`/user/${r}`);
4056
- }
4057
- function $l(r) {
4058
- return ue.post("/user/batch-delete", { ids: r });
4059
- }
4060
- function Sl(r, d) {
4061
- return ue.patch(`/user/${r}/status`, { status: d });
4062
- }
4063
- function Ml(r) {
4064
- return ue.post(`/user/${r}/reset-password`);
4065
- }
4066
- var Ma = /* @__PURE__ */ ((r) => (r[r.ENABLED = 1] = "ENABLED", r[r.DISABLED = 0] = "DISABLED", r))(Ma || {}), La = /* @__PURE__ */ ((r) => (r[r.UNKNOWN = 0] = "UNKNOWN", r[r.MALE = 1] = "MALE", r[r.FEMALE = 2] = "FEMALE", r))(La || {}), Ia = /* @__PURE__ */ ((r) => (r[r.DIRECTORY = 0] = "DIRECTORY", r[r.MENU = 1] = "MENU", r[r.BUTTON = 2] = "BUTTON", r))(Ia || {});
4067
- const Ll = {
4068
- 1: "启用",
4069
- 0: "禁用"
4070
- }, Il = {
4071
- 0: "未知",
4072
- 1: "男",
4073
- 2: "女"
4074
- }, Al = {
4075
- 0: "目录",
4076
- 1: "菜单",
4077
- 2: "按钮"
4078
- }, Tl = [
4079
- {
4080
- label: "启用",
4081
- value: 1
4082
- /* ENABLED */
4083
- },
4084
- {
4085
- label: "禁用",
4086
- value: 0
4087
- /* DISABLED */
4088
- }
4089
- ], Ol = [
4090
- {
4091
- label: "未知",
4092
- value: 0
4093
- /* UNKNOWN */
4094
- },
4095
- {
4096
- label: "男",
4097
- value: 1
4098
- /* MALE */
4099
- },
4100
- {
4101
- label: "女",
4102
- value: 2
4103
- /* FEMALE */
4104
- }
4105
- ], Ul = [
4106
- {
4107
- label: "目录",
4108
- value: 0
4109
- /* DIRECTORY */
4110
- },
4111
- {
4112
- label: "菜单",
4113
- value: 1
4114
- /* MENU */
4115
- },
4116
- {
4117
- label: "按钮",
4118
- value: 2
4119
- /* BUTTON */
4120
- }
4121
- ], Bl = {
4122
- mounted(r, d) {
4123
- var p;
4124
- $e().isLoggedIn || (p = r.parentNode) == null || p.removeChild(r);
4125
- }
4126
- };
4127
- function Pl(r) {
4128
- return cs({
4129
- appId: r.appId,
4130
- clientId: r.clientId,
4131
- apiBaseUrl: r.apiBaseUrl
4132
- }), r.locale && Promise.resolve().then(() => Ca).then(({ useLocaleStore: d }) => {
4133
- d().changeLocale(r.locale);
4134
- }), {
4135
- config: {
4136
- appName: r.appName || "XTO App",
4137
- appId: ct(),
4138
- clientId: zt(),
4139
- apiBaseUrl: us(),
4140
- indexPath: r.indexPath || "/dashboard",
4141
- loginPath: r.loginPath || "/login",
4142
- locale: r.locale || "zh-CN"
4143
- }
4144
- };
4145
- }
4146
- export {
4147
- al as $,
4148
- zt as A,
4149
- Ga as B,
4150
- gl as C,
4151
- $a as D,
4152
- qa as E,
4153
- Ha as F,
4154
- La as G,
4155
- Cn as H,
4156
- ja as I,
4157
- fl as J,
4158
- dl as K,
4159
- Vt as L,
4160
- Ia as M,
4161
- ut as N,
4162
- vs as O,
4163
- ps as P,
4164
- xl as Q,
4165
- ta as R,
4166
- Ma as S,
4167
- Ka as T,
4168
- bl as U,
4169
- ol as V,
4170
- rl as W,
4171
- Ft as X,
4172
- ue as Y,
4173
- cs as Z,
4174
- Se as _,
4175
- Tl as a,
4176
- ys as a0,
4177
- Jt as a1,
4178
- K as a2,
4179
- et as a3,
4180
- ea as a4,
4181
- Xa as a5,
4182
- Na as a6,
4183
- Bl as a7,
4184
- Ya as a8,
4185
- Ml as a9,
4186
- Fe as aA,
4187
- tl as aB,
4188
- $e as aC,
4189
- il as aa,
4190
- Zt as ab,
4191
- Va as ac,
4192
- tt as ad,
4193
- Wa as ae,
4194
- ws as af,
4195
- _s as ag,
4196
- hs as ah,
4197
- fs as ai,
4198
- gs as aj,
4199
- Dt as ak,
4200
- ms as al,
4201
- kl as am,
4202
- Yt as an,
4203
- wl as ao,
4204
- ml as ap,
4205
- vl as aq,
4206
- Nl as ar,
4207
- Sl as as,
4208
- Za as at,
4209
- Re as au,
4210
- Qa as av,
4211
- Ze as aw,
4212
- el as ax,
4213
- sl as ay,
4214
- Tt as az,
4215
- Ul as b,
4216
- Ja as c,
4217
- Ol as d,
4218
- Il as e,
4219
- Al as f,
4220
- _a as g,
4221
- Bt as h,
4222
- da as i,
4223
- Ll as j,
4224
- Fa as k,
4225
- $l as l,
4226
- We as m,
4227
- cl as n,
4228
- _l as o,
4229
- pl as p,
4230
- ul as q,
4231
- nl as r,
4232
- Cl as s,
4233
- Pl as t,
4234
- ll as u,
4235
- yl as v,
4236
- hl as w,
4237
- El as x,
4238
- us as y,
4239
- ct as z
4240
- };