xto-fronted 0.4.110 → 0.4.111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.js +1 -1
- package/dist/composables/useApp.d.ts +1 -0
- package/dist/{index-Ch8vmOiD.js → index-BNLsx1WO.js} +1 -1
- package/dist/{index-DTWHgS2f.js → index-Cjel_bu8.js} +579 -575
- package/dist/{index-C3r5dnEs.js → index-DB43988M.js} +1 -1
- package/dist/{index-CLcJb_H7.js → index-DKHtW-p9.js} +1 -1
- package/dist/{index-BMIR-PSJ.js → index-q2D-YeQK.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/stores/user.d.ts +10 -1
- package/dist/style.css +1 -1
- package/dist/{user-CHxvQHYq.js → user-Dr3u-kRk.js} +336 -332
- package/dist/utils/config.d.ts +6 -1
- package/package.json +1 -1
- package/src/components/Layout/Header.vue +1012 -1012
- package/src/directives/permission.ts +36 -36
- package/src/stores/app.ts +179 -179
- package/src/stores/menu.ts +109 -109
- package/src/stores/user.ts +52 -50
- package/src/types/api.d.ts +81 -80
- package/src/utils/config.ts +16 -3
- package/src/utils/permission.ts +39 -39
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import { x as
|
|
2
|
-
import { ref as
|
|
3
|
-
import { defineStore as
|
|
1
|
+
import { x as I, y as st, z as ot, A as at, B as nt, o as vt, C as lt, D as Fe, E as ht, m as _t, i as ft, F as gt, G as Qe, H as yt, I as kt, J as wt } from "./user-Dr3u-kRk.js";
|
|
2
|
+
import { ref as y, computed as b, watch as ye, defineComponent as ne, resolveComponent as rt, openBlock as a, createBlock as O, unref as n, withCtx as M, createElementBlock as c, Fragment as K, renderList as X, createElementVNode as e, toDisplayString as x, createCommentVNode as P, normalizeClass as J, withDirectives as Te, vShow as bt, createVNode as k, createTextVNode as he, onMounted as Ke, onUnmounted as je, vModelText as We, Transition as ke, withModifiers as Ee, normalizeStyle as Ne, reactive as qe, createStaticVNode as ze, withKeys as xt, h as Ct } from "vue";
|
|
3
|
+
import { defineStore as Ie } from "pinia";
|
|
4
4
|
import { useRoute as be, useRouter as me, createRouter as He, createWebHistory as Ye } from "vue-router";
|
|
5
5
|
import { SubMenu as Re, MenuItem as Se, Menu as Ge, Tabs as $t, TabPane as Lt } from "@xto/navigation";
|
|
6
6
|
import { Icon as z, Button as we } from "@xto/base";
|
|
7
7
|
import { Drawer as Xe, Message as Mt } from "@xto/feedback";
|
|
8
|
-
import { Form as St, FormItem as Pe, Input as et, Checkbox as
|
|
9
|
-
import { createLocaleProvider as
|
|
10
|
-
const ue =
|
|
11
|
-
const t =
|
|
12
|
-
t.value = U,
|
|
8
|
+
import { Form as St, FormItem as Pe, Input as et, Checkbox as Nt } from "@xto/form";
|
|
9
|
+
import { createLocaleProvider as It, getSupportedLocales as Ut, useLocale as zt } from "@xto/core/locale";
|
|
10
|
+
const ue = Ie("app", () => {
|
|
11
|
+
const t = y(I.get("appName") || "XTO App"), r = y(I.get("indexPath") || "/dashboard"), u = y(I.get("loginPath") || "/login"), s = y(I.get("isDark") || !1), o = y(I.get("theme") || "light"), i = y(I.get("layout") || "sidebar"), h = y(I.get("isCollapsed") || !1), v = y(I.get("showTabs") ?? !0), d = y(I.get("showFooter") ?? !0), f = y(I.get("showBreadcrumb") ?? !0), _ = y(I.get("primaryColor") || "#409eff"), g = y([]), m = y([]), j = b(() => s.value ? "dark" : "light"), D = (U) => {
|
|
12
|
+
t.value = U, I.set("appName", U);
|
|
13
13
|
}, W = (U) => {
|
|
14
|
-
r.value = U,
|
|
14
|
+
r.value = U, I.set("indexPath", U);
|
|
15
15
|
}, V = (U) => {
|
|
16
|
-
|
|
16
|
+
u.value = U, I.set("loginPath", U);
|
|
17
17
|
}, B = () => {
|
|
18
|
-
s.value = !s.value,
|
|
18
|
+
s.value = !s.value, o.value = s.value ? "dark" : "light", Z();
|
|
19
19
|
}, H = (U) => {
|
|
20
|
-
|
|
20
|
+
o.value = U, s.value = U === "dark", Z();
|
|
21
21
|
}, Z = () => {
|
|
22
22
|
const U = document.documentElement;
|
|
23
|
-
s.value ? U.classList.add("dark") : U.classList.remove("dark"),
|
|
23
|
+
s.value ? U.classList.add("dark") : U.classList.remove("dark"), I.set("isDark", s.value), I.set("theme", o.value);
|
|
24
24
|
}, Y = () => {
|
|
25
|
-
h.value = !h.value,
|
|
25
|
+
h.value = !h.value, I.set("isCollapsed", h.value);
|
|
26
26
|
}, q = (U) => {
|
|
27
|
-
i.value = U,
|
|
27
|
+
i.value = U, I.set("layout", U);
|
|
28
28
|
}, ee = () => {
|
|
29
|
-
v.value = !v.value,
|
|
29
|
+
v.value = !v.value, I.set("showTabs", v.value);
|
|
30
30
|
}, E = () => {
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
f.value = !f.value,
|
|
31
|
+
d.value = !d.value, I.set("showFooter", d.value);
|
|
32
|
+
}, N = () => {
|
|
33
|
+
f.value = !f.value, I.set("showBreadcrumb", f.value);
|
|
34
34
|
}, A = (U) => {
|
|
35
|
-
_.value = U, document.documentElement.style.setProperty("--color-primary", U),
|
|
35
|
+
_.value = U, document.documentElement.style.setProperty("--color-primary", U), I.set("primaryColor", U);
|
|
36
36
|
}, G = (U) => {
|
|
37
|
-
|
|
37
|
+
g.value.includes(U) || g.value.push(U);
|
|
38
38
|
}, F = (U) => {
|
|
39
|
-
const oe =
|
|
40
|
-
oe > -1 &&
|
|
39
|
+
const oe = g.value.indexOf(U);
|
|
40
|
+
oe > -1 && g.value.splice(oe, 1);
|
|
41
41
|
}, se = () => {
|
|
42
|
-
|
|
42
|
+
g.value = [];
|
|
43
43
|
}, ie = (U) => {
|
|
44
|
-
|
|
44
|
+
m.value = U;
|
|
45
45
|
}, pe = () => {
|
|
46
46
|
Z(), _.value !== "#409eff" && document.documentElement.style.setProperty("--color-primary", _.value);
|
|
47
47
|
};
|
|
48
48
|
return ye(s, Z), {
|
|
49
49
|
appName: t,
|
|
50
50
|
indexPath: r,
|
|
51
|
-
loginPath:
|
|
51
|
+
loginPath: u,
|
|
52
52
|
isDark: s,
|
|
53
|
-
theme:
|
|
53
|
+
theme: o,
|
|
54
54
|
layout: i,
|
|
55
55
|
isCollapsed: h,
|
|
56
56
|
showTabs: v,
|
|
57
|
-
showFooter:
|
|
57
|
+
showFooter: d,
|
|
58
58
|
showBreadcrumb: f,
|
|
59
59
|
primaryColor: _,
|
|
60
|
-
cachedViews:
|
|
61
|
-
mixSubMenus:
|
|
60
|
+
cachedViews: g,
|
|
61
|
+
mixSubMenus: m,
|
|
62
62
|
themeClass: j,
|
|
63
63
|
setAppName: D,
|
|
64
64
|
setIndexPath: W,
|
|
@@ -69,7 +69,7 @@ const ue = Ne("app", () => {
|
|
|
69
69
|
setLayout: q,
|
|
70
70
|
toggleTabs: ee,
|
|
71
71
|
toggleFooter: E,
|
|
72
|
-
toggleBreadcrumb:
|
|
72
|
+
toggleBreadcrumb: N,
|
|
73
73
|
setPrimaryColor: A,
|
|
74
74
|
addCachedView: G,
|
|
75
75
|
removeCachedView: F,
|
|
@@ -97,95 +97,99 @@ function it(t) {
|
|
|
97
97
|
}
|
|
98
98
|
function Pt(t) {
|
|
99
99
|
const r = [];
|
|
100
|
-
function
|
|
101
|
-
s.forEach((
|
|
102
|
-
|
|
100
|
+
function u(s) {
|
|
101
|
+
s.forEach((o) => {
|
|
102
|
+
o.type === 1 && o.menuCode && r.push(o.menuCode), o.children && u(o.children);
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
|
-
return
|
|
105
|
+
return u(t), r;
|
|
106
106
|
}
|
|
107
|
-
const de =
|
|
108
|
-
const t =
|
|
107
|
+
const de = Ie("menu", () => {
|
|
108
|
+
const t = y(I.get(Ae) || []), r = y(I.get(De) || []), u = b(() => t.value.length > 0);
|
|
109
109
|
return {
|
|
110
110
|
menuList: t,
|
|
111
111
|
permissions: r,
|
|
112
|
-
hasMenu:
|
|
112
|
+
hasMenu: u,
|
|
113
113
|
setMenuList: (h) => {
|
|
114
|
-
r.value = Pt(h),
|
|
114
|
+
r.value = Pt(h), I.set(De, r.value);
|
|
115
115
|
const v = it(h);
|
|
116
|
-
t.value = [Et, ...v],
|
|
116
|
+
t.value = [Et, ...v], I.set(Ae, t.value);
|
|
117
117
|
},
|
|
118
118
|
clearMenu: () => {
|
|
119
|
-
t.value = [], r.value = [],
|
|
119
|
+
t.value = [], r.value = [], I.remove(Ae), I.remove(De);
|
|
120
120
|
},
|
|
121
121
|
hasPermission: (h) => Array.isArray(h) ? h.some((v) => r.value.includes(v)) : r.value.includes(h)
|
|
122
122
|
};
|
|
123
|
-
}), Ve = "user_info", le =
|
|
124
|
-
const t =
|
|
125
|
-
var
|
|
126
|
-
return ((
|
|
127
|
-
}), s =
|
|
128
|
-
var
|
|
129
|
-
return ((
|
|
130
|
-
}),
|
|
131
|
-
var
|
|
132
|
-
return ((
|
|
133
|
-
}), i =
|
|
134
|
-
var
|
|
135
|
-
return ((
|
|
136
|
-
}), h =
|
|
137
|
-
var
|
|
138
|
-
return ((
|
|
139
|
-
}), v =
|
|
140
|
-
var
|
|
141
|
-
return ((
|
|
142
|
-
}),
|
|
143
|
-
var
|
|
144
|
-
return ((
|
|
123
|
+
}), Ve = "user_info", le = Ie("user", () => {
|
|
124
|
+
const t = y(I.get(Ve)), r = b(() => !!t.value), u = b(() => {
|
|
125
|
+
var m;
|
|
126
|
+
return ((m = t.value) == null ? void 0 : m.userId) || "";
|
|
127
|
+
}), s = b(() => {
|
|
128
|
+
var m;
|
|
129
|
+
return ((m = t.value) == null ? void 0 : m.userName) || "";
|
|
130
|
+
}), o = b(() => {
|
|
131
|
+
var m;
|
|
132
|
+
return ((m = t.value) == null ? void 0 : m.departmentName) || "";
|
|
133
|
+
}), i = b(() => {
|
|
134
|
+
var m;
|
|
135
|
+
return ((m = t.value) == null ? void 0 : m.roleName) || "";
|
|
136
|
+
}), h = b(() => {
|
|
137
|
+
var m;
|
|
138
|
+
return ((m = t.value) == null ? void 0 : m.email) || "";
|
|
139
|
+
}), v = b(() => {
|
|
140
|
+
var m;
|
|
141
|
+
return ((m = t.value) == null ? void 0 : m.mobilePhone) || "";
|
|
142
|
+
}), d = b(() => {
|
|
143
|
+
var m;
|
|
144
|
+
return ((m = t.value) == null ? void 0 : m.positionName) || "";
|
|
145
|
+
}), f = b(() => {
|
|
146
|
+
var m;
|
|
147
|
+
return ((m = t.value) == null ? void 0 : m.avatar) || "";
|
|
145
148
|
});
|
|
146
149
|
return {
|
|
147
150
|
userInfo: t,
|
|
148
151
|
isLoggedIn: r,
|
|
149
|
-
userId:
|
|
152
|
+
userId: u,
|
|
150
153
|
userName: s,
|
|
151
|
-
departmentName:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
departmentName: o,
|
|
155
|
+
roleName: i,
|
|
156
|
+
email: h,
|
|
157
|
+
mobilePhone: v,
|
|
158
|
+
positionName: d,
|
|
159
|
+
avatar: f,
|
|
160
|
+
setUserInfo: (m) => {
|
|
161
|
+
t.value = m, I.set(Ve, m);
|
|
158
162
|
},
|
|
159
163
|
clearUserInfo: () => {
|
|
160
|
-
t.value = null,
|
|
164
|
+
t.value = null, I.remove(Ve);
|
|
161
165
|
}
|
|
162
166
|
};
|
|
163
|
-
}), Ue =
|
|
164
|
-
const t =
|
|
167
|
+
}), Ue = Ie("auth", () => {
|
|
168
|
+
const t = y(st()), r = b(() => ot()), u = y(""), s = y(""), o = y(""), i = y("/login");
|
|
165
169
|
return {
|
|
166
170
|
token: t,
|
|
167
171
|
isLoggedIn: r,
|
|
168
|
-
baseUrl:
|
|
172
|
+
baseUrl: u,
|
|
169
173
|
appId: s,
|
|
170
|
-
clientId:
|
|
174
|
+
clientId: o,
|
|
171
175
|
loginPath: i,
|
|
172
|
-
login: (
|
|
173
|
-
t.value =
|
|
176
|
+
login: (m) => {
|
|
177
|
+
t.value = m.access_token, nt(m);
|
|
174
178
|
},
|
|
175
179
|
logout: () => {
|
|
176
180
|
t.value = null, at();
|
|
177
181
|
},
|
|
178
|
-
setBaseUrl: (
|
|
179
|
-
|
|
182
|
+
setBaseUrl: (m) => {
|
|
183
|
+
u.value = m;
|
|
180
184
|
},
|
|
181
|
-
setAppId: (
|
|
182
|
-
s.value =
|
|
185
|
+
setAppId: (m) => {
|
|
186
|
+
s.value = m;
|
|
183
187
|
},
|
|
184
|
-
setClientId: (
|
|
185
|
-
|
|
188
|
+
setClientId: (m) => {
|
|
189
|
+
o.value = m;
|
|
186
190
|
},
|
|
187
|
-
setLoginPath: (
|
|
188
|
-
i.value =
|
|
191
|
+
setLoginPath: (m) => {
|
|
192
|
+
i.value = m;
|
|
189
193
|
}
|
|
190
194
|
};
|
|
191
195
|
}), At = { class: "menu-item__content" }, Dt = { class: "menu-item__icon" }, Vt = {
|
|
@@ -203,7 +207,7 @@ const de = Ne("menu", () => {
|
|
|
203
207
|
menu: {}
|
|
204
208
|
},
|
|
205
209
|
setup(t) {
|
|
206
|
-
const r = t,
|
|
210
|
+
const r = t, u = /* @__PURE__ */ new Set([
|
|
207
211
|
"arrow-up",
|
|
208
212
|
"arrow-down",
|
|
209
213
|
"arrow-left",
|
|
@@ -305,10 +309,10 @@ const de = Ne("menu", () => {
|
|
|
305
309
|
"sun",
|
|
306
310
|
"theme",
|
|
307
311
|
"skin"
|
|
308
|
-
]), s = (
|
|
309
|
-
if (!
|
|
310
|
-
if (
|
|
311
|
-
const _ =
|
|
312
|
+
]), s = (d) => {
|
|
313
|
+
if (!d || d === "") return "";
|
|
314
|
+
if (d.startsWith("tineco-icon-")) {
|
|
315
|
+
const _ = d.replace("tineco-icon-", "");
|
|
312
316
|
return {
|
|
313
317
|
home: "home",
|
|
314
318
|
dashboard: "dashboard",
|
|
@@ -341,47 +345,47 @@ const de = Ne("menu", () => {
|
|
|
341
345
|
app: "app",
|
|
342
346
|
list: "list",
|
|
343
347
|
grid: "grid"
|
|
344
|
-
}[
|
|
345
|
-
},
|
|
346
|
-
return (
|
|
348
|
+
}[d] || d;
|
|
349
|
+
}, o = (d) => d ? d.charAt(0) : "", i = (d) => u.has(d), h = b(() => r.menu.menuId || r.menu.menuCode || r.menu.menuUrl || ""), v = b(() => r.menu.children && r.menu.children.length > 0);
|
|
350
|
+
return (d, f) => {
|
|
347
351
|
const _ = rt("SidebarMenuItem", !0);
|
|
348
|
-
return v.value ? (
|
|
352
|
+
return v.value ? (a(), O(n(Re), {
|
|
349
353
|
key: 0,
|
|
350
354
|
index: h.value
|
|
351
355
|
}, {
|
|
352
356
|
title: M(() => [
|
|
353
357
|
e("span", At, [
|
|
354
358
|
e("span", Dt, [
|
|
355
|
-
i(s(t.menu.icon)) ? (
|
|
359
|
+
i(s(t.menu.icon)) ? (a(), O(n(z), {
|
|
356
360
|
key: 0,
|
|
357
361
|
name: s(t.menu.icon),
|
|
358
362
|
size: 16
|
|
359
|
-
}, null, 8, ["name"])) : (
|
|
363
|
+
}, null, 8, ["name"])) : (a(), c("span", Vt, x(o(t.menu.menuName)), 1))
|
|
360
364
|
]),
|
|
361
|
-
e("span", Ot,
|
|
365
|
+
e("span", Ot, x(t.menu.menuName), 1)
|
|
362
366
|
])
|
|
363
367
|
]),
|
|
364
368
|
default: M(() => [
|
|
365
|
-
(
|
|
366
|
-
key:
|
|
367
|
-
menu:
|
|
369
|
+
(a(!0), c(K, null, X(t.menu.children, (g) => (a(), O(_, {
|
|
370
|
+
key: g.menuId || g.menuCode || g.menuUrl,
|
|
371
|
+
menu: g
|
|
368
372
|
}, null, 8, ["menu"]))), 128))
|
|
369
373
|
]),
|
|
370
374
|
_: 1
|
|
371
|
-
}, 8, ["index"])) : (
|
|
375
|
+
}, 8, ["index"])) : (a(), O(n(Se), {
|
|
372
376
|
key: 1,
|
|
373
377
|
index: t.menu.menuUrl || h.value
|
|
374
378
|
}, {
|
|
375
379
|
default: M(() => [
|
|
376
380
|
e("span", Bt, [
|
|
377
|
-
t.menu.menuName !== "首页" ? (
|
|
378
|
-
i(s(t.menu.icon)) ? (
|
|
381
|
+
t.menu.menuName !== "首页" ? (a(), c("span", Rt, [
|
|
382
|
+
i(s(t.menu.icon)) ? (a(), O(n(z), {
|
|
379
383
|
key: 0,
|
|
380
384
|
name: s(t.menu.icon),
|
|
381
385
|
size: 16
|
|
382
|
-
}, null, 8, ["name"])) : (
|
|
386
|
+
}, null, 8, ["name"])) : (a(), c("span", Ft, x(o(t.menu.menuName)), 1))
|
|
383
387
|
])) : P("", !0),
|
|
384
|
-
e("span", Kt,
|
|
388
|
+
e("span", Kt, x(t.menu.menuName), 1)
|
|
385
389
|
])
|
|
386
390
|
]),
|
|
387
391
|
_: 1
|
|
@@ -389,10 +393,10 @@ const de = Ne("menu", () => {
|
|
|
389
393
|
};
|
|
390
394
|
}
|
|
391
395
|
}), re = (t, r) => {
|
|
392
|
-
const
|
|
393
|
-
for (const [s,
|
|
394
|
-
|
|
395
|
-
return
|
|
396
|
+
const u = t.__vccOpts || t;
|
|
397
|
+
for (const [s, o] of r)
|
|
398
|
+
u[s] = o;
|
|
399
|
+
return u;
|
|
396
400
|
}, Wt = /* @__PURE__ */ re(jt, [["__scopeId", "data-v-f5865e28"]]), qt = {
|
|
397
401
|
key: 0,
|
|
398
402
|
class: "sidebar__logo"
|
|
@@ -408,56 +412,56 @@ const de = Ne("menu", () => {
|
|
|
408
412
|
logoSrc: { default: "/vite.svg" }
|
|
409
413
|
},
|
|
410
414
|
setup(t) {
|
|
411
|
-
const r = t,
|
|
415
|
+
const r = t, u = be(), s = me(), o = de(), i = le(), h = Ue(), v = ue(), d = b(() => r.menuList.length > 0 ? r.menuList : o.menuList), f = b(() => v.isCollapsed), _ = b(() => u.path), g = (E) => E.menuId || E.menuCode || E.menuUrl || "", m = () => d.value.map(g).join(","), j = I.get(Be) || "", D = m(), W = j === D ? I.get(Oe) || [] : [], V = y(W);
|
|
412
416
|
ye(V, (E) => {
|
|
413
|
-
|
|
417
|
+
I.set(Oe, E), I.set(Be, m());
|
|
414
418
|
}, { deep: !0 });
|
|
415
|
-
const B = (E,
|
|
419
|
+
const B = (E, N, A = []) => {
|
|
416
420
|
var G;
|
|
417
421
|
for (const F of E) {
|
|
418
|
-
if (F.menuUrl && (
|
|
419
|
-
return [...A,
|
|
422
|
+
if (F.menuUrl && (N === F.menuUrl || N.startsWith(F.menuUrl + "/")))
|
|
423
|
+
return [...A, g(F)];
|
|
420
424
|
if ((G = F.children) != null && G.length) {
|
|
421
|
-
const se = B(F.children,
|
|
425
|
+
const se = B(F.children, N, [...A, g(F)]);
|
|
422
426
|
if (se) return se;
|
|
423
427
|
}
|
|
424
428
|
}
|
|
425
429
|
return null;
|
|
426
430
|
};
|
|
427
|
-
ye([() =>
|
|
428
|
-
if (
|
|
429
|
-
const A = B(
|
|
431
|
+
ye([() => u.path, d], ([E, N]) => {
|
|
432
|
+
if (N.length > 0) {
|
|
433
|
+
const A = B(N, E);
|
|
430
434
|
if (A) {
|
|
431
435
|
const G = A.slice(0, -1), F = /* @__PURE__ */ new Set([...V.value, ...G]);
|
|
432
436
|
V.value = Array.from(F);
|
|
433
437
|
}
|
|
434
438
|
}
|
|
435
|
-
}, { immediate: !0 }), ye(
|
|
436
|
-
E !==
|
|
439
|
+
}, { immediate: !0 }), ye(d, (E, N) => {
|
|
440
|
+
E !== N && (V.value = [], I.set(Oe, []), I.set(Be, m()));
|
|
437
441
|
}, { immediate: !1 });
|
|
438
|
-
const H =
|
|
439
|
-
E && E !==
|
|
442
|
+
const H = b(() => v.isDark ? "#1d1e1f" : "#fff"), Z = b(() => v.isDark ? "#cfd3dc" : "#303133"), Y = b(() => "#409eff"), q = (E) => {
|
|
443
|
+
E && E !== u.path && s.push(E);
|
|
440
444
|
}, ee = () => {
|
|
441
|
-
h.logout(), i.clearUserInfo(),
|
|
445
|
+
h.logout(), i.clearUserInfo(), o.clearMenu(), s.push(v.loginPath);
|
|
442
446
|
};
|
|
443
|
-
return (E,
|
|
447
|
+
return (E, N) => (a(), c("div", {
|
|
444
448
|
class: J(["sidebar", { "sidebar--collapsed": f.value }])
|
|
445
449
|
}, [
|
|
446
|
-
r.showLogo ? (
|
|
450
|
+
r.showLogo ? (a(), c("div", qt, [
|
|
447
451
|
e("img", {
|
|
448
452
|
src: r.logoSrc,
|
|
449
453
|
alt: "Logo",
|
|
450
454
|
class: "sidebar__logo-img"
|
|
451
455
|
}, null, 8, Ht),
|
|
452
|
-
Te(e("span", { class: "sidebar__logo-text" },
|
|
456
|
+
Te(e("span", { class: "sidebar__logo-text" }, x(n(v).appName), 513), [
|
|
453
457
|
[bt, !f.value]
|
|
454
458
|
])
|
|
455
459
|
])) : P("", !0),
|
|
456
|
-
|
|
460
|
+
k(n(Ge), {
|
|
457
461
|
modelValue: _.value,
|
|
458
|
-
"onUpdate:modelValue":
|
|
462
|
+
"onUpdate:modelValue": N[0] || (N[0] = (A) => _.value = A),
|
|
459
463
|
openeds: V.value,
|
|
460
|
-
"onUpdate:openeds":
|
|
464
|
+
"onUpdate:openeds": N[1] || (N[1] = (A) => V.value = A),
|
|
461
465
|
mode: "vertical",
|
|
462
466
|
collapse: f.value,
|
|
463
467
|
"collapse-transition": !1,
|
|
@@ -468,24 +472,24 @@ const de = Ne("menu", () => {
|
|
|
468
472
|
onSelect: q
|
|
469
473
|
}, {
|
|
470
474
|
default: M(() => [
|
|
471
|
-
(
|
|
472
|
-
key:
|
|
475
|
+
(a(!0), c(K, null, X(d.value, (A) => (a(), O(Wt, {
|
|
476
|
+
key: g(A),
|
|
473
477
|
menu: A
|
|
474
478
|
}, null, 8, ["menu"]))), 128))
|
|
475
479
|
]),
|
|
476
480
|
_: 1
|
|
477
481
|
}, 8, ["modelValue", "openeds", "collapse", "background-color", "text-color", "active-text-color"]),
|
|
478
|
-
r.showUser && !f.value ? (
|
|
482
|
+
r.showUser && !f.value ? (a(), c("div", Yt, [
|
|
479
483
|
e("div", Gt, [
|
|
480
|
-
e("span", Xt,
|
|
481
|
-
e("span", Jt,
|
|
484
|
+
e("span", Xt, x(n(i).userName), 1),
|
|
485
|
+
e("span", Jt, x(n(i).departmentName), 1)
|
|
482
486
|
]),
|
|
483
|
-
|
|
487
|
+
k(n(we), {
|
|
484
488
|
type: "text",
|
|
485
489
|
size: "small",
|
|
486
490
|
onClick: ee
|
|
487
491
|
}, {
|
|
488
|
-
default: M(() => [...
|
|
492
|
+
default: M(() => [...N[2] || (N[2] = [
|
|
489
493
|
he("退出", -1)
|
|
490
494
|
])]),
|
|
491
495
|
_: 1
|
|
@@ -526,13 +530,13 @@ const de = Ne("menu", () => {
|
|
|
526
530
|
}, Ss = {
|
|
527
531
|
key: 1,
|
|
528
532
|
class: "layout-preview-top"
|
|
529
|
-
},
|
|
533
|
+
}, Ns = {
|
|
530
534
|
key: 2,
|
|
531
535
|
class: "layout-preview-mix"
|
|
532
|
-
},
|
|
536
|
+
}, Is = { class: "layout-option__label" }, Us = { class: "settings-section" }, zs = { class: "settings-color-options" }, Ts = ["title", "onClick"], Es = { class: "settings-section" }, Ps = { class: "settings-switch-list" }, As = { class: "settings-switch-item" }, Ds = { class: "settings-switch-item" }, Vs = /* @__PURE__ */ ne({
|
|
533
537
|
__name: "Header",
|
|
534
538
|
setup(t) {
|
|
535
|
-
const r = be(),
|
|
539
|
+
const r = be(), u = me(), s = ue(), o = le(), i = Ue(), h = de(), v = y(!1), d = y(!1), f = y(null), _ = y(!1), g = y(!1), m = y(""), j = y(null), D = y(!1), W = [
|
|
536
540
|
{ value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
|
|
537
541
|
{ value: "top", label: "顶部菜单", icon: "menu" },
|
|
538
542
|
{ value: "mix", label: "混合菜单", icon: "grid" }
|
|
@@ -543,13 +547,13 @@ const de = Ne("menu", () => {
|
|
|
543
547
|
{ value: "#faad14", label: "日落橙" },
|
|
544
548
|
{ value: "#f5222d", label: "薄暮红" },
|
|
545
549
|
{ value: "#722ed1", label: "酱紫" }
|
|
546
|
-
], B =
|
|
547
|
-
title:
|
|
548
|
-
path:
|
|
549
|
-
}))), H = (T,
|
|
550
|
+
], B = b(() => r.matched.filter((w) => w.meta && w.meta.title).map((w) => ({
|
|
551
|
+
title: w.meta.title,
|
|
552
|
+
path: w.path
|
|
553
|
+
}))), H = (T, w = "") => {
|
|
550
554
|
const Q = [];
|
|
551
|
-
return T.forEach((
|
|
552
|
-
|
|
555
|
+
return T.forEach((C) => {
|
|
556
|
+
C.children && C.children.length > 0 ? Q.push(...H(C.children, C.menuName)) : Q.push({ ...C, parentTitle: w, title: C.menuName, path: C.menuUrl });
|
|
553
557
|
}), Q;
|
|
554
558
|
}, Z = /* @__PURE__ */ new Set([
|
|
555
559
|
"arrow-up",
|
|
@@ -690,24 +694,24 @@ const de = Ne("menu", () => {
|
|
|
690
694
|
list: "list",
|
|
691
695
|
grid: "grid"
|
|
692
696
|
}[T] || T;
|
|
693
|
-
}, q = (T) => T ? T.charAt(0) : "", ee = (T) => Z.has(T), E =
|
|
694
|
-
(
|
|
695
|
-
) : []),
|
|
697
|
+
}, q = (T) => T ? T.charAt(0) : "", ee = (T) => Z.has(T), E = b(() => m.value.trim() ? H(h.menuList).filter(
|
|
698
|
+
(w) => w.title.toLowerCase().includes(m.value.toLowerCase())
|
|
699
|
+
) : []), N = b(() => s.layout), A = () => {
|
|
696
700
|
s.toggleCollapse();
|
|
697
701
|
}, G = () => {
|
|
698
702
|
s.toggleTheme();
|
|
699
703
|
}, F = () => {
|
|
700
|
-
|
|
704
|
+
d.value = !0;
|
|
701
705
|
}, se = (T) => {
|
|
702
|
-
s.setLayout(T),
|
|
706
|
+
s.setLayout(T), d.value = !1;
|
|
703
707
|
}, ie = (T) => {
|
|
704
708
|
D.value = T;
|
|
705
|
-
const
|
|
706
|
-
T ?
|
|
709
|
+
const w = document.documentElement;
|
|
710
|
+
T ? w.classList.add("grey-mode") : w.classList.remove("grey-mode");
|
|
707
711
|
}, pe = () => {
|
|
708
|
-
ie(!D.value),
|
|
712
|
+
ie(!D.value), d.value = !1;
|
|
709
713
|
}, U = () => {
|
|
710
|
-
s.toggleTheme(),
|
|
714
|
+
s.toggleTheme(), d.value = !1;
|
|
711
715
|
}, oe = () => {
|
|
712
716
|
document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
|
|
713
717
|
}, _e = () => {
|
|
@@ -717,17 +721,17 @@ const de = Ne("menu", () => {
|
|
|
717
721
|
}, ae = () => {
|
|
718
722
|
v.value = !1;
|
|
719
723
|
}, ve = () => {
|
|
720
|
-
|
|
724
|
+
g.value = !1, m.value = "";
|
|
721
725
|
}, xe = (T) => {
|
|
722
|
-
|
|
726
|
+
u.push(T), ve();
|
|
723
727
|
}, Ce = (T) => {
|
|
724
|
-
s.setPrimaryColor(T),
|
|
728
|
+
s.setPrimaryColor(T), d.value = !1;
|
|
725
729
|
}, $e = () => {
|
|
726
|
-
ae(),
|
|
730
|
+
ae(), u.push("/profile");
|
|
727
731
|
}, Le = () => {
|
|
728
|
-
ae(),
|
|
732
|
+
ae(), u.push("/change-password");
|
|
729
733
|
}, Me = () => {
|
|
730
|
-
ae(), i.logout(),
|
|
734
|
+
ae(), i.logout(), o.clearUserInfo(), h.clearMenu(), u.push(s.loginPath);
|
|
731
735
|
}, fe = (T) => {
|
|
732
736
|
f.value && !f.value.contains(T.target) && ae(), j.value && !j.value.contains(T.target) && ve();
|
|
733
737
|
}, ge = (T) => {
|
|
@@ -737,27 +741,27 @@ const de = Ne("menu", () => {
|
|
|
737
741
|
document.addEventListener("click", fe), document.addEventListener("fullscreenchange", _e), document.addEventListener("keydown", ge), s.initTheme(), D.value = document.documentElement.classList.contains("grey-mode");
|
|
738
742
|
}), je(() => {
|
|
739
743
|
document.removeEventListener("click", fe), document.removeEventListener("fullscreenchange", _e), document.removeEventListener("keydown", ge);
|
|
740
|
-
}), (T,
|
|
744
|
+
}), (T, w) => {
|
|
741
745
|
var Q;
|
|
742
|
-
return
|
|
746
|
+
return a(), c("div", Qt, [
|
|
743
747
|
e("div", es, [
|
|
744
748
|
e("div", {
|
|
745
749
|
class: "header__collapse",
|
|
746
750
|
onClick: A
|
|
747
751
|
}, [
|
|
748
|
-
|
|
752
|
+
k(n(z), {
|
|
749
753
|
name: n(s).isCollapsed ? "menu-unfold" : "menu-fold",
|
|
750
754
|
size: 18
|
|
751
755
|
}, null, 8, ["name"])
|
|
752
756
|
]),
|
|
753
|
-
n(s).showBreadcrumb ? (
|
|
754
|
-
(
|
|
755
|
-
key:
|
|
757
|
+
n(s).showBreadcrumb ? (a(), c("div", ts, [
|
|
758
|
+
(a(!0), c(K, null, X(B.value, (C, S) => (a(), c("span", {
|
|
759
|
+
key: C.path
|
|
756
760
|
}, [
|
|
757
|
-
S > 0 ? (
|
|
761
|
+
S > 0 ? (a(), c("span", ss, "/")) : P("", !0),
|
|
758
762
|
e("span", {
|
|
759
763
|
class: J({ "is-current": S === B.value.length - 1 })
|
|
760
|
-
},
|
|
764
|
+
}, x(C.title), 3)
|
|
761
765
|
]))), 128))
|
|
762
766
|
])) : P("", !0)
|
|
763
767
|
]),
|
|
@@ -767,40 +771,40 @@ const de = Ne("menu", () => {
|
|
|
767
771
|
ref_key: "searchRef",
|
|
768
772
|
ref: j
|
|
769
773
|
}, [
|
|
770
|
-
|
|
774
|
+
k(n(z), {
|
|
771
775
|
name: "search",
|
|
772
776
|
size: 14,
|
|
773
777
|
class: "header__search-icon"
|
|
774
778
|
}),
|
|
775
779
|
Te(e("input", {
|
|
776
|
-
"onUpdate:modelValue":
|
|
780
|
+
"onUpdate:modelValue": w[0] || (w[0] = (C) => m.value = C),
|
|
777
781
|
type: "text",
|
|
778
782
|
class: "header__search-input",
|
|
779
783
|
placeholder: "搜索菜单...",
|
|
780
|
-
onFocus:
|
|
784
|
+
onFocus: w[1] || (w[1] = (C) => g.value = !0)
|
|
781
785
|
}, null, 544), [
|
|
782
|
-
[We,
|
|
786
|
+
[We, m.value]
|
|
783
787
|
]),
|
|
784
|
-
|
|
788
|
+
k(ke, { name: "search-dropdown" }, {
|
|
785
789
|
default: M(() => [
|
|
786
|
-
|
|
787
|
-
E.value.length > 0 ? (
|
|
788
|
-
(
|
|
789
|
-
key:
|
|
790
|
+
g.value && (E.value.length > 0 || m.value) ? (a(), c("div", as, [
|
|
791
|
+
E.value.length > 0 ? (a(), c("div", ns, [
|
|
792
|
+
(a(!0), c(K, null, X(E.value, (C) => (a(), c("div", {
|
|
793
|
+
key: C.path,
|
|
790
794
|
class: "header__search-item",
|
|
791
|
-
onClick: (S) => xe(
|
|
795
|
+
onClick: (S) => xe(C.path)
|
|
792
796
|
}, [
|
|
793
|
-
|
|
794
|
-
ee(Y(
|
|
797
|
+
C.title !== "首页" ? (a(), c("span", rs, [
|
|
798
|
+
ee(Y(C.icon)) ? (a(), O(n(z), {
|
|
795
799
|
key: 0,
|
|
796
|
-
name: Y(
|
|
800
|
+
name: Y(C.icon),
|
|
797
801
|
size: 16
|
|
798
|
-
}, null, 8, ["name"])) : (
|
|
802
|
+
}, null, 8, ["name"])) : (a(), c("span", is, x(q(C.title)), 1))
|
|
799
803
|
])) : P("", !0),
|
|
800
|
-
e("span", cs,
|
|
801
|
-
|
|
804
|
+
e("span", cs, x(C.title), 1),
|
|
805
|
+
C.parentTitle ? (a(), c("span", us, x(C.parentTitle), 1)) : P("", !0)
|
|
802
806
|
], 8, ls))), 128))
|
|
803
|
-
])) : (
|
|
807
|
+
])) : (a(), c("div", ds, " 未找到匹配的菜单 "))
|
|
804
808
|
])) : P("", !0)
|
|
805
809
|
]),
|
|
806
810
|
_: 1
|
|
@@ -811,7 +815,7 @@ const de = Ne("menu", () => {
|
|
|
811
815
|
onClick: oe,
|
|
812
816
|
title: _.value ? "退出全屏" : "全屏"
|
|
813
817
|
}, [
|
|
814
|
-
|
|
818
|
+
k(n(z), {
|
|
815
819
|
name: _.value ? "fullscreen-exit" : "fullscreen",
|
|
816
820
|
size: 16
|
|
817
821
|
}, null, 8, ["name"])
|
|
@@ -821,7 +825,7 @@ const de = Ne("menu", () => {
|
|
|
821
825
|
onClick: F,
|
|
822
826
|
title: "换肤设置"
|
|
823
827
|
}, [
|
|
824
|
-
|
|
828
|
+
k(n(z), {
|
|
825
829
|
name: "skin",
|
|
826
830
|
size: 16
|
|
827
831
|
})
|
|
@@ -831,7 +835,7 @@ const de = Ne("menu", () => {
|
|
|
831
835
|
onClick: G,
|
|
832
836
|
title: "切换主题"
|
|
833
837
|
}, [
|
|
834
|
-
|
|
838
|
+
k(n(z), {
|
|
835
839
|
name: n(s).isDark ? "sun" : "moon",
|
|
836
840
|
size: 16
|
|
837
841
|
}, null, 8, ["name"])
|
|
@@ -846,59 +850,59 @@ const de = Ne("menu", () => {
|
|
|
846
850
|
onClick: Ee(ce, ["stop"])
|
|
847
851
|
}, [
|
|
848
852
|
e("div", ps, [
|
|
849
|
-
e("span", null,
|
|
853
|
+
e("span", null, x(((Q = n(o).userName) == null ? void 0 : Q.charAt(0)) || "U"), 1)
|
|
850
854
|
]),
|
|
851
|
-
e("span", vs,
|
|
855
|
+
e("span", vs, x(n(o).userName), 1),
|
|
852
856
|
e("span", {
|
|
853
857
|
class: J(["header__user-arrow", { "is-active": v.value }])
|
|
854
858
|
}, "▼", 2)
|
|
855
859
|
]),
|
|
856
|
-
|
|
860
|
+
k(ke, { name: "dropdown" }, {
|
|
857
861
|
default: M(() => {
|
|
858
|
-
var
|
|
862
|
+
var C;
|
|
859
863
|
return [
|
|
860
|
-
v.value ? (
|
|
864
|
+
v.value ? (a(), c("div", hs, [
|
|
861
865
|
e("div", _s, [
|
|
862
866
|
e("div", fs, [
|
|
863
|
-
e("span", null,
|
|
867
|
+
e("span", null, x(((C = n(o).userName) == null ? void 0 : C.charAt(0)) || "U"), 1)
|
|
864
868
|
]),
|
|
865
869
|
e("div", gs, [
|
|
866
|
-
e("div", ys,
|
|
867
|
-
e("div", ks,
|
|
870
|
+
e("div", ys, x(n(o).userName), 1),
|
|
871
|
+
e("div", ks, x(n(o).roleName || n(o).departmentName), 1)
|
|
868
872
|
])
|
|
869
873
|
]),
|
|
870
|
-
|
|
874
|
+
w[7] || (w[7] = e("div", { class: "header__dropdown-divider" }, null, -1)),
|
|
871
875
|
e("div", ws, [
|
|
872
876
|
e("div", {
|
|
873
877
|
class: "header__dropdown-item",
|
|
874
878
|
onClick: $e
|
|
875
879
|
}, [
|
|
876
|
-
|
|
880
|
+
k(n(z), {
|
|
877
881
|
name: "user",
|
|
878
882
|
size: 16
|
|
879
883
|
}),
|
|
880
|
-
|
|
884
|
+
w[3] || (w[3] = e("span", null, "个人信息", -1))
|
|
881
885
|
]),
|
|
882
886
|
e("div", {
|
|
883
887
|
class: "header__dropdown-item",
|
|
884
888
|
onClick: Le
|
|
885
889
|
}, [
|
|
886
|
-
|
|
890
|
+
k(n(z), {
|
|
887
891
|
name: "lock",
|
|
888
892
|
size: 16
|
|
889
893
|
}),
|
|
890
|
-
|
|
894
|
+
w[4] || (w[4] = e("span", null, "修改密码", -1))
|
|
891
895
|
]),
|
|
892
|
-
|
|
896
|
+
w[6] || (w[6] = e("div", { class: "header__dropdown-divider" }, null, -1)),
|
|
893
897
|
e("div", {
|
|
894
898
|
class: "header__dropdown-item header__dropdown-item--danger",
|
|
895
899
|
onClick: Me
|
|
896
900
|
}, [
|
|
897
|
-
|
|
901
|
+
k(n(z), {
|
|
898
902
|
name: "logout",
|
|
899
903
|
size: 16
|
|
900
904
|
}),
|
|
901
|
-
|
|
905
|
+
w[5] || (w[5] = e("span", null, "退出登录", -1))
|
|
902
906
|
])
|
|
903
907
|
])
|
|
904
908
|
])) : P("", !0)
|
|
@@ -908,9 +912,9 @@ const de = Ne("menu", () => {
|
|
|
908
912
|
})
|
|
909
913
|
], 512)
|
|
910
914
|
]),
|
|
911
|
-
|
|
912
|
-
modelValue:
|
|
913
|
-
"onUpdate:modelValue":
|
|
915
|
+
k(n(Xe), {
|
|
916
|
+
modelValue: d.value,
|
|
917
|
+
"onUpdate:modelValue": w[2] || (w[2] = (C) => d.value = C),
|
|
914
918
|
title: "换肤设置",
|
|
915
919
|
direction: "rtl",
|
|
916
920
|
size: "320px"
|
|
@@ -918,24 +922,24 @@ const de = Ne("menu", () => {
|
|
|
918
922
|
default: M(() => [
|
|
919
923
|
e("div", bs, [
|
|
920
924
|
e("div", xs, [
|
|
921
|
-
|
|
925
|
+
w[11] || (w[11] = e("div", { class: "settings-title" }, "布局模式", -1)),
|
|
922
926
|
e("div", Cs, [
|
|
923
|
-
(
|
|
924
|
-
key:
|
|
925
|
-
class: J(["layout-option", { "is-active":
|
|
926
|
-
onClick: (S) => se(
|
|
927
|
+
(a(), c(K, null, X(W, (C) => e("div", {
|
|
928
|
+
key: C.value,
|
|
929
|
+
class: J(["layout-option", { "is-active": N.value === C.value }]),
|
|
930
|
+
onClick: (S) => se(C.value)
|
|
927
931
|
}, [
|
|
928
932
|
e("div", Ls, [
|
|
929
|
-
|
|
933
|
+
C.value === "sidebar" ? (a(), c("div", Ms, [...w[8] || (w[8] = [
|
|
930
934
|
e("div", { class: "preview-aside" }, null, -1),
|
|
931
935
|
e("div", { class: "preview-main" }, [
|
|
932
936
|
e("div", { class: "preview-header" }),
|
|
933
937
|
e("div", { class: "preview-content" })
|
|
934
938
|
], -1)
|
|
935
|
-
])])) :
|
|
939
|
+
])])) : C.value === "top" ? (a(), c("div", Ss, [...w[9] || (w[9] = [
|
|
936
940
|
e("div", { class: "preview-header-full" }, null, -1),
|
|
937
941
|
e("div", { class: "preview-content-full" }, null, -1)
|
|
938
|
-
])])) : (
|
|
942
|
+
])])) : (a(), c("div", Ns, [...w[10] || (w[10] = [
|
|
939
943
|
e("div", { class: "preview-header-mix" }, [
|
|
940
944
|
e("div", { class: "preview-mix-left" })
|
|
941
945
|
], -1),
|
|
@@ -945,21 +949,21 @@ const de = Ne("menu", () => {
|
|
|
945
949
|
], -1)
|
|
946
950
|
])]))
|
|
947
951
|
]),
|
|
948
|
-
e("span",
|
|
952
|
+
e("span", Is, x(C.label), 1)
|
|
949
953
|
], 10, $s)), 64))
|
|
950
954
|
])
|
|
951
955
|
]),
|
|
952
956
|
e("div", Us, [
|
|
953
|
-
|
|
957
|
+
w[12] || (w[12] = e("div", { class: "settings-title" }, "主题色", -1)),
|
|
954
958
|
e("div", zs, [
|
|
955
|
-
(
|
|
956
|
-
key:
|
|
957
|
-
class: J(["color-option", { "is-active": n(s).primaryColor ===
|
|
958
|
-
style:
|
|
959
|
-
title:
|
|
960
|
-
onClick: (S) => Ce(
|
|
959
|
+
(a(), c(K, null, X(V, (C) => e("div", {
|
|
960
|
+
key: C.value,
|
|
961
|
+
class: J(["color-option", { "is-active": n(s).primaryColor === C.value }]),
|
|
962
|
+
style: Ne({ backgroundColor: C.value }),
|
|
963
|
+
title: C.label,
|
|
964
|
+
onClick: (S) => Ce(C.value)
|
|
961
965
|
}, [
|
|
962
|
-
n(s).primaryColor ===
|
|
966
|
+
n(s).primaryColor === C.value ? (a(), O(n(z), {
|
|
963
967
|
key: 0,
|
|
964
968
|
name: "check",
|
|
965
969
|
size: 12,
|
|
@@ -969,23 +973,23 @@ const de = Ne("menu", () => {
|
|
|
969
973
|
])
|
|
970
974
|
]),
|
|
971
975
|
e("div", Es, [
|
|
972
|
-
|
|
976
|
+
w[17] || (w[17] = e("div", { class: "settings-title" }, "功能设置", -1)),
|
|
973
977
|
e("div", Ps, [
|
|
974
978
|
e("div", As, [
|
|
975
|
-
|
|
979
|
+
w[14] || (w[14] = e("span", null, "灰色模式", -1)),
|
|
976
980
|
e("div", {
|
|
977
981
|
class: J(["switch-wrapper", { "is-checked": D.value }]),
|
|
978
982
|
onClick: pe
|
|
979
|
-
}, [...
|
|
983
|
+
}, [...w[13] || (w[13] = [
|
|
980
984
|
e("span", { class: "switch-core" }, null, -1)
|
|
981
985
|
])], 2)
|
|
982
986
|
]),
|
|
983
987
|
e("div", Ds, [
|
|
984
|
-
|
|
988
|
+
w[16] || (w[16] = e("span", null, "暗黑模式", -1)),
|
|
985
989
|
e("div", {
|
|
986
990
|
class: J(["switch-wrapper", { "is-checked": n(s).isDark }]),
|
|
987
991
|
onClick: U
|
|
988
|
-
}, [...
|
|
992
|
+
}, [...w[15] || (w[15] = [
|
|
989
993
|
e("span", { class: "switch-core" }, null, -1)
|
|
990
994
|
])], 2)
|
|
991
995
|
])
|
|
@@ -998,7 +1002,7 @@ const de = Ne("menu", () => {
|
|
|
998
1002
|
]);
|
|
999
1003
|
};
|
|
1000
1004
|
}
|
|
1001
|
-
}), Os = /* @__PURE__ */ re(Vs, [["__scopeId", "data-v-
|
|
1005
|
+
}), Os = /* @__PURE__ */ re(Vs, [["__scopeId", "data-v-9ff678f3"]]), Bs = { class: "top-menu" }, Rs = { class: "top-menu__logo" }, Fs = ["src"], Ks = { class: "top-menu__logo-text" }, js = { class: "top-menu__menu-content" }, Ws = {
|
|
1002
1006
|
key: 0,
|
|
1003
1007
|
class: "top-menu__menu-icon"
|
|
1004
1008
|
}, qs = {
|
|
@@ -1040,7 +1044,7 @@ const de = Ne("menu", () => {
|
|
|
1040
1044
|
}, ko = ["title"], wo = { class: "top-menu__avatar" }, bo = { class: "top-menu__user-name" }, xo = {
|
|
1041
1045
|
key: 0,
|
|
1042
1046
|
class: "top-menu__dropdown"
|
|
1043
|
-
}, Co = { class: "top-menu__dropdown-header" }, $o = { class: "top-menu__dropdown-avatar" }, Lo = { class: "top-menu__dropdown-info" }, Mo = { class: "top-menu__dropdown-name" }, So = { class: "top-menu__dropdown-role" },
|
|
1047
|
+
}, Co = { class: "top-menu__dropdown-header" }, $o = { class: "top-menu__dropdown-avatar" }, Lo = { class: "top-menu__dropdown-info" }, Mo = { class: "top-menu__dropdown-name" }, So = { class: "top-menu__dropdown-role" }, No = { class: "top-menu__dropdown-menu" }, Io = { class: "settings-drawer" }, Uo = { class: "settings-section" }, zo = { class: "settings-layout-options" }, To = ["onClick"], Eo = { class: "layout-option__preview" }, Po = {
|
|
1044
1048
|
key: 0,
|
|
1045
1049
|
class: "layout-preview-sidebar"
|
|
1046
1050
|
}, Ao = {
|
|
@@ -1055,15 +1059,15 @@ const de = Ne("menu", () => {
|
|
|
1055
1059
|
logoSrc: { default: "/vite.svg" }
|
|
1056
1060
|
},
|
|
1057
1061
|
setup(t) {
|
|
1058
|
-
const r = t,
|
|
1062
|
+
const r = t, u = be(), s = me(), o = de(), i = ue(), h = le(), v = Ue(), d = b(() => u.path), f = (S, L = "") => {
|
|
1059
1063
|
const te = [];
|
|
1060
1064
|
return S.forEach((l) => {
|
|
1061
1065
|
l.children && l.children.length > 0 ? te.push(...f(l.children, l.menuName)) : te.push({ ...l, parentTitle: L, title: l.menuName, path: l.menuUrl });
|
|
1062
1066
|
}), te;
|
|
1063
|
-
}, _ =
|
|
1067
|
+
}, _ = b(() => Y.value.trim() ? f(o.menuList).filter(
|
|
1064
1068
|
(L) => L.title.toLowerCase().includes(Y.value.toLowerCase())
|
|
1065
|
-
) : []),
|
|
1066
|
-
S && S !==
|
|
1069
|
+
) : []), g = b(() => i.isDark ? "#1d1e1f" : "#fff"), m = b(() => i.isDark ? "#cfd3dc" : "#303133"), j = b(() => "#409eff"), D = y(!1), W = y(null), V = y(!1), B = y(!1), H = y(!1), Z = y(!1), Y = y(""), q = y(null), ee = (S) => {
|
|
1070
|
+
S && S !== u.path && s.push(S);
|
|
1067
1071
|
}, E = /* @__PURE__ */ new Set([
|
|
1068
1072
|
"arrow-up",
|
|
1069
1073
|
"arrow-down",
|
|
@@ -1166,7 +1170,7 @@ const de = Ne("menu", () => {
|
|
|
1166
1170
|
"sun",
|
|
1167
1171
|
"theme",
|
|
1168
1172
|
"skin"
|
|
1169
|
-
]),
|
|
1173
|
+
]), N = (S) => {
|
|
1170
1174
|
if (!S || S === "") return "";
|
|
1171
1175
|
if (S.startsWith("tineco-icon-")) {
|
|
1172
1176
|
const te = S.replace("tineco-icon-", "");
|
|
@@ -1231,7 +1235,7 @@ const de = Ne("menu", () => {
|
|
|
1231
1235
|
{ value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
|
|
1232
1236
|
{ value: "top", label: "顶部菜单", icon: "menu" },
|
|
1233
1237
|
{ value: "mix", label: "混合菜单", icon: "grid" }
|
|
1234
|
-
], $e =
|
|
1238
|
+
], $e = b(() => i.layout), Le = (S) => {
|
|
1235
1239
|
i.setLayout(S), B.value = !1;
|
|
1236
1240
|
}, Me = [
|
|
1237
1241
|
{ value: "#409eff", label: "默认蓝" },
|
|
@@ -1246,112 +1250,112 @@ const de = Ne("menu", () => {
|
|
|
1246
1250
|
U(), s.push("/profile");
|
|
1247
1251
|
}, T = () => {
|
|
1248
1252
|
U(), s.push("/change-password");
|
|
1249
|
-
},
|
|
1250
|
-
U(), v.logout(), h.clearUserInfo(),
|
|
1253
|
+
}, w = () => {
|
|
1254
|
+
U(), v.logout(), h.clearUserInfo(), o.clearMenu(), s.push(i.loginPath);
|
|
1251
1255
|
}, Q = (S) => {
|
|
1252
1256
|
W.value && !W.value.contains(S.target) && U(), q.value && !q.value.contains(S.target) && oe();
|
|
1253
|
-
},
|
|
1257
|
+
}, C = (S) => {
|
|
1254
1258
|
S.key === "Escape" && (oe(), U());
|
|
1255
1259
|
};
|
|
1256
1260
|
return Ke(() => {
|
|
1257
|
-
document.addEventListener("click", Q), document.addEventListener("fullscreenchange", ie), document.addEventListener("keydown",
|
|
1261
|
+
document.addEventListener("click", Q), document.addEventListener("fullscreenchange", ie), document.addEventListener("keydown", C), H.value = document.documentElement.classList.contains("grey-mode");
|
|
1258
1262
|
}), je(() => {
|
|
1259
|
-
document.removeEventListener("click", Q), document.removeEventListener("fullscreenchange", ie), document.removeEventListener("keydown",
|
|
1263
|
+
document.removeEventListener("click", Q), document.removeEventListener("fullscreenchange", ie), document.removeEventListener("keydown", C);
|
|
1260
1264
|
}), (S, L) => {
|
|
1261
1265
|
var te;
|
|
1262
|
-
return
|
|
1266
|
+
return a(), c("div", Bs, [
|
|
1263
1267
|
e("div", Rs, [
|
|
1264
1268
|
e("img", {
|
|
1265
1269
|
src: r.logoSrc,
|
|
1266
1270
|
alt: "Logo",
|
|
1267
1271
|
class: "top-menu__logo-img"
|
|
1268
1272
|
}, null, 8, Fs),
|
|
1269
|
-
e("span", Ks,
|
|
1273
|
+
e("span", Ks, x(n(i).appName), 1)
|
|
1270
1274
|
]),
|
|
1271
|
-
|
|
1272
|
-
"model-value":
|
|
1275
|
+
k(n(Ge), {
|
|
1276
|
+
"model-value": d.value,
|
|
1273
1277
|
mode: "horizontal",
|
|
1274
|
-
"background-color":
|
|
1275
|
-
"text-color":
|
|
1278
|
+
"background-color": g.value,
|
|
1279
|
+
"text-color": m.value,
|
|
1276
1280
|
"active-text-color": j.value,
|
|
1277
1281
|
class: "top-menu__menu",
|
|
1278
1282
|
onSelect: ee
|
|
1279
1283
|
}, {
|
|
1280
1284
|
default: M(() => [
|
|
1281
|
-
(
|
|
1285
|
+
(a(!0), c(K, null, X(n(o).menuList, (l) => (a(), c(K, {
|
|
1282
1286
|
key: l.menuUrl
|
|
1283
1287
|
}, [
|
|
1284
|
-
l.children && l.children.length > 0 ? (
|
|
1288
|
+
l.children && l.children.length > 0 ? (a(), O(n(Re), {
|
|
1285
1289
|
key: 0,
|
|
1286
1290
|
index: l.menuUrl
|
|
1287
1291
|
}, {
|
|
1288
1292
|
title: M(() => [
|
|
1289
1293
|
e("span", js, [
|
|
1290
|
-
l.menuName !== "首页" ? (
|
|
1291
|
-
G(
|
|
1294
|
+
l.menuName !== "首页" ? (a(), c("span", Ws, [
|
|
1295
|
+
G(N(l.icon)) ? (a(), O(n(z), {
|
|
1292
1296
|
key: 0,
|
|
1293
|
-
name:
|
|
1297
|
+
name: N(l.icon),
|
|
1294
1298
|
size: 16
|
|
1295
|
-
}, null, 8, ["name"])) : (
|
|
1299
|
+
}, null, 8, ["name"])) : (a(), c("span", qs, x(A(l.menuName)), 1))
|
|
1296
1300
|
])) : P("", !0),
|
|
1297
|
-
e("span", Hs,
|
|
1301
|
+
e("span", Hs, x(l.menuName), 1)
|
|
1298
1302
|
])
|
|
1299
1303
|
]),
|
|
1300
1304
|
default: M(() => [
|
|
1301
|
-
(
|
|
1305
|
+
(a(!0), c(K, null, X(l.children, (p) => (a(), c(K, {
|
|
1302
1306
|
key: p.menuUrl
|
|
1303
1307
|
}, [
|
|
1304
|
-
p.children && p.children.length > 0 ? (
|
|
1308
|
+
p.children && p.children.length > 0 ? (a(), O(n(Re), {
|
|
1305
1309
|
key: 0,
|
|
1306
1310
|
index: p.menuUrl
|
|
1307
1311
|
}, {
|
|
1308
1312
|
title: M(() => [
|
|
1309
1313
|
e("span", Ys, [
|
|
1310
1314
|
e("span", Gs, [
|
|
1311
|
-
G(
|
|
1315
|
+
G(N(p.icon)) ? (a(), O(n(z), {
|
|
1312
1316
|
key: 0,
|
|
1313
|
-
name:
|
|
1317
|
+
name: N(p.icon),
|
|
1314
1318
|
size: 16
|
|
1315
|
-
}, null, 8, ["name"])) : (
|
|
1319
|
+
}, null, 8, ["name"])) : (a(), c("span", Xs, x(A(p.menuName)), 1))
|
|
1316
1320
|
]),
|
|
1317
|
-
e("span", Js,
|
|
1321
|
+
e("span", Js, x(p.menuName), 1)
|
|
1318
1322
|
])
|
|
1319
1323
|
]),
|
|
1320
1324
|
default: M(() => [
|
|
1321
|
-
(
|
|
1325
|
+
(a(!0), c(K, null, X(p.children, (R) => (a(), O(n(Se), {
|
|
1322
1326
|
key: R.menuUrl,
|
|
1323
1327
|
index: R.menuUrl
|
|
1324
1328
|
}, {
|
|
1325
1329
|
default: M(() => [
|
|
1326
1330
|
e("span", Zs, [
|
|
1327
1331
|
e("span", Qs, [
|
|
1328
|
-
G(
|
|
1332
|
+
G(N(R.icon)) ? (a(), O(n(z), {
|
|
1329
1333
|
key: 0,
|
|
1330
|
-
name:
|
|
1334
|
+
name: N(R.icon),
|
|
1331
1335
|
size: 16
|
|
1332
|
-
}, null, 8, ["name"])) : (
|
|
1336
|
+
}, null, 8, ["name"])) : (a(), c("span", eo, x(A(R.menuName)), 1))
|
|
1333
1337
|
]),
|
|
1334
|
-
e("span", to,
|
|
1338
|
+
e("span", to, x(R.menuName), 1)
|
|
1335
1339
|
])
|
|
1336
1340
|
]),
|
|
1337
1341
|
_: 2
|
|
1338
1342
|
}, 1032, ["index"]))), 128))
|
|
1339
1343
|
]),
|
|
1340
1344
|
_: 2
|
|
1341
|
-
}, 1032, ["index"])) : (
|
|
1345
|
+
}, 1032, ["index"])) : (a(), O(n(Se), {
|
|
1342
1346
|
key: 1,
|
|
1343
1347
|
index: p.menuUrl
|
|
1344
1348
|
}, {
|
|
1345
1349
|
default: M(() => [
|
|
1346
1350
|
e("span", so, [
|
|
1347
1351
|
e("span", oo, [
|
|
1348
|
-
G(
|
|
1352
|
+
G(N(p.icon)) ? (a(), O(n(z), {
|
|
1349
1353
|
key: 0,
|
|
1350
|
-
name:
|
|
1354
|
+
name: N(p.icon),
|
|
1351
1355
|
size: 16
|
|
1352
|
-
}, null, 8, ["name"])) : (
|
|
1356
|
+
}, null, 8, ["name"])) : (a(), c("span", ao, x(A(p.menuName)), 1))
|
|
1353
1357
|
]),
|
|
1354
|
-
e("span", no,
|
|
1358
|
+
e("span", no, x(p.menuName), 1)
|
|
1355
1359
|
])
|
|
1356
1360
|
]),
|
|
1357
1361
|
_: 2
|
|
@@ -1359,20 +1363,20 @@ const de = Ne("menu", () => {
|
|
|
1359
1363
|
], 64))), 128))
|
|
1360
1364
|
]),
|
|
1361
1365
|
_: 2
|
|
1362
|
-
}, 1032, ["index"])) : (
|
|
1366
|
+
}, 1032, ["index"])) : (a(), O(n(Se), {
|
|
1363
1367
|
key: 1,
|
|
1364
1368
|
index: l.menuUrl
|
|
1365
1369
|
}, {
|
|
1366
1370
|
default: M(() => [
|
|
1367
1371
|
e("span", lo, [
|
|
1368
|
-
l.menuName !== "首页" ? (
|
|
1369
|
-
G(
|
|
1372
|
+
l.menuName !== "首页" ? (a(), c("span", ro, [
|
|
1373
|
+
G(N(l.icon)) ? (a(), O(n(z), {
|
|
1370
1374
|
key: 0,
|
|
1371
|
-
name:
|
|
1375
|
+
name: N(l.icon),
|
|
1372
1376
|
size: 16
|
|
1373
|
-
}, null, 8, ["name"])) : (
|
|
1377
|
+
}, null, 8, ["name"])) : (a(), c("span", io, x(A(l.menuName)), 1))
|
|
1374
1378
|
])) : P("", !0),
|
|
1375
|
-
e("span", co,
|
|
1379
|
+
e("span", co, x(l.menuName), 1)
|
|
1376
1380
|
])
|
|
1377
1381
|
]),
|
|
1378
1382
|
_: 2
|
|
@@ -1387,7 +1391,7 @@ const de = Ne("menu", () => {
|
|
|
1387
1391
|
ref_key: "searchRef",
|
|
1388
1392
|
ref: q
|
|
1389
1393
|
}, [
|
|
1390
|
-
|
|
1394
|
+
k(n(z), {
|
|
1391
1395
|
name: "search",
|
|
1392
1396
|
size: 14,
|
|
1393
1397
|
class: "top-menu__search-icon"
|
|
@@ -1401,26 +1405,26 @@ const de = Ne("menu", () => {
|
|
|
1401
1405
|
}, null, 544), [
|
|
1402
1406
|
[We, Y.value]
|
|
1403
1407
|
]),
|
|
1404
|
-
|
|
1408
|
+
k(ke, { name: "search-dropdown" }, {
|
|
1405
1409
|
default: M(() => [
|
|
1406
|
-
Z.value && (_.value.length > 0 || Y.value) ? (
|
|
1407
|
-
_.value.length > 0 ? (
|
|
1408
|
-
(
|
|
1410
|
+
Z.value && (_.value.length > 0 || Y.value) ? (a(), c("div", mo, [
|
|
1411
|
+
_.value.length > 0 ? (a(), c("div", po, [
|
|
1412
|
+
(a(!0), c(K, null, X(_.value, (l) => (a(), c("div", {
|
|
1409
1413
|
key: l.path,
|
|
1410
1414
|
class: "top-menu__search-item",
|
|
1411
1415
|
onClick: (p) => _e(l.path)
|
|
1412
1416
|
}, [
|
|
1413
|
-
l.title !== "首页" ? (
|
|
1414
|
-
G(
|
|
1417
|
+
l.title !== "首页" ? (a(), c("span", ho, [
|
|
1418
|
+
G(N(l.icon)) ? (a(), O(n(z), {
|
|
1415
1419
|
key: 0,
|
|
1416
|
-
name:
|
|
1420
|
+
name: N(l.icon),
|
|
1417
1421
|
size: 16
|
|
1418
|
-
}, null, 8, ["name"])) : (
|
|
1422
|
+
}, null, 8, ["name"])) : (a(), c("span", _o, x(A(l.title)), 1))
|
|
1419
1423
|
])) : P("", !0),
|
|
1420
|
-
e("span", fo,
|
|
1421
|
-
l.parentTitle ? (
|
|
1424
|
+
e("span", fo, x(l.title), 1),
|
|
1425
|
+
l.parentTitle ? (a(), c("span", go, x(l.parentTitle), 1)) : P("", !0)
|
|
1422
1426
|
], 8, vo))), 128))
|
|
1423
|
-
])) : (
|
|
1427
|
+
])) : (a(), c("div", yo, " 未找到匹配的菜单 "))
|
|
1424
1428
|
])) : P("", !0)
|
|
1425
1429
|
]),
|
|
1426
1430
|
_: 1
|
|
@@ -1431,7 +1435,7 @@ const de = Ne("menu", () => {
|
|
|
1431
1435
|
onClick: se,
|
|
1432
1436
|
title: V.value ? "退出全屏" : "全屏"
|
|
1433
1437
|
}, [
|
|
1434
|
-
|
|
1438
|
+
k(n(z), {
|
|
1435
1439
|
name: V.value ? "fullscreen-exit" : "fullscreen",
|
|
1436
1440
|
size: 16
|
|
1437
1441
|
}, null, 8, ["name"])
|
|
@@ -1441,7 +1445,7 @@ const de = Ne("menu", () => {
|
|
|
1441
1445
|
onClick: ce,
|
|
1442
1446
|
title: "换肤设置"
|
|
1443
1447
|
}, [
|
|
1444
|
-
|
|
1448
|
+
k(n(z), {
|
|
1445
1449
|
name: "skin",
|
|
1446
1450
|
size: 16
|
|
1447
1451
|
})
|
|
@@ -1451,7 +1455,7 @@ const de = Ne("menu", () => {
|
|
|
1451
1455
|
onClick: F,
|
|
1452
1456
|
title: "切换主题"
|
|
1453
1457
|
}, [
|
|
1454
|
-
|
|
1458
|
+
k(n(z), {
|
|
1455
1459
|
name: n(i).isDark ? "sun" : "moon",
|
|
1456
1460
|
size: 16
|
|
1457
1461
|
}, null, 8, ["name"])
|
|
@@ -1466,34 +1470,34 @@ const de = Ne("menu", () => {
|
|
|
1466
1470
|
onClick: Ee(pe, ["stop"])
|
|
1467
1471
|
}, [
|
|
1468
1472
|
e("div", wo, [
|
|
1469
|
-
e("span", null,
|
|
1473
|
+
e("span", null, x(((te = n(h).userName) == null ? void 0 : te.charAt(0)) || "U"), 1)
|
|
1470
1474
|
]),
|
|
1471
|
-
e("span", bo,
|
|
1475
|
+
e("span", bo, x(n(h).userName), 1),
|
|
1472
1476
|
e("span", {
|
|
1473
1477
|
class: J(["top-menu__user-arrow", { "is-active": D.value }])
|
|
1474
1478
|
}, "▼", 2)
|
|
1475
1479
|
]),
|
|
1476
|
-
|
|
1480
|
+
k(ke, { name: "dropdown" }, {
|
|
1477
1481
|
default: M(() => {
|
|
1478
1482
|
var l;
|
|
1479
1483
|
return [
|
|
1480
|
-
D.value ? (
|
|
1484
|
+
D.value ? (a(), c("div", xo, [
|
|
1481
1485
|
e("div", Co, [
|
|
1482
1486
|
e("div", $o, [
|
|
1483
|
-
e("span", null,
|
|
1487
|
+
e("span", null, x(((l = n(h).userName) == null ? void 0 : l.charAt(0)) || "U"), 1)
|
|
1484
1488
|
]),
|
|
1485
1489
|
e("div", Lo, [
|
|
1486
|
-
e("div", Mo,
|
|
1487
|
-
e("div", So,
|
|
1490
|
+
e("div", Mo, x(n(h).userName), 1),
|
|
1491
|
+
e("div", So, x(n(h).departmentName), 1)
|
|
1488
1492
|
])
|
|
1489
1493
|
]),
|
|
1490
1494
|
L[7] || (L[7] = e("div", { class: "top-menu__dropdown-divider" }, null, -1)),
|
|
1491
|
-
e("div",
|
|
1495
|
+
e("div", No, [
|
|
1492
1496
|
e("div", {
|
|
1493
1497
|
class: "top-menu__dropdown-item",
|
|
1494
1498
|
onClick: ge
|
|
1495
1499
|
}, [
|
|
1496
|
-
|
|
1500
|
+
k(n(z), {
|
|
1497
1501
|
name: "user",
|
|
1498
1502
|
size: 16
|
|
1499
1503
|
}),
|
|
@@ -1503,7 +1507,7 @@ const de = Ne("menu", () => {
|
|
|
1503
1507
|
class: "top-menu__dropdown-item",
|
|
1504
1508
|
onClick: T
|
|
1505
1509
|
}, [
|
|
1506
|
-
|
|
1510
|
+
k(n(z), {
|
|
1507
1511
|
name: "lock",
|
|
1508
1512
|
size: 16
|
|
1509
1513
|
}),
|
|
@@ -1512,9 +1516,9 @@ const de = Ne("menu", () => {
|
|
|
1512
1516
|
L[6] || (L[6] = e("div", { class: "top-menu__dropdown-divider" }, null, -1)),
|
|
1513
1517
|
e("div", {
|
|
1514
1518
|
class: "top-menu__dropdown-item top-menu__dropdown-item--danger",
|
|
1515
|
-
onClick:
|
|
1519
|
+
onClick: w
|
|
1516
1520
|
}, [
|
|
1517
|
-
|
|
1521
|
+
k(n(z), {
|
|
1518
1522
|
name: "logout",
|
|
1519
1523
|
size: 16
|
|
1520
1524
|
}),
|
|
@@ -1528,7 +1532,7 @@ const de = Ne("menu", () => {
|
|
|
1528
1532
|
})
|
|
1529
1533
|
], 512)
|
|
1530
1534
|
]),
|
|
1531
|
-
|
|
1535
|
+
k(n(Xe), {
|
|
1532
1536
|
modelValue: B.value,
|
|
1533
1537
|
"onUpdate:modelValue": L[2] || (L[2] = (l) => B.value = l),
|
|
1534
1538
|
title: "换肤设置",
|
|
@@ -1536,26 +1540,26 @@ const de = Ne("menu", () => {
|
|
|
1536
1540
|
size: "320px"
|
|
1537
1541
|
}, {
|
|
1538
1542
|
default: M(() => [
|
|
1539
|
-
e("div",
|
|
1543
|
+
e("div", Io, [
|
|
1540
1544
|
e("div", Uo, [
|
|
1541
1545
|
L[11] || (L[11] = e("div", { class: "settings-title" }, "布局模式", -1)),
|
|
1542
1546
|
e("div", zo, [
|
|
1543
|
-
(
|
|
1547
|
+
(a(), c(K, null, X(Ce, (l) => e("div", {
|
|
1544
1548
|
key: l.value,
|
|
1545
1549
|
class: J(["layout-option", { "is-active": $e.value === l.value }]),
|
|
1546
1550
|
onClick: (p) => Le(l.value)
|
|
1547
1551
|
}, [
|
|
1548
1552
|
e("div", Eo, [
|
|
1549
|
-
l.value === "sidebar" ? (
|
|
1553
|
+
l.value === "sidebar" ? (a(), c("div", Po, [...L[8] || (L[8] = [
|
|
1550
1554
|
e("div", { class: "preview-aside" }, null, -1),
|
|
1551
1555
|
e("div", { class: "preview-main" }, [
|
|
1552
1556
|
e("div", { class: "preview-header" }),
|
|
1553
1557
|
e("div", { class: "preview-content" })
|
|
1554
1558
|
], -1)
|
|
1555
|
-
])])) : l.value === "top" ? (
|
|
1559
|
+
])])) : l.value === "top" ? (a(), c("div", Ao, [...L[9] || (L[9] = [
|
|
1556
1560
|
e("div", { class: "preview-header-full" }, null, -1),
|
|
1557
1561
|
e("div", { class: "preview-content-full" }, null, -1)
|
|
1558
|
-
])])) : (
|
|
1562
|
+
])])) : (a(), c("div", Do, [...L[10] || (L[10] = [
|
|
1559
1563
|
e("div", { class: "preview-header-mix" }, [
|
|
1560
1564
|
e("div", { class: "preview-mix-left" })
|
|
1561
1565
|
], -1),
|
|
@@ -1565,21 +1569,21 @@ const de = Ne("menu", () => {
|
|
|
1565
1569
|
], -1)
|
|
1566
1570
|
])]))
|
|
1567
1571
|
]),
|
|
1568
|
-
e("span", Vo,
|
|
1572
|
+
e("span", Vo, x(l.label), 1)
|
|
1569
1573
|
], 10, To)), 64))
|
|
1570
1574
|
])
|
|
1571
1575
|
]),
|
|
1572
1576
|
e("div", Oo, [
|
|
1573
1577
|
L[12] || (L[12] = e("div", { class: "settings-title" }, "主题色", -1)),
|
|
1574
1578
|
e("div", Bo, [
|
|
1575
|
-
(
|
|
1579
|
+
(a(), c(K, null, X(Me, (l) => e("div", {
|
|
1576
1580
|
key: l.value,
|
|
1577
1581
|
class: J(["color-option", { "is-active": n(i).primaryColor === l.value }]),
|
|
1578
|
-
style:
|
|
1582
|
+
style: Ne({ backgroundColor: l.value }),
|
|
1579
1583
|
title: l.label,
|
|
1580
1584
|
onClick: (p) => fe(l.value)
|
|
1581
1585
|
}, [
|
|
1582
|
-
n(i).primaryColor === l.value ? (
|
|
1586
|
+
n(i).primaryColor === l.value ? (a(), O(n(z), {
|
|
1583
1587
|
key: 0,
|
|
1584
1588
|
name: "check",
|
|
1585
1589
|
size: 12,
|
|
@@ -1654,38 +1658,38 @@ const de = Ne("menu", () => {
|
|
|
1654
1658
|
}, Sa = {
|
|
1655
1659
|
key: 2,
|
|
1656
1660
|
class: "layout-preview-mix"
|
|
1657
|
-
},
|
|
1661
|
+
}, Na = { class: "layout-option__label" }, Ia = { class: "settings-section" }, Ua = { class: "settings-color-options" }, za = ["title", "onClick"], Ta = { class: "settings-section" }, Ea = { class: "settings-switch-list" }, Pa = { class: "settings-switch-item" }, Aa = { class: "settings-switch-item" }, Da = /* @__PURE__ */ ne({
|
|
1658
1662
|
__name: "MixTopMenu",
|
|
1659
1663
|
props: {
|
|
1660
1664
|
logoSrc: { default: "/vite.svg" }
|
|
1661
1665
|
},
|
|
1662
1666
|
setup(t) {
|
|
1663
|
-
const r = t,
|
|
1667
|
+
const r = t, u = be(), s = me(), o = de(), i = ue(), h = le(), v = Ue(), d = y(""), f = (l, p = "") => {
|
|
1664
1668
|
const R = [];
|
|
1665
|
-
return l.forEach((
|
|
1666
|
-
|
|
1669
|
+
return l.forEach(($) => {
|
|
1670
|
+
$.children && $.children.length > 0 ? R.push(...f($.children, $.menuName)) : R.push({ ...$, parentTitle: p, title: $.menuName, path: $.menuUrl });
|
|
1667
1671
|
}), R;
|
|
1668
|
-
}, _ =
|
|
1669
|
-
(p) => p.title.toLowerCase().includes(
|
|
1670
|
-
) : []),
|
|
1671
|
-
const l =
|
|
1672
|
+
}, _ = b(() => N.value.trim() ? f(o.menuList).filter(
|
|
1673
|
+
(p) => p.title.toLowerCase().includes(N.value.toLowerCase())
|
|
1674
|
+
) : []), g = b(() => {
|
|
1675
|
+
const l = o.menuList.find((p) => p.menuUrl === d.value);
|
|
1672
1676
|
return (l == null ? void 0 : l.children) || [];
|
|
1673
|
-
}),
|
|
1674
|
-
|
|
1677
|
+
}), m = b(() => o.menuList.find((l) => !!(u.path === l.menuUrl || l.children && l.children.some((p) => u.path.startsWith(p.menuUrl) || u.path === p.menuUrl)))), j = () => {
|
|
1678
|
+
m.value ? d.value = m.value.menuUrl : o.menuList.length > 0 && (d.value = o.menuList[0].menuUrl);
|
|
1675
1679
|
}, D = (l) => {
|
|
1676
|
-
|
|
1677
|
-
const p =
|
|
1680
|
+
d.value = l;
|
|
1681
|
+
const p = o.menuList.find((R) => R.menuUrl === l);
|
|
1678
1682
|
if (p)
|
|
1679
1683
|
if (p.children && p.children.length > 0) {
|
|
1680
1684
|
const R = p.children[0].menuUrl;
|
|
1681
|
-
|
|
1685
|
+
u.path !== R && s.push(R);
|
|
1682
1686
|
} else
|
|
1683
|
-
|
|
1684
|
-
}, W =
|
|
1685
|
-
ye(() =>
|
|
1686
|
-
j(), i.setMixSubMenus(
|
|
1687
|
-
}), ye(() =>
|
|
1688
|
-
l && l.length > 0 && (j(), i.setMixSubMenus(
|
|
1687
|
+
u.path !== l && s.push(l);
|
|
1688
|
+
}, W = b(() => i.isDark ? "#1d1e1f" : "#fff"), V = b(() => i.isDark ? "#cfd3dc" : "#303133"), B = b(() => "#409eff"), H = y(!1), Z = y(null), Y = y(!1), q = y(!1), ee = y(!1), E = y(!1), N = y(""), A = y(null);
|
|
1689
|
+
ye(() => u.path, () => {
|
|
1690
|
+
j(), i.setMixSubMenus(g.value);
|
|
1691
|
+
}), ye(() => o.menuList, (l) => {
|
|
1692
|
+
l && l.length > 0 && (j(), i.setMixSubMenus(g.value));
|
|
1689
1693
|
}, { immediate: !0 });
|
|
1690
1694
|
const G = /* @__PURE__ */ new Set([
|
|
1691
1695
|
"arrow-up",
|
|
@@ -1837,7 +1841,7 @@ const de = Ne("menu", () => {
|
|
|
1837
1841
|
}, ce = () => {
|
|
1838
1842
|
H.value = !1;
|
|
1839
1843
|
}, ae = () => {
|
|
1840
|
-
E.value = !1,
|
|
1844
|
+
E.value = !1, N.value = "";
|
|
1841
1845
|
}, ve = (l) => {
|
|
1842
1846
|
s.push(l), ae();
|
|
1843
1847
|
}, xe = () => {
|
|
@@ -1854,7 +1858,7 @@ const de = Ne("menu", () => {
|
|
|
1854
1858
|
{ value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
|
|
1855
1859
|
{ value: "top", label: "顶部菜单", icon: "menu" },
|
|
1856
1860
|
{ value: "mix", label: "混合菜单", icon: "grid" }
|
|
1857
|
-
], fe =
|
|
1861
|
+
], fe = b(() => i.layout), ge = (l) => {
|
|
1858
1862
|
i.setLayout(l), q.value = !1;
|
|
1859
1863
|
}, T = [
|
|
1860
1864
|
{ value: "#409eff", label: "默认蓝" },
|
|
@@ -1863,14 +1867,14 @@ const de = Ne("menu", () => {
|
|
|
1863
1867
|
{ value: "#faad14", label: "日落橙" },
|
|
1864
1868
|
{ value: "#f5222d", label: "薄暮红" },
|
|
1865
1869
|
{ value: "#722ed1", label: "酱紫" }
|
|
1866
|
-
],
|
|
1870
|
+
], w = (l) => {
|
|
1867
1871
|
i.setPrimaryColor(l), q.value = !1;
|
|
1868
1872
|
}, Q = () => {
|
|
1869
1873
|
ce(), s.push("/profile");
|
|
1870
|
-
},
|
|
1874
|
+
}, C = () => {
|
|
1871
1875
|
ce(), s.push("/change-password");
|
|
1872
1876
|
}, S = () => {
|
|
1873
|
-
ce(), v.logout(), h.clearUserInfo(),
|
|
1877
|
+
ce(), v.logout(), h.clearUserInfo(), o.clearMenu(), s.push(i.loginPath);
|
|
1874
1878
|
}, L = (l) => {
|
|
1875
1879
|
Z.value && !Z.value.contains(l.target) && ce(), A.value && !A.value.contains(l.target) && ae();
|
|
1876
1880
|
}, te = (l) => {
|
|
@@ -1882,17 +1886,17 @@ const de = Ne("menu", () => {
|
|
|
1882
1886
|
document.removeEventListener("click", L), document.removeEventListener("fullscreenchange", oe), document.removeEventListener("keydown", te);
|
|
1883
1887
|
}), (l, p) => {
|
|
1884
1888
|
var R;
|
|
1885
|
-
return
|
|
1889
|
+
return a(), c("div", Yo, [
|
|
1886
1890
|
e("div", Go, [
|
|
1887
1891
|
e("img", {
|
|
1888
1892
|
src: r.logoSrc,
|
|
1889
1893
|
alt: "Logo",
|
|
1890
1894
|
class: "mix-top-menu__logo-img"
|
|
1891
1895
|
}, null, 8, Xo),
|
|
1892
|
-
e("span", Jo,
|
|
1896
|
+
e("span", Jo, x(n(i).appName), 1)
|
|
1893
1897
|
]),
|
|
1894
|
-
|
|
1895
|
-
"model-value":
|
|
1898
|
+
k(n(Ge), {
|
|
1899
|
+
"model-value": d.value,
|
|
1896
1900
|
mode: "horizontal",
|
|
1897
1901
|
"background-color": W.value,
|
|
1898
1902
|
"text-color": V.value,
|
|
@@ -1901,20 +1905,20 @@ const de = Ne("menu", () => {
|
|
|
1901
1905
|
onSelect: D
|
|
1902
1906
|
}, {
|
|
1903
1907
|
default: M(() => [
|
|
1904
|
-
(
|
|
1905
|
-
key:
|
|
1906
|
-
index:
|
|
1908
|
+
(a(!0), c(K, null, X(n(o).menuList, ($) => (a(), O(n(Se), {
|
|
1909
|
+
key: $.menuUrl,
|
|
1910
|
+
index: $.menuUrl
|
|
1907
1911
|
}, {
|
|
1908
1912
|
default: M(() => [
|
|
1909
1913
|
e("span", Zo, [
|
|
1910
|
-
|
|
1911
|
-
ie(F(
|
|
1914
|
+
$.menuName !== "首页" ? (a(), c("span", Qo, [
|
|
1915
|
+
ie(F($.icon)) ? (a(), O(n(z), {
|
|
1912
1916
|
key: 0,
|
|
1913
|
-
name: F(
|
|
1917
|
+
name: F($.icon),
|
|
1914
1918
|
size: 16
|
|
1915
|
-
}, null, 8, ["name"])) : (
|
|
1919
|
+
}, null, 8, ["name"])) : (a(), c("span", ea, x(se($.menuName)), 1))
|
|
1916
1920
|
])) : P("", !0),
|
|
1917
|
-
e("span", ta,
|
|
1921
|
+
e("span", ta, x($.menuName), 1)
|
|
1918
1922
|
])
|
|
1919
1923
|
]),
|
|
1920
1924
|
_: 2
|
|
@@ -1928,40 +1932,40 @@ const de = Ne("menu", () => {
|
|
|
1928
1932
|
ref_key: "searchRef",
|
|
1929
1933
|
ref: A
|
|
1930
1934
|
}, [
|
|
1931
|
-
|
|
1935
|
+
k(n(z), {
|
|
1932
1936
|
name: "search",
|
|
1933
1937
|
size: 14,
|
|
1934
1938
|
class: "mix-top-menu__search-icon"
|
|
1935
1939
|
}),
|
|
1936
1940
|
Te(e("input", {
|
|
1937
|
-
"onUpdate:modelValue": p[0] || (p[0] = (
|
|
1941
|
+
"onUpdate:modelValue": p[0] || (p[0] = ($) => N.value = $),
|
|
1938
1942
|
type: "text",
|
|
1939
1943
|
class: "mix-top-menu__search-input",
|
|
1940
1944
|
placeholder: "搜索菜单...",
|
|
1941
|
-
onFocus: p[1] || (p[1] = (
|
|
1945
|
+
onFocus: p[1] || (p[1] = ($) => E.value = !0)
|
|
1942
1946
|
}, null, 544), [
|
|
1943
|
-
[We,
|
|
1947
|
+
[We, N.value]
|
|
1944
1948
|
]),
|
|
1945
|
-
|
|
1949
|
+
k(ke, { name: "search-dropdown" }, {
|
|
1946
1950
|
default: M(() => [
|
|
1947
|
-
E.value && (_.value.length > 0 ||
|
|
1948
|
-
_.value.length > 0 ? (
|
|
1949
|
-
(
|
|
1950
|
-
key:
|
|
1951
|
+
E.value && (_.value.length > 0 || N.value) ? (a(), c("div", oa, [
|
|
1952
|
+
_.value.length > 0 ? (a(), c("div", aa, [
|
|
1953
|
+
(a(!0), c(K, null, X(_.value, ($) => (a(), c("div", {
|
|
1954
|
+
key: $.path,
|
|
1951
1955
|
class: "mix-top-menu__search-item",
|
|
1952
|
-
onClick: (Ze) => ve(
|
|
1956
|
+
onClick: (Ze) => ve($.path)
|
|
1953
1957
|
}, [
|
|
1954
|
-
|
|
1955
|
-
ie(F(
|
|
1958
|
+
$.title !== "首页" ? (a(), c("span", la, [
|
|
1959
|
+
ie(F($.icon)) ? (a(), O(n(z), {
|
|
1956
1960
|
key: 0,
|
|
1957
|
-
name: F(
|
|
1961
|
+
name: F($.icon),
|
|
1958
1962
|
size: 16
|
|
1959
|
-
}, null, 8, ["name"])) : (
|
|
1963
|
+
}, null, 8, ["name"])) : (a(), c("span", ra, x(se($.title)), 1))
|
|
1960
1964
|
])) : P("", !0),
|
|
1961
|
-
e("span", ia,
|
|
1962
|
-
|
|
1965
|
+
e("span", ia, x($.title), 1),
|
|
1966
|
+
$.parentTitle ? (a(), c("span", ca, x($.parentTitle), 1)) : P("", !0)
|
|
1963
1967
|
], 8, na))), 128))
|
|
1964
|
-
])) : (
|
|
1968
|
+
])) : (a(), c("div", ua, " 未找到匹配的菜单 "))
|
|
1965
1969
|
])) : P("", !0)
|
|
1966
1970
|
]),
|
|
1967
1971
|
_: 1
|
|
@@ -1972,7 +1976,7 @@ const de = Ne("menu", () => {
|
|
|
1972
1976
|
onClick: U,
|
|
1973
1977
|
title: Y.value ? "退出全屏" : "全屏"
|
|
1974
1978
|
}, [
|
|
1975
|
-
|
|
1979
|
+
k(n(z), {
|
|
1976
1980
|
name: Y.value ? "fullscreen-exit" : "fullscreen",
|
|
1977
1981
|
size: 16
|
|
1978
1982
|
}, null, 8, ["name"])
|
|
@@ -1982,7 +1986,7 @@ const de = Ne("menu", () => {
|
|
|
1982
1986
|
onClick: xe,
|
|
1983
1987
|
title: "换肤设置"
|
|
1984
1988
|
}, [
|
|
1985
|
-
|
|
1989
|
+
k(n(z), {
|
|
1986
1990
|
name: "skin",
|
|
1987
1991
|
size: 16
|
|
1988
1992
|
})
|
|
@@ -1992,7 +1996,7 @@ const de = Ne("menu", () => {
|
|
|
1992
1996
|
onClick: pe,
|
|
1993
1997
|
title: "切换主题"
|
|
1994
1998
|
}, [
|
|
1995
|
-
|
|
1999
|
+
k(n(z), {
|
|
1996
2000
|
name: n(i).isDark ? "sun" : "moon",
|
|
1997
2001
|
size: 16
|
|
1998
2002
|
}, null, 8, ["name"])
|
|
@@ -2007,25 +2011,25 @@ const de = Ne("menu", () => {
|
|
|
2007
2011
|
onClick: Ee(_e, ["stop"])
|
|
2008
2012
|
}, [
|
|
2009
2013
|
e("div", ma, [
|
|
2010
|
-
e("span", null,
|
|
2014
|
+
e("span", null, x(((R = n(h).userName) == null ? void 0 : R.charAt(0)) || "U"), 1)
|
|
2011
2015
|
]),
|
|
2012
|
-
e("span", pa,
|
|
2016
|
+
e("span", pa, x(n(h).userName), 1),
|
|
2013
2017
|
e("span", {
|
|
2014
2018
|
class: J(["mix-top-menu__user-arrow", { "is-active": H.value }])
|
|
2015
2019
|
}, "▼", 2)
|
|
2016
2020
|
]),
|
|
2017
|
-
|
|
2021
|
+
k(ke, { name: "dropdown" }, {
|
|
2018
2022
|
default: M(() => {
|
|
2019
|
-
var
|
|
2023
|
+
var $;
|
|
2020
2024
|
return [
|
|
2021
|
-
H.value ? (
|
|
2025
|
+
H.value ? (a(), c("div", va, [
|
|
2022
2026
|
e("div", ha, [
|
|
2023
2027
|
e("div", _a, [
|
|
2024
|
-
e("span", null,
|
|
2028
|
+
e("span", null, x((($ = n(h).userName) == null ? void 0 : $.charAt(0)) || "U"), 1)
|
|
2025
2029
|
]),
|
|
2026
2030
|
e("div", fa, [
|
|
2027
|
-
e("div", ga,
|
|
2028
|
-
e("div", ya,
|
|
2031
|
+
e("div", ga, x(n(h).userName), 1),
|
|
2032
|
+
e("div", ya, x(n(h).departmentName), 1)
|
|
2029
2033
|
])
|
|
2030
2034
|
]),
|
|
2031
2035
|
p[7] || (p[7] = e("div", { class: "mix-top-menu__dropdown-divider" }, null, -1)),
|
|
@@ -2034,7 +2038,7 @@ const de = Ne("menu", () => {
|
|
|
2034
2038
|
class: "mix-top-menu__dropdown-item",
|
|
2035
2039
|
onClick: Q
|
|
2036
2040
|
}, [
|
|
2037
|
-
|
|
2041
|
+
k(n(z), {
|
|
2038
2042
|
name: "user",
|
|
2039
2043
|
size: 16
|
|
2040
2044
|
}),
|
|
@@ -2042,9 +2046,9 @@ const de = Ne("menu", () => {
|
|
|
2042
2046
|
]),
|
|
2043
2047
|
e("div", {
|
|
2044
2048
|
class: "mix-top-menu__dropdown-item",
|
|
2045
|
-
onClick:
|
|
2049
|
+
onClick: C
|
|
2046
2050
|
}, [
|
|
2047
|
-
|
|
2051
|
+
k(n(z), {
|
|
2048
2052
|
name: "lock",
|
|
2049
2053
|
size: 16
|
|
2050
2054
|
}),
|
|
@@ -2055,7 +2059,7 @@ const de = Ne("menu", () => {
|
|
|
2055
2059
|
class: "mix-top-menu__dropdown-item mix-top-menu__dropdown-item--danger",
|
|
2056
2060
|
onClick: S
|
|
2057
2061
|
}, [
|
|
2058
|
-
|
|
2062
|
+
k(n(z), {
|
|
2059
2063
|
name: "logout",
|
|
2060
2064
|
size: 16
|
|
2061
2065
|
}),
|
|
@@ -2069,9 +2073,9 @@ const de = Ne("menu", () => {
|
|
|
2069
2073
|
})
|
|
2070
2074
|
], 512)
|
|
2071
2075
|
]),
|
|
2072
|
-
|
|
2076
|
+
k(n(Xe), {
|
|
2073
2077
|
modelValue: q.value,
|
|
2074
|
-
"onUpdate:modelValue": p[2] || (p[2] = (
|
|
2078
|
+
"onUpdate:modelValue": p[2] || (p[2] = ($) => q.value = $),
|
|
2075
2079
|
title: "换肤设置",
|
|
2076
2080
|
direction: "rtl",
|
|
2077
2081
|
size: "320px"
|
|
@@ -2081,22 +2085,22 @@ const de = Ne("menu", () => {
|
|
|
2081
2085
|
e("div", ba, [
|
|
2082
2086
|
p[11] || (p[11] = e("div", { class: "settings-title" }, "布局模式", -1)),
|
|
2083
2087
|
e("div", xa, [
|
|
2084
|
-
(
|
|
2085
|
-
key:
|
|
2086
|
-
class: J(["layout-option", { "is-active": fe.value ===
|
|
2087
|
-
onClick: (Ze) => ge(
|
|
2088
|
+
(a(), c(K, null, X(Me, ($) => e("div", {
|
|
2089
|
+
key: $.value,
|
|
2090
|
+
class: J(["layout-option", { "is-active": fe.value === $.value }]),
|
|
2091
|
+
onClick: (Ze) => ge($.value)
|
|
2088
2092
|
}, [
|
|
2089
2093
|
e("div", $a, [
|
|
2090
|
-
|
|
2094
|
+
$.value === "sidebar" ? (a(), c("div", La, [...p[8] || (p[8] = [
|
|
2091
2095
|
e("div", { class: "preview-aside" }, null, -1),
|
|
2092
2096
|
e("div", { class: "preview-main" }, [
|
|
2093
2097
|
e("div", { class: "preview-header" }),
|
|
2094
2098
|
e("div", { class: "preview-content" })
|
|
2095
2099
|
], -1)
|
|
2096
|
-
])])) :
|
|
2100
|
+
])])) : $.value === "top" ? (a(), c("div", Ma, [...p[9] || (p[9] = [
|
|
2097
2101
|
e("div", { class: "preview-header-full" }, null, -1),
|
|
2098
2102
|
e("div", { class: "preview-content-full" }, null, -1)
|
|
2099
|
-
])])) : (
|
|
2103
|
+
])])) : (a(), c("div", Sa, [...p[10] || (p[10] = [
|
|
2100
2104
|
e("div", { class: "preview-header-mix" }, [
|
|
2101
2105
|
e("div", { class: "preview-mix-left" })
|
|
2102
2106
|
], -1),
|
|
@@ -2106,21 +2110,21 @@ const de = Ne("menu", () => {
|
|
|
2106
2110
|
], -1)
|
|
2107
2111
|
])]))
|
|
2108
2112
|
]),
|
|
2109
|
-
e("span",
|
|
2113
|
+
e("span", Na, x($.label), 1)
|
|
2110
2114
|
], 10, Ca)), 64))
|
|
2111
2115
|
])
|
|
2112
2116
|
]),
|
|
2113
|
-
e("div",
|
|
2117
|
+
e("div", Ia, [
|
|
2114
2118
|
p[12] || (p[12] = e("div", { class: "settings-title" }, "主题色", -1)),
|
|
2115
2119
|
e("div", Ua, [
|
|
2116
|
-
(
|
|
2117
|
-
key:
|
|
2118
|
-
class: J(["color-option", { "is-active": n(i).primaryColor ===
|
|
2119
|
-
style:
|
|
2120
|
-
title:
|
|
2121
|
-
onClick: (Ze) =>
|
|
2120
|
+
(a(), c(K, null, X(T, ($) => e("div", {
|
|
2121
|
+
key: $.value,
|
|
2122
|
+
class: J(["color-option", { "is-active": n(i).primaryColor === $.value }]),
|
|
2123
|
+
style: Ne({ backgroundColor: $.value }),
|
|
2124
|
+
title: $.label,
|
|
2125
|
+
onClick: (Ze) => w($.value)
|
|
2122
2126
|
}, [
|
|
2123
|
-
n(i).primaryColor ===
|
|
2127
|
+
n(i).primaryColor === $.value ? (a(), O(n(z), {
|
|
2124
2128
|
key: 0,
|
|
2125
2129
|
name: "check",
|
|
2126
2130
|
size: 12,
|
|
@@ -2174,18 +2178,18 @@ const de = Ne("menu", () => {
|
|
|
2174
2178
|
logoSrc: { default: "/vite.svg" }
|
|
2175
2179
|
},
|
|
2176
2180
|
setup(t) {
|
|
2177
|
-
const r = t,
|
|
2178
|
-
() =>
|
|
2179
|
-
), i =
|
|
2181
|
+
const r = t, u = ue(), s = de(), o = b(
|
|
2182
|
+
() => u.isCollapsed ? "64px" : "210px"
|
|
2183
|
+
), i = b(() => u.layout), h = b(() => i.value === "mix"), v = b(() => i.value === "sidebar" ? s.menuList : i.value === "mix" ? u.mixSubMenus : []), d = b(() => h.value ? v.value.length > 0 : !1);
|
|
2180
2184
|
return (f, _) => {
|
|
2181
|
-
const
|
|
2182
|
-
return
|
|
2183
|
-
i.value === "sidebar" ? (
|
|
2185
|
+
const g = rt("router-view");
|
|
2186
|
+
return a(), c(K, null, [
|
|
2187
|
+
i.value === "sidebar" ? (a(), c("div", Oa, [
|
|
2184
2188
|
e("aside", {
|
|
2185
2189
|
class: "layout__aside",
|
|
2186
|
-
style:
|
|
2190
|
+
style: Ne({ width: o.value })
|
|
2187
2191
|
}, [
|
|
2188
|
-
|
|
2192
|
+
k(tt, {
|
|
2189
2193
|
"menu-list": v.value,
|
|
2190
2194
|
"show-logo": !0,
|
|
2191
2195
|
"show-user": !0,
|
|
@@ -2194,45 +2198,45 @@ const de = Ne("menu", () => {
|
|
|
2194
2198
|
], 4),
|
|
2195
2199
|
e("div", Ba, [
|
|
2196
2200
|
e("header", Ra, [
|
|
2197
|
-
|
|
2201
|
+
k(Os)
|
|
2198
2202
|
]),
|
|
2199
2203
|
e("main", Fa, [
|
|
2200
|
-
|
|
2204
|
+
k(g)
|
|
2201
2205
|
])
|
|
2202
2206
|
])
|
|
2203
2207
|
])) : P("", !0),
|
|
2204
|
-
i.value === "top" ? (
|
|
2208
|
+
i.value === "top" ? (a(), c("div", Ka, [
|
|
2205
2209
|
e("div", ja, [
|
|
2206
|
-
|
|
2210
|
+
k(Ho, {
|
|
2207
2211
|
"logo-src": r.logoSrc
|
|
2208
2212
|
}, null, 8, ["logo-src"])
|
|
2209
2213
|
]),
|
|
2210
2214
|
e("div", Wa, [
|
|
2211
2215
|
e("main", qa, [
|
|
2212
|
-
|
|
2216
|
+
k(g)
|
|
2213
2217
|
])
|
|
2214
2218
|
])
|
|
2215
2219
|
])) : P("", !0),
|
|
2216
|
-
i.value === "mix" ? (
|
|
2220
|
+
i.value === "mix" ? (a(), c("div", Ha, [
|
|
2217
2221
|
e("div", Ya, [
|
|
2218
|
-
|
|
2222
|
+
k(Va, {
|
|
2219
2223
|
"logo-src": r.logoSrc
|
|
2220
2224
|
}, null, 8, ["logo-src"])
|
|
2221
2225
|
]),
|
|
2222
2226
|
e("div", Ga, [
|
|
2223
|
-
|
|
2227
|
+
d.value ? (a(), c("aside", {
|
|
2224
2228
|
key: 0,
|
|
2225
2229
|
class: "layout__aside",
|
|
2226
|
-
style:
|
|
2230
|
+
style: Ne({ width: o.value })
|
|
2227
2231
|
}, [
|
|
2228
|
-
|
|
2232
|
+
k(tt, {
|
|
2229
2233
|
"menu-list": v.value,
|
|
2230
2234
|
"show-logo": !1,
|
|
2231
2235
|
"show-user": !1
|
|
2232
2236
|
}, null, 8, ["menu-list"])
|
|
2233
2237
|
], 4)) : P("", !0),
|
|
2234
2238
|
e("main", Xa, [
|
|
2235
|
-
|
|
2239
|
+
k(g)
|
|
2236
2240
|
])
|
|
2237
2241
|
])
|
|
2238
2242
|
])) : P("", !0)
|
|
@@ -2245,35 +2249,35 @@ const de = Ne("menu", () => {
|
|
|
2245
2249
|
}, Symbol.toStringTag, { value: "Module" })), Qa = { class: "tabs-wrapper" }, en = { class: "tab-label" }, tn = ["onClick"], sn = /* @__PURE__ */ ne({
|
|
2246
2250
|
__name: "Tabs",
|
|
2247
2251
|
setup(t) {
|
|
2248
|
-
const r = be(),
|
|
2252
|
+
const r = be(), u = me(), s = b(() => {
|
|
2249
2253
|
const v = [];
|
|
2250
|
-
return r.matched.forEach((
|
|
2254
|
+
return r.matched.forEach((d) => {
|
|
2251
2255
|
var f;
|
|
2252
|
-
(f =
|
|
2253
|
-
name:
|
|
2254
|
-
title:
|
|
2255
|
-
path:
|
|
2256
|
+
(f = d.meta) != null && f.affix && v.push({
|
|
2257
|
+
name: d.name,
|
|
2258
|
+
title: d.meta.title,
|
|
2259
|
+
path: d.path,
|
|
2256
2260
|
affix: !0
|
|
2257
2261
|
});
|
|
2258
2262
|
}), v;
|
|
2259
|
-
}),
|
|
2260
|
-
|
|
2263
|
+
}), o = b(() => r.path), i = (v) => {
|
|
2264
|
+
u.push(v);
|
|
2261
2265
|
}, h = (v) => {
|
|
2262
|
-
const
|
|
2263
|
-
if (!(
|
|
2264
|
-
const f = s.value.findIndex((
|
|
2265
|
-
_ &&
|
|
2266
|
+
const d = s.value.find((f) => f.path === v);
|
|
2267
|
+
if (!(d != null && d.affix) && v === o.value) {
|
|
2268
|
+
const f = s.value.findIndex((g) => g.path === v), _ = s.value[f - 1] || s.value[f + 1];
|
|
2269
|
+
_ && u.push(_.path);
|
|
2266
2270
|
}
|
|
2267
2271
|
};
|
|
2268
|
-
return (v,
|
|
2269
|
-
|
|
2270
|
-
modelValue:
|
|
2271
|
-
"onUpdate:modelValue":
|
|
2272
|
+
return (v, d) => (a(), c("div", Qa, [
|
|
2273
|
+
k(n($t), {
|
|
2274
|
+
modelValue: o.value,
|
|
2275
|
+
"onUpdate:modelValue": d[0] || (d[0] = (f) => o.value = f),
|
|
2272
2276
|
type: "card",
|
|
2273
2277
|
onTabClick: i
|
|
2274
2278
|
}, {
|
|
2275
2279
|
default: M(() => [
|
|
2276
|
-
(
|
|
2280
|
+
(a(!0), c(K, null, X(s.value, (f) => (a(), O(n(Lt), {
|
|
2277
2281
|
key: f.path,
|
|
2278
2282
|
name: f.path,
|
|
2279
2283
|
label: f.title,
|
|
@@ -2281,8 +2285,8 @@ const de = Ne("menu", () => {
|
|
|
2281
2285
|
}, {
|
|
2282
2286
|
label: M(() => [
|
|
2283
2287
|
e("span", en, [
|
|
2284
|
-
he(
|
|
2285
|
-
f.affix ? P("", !0) : (
|
|
2288
|
+
he(x(f.title) + " ", 1),
|
|
2289
|
+
f.affix ? P("", !0) : (a(), c("span", {
|
|
2286
2290
|
key: 0,
|
|
2287
2291
|
class: "tab-close",
|
|
2288
2292
|
onClick: Ee((_) => h(f.path), ["stop"])
|
|
@@ -2298,14 +2302,14 @@ const de = Ne("menu", () => {
|
|
|
2298
2302
|
}
|
|
2299
2303
|
}), qn = /* @__PURE__ */ re(sn, [["__scopeId", "data-v-9156d8cd"]]), on = {}, an = { class: "footer" };
|
|
2300
2304
|
function nn(t, r) {
|
|
2301
|
-
return
|
|
2305
|
+
return a(), c("div", an, [...r[0] || (r[0] = [
|
|
2302
2306
|
e("span", null, "Copyright © 2024 Xto Demo. All Rights Reserved.", -1)
|
|
2303
2307
|
])]);
|
|
2304
2308
|
}
|
|
2305
2309
|
const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826a"]]), ln = { class: "login-page" }, rn = { class: "login-form-section" }, cn = { class: "form-container" }, un = { class: "input-wrapper" }, dn = { class: "input-wrapper" }, mn = { class: "form-options" }, pn = { key: 0 }, vn = { key: 1 }, hn = /* @__PURE__ */ ne({
|
|
2306
2310
|
__name: "index",
|
|
2307
2311
|
setup(t) {
|
|
2308
|
-
const r = me(),
|
|
2312
|
+
const r = me(), u = be(), s = y(!1), o = y(!1), i = qe({
|
|
2309
2313
|
uid: "",
|
|
2310
2314
|
password: ""
|
|
2311
2315
|
}), h = {
|
|
@@ -2316,7 +2320,7 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2316
2320
|
{ required: !0, message: "请输入密码", trigger: "blur" },
|
|
2317
2321
|
{ min: 6, message: "密码长度至少6位", trigger: "blur" }
|
|
2318
2322
|
]
|
|
2319
|
-
}, v =
|
|
2323
|
+
}, v = y(), d = async () => {
|
|
2320
2324
|
var f;
|
|
2321
2325
|
try {
|
|
2322
2326
|
await ((f = v.value) == null ? void 0 : f.validate()), s.value = !0;
|
|
@@ -2328,15 +2332,15 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2328
2332
|
code: !0
|
|
2329
2333
|
});
|
|
2330
2334
|
nt(_), Mt.success("登录成功");
|
|
2331
|
-
const
|
|
2332
|
-
|
|
2335
|
+
const g = u.query.redirect;
|
|
2336
|
+
g ? r.push(g) : r.push({ name: "Dashboard" });
|
|
2333
2337
|
} catch (_) {
|
|
2334
2338
|
console.error("登录失败:", _);
|
|
2335
2339
|
} finally {
|
|
2336
2340
|
s.value = !1;
|
|
2337
2341
|
}
|
|
2338
2342
|
};
|
|
2339
|
-
return (f, _) => (
|
|
2343
|
+
return (f, _) => (a(), c("div", ln, [
|
|
2340
2344
|
_[10] || (_[10] = ze('<div class="login-brand" data-v-ef91e533><div class="brand-content" data-v-ef91e533><div class="brand-logo" data-v-ef91e533><div class="logo-icon" data-v-ef91e533><svg viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-ef91e533><rect width="48" height="48" rx="12" fill="currentColor" data-v-ef91e533></rect><path d="M14 24L20 30L34 16" stroke="white" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" data-v-ef91e533></path></svg></div><span class="logo-text" data-v-ef91e533>XTO</span></div><div class="brand-slogan" data-v-ef91e533><h1 data-v-ef91e533>企业级后台管理解决方案</h1><p data-v-ef91e533>开箱即用的中后台前端/设计解决方案</p></div><div class="brand-features" data-v-ef91e533><div class="feature-item" data-v-ef91e533><div class="feature-icon" data-v-ef91e533><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ef91e533><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" data-v-ef91e533></path></svg></div><div class="feature-text" data-v-ef91e533><h4 data-v-ef91e533>高性能</h4><p data-v-ef91e533>极致的渲染性能与响应速度</p></div></div><div class="feature-item" data-v-ef91e533><div class="feature-icon" data-v-ef91e533><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ef91e533><rect x="3" y="3" width="18" height="18" rx="2" data-v-ef91e533></rect><path d="M9 9h6M9 12h6M9 15h4" data-v-ef91e533></path></svg></div><div class="feature-text" data-v-ef91e533><h4 data-v-ef91e533>丰富组件</h4><p data-v-ef91e533>60+ 高质量业务组件</p></div></div><div class="feature-item" data-v-ef91e533><div class="feature-icon" data-v-ef91e533><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ef91e533><circle cx="12" cy="12" r="10" data-v-ef91e533></circle><path d="M12 6v6l4 2" data-v-ef91e533></path></svg></div><div class="feature-text" data-v-ef91e533><h4 data-v-ef91e533>持续更新</h4><p data-v-ef91e533>活跃的社区与快速迭代</p></div></div></div><div class="brand-decoration" data-v-ef91e533><div class="decoration-line" data-v-ef91e533></div><div class="decoration-dots" data-v-ef91e533><span data-v-ef91e533></span><span data-v-ef91e533></span><span data-v-ef91e533></span></div></div></div><div class="brand-bg" data-v-ef91e533><div class="bg-grid" data-v-ef91e533></div><div class="bg-glow" data-v-ef91e533></div><div class="bg-pattern" data-v-ef91e533></div></div></div>', 1)),
|
|
2341
2345
|
e("div", rn, [
|
|
2342
2346
|
e("div", cn, [
|
|
@@ -2344,7 +2348,7 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2344
2348
|
e("h2", null, "欢迎登录"),
|
|
2345
2349
|
e("p", null, "请输入您的账户信息")
|
|
2346
2350
|
], -1)),
|
|
2347
|
-
|
|
2351
|
+
k(n(St), {
|
|
2348
2352
|
ref_key: "formRef",
|
|
2349
2353
|
ref: v,
|
|
2350
2354
|
model: i,
|
|
@@ -2353,18 +2357,18 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2353
2357
|
"label-width": "0"
|
|
2354
2358
|
}, {
|
|
2355
2359
|
default: M(() => [
|
|
2356
|
-
|
|
2360
|
+
k(n(Pe), { prop: "uid" }, {
|
|
2357
2361
|
default: M(() => [
|
|
2358
2362
|
e("div", un, [
|
|
2359
2363
|
_[3] || (_[3] = e("label", { class: "input-label" }, "用户名", -1)),
|
|
2360
|
-
|
|
2364
|
+
k(n(et), {
|
|
2361
2365
|
modelValue: i.uid,
|
|
2362
|
-
"onUpdate:modelValue": _[0] || (_[0] = (
|
|
2366
|
+
"onUpdate:modelValue": _[0] || (_[0] = (g) => i.uid = g),
|
|
2363
2367
|
placeholder: "请输入用户名",
|
|
2364
2368
|
size: "large"
|
|
2365
2369
|
}, {
|
|
2366
2370
|
prefix: M(() => [
|
|
2367
|
-
|
|
2371
|
+
k(n(z), {
|
|
2368
2372
|
name: "user",
|
|
2369
2373
|
size: 18
|
|
2370
2374
|
})
|
|
@@ -2375,21 +2379,21 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2375
2379
|
]),
|
|
2376
2380
|
_: 1
|
|
2377
2381
|
}),
|
|
2378
|
-
|
|
2382
|
+
k(n(Pe), { prop: "password" }, {
|
|
2379
2383
|
default: M(() => [
|
|
2380
2384
|
e("div", dn, [
|
|
2381
2385
|
_[4] || (_[4] = e("label", { class: "input-label" }, "密码", -1)),
|
|
2382
|
-
|
|
2386
|
+
k(n(et), {
|
|
2383
2387
|
modelValue: i.password,
|
|
2384
|
-
"onUpdate:modelValue": _[1] || (_[1] = (
|
|
2388
|
+
"onUpdate:modelValue": _[1] || (_[1] = (g) => i.password = g),
|
|
2385
2389
|
type: "password",
|
|
2386
2390
|
placeholder: "请输入密码",
|
|
2387
2391
|
size: "large",
|
|
2388
2392
|
"show-password": "",
|
|
2389
|
-
onKeyup: xt(
|
|
2393
|
+
onKeyup: xt(d, ["enter"])
|
|
2390
2394
|
}, {
|
|
2391
2395
|
prefix: M(() => [
|
|
2392
|
-
|
|
2396
|
+
k(n(z), {
|
|
2393
2397
|
name: "lock",
|
|
2394
2398
|
size: 18
|
|
2395
2399
|
})
|
|
@@ -2401,9 +2405,9 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2401
2405
|
_: 1
|
|
2402
2406
|
}),
|
|
2403
2407
|
e("div", mn, [
|
|
2404
|
-
|
|
2405
|
-
modelValue:
|
|
2406
|
-
"onUpdate:modelValue": _[2] || (_[2] = (
|
|
2408
|
+
k(n(Nt), {
|
|
2409
|
+
modelValue: o.value,
|
|
2410
|
+
"onUpdate:modelValue": _[2] || (_[2] = (g) => o.value = g)
|
|
2407
2411
|
}, {
|
|
2408
2412
|
default: M(() => [..._[5] || (_[5] = [
|
|
2409
2413
|
he("记住我", -1)
|
|
@@ -2415,17 +2419,17 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2415
2419
|
class: "forgot-link"
|
|
2416
2420
|
}, "忘记密码?", -1))
|
|
2417
2421
|
]),
|
|
2418
|
-
|
|
2422
|
+
k(n(Pe), null, {
|
|
2419
2423
|
default: M(() => [
|
|
2420
|
-
|
|
2424
|
+
k(n(we), {
|
|
2421
2425
|
type: "primary",
|
|
2422
2426
|
size: "large",
|
|
2423
2427
|
loading: s.value,
|
|
2424
2428
|
class: "login-btn",
|
|
2425
|
-
onClick:
|
|
2429
|
+
onClick: d
|
|
2426
2430
|
}, {
|
|
2427
2431
|
default: M(() => [
|
|
2428
|
-
s.value ? (
|
|
2432
|
+
s.value ? (a(), c("span", vn, "登录中...")) : (a(), c("span", pn, "登 录"))
|
|
2429
2433
|
]),
|
|
2430
2434
|
_: 1
|
|
2431
2435
|
}, 8, ["loading"])
|
|
@@ -2449,25 +2453,25 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2449
2453
|
}, Symbol.toStringTag, { value: "Module" })), gn = { class: "error-page" }, yn = { class: "error-container" }, kn = { class: "error-content" }, wn = { class: "error-actions" }, bn = /* @__PURE__ */ ne({
|
|
2450
2454
|
__name: "404",
|
|
2451
2455
|
setup(t) {
|
|
2452
|
-
const r = me(),
|
|
2456
|
+
const r = me(), u = () => {
|
|
2453
2457
|
r.push("/");
|
|
2454
2458
|
};
|
|
2455
|
-
return (s,
|
|
2459
|
+
return (s, o) => (a(), c("div", gn, [
|
|
2456
2460
|
e("div", yn, [
|
|
2457
|
-
|
|
2461
|
+
o[7] || (o[7] = e("div", { class: "error-bg" }, [
|
|
2458
2462
|
e("div", { class: "bg-circle circle-1" }),
|
|
2459
2463
|
e("div", { class: "bg-circle circle-2" }),
|
|
2460
2464
|
e("div", { class: "bg-circle circle-3" })
|
|
2461
2465
|
], -1)),
|
|
2462
2466
|
e("div", kn, [
|
|
2463
|
-
|
|
2467
|
+
o[5] || (o[5] = ze('<div class="error-code" data-v-1b083153><span class="code-digit" data-v-1b083153>4</span><span class="code-zero" data-v-1b083153><span class="zero-inner" data-v-1b083153>0</span></span><span class="code-digit" data-v-1b083153>4</span></div><div class="error-illustration" data-v-1b083153><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-1b083153><rect x="40" y="20" width="120" height="80" rx="8" fill="var(--color-fill)" stroke="var(--color-border)" stroke-width="2" data-v-1b083153></rect><rect x="50" y="30" width="100" height="60" rx="4" fill="var(--bg-color)" data-v-1b083153></rect><line x1="60" y1="45" x2="140" y2="45" stroke="var(--color-border-light)" stroke-width="2" data-v-1b083153></line><line x1="60" y1="55" x2="120" y2="55" stroke="var(--color-border-light)" stroke-width="2" data-v-1b083153></line><line x1="60" y1="65" x2="100" y2="65" stroke="var(--color-border-light)" stroke-width="2" data-v-1b083153></line><text x="100" y="75" text-anchor="middle" fill="var(--color-primary)" font-size="24" font-weight="600" data-v-1b083153>?</text><circle cx="150" cy="35" r="12" stroke="var(--color-primary)" stroke-width="2" fill="none" data-v-1b083153></circle><line x1="158" y1="43" x2="168" y2="53" stroke="var(--color-primary)" stroke-width="2" stroke-linecap="round" data-v-1b083153></line></svg></div><h1 class="error-title" data-v-1b083153>页面不存在</h1><p class="error-desc" data-v-1b083153>抱歉,您访问的页面不存在或已被删除</p>', 4)),
|
|
2464
2468
|
e("div", wn, [
|
|
2465
|
-
|
|
2469
|
+
k(n(we), {
|
|
2466
2470
|
type: "primary",
|
|
2467
2471
|
size: "large",
|
|
2468
|
-
onClick:
|
|
2472
|
+
onClick: u
|
|
2469
2473
|
}, {
|
|
2470
|
-
icon: M(() => [...
|
|
2474
|
+
icon: M(() => [...o[1] || (o[1] = [
|
|
2471
2475
|
e("svg", {
|
|
2472
2476
|
viewBox: "0 0 24 24",
|
|
2473
2477
|
fill: "none",
|
|
@@ -2479,15 +2483,15 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2479
2483
|
], -1)
|
|
2480
2484
|
])]),
|
|
2481
2485
|
default: M(() => [
|
|
2482
|
-
|
|
2486
|
+
o[2] || (o[2] = he(" 返回首页 ", -1))
|
|
2483
2487
|
]),
|
|
2484
2488
|
_: 1
|
|
2485
2489
|
}),
|
|
2486
|
-
|
|
2490
|
+
k(n(we), {
|
|
2487
2491
|
size: "large",
|
|
2488
|
-
onClick:
|
|
2492
|
+
onClick: o[0] || (o[0] = (i) => n(r).go(-1))
|
|
2489
2493
|
}, {
|
|
2490
|
-
icon: M(() => [...
|
|
2494
|
+
icon: M(() => [...o[3] || (o[3] = [
|
|
2491
2495
|
e("svg", {
|
|
2492
2496
|
viewBox: "0 0 24 24",
|
|
2493
2497
|
fill: "none",
|
|
@@ -2498,12 +2502,12 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2498
2502
|
], -1)
|
|
2499
2503
|
])]),
|
|
2500
2504
|
default: M(() => [
|
|
2501
|
-
|
|
2505
|
+
o[4] || (o[4] = he(" 返回上一页 ", -1))
|
|
2502
2506
|
]),
|
|
2503
2507
|
_: 1
|
|
2504
2508
|
})
|
|
2505
2509
|
]),
|
|
2506
|
-
|
|
2510
|
+
o[6] || (o[6] = e("div", { class: "error-tip" }, [
|
|
2507
2511
|
e("p", null, "您可以尝试:"),
|
|
2508
2512
|
e("ul", null, [
|
|
2509
2513
|
e("li", null, "检查您输入的网址是否正确"),
|
|
@@ -2521,25 +2525,25 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2521
2525
|
}, Symbol.toStringTag, { value: "Module" })), Cn = { class: "error-page" }, $n = { class: "error-container" }, Ln = { class: "error-content" }, Mn = { class: "error-actions" }, Sn = /* @__PURE__ */ ne({
|
|
2522
2526
|
__name: "403",
|
|
2523
2527
|
setup(t) {
|
|
2524
|
-
const r = me(),
|
|
2528
|
+
const r = me(), u = () => {
|
|
2525
2529
|
r.push("/");
|
|
2526
2530
|
};
|
|
2527
|
-
return (s,
|
|
2531
|
+
return (s, o) => (a(), c("div", Cn, [
|
|
2528
2532
|
e("div", $n, [
|
|
2529
|
-
|
|
2533
|
+
o[7] || (o[7] = e("div", { class: "error-bg" }, [
|
|
2530
2534
|
e("div", { class: "bg-circle circle-1" }),
|
|
2531
2535
|
e("div", { class: "bg-circle circle-2" }),
|
|
2532
2536
|
e("div", { class: "bg-circle circle-3" })
|
|
2533
2537
|
], -1)),
|
|
2534
2538
|
e("div", Ln, [
|
|
2535
|
-
|
|
2539
|
+
o[5] || (o[5] = ze('<div class="error-code" data-v-d167f981><span class="code-digit" data-v-d167f981>4</span><span class="code-zero warning" data-v-d167f981><span class="zero-inner" data-v-d167f981>0</span></span><span class="code-digit" data-v-d167f981>3</span></div><div class="error-illustration" data-v-d167f981><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-d167f981><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-d167f981></path><rect x="85" y="55" width="30" height="25" rx="4" fill="var(--color-warning)" data-v-d167f981></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-d167f981></path><circle cx="100" cy="67" r="6" fill="none" stroke="#fff" stroke-width="2" data-v-d167f981></circle><line x1="96" y1="63" x2="104" y2="71" stroke="#fff" stroke-width="2" data-v-d167f981></line></svg></div><h1 class="error-title" data-v-d167f981>无访问权限</h1><p class="error-desc" data-v-d167f981>抱歉,您没有权限访问此页面,请联系管理员获取权限</p>', 4)),
|
|
2536
2540
|
e("div", Mn, [
|
|
2537
|
-
|
|
2541
|
+
k(n(we), {
|
|
2538
2542
|
type: "primary",
|
|
2539
2543
|
size: "large",
|
|
2540
|
-
onClick:
|
|
2544
|
+
onClick: u
|
|
2541
2545
|
}, {
|
|
2542
|
-
icon: M(() => [...
|
|
2546
|
+
icon: M(() => [...o[1] || (o[1] = [
|
|
2543
2547
|
e("svg", {
|
|
2544
2548
|
viewBox: "0 0 24 24",
|
|
2545
2549
|
fill: "none",
|
|
@@ -2551,15 +2555,15 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2551
2555
|
], -1)
|
|
2552
2556
|
])]),
|
|
2553
2557
|
default: M(() => [
|
|
2554
|
-
|
|
2558
|
+
o[2] || (o[2] = he(" 返回首页 ", -1))
|
|
2555
2559
|
]),
|
|
2556
2560
|
_: 1
|
|
2557
2561
|
}),
|
|
2558
|
-
|
|
2562
|
+
k(n(we), {
|
|
2559
2563
|
size: "large",
|
|
2560
|
-
onClick:
|
|
2564
|
+
onClick: o[0] || (o[0] = (i) => n(r).go(-1))
|
|
2561
2565
|
}, {
|
|
2562
|
-
icon: M(() => [...
|
|
2566
|
+
icon: M(() => [...o[3] || (o[3] = [
|
|
2563
2567
|
e("svg", {
|
|
2564
2568
|
viewBox: "0 0 24 24",
|
|
2565
2569
|
fill: "none",
|
|
@@ -2570,12 +2574,12 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2570
2574
|
], -1)
|
|
2571
2575
|
])]),
|
|
2572
2576
|
default: M(() => [
|
|
2573
|
-
|
|
2577
|
+
o[4] || (o[4] = he(" 返回上一页 ", -1))
|
|
2574
2578
|
]),
|
|
2575
2579
|
_: 1
|
|
2576
2580
|
})
|
|
2577
2581
|
]),
|
|
2578
|
-
|
|
2582
|
+
o[6] || (o[6] = e("div", { class: "error-tip" }, [
|
|
2579
2583
|
e("p", null, "可能的原因:"),
|
|
2580
2584
|
e("ul", null, [
|
|
2581
2585
|
e("li", null, "您的账号权限不足"),
|
|
@@ -2589,14 +2593,14 @@ const Hn = /* @__PURE__ */ re(on, [["render", nn], ["__scopeId", "data-v-4852826
|
|
|
2589
2593
|
}
|
|
2590
2594
|
}), Yn = /* @__PURE__ */ re(Sn, [["__scopeId", "data-v-d167f981"]]);
|
|
2591
2595
|
function Gn() {
|
|
2592
|
-
const t = ue(), r = le(),
|
|
2596
|
+
const t = ue(), r = le(), u = Ue(), s = b(() => r.userName || ""), o = b(() => r.userInfo), i = b(() => t.appName), h = b(() => u.isLoggedIn), v = b(() => t.isDark), d = b(() => t.theme), f = b(() => t.isCollapsed), _ = b(() => t.layout);
|
|
2593
2597
|
return {
|
|
2594
2598
|
userName: s,
|
|
2595
|
-
userInfo:
|
|
2599
|
+
userInfo: o,
|
|
2596
2600
|
appName: i,
|
|
2597
2601
|
isLoggedIn: h,
|
|
2598
2602
|
isDark: v,
|
|
2599
|
-
theme:
|
|
2603
|
+
theme: d,
|
|
2600
2604
|
isCollapsed: f,
|
|
2601
2605
|
layout: _,
|
|
2602
2606
|
toggleTheme: () => {
|
|
@@ -2610,37 +2614,37 @@ function Gn() {
|
|
|
2610
2614
|
function Xn() {
|
|
2611
2615
|
const t = le();
|
|
2612
2616
|
return {
|
|
2613
|
-
isLoggedIn:
|
|
2617
|
+
isLoggedIn: b(() => t.isLoggedIn)
|
|
2614
2618
|
};
|
|
2615
2619
|
}
|
|
2616
2620
|
function Jn(t, r = {}) {
|
|
2617
|
-
const { rules:
|
|
2618
|
-
|
|
2621
|
+
const { rules: u, onSubmit: s } = r, o = y(), i = qe({ ...t }), h = y(!1), v = y(!1), d = y(!1), f = () => {
|
|
2622
|
+
m(), d.value = !1, v.value = !0;
|
|
2619
2623
|
}, _ = (D) => {
|
|
2620
|
-
Object.assign(i, D),
|
|
2621
|
-
},
|
|
2622
|
-
v.value = !1,
|
|
2623
|
-
},
|
|
2624
|
+
Object.assign(i, D), d.value = !0, v.value = !0;
|
|
2625
|
+
}, g = () => {
|
|
2626
|
+
v.value = !1, m();
|
|
2627
|
+
}, m = () => {
|
|
2624
2628
|
var D;
|
|
2625
2629
|
Object.keys(t).forEach((W) => {
|
|
2626
2630
|
i[W] = t[W];
|
|
2627
|
-
}), (D =
|
|
2631
|
+
}), (D = o.value) == null || D.resetFields();
|
|
2628
2632
|
};
|
|
2629
2633
|
return {
|
|
2630
|
-
formRef:
|
|
2634
|
+
formRef: o,
|
|
2631
2635
|
formData: i,
|
|
2632
|
-
rules:
|
|
2636
|
+
rules: u,
|
|
2633
2637
|
loading: h,
|
|
2634
2638
|
visible: v,
|
|
2635
|
-
isEdit:
|
|
2639
|
+
isEdit: d,
|
|
2636
2640
|
openAdd: f,
|
|
2637
2641
|
openEdit: _,
|
|
2638
|
-
close:
|
|
2639
|
-
resetForm:
|
|
2642
|
+
close: g,
|
|
2643
|
+
resetForm: m,
|
|
2640
2644
|
handleSubmit: async () => {
|
|
2641
2645
|
var D;
|
|
2642
2646
|
try {
|
|
2643
|
-
await ((D =
|
|
2647
|
+
await ((D = o.value) == null ? void 0 : D.validate()), h.value = !0, await (s == null ? void 0 : s(i)), g();
|
|
2644
2648
|
} catch (W) {
|
|
2645
2649
|
console.error(W);
|
|
2646
2650
|
} finally {
|
|
@@ -2650,15 +2654,15 @@ function Jn(t, r = {}) {
|
|
|
2650
2654
|
};
|
|
2651
2655
|
}
|
|
2652
2656
|
function Zn(t) {
|
|
2653
|
-
const { fetchData: r, defaultPageSize:
|
|
2657
|
+
const { fetchData: r, defaultPageSize: u = 10 } = t, s = y(!1), o = y([]), i = y(0), h = y(1), v = y(u), d = qe({}), f = async () => {
|
|
2654
2658
|
s.value = !0;
|
|
2655
2659
|
try {
|
|
2656
2660
|
const V = {
|
|
2657
|
-
...
|
|
2661
|
+
...d,
|
|
2658
2662
|
page: h.value,
|
|
2659
2663
|
pageSize: v.value
|
|
2660
2664
|
}, B = await r(V);
|
|
2661
|
-
|
|
2665
|
+
o.value = B.list, i.value = B.total;
|
|
2662
2666
|
} catch (V) {
|
|
2663
2667
|
console.error(V);
|
|
2664
2668
|
} finally {
|
|
@@ -2666,60 +2670,60 @@ function Zn(t) {
|
|
|
2666
2670
|
}
|
|
2667
2671
|
}, _ = () => {
|
|
2668
2672
|
h.value = 1, f();
|
|
2669
|
-
},
|
|
2670
|
-
Object.keys(
|
|
2671
|
-
|
|
2673
|
+
}, g = () => {
|
|
2674
|
+
Object.keys(d).forEach((V) => {
|
|
2675
|
+
d[V] = void 0;
|
|
2672
2676
|
}), h.value = 1, f();
|
|
2673
|
-
},
|
|
2677
|
+
}, m = (V) => {
|
|
2674
2678
|
h.value = V, f();
|
|
2675
2679
|
}, j = (V) => {
|
|
2676
2680
|
v.value = V, h.value = 1, f();
|
|
2677
2681
|
}, D = () => {
|
|
2678
2682
|
f();
|
|
2679
|
-
}, W =
|
|
2683
|
+
}, W = b(() => ({
|
|
2680
2684
|
current: h.value,
|
|
2681
2685
|
pageSize: v.value,
|
|
2682
2686
|
total: i.value
|
|
2683
2687
|
}));
|
|
2684
2688
|
return {
|
|
2685
2689
|
loading: s,
|
|
2686
|
-
data:
|
|
2690
|
+
data: o,
|
|
2687
2691
|
total: i,
|
|
2688
2692
|
currentPage: h,
|
|
2689
2693
|
pageSize: v,
|
|
2690
|
-
searchParams:
|
|
2694
|
+
searchParams: d,
|
|
2691
2695
|
pagination: W,
|
|
2692
2696
|
getData: f,
|
|
2693
2697
|
handleSearch: _,
|
|
2694
|
-
handleReset:
|
|
2695
|
-
handlePageChange:
|
|
2698
|
+
handleReset: g,
|
|
2699
|
+
handlePageChange: m,
|
|
2696
2700
|
handleSizeChange: j,
|
|
2697
2701
|
refresh: D
|
|
2698
2702
|
};
|
|
2699
2703
|
}
|
|
2700
|
-
const Je =
|
|
2701
|
-
const t =
|
|
2702
|
-
const
|
|
2703
|
-
return (
|
|
2704
|
+
const Je = Ie("locale", () => {
|
|
2705
|
+
const t = I.get("locale") || "zh-CN", r = It(t), u = y(t), s = Ut(), { t: o, messages: i, setLocale: h, mergeMessages: v } = zt(), d = b(() => {
|
|
2706
|
+
const m = s.find((j) => j.code === u.value);
|
|
2707
|
+
return (m == null ? void 0 : m.name) || u.value;
|
|
2704
2708
|
});
|
|
2705
2709
|
return {
|
|
2706
|
-
locale:
|
|
2707
|
-
localeName:
|
|
2710
|
+
locale: u,
|
|
2711
|
+
localeName: d,
|
|
2708
2712
|
locales: s,
|
|
2709
2713
|
messages: i,
|
|
2710
|
-
t:
|
|
2711
|
-
changeLocale: (
|
|
2712
|
-
|
|
2714
|
+
t: o,
|
|
2715
|
+
changeLocale: (m) => {
|
|
2716
|
+
u.value = m, h(m), I.set("locale", m), r.setLocale(m);
|
|
2713
2717
|
},
|
|
2714
|
-
addMessages: (
|
|
2715
|
-
v(
|
|
2718
|
+
addMessages: (m) => {
|
|
2719
|
+
v(m);
|
|
2716
2720
|
},
|
|
2717
2721
|
initLocale: () => {
|
|
2718
2722
|
h(t);
|
|
2719
2723
|
},
|
|
2720
2724
|
provider: r
|
|
2721
2725
|
};
|
|
2722
|
-
}),
|
|
2726
|
+
}), Nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2723
2727
|
__proto__: null,
|
|
2724
2728
|
useLocaleStore: Je
|
|
2725
2729
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -2746,8 +2750,8 @@ function el() {
|
|
|
2746
2750
|
return Je().t;
|
|
2747
2751
|
}
|
|
2748
2752
|
function tl(t) {
|
|
2749
|
-
const r = le(),
|
|
2750
|
-
return r.isLoggedIn ?
|
|
2753
|
+
const r = le(), u = de();
|
|
2754
|
+
return r.isLoggedIn ? u.hasPermission(t) : !1;
|
|
2751
2755
|
}
|
|
2752
2756
|
function sl(t) {
|
|
2753
2757
|
return le().isLoggedIn;
|
|
@@ -2774,7 +2778,7 @@ const dt = [
|
|
|
2774
2778
|
{
|
|
2775
2779
|
path: "/dashboard",
|
|
2776
2780
|
name: "Dashboard",
|
|
2777
|
-
component: () => import("./index-
|
|
2781
|
+
component: () => import("./index-DKHtW-p9.js"),
|
|
2778
2782
|
meta: {
|
|
2779
2783
|
title: "仪表盘",
|
|
2780
2784
|
icon: "dashboard",
|
|
@@ -2785,7 +2789,7 @@ const dt = [
|
|
|
2785
2789
|
{
|
|
2786
2790
|
path: "/system/user",
|
|
2787
2791
|
name: "SystemUser",
|
|
2788
|
-
component: () => import("./index-
|
|
2792
|
+
component: () => import("./index-q2D-YeQK.js"),
|
|
2789
2793
|
meta: {
|
|
2790
2794
|
title: "用户管理",
|
|
2791
2795
|
icon: "user",
|
|
@@ -2795,7 +2799,7 @@ const dt = [
|
|
|
2795
2799
|
{
|
|
2796
2800
|
path: "/system/role",
|
|
2797
2801
|
name: "SystemRole",
|
|
2798
|
-
component: () => import("./index-
|
|
2802
|
+
component: () => import("./index-DB43988M.js"),
|
|
2799
2803
|
meta: {
|
|
2800
2804
|
title: "角色管理",
|
|
2801
2805
|
icon: "role",
|
|
@@ -2805,7 +2809,7 @@ const dt = [
|
|
|
2805
2809
|
{
|
|
2806
2810
|
path: "/system/menu",
|
|
2807
2811
|
name: "SystemMenu",
|
|
2808
|
-
component: () => import("./index-
|
|
2812
|
+
component: () => import("./index-BNLsx1WO.js"),
|
|
2809
2813
|
meta: {
|
|
2810
2814
|
title: "菜单管理",
|
|
2811
2815
|
icon: "menu",
|
|
@@ -2827,7 +2831,7 @@ const dt = [
|
|
|
2827
2831
|
{
|
|
2828
2832
|
path: "/dashboard",
|
|
2829
2833
|
name: "Dashboard",
|
|
2830
|
-
component: () => import("./index-
|
|
2834
|
+
component: () => import("./index-DKHtW-p9.js"),
|
|
2831
2835
|
meta: {
|
|
2832
2836
|
title: "仪表盘",
|
|
2833
2837
|
icon: "dashboard",
|
|
@@ -2847,7 +2851,7 @@ const dt = [
|
|
|
2847
2851
|
{
|
|
2848
2852
|
path: "user",
|
|
2849
2853
|
name: "SystemUser",
|
|
2850
|
-
component: () => import("./index-
|
|
2854
|
+
component: () => import("./index-q2D-YeQK.js"),
|
|
2851
2855
|
meta: {
|
|
2852
2856
|
title: "用户管理",
|
|
2853
2857
|
icon: "user",
|
|
@@ -2857,7 +2861,7 @@ const dt = [
|
|
|
2857
2861
|
{
|
|
2858
2862
|
path: "role",
|
|
2859
2863
|
name: "SystemRole",
|
|
2860
|
-
component: () => import("./index-
|
|
2864
|
+
component: () => import("./index-DB43988M.js"),
|
|
2861
2865
|
meta: {
|
|
2862
2866
|
title: "角色管理",
|
|
2863
2867
|
icon: "role",
|
|
@@ -2867,7 +2871,7 @@ const dt = [
|
|
|
2867
2871
|
{
|
|
2868
2872
|
path: "menu",
|
|
2869
2873
|
name: "SystemMenu",
|
|
2870
|
-
component: () => import("./index-
|
|
2874
|
+
component: () => import("./index-BNLsx1WO.js"),
|
|
2871
2875
|
meta: {
|
|
2872
2876
|
title: "菜单管理",
|
|
2873
2877
|
icon: "menu",
|
|
@@ -2876,7 +2880,7 @@ const dt = [
|
|
|
2876
2880
|
}
|
|
2877
2881
|
]
|
|
2878
2882
|
}
|
|
2879
|
-
],
|
|
2883
|
+
], In = [
|
|
2880
2884
|
{
|
|
2881
2885
|
menuCode: "dashboard",
|
|
2882
2886
|
menuName: "仪表盘",
|
|
@@ -2929,14 +2933,14 @@ const dt = [
|
|
|
2929
2933
|
routes: [...dt, mt],
|
|
2930
2934
|
scrollBehavior: () => ({ left: 0, top: 0 })
|
|
2931
2935
|
}), Un = ["/login"];
|
|
2932
|
-
pt.beforeEach(async (t, r,
|
|
2936
|
+
pt.beforeEach(async (t, r, u) => {
|
|
2933
2937
|
const s = ue();
|
|
2934
2938
|
if (s.initTheme(), ot())
|
|
2935
2939
|
if (t.path === "/login")
|
|
2936
|
-
|
|
2940
|
+
u({ path: "/" });
|
|
2937
2941
|
else {
|
|
2938
|
-
const
|
|
2939
|
-
|
|
2942
|
+
const o = le();
|
|
2943
|
+
o.isLoggedIn || (o.setUserInfo({
|
|
2940
2944
|
appId: Fe(),
|
|
2941
2945
|
userId: "1",
|
|
2942
2946
|
userName: "管理员",
|
|
@@ -2945,10 +2949,10 @@ pt.beforeEach(async (t, r, d) => {
|
|
|
2945
2949
|
mobilePhone: "13800138000",
|
|
2946
2950
|
positionName: "管理员",
|
|
2947
2951
|
avatar: ""
|
|
2948
|
-
}), de().setMenuList(
|
|
2952
|
+
}), de().setMenuList(In)), t.name && t.meta.keepAlive && s.addCachedView(t.name), u();
|
|
2949
2953
|
}
|
|
2950
2954
|
else
|
|
2951
|
-
Un.includes(t.path) ?
|
|
2955
|
+
Un.includes(t.path) ? u() : u("/login");
|
|
2952
2956
|
});
|
|
2953
2957
|
function nl() {
|
|
2954
2958
|
const t = He({
|
|
@@ -2958,7 +2962,7 @@ function nl() {
|
|
|
2958
2962
|
pt.matcher = t.matcher;
|
|
2959
2963
|
}
|
|
2960
2964
|
function ll(t, r = {}) {
|
|
2961
|
-
const
|
|
2965
|
+
const u = r.indexPath || "/dashboard", s = r.logoSrc || "/vite.svg", o = {
|
|
2962
2966
|
path: "/:pathMatch(.*)*",
|
|
2963
2967
|
name: "CatchAll",
|
|
2964
2968
|
component: () => Promise.resolve().then(() => ut),
|
|
@@ -2975,14 +2979,14 @@ function ll(t, r = {}) {
|
|
|
2975
2979
|
return Ct(ct, { logoSrc: s });
|
|
2976
2980
|
}
|
|
2977
2981
|
}),
|
|
2978
|
-
redirect:
|
|
2979
|
-
children: [...t,
|
|
2982
|
+
redirect: u,
|
|
2983
|
+
children: [...t, o]
|
|
2980
2984
|
};
|
|
2981
2985
|
}
|
|
2982
2986
|
function rl(t, r = {}) {
|
|
2983
|
-
const
|
|
2987
|
+
const u = r.base || ht();
|
|
2984
2988
|
return He({
|
|
2985
|
-
history: Ye(
|
|
2989
|
+
history: Ye(u),
|
|
2986
2990
|
routes: t,
|
|
2987
2991
|
scrollBehavior: () => ({ left: 0, top: 0 })
|
|
2988
2992
|
});
|
|
@@ -2990,13 +2994,13 @@ function rl(t, r = {}) {
|
|
|
2990
2994
|
const zn = ["login", "404", "403", "/login", "/404", "/403"];
|
|
2991
2995
|
function Tn(t, r) {
|
|
2992
2996
|
if (r.includes(t)) return !0;
|
|
2993
|
-
const
|
|
2994
|
-
return r.includes(
|
|
2997
|
+
const u = t.startsWith("/") ? t.slice(1) : t;
|
|
2998
|
+
return r.includes(u);
|
|
2995
2999
|
}
|
|
2996
3000
|
function il(t, r = {}) {
|
|
2997
|
-
const
|
|
2998
|
-
t.beforeEach(async (s,
|
|
2999
|
-
const h = ue(), v = le(),
|
|
3001
|
+
const u = r.whiteList || zn;
|
|
3002
|
+
t.beforeEach(async (s, o, i) => {
|
|
3003
|
+
const h = ue(), v = le(), d = de(), f = h.loginPath || r.loginPath || "/login";
|
|
3000
3004
|
if (h.initTheme(), st())
|
|
3001
3005
|
if (s.path === f || s.name === "Login")
|
|
3002
3006
|
i({ name: "Dashboard" });
|
|
@@ -3005,25 +3009,25 @@ function il(t, r = {}) {
|
|
|
3005
3009
|
else
|
|
3006
3010
|
try {
|
|
3007
3011
|
if (r.fetchUserInfo) {
|
|
3008
|
-
const
|
|
3009
|
-
v.setUserInfo(
|
|
3012
|
+
const g = await r.fetchUserInfo();
|
|
3013
|
+
v.setUserInfo(g);
|
|
3010
3014
|
} else {
|
|
3011
|
-
const
|
|
3012
|
-
v.setUserInfo(
|
|
3015
|
+
const g = await _t();
|
|
3016
|
+
v.setUserInfo(g);
|
|
3013
3017
|
}
|
|
3014
3018
|
if (r.fetchMenu) {
|
|
3015
|
-
const
|
|
3016
|
-
|
|
3019
|
+
const g = await r.fetchMenu();
|
|
3020
|
+
d.setMenuList(g);
|
|
3017
3021
|
} else {
|
|
3018
|
-
const
|
|
3019
|
-
|
|
3022
|
+
const g = await ft(r.appId);
|
|
3023
|
+
d.setMenuList(g);
|
|
3020
3024
|
}
|
|
3021
3025
|
r.onLoginSuccess && r.onLoginSuccess(), s.name && s.meta.keepAlive && h.addCachedView(s.name), i({ ...s, replace: !0 });
|
|
3022
|
-
} catch (
|
|
3023
|
-
console.error("获取用户信息失败:",
|
|
3026
|
+
} catch (g) {
|
|
3027
|
+
console.error("获取用户信息失败:", g), v.clearUserInfo(), d.clearMenu(), at(), i({ name: "Login", query: { redirect: s.fullPath } });
|
|
3024
3028
|
}
|
|
3025
3029
|
else
|
|
3026
|
-
Tn(s.path,
|
|
3030
|
+
Tn(s.path, u) || s.name === "Login" || s.name === "NotFound" || s.name === "Forbidden" ? i() : i({ name: "Login", query: { redirect: s.fullPath } });
|
|
3027
3031
|
}), t.afterEach(() => {
|
|
3028
3032
|
});
|
|
3029
3033
|
}
|
|
@@ -3085,12 +3089,12 @@ const cl = {
|
|
|
3085
3089
|
], hl = {
|
|
3086
3090
|
mounted(t, r) {
|
|
3087
3091
|
var h, v;
|
|
3088
|
-
const
|
|
3089
|
-
if (!
|
|
3092
|
+
const u = le(), s = de();
|
|
3093
|
+
if (!u.isLoggedIn) {
|
|
3090
3094
|
(h = t.parentNode) == null || h.removeChild(t);
|
|
3091
3095
|
return;
|
|
3092
3096
|
}
|
|
3093
|
-
const
|
|
3097
|
+
const o = r.value, i = Array.isArray(o) ? o : [o];
|
|
3094
3098
|
s.hasPermission(i) || (v = t.parentNode) == null || v.removeChild(t);
|
|
3095
3099
|
}
|
|
3096
3100
|
};
|
|
@@ -3102,11 +3106,11 @@ async function _l(t) {
|
|
|
3102
3106
|
clientId: t.clientId,
|
|
3103
3107
|
apiBaseUrl: r || t.apiBaseUrl,
|
|
3104
3108
|
basePath: t.basePath
|
|
3105
|
-
}), t.basePath && wt(t.basePath), Promise.resolve().then(() => Tt).then(({ useAppStore:
|
|
3106
|
-
const s =
|
|
3109
|
+
}), t.basePath && wt(t.basePath), Promise.resolve().then(() => Tt).then(({ useAppStore: u }) => {
|
|
3110
|
+
const s = u();
|
|
3107
3111
|
t.appName && s.setAppName(t.appName), t.indexPath && s.setIndexPath(t.indexPath), t.loginPath && s.setLoginPath(t.loginPath);
|
|
3108
|
-
}), t.locale && Promise.resolve().then(() =>
|
|
3109
|
-
|
|
3112
|
+
}), t.locale && Promise.resolve().then(() => Nn).then(({ useLocaleStore: u }) => {
|
|
3113
|
+
u().changeLocale(t.locale);
|
|
3110
3114
|
}), {
|
|
3111
3115
|
config: {
|
|
3112
3116
|
appName: t.appName || "XTO App",
|
|
@@ -3157,7 +3161,7 @@ export {
|
|
|
3157
3161
|
sl as q,
|
|
3158
3162
|
ol as r,
|
|
3159
3163
|
mt as s,
|
|
3160
|
-
|
|
3164
|
+
In as t,
|
|
3161
3165
|
hl as u,
|
|
3162
3166
|
nl as v,
|
|
3163
3167
|
pt as w,
|