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