@morningfast/platform 0.0.10 → 0.0.12

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.
@@ -1,23 +1,23 @@
1
1
  import { clearAuth as e, emitAuthExpired as t, getAccessToken as n, onAuthExpired as r } from "../auth.js";
2
2
  import { createRequestClient as i } from "../request.js";
3
3
  import { t as a } from "./auth-C3RvRgcW.js";
4
- import { i as o, n as s, r as c, t as l } from "./system-BbMsTIBR.js";
5
- import { a as u, i as d, r as f } from "./route-items-DZFRXefX.js";
4
+ import { i as o, n as s, r as c, t as l } from "./system-DZaKDrG6.js";
5
+ import { a as u, i as d, r as f } from "./route-items-84k92f3O.js";
6
6
  import { t as p } from "./_plugin-vue_export-helper-DvRHjpsZ.js";
7
7
  import { createRouter as m, createWebHistory as h, useRoute as g, useRouter as _ } from "vue-router";
8
8
  import v from "nprogress";
9
9
  import y, { ElMessage as b } from "element-plus";
10
- import { Fragment as x, Teleport as ee, Transition as S, TransitionGroup as C, computed as w, createApp as T, createBlock as E, createCommentVNode as D, createElementBlock as O, createElementVNode as k, createTextVNode as A, createVNode as j, defineComponent as M, nextTick as N, normalizeClass as P, normalizeStyle as F, onBeforeUnmount as te, onMounted as ne, onUnmounted as re, openBlock as I, ref as L, renderList as R, resolveComponent as z, resolveDynamicComponent as B, toDisplayString as V, unref as H, watch as U, watchEffect as W, withCtx as G, withKeys as K, withModifiers as q } from "vue";
10
+ import { Fragment as x, Teleport as S, Transition as C, TransitionGroup as w, computed as T, createApp as E, createBlock as D, createCommentVNode as O, createElementBlock as k, createElementVNode as A, createTextVNode as j, createVNode as M, defineComponent as N, nextTick as P, normalizeClass as F, normalizeStyle as I, onBeforeUnmount as ee, onMounted as te, onUnmounted as ne, openBlock as L, ref as R, renderList as z, resolveComponent as B, resolveDynamicComponent as V, toDisplayString as H, unref as U, watch as W, watchEffect as G, withCtx as K, withKeys as re, withModifiers as q } from "vue";
11
11
  import { createPinia as ie, defineStore as J } from "pinia";
12
- import { ArrowDown as ae, ArrowRight as oe, ArrowUp as se, Back as ce, Brush as le, Close as ue, Connection as de, DArrowLeft as fe, DArrowRight as pe, Expand as me, Fold as he, FolderDelete as ge, House as _e, Menu as ve, Monitor as ye, Moon as be, Operation as xe, RefreshRight as Se, Search as Y, Setting as Ce, Sunny as we, SwitchButton as Te, TopRight as Ee, User as De } from "@element-plus/icons-vue";
13
- import { MpDrawer as Oe, MpLoadingService as ke, registerMpFormFieldComponents as Ae } from "morningfast-plus/components";
14
- import je from "sortablejs";
15
- import Me from "element-plus/es/locale/lang/zh-cn";
12
+ import { ArrowDown as ae, ArrowRight as oe, ArrowUp as se, Back as ce, Brush as le, Close as ue, Connection as de, DArrowLeft as fe, DArrowRight as pe, Expand as me, Fold as he, FolderDelete as ge, House as _e, Monitor as ve, Moon as ye, Operation as be, RefreshRight as xe, Search as Y, Setting as Se, Sunny as Ce, SwitchButton as we, TopRight as Te, User as Ee } from "@element-plus/icons-vue";
13
+ import { MpDrawer as De, MpLoadingService as Oe, registerMpFormFieldComponents as ke } from "morningfast-plus/components";
14
+ import Ae from "sortablejs";
15
+ import je from "element-plus/es/locale/lang/zh-cn";
16
16
  import "element-plus/dist/index.css";
17
17
  import "element-plus/theme-chalk/dark/css-vars.css";
18
18
  import "nprogress/nprogress.css";
19
19
  //#region src/main/auth/expired.ts
