xto-fronted 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-BO31bICK.js → index-D73_-C9m.js} +2 -2
- package/dist/index-DBjV4kzh.js +249 -0
- package/dist/{index-k2XmHxrU.js → index-DJ1oHe08.js} +988 -933
- package/dist/{index-DkG24eV5.js → index-D_TGEwDg.js} +190 -138
- package/dist/{index-QdDB_2uu.js → index-DauAWAHG.js} +11 -11
- package/dist/index.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +9 -9
- package/src/App.vue +1 -1
- package/src/assets/styles/_dark.scss +31 -31
- package/src/assets/styles/_reset.scss +4 -4
- package/src/assets/styles/_root.scss +87 -83
- package/src/assets/styles/_variables.scss +5 -5
- package/src/assets/styles/index.scss +11 -11
- package/src/components/Layout/Header.vue +21 -22
- package/src/components/Layout/MixTopMenu.vue +19 -20
- package/src/components/Layout/Sidebar.vue +2 -2
- package/src/components/Layout/SidebarMenuItem.vue +2 -2
- package/src/components/Layout/Tabs.vue +3 -3
- package/src/components/Layout/TopMenu.vue +19 -20
- package/src/stores/app.ts +28 -4
- package/src/views/dashboard/index.vue +109 -88
- package/src/views/error/404.vue +7 -7
- package/src/views/login/index.vue +11 -44
- package/src/views/system/menu/index.vue +14 -14
- package/src/views/system/role/index.vue +2 -2
- package/src/views/system/user/index.vue +3 -3
- package/vite.config.ts +4 -1
- package/dist/index-D4K3OfZa.js +0 -189
|
@@ -1,53 +1,72 @@
|
|
|
1
|
-
import { x as
|
|
2
|
-
import { ref as y, computed as
|
|
1
|
+
import { x as E, y as Ie, z as ot, A as at, B as nt, C as lt, o as ht, D as rt, E as _t, i as Qe, m as ft, F as gt, G as et, H as yt, I as bt, J as kt } from "./user-77I_qZ8j.js";
|
|
2
|
+
import { ref as y, computed as w, watch as xe, defineComponent as le, resolveComponent as it, openBlock as a, createBlock as B, unref as l, withCtx as M, createElementBlock as c, Fragment as K, renderList as Z, createElementVNode as e, toDisplayString as x, createCommentVNode as T, normalizeClass as Q, withDirectives as Pe, vShow as wt, createVNode as b, createTextVNode as ye, onMounted as Ke, onUnmounted as je, vModelText as We, Transition as Ce, withModifiers as Te, normalizeStyle as Ne, reactive as qe, createStaticVNode as ze, withKeys as xt, h as Ct } from "vue";
|
|
3
3
|
import { defineStore as Ee } from "pinia";
|
|
4
|
-
import { useRoute as
|
|
4
|
+
import { useRoute as Le, useRouter as he, 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
|
-
import { Icon as U, Button as
|
|
6
|
+
import { Icon as U, Button as $e } from "@xto/base";
|
|
7
7
|
import { Drawer as Xe, Message as Mt } from "@xto/feedback";
|
|
8
|
-
import { Form as St, FormItem as
|
|
8
|
+
import { Form as St, FormItem as Fe, Input as tt, Checkbox as Nt } from "@xto/form";
|
|
9
9
|
import { createLocaleProvider as It, getSupportedLocales as Et, useLocale as Ut } from "@xto/core/locale";
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
function zt(t) {
|
|
11
|
+
const n = /^#?([0-9a-f]{6})$/i.exec(t.trim());
|
|
12
|
+
if (!n) return null;
|
|
13
|
+
const u = parseInt(n[1], 16);
|
|
14
|
+
return [u >> 16 & 255, u >> 8 & 255, u & 255];
|
|
15
|
+
}
|
|
16
|
+
const pe = Ee("app", () => {
|
|
17
|
+
const t = y(E.get("appName") || "XTO App"), n = y(E.get("indexPath") || "/dashboard"), u = y(E.get("loginPath") || "/login"), s = y(E.get("isDark") || !1), o = y(E.get("theme") || "light"), i = y(E.get("layout") || "sidebar"), h = y(E.get("isCollapsed") || !1), v = y(E.get("showTabs") ?? !0), d = y(E.get("showFooter") ?? !0), g = y(E.get("showBreadcrumb") ?? !0), _ = y(E.get("primaryColor") || "#4F46E5"), f = y([]), m = y([]), j = w(() => s.value ? "dark" : "light"), D = (N) => {
|
|
18
|
+
t.value = N, E.set("appName", N);
|
|
19
|
+
}, W = (N) => {
|
|
20
|
+
n.value = N, E.set("indexPath", N);
|
|
21
|
+
}, A = (N) => {
|
|
22
|
+
u.value = N, E.set("loginPath", N);
|
|
17
23
|
}, V = () => {
|
|
18
|
-
s.value = !s.value, o.value = s.value ? "dark" : "light",
|
|
19
|
-
},
|
|
20
|
-
o.value =
|
|
21
|
-
}, Z = () => {
|
|
22
|
-
const E = document.documentElement;
|
|
23
|
-
s.value ? E.classList.add("dark") : E.classList.remove("dark"), I.set("isDark", s.value), I.set("theme", o.value);
|
|
24
|
-
}, Y = () => {
|
|
25
|
-
h.value = !h.value, I.set("isCollapsed", h.value);
|
|
26
|
-
}, q = (E) => {
|
|
27
|
-
i.value = E, I.set("layout", E);
|
|
24
|
+
s.value = !s.value, o.value = s.value ? "dark" : "light", ee();
|
|
25
|
+
}, G = (N) => {
|
|
26
|
+
o.value = N, s.value = N === "dark", ee();
|
|
28
27
|
}, ee = () => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
28
|
+
const N = document.documentElement;
|
|
29
|
+
s.value ? N.classList.add("dark") : N.classList.remove("dark"), E.set("isDark", s.value), E.set("theme", o.value);
|
|
30
|
+
}, X = () => {
|
|
31
|
+
h.value = !h.value, E.set("isCollapsed", h.value);
|
|
32
|
+
}, q = (N) => {
|
|
33
|
+
i.value = N, E.set("layout", N);
|
|
34
|
+
}, oe = () => {
|
|
35
|
+
v.value = !v.value, E.set("showTabs", v.value);
|
|
36
|
+
}, P = () => {
|
|
37
|
+
d.value = !d.value, E.set("showFooter", d.value);
|
|
38
|
+
}, I = () => {
|
|
39
|
+
g.value = !g.value, E.set("showBreadcrumb", g.value);
|
|
40
|
+
}, F = (N) => {
|
|
41
|
+
_.value = N;
|
|
42
|
+
const H = document.documentElement;
|
|
43
|
+
H.style.setProperty("--xto-color-primary", N);
|
|
44
|
+
const de = zt(N);
|
|
45
|
+
if (de) {
|
|
46
|
+
const te = (Y, me) => {
|
|
47
|
+
const fe = me ? [255, 255, 255] : [0, 0, 0];
|
|
48
|
+
return `#${de.map((ce, ge) => Math.round(ce + (fe[ge] - ce) * Y)).map((ce) => ce.toString(16).padStart(2, "0")).join("")}`;
|
|
49
|
+
};
|
|
50
|
+
for (let Y = 1; Y <= 9; Y++)
|
|
51
|
+
H.style.setProperty(`--xto-color-primary-light-${Y}`, te(Y * 0.1, !0));
|
|
52
|
+
H.style.setProperty("--xto-color-primary-dark-1", te(0.12, !1)), H.style.setProperty("--xto-color-primary-dark-2", te(0.28, !1)), H.style.setProperty("--xto-color-primary-dark-3", te(0.45, !1)), H.style.setProperty("--xto-color-ring", N);
|
|
53
|
+
}
|
|
54
|
+
E.set("primaryColor", N);
|
|
55
|
+
}, J = (N) => {
|
|
56
|
+
f.value.includes(N) || f.value.push(N);
|
|
57
|
+
}, R = (N) => {
|
|
58
|
+
const H = f.value.indexOf(N);
|
|
59
|
+
H > -1 && f.value.splice(H, 1);
|
|
60
|
+
}, ne = () => {
|
|
42
61
|
f.value = [];
|
|
43
|
-
},
|
|
44
|
-
m.value =
|
|
45
|
-
},
|
|
46
|
-
|
|
62
|
+
}, ue = (N) => {
|
|
63
|
+
m.value = N;
|
|
64
|
+
}, _e = () => {
|
|
65
|
+
ee(), _.value !== "#4F46E5" && document.documentElement.style.setProperty("--xto-color-primary", _.value);
|
|
47
66
|
};
|
|
48
|
-
return
|
|
67
|
+
return xe(s, ee), {
|
|
49
68
|
appName: t,
|
|
50
|
-
indexPath:
|
|
69
|
+
indexPath: n,
|
|
51
70
|
loginPath: u,
|
|
52
71
|
isDark: s,
|
|
53
72
|
theme: o,
|
|
@@ -62,25 +81,25 @@ const ue = Ee("app", () => {
|
|
|
62
81
|
themeClass: j,
|
|
63
82
|
setAppName: D,
|
|
64
83
|
setIndexPath: W,
|
|
65
|
-
setLoginPath:
|
|
84
|
+
setLoginPath: A,
|
|
66
85
|
toggleTheme: V,
|
|
67
|
-
toggleCollapse:
|
|
68
|
-
setTheme:
|
|
86
|
+
toggleCollapse: X,
|
|
87
|
+
setTheme: G,
|
|
69
88
|
setLayout: q,
|
|
70
|
-
toggleTabs:
|
|
71
|
-
toggleFooter:
|
|
72
|
-
toggleBreadcrumb:
|
|
73
|
-
setPrimaryColor:
|
|
74
|
-
addCachedView:
|
|
89
|
+
toggleTabs: oe,
|
|
90
|
+
toggleFooter: P,
|
|
91
|
+
toggleBreadcrumb: I,
|
|
92
|
+
setPrimaryColor: F,
|
|
93
|
+
addCachedView: J,
|
|
75
94
|
removeCachedView: R,
|
|
76
|
-
clearCachedViews:
|
|
77
|
-
setMixSubMenus:
|
|
78
|
-
initTheme:
|
|
95
|
+
clearCachedViews: ne,
|
|
96
|
+
setMixSubMenus: ue,
|
|
97
|
+
initTheme: _e
|
|
79
98
|
};
|
|
80
|
-
}),
|
|
99
|
+
}), Pt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81
100
|
__proto__: null,
|
|
82
|
-
useAppStore:
|
|
83
|
-
}, Symbol.toStringTag, { value: "Module" })), Tt = "menu_list",
|
|
101
|
+
useAppStore: pe
|
|
102
|
+
}, Symbol.toStringTag, { value: "Module" })), Tt = "menu_list", Ft = "permission_list", De = () => `${Tt}_${Ie()}`, Ae = () => `${Ft}_${Ie()}`, Dt = {
|
|
84
103
|
menuCode: "home",
|
|
85
104
|
menuName: "首页",
|
|
86
105
|
menuUrl: "/dashboard",
|
|
@@ -90,65 +109,65 @@ const ue = Ee("app", () => {
|
|
|
90
109
|
isOut: !1
|
|
91
110
|
};
|
|
92
111
|
function ct(t) {
|
|
93
|
-
return t.filter((
|
|
94
|
-
...
|
|
95
|
-
children:
|
|
112
|
+
return t.filter((n) => n.type !== 1).map((n) => ({
|
|
113
|
+
...n,
|
|
114
|
+
children: n.children ? ct(n.children) : void 0
|
|
96
115
|
}));
|
|
97
116
|
}
|
|
98
|
-
function
|
|
99
|
-
const
|
|
117
|
+
function At(t) {
|
|
118
|
+
const n = [];
|
|
100
119
|
function u(s) {
|
|
101
120
|
s.forEach((o) => {
|
|
102
|
-
o.type === 1 && o.menuCode &&
|
|
121
|
+
o.type === 1 && o.menuCode && n.push(o.menuCode), o.children && u(o.children);
|
|
103
122
|
});
|
|
104
123
|
}
|
|
105
|
-
return u(t),
|
|
124
|
+
return u(t), n;
|
|
106
125
|
}
|
|
107
|
-
const
|
|
108
|
-
const t = y(
|
|
126
|
+
const ve = Ee("menu", () => {
|
|
127
|
+
const t = y(E.get(De()) || []), n = y(E.get(Ae()) || []), u = w(() => t.value.length > 0);
|
|
109
128
|
return {
|
|
110
129
|
menuList: t,
|
|
111
|
-
permissions:
|
|
130
|
+
permissions: n,
|
|
112
131
|
hasMenu: u,
|
|
113
132
|
setMenuList: (h) => {
|
|
114
|
-
|
|
133
|
+
n.value = At(h), E.set(Ae(), n.value);
|
|
115
134
|
const v = ct(h);
|
|
116
|
-
t.value = [
|
|
135
|
+
t.value = [Dt, ...v], E.set(De(), t.value);
|
|
117
136
|
},
|
|
118
137
|
clearMenu: () => {
|
|
119
|
-
t.value = [],
|
|
138
|
+
t.value = [], n.value = [], E.remove(De()), E.remove(Ae());
|
|
120
139
|
},
|
|
121
|
-
hasPermission: (h) => Array.isArray(h) ? h.some((v) =>
|
|
140
|
+
hasPermission: (h) => Array.isArray(h) ? h.some((v) => n.value.includes(v)) : n.value.includes(h)
|
|
122
141
|
};
|
|
123
|
-
}), Be = "user_info",
|
|
124
|
-
const t = y(
|
|
142
|
+
}), Be = "user_info", re = Ee("user", () => {
|
|
143
|
+
const t = y(E.get(Be)), n = w(() => !!t.value), u = w(() => {
|
|
125
144
|
var m;
|
|
126
145
|
return ((m = t.value) == null ? void 0 : m.userId) || "";
|
|
127
|
-
}), s =
|
|
146
|
+
}), s = w(() => {
|
|
128
147
|
var m;
|
|
129
148
|
return ((m = t.value) == null ? void 0 : m.userName) || "";
|
|
130
|
-
}), o =
|
|
149
|
+
}), o = w(() => {
|
|
131
150
|
var m;
|
|
132
151
|
return ((m = t.value) == null ? void 0 : m.departmentName) || "";
|
|
133
|
-
}), i =
|
|
152
|
+
}), i = w(() => {
|
|
134
153
|
var m;
|
|
135
154
|
return ((m = t.value) == null ? void 0 : m.roleName) || "";
|
|
136
|
-
}), h =
|
|
155
|
+
}), h = w(() => {
|
|
137
156
|
var m;
|
|
138
157
|
return ((m = t.value) == null ? void 0 : m.email) || "";
|
|
139
|
-
}), v =
|
|
158
|
+
}), v = w(() => {
|
|
140
159
|
var m;
|
|
141
160
|
return ((m = t.value) == null ? void 0 : m.mobilePhone) || "";
|
|
142
|
-
}), d =
|
|
161
|
+
}), d = w(() => {
|
|
143
162
|
var m;
|
|
144
163
|
return ((m = t.value) == null ? void 0 : m.positionName) || "";
|
|
145
|
-
}), g =
|
|
164
|
+
}), g = w(() => {
|
|
146
165
|
var m;
|
|
147
166
|
return ((m = t.value) == null ? void 0 : m.avatar) || "";
|
|
148
167
|
});
|
|
149
168
|
return {
|
|
150
169
|
userInfo: t,
|
|
151
|
-
isLoggedIn:
|
|
170
|
+
isLoggedIn: n,
|
|
152
171
|
userId: u,
|
|
153
172
|
userName: s,
|
|
154
173
|
departmentName: o,
|
|
@@ -158,17 +177,17 @@ const de = Ee("menu", () => {
|
|
|
158
177
|
positionName: d,
|
|
159
178
|
avatar: g,
|
|
160
179
|
setUserInfo: (m) => {
|
|
161
|
-
t.value = m,
|
|
180
|
+
t.value = m, E.set(Be, m);
|
|
162
181
|
},
|
|
163
182
|
clearUserInfo: () => {
|
|
164
|
-
t.value = null,
|
|
183
|
+
t.value = null, E.remove(Be);
|
|
165
184
|
}
|
|
166
185
|
};
|
|
167
186
|
}), Ue = Ee("auth", () => {
|
|
168
|
-
const t = y(ot()),
|
|
187
|
+
const t = y(ot()), n = w(() => at()), u = y(""), s = y(""), o = y(""), i = y("/login");
|
|
169
188
|
return {
|
|
170
189
|
token: t,
|
|
171
|
-
isLoggedIn:
|
|
190
|
+
isLoggedIn: n,
|
|
172
191
|
baseUrl: u,
|
|
173
192
|
appId: s,
|
|
174
193
|
clientId: o,
|
|
@@ -192,22 +211,22 @@ const de = Ee("menu", () => {
|
|
|
192
211
|
i.value = m;
|
|
193
212
|
}
|
|
194
213
|
};
|
|
195
|
-
}),
|
|
214
|
+
}), Bt = { class: "menu-item__content" }, Vt = { class: "menu-item__icon" }, Ot = {
|
|
196
215
|
key: 1,
|
|
197
216
|
class: "menu-item__char"
|
|
198
|
-
},
|
|
217
|
+
}, Rt = { class: "menu-item__text" }, Kt = { class: "menu-item__content" }, jt = {
|
|
199
218
|
key: 0,
|
|
200
219
|
class: "menu-item__icon"
|
|
201
|
-
},
|
|
220
|
+
}, Wt = {
|
|
202
221
|
key: 1,
|
|
203
222
|
class: "menu-item__char"
|
|
204
|
-
},
|
|
223
|
+
}, qt = { class: "menu-item__text" }, Ht = /* @__PURE__ */ le({
|
|
205
224
|
__name: "SidebarMenuItem",
|
|
206
225
|
props: {
|
|
207
226
|
menu: {}
|
|
208
227
|
},
|
|
209
228
|
setup(t) {
|
|
210
|
-
const
|
|
229
|
+
const n = t, u = /* @__PURE__ */ new Set([
|
|
211
230
|
"arrow-up",
|
|
212
231
|
"arrow-down",
|
|
213
232
|
"arrow-left",
|
|
@@ -346,64 +365,64 @@ const de = Ee("menu", () => {
|
|
|
346
365
|
list: "list",
|
|
347
366
|
grid: "grid"
|
|
348
367
|
}[d] || d;
|
|
349
|
-
}, o = (d) => d ? d.charAt(0) : "", i = (d) => u.has(d), h =
|
|
368
|
+
}, o = (d) => d ? d.charAt(0) : "", i = (d) => u.has(d), h = w(() => n.menu.menuId || n.menu.menuCode || n.menu.menuUrl || ""), v = w(() => n.menu.children && n.menu.children.length > 0);
|
|
350
369
|
return (d, g) => {
|
|
351
370
|
const _ = it("SidebarMenuItem", !0);
|
|
352
|
-
return v.value ? (a(), B(
|
|
371
|
+
return v.value ? (a(), B(l(Re), {
|
|
353
372
|
key: 0,
|
|
354
373
|
index: h.value
|
|
355
374
|
}, {
|
|
356
375
|
title: M(() => [
|
|
357
|
-
e("span",
|
|
358
|
-
e("span",
|
|
359
|
-
i(s(t.menu.icon)) ? (a(), B(
|
|
376
|
+
e("span", Bt, [
|
|
377
|
+
e("span", Vt, [
|
|
378
|
+
i(s(t.menu.icon)) ? (a(), B(l(U), {
|
|
360
379
|
key: 0,
|
|
361
380
|
name: s(t.menu.icon),
|
|
362
381
|
size: 16
|
|
363
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
382
|
+
}, null, 8, ["name"])) : (a(), c("span", Ot, x(o(t.menu.menuName)), 1))
|
|
364
383
|
]),
|
|
365
|
-
e("span",
|
|
384
|
+
e("span", Rt, x(t.menu.menuName), 1)
|
|
366
385
|
])
|
|
367
386
|
]),
|
|
368
387
|
default: M(() => [
|
|
369
|
-
(a(!0), c(K, null,
|
|
388
|
+
(a(!0), c(K, null, Z(t.menu.children, (f) => (a(), B(_, {
|
|
370
389
|
key: f.menuId || f.menuCode || f.menuUrl,
|
|
371
390
|
menu: f
|
|
372
391
|
}, null, 8, ["menu"]))), 128))
|
|
373
392
|
]),
|
|
374
393
|
_: 1
|
|
375
|
-
}, 8, ["index"])) : (a(), B(
|
|
394
|
+
}, 8, ["index"])) : (a(), B(l(Se), {
|
|
376
395
|
key: 1,
|
|
377
396
|
index: t.menu.menuUrl || h.value
|
|
378
397
|
}, {
|
|
379
398
|
default: M(() => [
|
|
380
|
-
e("span",
|
|
381
|
-
t.menu.menuName !== "首页" ? (a(), c("span",
|
|
382
|
-
i(s(t.menu.icon)) ? (a(), B(
|
|
399
|
+
e("span", Kt, [
|
|
400
|
+
t.menu.menuName !== "首页" ? (a(), c("span", jt, [
|
|
401
|
+
i(s(t.menu.icon)) ? (a(), B(l(U), {
|
|
383
402
|
key: 0,
|
|
384
403
|
name: s(t.menu.icon),
|
|
385
404
|
size: 16
|
|
386
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
387
|
-
])) :
|
|
388
|
-
e("span",
|
|
405
|
+
}, null, 8, ["name"])) : (a(), c("span", Wt, x(o(t.menu.menuName)), 1))
|
|
406
|
+
])) : T("", !0),
|
|
407
|
+
e("span", qt, x(t.menu.menuName), 1)
|
|
389
408
|
])
|
|
390
409
|
]),
|
|
391
410
|
_: 1
|
|
392
411
|
}, 8, ["index"]));
|
|
393
412
|
};
|
|
394
413
|
}
|
|
395
|
-
}),
|
|
414
|
+
}), ie = (t, n) => {
|
|
396
415
|
const u = t.__vccOpts || t;
|
|
397
|
-
for (const [s, o] of
|
|
416
|
+
for (const [s, o] of n)
|
|
398
417
|
u[s] = o;
|
|
399
418
|
return u;
|
|
400
|
-
},
|
|
419
|
+
}, Yt = /* @__PURE__ */ ie(Ht, [["__scopeId", "data-v-03a4d35c"]]), Gt = {
|
|
401
420
|
key: 0,
|
|
402
421
|
class: "sidebar__logo"
|
|
403
|
-
},
|
|
422
|
+
}, Xt = ["src"], Jt = {
|
|
404
423
|
key: 1,
|
|
405
424
|
class: "sidebar__user"
|
|
406
|
-
},
|
|
425
|
+
}, Zt = { class: "sidebar__user-info" }, Qt = { class: "sidebar__user-name" }, es = { class: "sidebar__user-role" }, Ve = "sidebar_opened_menus", Oe = "sidebar_menu_list_key", ts = /* @__PURE__ */ le({
|
|
407
426
|
__name: "Sidebar",
|
|
408
427
|
props: {
|
|
409
428
|
menuList: { default: () => [] },
|
|
@@ -412,150 +431,149 @@ const de = Ee("menu", () => {
|
|
|
412
431
|
logoSrc: { default: "/vite.svg" }
|
|
413
432
|
},
|
|
414
433
|
setup(t) {
|
|
415
|
-
const
|
|
416
|
-
|
|
417
|
-
|
|
434
|
+
const n = t, u = Le(), s = he(), o = ve(), i = re(), h = Ue(), v = pe(), d = w(() => n.menuList.length > 0 ? n.menuList : o.menuList), g = w(() => v.isCollapsed), _ = w(() => u.path), f = (P) => P.menuId || P.menuCode || P.menuUrl || "", m = () => d.value.map(f).join(","), j = E.get(Oe) || "", D = m(), W = j === D ? E.get(Ve) || [] : [], A = y(W);
|
|
435
|
+
xe(A, (P) => {
|
|
436
|
+
E.set(Ve, P), E.set(Oe, m());
|
|
418
437
|
}, { deep: !0 });
|
|
419
|
-
const V = (
|
|
420
|
-
var
|
|
421
|
-
for (const R of
|
|
422
|
-
if (R.menuUrl && (
|
|
423
|
-
return [...
|
|
424
|
-
if ((
|
|
425
|
-
const
|
|
426
|
-
if (
|
|
438
|
+
const V = (P, I, F = []) => {
|
|
439
|
+
var J;
|
|
440
|
+
for (const R of P) {
|
|
441
|
+
if (R.menuUrl && (I === R.menuUrl || I.startsWith(R.menuUrl + "/")))
|
|
442
|
+
return [...F, f(R)];
|
|
443
|
+
if ((J = R.children) != null && J.length) {
|
|
444
|
+
const ne = V(R.children, I, [...F, f(R)]);
|
|
445
|
+
if (ne) return ne;
|
|
427
446
|
}
|
|
428
447
|
}
|
|
429
448
|
return null;
|
|
430
449
|
};
|
|
431
|
-
|
|
432
|
-
if (
|
|
433
|
-
const
|
|
434
|
-
if (
|
|
435
|
-
const
|
|
436
|
-
|
|
450
|
+
xe([() => u.path, d], ([P, I]) => {
|
|
451
|
+
if (I.length > 0) {
|
|
452
|
+
const F = V(I, P);
|
|
453
|
+
if (F) {
|
|
454
|
+
const J = F.slice(0, -1), R = /* @__PURE__ */ new Set([...A.value, ...J]);
|
|
455
|
+
A.value = Array.from(R);
|
|
437
456
|
}
|
|
438
457
|
}
|
|
439
|
-
}, { immediate: !0 }),
|
|
440
|
-
|
|
458
|
+
}, { immediate: !0 }), xe(d, (P, I) => {
|
|
459
|
+
P !== I && (A.value = [], E.set(Ve, []), E.set(Oe, m()));
|
|
441
460
|
}, { immediate: !1 });
|
|
442
|
-
const
|
|
443
|
-
|
|
444
|
-
},
|
|
461
|
+
const G = w(() => v.isDark ? "#161B21" : "#fff"), ee = w(() => v.isDark ? "#D9DCE1" : "#4E5566"), X = w(() => v.isDark ? "#818CF8" : "#4F46E5"), q = (P) => {
|
|
462
|
+
P && P !== u.path && s.push(P);
|
|
463
|
+
}, oe = () => {
|
|
445
464
|
h.logout(), i.clearUserInfo(), o.clearMenu(), s.push(v.loginPath);
|
|
446
465
|
};
|
|
447
|
-
return (
|
|
448
|
-
class:
|
|
466
|
+
return (P, I) => (a(), c("div", {
|
|
467
|
+
class: Q(["sidebar", { "sidebar--collapsed": g.value }])
|
|
449
468
|
}, [
|
|
450
|
-
|
|
469
|
+
n.showLogo ? (a(), c("div", Gt, [
|
|
451
470
|
e("img", {
|
|
452
|
-
src:
|
|
471
|
+
src: n.logoSrc,
|
|
453
472
|
alt: "Logo",
|
|
454
473
|
class: "sidebar__logo-img"
|
|
455
|
-
}, null, 8,
|
|
456
|
-
|
|
457
|
-
[
|
|
474
|
+
}, null, 8, Xt),
|
|
475
|
+
Pe(e("span", { class: "sidebar__logo-text" }, x(l(v).appName), 513), [
|
|
476
|
+
[wt, !g.value]
|
|
458
477
|
])
|
|
459
|
-
])) :
|
|
460
|
-
|
|
478
|
+
])) : T("", !0),
|
|
479
|
+
b(l(Ge), {
|
|
461
480
|
modelValue: _.value,
|
|
462
|
-
"onUpdate:modelValue":
|
|
463
|
-
openeds:
|
|
464
|
-
"onUpdate:openeds":
|
|
481
|
+
"onUpdate:modelValue": I[0] || (I[0] = (F) => _.value = F),
|
|
482
|
+
openeds: A.value,
|
|
483
|
+
"onUpdate:openeds": I[1] || (I[1] = (F) => A.value = F),
|
|
465
484
|
mode: "vertical",
|
|
466
485
|
collapse: g.value,
|
|
467
486
|
"collapse-transition": !1,
|
|
468
|
-
"background-color":
|
|
469
|
-
"text-color":
|
|
470
|
-
"active-text-color":
|
|
487
|
+
"background-color": G.value,
|
|
488
|
+
"text-color": ee.value,
|
|
489
|
+
"active-text-color": X.value,
|
|
471
490
|
class: "sidebar__menu",
|
|
472
491
|
onSelect: q
|
|
473
492
|
}, {
|
|
474
493
|
default: M(() => [
|
|
475
|
-
(a(!0), c(K, null,
|
|
476
|
-
key: f(
|
|
477
|
-
menu:
|
|
494
|
+
(a(!0), c(K, null, Z(d.value, (F) => (a(), B(Yt, {
|
|
495
|
+
key: f(F),
|
|
496
|
+
menu: F
|
|
478
497
|
}, null, 8, ["menu"]))), 128))
|
|
479
498
|
]),
|
|
480
499
|
_: 1
|
|
481
500
|
}, 8, ["modelValue", "openeds", "collapse", "background-color", "text-color", "active-text-color"]),
|
|
482
|
-
|
|
483
|
-
e("div",
|
|
484
|
-
e("span",
|
|
485
|
-
e("span",
|
|
501
|
+
n.showUser && !g.value ? (a(), c("div", Jt, [
|
|
502
|
+
e("div", Zt, [
|
|
503
|
+
e("span", Qt, x(l(i).userName), 1),
|
|
504
|
+
e("span", es, x(l(i).departmentName), 1)
|
|
486
505
|
]),
|
|
487
|
-
|
|
506
|
+
b(l($e), {
|
|
488
507
|
type: "text",
|
|
489
508
|
size: "small",
|
|
490
|
-
onClick:
|
|
509
|
+
onClick: oe
|
|
491
510
|
}, {
|
|
492
|
-
default: M(() => [...
|
|
493
|
-
|
|
511
|
+
default: M(() => [...I[2] || (I[2] = [
|
|
512
|
+
ye("退出", -1)
|
|
494
513
|
])]),
|
|
495
514
|
_: 1
|
|
496
515
|
})
|
|
497
|
-
])) :
|
|
516
|
+
])) : T("", !0)
|
|
498
517
|
], 2));
|
|
499
518
|
}
|
|
500
|
-
}), st = /* @__PURE__ */
|
|
519
|
+
}), st = /* @__PURE__ */ ie(ts, [["__scopeId", "data-v-7d329414"]]), ss = { class: "header" }, os = { class: "header__left" }, as = {
|
|
501
520
|
key: 0,
|
|
502
521
|
class: "header__breadcrumb"
|
|
503
|
-
},
|
|
522
|
+
}, ns = {
|
|
504
523
|
key: 0,
|
|
505
524
|
class: "breadcrumb-separator"
|
|
506
|
-
},
|
|
525
|
+
}, ls = { class: "header__right" }, rs = {
|
|
507
526
|
key: 0,
|
|
508
527
|
class: "header__search-dropdown"
|
|
509
|
-
},
|
|
528
|
+
}, is = {
|
|
510
529
|
key: 0,
|
|
511
530
|
class: "header__search-results"
|
|
512
|
-
},
|
|
531
|
+
}, cs = ["onClick"], us = {
|
|
513
532
|
key: 0,
|
|
514
533
|
class: "header__search-icon"
|
|
515
|
-
},
|
|
534
|
+
}, ds = {
|
|
516
535
|
key: 1,
|
|
517
536
|
class: "header__search-char"
|
|
518
|
-
},
|
|
537
|
+
}, ms = { class: "header__search-item-title" }, ps = {
|
|
519
538
|
key: 1,
|
|
520
539
|
class: "header__search-item-parent"
|
|
521
|
-
},
|
|
540
|
+
}, vs = {
|
|
522
541
|
key: 1,
|
|
523
542
|
class: "header__search-empty"
|
|
524
|
-
},
|
|
543
|
+
}, hs = ["title"], _s = { class: "header__avatar" }, fs = { class: "header__user-name" }, gs = {
|
|
525
544
|
key: 0,
|
|
526
545
|
class: "header__dropdown"
|
|
527
|
-
},
|
|
546
|
+
}, ys = { class: "header__dropdown-header" }, bs = { class: "header__dropdown-avatar" }, ks = { class: "header__dropdown-info" }, ws = { class: "header__dropdown-name" }, xs = { class: "header__dropdown-role" }, Cs = { class: "header__dropdown-menu" }, $s = { class: "settings-drawer" }, Ls = { class: "settings-section" }, Ms = { class: "settings-layout-options" }, Ss = ["onClick"], Ns = { class: "layout-option__preview" }, Is = {
|
|
528
547
|
key: 0,
|
|
529
548
|
class: "layout-preview-sidebar"
|
|
530
|
-
},
|
|
549
|
+
}, Es = {
|
|
531
550
|
key: 1,
|
|
532
551
|
class: "layout-preview-top"
|
|
533
|
-
},
|
|
552
|
+
}, Us = {
|
|
534
553
|
key: 2,
|
|
535
554
|
class: "layout-preview-mix"
|
|
536
|
-
},
|
|
555
|
+
}, zs = { class: "layout-option__label" }, Ps = { class: "settings-section" }, Ts = { class: "settings-color-options" }, Fs = ["title", "onClick"], Ds = { class: "settings-section" }, As = { class: "settings-switch-list" }, Bs = { class: "settings-switch-item" }, Vs = { class: "settings-switch-item" }, Os = /* @__PURE__ */ le({
|
|
537
556
|
__name: "Header",
|
|
538
557
|
setup(t) {
|
|
539
|
-
const
|
|
558
|
+
const n = Le(), u = he(), s = pe(), o = re(), i = Ue(), h = ve(), v = y(!1), d = y(!1), g = y(null), _ = y(!1), f = y(!1), m = y(""), j = y(null), D = y(!1), W = [
|
|
540
559
|
{ value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
|
|
541
560
|
{ value: "top", label: "顶部菜单", icon: "menu" },
|
|
542
561
|
{ value: "mix", label: "混合菜单", icon: "grid" }
|
|
543
|
-
],
|
|
544
|
-
{ value: "#
|
|
545
|
-
{ value: "#
|
|
546
|
-
{ value: "#
|
|
547
|
-
{ value: "#
|
|
548
|
-
{ value: "#
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
}, Z = /* @__PURE__ */ new Set([
|
|
562
|
+
], A = [
|
|
563
|
+
{ value: "#4F46E5", label: "品牌蓝" },
|
|
564
|
+
{ value: "#0F6FDE", label: "企业蓝" },
|
|
565
|
+
{ value: "#00A870", label: "翡翠绿" },
|
|
566
|
+
{ value: "#D46B08", label: "琥珀橙" },
|
|
567
|
+
{ value: "#1F2329", label: "石墨黑" }
|
|
568
|
+
], V = w(() => n.matched.filter((k) => k.meta && k.meta.title).map((k) => ({
|
|
569
|
+
title: k.meta.title,
|
|
570
|
+
path: k.path
|
|
571
|
+
}))), G = (z, k = "") => {
|
|
572
|
+
const se = [];
|
|
573
|
+
return z.forEach(($) => {
|
|
574
|
+
$.children && $.children.length > 0 ? se.push(...G($.children, $.menuName)) : se.push({ ...$, parentTitle: k, title: $.menuName, path: $.menuUrl });
|
|
575
|
+
}), se;
|
|
576
|
+
}, ee = /* @__PURE__ */ new Set([
|
|
559
577
|
"arrow-up",
|
|
560
578
|
"arrow-down",
|
|
561
579
|
"arrow-left",
|
|
@@ -657,10 +675,10 @@ const de = Ee("menu", () => {
|
|
|
657
675
|
"sun",
|
|
658
676
|
"theme",
|
|
659
677
|
"skin"
|
|
660
|
-
]),
|
|
678
|
+
]), X = (z) => {
|
|
661
679
|
if (!z || z === "") return "";
|
|
662
680
|
if (z.startsWith("tineco-icon-")) {
|
|
663
|
-
const
|
|
681
|
+
const se = z.replace("tineco-icon-", "");
|
|
664
682
|
return {
|
|
665
683
|
home: "home",
|
|
666
684
|
dashboard: "dashboard",
|
|
@@ -674,7 +692,7 @@ const de = Ee("menu", () => {
|
|
|
674
692
|
chart: "chart",
|
|
675
693
|
report: "report",
|
|
676
694
|
analytics: "analytics"
|
|
677
|
-
}[
|
|
695
|
+
}[se] || se;
|
|
678
696
|
}
|
|
679
697
|
return {
|
|
680
698
|
dashboard: "dashboard",
|
|
@@ -694,149 +712,149 @@ const de = Ee("menu", () => {
|
|
|
694
712
|
list: "list",
|
|
695
713
|
grid: "grid"
|
|
696
714
|
}[z] || z;
|
|
697
|
-
}, q = (z) => z ? z.charAt(0) : "",
|
|
698
|
-
(
|
|
699
|
-
) : []),
|
|
715
|
+
}, q = (z) => z ? z.charAt(0) : "", oe = (z) => ee.has(z), P = w(() => m.value.trim() ? G(h.menuList).filter(
|
|
716
|
+
(k) => k.title.toLowerCase().includes(m.value.toLowerCase())
|
|
717
|
+
) : []), I = w(() => s.layout), F = () => {
|
|
700
718
|
s.toggleCollapse();
|
|
701
|
-
},
|
|
719
|
+
}, J = () => {
|
|
702
720
|
s.toggleTheme();
|
|
703
721
|
}, R = () => {
|
|
704
722
|
d.value = !0;
|
|
705
|
-
},
|
|
723
|
+
}, ne = (z) => {
|
|
706
724
|
s.setLayout(z), d.value = !1;
|
|
707
|
-
},
|
|
725
|
+
}, ue = (z) => {
|
|
708
726
|
D.value = z;
|
|
709
|
-
const
|
|
710
|
-
z ?
|
|
711
|
-
},
|
|
712
|
-
|
|
713
|
-
},
|
|
727
|
+
const k = document.documentElement;
|
|
728
|
+
z ? k.classList.add("grey-mode") : k.classList.remove("grey-mode");
|
|
729
|
+
}, _e = () => {
|
|
730
|
+
ue(!D.value), d.value = !1;
|
|
731
|
+
}, N = () => {
|
|
714
732
|
s.toggleTheme(), d.value = !1;
|
|
715
|
-
},
|
|
733
|
+
}, H = () => {
|
|
716
734
|
document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
|
|
717
|
-
},
|
|
735
|
+
}, de = () => {
|
|
718
736
|
_.value = !!document.fullscreenElement;
|
|
719
|
-
},
|
|
737
|
+
}, te = () => {
|
|
720
738
|
v.value = !v.value;
|
|
721
|
-
},
|
|
739
|
+
}, Y = () => {
|
|
722
740
|
v.value = !1;
|
|
723
|
-
},
|
|
741
|
+
}, me = () => {
|
|
724
742
|
f.value = !1, m.value = "";
|
|
725
|
-
},
|
|
726
|
-
u.push(z),
|
|
727
|
-
},
|
|
743
|
+
}, fe = (z) => {
|
|
744
|
+
u.push(z), me();
|
|
745
|
+
}, be = (z) => {
|
|
728
746
|
s.setPrimaryColor(z), d.value = !1;
|
|
729
|
-
},
|
|
730
|
-
|
|
731
|
-
},
|
|
732
|
-
|
|
747
|
+
}, ce = () => {
|
|
748
|
+
Y(), u.push("/profile");
|
|
749
|
+
}, ge = () => {
|
|
750
|
+
Y(), u.push("/change-password");
|
|
733
751
|
}, Me = () => {
|
|
734
|
-
|
|
735
|
-
},
|
|
736
|
-
g.value && !g.value.contains(z.target) &&
|
|
737
|
-
},
|
|
738
|
-
z.key === "Escape" && (
|
|
752
|
+
Y(), i.logout(), o.clearUserInfo(), h.clearMenu(), u.push(s.loginPath);
|
|
753
|
+
}, ke = (z) => {
|
|
754
|
+
g.value && !g.value.contains(z.target) && Y(), j.value && !j.value.contains(z.target) && me();
|
|
755
|
+
}, we = (z) => {
|
|
756
|
+
z.key === "Escape" && (me(), Y());
|
|
739
757
|
};
|
|
740
758
|
return Ke(() => {
|
|
741
|
-
document.addEventListener("click",
|
|
759
|
+
document.addEventListener("click", ke), document.addEventListener("fullscreenchange", de), document.addEventListener("keydown", we), s.initTheme(), D.value = document.documentElement.classList.contains("grey-mode");
|
|
742
760
|
}), je(() => {
|
|
743
|
-
document.removeEventListener("click",
|
|
744
|
-
}), (z,
|
|
745
|
-
var
|
|
746
|
-
return a(), c("div",
|
|
747
|
-
e("div",
|
|
761
|
+
document.removeEventListener("click", ke), document.removeEventListener("fullscreenchange", de), document.removeEventListener("keydown", we);
|
|
762
|
+
}), (z, k) => {
|
|
763
|
+
var se;
|
|
764
|
+
return a(), c("div", ss, [
|
|
765
|
+
e("div", os, [
|
|
748
766
|
e("div", {
|
|
749
767
|
class: "header__collapse",
|
|
750
|
-
onClick:
|
|
768
|
+
onClick: F
|
|
751
769
|
}, [
|
|
752
|
-
|
|
753
|
-
name:
|
|
770
|
+
b(l(U), {
|
|
771
|
+
name: l(s).isCollapsed ? "menu-unfold" : "menu-fold",
|
|
754
772
|
size: 18
|
|
755
773
|
}, null, 8, ["name"])
|
|
756
774
|
]),
|
|
757
|
-
|
|
758
|
-
(a(!0), c(K, null,
|
|
759
|
-
key:
|
|
775
|
+
l(s).showBreadcrumb ? (a(), c("div", as, [
|
|
776
|
+
(a(!0), c(K, null, Z(V.value, ($, S) => (a(), c("span", {
|
|
777
|
+
key: $.path
|
|
760
778
|
}, [
|
|
761
|
-
S > 0 ? (a(), c("span",
|
|
779
|
+
S > 0 ? (a(), c("span", ns, "/")) : T("", !0),
|
|
762
780
|
e("span", {
|
|
763
|
-
class:
|
|
764
|
-
}, x(
|
|
781
|
+
class: Q({ "is-current": S === V.value.length - 1 })
|
|
782
|
+
}, x($.title), 3)
|
|
765
783
|
]))), 128))
|
|
766
|
-
])) :
|
|
784
|
+
])) : T("", !0)
|
|
767
785
|
]),
|
|
768
|
-
e("div",
|
|
786
|
+
e("div", ls, [
|
|
769
787
|
e("div", {
|
|
770
788
|
class: "header__search",
|
|
771
789
|
ref_key: "searchRef",
|
|
772
790
|
ref: j
|
|
773
791
|
}, [
|
|
774
|
-
|
|
792
|
+
b(l(U), {
|
|
775
793
|
name: "search",
|
|
776
794
|
size: 14,
|
|
777
795
|
class: "header__search-icon"
|
|
778
796
|
}),
|
|
779
|
-
|
|
780
|
-
"onUpdate:modelValue":
|
|
797
|
+
Pe(e("input", {
|
|
798
|
+
"onUpdate:modelValue": k[0] || (k[0] = ($) => m.value = $),
|
|
781
799
|
type: "text",
|
|
782
800
|
class: "header__search-input",
|
|
783
801
|
placeholder: "搜索菜单...",
|
|
784
|
-
onFocus:
|
|
802
|
+
onFocus: k[1] || (k[1] = ($) => f.value = !0)
|
|
785
803
|
}, null, 544), [
|
|
786
804
|
[We, m.value]
|
|
787
805
|
]),
|
|
788
|
-
|
|
806
|
+
b(Ce, { name: "search-dropdown" }, {
|
|
789
807
|
default: M(() => [
|
|
790
|
-
f.value && (
|
|
791
|
-
|
|
792
|
-
(a(!0), c(K, null,
|
|
793
|
-
key:
|
|
808
|
+
f.value && (P.value.length > 0 || m.value) ? (a(), c("div", rs, [
|
|
809
|
+
P.value.length > 0 ? (a(), c("div", is, [
|
|
810
|
+
(a(!0), c(K, null, Z(P.value, ($) => (a(), c("div", {
|
|
811
|
+
key: $.path,
|
|
794
812
|
class: "header__search-item",
|
|
795
|
-
onClick: (S) =>
|
|
813
|
+
onClick: (S) => fe($.path)
|
|
796
814
|
}, [
|
|
797
|
-
|
|
798
|
-
|
|
815
|
+
$.title !== "首页" ? (a(), c("span", us, [
|
|
816
|
+
oe(X($.icon)) ? (a(), B(l(U), {
|
|
799
817
|
key: 0,
|
|
800
|
-
name:
|
|
818
|
+
name: X($.icon),
|
|
801
819
|
size: 16
|
|
802
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
803
|
-
])) :
|
|
804
|
-
e("span",
|
|
805
|
-
|
|
806
|
-
], 8,
|
|
807
|
-
])) : (a(), c("div",
|
|
808
|
-
])) :
|
|
820
|
+
}, null, 8, ["name"])) : (a(), c("span", ds, x(q($.title)), 1))
|
|
821
|
+
])) : T("", !0),
|
|
822
|
+
e("span", ms, x($.title), 1),
|
|
823
|
+
$.parentTitle ? (a(), c("span", ps, x($.parentTitle), 1)) : T("", !0)
|
|
824
|
+
], 8, cs))), 128))
|
|
825
|
+
])) : (a(), c("div", vs, " 未找到匹配的菜单 "))
|
|
826
|
+
])) : T("", !0)
|
|
809
827
|
]),
|
|
810
828
|
_: 1
|
|
811
829
|
})
|
|
812
830
|
], 512),
|
|
813
831
|
e("div", {
|
|
814
832
|
class: "header__action",
|
|
815
|
-
onClick:
|
|
833
|
+
onClick: H,
|
|
816
834
|
title: _.value ? "退出全屏" : "全屏"
|
|
817
835
|
}, [
|
|
818
|
-
|
|
836
|
+
b(l(U), {
|
|
819
837
|
name: _.value ? "fullscreen-exit" : "fullscreen",
|
|
820
838
|
size: 16
|
|
821
839
|
}, null, 8, ["name"])
|
|
822
|
-
], 8,
|
|
840
|
+
], 8, hs),
|
|
823
841
|
e("div", {
|
|
824
842
|
class: "header__action",
|
|
825
843
|
onClick: R,
|
|
826
844
|
title: "换肤设置"
|
|
827
845
|
}, [
|
|
828
|
-
|
|
846
|
+
b(l(U), {
|
|
829
847
|
name: "skin",
|
|
830
848
|
size: 16
|
|
831
849
|
})
|
|
832
850
|
]),
|
|
833
851
|
e("div", {
|
|
834
852
|
class: "header__action",
|
|
835
|
-
onClick:
|
|
853
|
+
onClick: J,
|
|
836
854
|
title: "切换主题"
|
|
837
855
|
}, [
|
|
838
|
-
|
|
839
|
-
name:
|
|
856
|
+
b(l(U), {
|
|
857
|
+
name: l(s).isDark ? "sun" : "moon",
|
|
840
858
|
size: 16
|
|
841
859
|
}, null, 8, ["name"])
|
|
842
860
|
]),
|
|
@@ -847,99 +865,112 @@ const de = Ee("menu", () => {
|
|
|
847
865
|
}, [
|
|
848
866
|
e("div", {
|
|
849
867
|
class: "header__user-trigger",
|
|
850
|
-
onClick:
|
|
868
|
+
onClick: Te(te, ["stop"])
|
|
851
869
|
}, [
|
|
852
|
-
e("div",
|
|
853
|
-
e("span", null, x(((
|
|
870
|
+
e("div", _s, [
|
|
871
|
+
e("span", null, x(((se = l(o).userName) == null ? void 0 : se.charAt(0)) || "U"), 1)
|
|
854
872
|
]),
|
|
855
|
-
e("span",
|
|
873
|
+
e("span", fs, x(l(o).userName), 1),
|
|
856
874
|
e("span", {
|
|
857
|
-
class:
|
|
858
|
-
},
|
|
875
|
+
class: Q(["header__user-arrow", { "is-active": v.value }])
|
|
876
|
+
}, [...k[3] || (k[3] = [
|
|
877
|
+
e("svg", {
|
|
878
|
+
viewBox: "0 0 12 12",
|
|
879
|
+
width: "10",
|
|
880
|
+
height: "10",
|
|
881
|
+
fill: "none",
|
|
882
|
+
stroke: "currentColor",
|
|
883
|
+
"stroke-width": "1.5",
|
|
884
|
+
"stroke-linecap": "round",
|
|
885
|
+
"stroke-linejoin": "round"
|
|
886
|
+
}, [
|
|
887
|
+
e("path", { d: "M2.5 4.5 6 8l3.5-3.5" })
|
|
888
|
+
], -1)
|
|
889
|
+
])], 2)
|
|
859
890
|
]),
|
|
860
|
-
|
|
891
|
+
b(Ce, { name: "dropdown" }, {
|
|
861
892
|
default: M(() => {
|
|
862
|
-
var
|
|
893
|
+
var $;
|
|
863
894
|
return [
|
|
864
|
-
v.value ? (a(), c("div",
|
|
865
|
-
e("div",
|
|
866
|
-
e("div",
|
|
867
|
-
e("span", null, x(((
|
|
895
|
+
v.value ? (a(), c("div", gs, [
|
|
896
|
+
e("div", ys, [
|
|
897
|
+
e("div", bs, [
|
|
898
|
+
e("span", null, x((($ = l(o).userName) == null ? void 0 : $.charAt(0)) || "U"), 1)
|
|
868
899
|
]),
|
|
869
900
|
e("div", ks, [
|
|
870
|
-
e("div", ws, x(
|
|
871
|
-
e("div",
|
|
901
|
+
e("div", ws, x(l(o).userName), 1),
|
|
902
|
+
e("div", xs, x(l(o).roleName || l(o).departmentName), 1)
|
|
872
903
|
])
|
|
873
904
|
]),
|
|
874
|
-
|
|
875
|
-
e("div",
|
|
905
|
+
k[8] || (k[8] = e("div", { class: "header__dropdown-divider" }, null, -1)),
|
|
906
|
+
e("div", Cs, [
|
|
876
907
|
e("div", {
|
|
877
908
|
class: "header__dropdown-item",
|
|
878
|
-
onClick:
|
|
909
|
+
onClick: ce
|
|
879
910
|
}, [
|
|
880
|
-
|
|
911
|
+
b(l(U), {
|
|
881
912
|
name: "user",
|
|
882
913
|
size: 16
|
|
883
914
|
}),
|
|
884
|
-
|
|
915
|
+
k[4] || (k[4] = e("span", null, "个人信息", -1))
|
|
885
916
|
]),
|
|
886
917
|
e("div", {
|
|
887
918
|
class: "header__dropdown-item",
|
|
888
|
-
onClick:
|
|
919
|
+
onClick: ge
|
|
889
920
|
}, [
|
|
890
|
-
|
|
921
|
+
b(l(U), {
|
|
891
922
|
name: "lock",
|
|
892
923
|
size: 16
|
|
893
924
|
}),
|
|
894
|
-
|
|
925
|
+
k[5] || (k[5] = e("span", null, "修改密码", -1))
|
|
895
926
|
]),
|
|
896
|
-
|
|
927
|
+
k[7] || (k[7] = e("div", { class: "header__dropdown-divider" }, null, -1)),
|
|
897
928
|
e("div", {
|
|
898
929
|
class: "header__dropdown-item header__dropdown-item--danger",
|
|
899
930
|
onClick: Me
|
|
900
931
|
}, [
|
|
901
|
-
|
|
932
|
+
b(l(U), {
|
|
902
933
|
name: "logout",
|
|
903
934
|
size: 16
|
|
904
935
|
}),
|
|
905
|
-
|
|
936
|
+
k[6] || (k[6] = e("span", null, "退出登录", -1))
|
|
906
937
|
])
|
|
907
938
|
])
|
|
908
|
-
])) :
|
|
939
|
+
])) : T("", !0)
|
|
909
940
|
];
|
|
910
941
|
}),
|
|
911
942
|
_: 1
|
|
912
943
|
})
|
|
913
944
|
], 512)
|
|
914
945
|
]),
|
|
915
|
-
|
|
946
|
+
b(l(Xe), {
|
|
916
947
|
modelValue: d.value,
|
|
917
|
-
"onUpdate:modelValue":
|
|
948
|
+
"onUpdate:modelValue": k[2] || (k[2] = ($) => d.value = $),
|
|
918
949
|
title: "换肤设置",
|
|
919
950
|
direction: "rtl",
|
|
920
951
|
size: "320px"
|
|
921
952
|
}, {
|
|
922
953
|
default: M(() => [
|
|
923
|
-
e("div",
|
|
924
|
-
e("div",
|
|
925
|
-
|
|
926
|
-
e("div",
|
|
927
|
-
(a(), c(K, null,
|
|
928
|
-
key:
|
|
929
|
-
class:
|
|
930
|
-
onClick: (S) =>
|
|
954
|
+
e("div", $s, [
|
|
955
|
+
e("div", Ls, [
|
|
956
|
+
k[12] || (k[12] = e("div", { class: "settings-title" }, "布局模式", -1)),
|
|
957
|
+
e("div", Ms, [
|
|
958
|
+
(a(), c(K, null, Z(W, ($) => e("div", {
|
|
959
|
+
key: $.value,
|
|
960
|
+
class: Q(["layout-option", { "is-active": I.value === $.value }]),
|
|
961
|
+
onClick: (S) => ne($.value)
|
|
931
962
|
}, [
|
|
932
|
-
e("div",
|
|
933
|
-
|
|
963
|
+
e("div", Ns, [
|
|
964
|
+
$.value === "sidebar" ? (a(), c("div", Is, [...k[9] || (k[9] = [
|
|
934
965
|
e("div", { class: "preview-aside" }, null, -1),
|
|
935
966
|
e("div", { class: "preview-main" }, [
|
|
936
967
|
e("div", { class: "preview-header" }),
|
|
937
968
|
e("div", { class: "preview-content" })
|
|
938
969
|
], -1)
|
|
939
|
-
])])) :
|
|
970
|
+
])])) : $.value === "top" ? (a(), c("div", Es, [...k[10] || (k[10] = [
|
|
940
971
|
e("div", { class: "preview-header-full" }, null, -1),
|
|
941
972
|
e("div", { class: "preview-content-full" }, null, -1)
|
|
942
|
-
])])) : (a(), c("div",
|
|
973
|
+
])])) : (a(), c("div", Us, [...k[11] || (k[11] = [
|
|
943
974
|
e("div", { class: "preview-header-mix" }, [
|
|
944
975
|
e("div", { class: "preview-mix-left" })
|
|
945
976
|
], -1),
|
|
@@ -949,47 +980,47 @@ const de = Ee("menu", () => {
|
|
|
949
980
|
], -1)
|
|
950
981
|
])]))
|
|
951
982
|
]),
|
|
952
|
-
e("span",
|
|
953
|
-
], 10,
|
|
983
|
+
e("span", zs, x($.label), 1)
|
|
984
|
+
], 10, Ss)), 64))
|
|
954
985
|
])
|
|
955
986
|
]),
|
|
956
|
-
e("div",
|
|
957
|
-
|
|
987
|
+
e("div", Ps, [
|
|
988
|
+
k[13] || (k[13] = e("div", { class: "settings-title" }, "主题色", -1)),
|
|
958
989
|
e("div", Ts, [
|
|
959
|
-
(a(), c(K, null,
|
|
960
|
-
key:
|
|
961
|
-
class:
|
|
962
|
-
style: Ne({ backgroundColor:
|
|
963
|
-
title:
|
|
964
|
-
onClick: (S) =>
|
|
990
|
+
(a(), c(K, null, Z(A, ($) => e("div", {
|
|
991
|
+
key: $.value,
|
|
992
|
+
class: Q(["color-option", { "is-active": l(s).primaryColor === $.value }]),
|
|
993
|
+
style: Ne({ backgroundColor: $.value }),
|
|
994
|
+
title: $.label,
|
|
995
|
+
onClick: (S) => be($.value)
|
|
965
996
|
}, [
|
|
966
|
-
|
|
997
|
+
l(s).primaryColor === $.value ? (a(), B(l(U), {
|
|
967
998
|
key: 0,
|
|
968
999
|
name: "check",
|
|
969
1000
|
size: 12,
|
|
970
1001
|
color: "#fff"
|
|
971
|
-
})) :
|
|
972
|
-
], 14,
|
|
1002
|
+
})) : T("", !0)
|
|
1003
|
+
], 14, Fs)), 64))
|
|
973
1004
|
])
|
|
974
1005
|
]),
|
|
975
|
-
e("div",
|
|
976
|
-
|
|
977
|
-
e("div",
|
|
978
|
-
e("div",
|
|
979
|
-
|
|
1006
|
+
e("div", Ds, [
|
|
1007
|
+
k[18] || (k[18] = e("div", { class: "settings-title" }, "功能设置", -1)),
|
|
1008
|
+
e("div", As, [
|
|
1009
|
+
e("div", Bs, [
|
|
1010
|
+
k[15] || (k[15] = e("span", null, "灰色模式", -1)),
|
|
980
1011
|
e("div", {
|
|
981
|
-
class:
|
|
982
|
-
onClick:
|
|
983
|
-
}, [...
|
|
1012
|
+
class: Q(["switch-wrapper", { "is-checked": D.value }]),
|
|
1013
|
+
onClick: _e
|
|
1014
|
+
}, [...k[14] || (k[14] = [
|
|
984
1015
|
e("span", { class: "switch-core" }, null, -1)
|
|
985
1016
|
])], 2)
|
|
986
1017
|
]),
|
|
987
|
-
e("div",
|
|
988
|
-
|
|
1018
|
+
e("div", Vs, [
|
|
1019
|
+
k[17] || (k[17] = e("span", null, "暗黑模式", -1)),
|
|
989
1020
|
e("div", {
|
|
990
|
-
class:
|
|
991
|
-
onClick:
|
|
992
|
-
}, [...
|
|
1021
|
+
class: Q(["switch-wrapper", { "is-checked": l(s).isDark }]),
|
|
1022
|
+
onClick: N
|
|
1023
|
+
}, [...k[16] || (k[16] = [
|
|
993
1024
|
e("span", { class: "switch-core" }, null, -1)
|
|
994
1025
|
])], 2)
|
|
995
1026
|
])
|
|
@@ -1002,73 +1033,73 @@ const de = Ee("menu", () => {
|
|
|
1002
1033
|
]);
|
|
1003
1034
|
};
|
|
1004
1035
|
}
|
|
1005
|
-
}),
|
|
1036
|
+
}), Rs = /* @__PURE__ */ ie(Os, [["__scopeId", "data-v-11f8bfa7"]]), Ks = { class: "top-menu" }, js = { class: "top-menu__logo" }, Ws = ["src"], qs = { class: "top-menu__logo-text" }, Hs = { class: "top-menu__menu-content" }, Ys = {
|
|
1006
1037
|
key: 0,
|
|
1007
1038
|
class: "top-menu__menu-icon"
|
|
1008
|
-
},
|
|
1039
|
+
}, Gs = {
|
|
1009
1040
|
key: 1,
|
|
1010
1041
|
class: "top-menu__menu-char"
|
|
1011
|
-
},
|
|
1042
|
+
}, Xs = { class: "top-menu__menu-text" }, Js = { class: "top-menu__menu-content" }, Zs = { class: "top-menu__menu-icon" }, Qs = {
|
|
1012
1043
|
key: 1,
|
|
1013
1044
|
class: "top-menu__menu-char"
|
|
1014
|
-
},
|
|
1045
|
+
}, eo = { class: "top-menu__menu-text" }, to = { class: "top-menu__menu-content" }, so = { class: "top-menu__menu-icon" }, oo = {
|
|
1015
1046
|
key: 1,
|
|
1016
1047
|
class: "top-menu__menu-char"
|
|
1017
|
-
},
|
|
1048
|
+
}, ao = { class: "top-menu__menu-text" }, no = { class: "top-menu__menu-content" }, lo = { class: "top-menu__menu-icon" }, ro = {
|
|
1018
1049
|
key: 1,
|
|
1019
1050
|
class: "top-menu__menu-char"
|
|
1020
|
-
},
|
|
1051
|
+
}, io = { class: "top-menu__menu-text" }, co = { class: "top-menu__menu-content" }, uo = {
|
|
1021
1052
|
key: 0,
|
|
1022
1053
|
class: "top-menu__menu-icon"
|
|
1023
|
-
},
|
|
1054
|
+
}, mo = {
|
|
1024
1055
|
key: 1,
|
|
1025
1056
|
class: "top-menu__menu-char"
|
|
1026
|
-
},
|
|
1057
|
+
}, po = { class: "top-menu__menu-text" }, vo = { class: "top-menu__actions" }, ho = {
|
|
1027
1058
|
key: 0,
|
|
1028
1059
|
class: "top-menu__search-dropdown"
|
|
1029
|
-
},
|
|
1060
|
+
}, _o = {
|
|
1030
1061
|
key: 0,
|
|
1031
1062
|
class: "top-menu__search-results"
|
|
1032
|
-
},
|
|
1063
|
+
}, fo = ["onClick"], go = {
|
|
1033
1064
|
key: 0,
|
|
1034
1065
|
class: "top-menu__search-icon-item"
|
|
1035
|
-
},
|
|
1066
|
+
}, yo = {
|
|
1036
1067
|
key: 1,
|
|
1037
1068
|
class: "top-menu__search-char"
|
|
1038
|
-
},
|
|
1069
|
+
}, bo = { class: "top-menu__search-item-title" }, ko = {
|
|
1039
1070
|
key: 1,
|
|
1040
1071
|
class: "top-menu__search-item-parent"
|
|
1041
1072
|
}, wo = {
|
|
1042
1073
|
key: 1,
|
|
1043
1074
|
class: "top-menu__search-empty"
|
|
1044
|
-
},
|
|
1075
|
+
}, xo = ["title"], Co = { class: "top-menu__avatar" }, $o = { class: "top-menu__user-name" }, Lo = {
|
|
1045
1076
|
key: 0,
|
|
1046
1077
|
class: "top-menu__dropdown"
|
|
1047
|
-
},
|
|
1078
|
+
}, Mo = { class: "top-menu__dropdown-header" }, So = { class: "top-menu__dropdown-avatar" }, No = { class: "top-menu__dropdown-info" }, Io = { class: "top-menu__dropdown-name" }, Eo = { class: "top-menu__dropdown-role" }, Uo = { class: "top-menu__dropdown-menu" }, zo = { class: "settings-drawer" }, Po = { class: "settings-section" }, To = { class: "settings-layout-options" }, Fo = ["onClick"], Do = { class: "layout-option__preview" }, Ao = {
|
|
1048
1079
|
key: 0,
|
|
1049
1080
|
class: "layout-preview-sidebar"
|
|
1050
|
-
},
|
|
1081
|
+
}, Bo = {
|
|
1051
1082
|
key: 1,
|
|
1052
1083
|
class: "layout-preview-top"
|
|
1053
|
-
},
|
|
1084
|
+
}, Vo = {
|
|
1054
1085
|
key: 2,
|
|
1055
1086
|
class: "layout-preview-mix"
|
|
1056
|
-
},
|
|
1087
|
+
}, Oo = { class: "layout-option__label" }, Ro = { class: "settings-section" }, Ko = { class: "settings-color-options" }, jo = ["title", "onClick"], Wo = { class: "settings-section" }, qo = { class: "settings-switch-list" }, Ho = { class: "settings-switch-item" }, Yo = { class: "settings-switch-item" }, Go = /* @__PURE__ */ le({
|
|
1057
1088
|
__name: "TopMenu",
|
|
1058
1089
|
props: {
|
|
1059
1090
|
logoSrc: { default: "/vite.svg" }
|
|
1060
1091
|
},
|
|
1061
1092
|
setup(t) {
|
|
1062
|
-
const
|
|
1063
|
-
const
|
|
1093
|
+
const n = t, u = Le(), s = he(), o = ve(), i = pe(), h = re(), v = Ue(), d = w(() => u.path), g = (S, C = "") => {
|
|
1094
|
+
const ae = [];
|
|
1064
1095
|
return S.forEach((r) => {
|
|
1065
|
-
r.children && r.children.length > 0 ?
|
|
1066
|
-
}),
|
|
1067
|
-
}, _ =
|
|
1068
|
-
(
|
|
1069
|
-
) : []), f =
|
|
1096
|
+
r.children && r.children.length > 0 ? ae.push(...g(r.children, r.menuName)) : ae.push({ ...r, parentTitle: C, title: r.menuName, path: r.menuUrl });
|
|
1097
|
+
}), ae;
|
|
1098
|
+
}, _ = w(() => X.value.trim() ? g(o.menuList).filter(
|
|
1099
|
+
(C) => C.title.toLowerCase().includes(X.value.toLowerCase())
|
|
1100
|
+
) : []), f = w(() => i.isDark ? "#1d1e1f" : "#fff"), m = w(() => i.isDark ? "#cfd3dc" : "#303133"), j = w(() => "#409eff"), D = y(!1), W = y(null), A = y(!1), V = y(!1), G = y(!1), ee = y(!1), X = y(""), q = y(null), oe = (S) => {
|
|
1070
1101
|
S && S !== u.path && s.push(S);
|
|
1071
|
-
},
|
|
1102
|
+
}, P = /* @__PURE__ */ new Set([
|
|
1072
1103
|
"arrow-up",
|
|
1073
1104
|
"arrow-down",
|
|
1074
1105
|
"arrow-left",
|
|
@@ -1170,10 +1201,10 @@ const de = Ee("menu", () => {
|
|
|
1170
1201
|
"sun",
|
|
1171
1202
|
"theme",
|
|
1172
1203
|
"skin"
|
|
1173
|
-
]),
|
|
1204
|
+
]), I = (S) => {
|
|
1174
1205
|
if (!S || S === "") return "";
|
|
1175
1206
|
if (S.startsWith("tineco-icon-")) {
|
|
1176
|
-
const
|
|
1207
|
+
const ae = S.replace("tineco-icon-", "");
|
|
1177
1208
|
return {
|
|
1178
1209
|
home: "home",
|
|
1179
1210
|
dashboard: "dashboard",
|
|
@@ -1187,7 +1218,7 @@ const de = Ee("menu", () => {
|
|
|
1187
1218
|
chart: "chart",
|
|
1188
1219
|
report: "report",
|
|
1189
1220
|
analytics: "analytics"
|
|
1190
|
-
}[
|
|
1221
|
+
}[ae] || ae;
|
|
1191
1222
|
}
|
|
1192
1223
|
return {
|
|
1193
1224
|
dashboard: "dashboard",
|
|
@@ -1207,155 +1238,154 @@ const de = Ee("menu", () => {
|
|
|
1207
1238
|
list: "list",
|
|
1208
1239
|
grid: "grid"
|
|
1209
1240
|
}[S] || S;
|
|
1210
|
-
},
|
|
1241
|
+
}, F = (S) => S ? S.charAt(0) : "", J = (S) => P.has(S), R = () => {
|
|
1211
1242
|
i.toggleTheme(), V.value = !1;
|
|
1212
|
-
},
|
|
1243
|
+
}, ne = () => {
|
|
1213
1244
|
document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
|
|
1214
|
-
},
|
|
1215
|
-
|
|
1216
|
-
},
|
|
1245
|
+
}, ue = () => {
|
|
1246
|
+
A.value = !!document.fullscreenElement;
|
|
1247
|
+
}, _e = () => {
|
|
1217
1248
|
D.value = !D.value;
|
|
1218
|
-
},
|
|
1249
|
+
}, N = () => {
|
|
1219
1250
|
D.value = !1;
|
|
1220
|
-
},
|
|
1221
|
-
|
|
1222
|
-
},
|
|
1223
|
-
s.push(S),
|
|
1224
|
-
},
|
|
1251
|
+
}, H = () => {
|
|
1252
|
+
ee.value = !1, X.value = "";
|
|
1253
|
+
}, de = (S) => {
|
|
1254
|
+
s.push(S), H();
|
|
1255
|
+
}, te = () => {
|
|
1225
1256
|
V.value = !0;
|
|
1226
|
-
},
|
|
1227
|
-
|
|
1228
|
-
const
|
|
1229
|
-
S ?
|
|
1230
|
-
},
|
|
1231
|
-
|
|
1232
|
-
},
|
|
1257
|
+
}, Y = (S) => {
|
|
1258
|
+
G.value = S;
|
|
1259
|
+
const C = document.documentElement;
|
|
1260
|
+
S ? C.classList.add("grey-mode") : C.classList.remove("grey-mode");
|
|
1261
|
+
}, me = () => {
|
|
1262
|
+
Y(!G.value), V.value = !1;
|
|
1263
|
+
}, fe = () => {
|
|
1233
1264
|
i.toggleTheme(), V.value = !1;
|
|
1234
|
-
},
|
|
1265
|
+
}, be = [
|
|
1235
1266
|
{ value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
|
|
1236
1267
|
{ value: "top", label: "顶部菜单", icon: "menu" },
|
|
1237
1268
|
{ value: "mix", label: "混合菜单", icon: "grid" }
|
|
1238
|
-
],
|
|
1269
|
+
], ce = w(() => i.layout), ge = (S) => {
|
|
1239
1270
|
i.setLayout(S), V.value = !1;
|
|
1240
1271
|
}, Me = [
|
|
1241
1272
|
{ value: "#409eff", label: "默认蓝" },
|
|
1242
|
-
{ value: "#
|
|
1243
|
-
{ value: "#
|
|
1244
|
-
{ value: "#
|
|
1245
|
-
{ value: "#
|
|
1246
|
-
|
|
1247
|
-
], fe = (S) => {
|
|
1273
|
+
{ value: "#0F6FDE", label: "企业蓝" },
|
|
1274
|
+
{ value: "#00A870", label: "翡翠绿" },
|
|
1275
|
+
{ value: "#D46B08", label: "琥珀橙" },
|
|
1276
|
+
{ value: "#1F2329", label: "石墨黑" }
|
|
1277
|
+
], ke = (S) => {
|
|
1248
1278
|
i.setPrimaryColor(S), V.value = !1;
|
|
1249
|
-
},
|
|
1250
|
-
|
|
1279
|
+
}, we = () => {
|
|
1280
|
+
N(), s.push("/profile");
|
|
1251
1281
|
}, z = () => {
|
|
1252
|
-
|
|
1253
|
-
},
|
|
1254
|
-
|
|
1255
|
-
},
|
|
1256
|
-
W.value && !W.value.contains(S.target) &&
|
|
1257
|
-
},
|
|
1258
|
-
S.key === "Escape" && (
|
|
1282
|
+
N(), s.push("/change-password");
|
|
1283
|
+
}, k = () => {
|
|
1284
|
+
N(), v.logout(), h.clearUserInfo(), o.clearMenu(), s.push(i.loginPath);
|
|
1285
|
+
}, se = (S) => {
|
|
1286
|
+
W.value && !W.value.contains(S.target) && N(), q.value && !q.value.contains(S.target) && H();
|
|
1287
|
+
}, $ = (S) => {
|
|
1288
|
+
S.key === "Escape" && (H(), N());
|
|
1259
1289
|
};
|
|
1260
1290
|
return Ke(() => {
|
|
1261
|
-
document.addEventListener("click",
|
|
1291
|
+
document.addEventListener("click", se), document.addEventListener("fullscreenchange", ue), document.addEventListener("keydown", $), G.value = document.documentElement.classList.contains("grey-mode");
|
|
1262
1292
|
}), je(() => {
|
|
1263
|
-
document.removeEventListener("click",
|
|
1264
|
-
}), (S,
|
|
1265
|
-
var
|
|
1266
|
-
return a(), c("div",
|
|
1267
|
-
e("div",
|
|
1293
|
+
document.removeEventListener("click", se), document.removeEventListener("fullscreenchange", ue), document.removeEventListener("keydown", $);
|
|
1294
|
+
}), (S, C) => {
|
|
1295
|
+
var ae;
|
|
1296
|
+
return a(), c("div", Ks, [
|
|
1297
|
+
e("div", js, [
|
|
1268
1298
|
e("img", {
|
|
1269
|
-
src:
|
|
1299
|
+
src: n.logoSrc,
|
|
1270
1300
|
alt: "Logo",
|
|
1271
1301
|
class: "top-menu__logo-img"
|
|
1272
|
-
}, null, 8,
|
|
1273
|
-
e("span",
|
|
1302
|
+
}, null, 8, Ws),
|
|
1303
|
+
e("span", qs, x(l(i).appName), 1)
|
|
1274
1304
|
]),
|
|
1275
|
-
|
|
1305
|
+
b(l(Ge), {
|
|
1276
1306
|
"model-value": d.value,
|
|
1277
1307
|
mode: "horizontal",
|
|
1278
1308
|
"background-color": f.value,
|
|
1279
1309
|
"text-color": m.value,
|
|
1280
1310
|
"active-text-color": j.value,
|
|
1281
1311
|
class: "top-menu__menu",
|
|
1282
|
-
onSelect:
|
|
1312
|
+
onSelect: oe
|
|
1283
1313
|
}, {
|
|
1284
1314
|
default: M(() => [
|
|
1285
|
-
(a(!0), c(K, null,
|
|
1315
|
+
(a(!0), c(K, null, Z(l(o).menuList, (r) => (a(), c(K, {
|
|
1286
1316
|
key: r.menuUrl
|
|
1287
1317
|
}, [
|
|
1288
|
-
r.children && r.children.length > 0 ? (a(), B(
|
|
1318
|
+
r.children && r.children.length > 0 ? (a(), B(l(Re), {
|
|
1289
1319
|
key: 0,
|
|
1290
1320
|
index: r.menuUrl
|
|
1291
1321
|
}, {
|
|
1292
1322
|
title: M(() => [
|
|
1293
|
-
e("span",
|
|
1294
|
-
r.menuName !== "首页" ? (a(), c("span",
|
|
1295
|
-
|
|
1323
|
+
e("span", Hs, [
|
|
1324
|
+
r.menuName !== "首页" ? (a(), c("span", Ys, [
|
|
1325
|
+
J(I(r.icon)) ? (a(), B(l(U), {
|
|
1296
1326
|
key: 0,
|
|
1297
|
-
name:
|
|
1327
|
+
name: I(r.icon),
|
|
1298
1328
|
size: 16
|
|
1299
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1300
|
-
])) :
|
|
1301
|
-
e("span",
|
|
1329
|
+
}, null, 8, ["name"])) : (a(), c("span", Gs, x(F(r.menuName)), 1))
|
|
1330
|
+
])) : T("", !0),
|
|
1331
|
+
e("span", Xs, x(r.menuName), 1)
|
|
1302
1332
|
])
|
|
1303
1333
|
]),
|
|
1304
1334
|
default: M(() => [
|
|
1305
|
-
(a(!0), c(K, null,
|
|
1335
|
+
(a(!0), c(K, null, Z(r.children, (p) => (a(), c(K, {
|
|
1306
1336
|
key: p.menuUrl
|
|
1307
1337
|
}, [
|
|
1308
|
-
p.children && p.children.length > 0 ? (a(), B(
|
|
1338
|
+
p.children && p.children.length > 0 ? (a(), B(l(Re), {
|
|
1309
1339
|
key: 0,
|
|
1310
1340
|
index: p.menuUrl
|
|
1311
1341
|
}, {
|
|
1312
1342
|
title: M(() => [
|
|
1313
|
-
e("span",
|
|
1314
|
-
e("span",
|
|
1315
|
-
|
|
1343
|
+
e("span", Js, [
|
|
1344
|
+
e("span", Zs, [
|
|
1345
|
+
J(I(p.icon)) ? (a(), B(l(U), {
|
|
1316
1346
|
key: 0,
|
|
1317
|
-
name:
|
|
1347
|
+
name: I(p.icon),
|
|
1318
1348
|
size: 16
|
|
1319
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1349
|
+
}, null, 8, ["name"])) : (a(), c("span", Qs, x(F(p.menuName)), 1))
|
|
1320
1350
|
]),
|
|
1321
|
-
e("span",
|
|
1351
|
+
e("span", eo, x(p.menuName), 1)
|
|
1322
1352
|
])
|
|
1323
1353
|
]),
|
|
1324
1354
|
default: M(() => [
|
|
1325
|
-
(a(!0), c(K, null,
|
|
1355
|
+
(a(!0), c(K, null, Z(p.children, (O) => (a(), B(l(Se), {
|
|
1326
1356
|
key: O.menuUrl,
|
|
1327
1357
|
index: O.menuUrl
|
|
1328
1358
|
}, {
|
|
1329
1359
|
default: M(() => [
|
|
1330
|
-
e("span",
|
|
1331
|
-
e("span",
|
|
1332
|
-
|
|
1360
|
+
e("span", to, [
|
|
1361
|
+
e("span", so, [
|
|
1362
|
+
J(I(O.icon)) ? (a(), B(l(U), {
|
|
1333
1363
|
key: 0,
|
|
1334
|
-
name:
|
|
1364
|
+
name: I(O.icon),
|
|
1335
1365
|
size: 16
|
|
1336
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1366
|
+
}, null, 8, ["name"])) : (a(), c("span", oo, x(F(O.menuName)), 1))
|
|
1337
1367
|
]),
|
|
1338
|
-
e("span",
|
|
1368
|
+
e("span", ao, x(O.menuName), 1)
|
|
1339
1369
|
])
|
|
1340
1370
|
]),
|
|
1341
1371
|
_: 2
|
|
1342
1372
|
}, 1032, ["index"]))), 128))
|
|
1343
1373
|
]),
|
|
1344
1374
|
_: 2
|
|
1345
|
-
}, 1032, ["index"])) : (a(), B(
|
|
1375
|
+
}, 1032, ["index"])) : (a(), B(l(Se), {
|
|
1346
1376
|
key: 1,
|
|
1347
1377
|
index: p.menuUrl
|
|
1348
1378
|
}, {
|
|
1349
1379
|
default: M(() => [
|
|
1350
|
-
e("span",
|
|
1351
|
-
e("span",
|
|
1352
|
-
|
|
1380
|
+
e("span", no, [
|
|
1381
|
+
e("span", lo, [
|
|
1382
|
+
J(I(p.icon)) ? (a(), B(l(U), {
|
|
1353
1383
|
key: 0,
|
|
1354
|
-
name:
|
|
1384
|
+
name: I(p.icon),
|
|
1355
1385
|
size: 16
|
|
1356
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1386
|
+
}, null, 8, ["name"])) : (a(), c("span", ro, x(F(p.menuName)), 1))
|
|
1357
1387
|
]),
|
|
1358
|
-
e("span",
|
|
1388
|
+
e("span", io, x(p.menuName), 1)
|
|
1359
1389
|
])
|
|
1360
1390
|
]),
|
|
1361
1391
|
_: 2
|
|
@@ -1363,20 +1393,20 @@ const de = Ee("menu", () => {
|
|
|
1363
1393
|
], 64))), 128))
|
|
1364
1394
|
]),
|
|
1365
1395
|
_: 2
|
|
1366
|
-
}, 1032, ["index"])) : (a(), B(
|
|
1396
|
+
}, 1032, ["index"])) : (a(), B(l(Se), {
|
|
1367
1397
|
key: 1,
|
|
1368
1398
|
index: r.menuUrl
|
|
1369
1399
|
}, {
|
|
1370
1400
|
default: M(() => [
|
|
1371
|
-
e("span",
|
|
1372
|
-
r.menuName !== "首页" ? (a(), c("span",
|
|
1373
|
-
|
|
1401
|
+
e("span", co, [
|
|
1402
|
+
r.menuName !== "首页" ? (a(), c("span", uo, [
|
|
1403
|
+
J(I(r.icon)) ? (a(), B(l(U), {
|
|
1374
1404
|
key: 0,
|
|
1375
|
-
name:
|
|
1405
|
+
name: I(r.icon),
|
|
1376
1406
|
size: 16
|
|
1377
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1378
|
-
])) :
|
|
1379
|
-
e("span",
|
|
1407
|
+
}, null, 8, ["name"])) : (a(), c("span", mo, x(F(r.menuName)), 1))
|
|
1408
|
+
])) : T("", !0),
|
|
1409
|
+
e("span", po, x(r.menuName), 1)
|
|
1380
1410
|
])
|
|
1381
1411
|
]),
|
|
1382
1412
|
_: 2
|
|
@@ -1385,67 +1415,67 @@ const de = Ee("menu", () => {
|
|
|
1385
1415
|
]),
|
|
1386
1416
|
_: 1
|
|
1387
1417
|
}, 8, ["model-value", "background-color", "text-color", "active-text-color"]),
|
|
1388
|
-
e("div",
|
|
1418
|
+
e("div", vo, [
|
|
1389
1419
|
e("div", {
|
|
1390
1420
|
class: "top-menu__search",
|
|
1391
1421
|
ref_key: "searchRef",
|
|
1392
1422
|
ref: q
|
|
1393
1423
|
}, [
|
|
1394
|
-
|
|
1424
|
+
b(l(U), {
|
|
1395
1425
|
name: "search",
|
|
1396
1426
|
size: 14,
|
|
1397
1427
|
class: "top-menu__search-icon"
|
|
1398
1428
|
}),
|
|
1399
|
-
|
|
1400
|
-
"onUpdate:modelValue":
|
|
1429
|
+
Pe(e("input", {
|
|
1430
|
+
"onUpdate:modelValue": C[0] || (C[0] = (r) => X.value = r),
|
|
1401
1431
|
type: "text",
|
|
1402
1432
|
class: "top-menu__search-input",
|
|
1403
1433
|
placeholder: "搜索菜单...",
|
|
1404
|
-
onFocus:
|
|
1434
|
+
onFocus: C[1] || (C[1] = (r) => ee.value = !0)
|
|
1405
1435
|
}, null, 544), [
|
|
1406
|
-
[We,
|
|
1436
|
+
[We, X.value]
|
|
1407
1437
|
]),
|
|
1408
|
-
|
|
1438
|
+
b(Ce, { name: "search-dropdown" }, {
|
|
1409
1439
|
default: M(() => [
|
|
1410
|
-
|
|
1411
|
-
_.value.length > 0 ? (a(), c("div",
|
|
1412
|
-
(a(!0), c(K, null,
|
|
1440
|
+
ee.value && (_.value.length > 0 || X.value) ? (a(), c("div", ho, [
|
|
1441
|
+
_.value.length > 0 ? (a(), c("div", _o, [
|
|
1442
|
+
(a(!0), c(K, null, Z(_.value, (r) => (a(), c("div", {
|
|
1413
1443
|
key: r.path,
|
|
1414
1444
|
class: "top-menu__search-item",
|
|
1415
|
-
onClick: (p) =>
|
|
1445
|
+
onClick: (p) => de(r.path)
|
|
1416
1446
|
}, [
|
|
1417
|
-
r.title !== "首页" ? (a(), c("span",
|
|
1418
|
-
|
|
1447
|
+
r.title !== "首页" ? (a(), c("span", go, [
|
|
1448
|
+
J(I(r.icon)) ? (a(), B(l(U), {
|
|
1419
1449
|
key: 0,
|
|
1420
|
-
name:
|
|
1450
|
+
name: I(r.icon),
|
|
1421
1451
|
size: 16
|
|
1422
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1423
|
-
])) :
|
|
1424
|
-
e("span",
|
|
1425
|
-
r.parentTitle ? (a(), c("span", ko, x(r.parentTitle), 1)) :
|
|
1426
|
-
], 8,
|
|
1452
|
+
}, null, 8, ["name"])) : (a(), c("span", yo, x(F(r.title)), 1))
|
|
1453
|
+
])) : T("", !0),
|
|
1454
|
+
e("span", bo, x(r.title), 1),
|
|
1455
|
+
r.parentTitle ? (a(), c("span", ko, x(r.parentTitle), 1)) : T("", !0)
|
|
1456
|
+
], 8, fo))), 128))
|
|
1427
1457
|
])) : (a(), c("div", wo, " 未找到匹配的菜单 "))
|
|
1428
|
-
])) :
|
|
1458
|
+
])) : T("", !0)
|
|
1429
1459
|
]),
|
|
1430
1460
|
_: 1
|
|
1431
1461
|
})
|
|
1432
1462
|
], 512),
|
|
1433
1463
|
e("div", {
|
|
1434
1464
|
class: "top-menu__action",
|
|
1435
|
-
onClick:
|
|
1436
|
-
title:
|
|
1465
|
+
onClick: ne,
|
|
1466
|
+
title: A.value ? "退出全屏" : "全屏"
|
|
1437
1467
|
}, [
|
|
1438
|
-
|
|
1439
|
-
name:
|
|
1468
|
+
b(l(U), {
|
|
1469
|
+
name: A.value ? "fullscreen-exit" : "fullscreen",
|
|
1440
1470
|
size: 16
|
|
1441
1471
|
}, null, 8, ["name"])
|
|
1442
|
-
], 8,
|
|
1472
|
+
], 8, xo),
|
|
1443
1473
|
e("div", {
|
|
1444
1474
|
class: "top-menu__action",
|
|
1445
|
-
onClick:
|
|
1475
|
+
onClick: te,
|
|
1446
1476
|
title: "换肤设置"
|
|
1447
1477
|
}, [
|
|
1448
|
-
|
|
1478
|
+
b(l(U), {
|
|
1449
1479
|
name: "skin",
|
|
1450
1480
|
size: 16
|
|
1451
1481
|
})
|
|
@@ -1455,8 +1485,8 @@ const de = Ee("menu", () => {
|
|
|
1455
1485
|
onClick: R,
|
|
1456
1486
|
title: "切换主题"
|
|
1457
1487
|
}, [
|
|
1458
|
-
|
|
1459
|
-
name:
|
|
1488
|
+
b(l(U), {
|
|
1489
|
+
name: l(i).isDark ? "sun" : "moon",
|
|
1460
1490
|
size: 16
|
|
1461
1491
|
}, null, 8, ["name"])
|
|
1462
1492
|
]),
|
|
@@ -1467,99 +1497,112 @@ const de = Ee("menu", () => {
|
|
|
1467
1497
|
}, [
|
|
1468
1498
|
e("div", {
|
|
1469
1499
|
class: "top-menu__user-trigger",
|
|
1470
|
-
onClick:
|
|
1500
|
+
onClick: Te(_e, ["stop"])
|
|
1471
1501
|
}, [
|
|
1472
|
-
e("div",
|
|
1473
|
-
e("span", null, x(((
|
|
1502
|
+
e("div", Co, [
|
|
1503
|
+
e("span", null, x(((ae = l(h).userName) == null ? void 0 : ae.charAt(0)) || "U"), 1)
|
|
1474
1504
|
]),
|
|
1475
|
-
e("span",
|
|
1505
|
+
e("span", $o, x(l(h).userName), 1),
|
|
1476
1506
|
e("span", {
|
|
1477
|
-
class:
|
|
1478
|
-
},
|
|
1507
|
+
class: Q(["top-menu__user-arrow", { "is-active": D.value }])
|
|
1508
|
+
}, [...C[3] || (C[3] = [
|
|
1509
|
+
e("svg", {
|
|
1510
|
+
viewBox: "0 0 12 12",
|
|
1511
|
+
width: "10",
|
|
1512
|
+
height: "10",
|
|
1513
|
+
fill: "none",
|
|
1514
|
+
stroke: "currentColor",
|
|
1515
|
+
"stroke-width": "1.5",
|
|
1516
|
+
"stroke-linecap": "round",
|
|
1517
|
+
"stroke-linejoin": "round"
|
|
1518
|
+
}, [
|
|
1519
|
+
e("path", { d: "M2.5 4.5 6 8l3.5-3.5" })
|
|
1520
|
+
], -1)
|
|
1521
|
+
])], 2)
|
|
1479
1522
|
]),
|
|
1480
|
-
|
|
1523
|
+
b(Ce, { name: "dropdown" }, {
|
|
1481
1524
|
default: M(() => {
|
|
1482
1525
|
var r;
|
|
1483
1526
|
return [
|
|
1484
|
-
D.value ? (a(), c("div",
|
|
1485
|
-
e("div",
|
|
1486
|
-
e("div", Mo, [
|
|
1487
|
-
e("span", null, x(((r = n(h).userName) == null ? void 0 : r.charAt(0)) || "U"), 1)
|
|
1488
|
-
]),
|
|
1527
|
+
D.value ? (a(), c("div", Lo, [
|
|
1528
|
+
e("div", Mo, [
|
|
1489
1529
|
e("div", So, [
|
|
1490
|
-
e("
|
|
1491
|
-
|
|
1530
|
+
e("span", null, x(((r = l(h).userName) == null ? void 0 : r.charAt(0)) || "U"), 1)
|
|
1531
|
+
]),
|
|
1532
|
+
e("div", No, [
|
|
1533
|
+
e("div", Io, x(l(h).userName), 1),
|
|
1534
|
+
e("div", Eo, x(l(h).departmentName), 1)
|
|
1492
1535
|
])
|
|
1493
1536
|
]),
|
|
1494
|
-
|
|
1495
|
-
e("div",
|
|
1537
|
+
C[8] || (C[8] = e("div", { class: "top-menu__dropdown-divider" }, null, -1)),
|
|
1538
|
+
e("div", Uo, [
|
|
1496
1539
|
e("div", {
|
|
1497
1540
|
class: "top-menu__dropdown-item",
|
|
1498
|
-
onClick:
|
|
1541
|
+
onClick: we
|
|
1499
1542
|
}, [
|
|
1500
|
-
|
|
1543
|
+
b(l(U), {
|
|
1501
1544
|
name: "user",
|
|
1502
1545
|
size: 16
|
|
1503
1546
|
}),
|
|
1504
|
-
|
|
1547
|
+
C[4] || (C[4] = e("span", null, "个人信息", -1))
|
|
1505
1548
|
]),
|
|
1506
1549
|
e("div", {
|
|
1507
1550
|
class: "top-menu__dropdown-item",
|
|
1508
1551
|
onClick: z
|
|
1509
1552
|
}, [
|
|
1510
|
-
|
|
1553
|
+
b(l(U), {
|
|
1511
1554
|
name: "lock",
|
|
1512
1555
|
size: 16
|
|
1513
1556
|
}),
|
|
1514
|
-
|
|
1557
|
+
C[5] || (C[5] = e("span", null, "修改密码", -1))
|
|
1515
1558
|
]),
|
|
1516
|
-
|
|
1559
|
+
C[7] || (C[7] = e("div", { class: "top-menu__dropdown-divider" }, null, -1)),
|
|
1517
1560
|
e("div", {
|
|
1518
1561
|
class: "top-menu__dropdown-item top-menu__dropdown-item--danger",
|
|
1519
|
-
onClick:
|
|
1562
|
+
onClick: k
|
|
1520
1563
|
}, [
|
|
1521
|
-
|
|
1564
|
+
b(l(U), {
|
|
1522
1565
|
name: "logout",
|
|
1523
1566
|
size: 16
|
|
1524
1567
|
}),
|
|
1525
|
-
|
|
1568
|
+
C[6] || (C[6] = e("span", null, "退出登录", -1))
|
|
1526
1569
|
])
|
|
1527
1570
|
])
|
|
1528
|
-
])) :
|
|
1571
|
+
])) : T("", !0)
|
|
1529
1572
|
];
|
|
1530
1573
|
}),
|
|
1531
1574
|
_: 1
|
|
1532
1575
|
})
|
|
1533
1576
|
], 512)
|
|
1534
1577
|
]),
|
|
1535
|
-
|
|
1578
|
+
b(l(Xe), {
|
|
1536
1579
|
modelValue: V.value,
|
|
1537
|
-
"onUpdate:modelValue":
|
|
1580
|
+
"onUpdate:modelValue": C[2] || (C[2] = (r) => V.value = r),
|
|
1538
1581
|
title: "换肤设置",
|
|
1539
1582
|
direction: "rtl",
|
|
1540
1583
|
size: "320px"
|
|
1541
1584
|
}, {
|
|
1542
1585
|
default: M(() => [
|
|
1543
|
-
e("div",
|
|
1544
|
-
e("div",
|
|
1545
|
-
|
|
1586
|
+
e("div", zo, [
|
|
1587
|
+
e("div", Po, [
|
|
1588
|
+
C[12] || (C[12] = e("div", { class: "settings-title" }, "布局模式", -1)),
|
|
1546
1589
|
e("div", To, [
|
|
1547
|
-
(a(), c(K, null,
|
|
1590
|
+
(a(), c(K, null, Z(be, (r) => e("div", {
|
|
1548
1591
|
key: r.value,
|
|
1549
|
-
class:
|
|
1550
|
-
onClick: (p) =>
|
|
1592
|
+
class: Q(["layout-option", { "is-active": ce.value === r.value }]),
|
|
1593
|
+
onClick: (p) => ge(r.value)
|
|
1551
1594
|
}, [
|
|
1552
|
-
e("div",
|
|
1553
|
-
r.value === "sidebar" ? (a(), c("div",
|
|
1595
|
+
e("div", Do, [
|
|
1596
|
+
r.value === "sidebar" ? (a(), c("div", Ao, [...C[9] || (C[9] = [
|
|
1554
1597
|
e("div", { class: "preview-aside" }, null, -1),
|
|
1555
1598
|
e("div", { class: "preview-main" }, [
|
|
1556
1599
|
e("div", { class: "preview-header" }),
|
|
1557
1600
|
e("div", { class: "preview-content" })
|
|
1558
1601
|
], -1)
|
|
1559
|
-
])])) : r.value === "top" ? (a(), c("div",
|
|
1602
|
+
])])) : r.value === "top" ? (a(), c("div", Bo, [...C[10] || (C[10] = [
|
|
1560
1603
|
e("div", { class: "preview-header-full" }, null, -1),
|
|
1561
1604
|
e("div", { class: "preview-content-full" }, null, -1)
|
|
1562
|
-
])])) : (a(), c("div",
|
|
1605
|
+
])])) : (a(), c("div", Vo, [...C[11] || (C[11] = [
|
|
1563
1606
|
e("div", { class: "preview-header-mix" }, [
|
|
1564
1607
|
e("div", { class: "preview-mix-left" })
|
|
1565
1608
|
], -1),
|
|
@@ -1569,47 +1612,47 @@ const de = Ee("menu", () => {
|
|
|
1569
1612
|
], -1)
|
|
1570
1613
|
])]))
|
|
1571
1614
|
]),
|
|
1572
|
-
e("span",
|
|
1573
|
-
], 10,
|
|
1615
|
+
e("span", Oo, x(r.label), 1)
|
|
1616
|
+
], 10, Fo)), 64))
|
|
1574
1617
|
])
|
|
1575
1618
|
]),
|
|
1576
|
-
e("div",
|
|
1577
|
-
|
|
1578
|
-
e("div",
|
|
1579
|
-
(a(), c(K, null,
|
|
1619
|
+
e("div", Ro, [
|
|
1620
|
+
C[13] || (C[13] = e("div", { class: "settings-title" }, "主题色", -1)),
|
|
1621
|
+
e("div", Ko, [
|
|
1622
|
+
(a(), c(K, null, Z(Me, (r) => e("div", {
|
|
1580
1623
|
key: r.value,
|
|
1581
|
-
class:
|
|
1624
|
+
class: Q(["color-option", { "is-active": l(i).primaryColor === r.value }]),
|
|
1582
1625
|
style: Ne({ backgroundColor: r.value }),
|
|
1583
1626
|
title: r.label,
|
|
1584
|
-
onClick: (p) =>
|
|
1627
|
+
onClick: (p) => ke(r.value)
|
|
1585
1628
|
}, [
|
|
1586
|
-
|
|
1629
|
+
l(i).primaryColor === r.value ? (a(), B(l(U), {
|
|
1587
1630
|
key: 0,
|
|
1588
1631
|
name: "check",
|
|
1589
1632
|
size: 12,
|
|
1590
1633
|
color: "#fff"
|
|
1591
|
-
})) :
|
|
1592
|
-
], 14,
|
|
1634
|
+
})) : T("", !0)
|
|
1635
|
+
], 14, jo)), 64))
|
|
1593
1636
|
])
|
|
1594
1637
|
]),
|
|
1595
|
-
e("div",
|
|
1596
|
-
|
|
1597
|
-
e("div",
|
|
1598
|
-
e("div",
|
|
1599
|
-
|
|
1638
|
+
e("div", Wo, [
|
|
1639
|
+
C[18] || (C[18] = e("div", { class: "settings-title" }, "功能设置", -1)),
|
|
1640
|
+
e("div", qo, [
|
|
1641
|
+
e("div", Ho, [
|
|
1642
|
+
C[15] || (C[15] = e("span", null, "灰色模式", -1)),
|
|
1600
1643
|
e("div", {
|
|
1601
|
-
class:
|
|
1602
|
-
onClick:
|
|
1603
|
-
}, [...
|
|
1644
|
+
class: Q(["switch-wrapper", { "is-checked": G.value }]),
|
|
1645
|
+
onClick: me
|
|
1646
|
+
}, [...C[14] || (C[14] = [
|
|
1604
1647
|
e("span", { class: "switch-core" }, null, -1)
|
|
1605
1648
|
])], 2)
|
|
1606
1649
|
]),
|
|
1607
|
-
e("div",
|
|
1608
|
-
|
|
1650
|
+
e("div", Yo, [
|
|
1651
|
+
C[17] || (C[17] = e("span", null, "暗黑模式", -1)),
|
|
1609
1652
|
e("div", {
|
|
1610
|
-
class:
|
|
1611
|
-
onClick:
|
|
1612
|
-
}, [...
|
|
1653
|
+
class: Q(["switch-wrapper", { "is-checked": l(i).isDark }]),
|
|
1654
|
+
onClick: fe
|
|
1655
|
+
}, [...C[16] || (C[16] = [
|
|
1613
1656
|
e("span", { class: "switch-core" }, null, -1)
|
|
1614
1657
|
])], 2)
|
|
1615
1658
|
])
|
|
@@ -1622,59 +1665,59 @@ const de = Ee("menu", () => {
|
|
|
1622
1665
|
]);
|
|
1623
1666
|
};
|
|
1624
1667
|
}
|
|
1625
|
-
}),
|
|
1668
|
+
}), Xo = /* @__PURE__ */ ie(Go, [["__scopeId", "data-v-05337ab6"]]), Jo = { class: "mix-top-menu" }, Zo = { class: "mix-top-menu__logo" }, Qo = ["src"], ea = { class: "mix-top-menu__logo-text" }, ta = { class: "mix-top-menu__menu-content" }, sa = {
|
|
1626
1669
|
key: 0,
|
|
1627
1670
|
class: "mix-top-menu__menu-icon"
|
|
1628
|
-
},
|
|
1671
|
+
}, oa = {
|
|
1629
1672
|
key: 1,
|
|
1630
1673
|
class: "mix-top-menu__menu-char"
|
|
1631
|
-
},
|
|
1674
|
+
}, aa = { class: "mix-top-menu__menu-text" }, na = { class: "mix-top-menu__actions" }, la = {
|
|
1632
1675
|
key: 0,
|
|
1633
1676
|
class: "mix-top-menu__search-dropdown"
|
|
1634
|
-
},
|
|
1677
|
+
}, ra = {
|
|
1635
1678
|
key: 0,
|
|
1636
1679
|
class: "mix-top-menu__search-results"
|
|
1637
|
-
},
|
|
1680
|
+
}, ia = ["onClick"], ca = {
|
|
1638
1681
|
key: 0,
|
|
1639
1682
|
class: "mix-top-menu__search-icon-item"
|
|
1640
|
-
},
|
|
1683
|
+
}, ua = {
|
|
1641
1684
|
key: 1,
|
|
1642
1685
|
class: "mix-top-menu__search-char"
|
|
1643
|
-
},
|
|
1686
|
+
}, da = { class: "mix-top-menu__search-item-title" }, ma = {
|
|
1644
1687
|
key: 1,
|
|
1645
1688
|
class: "mix-top-menu__search-item-parent"
|
|
1646
|
-
},
|
|
1689
|
+
}, pa = {
|
|
1647
1690
|
key: 1,
|
|
1648
1691
|
class: "mix-top-menu__search-empty"
|
|
1649
|
-
},
|
|
1692
|
+
}, va = ["title"], ha = { class: "mix-top-menu__avatar" }, _a = { class: "mix-top-menu__user-name" }, fa = {
|
|
1650
1693
|
key: 0,
|
|
1651
1694
|
class: "mix-top-menu__dropdown"
|
|
1652
|
-
},
|
|
1695
|
+
}, ga = { class: "mix-top-menu__dropdown-header" }, ya = { class: "mix-top-menu__dropdown-avatar" }, ba = { class: "mix-top-menu__dropdown-info" }, ka = { class: "mix-top-menu__dropdown-name" }, wa = { class: "mix-top-menu__dropdown-role" }, xa = { class: "mix-top-menu__dropdown-menu" }, Ca = { class: "settings-drawer" }, $a = { class: "settings-section" }, La = { class: "settings-layout-options" }, Ma = ["onClick"], Sa = { class: "layout-option__preview" }, Na = {
|
|
1653
1696
|
key: 0,
|
|
1654
1697
|
class: "layout-preview-sidebar"
|
|
1655
|
-
},
|
|
1698
|
+
}, Ia = {
|
|
1656
1699
|
key: 1,
|
|
1657
1700
|
class: "layout-preview-top"
|
|
1658
|
-
},
|
|
1701
|
+
}, Ea = {
|
|
1659
1702
|
key: 2,
|
|
1660
1703
|
class: "layout-preview-mix"
|
|
1661
|
-
},
|
|
1704
|
+
}, Ua = { class: "layout-option__label" }, za = { class: "settings-section" }, Pa = { class: "settings-color-options" }, Ta = ["title", "onClick"], Fa = { class: "settings-section" }, Da = { class: "settings-switch-list" }, Aa = { class: "settings-switch-item" }, Ba = { class: "settings-switch-item" }, Va = /* @__PURE__ */ le({
|
|
1662
1705
|
__name: "MixTopMenu",
|
|
1663
1706
|
props: {
|
|
1664
1707
|
logoSrc: { default: "/vite.svg" }
|
|
1665
1708
|
},
|
|
1666
1709
|
setup(t) {
|
|
1667
|
-
const
|
|
1710
|
+
const n = t, u = Le(), s = he(), o = ve(), i = pe(), h = re(), v = Ue(), d = y(""), g = (r, p = "") => {
|
|
1668
1711
|
const O = [];
|
|
1669
|
-
return r.forEach((
|
|
1670
|
-
|
|
1712
|
+
return r.forEach((L) => {
|
|
1713
|
+
L.children && L.children.length > 0 ? O.push(...g(L.children, L.menuName)) : O.push({ ...L, parentTitle: p, title: L.menuName, path: L.menuUrl });
|
|
1671
1714
|
}), O;
|
|
1672
|
-
}, _ =
|
|
1673
|
-
(p) => p.title.toLowerCase().includes(
|
|
1674
|
-
) : []), f =
|
|
1715
|
+
}, _ = w(() => I.value.trim() ? g(o.menuList).filter(
|
|
1716
|
+
(p) => p.title.toLowerCase().includes(I.value.toLowerCase())
|
|
1717
|
+
) : []), f = w(() => {
|
|
1675
1718
|
const r = o.menuList.find((p) => p.menuUrl === d.value);
|
|
1676
1719
|
return (r == null ? void 0 : r.children) || [];
|
|
1677
|
-
}), m =
|
|
1720
|
+
}), m = w(() => o.menuList.find((r) => !!(u.path === r.menuUrl || r.children && r.children.some((p) => u.path.startsWith(p.menuUrl) || u.path === p.menuUrl)))), j = () => {
|
|
1678
1721
|
m.value ? d.value = m.value.menuUrl : o.menuList.length > 0 && (d.value = o.menuList[0].menuUrl);
|
|
1679
1722
|
}, D = (r) => {
|
|
1680
1723
|
d.value = r;
|
|
@@ -1685,13 +1728,13 @@ const de = Ee("menu", () => {
|
|
|
1685
1728
|
u.path !== O && s.push(O);
|
|
1686
1729
|
} else
|
|
1687
1730
|
u.path !== r && s.push(r);
|
|
1688
|
-
}, W =
|
|
1689
|
-
|
|
1731
|
+
}, W = w(() => i.isDark ? "#1d1e1f" : "#fff"), A = w(() => i.isDark ? "#cfd3dc" : "#303133"), V = w(() => "#409eff"), G = y(!1), ee = y(null), X = y(!1), q = y(!1), oe = y(!1), P = y(!1), I = y(""), F = y(null);
|
|
1732
|
+
xe(() => u.path, () => {
|
|
1690
1733
|
j(), i.setMixSubMenus(f.value);
|
|
1691
|
-
}),
|
|
1734
|
+
}), xe(() => o.menuList, (r) => {
|
|
1692
1735
|
r && r.length > 0 && (j(), i.setMixSubMenus(f.value));
|
|
1693
1736
|
}, { immediate: !0 });
|
|
1694
|
-
const
|
|
1737
|
+
const J = /* @__PURE__ */ new Set([
|
|
1695
1738
|
"arrow-up",
|
|
1696
1739
|
"arrow-down",
|
|
1697
1740
|
"arrow-left",
|
|
@@ -1830,95 +1873,94 @@ const de = Ee("menu", () => {
|
|
|
1830
1873
|
list: "list",
|
|
1831
1874
|
grid: "grid"
|
|
1832
1875
|
}[r] || r;
|
|
1833
|
-
},
|
|
1876
|
+
}, ne = (r) => r ? r.charAt(0) : "", ue = (r) => J.has(r), _e = () => {
|
|
1834
1877
|
i.toggleTheme(), q.value = !1;
|
|
1835
|
-
},
|
|
1878
|
+
}, N = () => {
|
|
1836
1879
|
document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen();
|
|
1837
|
-
},
|
|
1838
|
-
|
|
1839
|
-
},
|
|
1840
|
-
|
|
1841
|
-
},
|
|
1842
|
-
|
|
1843
|
-
},
|
|
1844
|
-
|
|
1845
|
-
},
|
|
1846
|
-
s.push(r),
|
|
1847
|
-
},
|
|
1880
|
+
}, H = () => {
|
|
1881
|
+
X.value = !!document.fullscreenElement;
|
|
1882
|
+
}, de = () => {
|
|
1883
|
+
G.value = !G.value;
|
|
1884
|
+
}, te = () => {
|
|
1885
|
+
G.value = !1;
|
|
1886
|
+
}, Y = () => {
|
|
1887
|
+
P.value = !1, I.value = "";
|
|
1888
|
+
}, me = (r) => {
|
|
1889
|
+
s.push(r), Y();
|
|
1890
|
+
}, fe = () => {
|
|
1848
1891
|
q.value = !0;
|
|
1849
|
-
},
|
|
1850
|
-
|
|
1892
|
+
}, be = (r) => {
|
|
1893
|
+
oe.value = r;
|
|
1851
1894
|
const p = document.documentElement;
|
|
1852
1895
|
r ? p.classList.add("grey-mode") : p.classList.remove("grey-mode");
|
|
1853
|
-
},
|
|
1854
|
-
|
|
1855
|
-
},
|
|
1896
|
+
}, ce = () => {
|
|
1897
|
+
be(!oe.value), q.value = !1;
|
|
1898
|
+
}, ge = () => {
|
|
1856
1899
|
i.toggleTheme(), q.value = !1;
|
|
1857
1900
|
}, Me = [
|
|
1858
1901
|
{ value: "sidebar", label: "左侧菜单", icon: "sidebar-left" },
|
|
1859
1902
|
{ value: "top", label: "顶部菜单", icon: "menu" },
|
|
1860
1903
|
{ value: "mix", label: "混合菜单", icon: "grid" }
|
|
1861
|
-
],
|
|
1904
|
+
], ke = w(() => i.layout), we = (r) => {
|
|
1862
1905
|
i.setLayout(r), q.value = !1;
|
|
1863
1906
|
}, z = [
|
|
1864
1907
|
{ value: "#409eff", label: "默认蓝" },
|
|
1865
|
-
{ value: "#
|
|
1866
|
-
{ value: "#
|
|
1867
|
-
{ value: "#
|
|
1868
|
-
{ value: "#
|
|
1869
|
-
|
|
1870
|
-
], w = (r) => {
|
|
1908
|
+
{ value: "#0F6FDE", label: "企业蓝" },
|
|
1909
|
+
{ value: "#00A870", label: "翡翠绿" },
|
|
1910
|
+
{ value: "#D46B08", label: "琥珀橙" },
|
|
1911
|
+
{ value: "#1F2329", label: "石墨黑" }
|
|
1912
|
+
], k = (r) => {
|
|
1871
1913
|
i.setPrimaryColor(r), q.value = !1;
|
|
1872
|
-
},
|
|
1873
|
-
|
|
1874
|
-
},
|
|
1875
|
-
|
|
1914
|
+
}, se = () => {
|
|
1915
|
+
te(), s.push("/profile");
|
|
1916
|
+
}, $ = () => {
|
|
1917
|
+
te(), s.push("/change-password");
|
|
1876
1918
|
}, S = () => {
|
|
1877
|
-
|
|
1878
|
-
},
|
|
1879
|
-
|
|
1880
|
-
},
|
|
1881
|
-
r.key === "Escape" && (
|
|
1919
|
+
te(), v.logout(), h.clearUserInfo(), o.clearMenu(), s.push(i.loginPath);
|
|
1920
|
+
}, C = (r) => {
|
|
1921
|
+
ee.value && !ee.value.contains(r.target) && te(), F.value && !F.value.contains(r.target) && Y();
|
|
1922
|
+
}, ae = (r) => {
|
|
1923
|
+
r.key === "Escape" && (Y(), te());
|
|
1882
1924
|
};
|
|
1883
1925
|
return Ke(() => {
|
|
1884
|
-
document.addEventListener("click",
|
|
1926
|
+
document.addEventListener("click", C), document.addEventListener("fullscreenchange", H), document.addEventListener("keydown", ae), oe.value = document.documentElement.classList.contains("grey-mode"), j();
|
|
1885
1927
|
}), je(() => {
|
|
1886
|
-
document.removeEventListener("click",
|
|
1928
|
+
document.removeEventListener("click", C), document.removeEventListener("fullscreenchange", H), document.removeEventListener("keydown", ae);
|
|
1887
1929
|
}), (r, p) => {
|
|
1888
1930
|
var O;
|
|
1889
|
-
return a(), c("div",
|
|
1890
|
-
e("div",
|
|
1931
|
+
return a(), c("div", Jo, [
|
|
1932
|
+
e("div", Zo, [
|
|
1891
1933
|
e("img", {
|
|
1892
|
-
src:
|
|
1934
|
+
src: n.logoSrc,
|
|
1893
1935
|
alt: "Logo",
|
|
1894
1936
|
class: "mix-top-menu__logo-img"
|
|
1895
|
-
}, null, 8,
|
|
1896
|
-
e("span",
|
|
1937
|
+
}, null, 8, Qo),
|
|
1938
|
+
e("span", ea, x(l(i).appName), 1)
|
|
1897
1939
|
]),
|
|
1898
|
-
|
|
1940
|
+
b(l(Ge), {
|
|
1899
1941
|
"model-value": d.value,
|
|
1900
1942
|
mode: "horizontal",
|
|
1901
1943
|
"background-color": W.value,
|
|
1902
|
-
"text-color":
|
|
1944
|
+
"text-color": A.value,
|
|
1903
1945
|
"active-text-color": V.value,
|
|
1904
1946
|
class: "mix-top-menu__menu",
|
|
1905
1947
|
onSelect: D
|
|
1906
1948
|
}, {
|
|
1907
1949
|
default: M(() => [
|
|
1908
|
-
(a(!0), c(K, null,
|
|
1909
|
-
key:
|
|
1910
|
-
index:
|
|
1950
|
+
(a(!0), c(K, null, Z(l(o).menuList, (L) => (a(), B(l(Se), {
|
|
1951
|
+
key: L.menuUrl,
|
|
1952
|
+
index: L.menuUrl
|
|
1911
1953
|
}, {
|
|
1912
1954
|
default: M(() => [
|
|
1913
|
-
e("span",
|
|
1914
|
-
|
|
1915
|
-
|
|
1955
|
+
e("span", ta, [
|
|
1956
|
+
L.menuName !== "首页" ? (a(), c("span", sa, [
|
|
1957
|
+
ue(R(L.icon)) ? (a(), B(l(U), {
|
|
1916
1958
|
key: 0,
|
|
1917
|
-
name: R(
|
|
1959
|
+
name: R(L.icon),
|
|
1918
1960
|
size: 16
|
|
1919
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1920
|
-
])) :
|
|
1921
|
-
e("span",
|
|
1961
|
+
}, null, 8, ["name"])) : (a(), c("span", oa, x(ne(L.menuName)), 1))
|
|
1962
|
+
])) : T("", !0),
|
|
1963
|
+
e("span", aa, x(L.menuName), 1)
|
|
1922
1964
|
])
|
|
1923
1965
|
]),
|
|
1924
1966
|
_: 2
|
|
@@ -1926,181 +1968,194 @@ const de = Ee("menu", () => {
|
|
|
1926
1968
|
]),
|
|
1927
1969
|
_: 1
|
|
1928
1970
|
}, 8, ["model-value", "background-color", "text-color", "active-text-color"]),
|
|
1929
|
-
e("div",
|
|
1971
|
+
e("div", na, [
|
|
1930
1972
|
e("div", {
|
|
1931
1973
|
class: "mix-top-menu__search",
|
|
1932
1974
|
ref_key: "searchRef",
|
|
1933
|
-
ref:
|
|
1975
|
+
ref: F
|
|
1934
1976
|
}, [
|
|
1935
|
-
|
|
1977
|
+
b(l(U), {
|
|
1936
1978
|
name: "search",
|
|
1937
1979
|
size: 14,
|
|
1938
1980
|
class: "mix-top-menu__search-icon"
|
|
1939
1981
|
}),
|
|
1940
|
-
|
|
1941
|
-
"onUpdate:modelValue": p[0] || (p[0] = (
|
|
1982
|
+
Pe(e("input", {
|
|
1983
|
+
"onUpdate:modelValue": p[0] || (p[0] = (L) => I.value = L),
|
|
1942
1984
|
type: "text",
|
|
1943
1985
|
class: "mix-top-menu__search-input",
|
|
1944
1986
|
placeholder: "搜索菜单...",
|
|
1945
|
-
onFocus: p[1] || (p[1] = (
|
|
1987
|
+
onFocus: p[1] || (p[1] = (L) => P.value = !0)
|
|
1946
1988
|
}, null, 544), [
|
|
1947
|
-
[We,
|
|
1989
|
+
[We, I.value]
|
|
1948
1990
|
]),
|
|
1949
|
-
|
|
1991
|
+
b(Ce, { name: "search-dropdown" }, {
|
|
1950
1992
|
default: M(() => [
|
|
1951
|
-
|
|
1952
|
-
_.value.length > 0 ? (a(), c("div",
|
|
1953
|
-
(a(!0), c(K, null,
|
|
1954
|
-
key:
|
|
1993
|
+
P.value && (_.value.length > 0 || I.value) ? (a(), c("div", la, [
|
|
1994
|
+
_.value.length > 0 ? (a(), c("div", ra, [
|
|
1995
|
+
(a(!0), c(K, null, Z(_.value, (L) => (a(), c("div", {
|
|
1996
|
+
key: L.path,
|
|
1955
1997
|
class: "mix-top-menu__search-item",
|
|
1956
|
-
onClick: (Ze) =>
|
|
1998
|
+
onClick: (Ze) => me(L.path)
|
|
1957
1999
|
}, [
|
|
1958
|
-
|
|
1959
|
-
|
|
2000
|
+
L.title !== "首页" ? (a(), c("span", ca, [
|
|
2001
|
+
ue(R(L.icon)) ? (a(), B(l(U), {
|
|
1960
2002
|
key: 0,
|
|
1961
|
-
name: R(
|
|
2003
|
+
name: R(L.icon),
|
|
1962
2004
|
size: 16
|
|
1963
|
-
}, null, 8, ["name"])) : (a(), c("span",
|
|
1964
|
-
])) :
|
|
1965
|
-
e("span",
|
|
1966
|
-
|
|
1967
|
-
], 8,
|
|
1968
|
-
])) : (a(), c("div",
|
|
1969
|
-
])) :
|
|
2005
|
+
}, null, 8, ["name"])) : (a(), c("span", ua, x(ne(L.title)), 1))
|
|
2006
|
+
])) : T("", !0),
|
|
2007
|
+
e("span", da, x(L.title), 1),
|
|
2008
|
+
L.parentTitle ? (a(), c("span", ma, x(L.parentTitle), 1)) : T("", !0)
|
|
2009
|
+
], 8, ia))), 128))
|
|
2010
|
+
])) : (a(), c("div", pa, " 未找到匹配的菜单 "))
|
|
2011
|
+
])) : T("", !0)
|
|
1970
2012
|
]),
|
|
1971
2013
|
_: 1
|
|
1972
2014
|
})
|
|
1973
2015
|
], 512),
|
|
1974
2016
|
e("div", {
|
|
1975
2017
|
class: "mix-top-menu__action",
|
|
1976
|
-
onClick:
|
|
1977
|
-
title:
|
|
2018
|
+
onClick: N,
|
|
2019
|
+
title: X.value ? "退出全屏" : "全屏"
|
|
1978
2020
|
}, [
|
|
1979
|
-
|
|
1980
|
-
name:
|
|
2021
|
+
b(l(U), {
|
|
2022
|
+
name: X.value ? "fullscreen-exit" : "fullscreen",
|
|
1981
2023
|
size: 16
|
|
1982
2024
|
}, null, 8, ["name"])
|
|
1983
|
-
], 8,
|
|
2025
|
+
], 8, va),
|
|
1984
2026
|
e("div", {
|
|
1985
2027
|
class: "mix-top-menu__action",
|
|
1986
|
-
onClick:
|
|
2028
|
+
onClick: fe,
|
|
1987
2029
|
title: "换肤设置"
|
|
1988
2030
|
}, [
|
|
1989
|
-
|
|
2031
|
+
b(l(U), {
|
|
1990
2032
|
name: "skin",
|
|
1991
2033
|
size: 16
|
|
1992
2034
|
})
|
|
1993
2035
|
]),
|
|
1994
2036
|
e("div", {
|
|
1995
2037
|
class: "mix-top-menu__action",
|
|
1996
|
-
onClick:
|
|
2038
|
+
onClick: _e,
|
|
1997
2039
|
title: "切换主题"
|
|
1998
2040
|
}, [
|
|
1999
|
-
|
|
2000
|
-
name:
|
|
2041
|
+
b(l(U), {
|
|
2042
|
+
name: l(i).isDark ? "sun" : "moon",
|
|
2001
2043
|
size: 16
|
|
2002
2044
|
}, null, 8, ["name"])
|
|
2003
2045
|
]),
|
|
2004
2046
|
e("div", {
|
|
2005
2047
|
class: "mix-top-menu__user",
|
|
2006
2048
|
ref_key: "dropdownRef",
|
|
2007
|
-
ref:
|
|
2049
|
+
ref: ee
|
|
2008
2050
|
}, [
|
|
2009
2051
|
e("div", {
|
|
2010
2052
|
class: "mix-top-menu__user-trigger",
|
|
2011
|
-
onClick:
|
|
2053
|
+
onClick: Te(de, ["stop"])
|
|
2012
2054
|
}, [
|
|
2013
|
-
e("div",
|
|
2014
|
-
e("span", null, x(((O =
|
|
2055
|
+
e("div", ha, [
|
|
2056
|
+
e("span", null, x(((O = l(h).userName) == null ? void 0 : O.charAt(0)) || "U"), 1)
|
|
2015
2057
|
]),
|
|
2016
|
-
e("span",
|
|
2058
|
+
e("span", _a, x(l(h).userName), 1),
|
|
2017
2059
|
e("span", {
|
|
2018
|
-
class:
|
|
2019
|
-
},
|
|
2060
|
+
class: Q(["mix-top-menu__user-arrow", { "is-active": G.value }])
|
|
2061
|
+
}, [...p[3] || (p[3] = [
|
|
2062
|
+
e("svg", {
|
|
2063
|
+
viewBox: "0 0 12 12",
|
|
2064
|
+
width: "10",
|
|
2065
|
+
height: "10",
|
|
2066
|
+
fill: "none",
|
|
2067
|
+
stroke: "currentColor",
|
|
2068
|
+
"stroke-width": "1.5",
|
|
2069
|
+
"stroke-linecap": "round",
|
|
2070
|
+
"stroke-linejoin": "round"
|
|
2071
|
+
}, [
|
|
2072
|
+
e("path", { d: "M2.5 4.5 6 8l3.5-3.5" })
|
|
2073
|
+
], -1)
|
|
2074
|
+
])], 2)
|
|
2020
2075
|
]),
|
|
2021
|
-
|
|
2076
|
+
b(Ce, { name: "dropdown" }, {
|
|
2022
2077
|
default: M(() => {
|
|
2023
|
-
var
|
|
2078
|
+
var L;
|
|
2024
2079
|
return [
|
|
2025
|
-
|
|
2026
|
-
e("div",
|
|
2027
|
-
e("div", ga, [
|
|
2028
|
-
e("span", null, x((($ = n(h).userName) == null ? void 0 : $.charAt(0)) || "U"), 1)
|
|
2029
|
-
]),
|
|
2080
|
+
G.value ? (a(), c("div", fa, [
|
|
2081
|
+
e("div", ga, [
|
|
2030
2082
|
e("div", ya, [
|
|
2031
|
-
e("
|
|
2032
|
-
|
|
2083
|
+
e("span", null, x(((L = l(h).userName) == null ? void 0 : L.charAt(0)) || "U"), 1)
|
|
2084
|
+
]),
|
|
2085
|
+
e("div", ba, [
|
|
2086
|
+
e("div", ka, x(l(h).userName), 1),
|
|
2087
|
+
e("div", wa, x(l(h).departmentName), 1)
|
|
2033
2088
|
])
|
|
2034
2089
|
]),
|
|
2035
|
-
p[
|
|
2036
|
-
e("div",
|
|
2090
|
+
p[8] || (p[8] = e("div", { class: "mix-top-menu__dropdown-divider" }, null, -1)),
|
|
2091
|
+
e("div", xa, [
|
|
2037
2092
|
e("div", {
|
|
2038
2093
|
class: "mix-top-menu__dropdown-item",
|
|
2039
|
-
onClick:
|
|
2094
|
+
onClick: se
|
|
2040
2095
|
}, [
|
|
2041
|
-
|
|
2096
|
+
b(l(U), {
|
|
2042
2097
|
name: "user",
|
|
2043
2098
|
size: 16
|
|
2044
2099
|
}),
|
|
2045
|
-
p[
|
|
2100
|
+
p[4] || (p[4] = e("span", null, "个人信息", -1))
|
|
2046
2101
|
]),
|
|
2047
2102
|
e("div", {
|
|
2048
2103
|
class: "mix-top-menu__dropdown-item",
|
|
2049
|
-
onClick:
|
|
2104
|
+
onClick: $
|
|
2050
2105
|
}, [
|
|
2051
|
-
|
|
2106
|
+
b(l(U), {
|
|
2052
2107
|
name: "lock",
|
|
2053
2108
|
size: 16
|
|
2054
2109
|
}),
|
|
2055
|
-
p[
|
|
2110
|
+
p[5] || (p[5] = e("span", null, "修改密码", -1))
|
|
2056
2111
|
]),
|
|
2057
|
-
p[
|
|
2112
|
+
p[7] || (p[7] = e("div", { class: "mix-top-menu__dropdown-divider" }, null, -1)),
|
|
2058
2113
|
e("div", {
|
|
2059
2114
|
class: "mix-top-menu__dropdown-item mix-top-menu__dropdown-item--danger",
|
|
2060
2115
|
onClick: S
|
|
2061
2116
|
}, [
|
|
2062
|
-
|
|
2117
|
+
b(l(U), {
|
|
2063
2118
|
name: "logout",
|
|
2064
2119
|
size: 16
|
|
2065
2120
|
}),
|
|
2066
|
-
p[
|
|
2121
|
+
p[6] || (p[6] = e("span", null, "退出登录", -1))
|
|
2067
2122
|
])
|
|
2068
2123
|
])
|
|
2069
|
-
])) :
|
|
2124
|
+
])) : T("", !0)
|
|
2070
2125
|
];
|
|
2071
2126
|
}),
|
|
2072
2127
|
_: 1
|
|
2073
2128
|
})
|
|
2074
2129
|
], 512)
|
|
2075
2130
|
]),
|
|
2076
|
-
|
|
2131
|
+
b(l(Xe), {
|
|
2077
2132
|
modelValue: q.value,
|
|
2078
|
-
"onUpdate:modelValue": p[2] || (p[2] = (
|
|
2133
|
+
"onUpdate:modelValue": p[2] || (p[2] = (L) => q.value = L),
|
|
2079
2134
|
title: "换肤设置",
|
|
2080
2135
|
direction: "rtl",
|
|
2081
2136
|
size: "320px"
|
|
2082
2137
|
}, {
|
|
2083
2138
|
default: M(() => [
|
|
2084
|
-
e("div",
|
|
2085
|
-
e("div",
|
|
2086
|
-
p[
|
|
2087
|
-
e("div",
|
|
2088
|
-
(a(), c(K, null,
|
|
2089
|
-
key:
|
|
2090
|
-
class:
|
|
2091
|
-
onClick: (Ze) =>
|
|
2139
|
+
e("div", Ca, [
|
|
2140
|
+
e("div", $a, [
|
|
2141
|
+
p[12] || (p[12] = e("div", { class: "settings-title" }, "布局模式", -1)),
|
|
2142
|
+
e("div", La, [
|
|
2143
|
+
(a(), c(K, null, Z(Me, (L) => e("div", {
|
|
2144
|
+
key: L.value,
|
|
2145
|
+
class: Q(["layout-option", { "is-active": ke.value === L.value }]),
|
|
2146
|
+
onClick: (Ze) => we(L.value)
|
|
2092
2147
|
}, [
|
|
2093
|
-
e("div",
|
|
2094
|
-
|
|
2148
|
+
e("div", Sa, [
|
|
2149
|
+
L.value === "sidebar" ? (a(), c("div", Na, [...p[9] || (p[9] = [
|
|
2095
2150
|
e("div", { class: "preview-aside" }, null, -1),
|
|
2096
2151
|
e("div", { class: "preview-main" }, [
|
|
2097
2152
|
e("div", { class: "preview-header" }),
|
|
2098
2153
|
e("div", { class: "preview-content" })
|
|
2099
2154
|
], -1)
|
|
2100
|
-
])])) :
|
|
2155
|
+
])])) : L.value === "top" ? (a(), c("div", Ia, [...p[10] || (p[10] = [
|
|
2101
2156
|
e("div", { class: "preview-header-full" }, null, -1),
|
|
2102
2157
|
e("div", { class: "preview-content-full" }, null, -1)
|
|
2103
|
-
])])) : (a(), c("div",
|
|
2158
|
+
])])) : (a(), c("div", Ea, [...p[11] || (p[11] = [
|
|
2104
2159
|
e("div", { class: "preview-header-mix" }, [
|
|
2105
2160
|
e("div", { class: "preview-mix-left" })
|
|
2106
2161
|
], -1),
|
|
@@ -2110,47 +2165,47 @@ const de = Ee("menu", () => {
|
|
|
2110
2165
|
], -1)
|
|
2111
2166
|
])]))
|
|
2112
2167
|
]),
|
|
2113
|
-
e("span",
|
|
2114
|
-
], 10,
|
|
2168
|
+
e("span", Ua, x(L.label), 1)
|
|
2169
|
+
], 10, Ma)), 64))
|
|
2115
2170
|
])
|
|
2116
2171
|
]),
|
|
2117
|
-
e("div",
|
|
2118
|
-
p[
|
|
2119
|
-
e("div",
|
|
2120
|
-
(a(), c(K, null,
|
|
2121
|
-
key:
|
|
2122
|
-
class:
|
|
2123
|
-
style: Ne({ backgroundColor:
|
|
2124
|
-
title:
|
|
2125
|
-
onClick: (Ze) =>
|
|
2172
|
+
e("div", za, [
|
|
2173
|
+
p[13] || (p[13] = e("div", { class: "settings-title" }, "主题色", -1)),
|
|
2174
|
+
e("div", Pa, [
|
|
2175
|
+
(a(), c(K, null, Z(z, (L) => e("div", {
|
|
2176
|
+
key: L.value,
|
|
2177
|
+
class: Q(["color-option", { "is-active": l(i).primaryColor === L.value }]),
|
|
2178
|
+
style: Ne({ backgroundColor: L.value }),
|
|
2179
|
+
title: L.label,
|
|
2180
|
+
onClick: (Ze) => k(L.value)
|
|
2126
2181
|
}, [
|
|
2127
|
-
|
|
2182
|
+
l(i).primaryColor === L.value ? (a(), B(l(U), {
|
|
2128
2183
|
key: 0,
|
|
2129
2184
|
name: "check",
|
|
2130
2185
|
size: 12,
|
|
2131
2186
|
color: "#fff"
|
|
2132
|
-
})) :
|
|
2187
|
+
})) : T("", !0)
|
|
2133
2188
|
], 14, Ta)), 64))
|
|
2134
2189
|
])
|
|
2135
2190
|
]),
|
|
2136
|
-
e("div",
|
|
2137
|
-
p[
|
|
2138
|
-
e("div",
|
|
2139
|
-
e("div",
|
|
2140
|
-
p[
|
|
2191
|
+
e("div", Fa, [
|
|
2192
|
+
p[18] || (p[18] = e("div", { class: "settings-title" }, "功能设置", -1)),
|
|
2193
|
+
e("div", Da, [
|
|
2194
|
+
e("div", Aa, [
|
|
2195
|
+
p[15] || (p[15] = e("span", null, "灰色模式", -1)),
|
|
2141
2196
|
e("div", {
|
|
2142
|
-
class:
|
|
2143
|
-
onClick:
|
|
2144
|
-
}, [...p[
|
|
2197
|
+
class: Q(["switch-wrapper", { "is-checked": oe.value }]),
|
|
2198
|
+
onClick: ce
|
|
2199
|
+
}, [...p[14] || (p[14] = [
|
|
2145
2200
|
e("span", { class: "switch-core" }, null, -1)
|
|
2146
2201
|
])], 2)
|
|
2147
2202
|
]),
|
|
2148
|
-
e("div",
|
|
2149
|
-
p[
|
|
2203
|
+
e("div", Ba, [
|
|
2204
|
+
p[17] || (p[17] = e("span", null, "暗黑模式", -1)),
|
|
2150
2205
|
e("div", {
|
|
2151
|
-
class:
|
|
2152
|
-
onClick:
|
|
2153
|
-
}, [...p[
|
|
2206
|
+
class: Q(["switch-wrapper", { "is-checked": l(i).isDark }]),
|
|
2207
|
+
onClick: ge
|
|
2208
|
+
}, [...p[16] || (p[16] = [
|
|
2154
2209
|
e("span", { class: "switch-core" }, null, -1)
|
|
2155
2210
|
])], 2)
|
|
2156
2211
|
])
|
|
@@ -2163,95 +2218,95 @@ const de = Ee("menu", () => {
|
|
|
2163
2218
|
]);
|
|
2164
2219
|
};
|
|
2165
2220
|
}
|
|
2166
|
-
}),
|
|
2221
|
+
}), Oa = /* @__PURE__ */ ie(Va, [["__scopeId", "data-v-8f17ad06"]]), Ra = {
|
|
2167
2222
|
key: 0,
|
|
2168
2223
|
class: "layout layout--sidebar"
|
|
2169
|
-
},
|
|
2224
|
+
}, Ka = { class: "layout__main" }, ja = { class: "layout__header" }, Wa = { class: "layout__content" }, qa = {
|
|
2170
2225
|
key: 1,
|
|
2171
2226
|
class: "layout layout--top"
|
|
2172
|
-
},
|
|
2227
|
+
}, Ha = { class: "layout__top-menu" }, Ya = { class: "layout__main" }, Ga = { class: "layout__content" }, Xa = {
|
|
2173
2228
|
key: 2,
|
|
2174
2229
|
class: "layout layout--mix"
|
|
2175
|
-
},
|
|
2230
|
+
}, Ja = { class: "layout__mix-top-menu" }, Za = { class: "layout__mix-body" }, Qa = { class: "layout__content" }, en = /* @__PURE__ */ le({
|
|
2176
2231
|
__name: "index",
|
|
2177
2232
|
props: {
|
|
2178
2233
|
logoSrc: { default: "/vite.svg" }
|
|
2179
2234
|
},
|
|
2180
2235
|
setup(t) {
|
|
2181
|
-
const
|
|
2236
|
+
const n = t, u = pe(), s = ve(), o = w(
|
|
2182
2237
|
() => u.isCollapsed ? "64px" : "210px"
|
|
2183
|
-
), i =
|
|
2238
|
+
), i = w(() => u.layout), h = w(() => i.value === "mix"), v = w(() => i.value === "sidebar" ? s.menuList : i.value === "mix" ? u.mixSubMenus : []), d = w(() => h.value ? v.value.length > 0 : !1);
|
|
2184
2239
|
return (g, _) => {
|
|
2185
2240
|
const f = it("router-view");
|
|
2186
2241
|
return a(), c(K, null, [
|
|
2187
|
-
i.value === "sidebar" ? (a(), c("div",
|
|
2242
|
+
i.value === "sidebar" ? (a(), c("div", Ra, [
|
|
2188
2243
|
e("aside", {
|
|
2189
2244
|
class: "layout__aside",
|
|
2190
2245
|
style: Ne({ width: o.value })
|
|
2191
2246
|
}, [
|
|
2192
|
-
|
|
2247
|
+
b(st, {
|
|
2193
2248
|
"menu-list": v.value,
|
|
2194
2249
|
"show-logo": !0,
|
|
2195
2250
|
"show-user": !0,
|
|
2196
|
-
"logo-src":
|
|
2251
|
+
"logo-src": n.logoSrc
|
|
2197
2252
|
}, null, 8, ["menu-list", "logo-src"])
|
|
2198
2253
|
], 4),
|
|
2199
|
-
e("div",
|
|
2200
|
-
e("header",
|
|
2201
|
-
|
|
2254
|
+
e("div", Ka, [
|
|
2255
|
+
e("header", ja, [
|
|
2256
|
+
b(Rs)
|
|
2202
2257
|
]),
|
|
2203
|
-
e("main",
|
|
2204
|
-
|
|
2258
|
+
e("main", Wa, [
|
|
2259
|
+
b(f)
|
|
2205
2260
|
])
|
|
2206
2261
|
])
|
|
2207
|
-
])) :
|
|
2208
|
-
i.value === "top" ? (a(), c("div",
|
|
2209
|
-
e("div",
|
|
2210
|
-
|
|
2211
|
-
"logo-src":
|
|
2262
|
+
])) : T("", !0),
|
|
2263
|
+
i.value === "top" ? (a(), c("div", qa, [
|
|
2264
|
+
e("div", Ha, [
|
|
2265
|
+
b(Xo, {
|
|
2266
|
+
"logo-src": n.logoSrc
|
|
2212
2267
|
}, null, 8, ["logo-src"])
|
|
2213
2268
|
]),
|
|
2214
|
-
e("div",
|
|
2215
|
-
e("main",
|
|
2216
|
-
|
|
2269
|
+
e("div", Ya, [
|
|
2270
|
+
e("main", Ga, [
|
|
2271
|
+
b(f)
|
|
2217
2272
|
])
|
|
2218
2273
|
])
|
|
2219
|
-
])) :
|
|
2220
|
-
i.value === "mix" ? (a(), c("div",
|
|
2221
|
-
e("div",
|
|
2222
|
-
|
|
2223
|
-
"logo-src":
|
|
2274
|
+
])) : T("", !0),
|
|
2275
|
+
i.value === "mix" ? (a(), c("div", Xa, [
|
|
2276
|
+
e("div", Ja, [
|
|
2277
|
+
b(Oa, {
|
|
2278
|
+
"logo-src": n.logoSrc
|
|
2224
2279
|
}, null, 8, ["logo-src"])
|
|
2225
2280
|
]),
|
|
2226
|
-
e("div",
|
|
2281
|
+
e("div", Za, [
|
|
2227
2282
|
d.value ? (a(), c("aside", {
|
|
2228
2283
|
key: 0,
|
|
2229
2284
|
class: "layout__aside",
|
|
2230
2285
|
style: Ne({ width: o.value })
|
|
2231
2286
|
}, [
|
|
2232
|
-
|
|
2287
|
+
b(st, {
|
|
2233
2288
|
"menu-list": v.value,
|
|
2234
2289
|
"show-logo": !1,
|
|
2235
2290
|
"show-user": !1
|
|
2236
2291
|
}, null, 8, ["menu-list"])
|
|
2237
|
-
], 4)) :
|
|
2238
|
-
e("main",
|
|
2239
|
-
|
|
2292
|
+
], 4)) : T("", !0),
|
|
2293
|
+
e("main", Qa, [
|
|
2294
|
+
b(f)
|
|
2240
2295
|
])
|
|
2241
2296
|
])
|
|
2242
|
-
])) :
|
|
2297
|
+
])) : T("", !0)
|
|
2243
2298
|
], 64);
|
|
2244
2299
|
};
|
|
2245
2300
|
}
|
|
2246
|
-
}), ut = /* @__PURE__ */
|
|
2301
|
+
}), ut = /* @__PURE__ */ ie(en, [["__scopeId", "data-v-9382a033"]]), tn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2247
2302
|
__proto__: null,
|
|
2248
2303
|
default: ut
|
|
2249
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
2304
|
+
}, Symbol.toStringTag, { value: "Module" })), sn = { class: "tabs-wrapper" }, on = { class: "tab-label" }, an = ["onClick"], nn = /* @__PURE__ */ le({
|
|
2250
2305
|
__name: "Tabs",
|
|
2251
2306
|
setup(t) {
|
|
2252
|
-
const
|
|
2307
|
+
const n = Le(), u = he(), s = w(() => {
|
|
2253
2308
|
const v = [];
|
|
2254
|
-
return
|
|
2309
|
+
return n.matched.forEach((d) => {
|
|
2255
2310
|
var g;
|
|
2256
2311
|
(g = d.meta) != null && g.affix && v.push({
|
|
2257
2312
|
name: d.name,
|
|
@@ -2260,7 +2315,7 @@ const de = Ee("menu", () => {
|
|
|
2260
2315
|
affix: !0
|
|
2261
2316
|
});
|
|
2262
2317
|
}), v;
|
|
2263
|
-
}), o =
|
|
2318
|
+
}), o = w(() => n.path), i = (v) => {
|
|
2264
2319
|
u.push(v);
|
|
2265
2320
|
}, h = (v) => {
|
|
2266
2321
|
const d = s.value.find((g) => g.path === v);
|
|
@@ -2269,28 +2324,28 @@ const de = Ee("menu", () => {
|
|
|
2269
2324
|
_ && u.push(_.path);
|
|
2270
2325
|
}
|
|
2271
2326
|
};
|
|
2272
|
-
return (v, d) => (a(), c("div",
|
|
2273
|
-
|
|
2327
|
+
return (v, d) => (a(), c("div", sn, [
|
|
2328
|
+
b(l($t), {
|
|
2274
2329
|
modelValue: o.value,
|
|
2275
2330
|
"onUpdate:modelValue": d[0] || (d[0] = (g) => o.value = g),
|
|
2276
2331
|
type: "card",
|
|
2277
2332
|
onTabClick: i
|
|
2278
2333
|
}, {
|
|
2279
2334
|
default: M(() => [
|
|
2280
|
-
(a(!0), c(K, null,
|
|
2335
|
+
(a(!0), c(K, null, Z(s.value, (g) => (a(), B(l(Lt), {
|
|
2281
2336
|
key: g.path,
|
|
2282
2337
|
name: g.path,
|
|
2283
2338
|
label: g.title,
|
|
2284
2339
|
closable: !g.affix
|
|
2285
2340
|
}, {
|
|
2286
2341
|
label: M(() => [
|
|
2287
|
-
e("span",
|
|
2288
|
-
|
|
2289
|
-
g.affix ?
|
|
2342
|
+
e("span", on, [
|
|
2343
|
+
ye(x(g.title) + " ", 1),
|
|
2344
|
+
g.affix ? T("", !0) : (a(), c("span", {
|
|
2290
2345
|
key: 0,
|
|
2291
2346
|
class: "tab-close",
|
|
2292
|
-
onClick:
|
|
2293
|
-
}, " ✕ ", 8,
|
|
2347
|
+
onClick: Te((_) => h(g.path), ["stop"])
|
|
2348
|
+
}, " ✕ ", 8, an))
|
|
2294
2349
|
])
|
|
2295
2350
|
]),
|
|
2296
2351
|
_: 2
|
|
@@ -2300,16 +2355,16 @@ const de = Ee("menu", () => {
|
|
|
2300
2355
|
}, 8, ["modelValue"])
|
|
2301
2356
|
]));
|
|
2302
2357
|
}
|
|
2303
|
-
}),
|
|
2304
|
-
function
|
|
2305
|
-
return a(), c("div",
|
|
2358
|
+
}), Gn = /* @__PURE__ */ ie(nn, [["__scopeId", "data-v-0a4ca30d"]]), ln = {}, rn = { class: "footer" };
|
|
2359
|
+
function cn(t, n) {
|
|
2360
|
+
return a(), c("div", rn, [...n[0] || (n[0] = [
|
|
2306
2361
|
e("span", null, "Copyright © 2024 Xto Demo. All Rights Reserved.", -1)
|
|
2307
2362
|
])]);
|
|
2308
2363
|
}
|
|
2309
|
-
const
|
|
2364
|
+
const Xn = /* @__PURE__ */ ie(ln, [["render", cn], ["__scopeId", "data-v-ac63e349"]]), un = { class: "login-page" }, dn = { class: "login-form-section" }, mn = { class: "form-container" }, pn = { class: "input-wrapper" }, vn = { class: "input-wrapper" }, hn = { class: "form-options" }, _n = { key: 0 }, fn = { key: 1 }, gn = /* @__PURE__ */ le({
|
|
2310
2365
|
__name: "index",
|
|
2311
2366
|
setup(t) {
|
|
2312
|
-
const
|
|
2367
|
+
const n = he(), u = Le(), s = y(!1), o = y(!1), i = qe({
|
|
2313
2368
|
uid: "",
|
|
2314
2369
|
password: ""
|
|
2315
2370
|
}), h = {
|
|
@@ -2333,22 +2388,22 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2333
2388
|
});
|
|
2334
2389
|
lt(_), Mt.success("登录成功");
|
|
2335
2390
|
const f = u.query.redirect;
|
|
2336
|
-
f ?
|
|
2391
|
+
f ? n.push(f) : n.push({ name: "Dashboard" });
|
|
2337
2392
|
} catch (_) {
|
|
2338
2393
|
console.error("登录失败:", _);
|
|
2339
2394
|
} finally {
|
|
2340
2395
|
s.value = !1;
|
|
2341
2396
|
}
|
|
2342
2397
|
};
|
|
2343
|
-
return (g, _) => (a(), c("div",
|
|
2344
|
-
_[10] || (_[10] = ze('<div class="login-brand" data-v-
|
|
2345
|
-
e("div",
|
|
2346
|
-
e("div",
|
|
2398
|
+
return (g, _) => (a(), c("div", un, [
|
|
2399
|
+
_[10] || (_[10] = ze('<div class="login-brand" data-v-20b19b53><div class="brand-content" data-v-20b19b53><div class="brand-logo" data-v-20b19b53><div class="logo-icon" data-v-20b19b53><svg viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-20b19b53><rect width="48" height="48" rx="12" fill="currentColor" data-v-20b19b53></rect><path d="M14 24L20 30L34 16" stroke="white" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" data-v-20b19b53></path></svg></div><span class="logo-text" data-v-20b19b53>XTO</span></div><div class="brand-slogan" data-v-20b19b53><h1 data-v-20b19b53>企业级后台管理解决方案</h1><p data-v-20b19b53>开箱即用的中后台前端/设计解决方案</p></div><div class="brand-features" data-v-20b19b53><div class="feature-item" data-v-20b19b53><div class="feature-icon" data-v-20b19b53><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-20b19b53><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" data-v-20b19b53></path></svg></div><div class="feature-text" data-v-20b19b53><h4 data-v-20b19b53>高性能</h4><p data-v-20b19b53>极致的渲染性能与响应速度</p></div></div><div class="feature-item" data-v-20b19b53><div class="feature-icon" data-v-20b19b53><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-20b19b53><rect x="3" y="3" width="18" height="18" rx="2" data-v-20b19b53></rect><path d="M9 9h6M9 12h6M9 15h4" data-v-20b19b53></path></svg></div><div class="feature-text" data-v-20b19b53><h4 data-v-20b19b53>丰富组件</h4><p data-v-20b19b53>60+ 高质量业务组件</p></div></div><div class="feature-item" data-v-20b19b53><div class="feature-icon" data-v-20b19b53><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-20b19b53><circle cx="12" cy="12" r="10" data-v-20b19b53></circle><path d="M12 6v6l4 2" data-v-20b19b53></path></svg></div><div class="feature-text" data-v-20b19b53><h4 data-v-20b19b53>持续更新</h4><p data-v-20b19b53>活跃的社区与快速迭代</p></div></div></div><div class="brand-decoration" data-v-20b19b53><div class="decoration-line" data-v-20b19b53></div><div class="decoration-dots" data-v-20b19b53><span data-v-20b19b53></span><span data-v-20b19b53></span><span data-v-20b19b53></span></div></div></div><div class="brand-bg" data-v-20b19b53><div class="bg-grid" data-v-20b19b53></div></div></div>', 1)),
|
|
2400
|
+
e("div", dn, [
|
|
2401
|
+
e("div", mn, [
|
|
2347
2402
|
_[7] || (_[7] = e("div", { class: "form-header" }, [
|
|
2348
2403
|
e("h2", null, "欢迎登录"),
|
|
2349
2404
|
e("p", null, "请输入您的账户信息")
|
|
2350
2405
|
], -1)),
|
|
2351
|
-
|
|
2406
|
+
b(l(St), {
|
|
2352
2407
|
ref_key: "formRef",
|
|
2353
2408
|
ref: v,
|
|
2354
2409
|
model: i,
|
|
@@ -2357,18 +2412,18 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2357
2412
|
"label-width": "0"
|
|
2358
2413
|
}, {
|
|
2359
2414
|
default: M(() => [
|
|
2360
|
-
|
|
2415
|
+
b(l(Fe), { prop: "uid" }, {
|
|
2361
2416
|
default: M(() => [
|
|
2362
|
-
e("div",
|
|
2417
|
+
e("div", pn, [
|
|
2363
2418
|
_[3] || (_[3] = e("label", { class: "input-label" }, "用户名", -1)),
|
|
2364
|
-
|
|
2419
|
+
b(l(tt), {
|
|
2365
2420
|
modelValue: i.uid,
|
|
2366
2421
|
"onUpdate:modelValue": _[0] || (_[0] = (f) => i.uid = f),
|
|
2367
2422
|
placeholder: "请输入用户名",
|
|
2368
2423
|
size: "large"
|
|
2369
2424
|
}, {
|
|
2370
2425
|
prefix: M(() => [
|
|
2371
|
-
|
|
2426
|
+
b(l(U), {
|
|
2372
2427
|
name: "user",
|
|
2373
2428
|
size: 18
|
|
2374
2429
|
})
|
|
@@ -2379,11 +2434,11 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2379
2434
|
]),
|
|
2380
2435
|
_: 1
|
|
2381
2436
|
}),
|
|
2382
|
-
|
|
2437
|
+
b(l(Fe), { prop: "password" }, {
|
|
2383
2438
|
default: M(() => [
|
|
2384
|
-
e("div",
|
|
2439
|
+
e("div", vn, [
|
|
2385
2440
|
_[4] || (_[4] = e("label", { class: "input-label" }, "密码", -1)),
|
|
2386
|
-
|
|
2441
|
+
b(l(tt), {
|
|
2387
2442
|
modelValue: i.password,
|
|
2388
2443
|
"onUpdate:modelValue": _[1] || (_[1] = (f) => i.password = f),
|
|
2389
2444
|
type: "password",
|
|
@@ -2393,7 +2448,7 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2393
2448
|
onKeyup: xt(d, ["enter"])
|
|
2394
2449
|
}, {
|
|
2395
2450
|
prefix: M(() => [
|
|
2396
|
-
|
|
2451
|
+
b(l(U), {
|
|
2397
2452
|
name: "lock",
|
|
2398
2453
|
size: 18
|
|
2399
2454
|
})
|
|
@@ -2404,13 +2459,13 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2404
2459
|
]),
|
|
2405
2460
|
_: 1
|
|
2406
2461
|
}),
|
|
2407
|
-
e("div",
|
|
2408
|
-
|
|
2462
|
+
e("div", hn, [
|
|
2463
|
+
b(l(Nt), {
|
|
2409
2464
|
modelValue: o.value,
|
|
2410
2465
|
"onUpdate:modelValue": _[2] || (_[2] = (f) => o.value = f)
|
|
2411
2466
|
}, {
|
|
2412
2467
|
default: M(() => [..._[5] || (_[5] = [
|
|
2413
|
-
|
|
2468
|
+
ye("记住我", -1)
|
|
2414
2469
|
])]),
|
|
2415
2470
|
_: 1
|
|
2416
2471
|
}, 8, ["modelValue"]),
|
|
@@ -2419,9 +2474,9 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2419
2474
|
class: "forgot-link"
|
|
2420
2475
|
}, "忘记密码?", -1))
|
|
2421
2476
|
]),
|
|
2422
|
-
|
|
2477
|
+
b(l(Fe), null, {
|
|
2423
2478
|
default: M(() => [
|
|
2424
|
-
|
|
2479
|
+
b(l($e), {
|
|
2425
2480
|
type: "primary",
|
|
2426
2481
|
size: "large",
|
|
2427
2482
|
loading: s.value,
|
|
@@ -2429,7 +2484,7 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2429
2484
|
onClick: d
|
|
2430
2485
|
}, {
|
|
2431
2486
|
default: M(() => [
|
|
2432
|
-
s.value ? (a(), c("span",
|
|
2487
|
+
s.value ? (a(), c("span", fn, "登录中...")) : (a(), c("span", _n, "登 录"))
|
|
2433
2488
|
]),
|
|
2434
2489
|
_: 1
|
|
2435
2490
|
}, 8, ["loading"])
|
|
@@ -2439,7 +2494,7 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2439
2494
|
]),
|
|
2440
2495
|
_: 1
|
|
2441
2496
|
}, 8, ["model"]),
|
|
2442
|
-
_[8] || (_[8] = ze('<div class="form-footer" data-v-
|
|
2497
|
+
_[8] || (_[8] = ze('<div class="form-footer" data-v-20b19b53><p data-v-20b19b53>其他登录方式</p><div class="social-login" data-v-20b19b53><button class="social-btn" title="企业微信" data-v-20b19b53><svg viewBox="0 0 24 24" fill="currentColor" data-v-20b19b53><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" data-v-20b19b53></path></svg></button><button class="social-btn" title="钉钉" data-v-20b19b53><svg viewBox="0 0 24 24" fill="currentColor" data-v-20b19b53><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69a.2.2 0 00-.05-.18c-.06-.05-.14-.03-.21-.02-.09.02-1.49.95-4.22 2.79-.4.27-.76.41-1.08.4-.36-.01-1.04-.2-1.55-.37-.63-.2-1.12-.31-1.08-.66.02-.18.27-.36.74-.55 2.92-1.27 4.86-2.11 5.83-2.51 2.78-1.16 3.35-1.36 3.73-1.36.08 0 .27.02.39.12.1.08.13.19.14.27-.01.06.01.24 0 .38z" data-v-20b19b53></path></svg></button><button class="social-btn" title="飞书" data-v-20b19b53><svg viewBox="0 0 24 24" fill="currentColor" data-v-20b19b53><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" data-v-20b19b53></path></svg></button></div></div>', 1))
|
|
2443
2498
|
]),
|
|
2444
2499
|
_[9] || (_[9] = e("div", { class: "copyright" }, [
|
|
2445
2500
|
e("p", null, "© 2024 XTO Team. All rights reserved.")
|
|
@@ -2447,14 +2502,14 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2447
2502
|
])
|
|
2448
2503
|
]));
|
|
2449
2504
|
}
|
|
2450
|
-
}),
|
|
2505
|
+
}), yn = /* @__PURE__ */ ie(gn, [["__scopeId", "data-v-20b19b53"]]), bn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2451
2506
|
__proto__: null,
|
|
2452
|
-
default:
|
|
2453
|
-
}, Symbol.toStringTag, { value: "Module" })), kn = { class: "error-page" }, wn = { class: "error-container" },
|
|
2507
|
+
default: yn
|
|
2508
|
+
}, Symbol.toStringTag, { value: "Module" })), kn = { class: "error-page" }, wn = { class: "error-container" }, xn = { class: "error-content" }, Cn = { class: "error-actions" }, $n = /* @__PURE__ */ le({
|
|
2454
2509
|
__name: "404",
|
|
2455
2510
|
setup(t) {
|
|
2456
|
-
const
|
|
2457
|
-
|
|
2511
|
+
const n = he(), u = () => {
|
|
2512
|
+
n.push("/");
|
|
2458
2513
|
};
|
|
2459
2514
|
return (s, o) => (a(), c("div", kn, [
|
|
2460
2515
|
e("div", wn, [
|
|
@@ -2463,10 +2518,10 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2463
2518
|
e("div", { class: "bg-circle circle-2" }),
|
|
2464
2519
|
e("div", { class: "bg-circle circle-3" })
|
|
2465
2520
|
], -1)),
|
|
2466
|
-
e("div",
|
|
2467
|
-
o[5] || (o[5] = ze('<div class="error-code" data-v-
|
|
2468
|
-
e("div",
|
|
2469
|
-
|
|
2521
|
+
e("div", xn, [
|
|
2522
|
+
o[5] || (o[5] = ze('<div class="error-code" data-v-c36cc0ad><span class="code-digit" data-v-c36cc0ad>4</span><span class="code-zero" data-v-c36cc0ad><span class="zero-inner" data-v-c36cc0ad>0</span></span><span class="code-digit" data-v-c36cc0ad>4</span></div><div class="error-illustration" data-v-c36cc0ad><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-c36cc0ad><rect x="40" y="20" width="120" height="80" rx="8" fill="var(--xto-fill-color, #F2F3F5)" stroke="var(--xto-border-color, #D9DCE1)" stroke-width="2" data-v-c36cc0ad></rect><rect x="50" y="30" width="100" height="60" rx="4" fill="var(--xto-bg-color, #FFFFFF)" data-v-c36cc0ad></rect><line x1="60" y1="45" x2="140" y2="45" stroke="var(--xto-border-color-light, #E5E6EB)" stroke-width="2" data-v-c36cc0ad></line><line x1="60" y1="55" x2="120" y2="55" stroke="var(--xto-border-color-light, #E5E6EB)" stroke-width="2" data-v-c36cc0ad></line><line x1="60" y1="65" x2="100" y2="65" stroke="var(--xto-border-color-light, #E5E6EB)" stroke-width="2" data-v-c36cc0ad></line><text x="100" y="75" text-anchor="middle" fill="var(--xto-color-primary, #4F46E5)" font-size="24" font-weight="600" data-v-c36cc0ad>?</text><circle cx="150" cy="35" r="12" stroke="var(--xto-color-primary, #4F46E5)" stroke-width="2" fill="none" data-v-c36cc0ad></circle><line x1="158" y1="43" x2="168" y2="53" stroke="var(--xto-color-primary, #4F46E5)" stroke-width="2" stroke-linecap="round" data-v-c36cc0ad></line></svg></div><h1 class="error-title" data-v-c36cc0ad>页面不存在</h1><p class="error-desc" data-v-c36cc0ad>抱歉,您访问的页面不存在或已被删除</p>', 4)),
|
|
2523
|
+
e("div", Cn, [
|
|
2524
|
+
b(l($e), {
|
|
2470
2525
|
type: "primary",
|
|
2471
2526
|
size: "large",
|
|
2472
2527
|
onClick: u
|
|
@@ -2483,13 +2538,13 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2483
2538
|
], -1)
|
|
2484
2539
|
])]),
|
|
2485
2540
|
default: M(() => [
|
|
2486
|
-
o[2] || (o[2] =
|
|
2541
|
+
o[2] || (o[2] = ye(" 返回首页 ", -1))
|
|
2487
2542
|
]),
|
|
2488
2543
|
_: 1
|
|
2489
2544
|
}),
|
|
2490
|
-
|
|
2545
|
+
b(l($e), {
|
|
2491
2546
|
size: "large",
|
|
2492
|
-
onClick: o[0] || (o[0] = (i) => n
|
|
2547
|
+
onClick: o[0] || (o[0] = (i) => l(n).go(-1))
|
|
2493
2548
|
}, {
|
|
2494
2549
|
icon: M(() => [...o[3] || (o[3] = [
|
|
2495
2550
|
e("svg", {
|
|
@@ -2502,7 +2557,7 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2502
2557
|
], -1)
|
|
2503
2558
|
])]),
|
|
2504
2559
|
default: M(() => [
|
|
2505
|
-
o[4] || (o[4] =
|
|
2560
|
+
o[4] || (o[4] = ye(" 返回上一页 ", -1))
|
|
2506
2561
|
]),
|
|
2507
2562
|
_: 1
|
|
2508
2563
|
})
|
|
@@ -2519,26 +2574,26 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2519
2574
|
])
|
|
2520
2575
|
]));
|
|
2521
2576
|
}
|
|
2522
|
-
}),
|
|
2577
|
+
}), Ln = /* @__PURE__ */ ie($n, [["__scopeId", "data-v-c36cc0ad"]]), dt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2523
2578
|
__proto__: null,
|
|
2524
|
-
default:
|
|
2525
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
2579
|
+
default: Ln
|
|
2580
|
+
}, Symbol.toStringTag, { value: "Module" })), Mn = { class: "error-page" }, Sn = { class: "error-container" }, Nn = { class: "error-content" }, In = { class: "error-actions" }, En = /* @__PURE__ */ le({
|
|
2526
2581
|
__name: "403",
|
|
2527
2582
|
setup(t) {
|
|
2528
|
-
const
|
|
2529
|
-
|
|
2583
|
+
const n = he(), u = () => {
|
|
2584
|
+
n.push("/");
|
|
2530
2585
|
};
|
|
2531
|
-
return (s, o) => (a(), c("div",
|
|
2532
|
-
e("div",
|
|
2586
|
+
return (s, o) => (a(), c("div", Mn, [
|
|
2587
|
+
e("div", Sn, [
|
|
2533
2588
|
o[7] || (o[7] = e("div", { class: "error-bg" }, [
|
|
2534
2589
|
e("div", { class: "bg-circle circle-1" }),
|
|
2535
2590
|
e("div", { class: "bg-circle circle-2" }),
|
|
2536
2591
|
e("div", { class: "bg-circle circle-3" })
|
|
2537
2592
|
], -1)),
|
|
2538
|
-
e("div",
|
|
2593
|
+
e("div", Nn, [
|
|
2539
2594
|
o[5] || (o[5] = ze('<div class="error-code" data-v-e6e1f7ac><span class="code-digit" data-v-e6e1f7ac>4</span><span class="code-zero warning" data-v-e6e1f7ac><span class="zero-inner" data-v-e6e1f7ac>0</span></span><span class="code-digit" data-v-e6e1f7ac>3</span></div><div class="error-illustration" data-v-e6e1f7ac><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-e6e1f7ac><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(--xto-color-warning-light-9, #FFF3E8)" stroke="var(--xto-color-warning, #FF7D00)" stroke-width="2" data-v-e6e1f7ac></path><rect x="85" y="55" width="30" height="25" rx="4" fill="var(--xto-color-warning, #FF7D00)" data-v-e6e1f7ac></rect><path d="M92 55 V48 A8 8 0 0 1 108 48 V55" fill="none" stroke="var(--xto-color-warning, #FF7D00)" stroke-width="3" data-v-e6e1f7ac></path><circle cx="100" cy="67" r="6" fill="none" stroke="#fff" stroke-width="2" data-v-e6e1f7ac></circle><line x1="96" y1="63" x2="104" y2="71" stroke="#fff" stroke-width="2" data-v-e6e1f7ac></line></svg></div><h1 class="error-title" data-v-e6e1f7ac>无访问权限</h1><p class="error-desc" data-v-e6e1f7ac>抱歉,您没有权限访问此页面,请联系管理员获取权限</p>', 4)),
|
|
2540
|
-
e("div",
|
|
2541
|
-
|
|
2595
|
+
e("div", In, [
|
|
2596
|
+
b(l($e), {
|
|
2542
2597
|
type: "primary",
|
|
2543
2598
|
size: "large",
|
|
2544
2599
|
onClick: u
|
|
@@ -2555,13 +2610,13 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2555
2610
|
], -1)
|
|
2556
2611
|
])]),
|
|
2557
2612
|
default: M(() => [
|
|
2558
|
-
o[2] || (o[2] =
|
|
2613
|
+
o[2] || (o[2] = ye(" 返回首页 ", -1))
|
|
2559
2614
|
]),
|
|
2560
2615
|
_: 1
|
|
2561
2616
|
}),
|
|
2562
|
-
|
|
2617
|
+
b(l($e), {
|
|
2563
2618
|
size: "large",
|
|
2564
|
-
onClick: o[0] || (o[0] = (i) => n
|
|
2619
|
+
onClick: o[0] || (o[0] = (i) => l(n).go(-1))
|
|
2565
2620
|
}, {
|
|
2566
2621
|
icon: M(() => [...o[3] || (o[3] = [
|
|
2567
2622
|
e("svg", {
|
|
@@ -2574,7 +2629,7 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2574
2629
|
], -1)
|
|
2575
2630
|
])]),
|
|
2576
2631
|
default: M(() => [
|
|
2577
|
-
o[4] || (o[4] =
|
|
2632
|
+
o[4] || (o[4] = ye(" 返回上一页 ", -1))
|
|
2578
2633
|
]),
|
|
2579
2634
|
_: 1
|
|
2580
2635
|
})
|
|
@@ -2591,9 +2646,9 @@ const Gn = /* @__PURE__ */ re(nn, [["render", rn], ["__scopeId", "data-v-ac63e34
|
|
|
2591
2646
|
])
|
|
2592
2647
|
]));
|
|
2593
2648
|
}
|
|
2594
|
-
}),
|
|
2595
|
-
function
|
|
2596
|
-
const t =
|
|
2649
|
+
}), Jn = /* @__PURE__ */ ie(En, [["__scopeId", "data-v-e6e1f7ac"]]);
|
|
2650
|
+
function Zn() {
|
|
2651
|
+
const t = pe(), n = re(), u = Ue(), s = w(() => n.userName || ""), o = w(() => n.userInfo), i = w(() => t.appName), h = w(() => u.isLoggedIn), v = w(() => t.isDark), d = w(() => t.theme), g = w(() => t.isCollapsed), _ = w(() => t.layout);
|
|
2597
2652
|
return {
|
|
2598
2653
|
userName: s,
|
|
2599
2654
|
userInfo: o,
|
|
@@ -2611,14 +2666,14 @@ function Jn() {
|
|
|
2611
2666
|
}
|
|
2612
2667
|
};
|
|
2613
2668
|
}
|
|
2614
|
-
function
|
|
2615
|
-
const t =
|
|
2669
|
+
function Qn() {
|
|
2670
|
+
const t = re();
|
|
2616
2671
|
return {
|
|
2617
|
-
isLoggedIn:
|
|
2672
|
+
isLoggedIn: w(() => t.isLoggedIn)
|
|
2618
2673
|
};
|
|
2619
2674
|
}
|
|
2620
|
-
function
|
|
2621
|
-
const { rules: u, onSubmit: s } =
|
|
2675
|
+
function el(t, n = {}) {
|
|
2676
|
+
const { rules: u, onSubmit: s } = n, o = y(), i = qe({ ...t }), h = y(!1), v = y(!1), d = y(!1), g = () => {
|
|
2622
2677
|
m(), d.value = !1, v.value = !0;
|
|
2623
2678
|
}, _ = (D) => {
|
|
2624
2679
|
Object.assign(i, D), d.value = !0, v.value = !0;
|
|
@@ -2653,34 +2708,34 @@ function Qn(t, l = {}) {
|
|
|
2653
2708
|
}
|
|
2654
2709
|
};
|
|
2655
2710
|
}
|
|
2656
|
-
function
|
|
2657
|
-
const { fetchData:
|
|
2711
|
+
function tl(t) {
|
|
2712
|
+
const { fetchData: n, defaultPageSize: u = 10 } = t, s = y(!1), o = y([]), i = y(0), h = y(1), v = y(u), d = qe({}), g = async () => {
|
|
2658
2713
|
s.value = !0;
|
|
2659
2714
|
try {
|
|
2660
|
-
const
|
|
2715
|
+
const A = {
|
|
2661
2716
|
...d,
|
|
2662
2717
|
page: h.value,
|
|
2663
2718
|
pageSize: v.value
|
|
2664
|
-
}, V = await
|
|
2719
|
+
}, V = await n(A);
|
|
2665
2720
|
o.value = V.list, i.value = V.total;
|
|
2666
|
-
} catch (
|
|
2667
|
-
console.error(
|
|
2721
|
+
} catch (A) {
|
|
2722
|
+
console.error(A);
|
|
2668
2723
|
} finally {
|
|
2669
2724
|
s.value = !1;
|
|
2670
2725
|
}
|
|
2671
2726
|
}, _ = () => {
|
|
2672
2727
|
h.value = 1, g();
|
|
2673
2728
|
}, f = () => {
|
|
2674
|
-
Object.keys(d).forEach((
|
|
2675
|
-
d[
|
|
2729
|
+
Object.keys(d).forEach((A) => {
|
|
2730
|
+
d[A] = void 0;
|
|
2676
2731
|
}), h.value = 1, g();
|
|
2677
|
-
}, m = (
|
|
2678
|
-
h.value =
|
|
2679
|
-
}, j = (
|
|
2680
|
-
v.value =
|
|
2732
|
+
}, m = (A) => {
|
|
2733
|
+
h.value = A, g();
|
|
2734
|
+
}, j = (A) => {
|
|
2735
|
+
v.value = A, h.value = 1, g();
|
|
2681
2736
|
}, D = () => {
|
|
2682
2737
|
g();
|
|
2683
|
-
}, W =
|
|
2738
|
+
}, W = w(() => ({
|
|
2684
2739
|
current: h.value,
|
|
2685
2740
|
pageSize: v.value,
|
|
2686
2741
|
total: i.value
|
|
@@ -2702,7 +2757,7 @@ function el(t) {
|
|
|
2702
2757
|
};
|
|
2703
2758
|
}
|
|
2704
2759
|
const Je = Ee("locale", () => {
|
|
2705
|
-
const t =
|
|
2760
|
+
const t = E.get("locale") || "zh-CN", n = It(t), u = y(t), s = Et(), { t: o, messages: i, setLocale: h, mergeMessages: v } = Ut(), d = w(() => {
|
|
2706
2761
|
const m = s.find((j) => j.code === u.value);
|
|
2707
2762
|
return (m == null ? void 0 : m.name) || u.value;
|
|
2708
2763
|
});
|
|
@@ -2713,7 +2768,7 @@ const Je = Ee("locale", () => {
|
|
|
2713
2768
|
messages: i,
|
|
2714
2769
|
t: o,
|
|
2715
2770
|
changeLocale: (m) => {
|
|
2716
|
-
u.value = m, h(m),
|
|
2771
|
+
u.value = m, h(m), E.set("locale", m), n.setLocale(m);
|
|
2717
2772
|
},
|
|
2718
2773
|
addMessages: (m) => {
|
|
2719
2774
|
v(m);
|
|
@@ -2721,13 +2776,13 @@ const Je = Ee("locale", () => {
|
|
|
2721
2776
|
initLocale: () => {
|
|
2722
2777
|
h(t);
|
|
2723
2778
|
},
|
|
2724
|
-
provider:
|
|
2779
|
+
provider: n
|
|
2725
2780
|
};
|
|
2726
|
-
}),
|
|
2781
|
+
}), Un = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2727
2782
|
__proto__: null,
|
|
2728
2783
|
useLocaleStore: Je
|
|
2729
2784
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
2730
|
-
function
|
|
2785
|
+
function sl() {
|
|
2731
2786
|
const t = Je();
|
|
2732
2787
|
return {
|
|
2733
2788
|
/** 当前语言代码 */
|
|
@@ -2746,24 +2801,24 @@ function tl() {
|
|
|
2746
2801
|
addMessages: t.addMessages
|
|
2747
2802
|
};
|
|
2748
2803
|
}
|
|
2749
|
-
function
|
|
2804
|
+
function ol() {
|
|
2750
2805
|
return Je().t;
|
|
2751
2806
|
}
|
|
2752
|
-
function ol(t) {
|
|
2753
|
-
const l = le(), u = de();
|
|
2754
|
-
return l.isLoggedIn ? u.hasPermission(t) : !1;
|
|
2755
|
-
}
|
|
2756
2807
|
function al(t) {
|
|
2757
|
-
|
|
2808
|
+
const n = re(), u = ve();
|
|
2809
|
+
return n.isLoggedIn ? u.hasPermission(t) : !1;
|
|
2758
2810
|
}
|
|
2759
|
-
function nl() {
|
|
2811
|
+
function nl(t) {
|
|
2812
|
+
return re().isLoggedIn;
|
|
2813
|
+
}
|
|
2814
|
+
function ll() {
|
|
2760
2815
|
return !0;
|
|
2761
2816
|
}
|
|
2762
2817
|
const mt = [
|
|
2763
2818
|
{
|
|
2764
2819
|
path: "/login",
|
|
2765
2820
|
name: "Login",
|
|
2766
|
-
component: () => Promise.resolve().then(() =>
|
|
2821
|
+
component: () => Promise.resolve().then(() => bn),
|
|
2767
2822
|
meta: {
|
|
2768
2823
|
title: "登录",
|
|
2769
2824
|
hidden: !0
|
|
@@ -2772,13 +2827,13 @@ const mt = [
|
|
|
2772
2827
|
], pt = {
|
|
2773
2828
|
path: "/",
|
|
2774
2829
|
name: "Layout",
|
|
2775
|
-
component: () => Promise.resolve().then(() =>
|
|
2830
|
+
component: () => Promise.resolve().then(() => tn),
|
|
2776
2831
|
redirect: "/dashboard",
|
|
2777
2832
|
children: [
|
|
2778
2833
|
{
|
|
2779
2834
|
path: "/dashboard",
|
|
2780
2835
|
name: "Dashboard",
|
|
2781
|
-
component: () => import("./index-
|
|
2836
|
+
component: () => import("./index-DBjV4kzh.js"),
|
|
2782
2837
|
meta: {
|
|
2783
2838
|
title: "仪表盘",
|
|
2784
2839
|
icon: "dashboard",
|
|
@@ -2789,7 +2844,7 @@ const mt = [
|
|
|
2789
2844
|
{
|
|
2790
2845
|
path: "/system/user",
|
|
2791
2846
|
name: "SystemUser",
|
|
2792
|
-
component: () => import("./index-
|
|
2847
|
+
component: () => import("./index-D73_-C9m.js"),
|
|
2793
2848
|
meta: {
|
|
2794
2849
|
title: "用户管理",
|
|
2795
2850
|
icon: "user",
|
|
@@ -2799,7 +2854,7 @@ const mt = [
|
|
|
2799
2854
|
{
|
|
2800
2855
|
path: "/system/role",
|
|
2801
2856
|
name: "SystemRole",
|
|
2802
|
-
component: () => import("./index-
|
|
2857
|
+
component: () => import("./index-DauAWAHG.js"),
|
|
2803
2858
|
meta: {
|
|
2804
2859
|
title: "角色管理",
|
|
2805
2860
|
icon: "role",
|
|
@@ -2809,7 +2864,7 @@ const mt = [
|
|
|
2809
2864
|
{
|
|
2810
2865
|
path: "/system/menu",
|
|
2811
2866
|
name: "SystemMenu",
|
|
2812
|
-
component: () => import("./index-
|
|
2867
|
+
component: () => import("./index-D_TGEwDg.js"),
|
|
2813
2868
|
meta: {
|
|
2814
2869
|
title: "菜单管理",
|
|
2815
2870
|
icon: "menu",
|
|
@@ -2827,11 +2882,11 @@ const mt = [
|
|
|
2827
2882
|
}
|
|
2828
2883
|
}
|
|
2829
2884
|
]
|
|
2830
|
-
},
|
|
2885
|
+
}, rl = [
|
|
2831
2886
|
{
|
|
2832
2887
|
path: "/dashboard",
|
|
2833
2888
|
name: "Dashboard",
|
|
2834
|
-
component: () => import("./index-
|
|
2889
|
+
component: () => import("./index-DBjV4kzh.js"),
|
|
2835
2890
|
meta: {
|
|
2836
2891
|
title: "仪表盘",
|
|
2837
2892
|
icon: "dashboard",
|
|
@@ -2851,7 +2906,7 @@ const mt = [
|
|
|
2851
2906
|
{
|
|
2852
2907
|
path: "user",
|
|
2853
2908
|
name: "SystemUser",
|
|
2854
|
-
component: () => import("./index-
|
|
2909
|
+
component: () => import("./index-D73_-C9m.js"),
|
|
2855
2910
|
meta: {
|
|
2856
2911
|
title: "用户管理",
|
|
2857
2912
|
icon: "user",
|
|
@@ -2861,7 +2916,7 @@ const mt = [
|
|
|
2861
2916
|
{
|
|
2862
2917
|
path: "role",
|
|
2863
2918
|
name: "SystemRole",
|
|
2864
|
-
component: () => import("./index-
|
|
2919
|
+
component: () => import("./index-DauAWAHG.js"),
|
|
2865
2920
|
meta: {
|
|
2866
2921
|
title: "角色管理",
|
|
2867
2922
|
icon: "role",
|
|
@@ -2871,7 +2926,7 @@ const mt = [
|
|
|
2871
2926
|
{
|
|
2872
2927
|
path: "menu",
|
|
2873
2928
|
name: "SystemMenu",
|
|
2874
|
-
component: () => import("./index-
|
|
2929
|
+
component: () => import("./index-D_TGEwDg.js"),
|
|
2875
2930
|
meta: {
|
|
2876
2931
|
title: "菜单管理",
|
|
2877
2932
|
icon: "menu",
|
|
@@ -2880,7 +2935,7 @@ const mt = [
|
|
|
2880
2935
|
}
|
|
2881
2936
|
]
|
|
2882
2937
|
}
|
|
2883
|
-
],
|
|
2938
|
+
], zn = [
|
|
2884
2939
|
{
|
|
2885
2940
|
menuCode: "dashboard",
|
|
2886
2941
|
menuName: "仪表盘",
|
|
@@ -2932,14 +2987,14 @@ const mt = [
|
|
|
2932
2987
|
history: Ye(),
|
|
2933
2988
|
routes: [...mt, pt],
|
|
2934
2989
|
scrollBehavior: () => ({ left: 0, top: 0 })
|
|
2935
|
-
}),
|
|
2936
|
-
vt.beforeEach(async (t,
|
|
2937
|
-
const s =
|
|
2990
|
+
}), Pn = ["/login"];
|
|
2991
|
+
vt.beforeEach(async (t, n, u) => {
|
|
2992
|
+
const s = pe();
|
|
2938
2993
|
if (s.initTheme(), at())
|
|
2939
2994
|
if (t.path === "/login")
|
|
2940
2995
|
u({ path: "/" });
|
|
2941
2996
|
else {
|
|
2942
|
-
const o =
|
|
2997
|
+
const o = re();
|
|
2943
2998
|
o.isLoggedIn || (o.setUserInfo({
|
|
2944
2999
|
appId: Ie(),
|
|
2945
3000
|
userId: "1",
|
|
@@ -2949,20 +3004,20 @@ vt.beforeEach(async (t, l, u) => {
|
|
|
2949
3004
|
mobilePhone: "13800138000",
|
|
2950
3005
|
positionName: "管理员",
|
|
2951
3006
|
avatar: ""
|
|
2952
|
-
}),
|
|
3007
|
+
}), ve().setMenuList(zn)), t.name && t.meta.keepAlive && s.addCachedView(t.name), u();
|
|
2953
3008
|
}
|
|
2954
3009
|
else
|
|
2955
|
-
|
|
3010
|
+
Pn.includes(t.path) ? u() : u("/login");
|
|
2956
3011
|
});
|
|
2957
|
-
function
|
|
3012
|
+
function il() {
|
|
2958
3013
|
const t = He({
|
|
2959
3014
|
history: Ye(),
|
|
2960
3015
|
routes: [...mt, pt]
|
|
2961
3016
|
});
|
|
2962
3017
|
vt.matcher = t.matcher;
|
|
2963
3018
|
}
|
|
2964
|
-
function
|
|
2965
|
-
const u =
|
|
3019
|
+
function cl(t, n = {}) {
|
|
3020
|
+
const u = n.indexPath || "/dashboard", s = n.logoSrc || "/vite.svg", o = {
|
|
2966
3021
|
path: "/:pathMatch(.*)*",
|
|
2967
3022
|
name: "CatchAll",
|
|
2968
3023
|
component: () => Promise.resolve().then(() => dt),
|
|
@@ -2973,7 +3028,7 @@ function il(t, l = {}) {
|
|
|
2973
3028
|
return {
|
|
2974
3029
|
path: "/",
|
|
2975
3030
|
name: "Layout",
|
|
2976
|
-
component:
|
|
3031
|
+
component: le({
|
|
2977
3032
|
name: "LayoutWrapper",
|
|
2978
3033
|
render() {
|
|
2979
3034
|
return Ct(ut, { logoSrc: s });
|
|
@@ -2983,8 +3038,8 @@ function il(t, l = {}) {
|
|
|
2983
3038
|
children: [...t, o]
|
|
2984
3039
|
};
|
|
2985
3040
|
}
|
|
2986
|
-
function
|
|
2987
|
-
const u =
|
|
3041
|
+
function ul(t, n = {}) {
|
|
3042
|
+
const u = n.base || _t();
|
|
2988
3043
|
return He({
|
|
2989
3044
|
history: Ye(u),
|
|
2990
3045
|
routes: t,
|
|
@@ -2992,22 +3047,22 @@ function cl(t, l = {}) {
|
|
|
2992
3047
|
});
|
|
2993
3048
|
}
|
|
2994
3049
|
const Tn = ["login", "404", "403", "/login", "/404", "/403"];
|
|
2995
|
-
function
|
|
2996
|
-
if (
|
|
3050
|
+
function Fn(t, n) {
|
|
3051
|
+
if (n.includes(t)) return !0;
|
|
2997
3052
|
const u = t.startsWith("/") ? t.slice(1) : t;
|
|
2998
|
-
return
|
|
3053
|
+
return n.includes(u);
|
|
2999
3054
|
}
|
|
3000
|
-
function
|
|
3001
|
-
const u =
|
|
3055
|
+
function dl(t, n = {}) {
|
|
3056
|
+
const u = n.whiteList || Tn;
|
|
3002
3057
|
t.beforeEach(async (s, o, i) => {
|
|
3003
|
-
const h =
|
|
3058
|
+
const h = pe(), v = re(), d = ve(), g = h.loginPath || n.loginPath || "/login";
|
|
3004
3059
|
if (h.initTheme(), ot())
|
|
3005
3060
|
if (s.path === g || s.name === "Login")
|
|
3006
3061
|
i({ name: "Dashboard" });
|
|
3007
3062
|
else if (v.isLoggedIn) {
|
|
3008
3063
|
if (!d.hasMenu)
|
|
3009
3064
|
try {
|
|
3010
|
-
const f =
|
|
3065
|
+
const f = n.fetchMenu ? await n.fetchMenu() : await Qe(n.appId);
|
|
3011
3066
|
d.setMenuList(f);
|
|
3012
3067
|
} catch (f) {
|
|
3013
3068
|
console.warn("补拉菜单失败:", f);
|
|
@@ -3015,42 +3070,42 @@ function ul(t, l = {}) {
|
|
|
3015
3070
|
s.name && s.meta.keepAlive && h.addCachedView(s.name), i();
|
|
3016
3071
|
} else
|
|
3017
3072
|
try {
|
|
3018
|
-
if (
|
|
3019
|
-
const f = await
|
|
3073
|
+
if (n.fetchUserInfo) {
|
|
3074
|
+
const f = await n.fetchUserInfo();
|
|
3020
3075
|
v.setUserInfo(f);
|
|
3021
3076
|
} else {
|
|
3022
3077
|
const f = await ft();
|
|
3023
3078
|
v.setUserInfo(f);
|
|
3024
3079
|
}
|
|
3025
|
-
if (
|
|
3026
|
-
const f = await
|
|
3080
|
+
if (n.fetchMenu) {
|
|
3081
|
+
const f = await n.fetchMenu();
|
|
3027
3082
|
d.setMenuList(f);
|
|
3028
3083
|
} else {
|
|
3029
|
-
const f = await Qe(
|
|
3084
|
+
const f = await Qe(n.appId);
|
|
3030
3085
|
d.setMenuList(f);
|
|
3031
3086
|
}
|
|
3032
|
-
|
|
3087
|
+
n.onLoginSuccess && n.onLoginSuccess(), s.name && s.meta.keepAlive && h.addCachedView(s.name), i({ ...s, replace: !0 });
|
|
3033
3088
|
} catch (f) {
|
|
3034
3089
|
console.error("获取用户信息失败:", f), v.clearUserInfo(), d.clearMenu(), nt(), i({ name: "Login", query: { redirect: s.fullPath } });
|
|
3035
3090
|
}
|
|
3036
3091
|
else
|
|
3037
|
-
|
|
3092
|
+
Fn(s.path, u) || s.name === "Login" || s.name === "NotFound" || s.name === "Forbidden" ? i() : i({ name: "Login", query: { redirect: s.fullPath } });
|
|
3038
3093
|
}), t.afterEach(() => {
|
|
3039
3094
|
});
|
|
3040
3095
|
}
|
|
3041
|
-
var
|
|
3042
|
-
const
|
|
3096
|
+
var Dn = /* @__PURE__ */ ((t) => (t[t.ENABLED = 1] = "ENABLED", t[t.DISABLED = 0] = "DISABLED", t))(Dn || {}), An = /* @__PURE__ */ ((t) => (t[t.UNKNOWN = 0] = "UNKNOWN", t[t.MALE = 1] = "MALE", t[t.FEMALE = 2] = "FEMALE", t))(An || {}), Bn = /* @__PURE__ */ ((t) => (t[t.DIRECTORY = 0] = "DIRECTORY", t[t.MENU = 1] = "MENU", t[t.BUTTON = 2] = "BUTTON", t))(Bn || {});
|
|
3097
|
+
const ml = {
|
|
3043
3098
|
1: "启用",
|
|
3044
3099
|
0: "禁用"
|
|
3045
|
-
},
|
|
3100
|
+
}, pl = {
|
|
3046
3101
|
0: "未知",
|
|
3047
3102
|
1: "男",
|
|
3048
3103
|
2: "女"
|
|
3049
|
-
},
|
|
3104
|
+
}, vl = {
|
|
3050
3105
|
0: "目录",
|
|
3051
3106
|
1: "菜单",
|
|
3052
3107
|
2: "按钮"
|
|
3053
|
-
},
|
|
3108
|
+
}, hl = [
|
|
3054
3109
|
{
|
|
3055
3110
|
label: "启用",
|
|
3056
3111
|
value: 1
|
|
@@ -3061,7 +3116,7 @@ const dl = {
|
|
|
3061
3116
|
value: 0
|
|
3062
3117
|
/* DISABLED */
|
|
3063
3118
|
}
|
|
3064
|
-
],
|
|
3119
|
+
], _l = [
|
|
3065
3120
|
{
|
|
3066
3121
|
label: "未知",
|
|
3067
3122
|
value: 0
|
|
@@ -3077,7 +3132,7 @@ const dl = {
|
|
|
3077
3132
|
value: 2
|
|
3078
3133
|
/* FEMALE */
|
|
3079
3134
|
}
|
|
3080
|
-
],
|
|
3135
|
+
], fl = [
|
|
3081
3136
|
{
|
|
3082
3137
|
label: "目录",
|
|
3083
3138
|
value: 0
|
|
@@ -3093,30 +3148,30 @@ const dl = {
|
|
|
3093
3148
|
value: 2
|
|
3094
3149
|
/* BUTTON */
|
|
3095
3150
|
}
|
|
3096
|
-
],
|
|
3097
|
-
mounted(t,
|
|
3151
|
+
], gl = {
|
|
3152
|
+
mounted(t, n) {
|
|
3098
3153
|
var h, v;
|
|
3099
|
-
const u =
|
|
3154
|
+
const u = re(), s = ve();
|
|
3100
3155
|
if (!u.isLoggedIn) {
|
|
3101
3156
|
(h = t.parentNode) == null || h.removeChild(t);
|
|
3102
3157
|
return;
|
|
3103
3158
|
}
|
|
3104
|
-
const o =
|
|
3159
|
+
const o = n.value, i = Array.isArray(o) ? o : [o];
|
|
3105
3160
|
s.hasPermission(i) || (v = t.parentNode) == null || v.removeChild(t);
|
|
3106
3161
|
}
|
|
3107
3162
|
};
|
|
3108
|
-
async function
|
|
3163
|
+
async function yl(t) {
|
|
3109
3164
|
await gt(t.basePath);
|
|
3110
|
-
const
|
|
3111
|
-
return
|
|
3165
|
+
const n = et();
|
|
3166
|
+
return n && yt(n), bt({
|
|
3112
3167
|
appId: t.appId,
|
|
3113
3168
|
clientId: t.clientId,
|
|
3114
|
-
apiBaseUrl:
|
|
3169
|
+
apiBaseUrl: n || t.apiBaseUrl,
|
|
3115
3170
|
basePath: t.basePath
|
|
3116
|
-
}), t.basePath &&
|
|
3171
|
+
}), t.basePath && kt(t.basePath), Promise.resolve().then(() => Pt).then(({ useAppStore: u }) => {
|
|
3117
3172
|
const s = u();
|
|
3118
3173
|
t.appName && s.setAppName(t.appName), t.indexPath && s.setIndexPath(t.indexPath), t.loginPath && s.setLoginPath(t.loginPath);
|
|
3119
|
-
}), t.locale && Promise.resolve().then(() =>
|
|
3174
|
+
}), t.locale && Promise.resolve().then(() => Un).then(({ useLocaleStore: u }) => {
|
|
3120
3175
|
u().changeLocale(t.locale);
|
|
3121
3176
|
}), {
|
|
3122
3177
|
config: {
|
|
@@ -3132,47 +3187,47 @@ async function gl(t) {
|
|
|
3132
3187
|
};
|
|
3133
3188
|
}
|
|
3134
3189
|
export {
|
|
3135
|
-
|
|
3136
|
-
|
|
3190
|
+
pe as A,
|
|
3191
|
+
Qn as B,
|
|
3137
3192
|
Ue as C,
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3193
|
+
el as D,
|
|
3194
|
+
sl as E,
|
|
3195
|
+
Xn as F,
|
|
3196
|
+
An as G,
|
|
3197
|
+
Rs as H,
|
|
3143
3198
|
Je as I,
|
|
3144
|
-
|
|
3145
|
-
|
|
3199
|
+
ve as J,
|
|
3200
|
+
tl as K,
|
|
3146
3201
|
ut as L,
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3202
|
+
Bn as M,
|
|
3203
|
+
re as N,
|
|
3204
|
+
Dn as S,
|
|
3205
|
+
Gn as T,
|
|
3206
|
+
ie as _,
|
|
3207
|
+
hl as a,
|
|
3208
|
+
fl as b,
|
|
3209
|
+
Jn as c,
|
|
3210
|
+
_l as d,
|
|
3211
|
+
pl as e,
|
|
3212
|
+
vl as f,
|
|
3213
|
+
Ln as g,
|
|
3159
3214
|
st as h,
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3215
|
+
yn as i,
|
|
3216
|
+
ml as j,
|
|
3217
|
+
cl as k,
|
|
3218
|
+
ul as l,
|
|
3219
|
+
ol as m,
|
|
3220
|
+
yl as n,
|
|
3221
|
+
rl as o,
|
|
3222
|
+
al as p,
|
|
3223
|
+
nl as q,
|
|
3224
|
+
ll as r,
|
|
3170
3225
|
pt as s,
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3226
|
+
zn as t,
|
|
3227
|
+
gl as u,
|
|
3228
|
+
il as v,
|
|
3174
3229
|
vt as w,
|
|
3175
|
-
|
|
3230
|
+
dl as x,
|
|
3176
3231
|
mt as y,
|
|
3177
|
-
|
|
3232
|
+
Zn as z
|
|
3178
3233
|
};
|