20
- function Ne(t) {
20
+ function Me(t) {
21
21
  return r(() => {
22
22
  if (e(), t.currentRoute.value.path === "/login") return;
23
23
  let n = `${t.currentRoute.value.fullPath || "/"}`;
@@ -29,15 +29,15 @@ function Ne(t) {
29
29
  }
30
30
  //#endregion
31
31
  //#region src/main/app/runtime-config.ts
32
- var Pe = { apiBaseUrl: "/api" };
33
- function Fe(e) {
34
- Pe = e;
32
+ var Ne = { apiBaseUrl: "/api" };
33
+ function Pe(e) {
34
+ Ne = e;
35
35
  }
36
- function Ie() {
37
- return Pe;
36
+ function Fe() {
37
+ return Ne;
38
38
  }
39
- var { http: Le, createApi: Re, requestManager: ze } = i({
40
- baseURL: Ie().apiBaseUrl,
39
+ var { http: Ie, createApi: Le, requestManager: Re } = i({
40
+ baseURL: Fe().apiBaseUrl,
41
41
  getToken: n,
42
42
  onError(e) {
43
43
  b.error(e);
@@ -51,24 +51,24 @@ var { http: Le, createApi: Re, requestManager: ze } = i({
51
51
  });
52
52
  }
53
53
  });
54
- function Be() {
55
- Le.defaults.baseURL = Ie().apiBaseUrl;
54
+ function ze() {
55
+ Ie.defaults.baseURL = Fe().apiBaseUrl;
56
56
  }
57
57
  //#endregion
58
58
  //#region src/main/router/guard.ts
59
- var Ve = "/login", He = "/403";
60
- function Ue(e) {
59
+ var Be = "/login", Ve = "/403";
60
+ function He(e) {
61
61
  e.beforeEach(async (e, t) => {
62
- v.start(), e.path !== t.path && ze.setCurrentPage(e.path);
62
+ v.start(), e.path !== t.path && Re.setCurrentPage(e.path);
63
63
  let n = a(), r = !!e.meta.public;
64
64
  if (n.initialized || await n.initAuth(), !n.isAuthenticated && !r) return {
65
- path: Ve,
65
+ path: Be,
66
66
  query: { redirect: e.fullPath }
67
67
  };
68
- if (n.isAuthenticated && e.path === Ve) return { path: "/" };
68
+ if (n.isAuthenticated && e.path === Be) return { path: "/" };
69
69
  let i = e.meta.permission;
70
- return We(i, n.hasPermission) ? !0 : {
71
- path: He,
70
+ return Ue(i, n.hasPermission) ? !0 : {
71
+ path: Ve,
72
72
  query: { redirect: e.fullPath }
73
73
  };
74
74
  }), e.afterEach((e) => {
@@ -77,12 +77,12 @@ function Ue(e) {
77
77
  v.done();
78
78
  });
79
79
  }
80
- function We(e, t) {
80
+ function Ue(e, t) {
81
81
  return e ? Array.isArray(e) ? e.every((e) => t(e)) : t(e) : !0;
82
82
  }
83
83
  //#endregion
84
84
  //#region src/main/stores/tabs.ts
85
- var X = "/dashboard", Ge = "tabs-state";
85
+ var X = "/dashboard", We = "tabs-state";
86
86
  function Z() {
87
87
  return {
88
88
  path: X,
@@ -91,24 +91,24 @@ function Z() {
91
91
  icon: "House"
92
92
  };
93
93
  }
94
- function Ke() {
94
+ function Ge() {
95
95
  return {
96
96
  tabs: [Z()],
97
97
  activeTab: X,
98
98
  lastActiveTab: ""
99
99
  };
100
100
  }
101
- function qe(e) {
102
- let t = Ke();
101
+ function Ke(e) {
102
+ let t = Ge();
103
103
  if (!e) return t;
104
- let n = Array.isArray(e.tabs) ? e.tabs.filter(Boolean).map(Je) : [], r = Ye([Z(), ...n]).sort((e, t) => e.path === "/dashboard" ? -1 : +(t.path === "/dashboard"));
104
+ let n = Array.isArray(e.tabs) ? e.tabs.filter(Boolean).map(qe) : [], r = Je([Z(), ...n]).sort((e, t) => e.path === "/dashboard" ? -1 : +(t.path === "/dashboard"));
105
105
  return {
106
106
  tabs: r,
107
107
  activeTab: r.some((t) => t.path === e.activeTab) ? String(e.activeTab || "/dashboard") : r[0]?.path || "/dashboard",
108
108
  lastActiveTab: r.some((t) => t.path === e.lastActiveTab) ? String(e.lastActiveTab || "") : ""
109
109
  };
110
110
  }
111
- function Je(e) {
111
+ function qe(e) {
112
112
  return {
113
113
  path: String(e.path || "/dashboard"),
114
114
  fullPath: String(e.fullPath || e.path || "/dashboard"),
@@ -116,11 +116,11 @@ function Je(e) {
116
116
  icon: e.icon ? String(e.icon) : void 0
117
117
  };
118
118
  }
119
- function Ye(e) {
119
+ function Je(e) {
120
120
  let t = /* @__PURE__ */ new Set();
121
121
  return e.filter((e) => t.has(e.path) ? !1 : (t.add(e.path), !0));
122
122
  }
123
- function Xe(e) {
123
+ function Ye(e) {
124
124
  return {
125
125
  tabs: e.tabs.map((e) => ({
126
126
  path: e.path,
@@ -133,9 +133,9 @@ function Xe(e) {
133
133
  };
134
134
  }
135
135
  var Q = J("tabs", () => {
136
- let e = L([Z()]), t = L(X), n = L(""), r = L(!1), i = w(() => e.value.map((e) => e.path));
136
+ let e = R([Z()]), t = R(X), n = R(""), r = R(!1), i = T(() => e.value.map((e) => e.path));
137
137
  async function a() {
138
- r.value && await o(Ge, Xe({
138
+ r.value && await o(We, Ye({
139
139
  tabs: e.value,
140
140
  activeTab: t.value,
141
141
  lastActiveTab: n.value
@@ -143,7 +143,7 @@ var Q = J("tabs", () => {
143
143
  }
144
144
  async function l() {
145
145
  if (r.value) return;
146
- let i = qe(await s(Ge, null));
146
+ let i = Ke(await s(We, null));
147
147
  e.value = i.tabs, t.value = i.activeTab, n.value = i.lastActiveTab, r.value = !0, await a();
148
148
  }
149
149
  async function u(r) {
@@ -178,7 +178,7 @@ var Q = J("tabs", () => {
178
178
  e.value = [Z()], t.value = X, n.value = "", await a();
179
179
  }
180
180
  async function _() {
181
- e.value = [], t.value = "", n.value = "", await c(Ge);
181
+ e.value = [], t.value = "", n.value = "", await c(We);
182
182
  }
183
183
  async function v(e) {
184
184
  t.value && t.value !== e && (n.value = t.value), t.value = e, await a();
@@ -190,7 +190,7 @@ var Q = J("tabs", () => {
190
190
  e.value = x(e.value);
191
191
  }
192
192
  function x(e) {
193
- return Ye([Z(), ...e.filter((e) => e.path !== X)]);
193
+ return Je([Z(), ...e.filter((e) => e.path !== X)]);
194
194
  }
195
195
  return {
196
196
  activeTab: t,
@@ -208,7 +208,7 @@ var Q = J("tabs", () => {
208
208
  tabPaths: i,
209
209
  tabs: e
210
210
  };
211
- }), Ze = ["src", "alt"], Qe = /* @__PURE__ */ M({
211
+ }), Xe = ["src", "alt"], Ze = /* @__PURE__ */ N({
212
212
  __name: "ThemedSvgImage",
213
213
  props: {
214
214
  src: {},
@@ -216,7 +216,7 @@ var Q = J("tabs", () => {
216
216
  alt: { default: "" }
217
217
  },
218
218
  setup(e) {
219
- let t = e, n = /* @__PURE__ */ new Map(), r = L(t.src);
219
+ let t = e, n = /* @__PURE__ */ new Map(), r = R(t.src);
220
220
  async function i(e) {
221
221
  let t = n.get(e);
222
222
  if (t) return t;
@@ -229,7 +229,7 @@ var Q = J("tabs", () => {
229
229
  let n = e.replaceAll("#409EFF", t);
230
230
  return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(n)}`;
231
231
  }
232
- return W((e) => {
232
+ return G((e) => {
233
233
  let n = !1, o = t.src, s = t.primaryColor;
234
234
  r.value = o, i(o).then((e) => {
235
235
  n || (r.value = a(e, s));
@@ -238,70 +238,75 @@ var Q = J("tabs", () => {
238
238
  }), e(() => {
239
239
  n = !0;
240
240
  });
241
- }), (t, n) => (I(), O("img", {
241
+ }), (t, n) => (L(), k("img", {
242
242
  src: r.value,
243
243
  alt: e.alt
244
- }, null, 8, Ze));
244
+ }, null, 8, Xe));
245
245
  }
246
- }), $e = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='11'%20height='40'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='6.5'%20y='7'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='6.5'%20y='11'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='14.5'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='18'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='4'%20width='43'%20height='7'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='19.5'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='27.5'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='35.5'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='13'%20width='43'%20height='31'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3c/svg%3e", et = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='11'%20height='40'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='6.5'%20y='7'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='6.5'%20y='11'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='14.5'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='18'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='4'%20width='43'%20height='40'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3c/svg%3e", tt = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='56'%20height='7'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='7'%20y='6.5'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='11'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='19'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='27'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='4'%20y='13'%20width='56'%20height='31'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3c/svg%3e", nt = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='56'%20height='7'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='7'%20y='6.5'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='11'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='19'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='27'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='4'%20y='13'%20width='56'%20height='31'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3crect%20x='8'%20y='18'%20width='17'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.16'/%3e%3crect%20x='8'%20y='26'%20width='30'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.12'/%3e%3c/svg%3e", rt = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='56'%20height='40'%20rx='2'%20fill='%23c5cede'%20fill-opacity='0.05'/%3e%3crect%20x='7'%20y='7'%20width='50'%20height='5'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.14'/%3e%3crect%20x='7'%20y='16'%20width='22'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.18'/%3e%3crect%20x='7'%20y='23'%20width='35'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.12'/%3e%3crect%20x='7'%20y='30'%20width='16'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.1'/%3e%3crect%20x='45'%20y='18'%20width='12'%20height='16'%20rx='2'%20fill='%23c5cede'%20fill-opacity='0.08'/%3e%3c/svg%3e", it = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='11'%20height='40'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='6.5'%20y='7'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='6.5'%20y='11'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='14.5'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='18'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='4'%20width='43'%20height='40'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3crect%20x='21'%20y='10'%20width='14'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.16'/%3e%3crect%20x='21'%20y='18'%20width='24'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.12'/%3e%3crect%20x='21'%20y='26'%20width='18'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.1'/%3e%3c/svg%3e", at = { class: "settings-section" }, ot = { class: "settings-mode-grid" }, st = ["onClick"], ct = { class: "settings-section" }, lt = {
246
+ }), Qe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='11'%20height='40'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='6.5'%20y='7'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='6.5'%20y='11'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='14.5'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='18'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='4'%20width='43'%20height='7'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='19.5'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='27.5'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='35.5'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='13'%20width='43'%20height='31'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3c/svg%3e", $e = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='11'%20height='40'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='6.5'%20y='7'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='6.5'%20y='11'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='14.5'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='18'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='4'%20width='43'%20height='40'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3c/svg%3e", et = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='56'%20height='7'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='7'%20y='6.5'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='11'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='19'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='27'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='4'%20y='13'%20width='56'%20height='31'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3c/svg%3e", tt = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='56'%20height='7'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='7'%20y='6.5'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='11'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='19'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='27'%20y='7.25'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='4'%20y='13'%20width='56'%20height='31'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3crect%20x='8'%20y='18'%20width='17'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.16'/%3e%3crect%20x='8'%20y='26'%20width='30'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.12'/%3e%3c/svg%3e", nt = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='56'%20height='40'%20rx='2'%20fill='%23c5cede'%20fill-opacity='0.05'/%3e%3crect%20x='7'%20y='7'%20width='50'%20height='5'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.14'/%3e%3crect%20x='7'%20y='16'%20width='22'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.18'/%3e%3crect%20x='7'%20y='23'%20width='35'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.12'/%3e%3crect%20x='7'%20y='30'%20width='16'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.1'/%3e%3crect%20x='45'%20y='18'%20width='12'%20height='16'%20rx='2'%20fill='%23c5cede'%20fill-opacity='0.08'/%3e%3c/svg%3e", rt = "data:image/svg+xml,%3csvg%20viewBox='0%200%2064%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='64'%20height='48'%20rx='3'%20fill='%23c5cede'%20fill-opacity='0.04'/%3e%3crect%20x='4'%20y='4'%20width='11'%20height='40'%20rx='1.5'%20fill='%23409EFF'/%3e%3crect%20x='6.5'%20y='7'%20width='2'%20height='2'%20rx='1'%20fill='white'%20fill-opacity='0.95'/%3e%3crect%20x='6.5'%20y='11'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='14.5'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='6.5'%20y='18'%20width='6'%20height='1.5'%20rx='0.75'%20fill='white'%20fill-opacity='0.75'/%3e%3crect%20x='17'%20y='4'%20width='43'%20height='40'%20rx='1.5'%20fill='%23c5cede'%20fill-opacity='0.06'/%3e%3crect%20x='21'%20y='10'%20width='14'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.16'/%3e%3crect%20x='21'%20y='18'%20width='24'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.12'/%3e%3crect%20x='21'%20y='26'%20width='18'%20height='4'%20rx='1'%20fill='%23c5cede'%20fill-opacity='0.1'/%3e%3c/svg%3e", it = { class: "settings-section" }, at = { class: "settings-mode-grid" }, ot = ["onClick"], st = { class: "settings-section" }, ct = {
247
247
  key: 0,
248
248
  class: "settings-section__header"
249
- }, ut = {
249
+ }, lt = {
250
250
  key: 1,
251
251
  class: "settings-position-grid"
252
- }, dt = ["onClick"], ft = { class: "settings-position-card__label" }, pt = { class: "settings-section" }, mt = { class: "settings-color-grid" }, ht = ["onClick"], gt = { class: "settings-color-card__label" }, _t = { class: "settings-color-card__swatch settings-color-card__swatch--custom" }, vt = { class: "settings-section" }, yt = { class: "settings-layout-grid" }, bt = ["onClick"], xt = { class: "settings-layout-card__label" }, St = { class: "settings-section" }, Ct = { class: "settings-inline-setting" }, wt = {
252
+ }, ut = ["onClick"], dt = { class: "settings-position-card__label" }, ft = { class: "settings-section" }, pt = { class: "settings-color-grid" }, mt = ["onClick"], ht = { class: "settings-color-card__label" }, gt = { class: "settings-color-card__swatch settings-color-card__swatch--custom" }, _t = { class: "settings-section" }, vt = { class: "settings-layout-grid" }, yt = ["onClick"], bt = { class: "settings-layout-card__label" }, xt = { class: "settings-section" }, St = { class: "settings-inline-setting" }, Ct = {
253
253
  key: 0,
254
254
  class: "settings-section"
255
- }, Tt = { class: "settings-menu-search-grid" }, Et = ["onClick"], Dt = { class: "settings-placeholder" }, Ot = { class: "settings-placeholder" }, kt = /* @__PURE__ */ M({
255
+ }, wt = { class: "settings-menu-search-grid" }, Tt = ["onClick"], Et = { class: "settings-placeholder" }, Dt = { class: "settings-placeholder" }, Ot = /* @__PURE__ */ N({
256
256
  __name: "SystemSettingsDrawer",
257
257
  setup(e) {
258
- let t = f(), n = w(() => !u.some((e) => e.value.toLowerCase() === t.themeColor.toLowerCase())), r = [
258
+ let t = f(), n = T(() => !u.some((e) => e.value.toLowerCase() === t.themeColor.toLowerCase())), r = [
259
259
  {
260
260
  label: "浅色",
261
261
  value: "light",
262
- icon: we
262
+ icon: Ce
263
263
  },
264
264
  {
265
265
  label: "深色",
266
266
  value: "dark",
267
- icon: be
267
+ icon: ye
268
268
  },
269
269
  {
270
270
  label: "跟随系统",
271
271
  value: "system",
272
- icon: ye
272
+ icon: ve
273
273
  }
274
274
  ], i = [
275
275
  {
276
276
  label: "不应用",
277
277
  value: "none",
278
- previewSrc: rt
278
+ previewSrc: nt
279
279
  },
280
280
  {
281
281
  label: "顶部",
282
282
  value: "header",
283
- previewSrc: nt
283
+ previewSrc: tt
284
284
  },
285
285
  {
286
286
  label: "侧边栏",
287
287
  value: "sidebar",
288
- previewSrc: it
288
+ previewSrc: rt
289
289
  }
290
290
  ], a = [
291
+ {
292
+ label: "默认",
293
+ value: "default",
294
+ previewSrc: nt
295
+ },
291
296
  {
292
297
  label: "侧边导航",
293
298
  value: "side",
294
- previewSrc: et
299
+ previewSrc: $e
295
300
  },
296
301
  {
297
302
  label: "顶部导航",
298
303
  value: "top",
299
- previewSrc: tt
304
+ previewSrc: et
300
305
  },
301
306
  {
302
307
  label: "混合导航",
303
308
  value: "mix",
304
- previewSrc: $e
309
+ previewSrc: Qe
305
310
  }
306
311
  ], o = [{
307
312
  label: "顶部搜索",
@@ -310,7 +315,7 @@ var Q = J("tabs", () => {
310
315
  }, {
311
316
  label: "侧边搜索",
312
317
  value: "sidebar",
313
- icon: ve
318
+ icon: be
314
319
  }];
315
320
  function s(e) {
316
321
  e && t.setThemeColor(e);
@@ -319,9 +324,9 @@ var Q = J("tabs", () => {
319
324
  e || t.closeSettings();
320
325
  }
321
326
  return (e, l) => {
322
- let d = z("el-icon"), f = z("el-color-picker"), p = z("el-tab-pane"), m = z("el-switch"), h = z("el-empty"), g = z("el-tabs");
323
- return I(), E(H(Oe), {
324
- "model-value": H(t).settingsVisible,
327
+ let d = B("el-icon"), f = B("el-color-picker"), p = B("el-tab-pane"), m = B("el-switch"), h = B("el-empty"), g = B("el-tabs");
328
+ return L(), D(U(De), {
329
+ "model-value": U(t).settingsVisible,
325
330
  title: "主题设置",
326
331
  direction: "rtl",
327
332
  size: "380px",
@@ -329,102 +334,102 @@ var Q = J("tabs", () => {
329
334
  "show-footer": !1,
330
335
  "onUpdate:modelValue": c
331
336
  }, {
332
- default: G(() => [j(g, {
333
- modelValue: H(t).settingsActiveTab,
334
- "onUpdate:modelValue": l[0] ||= (e) => H(t).settingsActiveTab = e,
337
+ default: K(() => [M(g, {
338
+ modelValue: U(t).settingsActiveTab,
339
+ "onUpdate:modelValue": l[0] ||= (e) => U(t).settingsActiveTab = e,
335
340
  class: "settings-tabs"
336
341
  }, {
337
- default: G(() => [
338
- j(p, {
342
+ default: K(() => [
343
+ M(p, {
339
344
  label: "外观",
340
345
  name: "theme"
341
346
  }, {
342
- default: G(() => [
343
- k("div", at, [l[1] ||= k("div", { class: "settings-section__header" }, [k("span", { class: "settings-section__title" }, "主题模式"), k("span", { class: "settings-section__desc" }, "选择浅色、深色或跟随系统")], -1), k("div", ot, [(I(), O(x, null, R(r, (e) => k("button", {
347
+ default: K(() => [
348
+ A("div", it, [l[1] ||= A("div", { class: "settings-section__header" }, [A("span", { class: "settings-section__title" }, "主题模式"), A("span", { class: "settings-section__desc" }, "选择浅色、深色或跟随系统")], -1), A("div", at, [(L(), k(x, null, z(r, (e) => A("button", {
344
349
  key: e.value,
345
350
  type: "button",
346
- class: P(["settings-mode-card", { "is-active": H(t).themeMode === e.value }]),
347
- onClick: (n) => H(t).setThemeMode(e.value)
348
- }, [j(d, { size: 20 }, {
349
- default: G(() => [(I(), E(B(e.icon)))]),
351
+ class: F(["settings-mode-card", { "is-active": U(t).themeMode === e.value }]),
352
+ onClick: (n) => U(t).setThemeMode(e.value)
353
+ }, [M(d, { size: 20 }, {
354
+ default: K(() => [(L(), D(V(e.icon)))]),
350
355
  _: 2
351
- }, 1024), k("strong", null, V(e.label), 1)], 10, st)), 64))])]),
352
- k("div", ct, [H(t).isDark ? D("", !0) : (I(), O("div", lt, [...l[2] ||= [k("span", { class: "settings-section__title" }, "主题色应用", -1), k("span", { class: "settings-section__desc" }, "选择主题色应用位置", -1)]])), H(t).isDark ? D("", !0) : (I(), O("div", ut, [(I(), O(x, null, R(i, (e) => k("button", {
356
+ }, 1024), A("strong", null, H(e.label), 1)], 10, ot)), 64))])]),
357
+ A("div", st, [U(t).isDark ? O("", !0) : (L(), k("div", ct, [...l[2] ||= [A("span", { class: "settings-section__title" }, "主题色应用", -1), A("span", { class: "settings-section__desc" }, "选择主题色应用位置", -1)]])), U(t).isDark ? O("", !0) : (L(), k("div", lt, [(L(), k(x, null, z(i, (e) => A("button", {
353
358
  key: e.value,
354
359
  type: "button",
355
- class: P(["settings-position-card", { "is-active": H(t).themeColorPosition === e.value }]),
356
- onClick: (n) => H(t).setThemeColorPosition(e.value)
357
- }, [j(Qe, {
360
+ class: F(["settings-position-card", { "is-active": U(t).themeColorPosition === e.value }]),
361
+ onClick: (n) => U(t).setThemeColorPosition(e.value)
362
+ }, [M(Ze, {
358
363
  class: "settings-position-card__preview",
359
364
  src: e.previewSrc,
360
- "primary-color": H(t).themeColor
361
- }, null, 8, ["src", "primary-color"]), k("span", ft, V(e.label), 1)], 10, dt)), 64))]))]),
362
- k("div", pt, [l[4] ||= k("div", { class: "settings-section__header" }, [k("span", { class: "settings-section__title" }, "主题色"), k("span", { class: "settings-section__desc" }, "选择系统主题颜色")], -1), k("div", mt, [(I(!0), O(x, null, R(H(u), (e) => (I(), O("button", {
365
+ "primary-color": U(t).themeColor
366
+ }, null, 8, ["src", "primary-color"]), A("span", dt, H(e.label), 1)], 10, ut)), 64))]))]),
367
+ A("div", ft, [l[4] ||= A("div", { class: "settings-section__header" }, [A("span", { class: "settings-section__title" }, "主题色"), A("span", { class: "settings-section__desc" }, "选择系统主题颜色")], -1), A("div", pt, [(L(!0), k(x, null, z(U(u), (e) => (L(), k("button", {
363
368
  key: e.value,
364
369
  type: "button",
365
- class: P(["settings-color-card", { "is-active": H(t).themeColor === e.value }]),
366
- onClick: (n) => H(t).setThemeColor(e.value)
367
- }, [k("span", {
370
+ class: F(["settings-color-card", { "is-active": U(t).themeColor === e.value }]),
371
+ onClick: (n) => U(t).setThemeColor(e.value)
372
+ }, [A("span", {
368
373
  class: "settings-color-card__swatch",
369
- style: F({ backgroundColor: e.value })
370
- }, null, 4), k("span", gt, V(e.label), 1)], 10, ht))), 128)), k("div", { class: P(["settings-color-card settings-color-card--custom", { "is-active": n.value }]) }, [
371
- j(f, {
374
+ style: I({ backgroundColor: e.value })
375
+ }, null, 4), A("span", ht, H(e.label), 1)], 10, mt))), 128)), A("div", { class: F(["settings-color-card settings-color-card--custom", { "is-active": n.value }]) }, [
376
+ M(f, {
372
377
  class: "settings-color-card__picker",
373
- "model-value": H(t).themeColor,
378
+ "model-value": U(t).themeColor,
374
379
  "onUpdate:modelValue": s
375
380
  }, null, 8, ["model-value"]),
376
- k("span", _t, [j(d, { size: 18 }, {
377
- default: G(() => [j(H(le))]),
381
+ A("span", gt, [M(d, { size: 18 }, {
382
+ default: K(() => [M(U(le))]),
378
383
  _: 1
379
384
  })]),
380
- l[3] ||= k("span", { class: "settings-color-card__label" }, "自定义", -1)
385
+ l[3] ||= A("span", { class: "settings-color-card__label" }, "自定义", -1)
381
386
  ], 2)])])
382
387
  ]),
383
388
  _: 1
384
389
  }),
385
- j(p, {
390
+ M(p, {
386
391
  label: "布局",
387
392
  name: "layout"
388
393
  }, {
389
- default: G(() => [
390
- k("div", vt, [l[5] ||= k("div", { class: "settings-section__header" }, [k("span", { class: "settings-section__title" }, "布局模式"), k("span", { class: "settings-section__desc" }, "切换侧边、顶部或混合导航")], -1), k("div", yt, [(I(), O(x, null, R(a, (e) => k("button", {
394
+ default: K(() => [
395
+ A("div", _t, [l[5] ||= A("div", { class: "settings-section__header" }, [A("span", { class: "settings-section__title" }, "布局模式"), A("span", { class: "settings-section__desc" }, "切换侧边、顶部或混合导航")], -1), A("div", vt, [(L(), k(x, null, z(a, (e) => A("button", {
391
396
  key: e.value,
392
397
  type: "button",
393
- class: P(["settings-layout-card", { "is-active": H(t).layoutMode === e.value }]),
394
- onClick: (n) => H(t).setLayoutMode(e.value)
395
- }, [j(Qe, {
398
+ class: F(["settings-layout-card", { "is-active": U(t).layoutMode === e.value }]),
399
+ onClick: (n) => U(t).setLayoutMode(e.value)
400
+ }, [M(Ze, {
396
401
  class: "settings-layout-card__preview",
397
402
  src: e.previewSrc,
398
- "primary-color": H(t).themeColor
399
- }, null, 8, ["src", "primary-color"]), k("span", xt, V(e.label), 1)], 10, bt)), 64))])]),
400
- k("div", St, [k("div", Ct, [l[6] ||= k("div", null, [k("strong", null, "默认折叠侧边栏"), k("p", null, "适合屏幕较窄或想保留更多内容区空间")], -1), j(m, {
401
- "model-value": H(t).sidebarCollapsed,
402
- "onUpdate:modelValue": H(t).setSidebarCollapsed
403
+ "primary-color": U(t).themeColor
404
+ }, null, 8, ["src", "primary-color"]), A("span", bt, H(e.label), 1)], 10, yt)), 64))])]),
405
+ A("div", xt, [A("div", St, [l[6] ||= A("div", null, [A("strong", null, "默认折叠侧边栏"), A("p", null, "适合屏幕较窄或想保留更多内容区空间")], -1), M(m, {
406
+ "model-value": U(t).sidebarCollapsed,
407
+ "onUpdate:modelValue": U(t).setSidebarCollapsed
403
408
  }, null, 8, ["model-value", "onUpdate:modelValue"])])]),
404
- H(t).layoutMode === "top" ? D("", !0) : (I(), O("div", wt, [l[7] ||= k("div", { class: "settings-section__header" }, [k("span", { class: "settings-section__title" }, "菜单搜索位置"), k("span", { class: "settings-section__desc" }, "顶部或侧边栏顶部搜索")], -1), k("div", Tt, [(I(), O(x, null, R(o, (e) => k("button", {
409
+ U(t).layoutMode === "top" ? O("", !0) : (L(), k("div", Ct, [l[7] ||= A("div", { class: "settings-section__header" }, [A("span", { class: "settings-section__title" }, "菜单搜索位置"), A("span", { class: "settings-section__desc" }, "顶部或侧边栏顶部搜索")], -1), A("div", wt, [(L(), k(x, null, z(o, (e) => A("button", {
405
410
  key: e.value,
406
411
  type: "button",
407
- class: P(["settings-mode-card", { "is-active": H(t).menuSearchPlacement === e.value }]),
408
- onClick: (n) => H(t).setMenuSearchPlacement(e.value)
409
- }, [j(d, { size: 20 }, {
410
- default: G(() => [(I(), E(B(e.icon)))]),
412
+ class: F(["settings-mode-card", { "is-active": U(t).menuSearchPlacement === e.value }]),
413
+ onClick: (n) => U(t).setMenuSearchPlacement(e.value)
414
+ }, [M(d, { size: 20 }, {
415
+ default: K(() => [(L(), D(V(e.icon)))]),
411
416
  _: 2
412
- }, 1024), k("strong", null, V(e.label), 1)], 10, Et)), 64))])]))
417
+ }, 1024), A("strong", null, H(e.label), 1)], 10, Tt)), 64))])]))
413
418
  ]),
414
419
  _: 1
415
420
  }),
416
- j(p, {
421
+ M(p, {
417
422
  label: "快捷键",
418
423
  name: "shortcut"
419
424
  }, {
420
- default: G(() => [k("div", Dt, [j(h, { description: "快捷键配置稍后接入,这里先预留入口。" })])]),
425
+ default: K(() => [A("div", Et, [M(h, { description: "快捷键配置稍后接入,这里先预留入口。" })])]),
421
426
  _: 1
422
427
  }),
423
- j(p, {
428
+ M(p, {
424
429
  label: "通用",
425
430
  name: "general"
426
431
  }, {
427
- default: G(() => [k("div", Ot, [j(h, { description: "通用设置稍后扩展,这里先保留结构。" })])]),
432
+ default: K(() => [A("div", Dt, [M(h, { description: "通用设置稍后扩展,这里先保留结构。" })])]),
428
433
  _: 1
429
434
  })
430
435
  ]),
@@ -434,22 +439,22 @@ var Q = J("tabs", () => {
434
439
  }, 8, ["model-value"]);
435
440
  };
436
441
  }
437
- }), At = /* @__PURE__ */ M({
442
+ }), kt = /* @__PURE__ */ N({
438
443
  __name: "AppContentView",
439
444
  props: { refreshKey: {} },
440
445
  setup(e) {
441
446
  return (t, n) => {
442
- let r = z("router-view"), i = z("el-main");
443
- return I(), E(i, { class: "app-layout__main" }, {
444
- default: G(() => [j(r, null, {
445
- default: G(({ Component: t, route: n }) => [(I(), E(B(t), { key: `${n.fullPath}:${e.refreshKey}` }))]),
447
+ let r = B("router-view"), i = B("el-main");
448
+ return L(), D(i, { class: "app-layout__main" }, {
449
+ default: K(() => [M(r, null, {
450
+ default: K(({ Component: t, route: n }) => [(L(), D(V(t), { key: `${n.fullPath}:${e.refreshKey}` }))]),
446
451
  _: 1
447
452
  })]),
448
453
  _: 1
449
454
  });
450
455
  };
451
456
  }
452
- }), jt = ["title"], Mt = /* @__PURE__ */ p(/* @__PURE__ */ M({
457
+ }), At = ["title"], jt = /* @__PURE__ */ p(/* @__PURE__ */ N({
453
458
  __name: "ThemeToggleButton",
454
459
  setup(e) {
455
460
  let t = f();
@@ -459,41 +464,41 @@ var Q = J("tabs", () => {
459
464
  });
460
465
  }
461
466
  return (e, r) => {
462
- let i = z("el-icon");
463
- return I(), O("button", {
467
+ let i = B("el-icon");
468
+ return L(), k("button", {
464
469
  type: "button",
465
470
  class: "app-layout__header-tool-btn theme-icon-btn",
466
- title: H(t).isDark ? "切换浅色模式" : "切换深色模式",
471
+ title: U(t).isDark ? "切换浅色模式" : "切换深色模式",
467
472
  onClick: n
468
- }, [j(i, { size: 20 }, {
469
- default: G(() => [(I(), E(B(H(t).isDark ? H(we) : H(be))))]),
473
+ }, [M(i, { size: 20 }, {
474
+ default: K(() => [(L(), D(V(U(t).isDark ? U(Ce) : U(ye))))]),
470
475
  _: 1
471
- })], 8, jt);
476
+ })], 8, At);
472
477
  };
473
478
  }
474
479
  }), [["__scopeId", "data-v-73aaf569"]]);
475
480
  //#endregion
476
481
  //#region src/main/layouts/composables/useAppMenus.ts
477
- function Nt() {
478
- let e = g(), t = _(), n = f(), r = a(), i = w(() => Pt(t.options.routes.find((e) => e.path === "/")?.children ?? [], "", r.hasPermission)), o = w(() => i.value), s = w(() => n.layoutMode === "mix" ? i.value.find((e) => e.fullPath === n.selectedTopMenuPath)?.children ?? [] : i.value), c = w(() => Ft(i.value).filter((e) => !e.children?.length)), l = w(() => Ft(s.value).filter((e) => !e.children?.length));
482
+ function Mt() {
483
+ let e = g(), t = _(), n = f(), r = a(), i = T(() => Nt(t.options.routes.find((e) => e.path === "/")?.children ?? [], "", r.hasPermission)), o = T(() => i.value), s = T(() => n.isMobileViewport || n.layoutMode !== "mix" ? i.value : i.value.find((e) => e.fullPath === n.selectedTopMenuPath)?.children ?? []), c = T(() => Pt(i.value).filter((e) => !e.children?.length)), l = T(() => Pt(s.value).filter((e) => !e.children?.length));
479
484
  return {
480
- activeMenu: w(() => e.path),
481
- activeTopMenuPath: w(() => {
485
+ activeMenu: T(() => e.path),
486
+ activeTopMenuPath: T(() => {
482
487
  let t = e.path;
483
488
  return o.value.find((e) => t === e.fullPath || t.startsWith(`${e.fullPath}/`))?.fullPath || n.selectedTopMenuPath;
484
489
  }),
485
490
  allMenus: i,
486
491
  flatMenus: c,
487
492
  flatSideMenus: l,
488
- findFirstLeafNode: It,
489
- findFirstLeafPath: Lt,
493
+ findFirstLeafNode: Ft,
494
+ findFirstLeafPath: It,
490
495
  sideMenus: s,
491
496
  topMenus: o
492
497
  };
493
498
  }
494
- function Pt(e, t, n) {
495
- return e.filter((e) => !e.meta?.hidden && zt(e, n)).map((e) => {
496
- let r = Vt(e.path, t), i = e.children?.length ? Pt(e.children, r, n) : void 0;
499
+ function Nt(e, t, n) {
500
+ return e.filter((e) => !e.meta?.hidden && Rt(e, n)).map((e) => {
501
+ let r = Bt(e.path, t), i = e.children?.length ? Nt(e.children, r, n) : void 0;
497
502
  return {
498
503
  path: e.path,
499
504
  fullPath: r,
@@ -501,104 +506,136 @@ function Pt(e, t, n) {
501
506
  icon: e.meta?.icon ? String(e.meta.icon) : void 0,
502
507
  children: i
503
508
  };
504
- }).filter((t) => t.children?.length || !Bt(e, t.path));
509
+ }).filter((t) => t.children?.length || !zt(e, t.path));
505
510
  }
506
- function Ft(e) {
507
- return e.flatMap((e) => [e, ...Ft(e.children ?? [])]);
511
+ function Pt(e) {
512
+ return e.flatMap((e) => [e, ...Pt(e.children ?? [])]);
508
513
  }
509
- function It(e) {
514
+ function Ft(e) {
510
515
  if (!e.children?.length) return e;
511
516
  for (let t of e.children) {
512
- let e = It(t);
517
+ let e = Ft(t);
513
518
  if (e) return e;
514
519
  }
515
520
  return null;
516
521
  }
517
- function Lt(e, t, n = "") {
522
+ function It(e, t, n = "") {
518
523
  for (let r of e) {
519
- let e = Vt(r.path, n);
520
- if (e === t) return Rt(r, n);
524
+ let e = Bt(r.path, n);
525
+ if (e === t) return Lt(r, n);
521
526
  if (r.children?.length) {
522
- let n = Lt(r.children, t, e);
527
+ let n = It(r.children, t, e);
523
528
  if (n) return n;
524
529
  }
525
530
  }
526
531
  return null;
527
532
  }
528
- function Rt(e, t) {
529
- let n = Vt(e.path, t);
533
+ function Lt(e, t) {
534
+ let n = Bt(e.path, t);
530
535
  if (e.component) return n;
531
536
  let r = e.children ?? [];
532
537
  for (let e of r) {
533
- let t = Vt(e.path, n);
538
+ let t = Bt(e.path, n);
534
539
  if (e.component) return t;
535
540
  }
536
541
  for (let e of r) {
537
- let t = Rt(e, n);
542
+ let t = Lt(e, n);
538
543
  if (t) return t;
539
544
  }
540
545
  return null;
541
546
  }
542
- function zt(e, t) {
547
+ function Rt(e, t) {
543
548
  let n = e.meta?.permission;
544
549
  return n ? Array.isArray(n) ? n.every((e) => t(String(e))) : t(String(n)) : !0;
545
550
  }
546
- function Bt(e, t) {
551
+ function zt(e, t) {
547
552
  let n = e.find((e) => e.path === t);
548
553
  return !!(n?.redirect && !n.component && !n.children?.length);
549
554
  }
550
- function Vt(e, t) {
555
+ function Bt(e, t) {
551
556
  return e.startsWith("/") ? e : `${t}/${e}`.replace(/\/+/g, "/");
552
557
  }
553
558
  //#endregion
554
- //#region src/main/layouts/utils/menuIcons.ts
555
- var Ht = {
559
+ //#region src/main/layouts/components/AppBrandLogo.vue?vue&type=script&setup=true&lang.ts
560
+ var Vt = ["src", "alt"], Ht = ["src", "alt"], Ut = /* @__PURE__ */ p(/* @__PURE__ */ N({
561
+ __name: "AppBrandLogo",
562
+ props: {
563
+ src: {},
564
+ alt: {},
565
+ textInverted: {
566
+ type: Boolean,
567
+ default: !1
568
+ },
569
+ width: { default: "158px" },
570
+ height: { default: "40px" }
571
+ },
572
+ setup(e) {
573
+ let t = e, n = T(() => ({
574
+ "--app-brand-logo-width": t.width,
575
+ "--app-brand-logo-height": t.height
576
+ }));
577
+ return (t, r) => (L(), k("span", {
578
+ class: "app-brand-logo",
579
+ style: I(n.value)
580
+ }, [A("img", {
581
+ src: e.src,
582
+ alt: e.alt,
583
+ class: F(["app-brand-logo__image", { "is-text-base": e.textInverted }])
584
+ }, null, 10, Vt), e.textInverted ? (L(), k("img", {
585
+ key: 0,
586
+ src: e.src,
587
+ alt: e.alt,
588
+ class: "app-brand-logo__image app-brand-logo__image--text-inverted",
589
+ "aria-hidden": "true"
590
+ }, null, 8, Ht)) : O("", !0)], 4));
591
+ }
592
+ }), [["__scopeId", "data-v-a42b8639"]]), Wt = {
556
593
  Connection: de,
557
594
  House: _e,
558
- Setting: Ce,
559
- User: De
595
+ Setting: Se,
596
+ User: Ee
560
597
  };
561
598
  function $(e) {
562
- return e ? Ht[e] ?? _e : _e;
599
+ return e ? Wt[e] ?? _e : _e;
563
600
  }
564
601
  //#endregion
565
602
  //#region src/main/layouts/components/AppHeaderMenuNode.vue
566
- var Ut = /* @__PURE__ */ M({
603
+ var Gt = /* @__PURE__ */ N({
567
604
  name: "AppHeaderMenuNode",
568
605
  __name: "AppHeaderMenuNode",
569
606
  props: { node: {} },
570
607
  setup(e) {
571
608
  return (t, n) => {
572
- let r = z("el-icon"), i = z("AppHeaderMenuNode", !0), a = z("el-sub-menu"), o = z("el-menu-item");
573
- return e.node.children?.length ? (I(), E(a, {
609
+ let r = B("el-icon"), i = B("AppHeaderMenuNode", !0), a = B("el-sub-menu"), o = B("el-menu-item");
610
+ return e.node.children?.length ? (L(), D(a, {
574
611
  key: 0,
575
612
  index: e.node.fullPath
576
613
  }, {
577
- title: G(() => [e.node.icon ? (I(), E(r, { key: 0 }, {
578
- default: G(() => [(I(), E(B(H($)(e.node.icon))))]),
614
+ title: K(() => [e.node.icon ? (L(), D(r, { key: 0 }, {
615
+ default: K(() => [(L(), D(V(U($)(e.node.icon))))]),
579
616
  _: 1
580
- })) : D("", !0), k("span", null, V(e.node.title), 1)]),
581
- default: G(() => [(I(!0), O(x, null, R(e.node.children, (e) => (I(), E(i, {
617
+ })) : O("", !0), A("span", null, H(e.node.title), 1)]),
618
+ default: K(() => [(L(!0), k(x, null, z(e.node.children, (e) => (L(), D(i, {
582
619
  key: e.fullPath,
583
620
  node: e
584
621
  }, null, 8, ["node"]))), 128))]),
585
622
  _: 1
586
- }, 8, ["index"])) : (I(), E(o, {
623
+ }, 8, ["index"])) : (L(), D(o, {
587
624
  key: 1,
588
625
  index: e.node.fullPath
589
626
  }, {
590
- default: G(() => [e.node.icon ? (I(), E(r, { key: 0 }, {
591
- default: G(() => [(I(), E(B(H($)(e.node.icon))))]),
627
+ default: K(() => [e.node.icon ? (L(), D(r, { key: 0 }, {
628
+ default: K(() => [(L(), D(V(U($)(e.node.icon))))]),
592
629
  _: 1
593
- })) : D("", !0), k("span", null, V(e.node.title), 1)]),
630
+ })) : O("", !0), A("span", null, H(e.node.title), 1)]),
594
631
  _: 1
595
632
  }, 8, ["index"]));
596
633
  };
597
634
  }
598
- }), Wt = "data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M13.5%204.5V8.25C13.5%209.49264%2012.4926%2010.5%2011.25%2010.5H4.5'%20stroke='%23fff'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.5%207.5L4.5%2010.5L7.5%2013.5'%20stroke='%23fff'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e", Gt = { class: "app-menu-search-item__icon" }, Kt = { class: "app-menu-search-item__body" }, qt = {
635
+ }), Kt = "data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M13.5%204.5V8.25C13.5%209.49264%2012.4926%2010.5%2011.25%2010.5H4.5'%20stroke='%23fff'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.5%207.5L4.5%2010.5L7.5%2013.5'%20stroke='%23fff'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e", qt = { class: "app-menu-search-item__icon" }, Jt = { class: "app-menu-search-item__body" }, Yt = {
599
636
  key: 0,
600
637
  class: "app-menu-search-item__actions"
601
- }, Jt = { class: "app-menu-search-item__enter" }, Yt = ["src"], Xt = /* @__PURE__ */ M({
638
+ }, Xt = { class: "app-menu-search-item__enter" }, Zt = ["src"], Qt = /* @__PURE__ */ N({
602
639
  __name: "AppMenuSearchItem",
603
640
  props: {
604
641
  active: { type: Boolean },
@@ -613,71 +650,71 @@ var Ut = /* @__PURE__ */ M({
613
650
  setup(e, { emit: t }) {
614
651
  let n = t;
615
652
  return (t, r) => {
616
- let i = z("el-icon");
617
- return I(), O("div", {
618
- class: P(["app-menu-search-item", { "is-active": e.active }]),
653
+ let i = B("el-icon");
654
+ return L(), k("div", {
655
+ class: F(["app-menu-search-item", { "is-active": e.active }]),
619
656
  onMouseenter: r[4] ||= (t) => n("enter", e.item)
620
- }, [k("div", {
657
+ }, [A("div", {
621
658
  class: "app-menu-search-item__main",
622
659
  role: "button",
623
660
  tabindex: "0",
624
661
  onClick: r[1] ||= (t) => n("select", e.item),
625
- onKeydown: [r[2] ||= K(q((t) => n("select", e.item), ["prevent"]), ["enter"]), r[3] ||= K(q((t) => n("select", e.item), ["prevent"]), ["space"])]
662
+ onKeydown: [r[2] ||= re(q((t) => n("select", e.item), ["prevent"]), ["enter"]), r[3] ||= re(q((t) => n("select", e.item), ["prevent"]), ["space"])]
626
663
  }, [
627
- k("span", Gt, [j(i, null, {
628
- default: G(() => [(I(), E(B(H($)(e.item.icon))))]),
664
+ A("span", qt, [M(i, null, {
665
+ default: K(() => [(L(), D(V(U($)(e.item.icon))))]),
629
666
  _: 1
630
667
  })]),
631
- k("span", Kt, [k("strong", null, V(e.item.title), 1), k("span", null, V(e.item.fullPath), 1)]),
632
- j(S, { name: "app-menu-search-actions" }, {
633
- default: G(() => [e.active ? (I(), O("span", qt, [k("span", Jt, [k("img", {
634
- src: H(Wt),
668
+ A("span", Jt, [A("strong", null, H(e.item.title), 1), A("span", null, H(e.item.fullPath), 1)]),
669
+ M(C, { name: "app-menu-search-actions" }, {
670
+ default: K(() => [e.active ? (L(), k("span", Yt, [A("span", Xt, [A("img", {
671
+ src: U(Kt),
635
672
  alt: "",
636
673
  "aria-hidden": "true"
637
- }, null, 8, Yt)]), e.removable ? (I(), O("button", {
674
+ }, null, 8, Zt)]), e.removable ? (L(), k("button", {
638
675
  key: 0,
639
676
  class: "app-menu-search-item__remove",
640
677
  type: "button",
641
678
  "aria-label": "删除搜索历史",
642
679
  onClick: r[0] ||= q((t) => n("remove", e.item), ["stop"])
643
- }, [j(i, null, {
644
- default: G(() => [j(H(ue))]),
680
+ }, [M(i, null, {
681
+ default: K(() => [M(U(ue))]),
645
682
  _: 1
646
- })])) : D("", !0)])) : D("", !0)]),
683
+ })])) : O("", !0)])) : O("", !0)]),
647
684
  _: 1
648
685
  })
649
686
  ], 32)], 34);
650
687
  };
651
688
  }
652
- }), Zt = { class: "app-menu-search__control" }, Qt = {
689
+ }), $t = { class: "app-menu-search__control" }, en = {
653
690
  key: 0,
654
691
  class: "app-menu-search__section"
655
- }, $t = {
692
+ }, tn = {
656
693
  key: 1,
657
694
  class: "app-menu-search__section"
658
- }, en = {
695
+ }, nn = {
659
696
  key: 2,
660
697
  class: "app-menu-search__empty"
661
- }, tn = { class: "app-menu-search__footer" }, nn = "menu-search-history", rn = 8, an = 70, on = 28, sn = 520, cn = /* @__PURE__ */ M({
698
+ }, rn = { class: "app-menu-search__footer" }, an = "menu-search-history", on = 8, sn = 70, cn = 28, ln = 520, un = /* @__PURE__ */ N({
662
699
  __name: "AppMenuSearch",
663
700
  props: { modelValue: { type: Boolean } },
664
701
  emits: ["update:modelValue"],
665
702
  setup(e, { emit: t }) {
666
- let n = e, r = t, i = _(), { flatMenus: a } = Nt(), o = L(), s = L(), c = L(""), l = L(0), u = L(null), d = L(B()), f = w(() => c.value.trim().toLowerCase()), p = w(() => f.value ? a.value.filter((e) => {
703
+ let n = e, r = t, i = _(), { flatMenus: a } = Mt(), o = R(), s = R(), c = R(""), l = R(0), u = R(null), d = R(V()), f = T(() => c.value.trim().toLowerCase()), p = T(() => f.value ? a.value.filter((e) => {
667
704
  let t = e.title.toLowerCase(), n = e.fullPath.toLowerCase();
668
705
  return t.includes(f.value) || n.includes(f.value);
669
- }) : []), m = w(() => c.value ? p.value : d.value), h = w(() => c.value ? !p.value.length : !d.value.length);
670
- U(() => n.modelValue, (e) => {
706
+ }) : []), m = T(() => c.value ? p.value : d.value), h = T(() => c.value ? !p.value.length : !d.value.length);
707
+ W(() => n.modelValue, (e) => {
671
708
  if (!e) {
672
709
  J();
673
710
  return;
674
711
  }
675
- d.value = B(), c.value = "", u.value = d.value[0] ?? null, l.value = 0, document.body.classList.add("app-menu-search-open"), ie(), N(() => {
712
+ d.value = V(), c.value = "", u.value = d.value[0] ?? null, l.value = 0, document.body.classList.add("app-menu-search-open"), ie(), P(() => {
676
713
  o.value?.focus?.(), s.value?.setScrollTop?.(0);
677
714
  });
678
- }), U(p, (e) => {
715
+ }), W(p, (e) => {
679
716
  u.value = e[0] ?? null, s.value?.setScrollTop?.(0);
680
- }), te(() => {
717
+ }), ee(() => {
681
718
  J();
682
719
  });
683
720
  function g() {
@@ -687,19 +724,19 @@ var Ut = /* @__PURE__ */ M({
687
724
  u.value = e;
688
725
  }
689
726
  function y(e) {
690
- re(e), g(), i.push(e.fullPath);
727
+ ne(e), g(), i.push(e.fullPath);
691
728
  }
692
729
  function b(e) {
693
730
  let t = d.value.filter((t) => t.fullPath !== e.fullPath);
694
- W(t), u.value?.fullPath === e.fullPath && (u.value = t[0] ?? null);
731
+ G(t), u.value?.fullPath === e.fullPath && (u.value = t[0] ?? null);
695
732
  }
696
- function T() {
697
- W([]), u.value = null;
733
+ function E() {
734
+ G([]), u.value = null;
698
735
  }
699
- function M(e) {
736
+ function N(e) {
700
737
  l.value = e.scrollTop;
701
738
  }
702
- function P(e) {
739
+ function F(e) {
703
740
  if (n.modelValue && !e.isComposing) {
704
741
  if (e.code === "Escape") {
705
742
  e.preventDefault(), g();
@@ -709,25 +746,25 @@ var Ut = /* @__PURE__ */ M({
709
746
  e.preventDefault(), y(u.value);
710
747
  return;
711
748
  }
712
- (e.code === "ArrowDown" || e.code === "ArrowUp") && (e.preventDefault(), F(e.code === "ArrowDown" ? 1 : -1));
749
+ (e.code === "ArrowDown" || e.code === "ArrowUp") && (e.preventDefault(), I(e.code === "ArrowDown" ? 1 : -1));
713
750
  }
714
751
  }
715
- function F(e) {
752
+ function I(e) {
716
753
  let t = m.value;
717
754
  if (!t.length) return;
718
- let n = K((u.value ? t.findIndex((e) => e.fullPath === u.value?.fullPath) : -1) + e, 0, t.length - 1), r = t[n];
719
- r && (u.value = r, ne(n));
755
+ let n = re((u.value ? t.findIndex((e) => e.fullPath === u.value?.fullPath) : -1) + e, 0, t.length - 1), r = t[n];
756
+ r && (u.value = r, te(n));
720
757
  }
721
- function ne(e) {
722
- let t = on + e * an, n = l.value, r = l.value + sn - an;
723
- t < n ? s.value?.setScrollTop?.(t) : t > r && s.value?.setScrollTop?.(t - sn + an);
758
+ function te(e) {
759
+ let t = cn + e * sn, n = l.value, r = l.value + ln - sn;
760
+ t < n ? s.value?.setScrollTop?.(t) : t > r && s.value?.setScrollTop?.(t - ln + sn);
724
761
  }
725
- function re(e) {
726
- W([e, ...d.value.filter((t) => t.fullPath !== e.fullPath)].slice(0, rn));
762
+ function ne(e) {
763
+ G([e, ...d.value.filter((t) => t.fullPath !== e.fullPath)].slice(0, on));
727
764
  }
728
- function B() {
765
+ function V() {
729
766
  try {
730
- let e = localStorage.getItem(nn);
767
+ let e = localStorage.getItem(an);
731
768
  if (!e) return [];
732
769
  let t = JSON.parse(e), n = new Set(a.value.map((e) => e.fullPath));
733
770
  return t.filter((e) => n.has(e.fullPath));
@@ -735,35 +772,35 @@ var Ut = /* @__PURE__ */ M({
735
772
  return [];
736
773
  }
737
774
  }
738
- function W(e) {
775
+ function G(e) {
739
776
  if (d.value = e, !e.length) {
740
- localStorage.removeItem(nn);
777
+ localStorage.removeItem(an);
741
778
  return;
742
779
  }
743
- localStorage.setItem(nn, JSON.stringify(e));
780
+ localStorage.setItem(an, JSON.stringify(e));
744
781
  }
745
- function K(e, t, n) {
782
+ function re(e, t, n) {
746
783
  return Math.min(Math.max(e, t), n);
747
784
  }
748
785
  function ie() {
749
- window.removeEventListener("keydown", P, !0), window.addEventListener("keydown", P, !0);
786
+ window.removeEventListener("keydown", F, !0), window.addEventListener("keydown", F, !0);
750
787
  }
751
788
  function J() {
752
- document.body.classList.remove("app-menu-search-open"), window.removeEventListener("keydown", P, !0);
789
+ document.body.classList.remove("app-menu-search-open"), window.removeEventListener("keydown", F, !0);
753
790
  }
754
791
  return (t, n) => {
755
- let r = z("el-icon"), i = z("el-input"), a = z("el-scrollbar");
756
- return I(), E(ee, { to: "body" }, [j(S, { name: "app-menu-search-fade" }, {
757
- default: G(() => [e.modelValue ? (I(), O("section", {
792
+ let r = B("el-icon"), i = B("el-input"), a = B("el-scrollbar");
793
+ return L(), D(S, { to: "body" }, [M(C, { name: "app-menu-search-fade" }, {
794
+ default: K(() => [e.modelValue ? (L(), k("section", {
758
795
  key: 0,
759
796
  class: "app-menu-search",
760
797
  tabindex: "-1",
761
798
  onClick: q(g, ["self"])
762
- }, [k("div", {
799
+ }, [A("div", {
763
800
  class: "app-menu-search__panel",
764
801
  onClick: n[1] ||= q(() => {}, ["stop"])
765
802
  }, [
766
- k("div", Zt, [j(i, {
803
+ A("div", $t, [M(i, {
767
804
  ref_key: "searchInputRef",
768
805
  ref: o,
769
806
  modelValue: c.value,
@@ -772,26 +809,26 @@ var Ut = /* @__PURE__ */ M({
772
809
  placeholder: "搜索页面名称或路径",
773
810
  clearable: ""
774
811
  }, {
775
- prefix: G(() => [j(r, null, {
776
- default: G(() => [j(H(Y))]),
812
+ prefix: K(() => [M(r, null, {
813
+ default: K(() => [M(U(Y))]),
777
814
  _: 1
778
815
  })]),
779
816
  _: 1
780
817
  }, 8, ["modelValue"])]),
781
- j(a, {
818
+ M(a, {
782
819
  ref_key: "scrollbarRef",
783
820
  ref: s,
784
821
  class: "app-menu-search__scroll",
785
822
  "max-height": "520px",
786
- onScroll: M
823
+ onScroll: N
787
824
  }, {
788
- default: G(() => [
789
- p.value.length ? (I(), O("div", Qt, [n[2] ||= k("div", { class: "app-menu-search__section-title" }, "页面", -1), j(C, {
825
+ default: K(() => [
826
+ p.value.length ? (L(), k("div", en, [n[2] ||= A("div", { class: "app-menu-search__section-title" }, "页面", -1), M(w, {
790
827
  name: "app-menu-search-list",
791
828
  tag: "div",
792
829
  class: "app-menu-search__list"
793
830
  }, {
794
- default: G(() => [(I(!0), O(x, null, R(p.value, (e) => (I(), E(Xt, {
831
+ default: K(() => [(L(!0), k(x, null, z(p.value, (e) => (L(), D(Qt, {
795
832
  key: e.fullPath,
796
833
  active: u.value?.fullPath === e.fullPath,
797
834
  item: e,
@@ -799,17 +836,17 @@ var Ut = /* @__PURE__ */ M({
799
836
  onSelect: y
800
837
  }, null, 8, ["active", "item"]))), 128))]),
801
838
  _: 1
802
- })])) : D("", !0),
803
- !c.value && d.value.length ? (I(), O("div", $t, [k("div", { class: "app-menu-search__section-header" }, [n[3] ||= k("div", { class: "app-menu-search__section-title" }, "搜索历史", -1), k("button", {
839
+ })])) : O("", !0),
840
+ !c.value && d.value.length ? (L(), k("div", tn, [A("div", { class: "app-menu-search__section-header" }, [n[3] ||= A("div", { class: "app-menu-search__section-title" }, "搜索历史", -1), A("button", {
804
841
  class: "app-menu-search__clear",
805
842
  type: "button",
806
- onClick: T
807
- }, " 清空 ")]), j(C, {
843
+ onClick: E
844
+ }, " 清空 ")]), M(w, {
808
845
  name: "app-menu-search-list",
809
846
  tag: "div",
810
847
  class: "app-menu-search__list"
811
848
  }, {
812
- default: G(() => [(I(!0), O(x, null, R(d.value, (e) => (I(), E(Xt, {
849
+ default: K(() => [(L(!0), k(x, null, z(d.value, (e) => (L(), D(Qt, {
813
850
  key: e.fullPath,
814
851
  active: u.value?.fullPath === e.fullPath,
815
852
  item: e,
@@ -819,27 +856,27 @@ var Ut = /* @__PURE__ */ M({
819
856
  onSelect: y
820
857
  }, null, 8, ["active", "item"]))), 128))]),
821
858
  _: 1
822
- })])) : D("", !0),
823
- h.value ? (I(), O("div", en, V(c.value ? "没有匹配的页面" : "没有搜索历史"), 1)) : D("", !0)
859
+ })])) : O("", !0),
860
+ h.value ? (L(), k("div", nn, H(c.value ? "没有匹配的页面" : "没有搜索历史"), 1)) : O("", !0)
824
861
  ]),
825
862
  _: 1
826
863
  }, 512),
827
- k("div", tn, [
828
- n[5] ||= k("span", null, [k("kbd", null, "Enter"), A("选择")], -1),
829
- k("span", null, [
830
- j(r, null, {
831
- default: G(() => [j(H(ae))]),
864
+ A("div", rn, [
865
+ n[5] ||= A("span", null, [A("kbd", null, "Enter"), j("选择")], -1),
866
+ A("span", null, [
867
+ M(r, null, {
868
+ default: K(() => [M(U(ae))]),
832
869
  _: 1
833
870
  }),
834
- j(r, null, {
835
- default: G(() => [j(H(se))]),
871
+ M(r, null, {
872
+ default: K(() => [M(U(se))]),
836
873
  _: 1
837
874
  }),
838
- n[4] ||= A("切换", -1)
875
+ n[4] ||= j("切换", -1)
839
876
  ]),
840
- n[6] ||= k("span", null, [k("kbd", null, "Esc"), A("关闭")], -1)
877
+ n[6] ||= A("span", null, [A("kbd", null, "Esc"), j("关闭")], -1)
841
878
  ])
842
- ])])) : D("", !0)]),
879
+ ])])) : O("", !0)]),
843
880
  _: 1
844
881
  })]);
845
882
  };
@@ -847,187 +884,193 @@ var Ut = /* @__PURE__ */ M({
847
884
  });
848
885
  //#endregion
849
886
  //#region src/main/layouts/composables/useShortcutLabel.ts
850
- function ln() {
851
- let e = w(() => typeof navigator > "u" ? !1 : /Mac|iPhone|iPad|iPod/i.test(navigator.platform));
887
+ function dn() {
888
+ let e = T(() => typeof navigator > "u" ? !1 : /Mac|iPhone|iPad|iPod/i.test(navigator.platform));
852
889
  return {
853
890
  isMac: e,
854
- searchShortcutLabel: w(() => e.value ? "⌘ K" : "Ctrl K")
891
+ searchShortcutLabel: T(() => e.value ? "⌘ K" : "Ctrl K")
855
892
  };
856
893
  }
857
894
  //#endregion
858
895
  //#region src/main/layouts/components/AppMenuSearchTrigger.vue?vue&type=script&setup=true&lang.ts
859
- var un = { class: "app-menu-search-trigger__shortcut" }, dn = /* @__PURE__ */ M({
896
+ var fn = { class: "app-menu-search-trigger__shortcut" }, pn = /* @__PURE__ */ N({
860
897
  __name: "AppMenuSearchTrigger",
861
898
  props: { layoutMode: {} },
862
899
  emits: ["open"],
863
900
  setup(e, { emit: t }) {
864
- let n = t, { searchShortcutLabel: r } = ln();
901
+ let n = t, { searchShortcutLabel: r } = dn();
865
902
  return (t, i) => {
866
- let a = z("el-icon");
867
- return I(), O("button", {
868
- class: P(["app-menu-search-trigger", `app-menu-search-trigger--${e.layoutMode}`]),
903
+ let a = B("el-icon");
904
+ return L(), k("button", {
905
+ class: F(["app-menu-search-trigger", `app-menu-search-trigger--${e.layoutMode}`]),
869
906
  type: "button",
870
907
  "aria-label": "搜索页面",
871
908
  onClick: i[0] ||= (e) => n("open")
872
909
  }, [
873
- j(a, null, {
874
- default: G(() => [j(H(Y))]),
910
+ M(a, null, {
911
+ default: K(() => [M(U(Y))]),
875
912
  _: 1
876
913
  }),
877
- i[1] ||= k("span", { class: "app-menu-search-trigger__text" }, "搜索页面", -1),
878
- k("span", un, V(H(r)), 1)
914
+ i[1] ||= A("span", { class: "app-menu-search-trigger__text" }, "搜索页面", -1),
915
+ A("span", fn, H(U(r)), 1)
879
916
  ], 2);
880
917
  };
881
918
  }
882
- }), fn = { class: "app-layout__header-left" }, pn = {
919
+ }), mn = { class: "app-layout__header-left" }, hn = {
883
920
  key: 0,
884
921
  class: "app-layout__header-brand"
885
- }, mn = ["src", "alt"], hn = { class: "app-layout__header-right" }, gn = { class: "app-layout__user" }, _n = { class: "app-layout__user-copy" }, vn = /* @__PURE__ */ M({
922
+ }, gn = ["title", "aria-label"], _n = { class: "app-layout__header-right" }, vn = { class: "app-layout__user" }, yn = { class: "app-layout__user-copy" }, bn = /* @__PURE__ */ N({
886
923
  __name: "AppHeader",
887
924
  props: { breadcrumbItems: {} },
888
925
  setup(e) {
889
- let t = e, n = f(), r = a(), i = l(), o = Q(), s = _(), c = g(), u = L(!1), { activeTopMenuPath: d, findFirstLeafNode: p, findFirstLeafPath: m, topMenus: h } = Nt(), v = w(() => n.themeColorPosition === "header" ? i.logoHeader : i.logoExpanded), y = w(() => n.themeColorPosition === "header" && v.value === i.logoExpanded);
890
- ne(() => {
891
- window.addEventListener("keydown", M, { capture: !0 });
892
- }), te(() => {
893
- window.removeEventListener("keydown", M, { capture: !0 });
926
+ let t = e, n = f(), r = a(), i = l(), o = Q(), s = _(), c = g(), u = R(!1), { activeTopMenuPath: d, findFirstLeafNode: p, findFirstLeafPath: m, topMenus: h } = Mt(), v = T(() => n.themeColorPosition === "header" || n.isDark), y = T(() => v.value ? i.logoHeader : i.logoExpanded), b = T(() => v.value && y.value === i.logoExpanded);
927
+ te(() => {
928
+ window.addEventListener("keydown", P, { capture: !0 });
929
+ }), ee(() => {
930
+ window.removeEventListener("keydown", P, { capture: !0 });
894
931
  });
895
- function b(e, n) {
932
+ function S(e, n) {
896
933
  if (n !== t.breadcrumbItems.length - 1) return m(s.options.routes, e.path) || e.path || "/";
897
934
  }
898
- async function ee() {
935
+ async function C() {
899
936
  await o.resetTabs(), n.setSelectedTopMenuPath(""), await r.logout(), s.push("/login");
900
937
  }
901
- function S(e) {
938
+ function w(e) {
902
939
  s.push(e);
903
940
  }
904
- function C(e) {
941
+ function E(e) {
905
942
  let t = h.value.find((t) => t.fullPath === e);
906
943
  if (!t) return;
907
944
  n.setSelectedTopMenuPath(t.fullPath);
908
945
  let r = p(t)?.fullPath || t.fullPath;
909
946
  s.push(r);
910
947
  }
911
- function T() {
948
+ function N() {
912
949
  u.value = !0;
913
950
  }
914
- function M(e) {
915
- e.defaultPrevented || e.repeat || u.value || !(/Mac|iPhone|iPad|iPod/i.test(navigator.platform) ? e.metaKey : e.ctrlKey) || e.code !== "KeyK" || (e.preventDefault(), T());
951
+ function P(e) {
952
+ e.defaultPrevented || e.repeat || u.value || !(/Mac|iPhone|iPad|iPod/i.test(navigator.platform) ? e.metaKey : e.ctrlKey) || e.code !== "KeyK" || (e.preventDefault(), N());
916
953
  }
917
954
  return (t, a) => {
918
- let o = z("el-icon"), s = z("el-menu"), l = z("el-menu-item"), f = z("el-breadcrumb-item"), p = z("el-breadcrumb"), m = z("el-avatar"), g = z("el-dropdown-item"), _ = z("el-dropdown-menu"), w = z("el-dropdown"), M = z("el-header");
919
- return I(), O(x, null, [j(M, { class: "app-layout__header" }, {
920
- default: G(() => [
921
- k("div", fn, [
922
- H(n).layoutMode === "mix" ? D("", !0) : (I(), O("div", pn, [k("img", {
923
- src: v.value,
924
- alt: H(i).systemName,
925
- class: P(["app-layout__header-brand-image", { "is-fallback-inverted": y.value }])
926
- }, null, 10, mn)])),
927
- H(n).layoutMode === "top" ? D("", !0) : (I(), O("button", {
955
+ let o = B("el-icon"), s = B("el-menu"), l = B("el-menu-item"), f = B("el-breadcrumb-item"), p = B("el-breadcrumb"), m = B("el-avatar"), g = B("el-dropdown-item"), _ = B("el-dropdown-menu"), v = B("el-dropdown"), T = B("el-header");
956
+ return L(), k(x, null, [M(T, { class: "app-layout__header" }, {
957
+ default: K(() => [
958
+ A("div", mn, [
959
+ U(n).layoutMode === "default" || U(n).layoutMode === "top" ? (L(), k("div", hn, [M(Ut, {
960
+ src: y.value,
961
+ alt: U(i).systemName,
962
+ "text-inverted": b.value
963
+ }, null, 8, [
964
+ "src",
965
+ "alt",
966
+ "text-inverted"
967
+ ])])) : O("", !0),
968
+ U(n).layoutMode !== "top" || U(n).isMobileViewport ? (L(), k("button", {
928
969
  key: 1,
929
970
  type: "button",
930
971
  class: "app-layout__header-tool-btn app-layout__header-tool-btn--collapse",
931
- onClick: a[0] ||= (e) => H(n).toggleSidebar()
932
- }, [j(o, null, {
933
- default: G(() => [(I(), E(B(H(n).sidebarCollapsed ? H(me) : H(he))))]),
972
+ title: U(n).isMobileViewport ? "打开菜单" : U(n).sidebarCollapsed ? "展开侧边栏" : "折叠侧边栏",
973
+ "aria-label": U(n).isMobileViewport ? "打开菜单" : U(n).sidebarCollapsed ? "展开侧边栏" : "折叠侧边栏",
974
+ onClick: a[0] ||= (e) => U(n).toggleSidebar()
975
+ }, [M(o, null, {
976
+ default: K(() => [(L(), D(V(U(n).sidebarCollapsed && !U(n).isMobileViewport ? U(me) : U(he))))]),
934
977
  _: 1
935
- })])),
936
- H(n).layoutMode === "top" ? (I(), E(s, {
978
+ })], 8, gn)) : O("", !0),
979
+ U(n).layoutMode === "top" && !U(n).isMobileViewport ? (L(), D(s, {
937
980
  key: 2,
938
981
  mode: "horizontal",
939
982
  ellipsis: !1,
940
- "default-active": H(c).path,
983
+ "default-active": U(c).path,
941
984
  class: "app-layout__header-menu",
942
- onSelect: S
985
+ onSelect: w
943
986
  }, {
944
- default: G(() => [(I(!0), O(x, null, R(H(h), (e) => (I(), E(Ut, {
987
+ default: K(() => [(L(!0), k(x, null, z(U(h), (e) => (L(), D(Gt, {
945
988
  key: e.fullPath,
946
989
  node: e
947
990
  }, null, 8, ["node"]))), 128))]),
948
991
  _: 1
949
- }, 8, ["default-active"])) : H(n).layoutMode === "mix" ? (I(), E(s, {
992
+ }, 8, ["default-active"])) : U(n).layoutMode === "mix" && !U(n).isMobileViewport ? (L(), D(s, {
950
993
  key: 3,
951
994
  mode: "horizontal",
952
995
  ellipsis: !1,
953
- "default-active": H(d),
996
+ "default-active": U(d),
954
997
  class: "app-layout__header-menu app-layout__header-menu--mix",
955
- onSelect: C
998
+ onSelect: E
956
999
  }, {
957
- default: G(() => [(I(!0), O(x, null, R(H(h), (e) => (I(), E(l, {
1000
+ default: K(() => [(L(!0), k(x, null, z(U(h), (e) => (L(), D(l, {
958
1001
  key: e.fullPath,
959
1002
  index: e.fullPath
960
1003
  }, {
961
- default: G(() => [A(V(e.title), 1)]),
1004
+ default: K(() => [j(H(e.title), 1)]),
962
1005
  _: 2
963
1006
  }, 1032, ["index"]))), 128))]),
964
1007
  _: 1
965
- }, 8, ["default-active"])) : D("", !0),
966
- H(n).layoutMode === "side" ? (I(), E(p, {
1008
+ }, 8, ["default-active"])) : O("", !0),
1009
+ U(n).layoutMode === "default" || U(n).layoutMode === "side" ? (L(), D(p, {
967
1010
  key: 4,
968
- "separator-icon": H(oe)
1011
+ "separator-icon": U(oe)
969
1012
  }, {
970
- default: G(() => [(I(!0), O(x, null, R(e.breadcrumbItems, (e, t) => (I(), E(f, {
1013
+ default: K(() => [(L(!0), k(x, null, z(e.breadcrumbItems, (e, t) => (L(), D(f, {
971
1014
  key: e.path || String(e.name),
972
- to: b(e, t)
1015
+ to: S(e, t)
973
1016
  }, {
974
- default: G(() => [A(V(e.meta.title), 1)]),
1017
+ default: K(() => [j(H(e.meta.title), 1)]),
975
1018
  _: 2
976
1019
  }, 1032, ["to"]))), 128))]),
977
1020
  _: 1
978
- }, 8, ["separator-icon"])) : D("", !0)
1021
+ }, 8, ["separator-icon"])) : O("", !0)
979
1022
  ]),
980
- H(n).layoutMode !== "mix" && !H(n).isSidebarMenuSearch ? (I(), O("div", {
1023
+ U(n).layoutMode !== "mix" && !U(n).isSidebarMenuSearch ? (L(), k("div", {
981
1024
  key: 0,
982
- class: P(["app-layout__header-search", `app-layout__header-search--${H(n).layoutMode}`])
983
- }, [j(dn, {
984
- "layout-mode": H(n).layoutMode,
985
- onOpen: T
986
- }, null, 8, ["layout-mode"])], 2)) : D("", !0),
987
- k("div", hn, [
988
- H(n).layoutMode === "mix" && !H(n).isSidebarMenuSearch ? (I(), E(dn, {
1025
+ class: F(["app-layout__header-search", `app-layout__header-search--${U(n).layoutMode}`])
1026
+ }, [M(pn, {
1027
+ "layout-mode": U(n).layoutMode,
1028
+ onOpen: N
1029
+ }, null, 8, ["layout-mode"])], 2)) : O("", !0),
1030
+ A("div", _n, [
1031
+ U(n).layoutMode === "mix" && !U(n).isSidebarMenuSearch ? (L(), D(pn, {
989
1032
  key: 0,
990
- "layout-mode": H(n).layoutMode,
991
- onOpen: T
992
- }, null, 8, ["layout-mode"])) : D("", !0),
993
- k("button", {
1033
+ "layout-mode": U(n).layoutMode,
1034
+ onOpen: N
1035
+ }, null, 8, ["layout-mode"])) : O("", !0),
1036
+ A("button", {
994
1037
  type: "button",
995
1038
  class: "app-layout__header-tool-btn",
996
1039
  title: "主题设置",
997
- onClick: a[1] ||= (e) => H(n).openSettings("theme")
998
- }, [j(o, {
1040
+ onClick: a[1] ||= (e) => U(n).openSettings("theme")
1041
+ }, [M(o, {
999
1042
  size: 18,
1000
1043
  class: "app-layout__header-tool-icon"
1001
1044
  }, {
1002
- default: G(() => [j(H(le))]),
1045
+ default: K(() => [M(U(le))]),
1003
1046
  _: 1
1004
1047
  })]),
1005
- j(Mt),
1006
- j(w, { onCommand: ee }, {
1007
- dropdown: G(() => [j(_, null, {
1008
- default: G(() => [j(g, { disabled: "" }, {
1009
- default: G(() => [j(o, null, {
1010
- default: G(() => [j(H(Ce))]),
1048
+ M(jt),
1049
+ M(v, { onCommand: C }, {
1050
+ dropdown: K(() => [M(_, null, {
1051
+ default: K(() => [M(g, { disabled: "" }, {
1052
+ default: K(() => [M(o, null, {
1053
+ default: K(() => [M(U(Se))]),
1011
1054
  _: 1
1012
- }), a[3] ||= A(" 个人设置 ", -1)]),
1055
+ }), a[3] ||= j(" 个人设置 ", -1)]),
1013
1056
  _: 1
1014
- }), j(g, { command: "logout" }, {
1015
- default: G(() => [j(o, null, {
1016
- default: G(() => [j(H(Te))]),
1057
+ }), M(g, { command: "logout" }, {
1058
+ default: K(() => [M(o, null, {
1059
+ default: K(() => [M(U(we))]),
1017
1060
  _: 1
1018
- }), a[4] ||= A(" 退出登录 ", -1)]),
1061
+ }), a[4] ||= j(" 退出登录 ", -1)]),
1019
1062
  _: 1
1020
1063
  })]),
1021
1064
  _: 1
1022
1065
  })]),
1023
- default: G(() => [k("div", gn, [
1024
- j(m, { size: 32 }, {
1025
- default: G(() => [A(V(H(r).userName.slice(0, 1)), 1)]),
1066
+ default: K(() => [A("div", vn, [
1067
+ M(m, { size: 32 }, {
1068
+ default: K(() => [j(H(U(r).userName.slice(0, 1)), 1)]),
1026
1069
  _: 1
1027
1070
  }),
1028
- k("div", _n, [k("strong", null, V(H(r).userName), 1), k("span", null, V(H(r).userRoleLabel), 1)]),
1029
- j(o, null, {
1030
- default: G(() => [j(H(ae))]),
1071
+ A("div", yn, [A("strong", null, H(U(r).userName), 1), A("span", null, H(U(r).userRoleLabel), 1)]),
1072
+ M(o, null, {
1073
+ default: K(() => [M(U(ae))]),
1031
1074
  _: 1
1032
1075
  })
1033
1076
  ])]),
@@ -1036,7 +1079,7 @@ var un = { class: "app-menu-search-trigger__shortcut" }, dn = /* @__PURE__ */ M(
1036
1079
  ])
1037
1080
  ]),
1038
1081
  _: 1
1039
- }), j(cn, {
1082
+ }), M(un, {
1040
1083
  modelValue: u.value,
1041
1084
  "onUpdate:modelValue": a[2] ||= (e) => u.value = e
1042
1085
  }, null, 8, ["modelValue"])], 64);
@@ -1045,40 +1088,40 @@ var un = { class: "app-menu-search-trigger__shortcut" }, dn = /* @__PURE__ */ M(
1045
1088
  });
1046
1089
  //#endregion
1047
1090
  //#region src/main/layouts/utils/menuSearch.ts
1048
- function yn(e, t) {
1091
+ function xn(e, t) {
1049
1092
  let n = t.trim().toLowerCase();
1050
1093
  if (!n) return [...e];
1051
1094
  let r = [];
1052
1095
  for (let t of e) {
1053
- let e = yn(t.children ?? [], n);
1054
- !(Sn(t) && xn(t, n)) && !e.length || r.push({
1096
+ let e = xn(t.children ?? [], n);
1097
+ !(wn(t) && Cn(t, n)) && !e.length || r.push({
1055
1098
  ...t,
1056
1099
  children: e.length ? e : void 0
1057
1100
  });
1058
1101
  }
1059
1102
  return r;
1060
1103
  }
1061
- function bn(e, t) {
1062
- let n = Cn(e), r = t.trim();
1104
+ function Sn(e, t) {
1105
+ let n = Tn(e), r = t.trim();
1063
1106
  if (!r) return n;
1064
1107
  let i = Array.from(e), a = e.toLowerCase(), o = r.toLowerCase(), s = a.indexOf(o);
1065
- return s < 0 ? n : `${Cn(i.slice(0, s).join(""))}<mark class="app-menu-search-highlight">${Cn(i.slice(s, s + r.length).join(""))}</mark>${Cn(i.slice(s + r.length).join(""))}`;
1108
+ return s < 0 ? n : `${Tn(i.slice(0, s).join(""))}<mark class="app-menu-search-highlight">${Tn(i.slice(s, s + r.length).join(""))}</mark>${Tn(i.slice(s + r.length).join(""))}`;
1066
1109
  }
1067
- function xn(e, t) {
1110
+ function Cn(e, t) {
1068
1111
  return e.title.toLowerCase().includes(t);
1069
1112
  }
1070
- function Sn(e) {
1113
+ function wn(e) {
1071
1114
  return !e.children?.length;
1072
1115
  }
1073
- function Cn(e) {
1116
+ function Tn(e) {
1074
1117
  return e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&#39;");
1075
1118
  }
1076
1119
  //#endregion
1077
1120
  //#region src/main/layouts/components/AppSidebarSearch.vue?vue&type=script&setup=true&lang.ts
1078
- var wn = {
1121
+ var En = {
1079
1122
  key: 0,
1080
1123
  class: "app-sidebar-search"
1081
- }, Tn = /* @__PURE__ */ M({
1124
+ }, Dn = /* @__PURE__ */ N({
1082
1125
  __name: "AppSidebarSearch",
1083
1126
  props: {
1084
1127
  collapsed: { type: Boolean },
@@ -1088,22 +1131,22 @@ var wn = {
1088
1131
  setup(e, { emit: t }) {
1089
1132
  let n = t;
1090
1133
  return (t, r) => {
1091
- let i = z("el-icon"), a = z("el-input");
1092
- return e.collapsed ? D("", !0) : (I(), O("div", wn, [j(a, {
1134
+ let i = B("el-icon"), a = B("el-input");
1135
+ return e.collapsed ? O("", !0) : (L(), k("div", En, [M(a, {
1093
1136
  "model-value": e.keyword,
1094
1137
  placeholder: "搜索菜单",
1095
1138
  clearable: "",
1096
1139
  "onUpdate:modelValue": r[0] ||= (e) => n("update:keyword", e)
1097
1140
  }, {
1098
- prefix: G(() => [j(i, null, {
1099
- default: G(() => [j(H(Y))]),
1141
+ prefix: K(() => [M(i, null, {
1142
+ default: K(() => [M(U(Y))]),
1100
1143
  _: 1
1101
1144
  })]),
1102
1145
  _: 1
1103
1146
  }, 8, ["model-value"])]));
1104
1147
  };
1105
1148
  }
1106
- }), En = ["innerHTML"], Dn = ["innerHTML"], On = /* @__PURE__ */ M({
1149
+ }), On = ["innerHTML"], kn = ["innerHTML"], An = /* @__PURE__ */ N({
1107
1150
  name: "AppSidebarNode",
1108
1151
  __name: "AppSidebarNode",
1109
1152
  props: {
@@ -1111,116 +1154,127 @@ var wn = {
1111
1154
  keyword: {}
1112
1155
  },
1113
1156
  setup(e) {
1114
- let t = e, n = w(() => bn(t.node.title, t.keyword ?? ""));
1157
+ let t = e, n = T(() => Sn(t.node.title, t.keyword ?? ""));
1115
1158
  return (t, r) => {
1116
- let i = z("el-icon"), a = z("AppSidebarNode", !0), o = z("el-sub-menu"), s = z("el-menu-item");
1117
- return e.node.children?.length ? (I(), E(o, {
1159
+ let i = B("el-icon"), a = B("AppSidebarNode", !0), o = B("el-sub-menu"), s = B("el-menu-item");
1160
+ return e.node.children?.length ? (L(), D(o, {
1118
1161
  key: 0,
1119
1162
  index: e.node.fullPath
1120
1163
  }, {
1121
- title: G(() => [j(i, null, {
1122
- default: G(() => [(I(), E(B(H($)(e.node.icon))))]),
1164
+ title: K(() => [M(i, null, {
1165
+ default: K(() => [(L(), D(V(U($)(e.node.icon))))]),
1123
1166
  _: 1
1124
- }), k("span", { innerHTML: n.value }, null, 8, En)]),
1125
- default: G(() => [(I(!0), O(x, null, R(e.node.children, (t) => (I(), E(a, {
1167
+ }), A("span", { innerHTML: n.value }, null, 8, On)]),
1168
+ default: K(() => [(L(!0), k(x, null, z(e.node.children, (t) => (L(), D(a, {
1126
1169
  key: t.fullPath,
1127
1170
  node: t,
1128
1171
  keyword: e.keyword
1129
1172
  }, null, 8, ["node", "keyword"]))), 128))]),
1130
1173
  _: 1
1131
- }, 8, ["index"])) : (I(), E(s, {
1174
+ }, 8, ["index"])) : (L(), D(s, {
1132
1175
  key: 1,
1133
1176
  index: e.node.fullPath
1134
1177
  }, {
1135
- default: G(() => [k("span", { innerHTML: n.value }, null, 8, Dn)]),
1178
+ default: K(() => [A("span", { innerHTML: n.value }, null, 8, kn)]),
1136
1179
  _: 1
1137
1180
  }, 8, ["index"]));
1138
1181
  };
1139
1182
  }
1140
- }), kn = {
1183
+ }), jn = {
1141
1184
  key: 0,
1142
1185
  class: "app-layout__brand"
1143
- }, An = ["src", "alt"], jn = ["src", "alt"], Mn = /* @__PURE__ */ M({
1186
+ }, Mn = /* @__PURE__ */ N({
1144
1187
  name: "AppSidebar",
1145
1188
  __name: "AppSidebar",
1146
1189
  setup(e) {
1147
- let t = f(), n = l(), { activeMenu: r, sideMenus: i } = Nt(), a = L(""), o = w(() => t.isSidebarMenuSearch ? yn(i.value, a.value) : i.value), s = w(() => !t.isSidebarMenuSearch || !a.value.trim() ? [] : c(o.value));
1148
- U(() => t.isSidebarMenuSearch, (e) => {
1190
+ let t = f(), n = l(), { activeMenu: r, sideMenus: i } = Mt(), a = R(""), o = T(() => t.themeColorPosition === "sidebar" || t.isDark), s = T(() => o.value ? n.logoHeader : n.logoExpanded), c = T(() => o.value && s.value === n.logoExpanded), u = T(() => t.isMobileViewport ? !1 : t.sidebarCollapsed), d = T(() => t.layoutMode !== "top" || t.isMobileViewport), p = T(() => t.isSidebarMenuSearch ? xn(i.value, a.value) : i.value), m = T(() => !t.isSidebarMenuSearch || !a.value.trim() ? [] : h(p.value));
1191
+ W(() => t.isSidebarMenuSearch, (e) => {
1149
1192
  e || (a.value = "");
1150
1193
  });
1151
- function c(e) {
1194
+ function h(e) {
1152
1195
  let t = [];
1153
- for (let n of e) n.children?.length && (t.push(n.fullPath), t.push(...c(n.children)));
1196
+ for (let n of e) n.children?.length && (t.push(n.fullPath), t.push(...h(n.children)));
1154
1197
  return t;
1155
1198
  }
1156
1199
  return (e, i) => {
1157
- let c = z("el-menu"), l = z("el-scrollbar"), u = z("el-aside");
1158
- return H(t).layoutMode === "top" ? D("", !0) : (I(), E(u, {
1200
+ let o = B("el-menu"), l = B("el-scrollbar"), f = B("el-aside");
1201
+ return d.value ? (L(), D(f, {
1159
1202
  key: 0,
1160
- width: H(t).sidebarCollapsed ? "72px" : "220px",
1161
- class: P(["app-layout__aside", { "is-mix-mode": H(t).layoutMode === "mix" }])
1203
+ width: u.value ? "72px" : "220px",
1204
+ class: F(["app-layout__aside", {
1205
+ "is-mix-mode": U(t).layoutMode === "mix",
1206
+ "has-brand": U(t).layoutMode !== "default",
1207
+ "is-mobile-open": U(t).mobileSidebarVisible
1208
+ }])
1162
1209
  }, {
1163
- default: G(() => [
1164
- H(t).layoutMode === "mix" ? (I(), O("div", kn, [j(S, {
1210
+ default: K(() => [
1211
+ U(t).layoutMode === "default" ? O("", !0) : (L(), k("div", jn, [M(C, {
1165
1212
  name: "brand-fade",
1166
1213
  mode: "out-in"
1167
1214
  }, {
1168
- default: G(() => [H(t).sidebarCollapsed ? (I(), O("img", {
1215
+ default: K(() => [u.value ? (L(), D(Ut, {
1169
1216
  key: "collapsed",
1170
- src: H(n).logoCollapsed,
1171
- alt: H(n).systemName,
1172
- class: "app-layout__brand-image app-layout__brand-image--collapsed"
1173
- }, null, 8, An)) : (I(), O("img", {
1217
+ src: U(n).logoCollapsed,
1218
+ alt: U(n).systemName,
1219
+ width: "40px",
1220
+ height: "40px"
1221
+ }, null, 8, ["src", "alt"])) : (L(), D(Ut, {
1174
1222
  key: "expanded",
1175
- src: H(n).logoExpanded,
1176
- alt: H(n).systemName,
1177
- class: "app-layout__brand-image app-layout__brand-image--expanded"
1178
- }, null, 8, jn))]),
1223
+ src: s.value,
1224
+ alt: U(n).systemName,
1225
+ "text-inverted": c.value
1226
+ }, null, 8, [
1227
+ "src",
1228
+ "alt",
1229
+ "text-inverted"
1230
+ ]))]),
1179
1231
  _: 1
1180
- })])) : D("", !0),
1181
- H(t).isSidebarMenuSearch ? (I(), E(Tn, {
1232
+ })])),
1233
+ U(t).isSidebarMenuSearch ? (L(), D(Dn, {
1182
1234
  key: 1,
1183
- collapsed: H(t).sidebarCollapsed,
1235
+ collapsed: u.value,
1184
1236
  keyword: a.value,
1185
1237
  "onUpdate:keyword": i[0] ||= (e) => a.value = e
1186
- }, null, 8, ["collapsed", "keyword"])) : D("", !0),
1187
- j(l, null, {
1188
- default: G(() => [j(c, {
1189
- collapse: H(t).sidebarCollapsed,
1190
- "default-active": H(r),
1191
- "default-openeds": s.value,
1238
+ }, null, 8, ["collapsed", "keyword"])) : O("", !0),
1239
+ M(l, null, {
1240
+ default: K(() => [M(o, {
1241
+ collapse: u.value,
1242
+ "default-active": U(r),
1243
+ "default-openeds": m.value,
1192
1244
  class: "app-layout__menu",
1193
1245
  router: "",
1194
- "unique-opened": ""
1246
+ "unique-opened": "",
1247
+ onSelect: U(t).closeMobileSidebar
1195
1248
  }, {
1196
- default: G(() => [(I(!0), O(x, null, R(o.value, (e) => (I(), E(On, {
1249
+ default: K(() => [(L(!0), k(x, null, z(p.value, (e) => (L(), D(An, {
1197
1250
  key: e.fullPath,
1198
1251
  node: e,
1199
- keyword: H(t).isSidebarMenuSearch ? a.value : ""
1252
+ keyword: U(t).isSidebarMenuSearch ? a.value : ""
1200
1253
  }, null, 8, ["node", "keyword"]))), 128))]),
1201
1254
  _: 1
1202
1255
  }, 8, [
1203
1256
  "collapse",
1204
1257
  "default-active",
1205
- "default-openeds"
1258
+ "default-openeds",
1259
+ "onSelect"
1206
1260
  ])]),
1207
1261
  _: 1
1208
1262
  })
1209
1263
  ]),
1210
1264
  _: 1
1211
- }, 8, ["width", "class"]));
1265
+ }, 8, ["width", "class"])) : O("", !0);
1212
1266
  };
1213
1267
  }
1214
1268
  });
1215
1269
  //#endregion
1216
1270
  //#region src/main/composables/useSortable.ts
1217
1271
  function Nn(e = {}) {
1218
- let t = L(null);
1272
+ let t = R(null);
1219
1273
  function n() {
1220
1274
  t.value?.destroy(), t.value = null;
1221
1275
  }
1222
1276
  function r(r) {
1223
- r && (n(), t.value = je.create(r, {
1277
+ r && (n(), t.value = Ae.create(r, {
1224
1278
  animation: e.animation ?? 150,
1225
1279
  chosenClass: e.chosenClass,
1226
1280
  direction: e.direction,
@@ -1246,7 +1300,7 @@ function Nn(e = {}) {
1246
1300
  swapThreshold: e.swapThreshold
1247
1301
  }));
1248
1302
  }
1249
- return te(() => {
1303
+ return ee(() => {
1250
1304
  n();
1251
1305
  }), {
1252
1306
  destroy: n,
@@ -1256,7 +1310,7 @@ function Nn(e = {}) {
1256
1310
  }
1257
1311
  //#endregion
1258
1312
  //#region src/main/layouts/components/AppTabsContextMenu.vue?vue&type=script&setup=true&lang.ts
1259
- var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"], Rn = ["disabled"], zn = /* @__PURE__ */ M({
1313
+ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"], Rn = ["disabled"], zn = /* @__PURE__ */ N({
1260
1314
  __name: "AppTabsContextMenu",
1261
1315
  props: {
1262
1316
  hasLeftTabs: { type: Boolean },
@@ -1307,89 +1361,89 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1307
1361
  n.targetTab && r("closeRight", n.targetTab.path);
1308
1362
  }
1309
1363
  return (t, n) => {
1310
- let f = z("el-icon");
1311
- return e.visible && e.targetTab ? (I(), O("div", {
1364
+ let f = B("el-icon");
1365
+ return e.visible && e.targetTab ? (L(), k("div", {
1312
1366
  key: 0,
1313
1367
  class: "app-tabs-menu",
1314
- style: F({
1368
+ style: I({
1315
1369
  left: `${e.position.x}px`,
1316
1370
  top: `${e.position.y}px`
1317
1371
  }),
1318
1372
  onMousedown: n[8] ||= q(() => {}, ["stop"]),
1319
1373
  onContextmenu: n[9] ||= q(() => {}, ["prevent"])
1320
1374
  }, [
1321
- k("button", {
1375
+ A("button", {
1322
1376
  class: "app-tabs-menu__item",
1323
1377
  type: "button",
1324
1378
  onClick: n[0] ||= (e) => i(a)
1325
- }, [j(f, null, {
1326
- default: G(() => [j(H(Se))]),
1379
+ }, [M(f, null, {
1380
+ default: K(() => [M(U(xe))]),
1327
1381
  _: 1
1328
- }), n[10] ||= k("span", null, "重新加载", -1)]),
1329
- k("button", {
1382
+ }), n[10] ||= A("span", null, "重新加载", -1)]),
1383
+ A("button", {
1330
1384
  class: "app-tabs-menu__item",
1331
1385
  type: "button",
1332
1386
  disabled: !e.hasLastActive,
1333
1387
  onClick: n[1] ||= (t) => i(o, !e.hasLastActive)
1334
- }, [j(f, null, {
1335
- default: G(() => [j(H(ce))]),
1388
+ }, [M(f, null, {
1389
+ default: K(() => [M(U(ce))]),
1336
1390
  _: 1
1337
- }), n[11] ||= k("span", null, "切换上一个页签", -1)], 8, Pn),
1338
- k("button", {
1391
+ }), n[11] ||= A("span", null, "切换上一个页签", -1)], 8, Pn),
1392
+ A("button", {
1339
1393
  class: "app-tabs-menu__item",
1340
1394
  type: "button",
1341
1395
  onClick: n[2] ||= (e) => i(s)
1342
- }, [j(f, null, {
1343
- default: G(() => [j(H(Ee))]),
1396
+ }, [M(f, null, {
1397
+ default: K(() => [M(U(Te))]),
1344
1398
  _: 1
1345
- }), n[12] ||= k("span", null, "在新窗口打开", -1)]),
1346
- n[18] ||= k("div", { class: "app-tabs-menu__divider" }, null, -1),
1347
- k("button", {
1399
+ }), n[12] ||= A("span", null, "在新窗口打开", -1)]),
1400
+ n[18] ||= A("div", { class: "app-tabs-menu__divider" }, null, -1),
1401
+ A("button", {
1348
1402
  class: "app-tabs-menu__item",
1349
1403
  type: "button",
1350
1404
  disabled: e.isTargetHome,
1351
1405
  onClick: n[3] ||= (t) => i(c, e.isTargetHome)
1352
- }, [j(f, null, {
1353
- default: G(() => [j(H(ue))]),
1406
+ }, [M(f, null, {
1407
+ default: K(() => [M(U(ue))]),
1354
1408
  _: 1
1355
- }), n[13] ||= k("span", null, "关闭当前页签", -1)], 8, Fn),
1356
- k("button", {
1409
+ }), n[13] ||= A("span", null, "关闭当前页签", -1)], 8, Fn),
1410
+ A("button", {
1357
1411
  class: "app-tabs-menu__item",
1358
1412
  type: "button",
1359
1413
  disabled: !e.hasMultipleTabs,
1360
1414
  onClick: n[4] ||= (t) => i(l, !e.hasMultipleTabs)
1361
- }, [j(f, null, {
1362
- default: G(() => [j(H(xe))]),
1415
+ }, [M(f, null, {
1416
+ default: K(() => [M(U(be))]),
1363
1417
  _: 1
1364
- }), n[14] ||= k("span", null, "关闭其他页签", -1)], 8, In),
1365
- k("button", {
1418
+ }), n[14] ||= A("span", null, "关闭其他页签", -1)], 8, In),
1419
+ A("button", {
1366
1420
  class: "app-tabs-menu__item",
1367
1421
  type: "button",
1368
1422
  disabled: !e.hasLeftTabs,
1369
1423
  onClick: n[5] ||= (t) => i(u, !e.hasLeftTabs)
1370
- }, [j(f, null, {
1371
- default: G(() => [j(H(fe))]),
1424
+ }, [M(f, null, {
1425
+ default: K(() => [M(U(fe))]),
1372
1426
  _: 1
1373
- }), n[15] ||= k("span", null, "关闭左侧页签", -1)], 8, Ln),
1374
- k("button", {
1427
+ }), n[15] ||= A("span", null, "关闭左侧页签", -1)], 8, Ln),
1428
+ A("button", {
1375
1429
  class: "app-tabs-menu__item",
1376
1430
  type: "button",
1377
1431
  disabled: !e.hasRightTabs,
1378
1432
  onClick: n[6] ||= (t) => i(d, !e.hasRightTabs)
1379
- }, [j(f, null, {
1380
- default: G(() => [j(H(pe))]),
1433
+ }, [M(f, null, {
1434
+ default: K(() => [M(U(pe))]),
1381
1435
  _: 1
1382
- }), n[16] ||= k("span", null, "关闭右侧页签", -1)], 8, Rn),
1383
- n[19] ||= k("div", { class: "app-tabs-menu__divider" }, null, -1),
1384
- k("button", {
1436
+ }), n[16] ||= A("span", null, "关闭右侧页签", -1)], 8, Rn),
1437
+ n[19] ||= A("div", { class: "app-tabs-menu__divider" }, null, -1),
1438
+ A("button", {
1385
1439
  class: "app-tabs-menu__item",
1386
1440
  type: "button",
1387
1441
  onClick: n[7] ||= (e) => i(() => r("closeAll"))
1388
- }, [j(f, null, {
1389
- default: G(() => [j(H(ge))]),
1442
+ }, [M(f, null, {
1443
+ default: K(() => [M(U(ge))]),
1390
1444
  _: 1
1391
- }), n[17] ||= k("span", null, "关闭全部页签", -1)])
1392
- ], 36)) : D("", !0);
1445
+ }), n[17] ||= A("span", null, "关闭全部页签", -1)])
1446
+ ], 36)) : O("", !0);
1393
1447
  };
1394
1448
  }
1395
1449
  }), Bn = {
@@ -1399,14 +1453,14 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1399
1453
  "data-path",
1400
1454
  "onClick",
1401
1455
  "onContextmenu"
1402
- ], Un = { class: "app-layout__tab-label" }, Wn = ["onClick"], Gn = /* @__PURE__ */ M({
1456
+ ], Un = { class: "app-layout__tab-label" }, Wn = ["onClick"], Gn = /* @__PURE__ */ N({
1403
1457
  __name: "AppTabs",
1404
1458
  emits: ["refresh"],
1405
1459
  setup(e, { emit: t }) {
1406
- let n = t, r = _(), i = Q(), a = L(!1), o = L(!1), s = L(!1), c = L({
1460
+ let n = t, r = _(), i = Q(), a = R(!1), o = R(!1), s = R(!1), c = R({
1407
1461
  x: 0,
1408
1462
  y: 0
1409
- }), l = L(null), u = L(null), d = w(() => l.value ? i.tabs.findIndex((e) => e.path === l.value?.path) : -1), f = w(() => l.value?.path === i.activeTab), p = w(() => d.value > 0), m = w(() => d.value >= 0 && d.value < i.tabs.length - 1), h = w(() => i.tabs.length > 1), g = w(() => !!(i.lastActiveTab && i.tabPaths.includes(i.lastActiveTab))), { init: v } = Nn({
1463
+ }), l = R(null), u = R(null), d = T(() => l.value ? i.tabs.findIndex((e) => e.path === l.value?.path) : -1), f = T(() => l.value?.path === i.activeTab), p = T(() => d.value > 0), m = T(() => d.value >= 0 && d.value < i.tabs.length - 1), h = T(() => i.tabs.length > 1), g = T(() => !!(i.lastActiveTab && i.tabPaths.includes(i.lastActiveTab))), { init: v } = Nn({
1410
1464
  animation: 150,
1411
1465
  chosenClass: "sortable-chosen",
1412
1466
  direction: "horizontal",
@@ -1431,7 +1485,7 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1431
1485
  swapThreshold: .65
1432
1486
  });
1433
1487
  async function y(e) {
1434
- e && (i.setActiveTab(e), await r.push(e), await M());
1488
+ e && (i.setActiveTab(e), await r.push(e), await N());
1435
1489
  }
1436
1490
  async function b(e) {
1437
1491
  if (e === "/dashboard") return;
@@ -1440,31 +1494,31 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1440
1494
  let a = i.tabs[t] ?? i.tabs[t - 1];
1441
1495
  a ? await y(a.path) : (i.setActiveTab(""), r.push(X));
1442
1496
  }
1443
- async function ee(e) {
1444
- i.activeTab !== e && await y(e), o.value = !1, await N(), await M(), o.value = !0, n("refresh"), window.setTimeout(() => {
1497
+ async function S(e) {
1498
+ i.activeTab !== e && await y(e), o.value = !1, await P(), await N(), o.value = !0, n("refresh"), window.setTimeout(() => {
1445
1499
  o.value = !1;
1446
1500
  }, 600);
1447
1501
  }
1448
- function S(e, t) {
1449
- e.preventDefault(), C(e.clientX, e.clientY, t);
1502
+ function C(e, t) {
1503
+ e.preventDefault(), w(e.clientX, e.clientY, t);
1450
1504
  }
1451
- function C(e, t, n) {
1505
+ function w(e, t, n) {
1452
1506
  l.value = n, s.value = !0, c.value = {
1453
1507
  x: Math.min(e, window.innerWidth - 188),
1454
1508
  y: Math.min(t, window.innerHeight - 260)
1455
1509
  };
1456
1510
  }
1457
- function T(e) {
1511
+ function E(e) {
1458
1512
  let t = i.tabs.find((e) => e.path === i.activeTab) ?? i.tabs.at(-1);
1459
1513
  if (!t) return;
1460
1514
  let n = e.currentTarget.getBoundingClientRect();
1461
- C(n.left, n.bottom + 4, t);
1515
+ w(n.left, n.bottom + 4, t);
1462
1516
  }
1463
- function A(e) {
1517
+ function j(e) {
1464
1518
  !u.value || Math.abs(e.deltaY) <= Math.abs(e.deltaX) || (e.preventDefault(), u.value.scrollLeft += e.deltaY);
1465
1519
  }
1466
- async function M() {
1467
- await N(), await new Promise((e) => window.requestAnimationFrame(() => e(null))), await new Promise((e) => window.requestAnimationFrame(() => e(null)));
1520
+ async function N() {
1521
+ await P(), await new Promise((e) => window.requestAnimationFrame(() => e(null))), await new Promise((e) => window.requestAnimationFrame(() => e(null)));
1468
1522
  let e = u.value, t = e?.querySelector(".app-layout__tab.is-active");
1469
1523
  if (!e || !t) return;
1470
1524
  t.scrollIntoView({
@@ -1478,16 +1532,16 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1478
1532
  behavior: "smooth"
1479
1533
  });
1480
1534
  }
1481
- function F() {
1535
+ function I() {
1482
1536
  s.value = !1, l.value = null;
1483
1537
  }
1484
- async function te(e) {
1538
+ async function ee(e) {
1485
1539
  await i.closeOtherTabs(e), await y(e);
1486
1540
  }
1487
- async function W(e) {
1541
+ async function G(e) {
1488
1542
  await i.closeLeftTabs(e), i.tabPaths.includes(i.activeTab) || await y(e);
1489
1543
  }
1490
- async function K(e) {
1544
+ async function re(e) {
1491
1545
  await i.closeRightTabs(e), i.tabPaths.includes(i.activeTab) || await y(e);
1492
1546
  }
1493
1547
  async function ie() {
@@ -1501,85 +1555,85 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1501
1555
  window.open(e, "_blank", "noopener,noreferrer");
1502
1556
  }
1503
1557
  function se(e) {
1504
- e.button !== 2 && F();
1558
+ e.button !== 2 && I();
1505
1559
  }
1506
- return ne(() => {
1507
- document.addEventListener("mousedown", se), v(u.value), M();
1508
- }), re(() => {
1560
+ return te(() => {
1561
+ document.addEventListener("mousedown", se), v(u.value), N();
1562
+ }), ne(() => {
1509
1563
  document.removeEventListener("mousedown", se);
1510
- }), U(() => i.tabs.map((e) => e.path).join("|"), () => {
1511
- a.value || N(() => {
1512
- v(u.value), M();
1564
+ }), W(() => i.tabs.map((e) => e.path).join("|"), () => {
1565
+ a.value || P(() => {
1566
+ v(u.value), N();
1513
1567
  });
1514
- }), U(() => i.activeTab, () => {
1515
- M();
1568
+ }), W(() => i.activeTab, () => {
1569
+ N();
1516
1570
  }), (e, t) => {
1517
- let n = z("el-icon");
1518
- return H(i).tabs.length ? (I(), O("div", Bn, [k("div", Vn, [
1519
- k("div", {
1571
+ let n = B("el-icon");
1572
+ return U(i).tabs.length ? (L(), k("div", Bn, [A("div", Vn, [
1573
+ A("div", {
1520
1574
  ref_key: "tabsScrollRef",
1521
1575
  ref: u,
1522
1576
  class: "app-layout__tabs-scroll",
1523
- onWheel: A
1524
- }, [(I(!0), O(x, null, R(H(i).tabs, (e) => (I(), O("div", {
1577
+ onWheel: j
1578
+ }, [(L(!0), k(x, null, z(U(i).tabs, (e) => (L(), k("div", {
1525
1579
  key: e.path,
1526
- class: P(["app-layout__tab", { "is-active": H(i).activeTab === e.path }]),
1580
+ class: F(["app-layout__tab", { "is-active": U(i).activeTab === e.path }]),
1527
1581
  "data-path": e.path,
1528
1582
  onClick: (t) => y(e.fullPath),
1529
- onContextmenu: (t) => S(t, e)
1583
+ onContextmenu: (t) => C(t, e)
1530
1584
  }, [
1531
- e.icon ? (I(), E(n, {
1585
+ e.icon ? (L(), D(n, {
1532
1586
  key: 0,
1533
1587
  class: "app-layout__tab-icon"
1534
1588
  }, {
1535
- default: G(() => [(I(), E(B(H($)(e.icon))))]),
1589
+ default: K(() => [(L(), D(V(U($)(e.icon))))]),
1536
1590
  _: 2
1537
- }, 1024)) : D("", !0),
1538
- k("span", Un, V(e.title), 1),
1539
- e.path === H("/dashboard") ? D("", !0) : (I(), O("button", {
1591
+ }, 1024)) : O("", !0),
1592
+ A("span", Un, H(e.title), 1),
1593
+ e.path === U("/dashboard") ? O("", !0) : (L(), k("button", {
1540
1594
  key: 1,
1541
1595
  class: "app-layout__tab-close",
1542
1596
  type: "button",
1543
1597
  onClick: q((t) => b(e.path), ["stop"])
1544
1598
  }, " × ", 8, Wn))
1545
1599
  ], 42, Hn))), 128))], 544),
1546
- k("button", {
1600
+ A("button", {
1547
1601
  class: "app-layout__tabs-action",
1548
1602
  type: "button",
1549
1603
  title: "页签操作",
1550
- onClick: T
1551
- }, [j(n, null, {
1552
- default: G(() => [j(H(ae))]),
1604
+ onClick: E
1605
+ }, [M(n, null, {
1606
+ default: K(() => [M(U(ae))]),
1553
1607
  _: 1
1554
1608
  })]),
1555
- k("button", {
1609
+ A("button", {
1556
1610
  class: "app-layout__tabs-action",
1557
1611
  type: "button",
1558
1612
  title: "刷新当前页签",
1559
- onClick: t[0] ||= (e) => ee(H(i).activeTab)
1560
- }, [j(n, { class: P({ "is-rotating": o.value }) }, {
1561
- default: G(() => [j(H(Se))]),
1613
+ onClick: t[0] ||= (e) => S(U(i).activeTab)
1614
+ }, [M(n, { class: F({ "is-rotating": o.value }) }, {
1615
+ default: K(() => [M(U(xe))]),
1562
1616
  _: 1
1563
1617
  }, 8, ["class"])])
1564
- ]), j(zn, {
1618
+ ]), M(zn, {
1565
1619
  visible: s.value,
1566
1620
  "has-left-tabs": p.value,
1567
1621
  "has-multiple-tabs": h.value,
1568
1622
  "has-right-tabs": m.value,
1569
1623
  "has-last-active": g.value,
1570
- "is-target-home": l.value?.path === H(X),
1624
+ "is-target-home": l.value?.path === U(X),
1571
1625
  "is-target-active": f.value,
1572
1626
  position: c.value,
1573
1627
  "target-tab": l.value,
1574
- onClose: F,
1628
+ onClose: I,
1575
1629
  onCloseAll: ie,
1576
- onCloseLeft: W,
1577
- onCloseOthers: te,
1578
- onCloseRight: K,
1630
+ onCloseLeft: G,
1631
+ onCloseOthers: ee,
1632
+ onCloseRight: re,
1579
1633
  onCloseTab: b,
1580
1634
  onOpenInNewTab: oe,
1581
1635
  onSwitchPrev: J,
1582
- onRefresh: ee
1636
+ onRefresh: S
1583
1637
  }, null, 8, [
1584
1638
  "visible",
1585
1639
  "has-left-tabs",
@@ -1590,17 +1644,17 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1590
1644
  "is-target-active",
1591
1645
  "position",
1592
1646
  "target-tab"
1593
- ])])) : D("", !0);
1647
+ ])])) : O("", !0);
1594
1648
  };
1595
1649
  }
1596
- }), Kn = /* @__PURE__ */ M({
1650
+ }), Kn = /* @__PURE__ */ N({
1597
1651
  __name: "AppLayout",
1598
1652
  setup(e) {
1599
- let t = g(), n = Q(), r = f(), i = L(0), a = w(() => t.matched.filter((e) => e.meta?.title));
1653
+ let t = g(), n = Q(), r = f(), i = R(0), a = T(() => t.matched.filter((e) => e.meta?.title));
1600
1654
  function o() {
1601
1655
  i.value += 1;
1602
1656
  }
1603
- U(() => t.fullPath, () => {
1657
+ W(() => t.fullPath, () => {
1604
1658
  let e = String(t.meta.title ?? "未命名页面"), r = t.meta.icon ? String(t.meta.icon) : void 0;
1605
1659
  s(), t.meta.public || n.syncTab({
1606
1660
  path: t.path,
@@ -1616,18 +1670,31 @@ var Pn = ["disabled"], Fn = ["disabled"], In = ["disabled"], Ln = ["disabled"],
1616
1670
  r.setSelectedTopMenuPath(n);
1617
1671
  }
1618
1672
  return (e, t) => {
1619
- let n = z("el-container");
1620
- return I(), O(x, null, [j(n, { class: "app-layout" }, {
1621
- default: G(() => [j(Mn), j(n, { direction: "vertical" }, {
1622
- default: G(() => [
1623
- j(vn, { "breadcrumb-items": a.value }, null, 8, ["breadcrumb-items"]),
1624
- j(Gn, { onRefresh: o }),
1625
- j(At, { "refresh-key": i.value }, null, 8, ["refresh-key"])
1626
- ]),
1627
- _: 1
1628
- })]),
1673
+ let n = B("el-container");
1674
+ return L(), k(x, null, [M(n, { class: "app-layout" }, {
1675
+ default: K(() => [
1676
+ M(Mn),
1677
+ M(n, { direction: "vertical" }, {
1678
+ default: K(() => [
1679
+ M(bn, { "breadcrumb-items": a.value }, null, 8, ["breadcrumb-items"]),
1680
+ M(Gn, { onRefresh: o }),
1681
+ M(kt, { "refresh-key": i.value }, null, 8, ["refresh-key"])
1682
+ ]),
1683
+ _: 1
1684
+ }),
1685
+ M(C, { name: "app-mobile-mask" }, {
1686
+ default: K(() => [U(r).mobileSidebarVisible ? (L(), k("button", {
1687
+ key: 0,
1688
+ type: "button",
1689
+ class: "app-layout__mobile-mask",
1690
+ "aria-label": "关闭侧边栏",
1691
+ onClick: t[0] ||= (e) => U(r).closeMobileSidebar()
1692
+ })) : O("", !0)]),
1693
+ _: 1
1694
+ })
1695
+ ]),
1629
1696
  _: 1
1630
- }), j(kt)], 64);
1697
+ }), M(Ot)], 64);
1631
1698
  };
1632
1699
  }
1633
1700
  });
@@ -1637,7 +1704,7 @@ function qn(e = []) {
1637
1704
  return [{
1638
1705
  path: "/login",
1639
1706
  name: "login",
1640
- component: () => import("./Login-BivuNuD7.js"),
1707
+ component: () => import("./Login-BKuPkkY9.js"),
1641
1708
  meta: {
1642
1709
  title: "登录",
1643
1710
  public: !0
@@ -1677,7 +1744,7 @@ function qn(e = []) {
1677
1744
  }, {
1678
1745
  path: "system",
1679
1746
  name: "config-system",
1680
- component: () => import("./SystemConfig-C7yyDmB8.js"),
1747
+ component: () => import("./SystemConfig-DGZUwXWB.js"),
1681
1748
  meta: {
1682
1749
  title: "系统配置",
1683
1750
  icon: "Setting"
@@ -1705,7 +1772,7 @@ function Jn(e = []) {
1705
1772
  routes: qn(t.businessRoutes ?? []),
1706
1773
  scrollBehavior: t.scrollBehavior ?? (() => ({ top: 0 }))
1707
1774
  });
1708
- return Ue(n), t.setupRouter?.(n), n;
1775
+ return He(n), t.setupRouter?.(n), n;
1709
1776
  }
1710
1777
  //#endregion
1711
1778
  //#region src/main/directives/index.ts
@@ -1738,21 +1805,21 @@ function Qn(e) {
1738
1805
  //#endregion
1739
1806
  //#region src/main/app/create-app.ts
1740
1807
  async function $n(e) {
1741
- Fe(e.appConfig), Be();
1808
+ Pe(e.appConfig), ze();
1742
1809
  let t = Jn({
1743
1810
  businessRoutes: e.businessRoutes,
1744
1811
  history: e.routerHistory,
1745
1812
  scrollBehavior: e.routerScrollBehavior,
1746
1813
  setupRouter: e.setupRouter
1747
- }), n = T(e.rootComponent), r = ie(), i = {
1814
+ }), n = E(e.rootComponent), r = ie(), i = {
1748
1815
  app: n,
1749
1816
  router: t,
1750
1817
  pinia: r,
1751
- http: Le,
1752
- requestManager: ze
1818
+ http: Ie,
1819
+ requestManager: Re
1753
1820
  };
1754
- Ae(), n.use(y, { locale: Me }), n.use(r), n.use(t), Qn(n), Ne(t), await e.setupApp?.(i), await e.beforePlatformInit?.(i);
1755
- let a = f(r), o = l(r), s = Q(r), c = ke({ fullscreen: !0 });
1821
+ ke(), n.use(y, { locale: je }), n.use(r), n.use(t), Qn(n), Me(t), await e.setupApp?.(i), await e.beforePlatformInit?.(i);
1822
+ let a = f(r), o = l(r), s = Q(r), c = Oe({ fullscreen: !0 });
1756
1823
  try {
1757
1824
  await Promise.all([
1758
1825
  a.initializePreferences(),
@@ -1770,4 +1837,4 @@ async function $n(e) {
1770
1837
  return await e.afterMount?.(d), n;
1771
1838
  }
1772
1839
  //#endregion
1773
- export { Q as a, Le as c, X as i, ze as l, Jn as n, Be as o, qn as r, Re as s, $n as t, Ne as u };
1840
+ export { X as a, Le as c, Me as d, Nn as i, Ie as l, Jn as n, Q as o, qn as r, ze as s, $n as t, Re as u };