@fmdeui/fmui 1.0.28 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/es/component.mjs +3 -1
  2. package/es/components/fm-layout/index.d.ts +32 -0
  3. package/es/components/fm-layout/src/component/aside.vue.d.ts +5 -0
  4. package/es/components/fm-layout/src/component/columnsAside.vue.d.ts +5 -0
  5. package/es/components/fm-layout/src/component/header.vue.d.ts +16 -0
  6. package/es/components/fm-layout/src/component/main.vue.d.ts +7 -0
  7. package/es/components/fm-layout/src/footer/index.vue.d.ts +3 -0
  8. package/es/components/fm-layout/src/index.vue.d.ts +22 -0
  9. package/es/components/fm-layout/src/logo/index.vue.d.ts +3 -0
  10. package/es/components/fm-layout/src/main/classic.vue.d.ts +18 -0
  11. package/es/components/fm-layout/src/main/columns.vue.d.ts +19 -0
  12. package/es/components/fm-layout/src/main/defaults.vue.d.ts +48 -0
  13. package/es/components/fm-layout/src/main/transverse.vue.d.ts +18 -0
  14. package/es/components/fm-layout/src/navBars/index.vue.d.ts +16 -0
  15. package/es/components/fm-layout/src/navBars/tagsView/contextmenu.vue.d.ts +28 -0
  16. package/es/components/fm-layout/src/navBars/tagsView/tagsView.vue.d.ts +45 -0
  17. package/es/components/fm-layout/src/navBars/topBar/breadcrumb.vue.d.ts +3 -0
  18. package/es/components/fm-layout/src/navBars/topBar/index.vue.d.ts +16 -0
  19. package/es/components/fm-layout/src/navBars/topBar/search.vue.d.ts +7 -0
  20. package/es/components/fm-layout/src/navBars/topBar/upgradeInfo.vue.d.ts +5 -0
  21. package/es/components/fm-layout/src/navBars/topBar/user.vue.d.ts +75 -0
  22. package/es/components/fm-layout/src/navBars/topBar/userNews.vue.d.ts +9 -0
  23. package/es/components/fm-layout/src/navMenu/horizontal.vue.d.ts +42 -0
  24. package/es/components/fm-layout/src/navMenu/subItem.vue.d.ts +42 -0
  25. package/es/components/fm-layout/src/navMenu/vertical.vue.d.ts +42 -0
  26. package/es/components/fm-layout/src/routerView/iframes.vue.d.ts +35 -0
  27. package/es/components/fm-layout/src/routerView/parent.vue.d.ts +3 -0
  28. package/es/components/fm-layout/src/type.d.ts +2 -0
  29. package/es/components/fm-layout/style/css.d.ts +0 -0
  30. package/es/components/fm-layout/style/index.d.ts +0 -0
  31. package/es/components/index.d.ts +1 -0
  32. package/es/packages/components/fm-layout/index.mjs +7 -0
  33. package/es/packages/components/fm-layout/src/component/aside.vue.mjs +5 -0
  34. package/es/packages/components/fm-layout/src/component/aside.vue2.mjs +175 -0
  35. package/es/packages/components/fm-layout/src/component/columnsAside.vue.mjs +5 -0
  36. package/es/packages/components/fm-layout/src/component/columnsAside.vue2.mjs +273 -0
  37. package/es/packages/components/fm-layout/src/component/header.vue.mjs +5 -0
  38. package/es/packages/components/fm-layout/src/component/header.vue2.mjs +50 -0
  39. package/es/packages/components/fm-layout/src/component/main.vue.mjs +5 -0
  40. package/es/packages/components/fm-layout/src/component/main.vue2.mjs +81 -0
  41. package/es/packages/components/fm-layout/src/footer/index.vue.mjs +5 -0
  42. package/es/packages/components/fm-layout/src/footer/index.vue2.mjs +29 -0
  43. package/es/packages/components/fm-layout/src/index.vue.mjs +5 -0
  44. package/es/packages/components/fm-layout/src/index.vue2.mjs +91 -0
  45. package/es/packages/components/fm-layout/src/logo/index.vue.mjs +5 -0
  46. package/es/packages/components/fm-layout/src/logo/index.vue2.mjs +57 -0
  47. package/es/packages/components/fm-layout/src/main/classic.vue.mjs +5 -0
  48. package/es/packages/components/fm-layout/src/main/classic.vue2.mjs +87 -0
  49. package/es/packages/components/fm-layout/src/main/columns.vue.mjs +5 -0
  50. package/es/packages/components/fm-layout/src/main/columns.vue2.mjs +100 -0
  51. package/es/packages/components/fm-layout/src/main/defaults.vue.mjs +5 -0
  52. package/es/packages/components/fm-layout/src/main/defaults.vue2.mjs +153 -0
  53. package/es/packages/components/fm-layout/src/main/transverse.vue.mjs +5 -0
  54. package/es/packages/components/fm-layout/src/main/transverse.vue2.mjs +70 -0
  55. package/es/packages/components/fm-layout/src/navBars/index.vue.mjs +5 -0
  56. package/es/packages/components/fm-layout/src/navBars/index.vue2.mjs +44 -0
  57. package/es/packages/components/fm-layout/src/navBars/tagsView/contextmenu.vue.mjs +5 -0
  58. package/es/packages/components/fm-layout/src/navBars/tagsView/contextmenu.vue2.mjs +156 -0
  59. package/es/packages/components/fm-layout/src/navBars/tagsView/tagsView.vue.mjs +5 -0
  60. package/es/packages/components/fm-layout/src/navBars/tagsView/tagsView.vue2.mjs +576 -0
  61. package/es/packages/components/fm-layout/src/navBars/topBar/breadcrumb.vue.mjs +5 -0
  62. package/es/packages/components/fm-layout/src/navBars/topBar/breadcrumb.vue2.mjs +169 -0
  63. package/es/packages/components/fm-layout/src/navBars/topBar/index.vue.mjs +5 -0
  64. package/es/packages/components/fm-layout/src/navBars/topBar/index.vue2.mjs +113 -0
  65. package/es/packages/components/fm-layout/src/navBars/topBar/search.vue.mjs +5 -0
  66. package/es/packages/components/fm-layout/src/navBars/topBar/search.vue2.mjs +120 -0
  67. package/es/packages/components/fm-layout/src/navBars/topBar/upgradeInfo.vue.mjs +5 -0
  68. package/es/packages/components/fm-layout/src/navBars/topBar/upgradeInfo.vue2.mjs +72 -0
  69. package/es/packages/components/fm-layout/src/navBars/topBar/user.vue.mjs +5 -0
  70. package/es/packages/components/fm-layout/src/navBars/topBar/user.vue2.mjs +699 -0
  71. package/es/packages/components/fm-layout/src/navBars/topBar/userNews.vue.mjs +5 -0
  72. package/es/packages/components/fm-layout/src/navBars/topBar/userNews.vue2.mjs +255 -0
  73. package/es/packages/components/fm-layout/src/navMenu/horizontal.vue.mjs +5 -0
  74. package/es/packages/components/fm-layout/src/navMenu/horizontal.vue2.mjs +182 -0
  75. package/es/packages/components/fm-layout/src/navMenu/subItem.vue.mjs +5 -0
  76. package/es/packages/components/fm-layout/src/navMenu/subItem.vue2.mjs +113 -0
  77. package/es/packages/components/fm-layout/src/navMenu/vertical.vue.mjs +5 -0
  78. package/es/packages/components/fm-layout/src/navMenu/vertical.vue2.mjs +159 -0
  79. package/es/packages/components/fm-layout/src/routerView/iframes.vue.mjs +5 -0
  80. package/es/packages/components/fm-layout/src/routerView/iframes.vue2.mjs +128 -0
  81. package/es/packages/components/fm-layout/src/routerView/parent.vue.mjs +5 -0
  82. package/es/packages/components/fm-layout/src/routerView/parent.vue2.mjs +141 -0
  83. package/es/packages/components/fm-layout/src/type.mjs +1 -0
  84. package/es/packages/components/index.mjs +1 -0
  85. package/index.js +4071 -73
  86. package/index.min.js +5 -5
  87. package/index.min.mjs +5 -5
  88. package/index.mjs +4082 -81
  89. package/lib/{index.css → component.css} +2 -2
  90. package/lib/component.js +3 -1
  91. package/lib/components/fm-layout/index.d.ts +32 -0
  92. package/lib/components/fm-layout/src/component/aside.vue.d.ts +5 -0
  93. package/lib/components/fm-layout/src/component/columnsAside.vue.d.ts +5 -0
  94. package/lib/components/fm-layout/src/component/header.vue.d.ts +16 -0
  95. package/lib/components/fm-layout/src/component/main.vue.d.ts +7 -0
  96. package/lib/components/fm-layout/src/footer/index.vue.d.ts +3 -0
  97. package/lib/components/fm-layout/src/index.vue.d.ts +22 -0
  98. package/lib/components/fm-layout/src/logo/index.vue.d.ts +3 -0
  99. package/lib/components/fm-layout/src/main/classic.vue.d.ts +18 -0
  100. package/lib/components/fm-layout/src/main/columns.vue.d.ts +19 -0
  101. package/lib/components/fm-layout/src/main/defaults.vue.d.ts +48 -0
  102. package/lib/components/fm-layout/src/main/transverse.vue.d.ts +18 -0
  103. package/lib/components/fm-layout/src/navBars/index.vue.d.ts +16 -0
  104. package/lib/components/fm-layout/src/navBars/tagsView/contextmenu.vue.d.ts +28 -0
  105. package/lib/components/fm-layout/src/navBars/tagsView/tagsView.vue.d.ts +45 -0
  106. package/lib/components/fm-layout/src/navBars/topBar/breadcrumb.vue.d.ts +3 -0
  107. package/lib/components/fm-layout/src/navBars/topBar/index.vue.d.ts +16 -0
  108. package/lib/components/fm-layout/src/navBars/topBar/search.vue.d.ts +7 -0
  109. package/lib/components/fm-layout/src/navBars/topBar/upgradeInfo.vue.d.ts +5 -0
  110. package/lib/components/fm-layout/src/navBars/topBar/user.vue.d.ts +75 -0
  111. package/lib/components/fm-layout/src/navBars/topBar/userNews.vue.d.ts +9 -0
  112. package/lib/components/fm-layout/src/navMenu/horizontal.vue.d.ts +42 -0
  113. package/lib/components/fm-layout/src/navMenu/subItem.vue.d.ts +42 -0
  114. package/lib/components/fm-layout/src/navMenu/vertical.vue.d.ts +42 -0
  115. package/lib/components/fm-layout/src/routerView/iframes.vue.d.ts +35 -0
  116. package/lib/components/fm-layout/src/routerView/parent.vue.d.ts +3 -0
  117. package/lib/components/fm-layout/src/type.d.ts +2 -0
  118. package/lib/components/fm-layout/style/css.d.ts +0 -0
  119. package/lib/components/fm-layout/style/index.d.ts +0 -0
  120. package/lib/components/index.d.ts +1 -0
  121. package/lib/packages/components/fm-layout/index.js +9 -0
  122. package/lib/packages/components/fm-layout/src/component/aside.vue.js +9 -0
  123. package/lib/packages/components/fm-layout/src/component/aside.vue2.js +179 -0
  124. package/lib/packages/components/fm-layout/src/component/columnsAside.vue.js +9 -0
  125. package/lib/packages/components/fm-layout/src/component/columnsAside.vue2.js +277 -0
  126. package/lib/packages/components/fm-layout/src/component/header.vue.js +9 -0
  127. package/lib/packages/components/fm-layout/src/component/header.vue2.js +54 -0
  128. package/lib/packages/components/fm-layout/src/component/main.vue.js +9 -0
  129. package/lib/packages/components/fm-layout/src/component/main.vue2.js +85 -0
  130. package/lib/packages/components/fm-layout/src/footer/index.vue.js +9 -0
  131. package/lib/packages/components/fm-layout/src/footer/index.vue2.js +33 -0
  132. package/lib/packages/components/fm-layout/src/index.vue.js +9 -0
  133. package/lib/packages/components/fm-layout/src/index.vue2.js +95 -0
  134. package/lib/packages/components/fm-layout/src/logo/index.vue.js +9 -0
  135. package/lib/packages/components/fm-layout/src/logo/index.vue2.js +61 -0
  136. package/lib/packages/components/fm-layout/src/main/classic.vue.js +9 -0
  137. package/lib/packages/components/fm-layout/src/main/classic.vue2.js +91 -0
  138. package/lib/packages/components/fm-layout/src/main/columns.vue.js +9 -0
  139. package/lib/packages/components/fm-layout/src/main/columns.vue2.js +104 -0
  140. package/lib/packages/components/fm-layout/src/main/defaults.vue.js +9 -0
  141. package/lib/packages/components/fm-layout/src/main/defaults.vue2.js +157 -0
  142. package/lib/packages/components/fm-layout/src/main/transverse.vue.js +9 -0
  143. package/lib/packages/components/fm-layout/src/main/transverse.vue2.js +74 -0
  144. package/lib/packages/components/fm-layout/src/navBars/index.vue.js +9 -0
  145. package/lib/packages/components/fm-layout/src/navBars/index.vue2.js +48 -0
  146. package/lib/packages/components/fm-layout/src/navBars/tagsView/contextmenu.vue.js +9 -0
  147. package/lib/packages/components/fm-layout/src/navBars/tagsView/contextmenu.vue2.js +160 -0
  148. package/lib/packages/components/fm-layout/src/navBars/tagsView/tagsView.vue.js +9 -0
  149. package/lib/packages/components/fm-layout/src/navBars/tagsView/tagsView.vue2.js +580 -0
  150. package/lib/packages/components/fm-layout/src/navBars/topBar/breadcrumb.vue.js +9 -0
  151. package/lib/packages/components/fm-layout/src/navBars/topBar/breadcrumb.vue2.js +173 -0
  152. package/lib/packages/components/fm-layout/src/navBars/topBar/index.vue.js +9 -0
  153. package/lib/packages/components/fm-layout/src/navBars/topBar/index.vue2.js +117 -0
  154. package/lib/packages/components/fm-layout/src/navBars/topBar/search.vue.js +9 -0
  155. package/lib/packages/components/fm-layout/src/navBars/topBar/search.vue2.js +124 -0
  156. package/lib/packages/components/fm-layout/src/navBars/topBar/upgradeInfo.vue.js +9 -0
  157. package/lib/packages/components/fm-layout/src/navBars/topBar/upgradeInfo.vue2.js +76 -0
  158. package/lib/packages/components/fm-layout/src/navBars/topBar/user.vue.js +9 -0
  159. package/lib/packages/components/fm-layout/src/navBars/topBar/user.vue2.js +703 -0
  160. package/lib/packages/components/fm-layout/src/navBars/topBar/userNews.vue.js +9 -0
  161. package/lib/packages/components/fm-layout/src/navBars/topBar/userNews.vue2.js +259 -0
  162. package/lib/packages/components/fm-layout/src/navMenu/horizontal.vue.js +9 -0
  163. package/lib/packages/components/fm-layout/src/navMenu/horizontal.vue2.js +186 -0
  164. package/lib/packages/components/fm-layout/src/navMenu/subItem.vue.js +9 -0
  165. package/lib/packages/components/fm-layout/src/navMenu/subItem.vue2.js +117 -0
  166. package/lib/packages/components/fm-layout/src/navMenu/vertical.vue.js +9 -0
  167. package/lib/packages/components/fm-layout/src/navMenu/vertical.vue2.js +163 -0
  168. package/lib/packages/components/fm-layout/src/routerView/iframes.vue.js +9 -0
  169. package/lib/packages/components/fm-layout/src/routerView/iframes.vue2.js +132 -0
  170. package/lib/packages/components/fm-layout/src/routerView/parent.vue.js +9 -0
  171. package/lib/packages/components/fm-layout/src/routerView/parent.vue2.js +145 -0
  172. package/lib/packages/components/fm-layout/src/type.js +2 -0
  173. package/lib/packages/components/index.js +14 -12
  174. package/locale/en.js +1 -1
  175. package/locale/en.min.js +1 -1
  176. package/locale/en.min.mjs +1 -1
  177. package/locale/en.mjs +1 -1
  178. package/locale/zh-cn.js +1 -1
  179. package/locale/zh-cn.min.js +1 -1
  180. package/locale/zh-cn.min.mjs +1 -1
  181. package/locale/zh-cn.mjs +1 -1
  182. package/package.json +1 -1
  183. package/theme-chalk/f-layout.css +1 -0
  184. package/theme-chalk/index.css +1 -1
  185. package/theme-chalk/src/index.scss +1 -0
  186. package/theme-chalk/src/layout.scss +657 -0
  187. /package/es/{version.css → defaults.css} +0 -0
package/index.mjs CHANGED
@@ -1,25 +1,28 @@
1
- /*! fmdeui-fmui v1.0.28 */
2
- import { createPinia, defineStore, storeToRefs } from 'pinia';
3
- import CryptoJS from 'crypto-js';
4
- import XLSXS from 'xlsx-js-style';
5
- import { ElLoading, ElMessage, ElNotification, localeContextKey, dayjs, ElMessageBox } from 'element-plus';
6
- import { isRef, unref, watch, nextTick, computed, defineComponent, ref, resolveComponent, openBlock, createBlock, mergeProps, withCtx, createVNode, renderSlot, inject, withDirectives, resolveDirective, reactive, provide, useAttrs, useSlots, createSlots, renderList, normalizeProps, guardReactiveProps, createElementBlock, toDisplayString, createElementVNode, onMounted, onActivated, normalizeClass, createCommentVNode, getCurrentInstance, onBeforeUnmount, vShow, markRaw, resolveDynamicComponent, Fragment, createTextVNode, withModifiers, toHandlers, onUpdated, normalizeStyle } from 'vue';
7
- import * as svg from '@element-plus/icons-vue';
8
- import { CaretTop, ArrowDown, ArrowUp } from '@element-plus/icons-vue';
9
- import axios from 'axios';
10
- import Cookies from 'js-cookie';
11
- import * as SignalR from '@microsoft/signalr';
1
+ /*! fmdeui-fmui v1.0.30 */
12
2
  import VxeUITable from 'vxe-table';
13
3
  import VxeUIPluginRenderElement from '@vxe-ui/plugin-render-element';
14
4
  import VxeUIPluginExportXLSX from '@vxe-ui/plugin-export-xlsx';
15
5
  import VxeUI from 'vxe-pc-ui';
16
- import { createI18n } from 'vue-i18n';
17
6
  import ExcelJS from 'exceljs';
7
+ import * as svg from '@element-plus/icons-vue';
8
+ import { CaretTop, ArrowDown, ArrowUp, Avatar, Loading, Lock, CircleCloseFilled } from '@element-plus/icons-vue';
9
+ import { isRef, unref, watch, nextTick, computed, defineComponent, ref, resolveComponent, openBlock, createBlock, mergeProps, withCtx, createVNode, renderSlot, inject, withDirectives, resolveDirective, reactive, provide, useAttrs, useSlots, createSlots, renderList, normalizeProps, guardReactiveProps, createElementBlock, toDisplayString, createElementVNode, onMounted, onActivated, normalizeClass, createCommentVNode, getCurrentInstance, onBeforeUnmount, vShow, markRaw, resolveDynamicComponent, Fragment, createTextVNode, withModifiers, toHandlers, onUpdated, normalizeStyle, defineAsyncComponent, onBeforeMount, onUnmounted, onBeforeUpdate, Transition, KeepAlive, TransitionGroup } from 'vue';
10
+ import { ElLoading, ElMessage, ElNotification, localeContextKey, dayjs, ElMessageBox } from 'element-plus';
18
11
  import { get, merge, debounce as debounce$1 } from 'lodash-es';
12
+ import Cookies from 'js-cookie';
13
+ import { createPinia, defineStore, storeToRefs } from 'pinia';
19
14
  import { useResizeObserver, isClient, useClipboard } from '@vueuse/core';
15
+ import CryptoJS from 'crypto-js';
16
+ import XLSXS from 'xlsx-js-style';
17
+ import { createRouter, createWebHashHistory, useRoute, useRouter, onBeforeRouteUpdate } from 'vue-router';
18
+ import Sortable from 'sortablejs';
19
+ import screenfull from 'screenfull';
20
+ import { createI18n, useI18n } from 'vue-i18n';
21
+ import Push from 'push.js';
20
22
  import mitt from 'mitt';
21
- import { createRouter, createWebHashHistory } from 'vue-router';
22
23
  import NProgress from 'nprogress';
24
+ import * as SignalR from '@microsoft/signalr';
25
+ import axios from 'axios';
23
26
 
24
27
  const pinia = createPinia();
25
28
 
@@ -18491,7 +18494,7 @@ const setupVXETable = (app) => {
18491
18494
  app.use(VxeUITable);
18492
18495
  };
18493
18496
 
18494
- var _sfc_main$e = /* @__PURE__ */ defineComponent({
18497
+ var _sfc_main$D = /* @__PURE__ */ defineComponent({
18495
18498
  ...{
18496
18499
  name: "FButton"
18497
18500
  },
@@ -18561,7 +18564,7 @@ var _sfc_main$e = /* @__PURE__ */ defineComponent({
18561
18564
  }
18562
18565
  });
18563
18566
 
18564
- const FButton = _sfc_main$e;
18567
+ const FButton = _sfc_main$D;
18565
18568
 
18566
18569
  const buildTranslator = (locale) => (path, option) => translate(path, option, unref(locale));
18567
18570
  const translate = (path, option, locale) => get(locale, path, path).replace(
@@ -19184,9 +19187,9 @@ const {
19184
19187
  // 开发环境严格检查
19185
19188
  });
19186
19189
 
19187
- const _hoisted_1$7 = { key: 0 };
19188
- const _hoisted_2$3 = { key: 0 };
19189
- var _sfc_main$d = /* @__PURE__ */ defineComponent({
19190
+ const _hoisted_1$q = { key: 0 };
19191
+ const _hoisted_2$e = { key: 0 };
19192
+ var _sfc_main$C = /* @__PURE__ */ defineComponent({
19190
19193
  ...{
19191
19194
  name: "FInput"
19192
19195
  },
@@ -19390,7 +19393,7 @@ var _sfc_main$d = /* @__PURE__ */ defineComponent({
19390
19393
  fn: withCtx(() => [
19391
19394
  __props.inputType === "amount" ? (openBlock(), createElementBlock(
19392
19395
  "span",
19393
- _hoisted_1$7,
19396
+ _hoisted_1$q,
19394
19397
  toDisplayString(appendTitleText.value),
19395
19398
  1
19396
19399
  /* TEXT */
@@ -19423,7 +19426,7 @@ var _sfc_main$d = /* @__PURE__ */ defineComponent({
19423
19426
  fn: withCtx(() => [
19424
19427
  __props.inputType === "amount" ? (openBlock(), createElementBlock(
19425
19428
  "span",
19426
- _hoisted_2$3,
19429
+ _hoisted_2$e,
19427
19430
  toDisplayString(appendTitleText.value),
19428
19431
  1
19429
19432
  /* TEXT */
@@ -19436,13 +19439,13 @@ var _sfc_main$d = /* @__PURE__ */ defineComponent({
19436
19439
  }
19437
19440
  });
19438
19441
 
19439
- const FInput = _sfc_main$d;
19442
+ const FInput = _sfc_main$C;
19440
19443
 
19441
- const _hoisted_1$6 = {
19444
+ const _hoisted_1$p = {
19442
19445
  key: 0,
19443
19446
  class: "back_to_top"
19444
19447
  };
19445
- var _sfc_main$c = /* @__PURE__ */ defineComponent({
19448
+ var _sfc_main$B = /* @__PURE__ */ defineComponent({
19446
19449
  ...{
19447
19450
  name: "FLayoutPage"
19448
19451
  },
@@ -19504,7 +19507,7 @@ var _sfc_main$c = /* @__PURE__ */ defineComponent({
19504
19507
  },
19505
19508
  [
19506
19509
  renderSlot(_ctx.$slots, "default"),
19507
- __props.showGoTopButton ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
19510
+ __props.showGoTopButton ? (openBlock(), createElementBlock("div", _hoisted_1$p, [
19508
19511
  isShowGoTopButton.value ? (openBlock(), createElementBlock("div", {
19509
19512
  key: 0,
19510
19513
  onClick: backToTop
@@ -19532,9 +19535,9 @@ var _sfc_main$c = /* @__PURE__ */ defineComponent({
19532
19535
  }
19533
19536
  });
19534
19537
 
19535
- const FLayoutPage = _sfc_main$c;
19538
+ const FLayoutPage = _sfc_main$B;
19536
19539
 
19537
- var _sfc_main$b = /* @__PURE__ */ defineComponent({
19540
+ var _sfc_main$A = /* @__PURE__ */ defineComponent({
19538
19541
  ...{
19539
19542
  name: "FLayoutPageItem"
19540
19543
  },
@@ -19562,7 +19565,7 @@ var _sfc_main$b = /* @__PURE__ */ defineComponent({
19562
19565
  }
19563
19566
  });
19564
19567
 
19565
- const FLayoutPageItem = _sfc_main$b;
19568
+ const FLayoutPageItem = _sfc_main$A;
19566
19569
 
19567
19570
  function debounce(func, delay = 500, immediate, resultCallback) {
19568
19571
  let timer = null;
@@ -19605,8 +19608,8 @@ function toLine(name) {
19605
19608
  return name.replace(/([A-Z])/g, "_$1").toLowerCase();
19606
19609
  }
19607
19610
 
19608
- const _hoisted_1$5 = ["id"];
19609
- var _sfc_main$a = /* @__PURE__ */ defineComponent({
19611
+ const _hoisted_1$o = ["id"];
19612
+ var _sfc_main$z = /* @__PURE__ */ defineComponent({
19610
19613
  ...{
19611
19614
  name: "FChart"
19612
19615
  },
@@ -19690,7 +19693,7 @@ var _sfc_main$a = /* @__PURE__ */ defineComponent({
19690
19693
  id: __props.id,
19691
19694
  ref_key: "echartRef",
19692
19695
  ref: echartRef
19693
- }, null, 8, _hoisted_1$5), [
19696
+ }, null, 8, _hoisted_1$o), [
19694
19697
  [vShow, !formatEmpty.value]
19695
19698
  ]),
19696
19699
  formatEmpty.value ? renderSlot(_ctx.$slots, "empty", { key: 0 }, () => [
@@ -19705,13 +19708,13 @@ var _sfc_main$a = /* @__PURE__ */ defineComponent({
19705
19708
  }
19706
19709
  });
19707
19710
 
19708
- const FChart = _sfc_main$a;
19711
+ const FChart = _sfc_main$z;
19709
19712
 
19710
- const _hoisted_1$4 = {
19713
+ const _hoisted_1$n = {
19711
19714
  key: 1,
19712
19715
  class: "f_select__pagination"
19713
19716
  };
19714
- var _sfc_main$9 = /* @__PURE__ */ defineComponent({
19717
+ var _sfc_main$y = /* @__PURE__ */ defineComponent({
19715
19718
  ...{
19716
19719
  name: "FSelect"
19717
19720
  },
@@ -19924,7 +19927,7 @@ var _sfc_main$9 = /* @__PURE__ */ defineComponent({
19924
19927
  128
19925
19928
  /* KEYED_FRAGMENT */
19926
19929
  )),
19927
- __props.isShowPagination && filteredOptionsCount.value > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
19930
+ __props.isShowPagination && filteredOptionsCount.value > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$n, [
19928
19931
  createVNode(_component_el_pagination, mergeProps({
19929
19932
  "current-page": __props.paginationOption.currentPage,
19930
19933
  "onUpdate:currentPage": _cache[1] || (_cache[1] = ($event) => __props.paginationOption.currentPage = $event),
@@ -19962,9 +19965,9 @@ var _sfc_main$9 = /* @__PURE__ */ defineComponent({
19962
19965
  }
19963
19966
  });
19964
19967
 
19965
- const FSelect = _sfc_main$9;
19968
+ const FSelect = _sfc_main$y;
19966
19969
 
19967
- var _sfc_main$8 = /* @__PURE__ */ defineComponent({
19970
+ var _sfc_main$x = /* @__PURE__ */ defineComponent({
19968
19971
  ...{
19969
19972
  name: "RenderComp"
19970
19973
  },
@@ -19984,12 +19987,12 @@ var _sfc_main$8 = /* @__PURE__ */ defineComponent({
19984
19987
  }
19985
19988
  });
19986
19989
 
19987
- const _hoisted_1$3 = { class: "inside_box" };
19988
- const _hoisted_2$2 = { class: "inside_box_title" };
19989
- const _hoisted_3$1 = { class: "check-box" };
19990
- const _hoisted_4$1 = { class: "more_dropdown_icon" };
19991
- const _hoisted_5 = { class: "out_box" };
19992
- var _sfc_main$7 = /* @__PURE__ */ defineComponent({
19990
+ const _hoisted_1$m = { class: "inside_box" };
19991
+ const _hoisted_2$d = { class: "inside_box_title" };
19992
+ const _hoisted_3$8 = { class: "check-box" };
19993
+ const _hoisted_4$5 = { class: "more_dropdown_icon" };
19994
+ const _hoisted_5$4 = { class: "out_box" };
19995
+ var _sfc_main$w = /* @__PURE__ */ defineComponent({
19993
19996
  ...{
19994
19997
  name: "MoreChoose"
19995
19998
  },
@@ -20109,10 +20112,10 @@ var _sfc_main$7 = /* @__PURE__ */ defineComponent({
20109
20112
  ref: "popover"
20110
20113
  }, {
20111
20114
  reference: withCtx(() => [
20112
- createElementVNode("div", _hoisted_4$1, [
20115
+ createElementVNode("div", _hoisted_4$5, [
20113
20116
  createElementVNode(
20114
20117
  "span",
20115
- _hoisted_5,
20118
+ _hoisted_5$4,
20116
20119
  toDisplayString(__props.popoverAttrsBind.showTxt),
20117
20120
  1
20118
20121
  /* TEXT */
@@ -20127,8 +20130,8 @@ var _sfc_main$7 = /* @__PURE__ */ defineComponent({
20127
20130
  ])
20128
20131
  ]),
20129
20132
  default: withCtx(() => [
20130
- createElementVNode("div", _hoisted_1$3, [
20131
- createElementVNode("div", _hoisted_2$2, [
20133
+ createElementVNode("div", _hoisted_1$m, [
20134
+ createElementVNode("div", _hoisted_2$d, [
20132
20135
  createElementVNode(
20133
20136
  "div",
20134
20137
  null,
@@ -20136,7 +20139,7 @@ var _sfc_main$7 = /* @__PURE__ */ defineComponent({
20136
20139
  1
20137
20140
  /* TEXT */
20138
20141
  ),
20139
- createElementVNode("div", _hoisted_3$1, [
20142
+ createElementVNode("div", _hoisted_3$8, [
20140
20143
  createVNode(_component_el_button, {
20141
20144
  size: "small",
20142
20145
  link: "",
@@ -20304,7 +20307,7 @@ function useComputed() {
20304
20307
  };
20305
20308
  }
20306
20309
 
20307
- var _sfc_main$6 = /* @__PURE__ */ defineComponent({
20310
+ var _sfc_main$v = /* @__PURE__ */ defineComponent({
20308
20311
  ...{
20309
20312
  name: "FQueryCondition"
20310
20313
  },
@@ -20723,7 +20726,7 @@ var _sfc_main$6 = /* @__PURE__ */ defineComponent({
20723
20726
  opt.labelRender ? {
20724
20727
  name: "label",
20725
20728
  fn: withCtx(() => [
20726
- createVNode(_sfc_main$8, {
20729
+ createVNode(_sfc_main$x, {
20727
20730
  form: unref(queryState).form,
20728
20731
  render: opt.labelRender
20729
20732
  }, null, 8, ["form", "render"])
@@ -20819,7 +20822,7 @@ var _sfc_main$6 = /* @__PURE__ */ defineComponent({
20819
20822
  _: 1
20820
20823
  /* STABLE */
20821
20824
  })) : createCommentVNode("v-if", true),
20822
- createVNode(_sfc_main$7, {
20825
+ createVNode(_sfc_main$w, {
20823
20826
  isDropDownSelectMore: __props.isDropDownSelectMore,
20824
20827
  moreCheckList: __props.moreCheckList,
20825
20828
  popoverAttrsBind: popoverAttrsBind.value,
@@ -20845,7 +20848,7 @@ var _sfc_main$6 = /* @__PURE__ */ defineComponent({
20845
20848
  }
20846
20849
  });
20847
20850
 
20848
- var _sfc_main$5 = /* @__PURE__ */ defineComponent({
20851
+ var _sfc_main$u = /* @__PURE__ */ defineComponent({
20849
20852
  ...{
20850
20853
  name: "RenderCol"
20851
20854
  },
@@ -21001,17 +21004,17 @@ function useVirtualized() {
21001
21004
  };
21002
21005
  }
21003
21006
 
21004
- const _hoisted_1$2 = {
21007
+ const _hoisted_1$l = {
21005
21008
  key: 0,
21006
21009
  class: "table_query_condition"
21007
21010
  };
21008
- const _hoisted_2$1 = ["element-loading-text"];
21009
- const _hoisted_3 = { key: 2 };
21010
- const _hoisted_4 = {
21011
+ const _hoisted_2$c = ["element-loading-text"];
21012
+ const _hoisted_3$7 = { key: 2 };
21013
+ const _hoisted_4$4 = {
21011
21014
  key: 0,
21012
21015
  class: "f-table-select__page"
21013
21016
  };
21014
- var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21017
+ var _sfc_main$t = /* @__PURE__ */ defineComponent({
21015
21018
  ...{
21016
21019
  name: "FSelectTable"
21017
21020
  },
@@ -21633,9 +21636,9 @@ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21633
21636
  style: normalizeStyle({ width: __props.tableWidth ? `${__props.tableWidth}px` : "100%" })
21634
21637
  },
21635
21638
  [
21636
- __props.isShowQuery ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
21639
+ __props.isShowQuery ? (openBlock(), createElementBlock("div", _hoisted_1$l, [
21637
21640
  createVNode(
21638
- _sfc_main$6,
21641
+ _sfc_main$v,
21639
21642
  mergeProps({
21640
21643
  ref_key: "fQueryConditionRef",
21641
21644
  ref: fQueryConditionRef,
@@ -21761,7 +21764,7 @@ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21761
21764
  fixed: item.fixed
21762
21765
  }, { ref_for: true }, { "show-overflow-tooltip": true, ...item.bind }), {
21763
21766
  default: withCtx((scope) => [
21764
- item.render ? (openBlock(), createBlock(_sfc_main$5, {
21767
+ item.render ? (openBlock(), createBlock(_sfc_main$u, {
21765
21768
  key: 0,
21766
21769
  column: item,
21767
21770
  row: scope.row,
@@ -21772,7 +21775,7 @@ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21772
21775
  key: 1,
21773
21776
  scope
21774
21777
  }) : createCommentVNode("v-if", true),
21775
- !item.render && !item.slotName ? (openBlock(), createElementBlock("div", _hoisted_3, [
21778
+ !item.render && !item.slotName ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
21776
21779
  createElementVNode(
21777
21780
  "span",
21778
21781
  null,
@@ -21794,7 +21797,7 @@ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21794
21797
  _: 3
21795
21798
  /* FORWARDED */
21796
21799
  }, 16, ["data", "class"]),
21797
- __props.isShowPagination ? (openBlock(), createElementBlock("div", _hoisted_4, [
21800
+ __props.isShowPagination ? (openBlock(), createElementBlock("div", _hoisted_4$4, [
21798
21801
  createVNode(_component_el_pagination, mergeProps({
21799
21802
  "current-page": __props.table.currentPage,
21800
21803
  "onUpdate:currentPage": _cache[6] || (_cache[6] = ($event) => __props.table.currentPage = $event),
@@ -21806,7 +21809,7 @@ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21806
21809
  total: __props.table.total
21807
21810
  }, { background: true, size: __props.paginationSize || "small", ..._ctx.$attrs }), null, 16, ["current-page", "page-size", "pager-count", "total"])
21808
21811
  ])) : createCommentVNode("v-if", true)
21809
- ], 8, _hoisted_2$1)), [
21812
+ ], 8, _hoisted_2$c)), [
21810
21813
  [_directive_loading, __props.tableLoading]
21811
21814
  ]),
21812
21815
  renderSlot(_ctx.$slots, "footer")
@@ -21824,11 +21827,11 @@ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
21824
21827
  }
21825
21828
  });
21826
21829
 
21827
- const FSelectTable = _sfc_main$4;
21830
+ const FSelectTable = _sfc_main$t;
21828
21831
 
21829
- const FQueryCondition = _sfc_main$6;
21832
+ const FQueryCondition = _sfc_main$v;
21830
21833
 
21831
- var _sfc_main$3 = /* @__PURE__ */ defineComponent({
21834
+ var _sfc_main$s = /* @__PURE__ */ defineComponent({
21832
21835
  ...{
21833
21836
  name: "RenderComp"
21834
21837
  },
@@ -21848,7 +21851,7 @@ var _sfc_main$3 = /* @__PURE__ */ defineComponent({
21848
21851
  }
21849
21852
  });
21850
21853
 
21851
- var _sfc_main$2 = /* @__PURE__ */ defineComponent({
21854
+ var _sfc_main$r = /* @__PURE__ */ defineComponent({
21852
21855
  ...{
21853
21856
  name: "RenderBtn"
21854
21857
  },
@@ -21868,12 +21871,12 @@ var _sfc_main$2 = /* @__PURE__ */ defineComponent({
21868
21871
  }
21869
21872
  });
21870
21873
 
21871
- const _hoisted_1$1 = {
21874
+ const _hoisted_1$k = {
21872
21875
  key: 1,
21873
21876
  class: "text_show"
21874
21877
  };
21875
- const _hoisted_2 = { class: "footer_btn flex-box flex-ver f-margin-top-5" };
21876
- var _sfc_main$1 = /* @__PURE__ */ defineComponent({
21878
+ const _hoisted_2$b = { class: "footer_btn flex-box flex-ver f-margin-top-5" };
21879
+ var _sfc_main$q = /* @__PURE__ */ defineComponent({
21877
21880
  ...{
21878
21881
  name: "FForm"
21879
21882
  },
@@ -22124,7 +22127,7 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
22124
22127
  }) : createCommentVNode("v-if", true),
22125
22128
  item.textShow ? (openBlock(), createElementBlock(
22126
22129
  "span",
22127
- _hoisted_1$1,
22130
+ _hoisted_1$k,
22128
22131
  toDisplayString(item.textValue || __props.formOpts.formData[item.value]),
22129
22132
  1
22130
22133
  /* TEXT */
@@ -22244,7 +22247,7 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
22244
22247
  item.labelSlotName || item.labelRender ? {
22245
22248
  name: "label",
22246
22249
  fn: withCtx(() => [
22247
- item.labelRender ? (openBlock(), createBlock(_sfc_main$3, {
22250
+ item.labelRender ? (openBlock(), createBlock(_sfc_main$s, {
22248
22251
  key: 0,
22249
22252
  render: item.labelRender,
22250
22253
  item
@@ -22266,7 +22269,7 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
22266
22269
  /* UNKEYED_FRAGMENT */
22267
22270
  )),
22268
22271
  createCommentVNode(" \u6309\u94AE "),
22269
- createElementVNode("div", _hoisted_2, [
22272
+ createElementVNode("div", _hoisted_2$b, [
22270
22273
  __props.formOpts.btnSlotName ? renderSlot(_ctx.$slots, __props.formOpts.btnSlotName, { key: 0 }) : createCommentVNode("v-if", true),
22271
22274
  !__props.formOpts.btnSlotName && __props.formOpts.operatorList && __props.formOpts.operatorList.length > 0 ? (openBlock(true), createElementBlock(
22272
22275
  Fragment,
@@ -22276,7 +22279,7 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
22276
22279
  Fragment,
22277
22280
  null,
22278
22281
  [
22279
- val.render ? (openBlock(), createBlock(_sfc_main$2, {
22282
+ val.render ? (openBlock(), createBlock(_sfc_main$r, {
22280
22283
  key: index,
22281
22284
  item: val,
22282
22285
  render: val.render
@@ -22323,10 +22326,10 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
22323
22326
  }
22324
22327
  });
22325
22328
 
22326
- const FForm = _sfc_main$1;
22329
+ const FForm = _sfc_main$q;
22327
22330
 
22328
- const _hoisted_1 = ["src"];
22329
- var _sfc_main = /* @__PURE__ */ defineComponent({
22331
+ const _hoisted_1$j = ["src"];
22332
+ var _sfc_main$p = /* @__PURE__ */ defineComponent({
22330
22333
  ...{
22331
22334
  name: "svgIcon"
22332
22335
  },
@@ -22397,7 +22400,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
22397
22400
  createElementVNode("img", {
22398
22401
  src: getIconName.value,
22399
22402
  style: normalizeStyle(setIconSvgInsStyle.value)
22400
- }, null, 12, _hoisted_1)
22403
+ }, null, 12, _hoisted_1$j)
22401
22404
  ],
22402
22405
  4
22403
22406
  /* STYLE */
@@ -22424,10 +22427,94 @@ function elSvg(app) {
22424
22427
  }
22425
22428
  }
22426
22429
  if (!app._context.components[`SvgIcon`]) {
22427
- app.component("SvgIcon", _sfc_main);
22430
+ app.component("SvgIcon", _sfc_main$p);
22428
22431
  }
22429
22432
  }
22430
22433
 
22434
+ const emitter = mitt();
22435
+
22436
+ var _sfc_main$o = /* @__PURE__ */ defineComponent({
22437
+ ...{
22438
+ name: "FLayout"
22439
+ },
22440
+ __name: "index",
22441
+ emits: ["layoutChangePassword", "layoutOnlineUsers"],
22442
+ setup(__props, { emit: __emit }) {
22443
+ const layouts = {
22444
+ defaults: defineAsyncComponent(() => Promise.resolve().then(function () { return defaults; })),
22445
+ classic: defineAsyncComponent(() => Promise.resolve().then(function () { return classic; })),
22446
+ transverse: defineAsyncComponent(() => Promise.resolve().then(function () { return transverse; })),
22447
+ columns: defineAsyncComponent(() => Promise.resolve().then(function () { return columns; }))
22448
+ };
22449
+ const storesThemeConfig = useThemeConfig();
22450
+ const { themeConfig } = storeToRefs(storesThemeConfig);
22451
+ let maxClientWidth = document.body.clientWidth;
22452
+ const curMyEmit = __emit;
22453
+ provideFormEvents({
22454
+ onFormDialogOpen: (data) => {
22455
+ if (data.name == "changePassword") {
22456
+ curMyEmit("layoutChangePassword");
22457
+ } else if (data.name == "onlineUsers") {
22458
+ curMyEmit("layoutOnlineUsers");
22459
+ }
22460
+ }
22461
+ });
22462
+ const onLayoutResize = () => {
22463
+ if (!Local.get("oldLayout")) Local.set("oldLayout", themeConfig.value.layout);
22464
+ const clientWidth = document.body.clientWidth;
22465
+ if (maxClientWidth > clientWidth) return;
22466
+ maxClientWidth = clientWidth;
22467
+ if (clientWidth < 1e3) {
22468
+ themeConfig.value.isCollapse = false;
22469
+ emitter.emit("layoutMobileResize", {
22470
+ layout: "defaults",
22471
+ clientWidth
22472
+ });
22473
+ } else {
22474
+ emitter.emit("layoutMobileResize", {
22475
+ layout: Local.get("oldLayout") ? Local.get("oldLayout") : themeConfig.value.layout,
22476
+ clientWidth
22477
+ });
22478
+ }
22479
+ };
22480
+ onBeforeMount(() => {
22481
+ onLayoutResize();
22482
+ window.addEventListener("resize", onLayoutResize);
22483
+ });
22484
+ onUnmounted(() => {
22485
+ window.removeEventListener("resize", onLayoutResize);
22486
+ });
22487
+ return (_ctx, _cache) => {
22488
+ return openBlock(), createBlock(
22489
+ resolveDynamicComponent(layouts[unref(themeConfig).layout]),
22490
+ normalizeProps(guardReactiveProps(_ctx.$attrs)),
22491
+ {
22492
+ default: withCtx(() => [
22493
+ (openBlock(true), createElementBlock(
22494
+ Fragment,
22495
+ null,
22496
+ renderList(_ctx.$slots, (_, name) => {
22497
+ return renderSlot(_ctx.$slots, name, mergeProps({
22498
+ key: name,
22499
+ ref_for: true
22500
+ }, _ctx.$slots[name].props || {}));
22501
+ }),
22502
+ 128
22503
+ /* KEYED_FRAGMENT */
22504
+ ))
22505
+ ]),
22506
+ _: 3
22507
+ /* FORWARDED */
22508
+ },
22509
+ 16
22510
+ /* FULL_PROPS */
22511
+ );
22512
+ };
22513
+ }
22514
+ });
22515
+
22516
+ const FLayout = _sfc_main$o;
22517
+
22431
22518
  const makeInstaller = (components = []) => {
22432
22519
  const install = (app) => {
22433
22520
  app.use(pinia);
@@ -22456,7 +22543,8 @@ const plugins = [
22456
22543
  FSelectTable,
22457
22544
  FQueryCondition,
22458
22545
  FChart,
22459
- FForm
22546
+ FForm,
22547
+ FLayout
22460
22548
  ];
22461
22549
 
22462
22550
  var installer = makeInstaller([...plugins]);
@@ -22496,8 +22584,6 @@ const setIntroduction = {
22496
22584
  }
22497
22585
  };
22498
22586
 
22499
- const emitter = mitt();
22500
-
22501
22587
  function commonFunction() {
22502
22588
  const themeStore = useThemeConfig();
22503
22589
  const { copy, isSupported } = useClipboard();
@@ -23184,4 +23270,3919 @@ const version = "1.0.0";
23184
23270
  const commonFun = commonFunction();
23185
23271
  const install = installer.install;
23186
23272
 
23273
+ var _sfc_main$n = /* @__PURE__ */ defineComponent({
23274
+ __name: "defaults",
23275
+ setup(__props) {
23276
+ const LayoutAside = defineAsyncComponent(() => Promise.resolve().then(function () { return aside; }));
23277
+ const LayoutHeader = defineAsyncComponent(() => Promise.resolve().then(function () { return header; }));
23278
+ const LayoutMain = defineAsyncComponent(() => Promise.resolve().then(function () { return main; }));
23279
+ const layoutScrollbarRef = ref("");
23280
+ const layoutMainRef = ref();
23281
+ const route = useRoute();
23282
+ const storesThemeConfig = useThemeConfig();
23283
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23284
+ const updateScrollbar = () => {
23285
+ layoutScrollbarRef.value.update();
23286
+ layoutMainRef.value.layoutMainScrollbarRef.update();
23287
+ };
23288
+ const initScrollBarHeight = () => {
23289
+ nextTick(() => {
23290
+ setTimeout(() => {
23291
+ updateScrollbar();
23292
+ layoutScrollbarRef.value.wrapRef.scrollTop = 0;
23293
+ if (layoutMainRef.value != void 0) layoutMainRef.value.layoutMainScrollbarRef.wrapRef.scrollTop = 0;
23294
+ }, 500);
23295
+ });
23296
+ };
23297
+ onMounted(() => {
23298
+ initScrollBarHeight();
23299
+ NextLoading.done(600);
23300
+ });
23301
+ watch(
23302
+ () => route.path,
23303
+ () => {
23304
+ initScrollBarHeight();
23305
+ }
23306
+ );
23307
+ watch(
23308
+ () => [themeConfig.value.isTagsview, themeConfig.value.isFixedHeader],
23309
+ () => {
23310
+ nextTick(() => {
23311
+ updateScrollbar();
23312
+ });
23313
+ },
23314
+ {
23315
+ deep: true
23316
+ }
23317
+ );
23318
+ return (_ctx, _cache) => {
23319
+ const _component_el_scrollbar = resolveComponent("el-scrollbar");
23320
+ const _component_el_container = resolveComponent("el-container");
23321
+ return openBlock(), createBlock(_component_el_container, { class: "layout-container" }, {
23322
+ default: withCtx(() => [
23323
+ !_ctx.$slots.aside ? (openBlock(), createBlock(unref(LayoutAside), { key: 0 }, {
23324
+ default: withCtx(() => [
23325
+ (openBlock(true), createElementBlock(
23326
+ Fragment,
23327
+ null,
23328
+ renderList(_ctx.$slots, (_, name) => {
23329
+ return renderSlot(_ctx.$slots, name, mergeProps({
23330
+ key: name,
23331
+ ref_for: true
23332
+ }, _ctx.$slots[name].props || {}));
23333
+ }),
23334
+ 128
23335
+ /* KEYED_FRAGMENT */
23336
+ ))
23337
+ ]),
23338
+ _: 3
23339
+ /* FORWARDED */
23340
+ })) : renderSlot(_ctx.$slots, "aside", { key: 1 }),
23341
+ createVNode(_component_el_container, { class: "layout-container-view h100" }, {
23342
+ default: withCtx(() => [
23343
+ createVNode(
23344
+ _component_el_scrollbar,
23345
+ {
23346
+ ref_key: "layoutScrollbarRef",
23347
+ ref: layoutScrollbarRef,
23348
+ class: "layout-backtop"
23349
+ },
23350
+ {
23351
+ default: withCtx(() => [
23352
+ !_ctx.$slots.header ? (openBlock(), createBlock(unref(LayoutHeader), { key: 0 }, {
23353
+ default: withCtx(() => [
23354
+ (openBlock(true), createElementBlock(
23355
+ Fragment,
23356
+ null,
23357
+ renderList(_ctx.$slots, (_, name) => {
23358
+ return renderSlot(_ctx.$slots, name, mergeProps({
23359
+ key: name,
23360
+ ref_for: true
23361
+ }, _ctx.$slots[name].props || {}));
23362
+ }),
23363
+ 128
23364
+ /* KEYED_FRAGMENT */
23365
+ ))
23366
+ ]),
23367
+ _: 3
23368
+ /* FORWARDED */
23369
+ })) : renderSlot(_ctx.$slots, "header", { key: 1 }),
23370
+ !_ctx.$slots.main ? (openBlock(), createBlock(
23371
+ unref(LayoutMain),
23372
+ {
23373
+ key: 2,
23374
+ ref_key: "layoutMainRef",
23375
+ ref: layoutMainRef
23376
+ },
23377
+ {
23378
+ default: withCtx(() => [
23379
+ (openBlock(true), createElementBlock(
23380
+ Fragment,
23381
+ null,
23382
+ renderList(_ctx.$slots, (_, name) => {
23383
+ return renderSlot(_ctx.$slots, name, mergeProps({
23384
+ key: name,
23385
+ ref_for: true
23386
+ }, _ctx.$slots[name].props || {}));
23387
+ }),
23388
+ 128
23389
+ /* KEYED_FRAGMENT */
23390
+ ))
23391
+ ]),
23392
+ _: 3
23393
+ /* FORWARDED */
23394
+ },
23395
+ 512
23396
+ /* NEED_PATCH */
23397
+ )) : renderSlot(_ctx.$slots, "main", { key: 3 })
23398
+ ]),
23399
+ _: 3
23400
+ /* FORWARDED */
23401
+ },
23402
+ 512
23403
+ /* NEED_PATCH */
23404
+ )
23405
+ ]),
23406
+ _: 3
23407
+ /* FORWARDED */
23408
+ })
23409
+ ]),
23410
+ _: 3
23411
+ /* FORWARDED */
23412
+ });
23413
+ };
23414
+ }
23415
+ });
23416
+
23417
+ var defaults = /*#__PURE__*/Object.freeze({
23418
+ __proto__: null,
23419
+ default: _sfc_main$n
23420
+ });
23421
+
23422
+ const _hoisted_1$i = { class: "flex-center layout-backtop" };
23423
+ var _sfc_main$m = /* @__PURE__ */ defineComponent({
23424
+ __name: "classic",
23425
+ setup(__props) {
23426
+ const LayoutAside = defineAsyncComponent(() => Promise.resolve().then(function () { return aside; }));
23427
+ const LayoutHeader = defineAsyncComponent(() => Promise.resolve().then(function () { return header; }));
23428
+ const LayoutMain = defineAsyncComponent(() => Promise.resolve().then(function () { return main; }));
23429
+ const LayoutTagsView = defineAsyncComponent(() => Promise.resolve().then(function () { return tagsView; }));
23430
+ const layoutMainRef = ref();
23431
+ const route = useRoute();
23432
+ const storesThemeConfig = useThemeConfig();
23433
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23434
+ const isTagsview = computed(() => {
23435
+ return themeConfig.value.isTagsview;
23436
+ });
23437
+ const updateScrollbar = () => {
23438
+ var _a;
23439
+ (_a = layoutMainRef.value) == null ? void 0 : _a.layoutMainScrollbarRef.update();
23440
+ };
23441
+ const initScrollBarHeight = () => {
23442
+ nextTick(() => {
23443
+ setTimeout(() => {
23444
+ updateScrollbar();
23445
+ if (layoutMainRef.value) layoutMainRef.value.layoutMainScrollbarRef.wrapRef.scrollTop = 0;
23446
+ }, 500);
23447
+ });
23448
+ };
23449
+ onMounted(() => {
23450
+ initScrollBarHeight();
23451
+ });
23452
+ watch(
23453
+ () => route.path,
23454
+ () => {
23455
+ initScrollBarHeight();
23456
+ }
23457
+ );
23458
+ watch(
23459
+ () => themeConfig.value.isTagsview,
23460
+ () => {
23461
+ nextTick(() => {
23462
+ updateScrollbar();
23463
+ });
23464
+ },
23465
+ {
23466
+ deep: true
23467
+ }
23468
+ );
23469
+ return (_ctx, _cache) => {
23470
+ const _component_el_container = resolveComponent("el-container");
23471
+ return openBlock(), createBlock(_component_el_container, { class: "layout-container flex-center" }, {
23472
+ default: withCtx(() => [
23473
+ createVNode(unref(LayoutHeader)),
23474
+ createVNode(_component_el_container, { class: "layout-mian-height-50" }, {
23475
+ default: withCtx(() => [
23476
+ createVNode(unref(LayoutAside)),
23477
+ createElementVNode("div", _hoisted_1$i, [
23478
+ isTagsview.value ? (openBlock(), createBlock(unref(LayoutTagsView), { key: 0 })) : createCommentVNode("v-if", true),
23479
+ createVNode(
23480
+ unref(LayoutMain),
23481
+ {
23482
+ ref_key: "layoutMainRef",
23483
+ ref: layoutMainRef
23484
+ },
23485
+ null,
23486
+ 512
23487
+ /* NEED_PATCH */
23488
+ )
23489
+ ])
23490
+ ]),
23491
+ _: 1
23492
+ /* STABLE */
23493
+ })
23494
+ ]),
23495
+ _: 1
23496
+ /* STABLE */
23497
+ });
23498
+ };
23499
+ }
23500
+ });
23501
+
23502
+ var classic = /*#__PURE__*/Object.freeze({
23503
+ __proto__: null,
23504
+ default: _sfc_main$m
23505
+ });
23506
+
23507
+ var _sfc_main$l = /* @__PURE__ */ defineComponent({
23508
+ __name: "transverse",
23509
+ setup(__props) {
23510
+ const LayoutHeader = defineAsyncComponent(() => Promise.resolve().then(function () { return header; }));
23511
+ const LayoutMain = defineAsyncComponent(() => Promise.resolve().then(function () { return main; }));
23512
+ const layoutMainRef = ref();
23513
+ const storesThemeConfig = useThemeConfig();
23514
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23515
+ const route = useRoute();
23516
+ const updateScrollbar = () => {
23517
+ layoutMainRef.value.layoutMainScrollbarRef.update();
23518
+ };
23519
+ const initScrollBarHeight = () => {
23520
+ nextTick(() => {
23521
+ setTimeout(() => {
23522
+ updateScrollbar();
23523
+ layoutMainRef.value.layoutMainScrollbarRef.wrapRef.scrollTop = 0;
23524
+ }, 500);
23525
+ });
23526
+ };
23527
+ onMounted(() => {
23528
+ initScrollBarHeight();
23529
+ });
23530
+ watch(
23531
+ () => route.path,
23532
+ () => {
23533
+ initScrollBarHeight();
23534
+ }
23535
+ );
23536
+ watch(
23537
+ () => themeConfig.value.isTagsview,
23538
+ () => {
23539
+ nextTick(() => {
23540
+ updateScrollbar();
23541
+ });
23542
+ },
23543
+ {
23544
+ deep: true
23545
+ }
23546
+ );
23547
+ return (_ctx, _cache) => {
23548
+ const _component_el_container = resolveComponent("el-container");
23549
+ return openBlock(), createBlock(_component_el_container, { class: "layout-container flex-center layout-backtop" }, {
23550
+ default: withCtx(() => [
23551
+ createVNode(unref(LayoutHeader)),
23552
+ createVNode(
23553
+ unref(LayoutMain),
23554
+ {
23555
+ ref_key: "layoutMainRef",
23556
+ ref: layoutMainRef
23557
+ },
23558
+ null,
23559
+ 512
23560
+ /* NEED_PATCH */
23561
+ )
23562
+ ]),
23563
+ _: 1
23564
+ /* STABLE */
23565
+ });
23566
+ };
23567
+ }
23568
+ });
23569
+
23570
+ var transverse = /*#__PURE__*/Object.freeze({
23571
+ __proto__: null,
23572
+ default: _sfc_main$l
23573
+ });
23574
+
23575
+ var _sfc_main$k = /* @__PURE__ */ defineComponent({
23576
+ __name: "columns",
23577
+ setup(__props) {
23578
+ const LayoutAside = defineAsyncComponent(() => Promise.resolve().then(function () { return aside; }));
23579
+ const LayoutHeader = defineAsyncComponent(() => Promise.resolve().then(function () { return header; }));
23580
+ const LayoutMain = defineAsyncComponent(() => Promise.resolve().then(function () { return main; }));
23581
+ const ColumnsAside = defineAsyncComponent(() => Promise.resolve().then(function () { return columnsAside; }));
23582
+ const layoutScrollbarRef = ref("");
23583
+ const layoutMainRef = ref();
23584
+ const route = useRoute();
23585
+ const storesThemeConfig = useThemeConfig();
23586
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23587
+ const updateScrollbar = () => {
23588
+ layoutScrollbarRef.value.update();
23589
+ layoutMainRef.value && layoutMainRef.value.layoutMainScrollbarRef.update();
23590
+ };
23591
+ const initScrollBarHeight = () => {
23592
+ nextTick(() => {
23593
+ setTimeout(() => {
23594
+ updateScrollbar();
23595
+ layoutScrollbarRef.value.wrapRef.scrollTop = 0;
23596
+ if (layoutMainRef.value != void 0) layoutMainRef.value.layoutMainScrollbarRef.wrapRef.scrollTop = 0;
23597
+ }, 500);
23598
+ });
23599
+ };
23600
+ onMounted(() => {
23601
+ initScrollBarHeight();
23602
+ });
23603
+ watch(
23604
+ () => route.path,
23605
+ () => {
23606
+ initScrollBarHeight();
23607
+ }
23608
+ );
23609
+ watch(
23610
+ () => [themeConfig.value.isTagsview, themeConfig.value.isFixedHeader],
23611
+ () => {
23612
+ nextTick(() => {
23613
+ updateScrollbar();
23614
+ });
23615
+ },
23616
+ {
23617
+ deep: true
23618
+ }
23619
+ );
23620
+ return (_ctx, _cache) => {
23621
+ const _component_el_scrollbar = resolveComponent("el-scrollbar");
23622
+ const _component_el_container = resolveComponent("el-container");
23623
+ return openBlock(), createBlock(_component_el_container, { class: "layout-container" }, {
23624
+ default: withCtx(() => [
23625
+ createVNode(unref(ColumnsAside)),
23626
+ createVNode(_component_el_container, { class: "layout-columns-warp layout-container-view h100" }, {
23627
+ default: withCtx(() => [
23628
+ createVNode(unref(LayoutAside)),
23629
+ createVNode(
23630
+ _component_el_scrollbar,
23631
+ {
23632
+ ref_key: "layoutScrollbarRef",
23633
+ ref: layoutScrollbarRef,
23634
+ class: "layout-backtop"
23635
+ },
23636
+ {
23637
+ default: withCtx(() => [
23638
+ createVNode(unref(LayoutHeader)),
23639
+ createVNode(
23640
+ unref(LayoutMain),
23641
+ {
23642
+ ref_key: "layoutMainRef",
23643
+ ref: layoutMainRef
23644
+ },
23645
+ null,
23646
+ 512
23647
+ /* NEED_PATCH */
23648
+ )
23649
+ ]),
23650
+ _: 1
23651
+ /* STABLE */
23652
+ },
23653
+ 512
23654
+ /* NEED_PATCH */
23655
+ )
23656
+ ]),
23657
+ _: 1
23658
+ /* STABLE */
23659
+ })
23660
+ ]),
23661
+ _: 1
23662
+ /* STABLE */
23663
+ });
23664
+ };
23665
+ }
23666
+ });
23667
+
23668
+ var columns = /*#__PURE__*/Object.freeze({
23669
+ __proto__: null,
23670
+ default: _sfc_main$k
23671
+ });
23672
+
23673
+ const _hoisted_1$h = { class: "h100" };
23674
+ var _sfc_main$j = /* @__PURE__ */ defineComponent({
23675
+ __name: "aside",
23676
+ setup(__props) {
23677
+ const Logo = defineAsyncComponent(() => Promise.resolve().then(function () { return index$3; }));
23678
+ const Vertical = defineAsyncComponent(() => Promise.resolve().then(function () { return vertical; }));
23679
+ const layoutAsideScrollbarRef = ref();
23680
+ const stores = useRoutesList();
23681
+ const storesThemeConfig = useThemeConfig();
23682
+ const storesTagsViewRoutes = useTagsViewRoutes();
23683
+ const { routesList } = storeToRefs(stores);
23684
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23685
+ const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes);
23686
+ const state = reactive({
23687
+ menuList: [],
23688
+ clientWidth: 0
23689
+ });
23690
+ const setCollapseStyle = computed(() => {
23691
+ const { layout, isCollapse, menuBar } = themeConfig.value;
23692
+ const asideBrTheme = ["#FFFFFF", "#FFF", "#fff", "#ffffff"];
23693
+ const asideBrColor = asideBrTheme.includes(menuBar) ? "layout-el-aside-br-color" : "";
23694
+ if (state.clientWidth <= 1e3) {
23695
+ if (isCollapse) {
23696
+ document.body.setAttribute("class", "el-popup-parent--hidden");
23697
+ const asideEle = document.querySelector(".layout-container");
23698
+ const modeDivs = document.createElement("div");
23699
+ modeDivs.setAttribute("class", "layout-aside-mobile-mode");
23700
+ asideEle.appendChild(modeDivs);
23701
+ modeDivs.addEventListener("click", closeLayoutAsideMobileMode);
23702
+ return [asideBrColor, "layout-aside-mobile", "layout-aside-mobile-open"];
23703
+ } else {
23704
+ closeLayoutAsideMobileMode();
23705
+ return [asideBrColor, "layout-aside-mobile", "layout-aside-mobile-close"];
23706
+ }
23707
+ } else {
23708
+ if (layout === "columns" || layout === "classic") {
23709
+ if (isCollapse) return [asideBrColor, "layout-aside-pc-1"];
23710
+ else return [asideBrColor, "layout-aside-pc-240"];
23711
+ } else {
23712
+ if (isCollapse) return [asideBrColor, "layout-aside-pc-64"];
23713
+ else return [asideBrColor, "layout-aside-pc-240"];
23714
+ }
23715
+ }
23716
+ });
23717
+ const setShowLogo = computed(() => {
23718
+ let { layout, isShowLogo } = themeConfig.value;
23719
+ return isShowLogo && layout === "defaults" || isShowLogo && layout === "columns";
23720
+ });
23721
+ const closeLayoutAsideMobileMode = () => {
23722
+ const el = document.querySelector(".layout-aside-mobile-mode");
23723
+ el == null ? void 0 : el.setAttribute("style", "animation: error-img-two 0.3s");
23724
+ setTimeout(() => {
23725
+ var _a;
23726
+ (_a = el == null ? void 0 : el.parentNode) == null ? void 0 : _a.removeChild(el);
23727
+ }, 300);
23728
+ const clientWidth = document.body.clientWidth;
23729
+ if (clientWidth < 1e3) themeConfig.value.isCollapse = false;
23730
+ document.body.setAttribute("class", "");
23731
+ };
23732
+ const setFilterRoutes = () => {
23733
+ if (themeConfig.value.layout === "columns") return false;
23734
+ state.menuList = filterRoutesFun(routesList.value);
23735
+ };
23736
+ const filterRoutesFun = (arr) => {
23737
+ return arr.filter((item) => {
23738
+ var _a;
23739
+ return !((_a = item.meta) == null ? void 0 : _a.isHide);
23740
+ }).map((item) => {
23741
+ item = Object.assign({}, item);
23742
+ if (item.children) item.children = filterRoutesFun(item.children);
23743
+ return item;
23744
+ });
23745
+ };
23746
+ const initMenuFixed = (clientWidth) => {
23747
+ state.clientWidth = clientWidth;
23748
+ };
23749
+ const onAsideEnterLeave = (bool) => {
23750
+ let { layout } = themeConfig.value;
23751
+ if (layout !== "columns") return false;
23752
+ if (!bool) emitter.emit("restoreDefault");
23753
+ if (themeConfig.value.isColumnsMenuHoverPreload) stores.setColumnsMenuHover(bool);
23754
+ };
23755
+ onBeforeMount(() => {
23756
+ initMenuFixed(document.body.clientWidth);
23757
+ setFilterRoutes();
23758
+ emitter.on("setSendColumnsChildren", (res) => {
23759
+ state.menuList = res.children;
23760
+ });
23761
+ emitter.on("setSendClassicChildren", (res) => {
23762
+ let { layout, isClassicSplitMenu } = themeConfig.value;
23763
+ if (layout === "classic" && isClassicSplitMenu) {
23764
+ res.children.length <= 1 ? themeConfig.value.isCollapse = true : themeConfig.value.isCollapse = false;
23765
+ state.menuList = [];
23766
+ state.menuList = res.children;
23767
+ }
23768
+ });
23769
+ emitter.on("getBreadcrumbIndexSetFilterRoutes", () => {
23770
+ setFilterRoutes();
23771
+ });
23772
+ emitter.on("layoutMobileResize", (res) => {
23773
+ initMenuFixed(res.clientWidth);
23774
+ closeLayoutAsideMobileMode();
23775
+ });
23776
+ });
23777
+ watch(
23778
+ () => [themeConfig.value.isShowLogoChange, themeConfig.value.isShowLogo, themeConfig.value.layout, themeConfig.value.isClassicSplitMenu],
23779
+ ([isShowLogoChange, isShowLogo, layout, isClassicSplitMenu]) => {
23780
+ if (isShowLogoChange !== isShowLogo) {
23781
+ if (layoutAsideScrollbarRef.value) layoutAsideScrollbarRef.value.update();
23782
+ }
23783
+ if (layout === "classic" && isClassicSplitMenu) return false;
23784
+ }
23785
+ );
23786
+ watch(
23787
+ () => routesList.value,
23788
+ () => {
23789
+ setFilterRoutes();
23790
+ }
23791
+ );
23792
+ return (_ctx, _cache) => {
23793
+ const _component_el_scrollbar = resolveComponent("el-scrollbar");
23794
+ const _component_el_aside = resolveComponent("el-aside");
23795
+ return withDirectives((openBlock(), createElementBlock(
23796
+ "div",
23797
+ _hoisted_1$h,
23798
+ [
23799
+ createVNode(_component_el_aside, {
23800
+ class: normalizeClass(["layout-aside", setCollapseStyle.value])
23801
+ }, {
23802
+ default: withCtx(() => [
23803
+ setShowLogo.value ? (openBlock(), createBlock(unref(Logo), { key: 0 })) : createCommentVNode("v-if", true),
23804
+ createVNode(
23805
+ _component_el_scrollbar,
23806
+ {
23807
+ class: "flex-auto",
23808
+ ref_key: "layoutAsideScrollbarRef",
23809
+ ref: layoutAsideScrollbarRef,
23810
+ onMouseenter: _cache[0] || (_cache[0] = ($event) => onAsideEnterLeave(true)),
23811
+ onMouseleave: _cache[1] || (_cache[1] = ($event) => onAsideEnterLeave(false))
23812
+ },
23813
+ {
23814
+ default: withCtx(() => [
23815
+ createVNode(unref(Vertical), {
23816
+ menuList: state.menuList
23817
+ }, null, 8, ["menuList"])
23818
+ ]),
23819
+ _: 1
23820
+ /* STABLE */
23821
+ },
23822
+ 512
23823
+ /* NEED_PATCH */
23824
+ )
23825
+ ]),
23826
+ _: 1
23827
+ /* STABLE */
23828
+ }, 8, ["class"])
23829
+ ],
23830
+ 512
23831
+ /* NEED_PATCH */
23832
+ )), [
23833
+ [vShow, !unref(isTagsViewCurrenFull)]
23834
+ ]);
23835
+ };
23836
+ }
23837
+ });
23838
+
23839
+ var aside = /*#__PURE__*/Object.freeze({
23840
+ __proto__: null,
23841
+ default: _sfc_main$j
23842
+ });
23843
+
23844
+ var _sfc_main$i = /* @__PURE__ */ defineComponent({
23845
+ __name: "header",
23846
+ setup(__props) {
23847
+ const NavBarsIndex = defineAsyncComponent(() => Promise.resolve().then(function () { return index$2; }));
23848
+ const storesTagsViewRoutes = useTagsViewRoutes();
23849
+ const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes);
23850
+ return (_ctx, _cache) => {
23851
+ const _component_el_header = resolveComponent("el-header");
23852
+ return withDirectives((openBlock(), createBlock(
23853
+ _component_el_header,
23854
+ { class: "layout-header" },
23855
+ {
23856
+ default: withCtx(() => [
23857
+ !_ctx.$slots.navBars ? (openBlock(), createBlock(unref(NavBarsIndex), { key: 0 }, {
23858
+ default: withCtx(() => [
23859
+ (openBlock(true), createElementBlock(
23860
+ Fragment,
23861
+ null,
23862
+ renderList(_ctx.$slots, (_, name) => {
23863
+ return renderSlot(_ctx.$slots, name, mergeProps({
23864
+ key: name,
23865
+ ref_for: true
23866
+ }, _ctx.$slots[name].props || {}));
23867
+ }),
23868
+ 128
23869
+ /* KEYED_FRAGMENT */
23870
+ ))
23871
+ ]),
23872
+ _: 3
23873
+ /* FORWARDED */
23874
+ })) : renderSlot(_ctx.$slots, "navBars", { key: 1 })
23875
+ ]),
23876
+ _: 3
23877
+ /* FORWARDED */
23878
+ },
23879
+ 512
23880
+ /* NEED_PATCH */
23881
+ )), [
23882
+ [vShow, !unref(isTagsViewCurrenFull)]
23883
+ ]);
23884
+ };
23885
+ }
23886
+ });
23887
+
23888
+ var header = /*#__PURE__*/Object.freeze({
23889
+ __proto__: null,
23890
+ default: _sfc_main$i
23891
+ });
23892
+
23893
+ var _sfc_main$h = /* @__PURE__ */ defineComponent({
23894
+ __name: "main",
23895
+ setup(__props, { expose: __expose }) {
23896
+ const LayoutParentView = defineAsyncComponent(() => Promise.resolve().then(function () { return parent; }));
23897
+ const LayoutFooter = defineAsyncComponent(() => Promise.resolve().then(function () { return index$1; }));
23898
+ const layoutMainScrollbarRef = ref();
23899
+ const route = useRoute();
23900
+ const storesTagsViewRoutes = useTagsViewRoutes();
23901
+ const storesThemeConfig = useThemeConfig();
23902
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23903
+ const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes);
23904
+ const isFooter = computed(() => {
23905
+ return themeConfig.value.isFooter && !route.meta.isIframe;
23906
+ });
23907
+ const isFixedHeader = computed(() => {
23908
+ return themeConfig.value.isFixedHeader;
23909
+ });
23910
+ const setBacktopClass = computed(() => {
23911
+ if (themeConfig.value.isFixedHeader) return `.layout-backtop-header-fixed .el-scrollbar__wrap`;
23912
+ else return `.layout-backtop .el-scrollbar__wrap`;
23913
+ });
23914
+ const setMainHeight = computed(() => {
23915
+ if (isTagsViewCurrenFull.value) return "0px";
23916
+ const { isTagsview, layout } = themeConfig.value;
23917
+ if (isTagsview && layout !== "classic") return "85px";
23918
+ else return "51px";
23919
+ });
23920
+ onMounted(() => {
23921
+ NextLoading.done(600);
23922
+ });
23923
+ __expose({
23924
+ layoutMainScrollbarRef
23925
+ });
23926
+ return (_ctx, _cache) => {
23927
+ const _component_el_scrollbar = resolveComponent("el-scrollbar");
23928
+ const _component_el_backtop = resolveComponent("el-backtop");
23929
+ const _component_el_main = resolveComponent("el-main");
23930
+ return openBlock(), createBlock(_component_el_main, {
23931
+ class: "layout-main",
23932
+ style: normalizeStyle(isFixedHeader.value ? `height: calc(100% - ${setMainHeight.value})` : `minHeight: calc(100% - ${setMainHeight.value})`)
23933
+ }, {
23934
+ default: withCtx(() => [
23935
+ createVNode(
23936
+ _component_el_scrollbar,
23937
+ {
23938
+ ref_key: "layoutMainScrollbarRef",
23939
+ ref: layoutMainScrollbarRef,
23940
+ class: "layout-main-scroll layout-backtop-header-fixed",
23941
+ "wrap-class": "layout-main-scroll",
23942
+ "view-class": "layout-main-scroll"
23943
+ },
23944
+ {
23945
+ default: withCtx(() => [
23946
+ createVNode(unref(LayoutParentView)),
23947
+ isFooter.value ? (openBlock(), createBlock(unref(LayoutFooter), { key: 0 })) : createCommentVNode("v-if", true)
23948
+ ]),
23949
+ _: 1
23950
+ /* STABLE */
23951
+ },
23952
+ 512
23953
+ /* NEED_PATCH */
23954
+ ),
23955
+ createVNode(_component_el_backtop, { target: setBacktopClass.value }, null, 8, ["target"])
23956
+ ]),
23957
+ _: 1
23958
+ /* STABLE */
23959
+ }, 8, ["style"]);
23960
+ };
23961
+ }
23962
+ });
23963
+
23964
+ var main = /*#__PURE__*/Object.freeze({
23965
+ __proto__: null,
23966
+ default: _sfc_main$h
23967
+ });
23968
+
23969
+ const _hoisted_1$g = ["data-url", "onContextmenu", "onMousedown", "onClick"];
23970
+ const _hoisted_2$a = {
23971
+ key: 0,
23972
+ class: "iconfont icon-webicon318 layout-navbars-tagsview-ul-li-iconfont"
23973
+ };
23974
+ var _sfc_main$g = /* @__PURE__ */ defineComponent({
23975
+ __name: "tagsView",
23976
+ setup(__props) {
23977
+ const Contextmenu = defineAsyncComponent(() => Promise.resolve().then(function () { return contextmenu; }));
23978
+ const tagsRefs = ref([]);
23979
+ const scrollbarRef = ref();
23980
+ const contextmenuRef = ref();
23981
+ const tagsUlRef = ref();
23982
+ const stores = useTagsViewRoutes();
23983
+ const storesThemeConfig = useThemeConfig();
23984
+ const storesTagsViewRoutes = useTagsViewRoutes();
23985
+ const storesRoutesList = useRoutesList();
23986
+ const { themeConfig } = storeToRefs(storesThemeConfig);
23987
+ const { tagsViewRoutes } = storeToRefs(storesTagsViewRoutes);
23988
+ const { routesList } = storeToRefs(storesRoutesList);
23989
+ const storesKeepALiveNames = useKeepALiveNames();
23990
+ const route = useRoute();
23991
+ const router = useRouter();
23992
+ const state = reactive({
23993
+ routeActive: "",
23994
+ routePath: route.path,
23995
+ dropdown: { x: "", y: "" },
23996
+ sortable: "",
23997
+ tagsRefsIndex: 0,
23998
+ tagsViewList: [],
23999
+ tagsViewRoutesList: []
24000
+ });
24001
+ const setTagsStyle = computed(() => {
24002
+ return themeConfig.value.tagsStyle;
24003
+ });
24004
+ const getThemeConfig = computed(() => {
24005
+ return themeConfig.value;
24006
+ });
24007
+ const setTagsViewNameI18n = computed(() => {
24008
+ return (v) => {
24009
+ return other.setTagsViewNameI18n(v);
24010
+ };
24011
+ });
24012
+ const isActive = (v) => {
24013
+ if (getThemeConfig.value.isShareTagsView) {
24014
+ return v.path === state.routePath;
24015
+ } else {
24016
+ if (v.query && Object.keys(v.query).length || v.params && Object.keys(v.params).length) {
24017
+ return v.url ? v.url === state.routeActive : v.path === state.routeActive;
24018
+ } else {
24019
+ return v.path === state.routePath;
24020
+ }
24021
+ }
24022
+ };
24023
+ const addBrowserSetSession = (tagsViewList) => {
24024
+ Session.set("tagsViewList", tagsViewList);
24025
+ };
24026
+ const getTagsViewRoutes = async () => {
24027
+ state.routeActive = await setTagsViewHighlight(route);
24028
+ state.routePath = await route.meta.isDynamic ? route.meta.isDynamicPath : route.path;
24029
+ state.tagsViewList = [];
24030
+ state.tagsViewRoutesList = tagsViewRoutes.value;
24031
+ initTagsView();
24032
+ };
24033
+ const initTagsView = async () => {
24034
+ if (Session.get("tagsViewList") && getThemeConfig.value.isCacheTagsView) {
24035
+ state.tagsViewList = await Session.get("tagsViewList");
24036
+ } else {
24037
+ await state.tagsViewRoutesList.map((v) => {
24038
+ var _a;
24039
+ if (((_a = v.meta) == null ? void 0 : _a.isAffix) && !v.meta.isHide) {
24040
+ v.url = setTagsViewHighlight(v);
24041
+ state.tagsViewList.push({ ...v });
24042
+ storesKeepALiveNames.addCachedView(v);
24043
+ }
24044
+ });
24045
+ await addTagsView(route.path, route);
24046
+ }
24047
+ getTagsRefsIndex(getThemeConfig.value.isShareTagsView ? state.routePath : state.routeActive);
24048
+ };
24049
+ const solveAddTagsView = async (path, to) => {
24050
+ var _a, _b;
24051
+ let isDynamicPath = ((_a = to == null ? void 0 : to.meta) == null ? void 0 : _a.isDynamic) ? to.meta.isDynamicPath : path;
24052
+ let current = state.tagsViewList.filter(
24053
+ (v) => {
24054
+ var _a2, _b2;
24055
+ return v.path === isDynamicPath && isObjectValueEqual(((_a2 = to == null ? void 0 : to.meta) == null ? void 0 : _a2.isDynamic) ? v.params ? v.params : null : v.query ? v.query : null, ((_b2 = to == null ? void 0 : to.meta) == null ? void 0 : _b2.isDynamic) ? (to == null ? void 0 : to.params) ? to == null ? void 0 : to.params : null : (to == null ? void 0 : to.query) ? to == null ? void 0 : to.query : null);
24056
+ }
24057
+ );
24058
+ if (current.length <= 0) {
24059
+ let findItem = state.tagsViewRoutesList.find((v) => v.path === isDynamicPath);
24060
+ if (!findItem) return false;
24061
+ if (findItem.meta.isAffix) return false;
24062
+ if (findItem.meta.isLink && !findItem.meta.isIframe) return false;
24063
+ ((_b = to == null ? void 0 : to.meta) == null ? void 0 : _b.isDynamic) ? findItem.params = to.params : findItem.query = to == null ? void 0 : to.query;
24064
+ findItem.url = setTagsViewHighlight(findItem);
24065
+ state.tagsViewList.push({ ...findItem });
24066
+ await storesKeepALiveNames.addCachedView(findItem);
24067
+ addBrowserSetSession(state.tagsViewList);
24068
+ }
24069
+ };
24070
+ const singleAddTagsView = (path, to) => {
24071
+ var _a;
24072
+ let isDynamicPath = ((_a = to == null ? void 0 : to.meta) == null ? void 0 : _a.isDynamic) ? to.meta.isDynamicPath : path;
24073
+ state.tagsViewList.forEach((v) => {
24074
+ var _a2, _b, _c;
24075
+ if (v.path === isDynamicPath && !isObjectValueEqual(((_a2 = to == null ? void 0 : to.meta) == null ? void 0 : _a2.isDynamic) ? v.params ? v.params : null : v.query ? v.query : null, ((_b = to == null ? void 0 : to.meta) == null ? void 0 : _b.isDynamic) ? (to == null ? void 0 : to.params) ? to == null ? void 0 : to.params : null : (to == null ? void 0 : to.query) ? to == null ? void 0 : to.query : null)) {
24076
+ ((_c = to == null ? void 0 : to.meta) == null ? void 0 : _c.isDynamic) ? v.params = to.params : v.query = to == null ? void 0 : to.query;
24077
+ v.url = setTagsViewHighlight(v);
24078
+ addBrowserSetSession(state.tagsViewList);
24079
+ }
24080
+ });
24081
+ };
24082
+ const addTagsView = (path, to) => {
24083
+ nextTick(async () => {
24084
+ var _a, _b, _c;
24085
+ let item;
24086
+ if ((_a = to == null ? void 0 : to.meta) == null ? void 0 : _a.isDynamic) {
24087
+ if (!getThemeConfig.value.isShareTagsView) await solveAddTagsView(path, to);
24088
+ else await singleAddTagsView(path, to);
24089
+ if (state.tagsViewList.some((v) => {
24090
+ var _a2;
24091
+ return v.path === ((_a2 = to == null ? void 0 : to.meta) == null ? void 0 : _a2.isDynamicPath);
24092
+ })) {
24093
+ addBrowserSetSession(state.tagsViewList);
24094
+ return false;
24095
+ }
24096
+ item = state.tagsViewRoutesList.find((v) => {
24097
+ var _a2;
24098
+ return v.path === ((_a2 = to == null ? void 0 : to.meta) == null ? void 0 : _a2.isDynamicPath);
24099
+ });
24100
+ } else {
24101
+ if (!getThemeConfig.value.isShareTagsView) await solveAddTagsView(path, to);
24102
+ else await singleAddTagsView(path, to);
24103
+ if (state.tagsViewList.some((v) => v.path === path)) {
24104
+ addBrowserSetSession(state.tagsViewList);
24105
+ return false;
24106
+ }
24107
+ item = state.tagsViewRoutesList.find((v) => v.path === path);
24108
+ }
24109
+ if (!item) return false;
24110
+ if (((_b = item == null ? void 0 : item.meta) == null ? void 0 : _b.isLink) && !item.meta.isIframe) return false;
24111
+ if ((_c = to == null ? void 0 : to.meta) == null ? void 0 : _c.isDynamic) item.params = (to == null ? void 0 : to.params) ? to == null ? void 0 : to.params : route.params;
24112
+ else item.query = (to == null ? void 0 : to.query) ? to == null ? void 0 : to.query : route.query;
24113
+ item.url = setTagsViewHighlight(item);
24114
+ await storesKeepALiveNames.addCachedView(item);
24115
+ await state.tagsViewList.push({ ...item });
24116
+ await addBrowserSetSession(state.tagsViewList);
24117
+ });
24118
+ };
24119
+ const refreshCurrentTagsView = async (fullPath) => {
24120
+ var _a;
24121
+ const decodeURIPath = decodeURI(fullPath);
24122
+ let item = {};
24123
+ state.tagsViewList.forEach((v) => {
24124
+ v.transUrl = transUrlParams(v);
24125
+ if (v.transUrl) {
24126
+ if (v.transUrl === transUrlParams(v)) item = v;
24127
+ } else {
24128
+ if (v.path === decodeURIPath) item = v;
24129
+ }
24130
+ });
24131
+ if (!item) return false;
24132
+ await storesKeepALiveNames.delCachedView(item);
24133
+ emitter.emit("onTagsViewRefreshRouterView", fullPath);
24134
+ if ((_a = item.meta) == null ? void 0 : _a.isKeepAlive) storesKeepALiveNames.addCachedView(item);
24135
+ };
24136
+ const closeCurrentTagsView = (path) => {
24137
+ state.tagsViewList.map((v, k, arr) => {
24138
+ var _a;
24139
+ if (!((_a = v.meta) == null ? void 0 : _a.isAffix)) {
24140
+ if (getThemeConfig.value.isShareTagsView ? v.path === path : v.url === path) {
24141
+ storesKeepALiveNames.delCachedView(v);
24142
+ state.tagsViewList.splice(k, 1);
24143
+ setTimeout(() => {
24144
+ if (state.tagsViewList.length === k && getThemeConfig.value.isShareTagsView ? state.routePath === path : state.routeActive === path) {
24145
+ if (arr[arr.length - 1].meta.isDynamic) {
24146
+ if (k !== arr.length) router.push({ name: arr[k].name, params: arr[k].params });
24147
+ else router.push({ name: arr[arr.length - 1].name, params: arr[arr.length - 1].params });
24148
+ } else {
24149
+ if (k !== arr.length) router.push({ path: arr[k].path, query: arr[k].query });
24150
+ else router.push({ path: arr[arr.length - 1].path, query: arr[arr.length - 1].query });
24151
+ }
24152
+ } else {
24153
+ if (state.tagsViewList.length !== k && getThemeConfig.value.isShareTagsView ? state.routePath === path : state.routeActive === path) {
24154
+ if (arr[k].meta.isDynamic) {
24155
+ router.push({ name: arr[k].name, params: arr[k].params });
24156
+ } else {
24157
+ router.push({ path: arr[k].path, query: arr[k].query });
24158
+ }
24159
+ }
24160
+ }
24161
+ }, 0);
24162
+ }
24163
+ }
24164
+ });
24165
+ addBrowserSetSession(state.tagsViewList);
24166
+ };
24167
+ const closeOtherTagsView = (path) => {
24168
+ if (Session.get("tagsViewList")) {
24169
+ state.tagsViewList = [];
24170
+ Session.get("tagsViewList").map((v) => {
24171
+ var _a;
24172
+ if (((_a = v.meta) == null ? void 0 : _a.isAffix) && !v.meta.isHide) {
24173
+ v.url = setTagsViewHighlight(v);
24174
+ storesKeepALiveNames.delOthersCachedViews(v);
24175
+ state.tagsViewList.push({ ...v });
24176
+ }
24177
+ });
24178
+ addTagsView(path, route);
24179
+ addBrowserSetSession(state.tagsViewList);
24180
+ }
24181
+ };
24182
+ const closeAllTagsView = () => {
24183
+ if (Session.get("tagsViewList")) {
24184
+ storesKeepALiveNames.delAllCachedViews();
24185
+ state.tagsViewList = [];
24186
+ Session.get("tagsViewList").map((v) => {
24187
+ var _a;
24188
+ if (((_a = v.meta) == null ? void 0 : _a.isAffix) && !v.meta.isHide) {
24189
+ v.url = setTagsViewHighlight(v);
24190
+ state.tagsViewList.push({ ...v });
24191
+ router.push({ path: state.tagsViewList[state.tagsViewList.length - 1].path });
24192
+ }
24193
+ });
24194
+ addBrowserSetSession(state.tagsViewList);
24195
+ }
24196
+ };
24197
+ const openCurrenFullscreen = async (path) => {
24198
+ const item = state.tagsViewList.find((v) => getThemeConfig.value.isShareTagsView ? v.path === path : v.url === path);
24199
+ if (item.meta.isDynamic) await router.push({ name: item.name, params: item.params });
24200
+ else await router.push({ name: item.name, query: item.query });
24201
+ stores.setCurrenFullscreen(true);
24202
+ };
24203
+ const getCurrentRouteItem = (item) => {
24204
+ let resItem = {};
24205
+ state.tagsViewList.forEach((v) => {
24206
+ v.transUrl = transUrlParams(v);
24207
+ if (v.transUrl) {
24208
+ if (v.transUrl === transUrlParams(v) && v.transUrl === item.commonUrl) resItem = v;
24209
+ } else {
24210
+ if (v.path === decodeURI(item.path)) resItem = v;
24211
+ }
24212
+ });
24213
+ if (!resItem) return null;
24214
+ else return resItem;
24215
+ };
24216
+ const onCurrentContextmenuClick = async (item) => {
24217
+ item.commonUrl = transUrlParams(item);
24218
+ if (!getCurrentRouteItem(item)) return ElMessage({ type: "warning", message: "\u8BF7\u6B63\u786E\u8F93\u5165\u8DEF\u5F84\u53CA\u5B8C\u6574\u53C2\u6570\uFF08query\u3001params\uFF09" });
24219
+ const { path, name, params, query, meta, url } = getCurrentRouteItem(item);
24220
+ switch (item.contextMenuClickId) {
24221
+ case 0:
24222
+ if (meta.isDynamic) await router.push({ name, params });
24223
+ else await router.push({ path, query });
24224
+ await refreshCurrentTagsView(route.fullPath);
24225
+ break;
24226
+ case 1:
24227
+ closeCurrentTagsView(getThemeConfig.value.isShareTagsView ? path : url);
24228
+ break;
24229
+ case 2:
24230
+ if (meta.isDynamic) await router.push({ name, params });
24231
+ else await router.push({ path, query });
24232
+ closeOtherTagsView(path);
24233
+ break;
24234
+ case 3:
24235
+ closeAllTagsView();
24236
+ break;
24237
+ case 4:
24238
+ await openCurrenFullscreen(getThemeConfig.value.isShareTagsView ? path : url);
24239
+ break;
24240
+ }
24241
+ };
24242
+ const onContextmenu = (v, e) => {
24243
+ const { clientX, clientY } = e;
24244
+ state.dropdown.x = clientX;
24245
+ state.dropdown.y = clientY;
24246
+ contextmenuRef.value.openContextmenu(v);
24247
+ };
24248
+ const onMousedownMenu = (v, e) => {
24249
+ var _a;
24250
+ if (!((_a = v.meta) == null ? void 0 : _a.isAffix) && e.button === 1) {
24251
+ const item = Object.assign({}, { contextMenuClickId: 1, ...v });
24252
+ onCurrentContextmenuClick(item);
24253
+ }
24254
+ };
24255
+ const onTagsClick = (v, k) => {
24256
+ state.tagsRefsIndex = k;
24257
+ router.push(v);
24258
+ if (getThemeConfig.value.layout === "columns") {
24259
+ const item = routesList.value.find((r) => r.path.indexOf(`/${v.path.split("/")[1]}`) > -1);
24260
+ !item.children ? getThemeConfig.value.isCollapse = true : getThemeConfig.value.isCollapse = false;
24261
+ }
24262
+ };
24263
+ const transUrlParams = (v) => {
24264
+ var _a, _b;
24265
+ let params = v.query && Object.keys(v.query).length > 0 ? v.query : v.params;
24266
+ if (!params) return "";
24267
+ let path = "";
24268
+ for (let [key, value] of Object.entries(params)) {
24269
+ if ((_a = v.meta) == null ? void 0 : _a.isDynamic) path += `/${value}`;
24270
+ else path += `&${key}=${value}`;
24271
+ }
24272
+ if ((_b = v.meta) == null ? void 0 : _b.isDynamic) {
24273
+ return v.isFnClick ? decodeURI(v.path) : `${v.path.split(":")[0]}${path.replace(/^\//, "")}`;
24274
+ } else {
24275
+ return `${v.path}${path.replace(/^&/, "?")}`;
24276
+ }
24277
+ };
24278
+ const setTagsViewHighlight = (v) => {
24279
+ var _a;
24280
+ let params = v.query && Object.keys(v.query).length > 0 ? v.query : v.params;
24281
+ if (!params || Object.keys(params).length <= 0) return v.path;
24282
+ let path = "";
24283
+ for (let i in params) {
24284
+ path += params[i];
24285
+ }
24286
+ return `${((_a = v.meta) == null ? void 0 : _a.isDynamic) ? v.meta.isDynamicPath : v.path}-${path}`;
24287
+ };
24288
+ const onHandleScroll = (e) => {
24289
+ scrollbarRef.value.$refs.wrapRef.scrollLeft += e.wheelDelta / 4;
24290
+ };
24291
+ const tagsViewmoveToCurrentTag = () => {
24292
+ nextTick(() => {
24293
+ if (tagsRefs.value.length <= 0) return false;
24294
+ let liDom = tagsRefs.value[state.tagsRefsIndex];
24295
+ let liIndex = state.tagsRefsIndex;
24296
+ let liLength = tagsRefs.value.length;
24297
+ let liFirst = tagsRefs.value[0];
24298
+ let liLast = tagsRefs.value[tagsRefs.value.length - 1];
24299
+ let scrollRefs = scrollbarRef.value.$refs.wrapRef;
24300
+ let scrollS = scrollRefs.scrollWidth;
24301
+ let offsetW = scrollRefs.offsetWidth;
24302
+ let scrollL = scrollRefs.scrollLeft;
24303
+ let liPrevTag = tagsRefs.value[state.tagsRefsIndex - 1];
24304
+ let liNextTag = tagsRefs.value[state.tagsRefsIndex + 1];
24305
+ let beforePrevL = 0;
24306
+ let afterNextL = 0;
24307
+ if (liDom === liFirst) {
24308
+ scrollRefs.scrollLeft = 0;
24309
+ } else if (liDom === liLast) {
24310
+ scrollRefs.scrollLeft = scrollS - offsetW;
24311
+ } else {
24312
+ if (liIndex === 0) beforePrevL = liFirst.offsetLeft - 5;
24313
+ else beforePrevL = (liPrevTag == null ? void 0 : liPrevTag.offsetLeft) - 5;
24314
+ if (liIndex === liLength) afterNextL = liLast.offsetLeft + liLast.offsetWidth + 5;
24315
+ else afterNextL = liNextTag.offsetLeft + liNextTag.offsetWidth + 5;
24316
+ if (afterNextL > scrollL + offsetW) {
24317
+ scrollRefs.scrollLeft = afterNextL - offsetW;
24318
+ } else if (beforePrevL < scrollL) {
24319
+ scrollRefs.scrollLeft = beforePrevL;
24320
+ }
24321
+ }
24322
+ scrollbarRef.value.update();
24323
+ });
24324
+ };
24325
+ const getTagsRefsIndex = (path) => {
24326
+ nextTick(async () => {
24327
+ let tagsViewList = await state.tagsViewList;
24328
+ state.tagsRefsIndex = tagsViewList.findIndex((v) => {
24329
+ if (getThemeConfig.value.isShareTagsView) {
24330
+ return v.path === path;
24331
+ } else {
24332
+ return v.url === path;
24333
+ }
24334
+ });
24335
+ tagsViewmoveToCurrentTag();
24336
+ });
24337
+ };
24338
+ const initSortable = async () => {
24339
+ const el = document.querySelector(".layout-navbars-tagsview-ul");
24340
+ if (!el) return false;
24341
+ state.sortable.el && state.sortable.destroy();
24342
+ state.sortable = Sortable.create(el, {
24343
+ animation: 300,
24344
+ dataIdAttr: "data-url",
24345
+ disabled: getThemeConfig.value.isSortableTagsView ? false : true,
24346
+ onEnd: () => {
24347
+ const sortEndList = [];
24348
+ state.sortable.toArray().map((val) => {
24349
+ state.tagsViewList.map((v) => {
24350
+ if (v.url === val) sortEndList.push({ ...v });
24351
+ });
24352
+ });
24353
+ addBrowserSetSession(sortEndList);
24354
+ }
24355
+ });
24356
+ };
24357
+ const onSortableResize = async () => {
24358
+ await initSortable();
24359
+ if (other.isMobile()) state.sortable.el && state.sortable.destroy();
24360
+ };
24361
+ onBeforeMount(() => {
24362
+ onSortableResize();
24363
+ window.addEventListener("resize", onSortableResize);
24364
+ emitter.on("onCurrentContextmenuClick", (data) => {
24365
+ data.isFnClick = true;
24366
+ onCurrentContextmenuClick(data);
24367
+ });
24368
+ emitter.on("openOrCloseSortable", () => {
24369
+ initSortable();
24370
+ });
24371
+ emitter.on("openShareTagsView", () => {
24372
+ if (getThemeConfig.value.isShareTagsView) {
24373
+ router.push("/home");
24374
+ state.tagsViewList = [];
24375
+ state.tagsViewRoutesList.map((v) => {
24376
+ var _a;
24377
+ if (((_a = v.meta) == null ? void 0 : _a.isAffix) && !v.meta.isHide) {
24378
+ v.url = setTagsViewHighlight(v);
24379
+ state.tagsViewList.push({ ...v });
24380
+ }
24381
+ });
24382
+ }
24383
+ });
24384
+ });
24385
+ onUnmounted(() => {
24386
+ emitter.off("onCurrentContextmenuClick", () => {
24387
+ });
24388
+ emitter.off("openOrCloseSortable", () => {
24389
+ });
24390
+ emitter.off("openShareTagsView", () => {
24391
+ });
24392
+ window.removeEventListener("resize", onSortableResize);
24393
+ });
24394
+ onBeforeUpdate(() => {
24395
+ tagsRefs.value = [];
24396
+ });
24397
+ onMounted(() => {
24398
+ getTagsViewRoutes();
24399
+ initSortable();
24400
+ });
24401
+ onBeforeRouteUpdate(async (to) => {
24402
+ state.routeActive = setTagsViewHighlight(to);
24403
+ state.routePath = to.meta.isDynamic ? to.meta.isDynamicPath : to.path;
24404
+ await addTagsView(to.path, to);
24405
+ getTagsRefsIndex(getThemeConfig.value.isShareTagsView ? state.routePath : state.routeActive);
24406
+ });
24407
+ watch(
24408
+ () => tagsViewRoutes.value,
24409
+ (val) => {
24410
+ if (val.length === state.tagsViewRoutesList.length) return false;
24411
+ getTagsViewRoutes();
24412
+ },
24413
+ {
24414
+ deep: true
24415
+ }
24416
+ );
24417
+ return (_ctx, _cache) => {
24418
+ const _component_SvgIcon = resolveComponent("SvgIcon");
24419
+ const _component_el_scrollbar = resolveComponent("el-scrollbar");
24420
+ return openBlock(), createElementBlock(
24421
+ "div",
24422
+ {
24423
+ class: normalizeClass(["layout-navbars-tagsview", { "layout-navbars-tagsview-shadow": getThemeConfig.value.layout === "classic" }])
24424
+ },
24425
+ [
24426
+ createVNode(
24427
+ _component_el_scrollbar,
24428
+ {
24429
+ ref_key: "scrollbarRef",
24430
+ ref: scrollbarRef,
24431
+ onWheel: withModifiers(onHandleScroll, ["prevent"])
24432
+ },
24433
+ {
24434
+ default: withCtx(() => [
24435
+ createElementVNode(
24436
+ "ul",
24437
+ {
24438
+ class: normalizeClass(["layout-navbars-tagsview-ul", setTagsStyle.value]),
24439
+ ref_key: "tagsUlRef",
24440
+ ref: tagsUlRef
24441
+ },
24442
+ [
24443
+ (openBlock(true), createElementBlock(
24444
+ Fragment,
24445
+ null,
24446
+ renderList(state.tagsViewList, (v, k) => {
24447
+ return openBlock(), createElementBlock("li", {
24448
+ key: k,
24449
+ class: normalizeClass(["layout-navbars-tagsview-ul-li", { "is-active": isActive(v) }]),
24450
+ "data-url": v.url,
24451
+ onContextmenu: withModifiers(($event) => onContextmenu(v, $event), ["prevent"]),
24452
+ onMousedown: ($event) => onMousedownMenu(v, $event),
24453
+ onClick: ($event) => onTagsClick(v, k),
24454
+ ref_for: true,
24455
+ ref: (el) => {
24456
+ if (el) tagsRefs.value[k] = el;
24457
+ }
24458
+ }, [
24459
+ isActive(v) ? (openBlock(), createElementBlock("i", _hoisted_2$a)) : createCommentVNode("v-if", true),
24460
+ getThemeConfig.value.isTagsviewIcon ? (openBlock(), createBlock(_component_SvgIcon, {
24461
+ key: 1,
24462
+ name: v.meta.icon,
24463
+ class: "pr5",
24464
+ size: 18
24465
+ }, null, 8, ["name"])) : createCommentVNode("v-if", true),
24466
+ createElementVNode(
24467
+ "span",
24468
+ null,
24469
+ toDisplayString(setTagsViewNameI18n.value(v)),
24470
+ 1
24471
+ /* TEXT */
24472
+ ),
24473
+ isActive(v) ? (openBlock(), createElementBlock(
24474
+ Fragment,
24475
+ { key: 2 },
24476
+ [
24477
+ createVNode(_component_SvgIcon, {
24478
+ name: "ele-RefreshRight",
24479
+ class: "ml5 layout-navbars-tagsview-ul-li-refresh",
24480
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => refreshCurrentTagsView(_ctx.$route.fullPath), ["stop"]))
24481
+ }),
24482
+ !v.meta.isAffix ? (openBlock(), createBlock(_component_SvgIcon, {
24483
+ key: 0,
24484
+ name: "ele-Close",
24485
+ class: "layout-navbars-tagsview-ul-li-icon layout-icon-active",
24486
+ onClick: withModifiers(($event) => closeCurrentTagsView(getThemeConfig.value.isShareTagsView ? v.path : v.url), ["stop"])
24487
+ }, null, 8, ["onClick"])) : createCommentVNode("v-if", true)
24488
+ ],
24489
+ 64
24490
+ /* STABLE_FRAGMENT */
24491
+ )) : createCommentVNode("v-if", true),
24492
+ !v.meta.isAffix ? (openBlock(), createBlock(_component_SvgIcon, {
24493
+ key: 3,
24494
+ name: "ele-Close",
24495
+ class: "layout-navbars-tagsview-ul-li-icon layout-icon-three",
24496
+ onClick: withModifiers(($event) => closeCurrentTagsView(getThemeConfig.value.isShareTagsView ? v.path : v.url), ["stop"])
24497
+ }, null, 8, ["onClick"])) : createCommentVNode("v-if", true)
24498
+ ], 42, _hoisted_1$g);
24499
+ }),
24500
+ 128
24501
+ /* KEYED_FRAGMENT */
24502
+ ))
24503
+ ],
24504
+ 2
24505
+ /* CLASS */
24506
+ )
24507
+ ]),
24508
+ _: 1
24509
+ /* STABLE */
24510
+ },
24511
+ 512
24512
+ /* NEED_PATCH */
24513
+ ),
24514
+ createVNode(unref(Contextmenu), {
24515
+ dropdown: state.dropdown,
24516
+ ref_key: "contextmenuRef",
24517
+ ref: contextmenuRef,
24518
+ onCurrentContextmenuClick
24519
+ }, null, 8, ["dropdown"])
24520
+ ],
24521
+ 2
24522
+ /* CLASS */
24523
+ );
24524
+ };
24525
+ }
24526
+ });
24527
+
24528
+ var tagsView = /*#__PURE__*/Object.freeze({
24529
+ __proto__: null,
24530
+ default: _sfc_main$g
24531
+ });
24532
+
24533
+ const _hoisted_1$f = { class: "layout-columns-aside" };
24534
+ const _hoisted_2$9 = { class: "layout-logo" };
24535
+ const _hoisted_3$6 = ["src"];
24536
+ const _hoisted_4$3 = ["onClick", "onMouseenter", "title"];
24537
+ const _hoisted_5$3 = { class: "columns-vertical-title font12" };
24538
+ const _hoisted_6$2 = ["href"];
24539
+ const _hoisted_7$2 = { class: "columns-vertical-title font12" };
24540
+ var _sfc_main$f = /* @__PURE__ */ defineComponent({
24541
+ __name: "columnsAside",
24542
+ setup(__props) {
24543
+ const columnsAsideOffsetTopRefs = ref([]);
24544
+ const columnsAsideActiveRef = ref();
24545
+ const stores = useRoutesList();
24546
+ const storesThemeConfig = useThemeConfig();
24547
+ const { routesList, isColumnsMenuHover, isColumnsNavHover } = storeToRefs(stores);
24548
+ const { themeConfig } = storeToRefs(storesThemeConfig);
24549
+ const route = useRoute();
24550
+ const router = useRouter();
24551
+ const state = reactive({
24552
+ columnsAsideList: [],
24553
+ liIndex: 0,
24554
+ liOldIndex: null,
24555
+ liHoverIndex: null,
24556
+ liOldPath: null,
24557
+ difference: 0,
24558
+ routeSplit: []
24559
+ });
24560
+ const setColumnsAsideMove = (k) => {
24561
+ if (k === void 0) return false;
24562
+ state.liIndex = k;
24563
+ columnsAsideActiveRef.value.style.top = `${columnsAsideOffsetTopRefs.value[k].offsetTop + state.difference}px`;
24564
+ };
24565
+ const onColumnsAsideMenuClick = async (v) => {
24566
+ var _a, _b, _c;
24567
+ let { path, redirect } = v;
24568
+ if (redirect) {
24569
+ onColumnsAsideDown(v.k);
24570
+ if (route.path.startsWith(redirect)) emitter.emit("setSendColumnsChildren", setSendChildren(redirect));
24571
+ else router.push(redirect);
24572
+ } else {
24573
+ if (!v.children || ((_a = v.children) == null ? void 0 : _a.length) === 0) {
24574
+ router.push(path);
24575
+ onColumnsAsideDown(v.k);
24576
+ } else {
24577
+ const resData = setSendChildren(path);
24578
+ if (Object.keys(resData).length <= 0) return false;
24579
+ onColumnsAsideDown((_b = resData.item) == null ? void 0 : _b.k);
24580
+ emitter.emit("setSendColumnsChildren", resData);
24581
+ }
24582
+ }
24583
+ if (!v.children || ((_c = v.children) == null ? void 0 : _c.length) === 0) themeConfig.value.isCollapse = true;
24584
+ else if (v.children.length > 1) themeConfig.value.isCollapse = false;
24585
+ };
24586
+ const onColumnsAsideMenuMouseenter = (v, k) => {
24587
+ if (!themeConfig.value.isColumnsMenuHoverPreload) return false;
24588
+ let { path } = v;
24589
+ state.liOldPath = path;
24590
+ state.liOldIndex = k;
24591
+ state.liHoverIndex = k;
24592
+ emitter.emit("setSendColumnsChildren", setSendChildren(path));
24593
+ stores.setColumnsMenuHover(false);
24594
+ stores.setColumnsNavHover(true);
24595
+ };
24596
+ const onColumnsAsideMenuMouseleave = async () => {
24597
+ if (!themeConfig.value.isColumnsMenuHoverPreload) return false;
24598
+ await stores.setColumnsNavHover(false);
24599
+ setTimeout(() => {
24600
+ if (!isColumnsMenuHover && !isColumnsNavHover) emitter.emit("restoreDefault");
24601
+ }, 100);
24602
+ };
24603
+ const onColumnsAsideDown = (k) => {
24604
+ nextTick(() => {
24605
+ setColumnsAsideMove(k);
24606
+ });
24607
+ };
24608
+ const setMenuAutoCollaps = (path) => {
24609
+ var _a, _b;
24610
+ const resData = setSendChildren(path);
24611
+ !((_a = resData.item) == null ? void 0 : _a.redirect) && resData.children.length == 0 || ((_b = resData.item) == null ? void 0 : _b.redirect) && resData.children.length <= 1 ? themeConfig.value.isCollapse = true : themeConfig.value.isCollapse = false;
24612
+ return resData;
24613
+ };
24614
+ const setFilterRoutes = () => {
24615
+ var _a;
24616
+ state.columnsAsideList = filterRoutesFun(routesList.value);
24617
+ const resData = setMenuAutoCollaps(route.path);
24618
+ onColumnsAsideDown((_a = resData.item) == null ? void 0 : _a.k);
24619
+ setTimeout(() => {
24620
+ emitter.emit("setSendColumnsChildren", resData);
24621
+ }, 500);
24622
+ };
24623
+ const setSendChildren = (path) => {
24624
+ const currentPathSplit = path.split("/");
24625
+ let currentData = { children: [] };
24626
+ state.columnsAsideList.map((v, k) => {
24627
+ if (v.path === `/${currentPathSplit[1]}`) {
24628
+ v["k"] = k;
24629
+ currentData["item"] = { ...v };
24630
+ currentData["children"] = [{ ...v }];
24631
+ if (v.children) currentData["children"] = v.children;
24632
+ }
24633
+ });
24634
+ return currentData;
24635
+ };
24636
+ const filterRoutesFun = (arr) => {
24637
+ return arr.filter((item) => {
24638
+ var _a;
24639
+ return !((_a = item.meta) == null ? void 0 : _a.isHide);
24640
+ }).map((item) => {
24641
+ item = Object.assign({}, item);
24642
+ if (item.children) item.children = filterRoutesFun(item.children);
24643
+ return item;
24644
+ });
24645
+ };
24646
+ const setColumnsMenuHighlight = (path) => {
24647
+ state.routeSplit = path.split("/");
24648
+ state.routeSplit.shift();
24649
+ const routeFirst = `/${state.routeSplit[0]}`;
24650
+ const currentSplitRoute = state.columnsAsideList.find((v) => v.path === routeFirst);
24651
+ if (!currentSplitRoute) return false;
24652
+ setTimeout(() => {
24653
+ onColumnsAsideDown(currentSplitRoute.k);
24654
+ }, 0);
24655
+ };
24656
+ onMounted(() => {
24657
+ setFilterRoutes();
24658
+ emitter.on("restoreDefault", () => {
24659
+ state.liOldIndex = null;
24660
+ state.liOldPath = null;
24661
+ });
24662
+ });
24663
+ onUnmounted(() => {
24664
+ emitter.off("restoreDefault", () => {
24665
+ });
24666
+ });
24667
+ onBeforeRouteUpdate((to) => {
24668
+ const resData = setMenuAutoCollaps(to.path);
24669
+ setColumnsMenuHighlight(to.path);
24670
+ emitter.emit("setSendColumnsChildren", resData);
24671
+ });
24672
+ watch(
24673
+ [() => themeConfig.value.columnsAsideStyle, isColumnsMenuHover, isColumnsNavHover],
24674
+ () => {
24675
+ themeConfig.value.columnsAsideStyle === "columnsRound" ? state.difference = 3 : state.difference = 0;
24676
+ if (!isColumnsMenuHover.value && !isColumnsNavHover.value) {
24677
+ state.liHoverIndex = null;
24678
+ emitter.emit("setSendColumnsChildren", setSendChildren(route.path));
24679
+ } else {
24680
+ state.liHoverIndex = state.liOldIndex;
24681
+ if (!state.liOldPath) return false;
24682
+ emitter.emit("setSendColumnsChildren", setSendChildren(state.liOldPath));
24683
+ }
24684
+ },
24685
+ {
24686
+ deep: true
24687
+ }
24688
+ );
24689
+ return (_ctx, _cache) => {
24690
+ const _component_SvgIcon = resolveComponent("SvgIcon");
24691
+ const _component_el_scrollbar = resolveComponent("el-scrollbar");
24692
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
24693
+ createElementVNode("div", _hoisted_2$9, [
24694
+ createElementVNode("img", {
24695
+ src: unref(themeConfig).logoUrl,
24696
+ class: "layout-logo-medium-img"
24697
+ }, null, 8, _hoisted_3$6)
24698
+ ]),
24699
+ createVNode(_component_el_scrollbar, null, {
24700
+ default: withCtx(() => [
24701
+ createElementVNode(
24702
+ "ul",
24703
+ {
24704
+ onMouseleave: _cache[0] || (_cache[0] = ($event) => onColumnsAsideMenuMouseleave())
24705
+ },
24706
+ [
24707
+ (openBlock(true), createElementBlock(
24708
+ Fragment,
24709
+ null,
24710
+ renderList(state.columnsAsideList, (v, k) => {
24711
+ return openBlock(), createElementBlock("li", {
24712
+ key: k,
24713
+ onClick: ($event) => onColumnsAsideMenuClick(v),
24714
+ onMouseenter: ($event) => onColumnsAsideMenuMouseenter(v, k),
24715
+ ref_for: true,
24716
+ ref: (el) => {
24717
+ if (el) columnsAsideOffsetTopRefs.value[k] = el;
24718
+ },
24719
+ class: normalizeClass({ "layout-columns-active": state.liIndex === k, "layout-columns-hover": state.liHoverIndex === k }),
24720
+ title: _ctx.$t(`message.menu.${v.meta.title}`)
24721
+ }, [
24722
+ !v.meta.isLink || v.meta.isLink && v.meta.isIframe ? (openBlock(), createElementBlock(
24723
+ "div",
24724
+ {
24725
+ key: 0,
24726
+ class: normalizeClass(unref(themeConfig).columnsAsideLayout)
24727
+ },
24728
+ [
24729
+ createVNode(_component_SvgIcon, {
24730
+ name: v.meta.icon
24731
+ }, null, 8, ["name"]),
24732
+ createElementVNode(
24733
+ "div",
24734
+ _hoisted_5$3,
24735
+ toDisplayString(_ctx.$t(`message.menu.${v.meta.title}`)),
24736
+ 1
24737
+ /* TEXT */
24738
+ )
24739
+ ],
24740
+ 2
24741
+ /* CLASS */
24742
+ )) : (openBlock(), createElementBlock(
24743
+ "div",
24744
+ {
24745
+ key: 1,
24746
+ class: normalizeClass(unref(themeConfig).columnsAsideLayout)
24747
+ },
24748
+ [
24749
+ createElementVNode("a", {
24750
+ href: v.meta.isLink,
24751
+ target: "_blank"
24752
+ }, [
24753
+ createVNode(_component_SvgIcon, {
24754
+ name: v.meta.icon
24755
+ }, null, 8, ["name"]),
24756
+ createElementVNode(
24757
+ "div",
24758
+ _hoisted_7$2,
24759
+ toDisplayString(_ctx.$t(`message.menu.${v.meta.title}`)),
24760
+ 1
24761
+ /* TEXT */
24762
+ )
24763
+ ], 8, _hoisted_6$2)
24764
+ ],
24765
+ 2
24766
+ /* CLASS */
24767
+ ))
24768
+ ], 42, _hoisted_4$3);
24769
+ }),
24770
+ 128
24771
+ /* KEYED_FRAGMENT */
24772
+ )),
24773
+ createElementVNode(
24774
+ "div",
24775
+ {
24776
+ ref_key: "columnsAsideActiveRef",
24777
+ ref: columnsAsideActiveRef,
24778
+ class: normalizeClass(unref(themeConfig).columnsAsideStyle)
24779
+ },
24780
+ null,
24781
+ 2
24782
+ /* CLASS */
24783
+ )
24784
+ ],
24785
+ 32
24786
+ /* NEED_HYDRATION */
24787
+ )
24788
+ ]),
24789
+ _: 1
24790
+ /* STABLE */
24791
+ })
24792
+ ]);
24793
+ };
24794
+ }
24795
+ });
24796
+
24797
+ var columnsAside = /*#__PURE__*/Object.freeze({
24798
+ __proto__: null,
24799
+ default: _sfc_main$f
24800
+ });
24801
+
24802
+ const _hoisted_1$e = ["src"];
24803
+ const _hoisted_2$8 = ["src"];
24804
+ var _sfc_main$e = /* @__PURE__ */ defineComponent({
24805
+ __name: "index",
24806
+ setup(__props) {
24807
+ const storesThemeConfig = useThemeConfig();
24808
+ const { themeConfig } = storeToRefs(storesThemeConfig);
24809
+ const setShowLogo = computed(() => {
24810
+ let { isCollapse, layout } = themeConfig.value;
24811
+ return !isCollapse || layout === "classic" || document.body.clientWidth < 1e3;
24812
+ });
24813
+ const showLogo = computed(() => {
24814
+ let { layout } = themeConfig.value;
24815
+ return layout !== "columns";
24816
+ });
24817
+ const onThemeConfigChange = () => {
24818
+ if (themeConfig.value.layout === "transverse") return false;
24819
+ themeConfig.value.isCollapse = !themeConfig.value.isCollapse;
24820
+ };
24821
+ return (_ctx, _cache) => {
24822
+ return setShowLogo.value ? (openBlock(), createElementBlock("div", {
24823
+ key: 0,
24824
+ class: "layout-logo",
24825
+ onClick: onThemeConfigChange
24826
+ }, [
24827
+ showLogo.value ? (openBlock(), createElementBlock("img", {
24828
+ key: 0,
24829
+ src: unref(themeConfig).logoUrl,
24830
+ class: "layout-logo-medium-img"
24831
+ }, null, 8, _hoisted_1$e)) : createCommentVNode("v-if", true),
24832
+ createElementVNode(
24833
+ "span",
24834
+ null,
24835
+ toDisplayString(unref(themeConfig).globalTitle),
24836
+ 1
24837
+ /* TEXT */
24838
+ )
24839
+ ])) : (openBlock(), createElementBlock("div", {
24840
+ key: 1,
24841
+ class: "layout-logo-size",
24842
+ onClick: onThemeConfigChange
24843
+ }, [
24844
+ createElementVNode("img", {
24845
+ src: unref(themeConfig).logoUrl,
24846
+ class: "layout-logo-size-img"
24847
+ }, null, 8, _hoisted_2$8)
24848
+ ]));
24849
+ };
24850
+ }
24851
+ });
24852
+
24853
+ var index$3 = /*#__PURE__*/Object.freeze({
24854
+ __proto__: null,
24855
+ default: _sfc_main$e
24856
+ });
24857
+
24858
+ const _hoisted_1$d = ["onClick"];
24859
+ var _sfc_main$d = /* @__PURE__ */ defineComponent({
24860
+ __name: "vertical",
24861
+ props: {
24862
+ // 菜单列表
24863
+ menuList: {
24864
+ type: Array,
24865
+ default: () => []
24866
+ }
24867
+ },
24868
+ setup(__props) {
24869
+ const SubItem = defineAsyncComponent(() => Promise.resolve().then(function () { return subItem; }));
24870
+ const props = __props;
24871
+ const storesThemeConfig = useThemeConfig();
24872
+ const { themeConfig } = storeToRefs(storesThemeConfig);
24873
+ const route = useRoute();
24874
+ const state = reactive({
24875
+ // 修复:
24876
+ defaultActive: route.meta.isDynamic ? route.meta.isDynamicPath : route.path,
24877
+ isCollapse: false
24878
+ });
24879
+ const menuLists = computed(() => {
24880
+ return props.menuList;
24881
+ });
24882
+ const getThemeConfig = computed(() => {
24883
+ return themeConfig.value;
24884
+ });
24885
+ const setParentHighlight = (currentRoute) => {
24886
+ const { path, meta } = currentRoute;
24887
+ const pathSplit = (meta == null ? void 0 : meta.isDynamic) ? meta.isDynamicPath.split("/") : path.split("/");
24888
+ if (pathSplit.length >= 4 && (meta == null ? void 0 : meta.isHide)) return pathSplit.splice(0, 3).join("/");
24889
+ else return path;
24890
+ };
24891
+ const onALinkClick = (val) => {
24892
+ other.handleOpenLink(val);
24893
+ };
24894
+ onMounted(() => {
24895
+ state.defaultActive = setParentHighlight(route);
24896
+ });
24897
+ onBeforeRouteUpdate((to) => {
24898
+ state.defaultActive = setParentHighlight(to);
24899
+ const clientWidth = document.body.clientWidth;
24900
+ if (clientWidth < 1e3) themeConfig.value.isCollapse = false;
24901
+ });
24902
+ watch(
24903
+ () => themeConfig.value.isCollapse,
24904
+ (isCollapse) => {
24905
+ document.body.clientWidth <= 1e3 ? state.isCollapse = false : state.isCollapse = isCollapse;
24906
+ },
24907
+ {
24908
+ immediate: true
24909
+ }
24910
+ );
24911
+ return (_ctx, _cache) => {
24912
+ const _component_SvgIcon = resolveComponent("SvgIcon");
24913
+ const _component_el_sub_menu = resolveComponent("el-sub-menu");
24914
+ const _component_el_menu_item = resolveComponent("el-menu-item");
24915
+ const _component_el_menu = resolveComponent("el-menu");
24916
+ return openBlock(), createBlock(_component_el_menu, {
24917
+ router: "",
24918
+ "default-active": state.defaultActive,
24919
+ "background-color": "transparent",
24920
+ collapse: state.isCollapse,
24921
+ "unique-opened": getThemeConfig.value.isUniqueOpened,
24922
+ "collapse-transition": false
24923
+ }, {
24924
+ default: withCtx(() => [
24925
+ (openBlock(true), createElementBlock(
24926
+ Fragment,
24927
+ null,
24928
+ renderList(menuLists.value, (val) => {
24929
+ return openBlock(), createElementBlock(
24930
+ Fragment,
24931
+ null,
24932
+ [
24933
+ val.children && val.children.length > 0 ? (openBlock(), createBlock(_component_el_sub_menu, {
24934
+ index: val.path,
24935
+ key: val.path
24936
+ }, {
24937
+ title: withCtx(() => [
24938
+ createVNode(_component_SvgIcon, {
24939
+ name: val.meta.icon
24940
+ }, null, 8, ["name"]),
24941
+ createCommentVNode(" <span>{{ $t(val.meta.title) }}</span> "),
24942
+ createElementVNode(
24943
+ "span",
24944
+ null,
24945
+ toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
24946
+ 1
24947
+ /* TEXT */
24948
+ )
24949
+ ]),
24950
+ default: withCtx(() => [
24951
+ createVNode(unref(SubItem), {
24952
+ chil: val.children
24953
+ }, null, 8, ["chil"])
24954
+ ]),
24955
+ _: 2
24956
+ /* DYNAMIC */
24957
+ }, 1032, ["index"])) : (openBlock(), createBlock(_component_el_menu_item, {
24958
+ index: val.path,
24959
+ key: val.path
24960
+ }, createSlots({
24961
+ default: withCtx(() => [
24962
+ createVNode(_component_SvgIcon, {
24963
+ name: val.meta.icon
24964
+ }, null, 8, ["name"])
24965
+ ]),
24966
+ _: 2
24967
+ /* DYNAMIC */
24968
+ }, [
24969
+ !val.meta.isLink || val.meta.isLink && val.meta.isIframe ? {
24970
+ name: "title",
24971
+ fn: withCtx(() => [
24972
+ createCommentVNode(" <span>{{ $t(val.meta.title) }}</span> "),
24973
+ createElementVNode(
24974
+ "span",
24975
+ null,
24976
+ toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
24977
+ 1
24978
+ /* TEXT */
24979
+ )
24980
+ ]),
24981
+ key: "0"
24982
+ } : {
24983
+ name: "title",
24984
+ fn: withCtx(() => [
24985
+ createElementVNode("a", {
24986
+ class: "w100",
24987
+ onClick: withModifiers(($event) => onALinkClick(val), ["prevent"])
24988
+ }, toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)), 9, _hoisted_1$d)
24989
+ ]),
24990
+ key: "1"
24991
+ }
24992
+ ]), 1032, ["index"]))
24993
+ ],
24994
+ 64
24995
+ /* STABLE_FRAGMENT */
24996
+ );
24997
+ }),
24998
+ 256
24999
+ /* UNKEYED_FRAGMENT */
25000
+ ))
25001
+ ]),
25002
+ _: 1
25003
+ /* STABLE */
25004
+ }, 8, ["default-active", "collapse", "unique-opened"]);
25005
+ };
25006
+ }
25007
+ });
25008
+
25009
+ var vertical = /*#__PURE__*/Object.freeze({
25010
+ __proto__: null,
25011
+ default: _sfc_main$d
25012
+ });
25013
+
25014
+ const _hoisted_1$c = { class: "layout-navbars-container" };
25015
+ var _sfc_main$c = /* @__PURE__ */ defineComponent({
25016
+ __name: "index",
25017
+ setup(__props) {
25018
+ const BreadcrumbIndex = defineAsyncComponent(() => Promise.resolve().then(function () { return index; }));
25019
+ const TagsView = defineAsyncComponent(() => Promise.resolve().then(function () { return tagsView; }));
25020
+ const storesThemeConfig = useThemeConfig();
25021
+ const { themeConfig } = storeToRefs(storesThemeConfig);
25022
+ const setShowTagsView = computed(() => {
25023
+ let { layout, isTagsview } = themeConfig.value;
25024
+ return layout !== "classic" && isTagsview;
25025
+ });
25026
+ return (_ctx, _cache) => {
25027
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
25028
+ !_ctx.$slots.breadcrumb ? (openBlock(), createBlock(unref(BreadcrumbIndex), { key: 0 }, {
25029
+ default: withCtx(() => [
25030
+ (openBlock(true), createElementBlock(
25031
+ Fragment,
25032
+ null,
25033
+ renderList(_ctx.$slots, (_, name) => {
25034
+ return renderSlot(_ctx.$slots, name, mergeProps({
25035
+ key: name,
25036
+ ref_for: true
25037
+ }, _ctx.$slots[name].props || {}));
25038
+ }),
25039
+ 128
25040
+ /* KEYED_FRAGMENT */
25041
+ ))
25042
+ ]),
25043
+ _: 3
25044
+ /* FORWARDED */
25045
+ })) : renderSlot(_ctx.$slots, "breadcrumb", { key: 1 }),
25046
+ setShowTagsView.value ? (openBlock(), createBlock(unref(TagsView), { key: 2 })) : createCommentVNode("v-if", true)
25047
+ ]);
25048
+ };
25049
+ }
25050
+ });
25051
+
25052
+ var index$2 = /*#__PURE__*/Object.freeze({
25053
+ __proto__: null,
25054
+ default: _sfc_main$c
25055
+ });
25056
+
25057
+ const _hoisted_1$b = { class: "layout-parent" };
25058
+ var _sfc_main$b = /* @__PURE__ */ defineComponent({
25059
+ __name: "parent",
25060
+ setup(__props) {
25061
+ const Iframes = defineAsyncComponent(() => Promise.resolve().then(function () { return iframes; }));
25062
+ const route = useRoute();
25063
+ const router = useRouter();
25064
+ const storesKeepAliveNames = useKeepALiveNames();
25065
+ const storesThemeConfig = useThemeConfig();
25066
+ const { keepAliveNames, cachedViews } = storeToRefs(storesKeepAliveNames);
25067
+ const { themeConfig } = storeToRefs(storesThemeConfig);
25068
+ const state = reactive({
25069
+ refreshRouterViewKey: "",
25070
+ // 非 iframe tagsview 右键菜单刷新时
25071
+ iframeRefreshKey: "",
25072
+ // iframe tagsview 右键菜单刷新时
25073
+ keepAliveNameList: [],
25074
+ iframeList: []
25075
+ });
25076
+ const setTransitionName = computed(() => {
25077
+ return themeConfig.value.animation;
25078
+ });
25079
+ const getKeepAliveNames = computed(() => {
25080
+ return themeConfig.value.isTagsview ? cachedViews.value : state.keepAliveNameList;
25081
+ });
25082
+ const isIframePage = computed(() => {
25083
+ return route.meta.isIframe;
25084
+ });
25085
+ const getIframeListRoutes = async () => {
25086
+ router.getRoutes().forEach((v) => {
25087
+ if (v.meta.isIframe) {
25088
+ v.meta.isIframeOpen = false;
25089
+ v.meta.loading = true;
25090
+ state.iframeList.push({ ...v });
25091
+ }
25092
+ });
25093
+ };
25094
+ onBeforeMount(() => {
25095
+ state.keepAliveNameList = keepAliveNames.value;
25096
+ emitter.on("onTagsViewRefreshRouterView", (fullPath) => {
25097
+ var _a;
25098
+ const cacheList = cachedViews.value;
25099
+ if (route.meta.isKeepAlive) cachedViews.value = (_a = cachedViews.value) == null ? void 0 : _a.filter((name) => route.name !== name);
25100
+ state.keepAliveNameList = keepAliveNames.value.filter((name) => route.name !== name);
25101
+ state.refreshRouterViewKey = "";
25102
+ state.iframeRefreshKey = "";
25103
+ nextTick(() => {
25104
+ if (route.meta.isKeepAlive) cachedViews.value = cacheList;
25105
+ state.keepAliveNameList = keepAliveNames.value;
25106
+ state.refreshRouterViewKey = fullPath;
25107
+ state.iframeRefreshKey = fullPath;
25108
+ });
25109
+ });
25110
+ });
25111
+ onMounted(() => {
25112
+ getIframeListRoutes();
25113
+ nextTick(() => {
25114
+ setTimeout(() => {
25115
+ if (themeConfig.value.isCacheTagsView) {
25116
+ let tagsViewArr = Session.get("tagsViewList") || [];
25117
+ cachedViews.value = tagsViewArr.filter((item) => {
25118
+ var _a;
25119
+ return (_a = item.meta) == null ? void 0 : _a.isKeepAlive;
25120
+ }).map((item) => item.name);
25121
+ }
25122
+ }, 0);
25123
+ });
25124
+ });
25125
+ onUnmounted(() => {
25126
+ emitter.off("onTagsViewRefreshRouterView", () => {
25127
+ });
25128
+ });
25129
+ watch(
25130
+ () => route.fullPath,
25131
+ () => {
25132
+ state.refreshRouterViewKey = decodeURI(route.fullPath);
25133
+ },
25134
+ {
25135
+ immediate: true
25136
+ }
25137
+ );
25138
+ return (_ctx, _cache) => {
25139
+ const _component_router_view = resolveComponent("router-view");
25140
+ return openBlock(), createElementBlock("div", _hoisted_1$b, [
25141
+ createVNode(_component_router_view, null, {
25142
+ default: withCtx(({ Component }) => [
25143
+ createVNode(Transition, {
25144
+ name: setTransitionName.value,
25145
+ mode: "out-in"
25146
+ }, {
25147
+ default: withCtx(() => [
25148
+ (openBlock(), createBlock(KeepAlive, { include: getKeepAliveNames.value }, [
25149
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent(Component), {
25150
+ key: state.refreshRouterViewKey,
25151
+ class: "w100"
25152
+ })), [
25153
+ [vShow, !isIframePage.value]
25154
+ ])
25155
+ ], 1032, ["include"]))
25156
+ ]),
25157
+ _: 2
25158
+ /* DYNAMIC */
25159
+ }, 1032, ["name"])
25160
+ ]),
25161
+ _: 1
25162
+ /* STABLE */
25163
+ }),
25164
+ createVNode(Transition, {
25165
+ name: setTransitionName.value,
25166
+ mode: "out-in",
25167
+ persisted: ""
25168
+ }, {
25169
+ default: withCtx(() => [
25170
+ withDirectives(createVNode(unref(Iframes), {
25171
+ class: "w100",
25172
+ refreshKey: state.iframeRefreshKey,
25173
+ name: setTransitionName.value,
25174
+ list: state.iframeList
25175
+ }, null, 8, ["refreshKey", "name", "list"]), [
25176
+ [vShow, isIframePage.value]
25177
+ ])
25178
+ ]),
25179
+ _: 1
25180
+ /* STABLE */
25181
+ }, 8, ["name"])
25182
+ ]);
25183
+ };
25184
+ }
25185
+ });
25186
+
25187
+ var parent = /*#__PURE__*/Object.freeze({
25188
+ __proto__: null,
25189
+ default: _sfc_main$b
25190
+ });
25191
+
25192
+ const _hoisted_1$a = { class: "layout-footer mb5" };
25193
+ const _hoisted_2$7 = { class: "layout-footer-warp" };
25194
+ var _sfc_main$a = /* @__PURE__ */ defineComponent({
25195
+ __name: "index",
25196
+ setup(__props) {
25197
+ const storesThemeConfig = useThemeConfig();
25198
+ const { themeConfig } = storeToRefs(storesThemeConfig);
25199
+ return (_ctx, _cache) => {
25200
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [
25201
+ createElementVNode("div", _hoisted_2$7, [
25202
+ createElementVNode(
25203
+ "div",
25204
+ null,
25205
+ toDisplayString(unref(themeConfig).globalTitle) + " " + toDisplayString(unref(themeConfig).copyright),
25206
+ 1
25207
+ /* TEXT */
25208
+ )
25209
+ ])
25210
+ ]);
25211
+ };
25212
+ }
25213
+ });
25214
+
25215
+ var index$1 = /*#__PURE__*/Object.freeze({
25216
+ __proto__: null,
25217
+ default: _sfc_main$a
25218
+ });
25219
+
25220
+ const _hoisted_1$9 = ["aria-hidden"];
25221
+ const _hoisted_2$6 = { class: "el-dropdown-menu" };
25222
+ const _hoisted_3$5 = ["onClick"];
25223
+ var _sfc_main$9 = /* @__PURE__ */ defineComponent({
25224
+ __name: "contextmenu",
25225
+ props: {
25226
+ dropdown: {
25227
+ type: Object,
25228
+ default: () => {
25229
+ return {
25230
+ x: 0,
25231
+ y: 0
25232
+ };
25233
+ }
25234
+ }
25235
+ },
25236
+ emits: ["currentContextmenuClick"],
25237
+ setup(__props, { expose: __expose, emit: __emit }) {
25238
+ const props = __props;
25239
+ const emit = __emit;
25240
+ const state = reactive({
25241
+ isShow: false,
25242
+ dropdownList: [
25243
+ { contextMenuClickId: 0, txt: "message.tagsView.refresh", affix: false, icon: "ele-RefreshRight" },
25244
+ { contextMenuClickId: 1, txt: "message.tagsView.close", affix: false, icon: "ele-Close" },
25245
+ { contextMenuClickId: 2, txt: "message.tagsView.closeOther", affix: false, icon: "ele-CircleClose" },
25246
+ { contextMenuClickId: 3, txt: "message.tagsView.closeAll", affix: false, icon: "ele-FolderDelete" },
25247
+ {
25248
+ contextMenuClickId: 4,
25249
+ txt: "message.tagsView.fullscreen",
25250
+ affix: false,
25251
+ icon: "iconfont icon-fullscreen"
25252
+ }
25253
+ ],
25254
+ item: {},
25255
+ arrowLeft: 10
25256
+ });
25257
+ const dropdowns = computed(() => {
25258
+ if (props.dropdown.x + 117 > document.documentElement.clientWidth) {
25259
+ return {
25260
+ x: document.documentElement.clientWidth - 117 - 5,
25261
+ y: props.dropdown.y
25262
+ };
25263
+ } else {
25264
+ return props.dropdown;
25265
+ }
25266
+ });
25267
+ const onCurrentContextmenuClick = (contextMenuClickId) => {
25268
+ emit("currentContextmenuClick", Object.assign({}, { contextMenuClickId }, state.item));
25269
+ };
25270
+ const openContextmenu = (item) => {
25271
+ var _a;
25272
+ state.item = item;
25273
+ ((_a = item.meta) == null ? void 0 : _a.isAffix) ? state.dropdownList[1].affix = true : state.dropdownList[1].affix = false;
25274
+ closeContextmenu();
25275
+ setTimeout(() => {
25276
+ state.isShow = true;
25277
+ }, 10);
25278
+ };
25279
+ const closeContextmenu = () => {
25280
+ state.isShow = false;
25281
+ };
25282
+ onMounted(() => {
25283
+ document.body.addEventListener("click", closeContextmenu);
25284
+ });
25285
+ onUnmounted(() => {
25286
+ document.body.removeEventListener("click", closeContextmenu);
25287
+ });
25288
+ watch(
25289
+ () => props.dropdown,
25290
+ ({ x }) => {
25291
+ if (x + 117 > document.documentElement.clientWidth) state.arrowLeft = 117 - (document.documentElement.clientWidth - x);
25292
+ else state.arrowLeft = 10;
25293
+ },
25294
+ {
25295
+ deep: true
25296
+ }
25297
+ );
25298
+ __expose({
25299
+ openContextmenu
25300
+ });
25301
+ return (_ctx, _cache) => {
25302
+ const _component_SvgIcon = resolveComponent("SvgIcon");
25303
+ return openBlock(), createBlock(Transition, {
25304
+ name: "el-collapse-transition",
25305
+ persisted: ""
25306
+ }, {
25307
+ default: withCtx(() => [
25308
+ withDirectives((openBlock(), createElementBlock("div", {
25309
+ "aria-hidden": state.isShow ? false : true,
25310
+ class: "el-dropdown__popper el-popper is-light is-pure custom-contextmenu",
25311
+ role: "tooltip",
25312
+ "data-popper-placement": "bottom",
25313
+ style: normalizeStyle(`top: ${dropdowns.value.y + 5}px;left: ${dropdowns.value.x}px;`),
25314
+ key: Math.random()
25315
+ }, [
25316
+ createElementVNode("ul", _hoisted_2$6, [
25317
+ (openBlock(true), createElementBlock(
25318
+ Fragment,
25319
+ null,
25320
+ renderList(state.dropdownList, (v, k) => {
25321
+ return openBlock(), createElementBlock(
25322
+ Fragment,
25323
+ null,
25324
+ [
25325
+ !v.affix ? (openBlock(), createElementBlock("li", {
25326
+ class: "el-dropdown-menu__item",
25327
+ "aria-disabled": "false",
25328
+ tabindex: "-1",
25329
+ key: k,
25330
+ onClick: ($event) => onCurrentContextmenuClick(v.contextMenuClickId)
25331
+ }, [
25332
+ createVNode(_component_SvgIcon, {
25333
+ name: v.icon
25334
+ }, null, 8, ["name"]),
25335
+ createElementVNode(
25336
+ "span",
25337
+ null,
25338
+ toDisplayString(_ctx.$t(v.txt)),
25339
+ 1
25340
+ /* TEXT */
25341
+ )
25342
+ ], 8, _hoisted_3$5)) : createCommentVNode("v-if", true)
25343
+ ],
25344
+ 64
25345
+ /* STABLE_FRAGMENT */
25346
+ );
25347
+ }),
25348
+ 256
25349
+ /* UNKEYED_FRAGMENT */
25350
+ ))
25351
+ ]),
25352
+ createElementVNode(
25353
+ "div",
25354
+ {
25355
+ class: "el-popper__arrow",
25356
+ style: normalizeStyle({ left: `${state.arrowLeft}px` })
25357
+ },
25358
+ null,
25359
+ 4
25360
+ /* STYLE */
25361
+ )
25362
+ ], 12, _hoisted_1$9)), [
25363
+ [vShow, state.isShow]
25364
+ ])
25365
+ ]),
25366
+ _: 1
25367
+ /* STABLE */
25368
+ });
25369
+ };
25370
+ }
25371
+ });
25372
+
25373
+ var contextmenu = /*#__PURE__*/Object.freeze({
25374
+ __proto__: null,
25375
+ default: _sfc_main$9
25376
+ });
25377
+
25378
+ const _hoisted_1$8 = ["onClick"];
25379
+ var _sfc_main$8 = /* @__PURE__ */ defineComponent({
25380
+ __name: "subItem",
25381
+ props: {
25382
+ // 菜单列表
25383
+ chil: {
25384
+ type: Array,
25385
+ default: () => []
25386
+ }
25387
+ },
25388
+ setup(__props) {
25389
+ const props = __props;
25390
+ const chils = computed(() => {
25391
+ return props.chil;
25392
+ });
25393
+ const onALinkClick = (val) => {
25394
+ other.handleOpenLink(val);
25395
+ };
25396
+ return (_ctx, _cache) => {
25397
+ const _component_SvgIcon = resolveComponent("SvgIcon");
25398
+ const _component_sub_item = resolveComponent("sub-item", true);
25399
+ const _component_el_sub_menu = resolveComponent("el-sub-menu");
25400
+ const _component_el_menu_item = resolveComponent("el-menu-item");
25401
+ return openBlock(true), createElementBlock(
25402
+ Fragment,
25403
+ null,
25404
+ renderList(chils.value, (val) => {
25405
+ return openBlock(), createElementBlock(
25406
+ Fragment,
25407
+ null,
25408
+ [
25409
+ val.children && val.children.length > 0 ? (openBlock(), createBlock(_component_el_sub_menu, {
25410
+ index: val.path,
25411
+ key: val.path
25412
+ }, {
25413
+ title: withCtx(() => [
25414
+ createVNode(_component_SvgIcon, {
25415
+ name: val.meta.icon,
25416
+ style: { "font-size": "16px" }
25417
+ }, null, 8, ["name"]),
25418
+ createElementVNode(
25419
+ "span",
25420
+ null,
25421
+ toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
25422
+ 1
25423
+ /* TEXT */
25424
+ )
25425
+ ]),
25426
+ default: withCtx(() => [
25427
+ createVNode(_component_sub_item, {
25428
+ chil: val.children
25429
+ }, null, 8, ["chil"])
25430
+ ]),
25431
+ _: 2
25432
+ /* DYNAMIC */
25433
+ }, 1032, ["index"])) : (openBlock(), createBlock(_component_el_menu_item, {
25434
+ index: val.path,
25435
+ key: val.path
25436
+ }, {
25437
+ default: withCtx(() => [
25438
+ !val.meta.isLink || val.meta.isLink && val.meta.isIframe ? (openBlock(), createElementBlock(
25439
+ Fragment,
25440
+ { key: 0 },
25441
+ [
25442
+ createVNode(_component_SvgIcon, {
25443
+ name: val.meta.icon,
25444
+ style: { "font-size": "16px" }
25445
+ }, null, 8, ["name"]),
25446
+ createElementVNode(
25447
+ "span",
25448
+ null,
25449
+ toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
25450
+ 1
25451
+ /* TEXT */
25452
+ )
25453
+ ],
25454
+ 64
25455
+ /* STABLE_FRAGMENT */
25456
+ )) : (openBlock(), createElementBlock("a", {
25457
+ key: 1,
25458
+ class: "w100",
25459
+ onClick: withModifiers(($event) => onALinkClick(val), ["prevent"])
25460
+ }, [
25461
+ createVNode(_component_SvgIcon, {
25462
+ name: val.meta.icon,
25463
+ style: { "font-size": "16px" }
25464
+ }, null, 8, ["name"]),
25465
+ createTextVNode(
25466
+ " " + toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
25467
+ 1
25468
+ /* TEXT */
25469
+ )
25470
+ ], 8, _hoisted_1$8))
25471
+ ]),
25472
+ _: 2
25473
+ /* DYNAMIC */
25474
+ }, 1032, ["index"]))
25475
+ ],
25476
+ 64
25477
+ /* STABLE_FRAGMENT */
25478
+ );
25479
+ }),
25480
+ 256
25481
+ /* UNKEYED_FRAGMENT */
25482
+ );
25483
+ };
25484
+ }
25485
+ });
25486
+
25487
+ var subItem = /*#__PURE__*/Object.freeze({
25488
+ __proto__: null,
25489
+ default: _sfc_main$8
25490
+ });
25491
+
25492
+ const _hoisted_1$7 = { class: "layout-navbars-breadcrumb-index" };
25493
+ var _sfc_main$7 = /* @__PURE__ */ defineComponent({
25494
+ __name: "index",
25495
+ setup(__props) {
25496
+ const Breadcrumb = defineAsyncComponent(() => Promise.resolve().then(function () { return breadcrumb; }));
25497
+ const User = defineAsyncComponent(() => Promise.resolve().then(function () { return user; }));
25498
+ const Logo = defineAsyncComponent(() => Promise.resolve().then(function () { return index$3; }));
25499
+ const Horizontal = defineAsyncComponent(() => Promise.resolve().then(function () { return horizontal; }));
25500
+ const stores = useRoutesList();
25501
+ const storesThemeConfig = useThemeConfig();
25502
+ const { themeConfig } = storeToRefs(storesThemeConfig);
25503
+ const { routesList } = storeToRefs(stores);
25504
+ const route = useRoute();
25505
+ const state = reactive({
25506
+ menuList: []
25507
+ });
25508
+ const setIsShowLogo = computed(() => {
25509
+ let { isShowLogo, layout } = themeConfig.value;
25510
+ return isShowLogo && layout === "classic" || isShowLogo && layout === "transverse";
25511
+ });
25512
+ const isLayoutTransverse = computed(() => {
25513
+ let { layout, isClassicSplitMenu } = themeConfig.value;
25514
+ return layout === "transverse" || isClassicSplitMenu && layout === "classic";
25515
+ });
25516
+ const setFilterRoutes = () => {
25517
+ let { layout, isClassicSplitMenu } = themeConfig.value;
25518
+ if (layout === "classic" && isClassicSplitMenu) {
25519
+ state.menuList = delClassicChildren(filterRoutesFun(routesList.value));
25520
+ const resData = setSendClassicChildren(route.path);
25521
+ emitter.emit("setSendClassicChildren", resData);
25522
+ } else {
25523
+ state.menuList = filterRoutesFun(routesList.value);
25524
+ }
25525
+ };
25526
+ const delClassicChildren = (arr) => {
25527
+ arr.map((v) => {
25528
+ if (v.children) delete v.children;
25529
+ });
25530
+ return arr;
25531
+ };
25532
+ const filterRoutesFun = (arr) => {
25533
+ return arr.filter((item) => {
25534
+ var _a;
25535
+ return !((_a = item.meta) == null ? void 0 : _a.isHide);
25536
+ }).map((item) => {
25537
+ item = Object.assign({}, item);
25538
+ if (item.children) item.children = filterRoutesFun(item.children);
25539
+ return item;
25540
+ });
25541
+ };
25542
+ const setSendClassicChildren = (path) => {
25543
+ const currentPathSplit = path.split("/");
25544
+ let currentData = { children: [] };
25545
+ filterRoutesFun(routesList.value).map((v, k) => {
25546
+ if (v.path === `/${currentPathSplit[1]}`) {
25547
+ v["k"] = k;
25548
+ currentData["item"] = { ...v };
25549
+ currentData["children"] = [{ ...v }];
25550
+ if (v.children) currentData["children"] = v.children;
25551
+ }
25552
+ });
25553
+ return currentData;
25554
+ };
25555
+ onMounted(() => {
25556
+ setFilterRoutes();
25557
+ emitter.on("getBreadcrumbIndexSetFilterRoutes", () => {
25558
+ setFilterRoutes();
25559
+ });
25560
+ });
25561
+ onUnmounted(() => {
25562
+ emitter.off("getBreadcrumbIndexSetFilterRoutes", () => {
25563
+ });
25564
+ });
25565
+ return (_ctx, _cache) => {
25566
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
25567
+ setIsShowLogo.value ? (openBlock(), createBlock(unref(Logo), { key: 0 })) : createCommentVNode("v-if", true),
25568
+ createVNode(unref(Breadcrumb)),
25569
+ isLayoutTransverse.value ? (openBlock(), createBlock(unref(Horizontal), {
25570
+ key: 1,
25571
+ menuList: state.menuList
25572
+ }, null, 8, ["menuList"])) : createCommentVNode("v-if", true),
25573
+ !_ctx.$slots.user ? (openBlock(), createBlock(unref(User), { key: 2 }, {
25574
+ default: withCtx(() => [
25575
+ (openBlock(true), createElementBlock(
25576
+ Fragment,
25577
+ null,
25578
+ renderList(_ctx.$slots, (_, name) => {
25579
+ return renderSlot(_ctx.$slots, name, mergeProps({
25580
+ key: name,
25581
+ ref_for: true
25582
+ }, _ctx.$slots[name].props || {}));
25583
+ }),
25584
+ 128
25585
+ /* KEYED_FRAGMENT */
25586
+ ))
25587
+ ]),
25588
+ _: 3
25589
+ /* FORWARDED */
25590
+ })) : renderSlot(_ctx.$slots, "user", { key: 3 })
25591
+ ]);
25592
+ };
25593
+ }
25594
+ });
25595
+
25596
+ var index = /*#__PURE__*/Object.freeze({
25597
+ __proto__: null,
25598
+ default: _sfc_main$7
25599
+ });
25600
+
25601
+ const _hoisted_1$6 = { class: "layout-padding layout-padding-unset layout-iframe" };
25602
+ const _hoisted_2$5 = { class: "layout-padding-auto layout-padding-view" };
25603
+ const _hoisted_3$4 = ["src", "data-url"];
25604
+ var _sfc_main$6 = /* @__PURE__ */ defineComponent({
25605
+ __name: "iframes",
25606
+ props: {
25607
+ // 刷新 iframe
25608
+ refreshKey: {
25609
+ type: String,
25610
+ default: () => ""
25611
+ },
25612
+ // 过渡动画 name
25613
+ name: {
25614
+ type: String,
25615
+ default: () => "slide-right"
25616
+ },
25617
+ // iframe 列表
25618
+ list: {
25619
+ type: Array,
25620
+ default: () => []
25621
+ }
25622
+ },
25623
+ setup(__props) {
25624
+ const props = __props;
25625
+ const iframeRef = ref();
25626
+ const route = useRoute();
25627
+ const setIframeList = computed(() => {
25628
+ return props.list.filter((v) => {
25629
+ var _a;
25630
+ return (_a = v.meta) == null ? void 0 : _a.isIframeOpen;
25631
+ });
25632
+ });
25633
+ const getRoutePath = computed(() => {
25634
+ return route.path;
25635
+ });
25636
+ const closeIframeLoading = (val, item) => {
25637
+ nextTick(() => {
25638
+ if (!iframeRef.value) return false;
25639
+ iframeRef.value.forEach((v) => {
25640
+ if (v.dataset.url === val) {
25641
+ v.onload = () => {
25642
+ var _a;
25643
+ if (((_a = item.meta) == null ? void 0 : _a.isIframeOpen) && item.meta.loading) item.meta.loading = false;
25644
+ };
25645
+ }
25646
+ });
25647
+ });
25648
+ };
25649
+ watch(
25650
+ () => route.fullPath,
25651
+ (val) => {
25652
+ const item = props.list.find((v) => v.path === val);
25653
+ if (!item) return false;
25654
+ if (!item.meta.isIframeOpen) item.meta.isIframeOpen = true;
25655
+ closeIframeLoading(val, item);
25656
+ },
25657
+ {
25658
+ immediate: true
25659
+ }
25660
+ );
25661
+ watch(
25662
+ () => props.refreshKey,
25663
+ () => {
25664
+ const item = props.list.find((v) => v.path === route.path);
25665
+ if (!item) return false;
25666
+ if (item.meta.isIframeOpen) item.meta.isIframeOpen = false;
25667
+ setTimeout(() => {
25668
+ item.meta.isIframeOpen = true;
25669
+ item.meta.loading = true;
25670
+ closeIframeLoading(route.fullPath, item);
25671
+ });
25672
+ },
25673
+ {
25674
+ deep: true
25675
+ }
25676
+ );
25677
+ return (_ctx, _cache) => {
25678
+ const _directive_loading = resolveDirective("loading");
25679
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
25680
+ createElementVNode("div", _hoisted_2$5, [
25681
+ (openBlock(true), createElementBlock(
25682
+ Fragment,
25683
+ null,
25684
+ renderList(setIframeList.value, (v) => {
25685
+ return withDirectives((openBlock(), createElementBlock("div", {
25686
+ class: "w100",
25687
+ key: v.path,
25688
+ "element-loading-background": "white"
25689
+ }, [
25690
+ createVNode(TransitionGroup, { name: __props.name }, {
25691
+ default: withCtx(() => [
25692
+ withDirectives((openBlock(), createElementBlock("iframe", {
25693
+ src: `${v.meta.isLink}${v.meta.isLink.indexOf("?") > 0 ? "&" : "?"}token=${unref(getToken)()}`,
25694
+ key: v.path,
25695
+ frameborder: "0",
25696
+ height: "100%",
25697
+ width: "100%",
25698
+ style: { "position": "absolute" },
25699
+ "data-url": v.path,
25700
+ ref_for: true,
25701
+ ref_key: "iframeRef",
25702
+ ref: iframeRef
25703
+ }, null, 8, _hoisted_3$4)), [
25704
+ [vShow, getRoutePath.value === v.path]
25705
+ ])
25706
+ ]),
25707
+ _: 2
25708
+ /* DYNAMIC */
25709
+ }, 1032, ["name"])
25710
+ ])), [
25711
+ [_directive_loading, v.meta.loading]
25712
+ ]);
25713
+ }),
25714
+ 128
25715
+ /* KEYED_FRAGMENT */
25716
+ ))
25717
+ ])
25718
+ ]);
25719
+ };
25720
+ }
25721
+ });
25722
+
25723
+ var iframes = /*#__PURE__*/Object.freeze({
25724
+ __proto__: null,
25725
+ default: _sfc_main$6
25726
+ });
25727
+
25728
+ const _hoisted_1$5 = {
25729
+ key: 0,
25730
+ class: "layout-navbars-breadcrumb"
25731
+ };
25732
+ const _hoisted_2$4 = {
25733
+ key: 0,
25734
+ class: "layout-navbars-breadcrumb-span"
25735
+ };
25736
+ const _hoisted_3$3 = { key: 1 };
25737
+ const _hoisted_4$2 = { key: 2 };
25738
+ const _hoisted_5$2 = ["onClick"];
25739
+ var _sfc_main$5 = /* @__PURE__ */ defineComponent({
25740
+ __name: "breadcrumb",
25741
+ setup(__props) {
25742
+ const stores = useRoutesList();
25743
+ const storesThemeConfig = useThemeConfig();
25744
+ const { themeConfig } = storeToRefs(storesThemeConfig);
25745
+ const { routesList } = storeToRefs(stores);
25746
+ const route = useRoute();
25747
+ const router = useRouter();
25748
+ const state = reactive({
25749
+ breadcrumbList: [],
25750
+ routeSplit: [],
25751
+ routeSplitFirst: "",
25752
+ routeSplitIndex: 1
25753
+ });
25754
+ const isShowBreadcrumb = computed(() => {
25755
+ initRouteSplit(route);
25756
+ const { layout, isBreadcrumb } = themeConfig.value;
25757
+ if (layout === "classic" || layout === "transverse") return false;
25758
+ else return isBreadcrumb ? true : false;
25759
+ });
25760
+ const onBreadcrumbClick = (v) => {
25761
+ const { redirect, path } = v;
25762
+ if (redirect) router.push(redirect);
25763
+ };
25764
+ const onThemeConfigChange = () => {
25765
+ themeConfig.value.isCollapse = !themeConfig.value.isCollapse;
25766
+ setLocalThemeConfig();
25767
+ };
25768
+ const setLocalThemeConfig = () => {
25769
+ Local.remove("themeConfig");
25770
+ Local.set("themeConfig", themeConfig.value);
25771
+ };
25772
+ const getBreadcrumbList = (arr) => {
25773
+ arr.forEach((item) => {
25774
+ state.routeSplit.forEach((v, k, arrs) => {
25775
+ if (state.routeSplitFirst === item.path) {
25776
+ state.routeSplitFirst += `/${arrs[state.routeSplitIndex]}`;
25777
+ !state.breadcrumbList.find((a) => a.path === item.path) && state.breadcrumbList.push(item);
25778
+ state.routeSplitIndex++;
25779
+ if (item.children) getBreadcrumbList(item.children);
25780
+ }
25781
+ });
25782
+ });
25783
+ };
25784
+ const initRouteSplit = (toRoute) => {
25785
+ if (!themeConfig.value.isBreadcrumb) return false;
25786
+ state.breadcrumbList = [];
25787
+ state.routeSplit = toRoute.path.split("/");
25788
+ state.routeSplit.shift();
25789
+ state.routeSplitFirst = `/${state.routeSplit[0]}`;
25790
+ state.routeSplitIndex = 1;
25791
+ getBreadcrumbList(routesList.value);
25792
+ if (toRoute.name === "home" || toRoute.name === "notFound" && state.breadcrumbList.length > 1) state.breadcrumbList.shift();
25793
+ if (state.breadcrumbList.length > 0) state.breadcrumbList[state.breadcrumbList.length - 1].meta.tagsViewName = other.setTagsViewNameI18n(route);
25794
+ };
25795
+ onMounted(() => {
25796
+ initRouteSplit(route);
25797
+ });
25798
+ onBeforeRouteUpdate((to) => {
25799
+ initRouteSplit(to);
25800
+ });
25801
+ return (_ctx, _cache) => {
25802
+ const _component_SvgIcon = resolveComponent("SvgIcon");
25803
+ const _component_el_breadcrumb_item = resolveComponent("el-breadcrumb-item");
25804
+ const _component_el_breadcrumb = resolveComponent("el-breadcrumb");
25805
+ return isShowBreadcrumb.value ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
25806
+ createVNode(_component_SvgIcon, {
25807
+ class: "layout-navbars-breadcrumb-icon",
25808
+ name: unref(themeConfig).isCollapse ? "ele-Expand" : "ele-Fold",
25809
+ size: 16,
25810
+ onClick: onThemeConfigChange
25811
+ }, null, 8, ["name"]),
25812
+ createVNode(_component_el_breadcrumb, { class: "layout-navbars-breadcrumb-hide" }, {
25813
+ default: withCtx(() => [
25814
+ createVNode(TransitionGroup, { name: "breadcrumb" }, {
25815
+ default: withCtx(() => [
25816
+ (openBlock(true), createElementBlock(
25817
+ Fragment,
25818
+ null,
25819
+ renderList(state.breadcrumbList, (v, k) => {
25820
+ return openBlock(), createBlock(
25821
+ _component_el_breadcrumb_item,
25822
+ {
25823
+ key: v.path
25824
+ },
25825
+ {
25826
+ default: withCtx(() => [
25827
+ k === state.breadcrumbList.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_2$4, [
25828
+ unref(themeConfig).isBreadcrumbIcon ? (openBlock(), createBlock(_component_SvgIcon, {
25829
+ key: 0,
25830
+ name: v.meta.icon,
25831
+ class: "layout-navbars-breadcrumb-iconfont"
25832
+ }, null, 8, ["name"])) : createCommentVNode("v-if", true),
25833
+ v.meta.title ? (openBlock(), createElementBlock(
25834
+ "div",
25835
+ _hoisted_3$3,
25836
+ toDisplayString(_ctx.$t(`message.menu.${v.meta.title}`)),
25837
+ 1
25838
+ /* TEXT */
25839
+ )) : (openBlock(), createElementBlock(
25840
+ "div",
25841
+ _hoisted_4$2,
25842
+ toDisplayString(v.meta.tagsViewName),
25843
+ 1
25844
+ /* TEXT */
25845
+ ))
25846
+ ])) : (openBlock(), createElementBlock("a", {
25847
+ key: 1,
25848
+ onClick: withModifiers(($event) => onBreadcrumbClick(v), ["prevent"]),
25849
+ style: { "display": "flex" }
25850
+ }, [
25851
+ unref(themeConfig).isBreadcrumbIcon ? (openBlock(), createBlock(_component_SvgIcon, {
25852
+ key: 0,
25853
+ name: v.meta.icon,
25854
+ class: "layout-navbars-breadcrumb-iconfont"
25855
+ }, null, 8, ["name"])) : createCommentVNode("v-if", true),
25856
+ createTextVNode(
25857
+ toDisplayString(_ctx.$t(`message.menu.${v.meta.title}`)),
25858
+ 1
25859
+ /* TEXT */
25860
+ )
25861
+ ], 8, _hoisted_5$2))
25862
+ ]),
25863
+ _: 2
25864
+ /* DYNAMIC */
25865
+ },
25866
+ 1024
25867
+ /* DYNAMIC_SLOTS */
25868
+ );
25869
+ }),
25870
+ 128
25871
+ /* KEYED_FRAGMENT */
25872
+ ))
25873
+ ]),
25874
+ _: 1
25875
+ /* STABLE */
25876
+ })
25877
+ ]),
25878
+ _: 1
25879
+ /* STABLE */
25880
+ })
25881
+ ])) : createCommentVNode("v-if", true);
25882
+ };
25883
+ }
25884
+ });
25885
+
25886
+ var breadcrumb = /*#__PURE__*/Object.freeze({
25887
+ __proto__: null,
25888
+ default: _sfc_main$5
25889
+ });
25890
+
25891
+ const _hoisted_1$4 = { class: "layout-navbars-breadcrumb-user-icon" };
25892
+ const _hoisted_2$3 = ["title"];
25893
+ const _hoisted_3$2 = { class: "layout-navbars-breadcrumb-user-icon" };
25894
+ const _hoisted_4$1 = { class: "flex items-center" };
25895
+ const _hoisted_5$1 = { class: "mr-2" };
25896
+ const _hoisted_6$1 = { style: { "margin-left": "10px" } };
25897
+ const _hoisted_7$1 = ["title"];
25898
+ const _hoisted_8$1 = { class: "layout-navbars-breadcrumb-user-icon" };
25899
+ const _hoisted_9$1 = ["title"];
25900
+ const _hoisted_10$1 = { class: "layout-navbars-breadcrumb-user-link" };
25901
+ const _hoisted_11$1 = ["src"];
25902
+ var _sfc_main$4 = /* @__PURE__ */ defineComponent({
25903
+ __name: "user",
25904
+ setup(__props) {
25905
+ const UserNews = defineAsyncComponent(() => Promise.resolve().then(function () { return userNews; }));
25906
+ const Search = defineAsyncComponent(() => Promise.resolve().then(function () { return search; }));
25907
+ const UpgradeInfo = defineAsyncComponent(() => Promise.resolve().then(function () { return upgradeInfo; }));
25908
+ const routeStores = useRoutesList();
25909
+ const { locale, t } = useI18n();
25910
+ const router = useRouter();
25911
+ const stores = useUserInfo();
25912
+ const storesThemeConfig = useThemeConfig();
25913
+ const { userInfos } = storeToRefs(stores);
25914
+ const { themeConfig } = storeToRefs(storesThemeConfig);
25915
+ const searchRef = ref();
25916
+ const upgradeInfoRef = ref();
25917
+ const currentCountryCode = ref(getCountryCode(themeConfig.value.globalI18n));
25918
+ const state = reactive({
25919
+ isScreenfull: false,
25920
+ disabledI18n: "zh-cn",
25921
+ disabledSize: "large",
25922
+ noticeList: [],
25923
+ // 站内信列表
25924
+ tagsRefsIndex: 0,
25925
+ tagsViewList: [],
25926
+ tagsViewRoutesList: []
25927
+ });
25928
+ const events = useFormEvents();
25929
+ const layoutUserFlexNum = computed(() => {
25930
+ let num = "";
25931
+ const { layout, isClassicSplitMenu } = themeConfig.value;
25932
+ const layoutArr = ["defaults", "columns"];
25933
+ if (layoutArr.includes(layout) || layout === "classic" && !isClassicSplitMenu) num = "1";
25934
+ else num = "";
25935
+ return num;
25936
+ });
25937
+ const hasUnreadNotice = computed(() => {
25938
+ return state.noticeList.some((r) => r.readStatus == void 0 || r.readStatus == 0);
25939
+ });
25940
+ const onScreenfullClick = () => {
25941
+ if (!screenfull.isEnabled) {
25942
+ ElMessage.warning("\u6682\u4E0D\u4E0D\u652F\u6301\u5168\u5C4F");
25943
+ return false;
25944
+ }
25945
+ screenfull.toggle();
25946
+ screenfull.on("change", () => {
25947
+ if (screenfull.isFullscreen) state.isScreenfull = true;
25948
+ else state.isScreenfull = false;
25949
+ });
25950
+ };
25951
+ const onLayoutSetingClick = () => {
25952
+ emitter.emit("openSettingsDrawer");
25953
+ };
25954
+ const onHandleCommandClick = (path) => {
25955
+ if (path === "clearCache") {
25956
+ Session.clear();
25957
+ Local.clear();
25958
+ window.location.reload();
25959
+ } else if (path === "lockScreen") {
25960
+ Local.remove("themeConfig");
25961
+ themeConfig.value.isLockScreen = true;
25962
+ themeConfig.value.lockScreenTime = 1;
25963
+ Local.set("themeConfig", themeConfig.value);
25964
+ } else if (path === "logOut") {
25965
+ ElMessageBox({
25966
+ closeOnClickModal: false,
25967
+ closeOnPressEscape: false,
25968
+ title: t("message.user.logOutTitle"),
25969
+ message: t("message.user.logOutMessage"),
25970
+ type: "warning",
25971
+ showCancelButton: true,
25972
+ confirmButtonText: t("message.user.logOutConfirm"),
25973
+ cancelButtonText: t("message.user.logOutCancel"),
25974
+ // buttonSize: 'default',
25975
+ beforeClose: async (action, instance, done) => {
25976
+ if (action === "confirm") {
25977
+ instance.confirmButtonLoading = true;
25978
+ instance.confirmButtonText = t("message.user.logOutExit");
25979
+ try {
25980
+ await useBaseApi("sysAuth").post(null, "logout");
25981
+ } catch (error) {
25982
+ console.error(error);
25983
+ }
25984
+ instance.confirmButtonLoading = false;
25985
+ done();
25986
+ } else {
25987
+ done();
25988
+ }
25989
+ }
25990
+ }).then(async () => {
25991
+ await signalR.stop();
25992
+ clearAccessTokens();
25993
+ }).catch(() => {
25994
+ });
25995
+ } else {
25996
+ router.push(path);
25997
+ }
25998
+ };
25999
+ const onSearchClick = () => {
26000
+ searchRef.value.openSearch();
26001
+ };
26002
+ const onOnlineUserClick = () => {
26003
+ events.onFormDialogOpen({
26004
+ name: "onlineUsers"
26005
+ });
26006
+ };
26007
+ const onComponentSizeChange = (size) => {
26008
+ Local.remove("themeConfig");
26009
+ themeConfig.value.globalComponentSize = size;
26010
+ Local.set("themeConfig", themeConfig.value);
26011
+ initI18nOrSize("globalComponentSize", "disabledSize");
26012
+ };
26013
+ const onLanguageChange = async (lang) => {
26014
+ Local.remove("themeConfig");
26015
+ themeConfig.value.globalI18n = lang;
26016
+ Local.set("themeConfig", themeConfig.value);
26017
+ currentCountryCode.value = getCountryCode(lang);
26018
+ locale.value = lang;
26019
+ other.useTitle();
26020
+ initI18nOrSize("globalI18n", "disabledI18n");
26021
+ refreshCurrentTabpage();
26022
+ if (lang == "en") window.$changeLang("en");
26023
+ else window.$changeLang("zhcn");
26024
+ await useBaseApi("sysCommon").post(lang, "setCulture");
26025
+ };
26026
+ const onChatClick = () => {
26027
+ router.push({
26028
+ path: "/llm/aiChat"
26029
+ });
26030
+ };
26031
+ const refreshCurrentTabpage = () => {
26032
+ emitter.emit("onCurrentContextmenuClick", { ...routeStores.currentRoute, contextMenuClickId: 0 });
26033
+ };
26034
+ const initI18nOrSize = (value, attr) => {
26035
+ state[attr] = Local.get("themeConfig")[value];
26036
+ };
26037
+ onMounted(async () => {
26038
+ var _a, _b;
26039
+ if (Local.get("themeConfig")) {
26040
+ initI18nOrSize("globalComponentSize", "disabledSize");
26041
+ initI18nOrSize("globalI18n", "disabledI18n");
26042
+ }
26043
+ if (Push.Permission.GRANTED) {
26044
+ Push.Permission.request(void 0, void 0);
26045
+ }
26046
+ document.addEventListener("visibilitychange", () => {
26047
+ if (!document.hidden) {
26048
+ Push.clear();
26049
+ }
26050
+ });
26051
+ var res = await useBaseApi("sysNotice").get(null, "unReadList");
26052
+ state.noticeList = (_a = res.data.result) != null ? _a : [];
26053
+ signalR.on("PublicNotice", receiveNotice);
26054
+ var res1 = await useBaseApi("sysUpgrade").get(null, "lastUnRead");
26055
+ if (res1.data.result != null) {
26056
+ (_b = upgradeInfoRef.value) == null ? void 0 : _b.openDialog(res1.data.result);
26057
+ }
26058
+ await changePassword();
26059
+ });
26060
+ const receiveNotice = (msg) => {
26061
+ state.noticeList.unshift(msg);
26062
+ ElNotification({
26063
+ title: "\u63D0\u793A",
26064
+ message: "\u60A8\u6709\u4E00\u6761\u65B0\u6D88\u606F...",
26065
+ type: "info",
26066
+ position: "bottom-right"
26067
+ });
26068
+ Push.create("\u63D0\u793A", {
26069
+ body: "\u4F60\u6709\u4E00\u6761\u65B0\u7684\u6D88\u606F",
26070
+ icon: "logo.png",
26071
+ // public目录下的
26072
+ timeout: 4500
26073
+ // 通知显示时间,单位为毫秒
26074
+ });
26075
+ };
26076
+ const changePassword = async () => {
26077
+ var _a, _b;
26078
+ if (userInfos.value.accountType == 999) return;
26079
+ if (themeConfig.value.forceChangePassword == void 0) {
26080
+ while (themeConfig.value.forceChangePassword != void 0) {
26081
+ await new Promise((resolve) => setTimeout(resolve, 100));
26082
+ }
26083
+ }
26084
+ const enabledForceChangePassword = (_a = themeConfig.value.forceChangePassword) != null ? _a : false;
26085
+ if (enabledForceChangePassword && !userInfos.value.lastChangePasswordTime) {
26086
+ events.onFormDialogOpen({
26087
+ name: "changePassword"
26088
+ });
26089
+ return;
26090
+ }
26091
+ const passwordExpirationTime = (_b = themeConfig.value.passwordExpirationTime) != null ? _b : 0;
26092
+ if (passwordExpirationTime > 0) {
26093
+ const res = await useBaseApi("sysUser").post(null, "verifyPwdExpirationTime");
26094
+ if (!res.data.result) {
26095
+ events.onFormDialogOpen({
26096
+ name: "changePassword"
26097
+ });
26098
+ }
26099
+ }
26100
+ };
26101
+ return (_ctx, _cache) => {
26102
+ const _component_el_dropdown_item = resolveComponent("el-dropdown-item");
26103
+ const _component_el_dropdown_menu = resolveComponent("el-dropdown-menu");
26104
+ const _component_el_dropdown = resolveComponent("el-dropdown");
26105
+ const _component_ele_ChatDotRound = resolveComponent("ele-ChatDotRound");
26106
+ const _component_el_icon = resolveComponent("el-icon");
26107
+ const _component_ele_Search = resolveComponent("ele-Search");
26108
+ const _component_ele_Bell = resolveComponent("ele-Bell");
26109
+ const _component_el_badge = resolveComponent("el-badge");
26110
+ const _component_el_popover = resolveComponent("el-popover");
26111
+ const _component_ele_User = resolveComponent("ele-User");
26112
+ const _component_el_tooltip = resolveComponent("el-tooltip");
26113
+ const _component_ele_ArrowDown = resolveComponent("ele-ArrowDown");
26114
+ return openBlock(), createElementBlock(
26115
+ "div",
26116
+ {
26117
+ class: "layout-navbars-breadcrumb-user pr15",
26118
+ style: normalizeStyle({ flex: layoutUserFlexNum.value })
26119
+ },
26120
+ [
26121
+ renderSlot(_ctx.$slots, "user-before"),
26122
+ createVNode(_component_el_dropdown, {
26123
+ "show-timeout": 70,
26124
+ "hide-timeout": 50,
26125
+ trigger: "click",
26126
+ onCommand: onComponentSizeChange
26127
+ }, {
26128
+ dropdown: withCtx(() => [
26129
+ createVNode(_component_el_dropdown_menu, null, {
26130
+ default: withCtx(() => [
26131
+ createVNode(_component_el_dropdown_item, {
26132
+ command: "large",
26133
+ disabled: state.disabledSize === "large"
26134
+ }, {
26135
+ default: withCtx(() => [
26136
+ createTextVNode(
26137
+ toDisplayString(_ctx.$t("message.user.dropdownLarge")),
26138
+ 1
26139
+ /* TEXT */
26140
+ )
26141
+ ]),
26142
+ _: 1
26143
+ /* STABLE */
26144
+ }, 8, ["disabled"]),
26145
+ createVNode(_component_el_dropdown_item, {
26146
+ command: "default",
26147
+ disabled: state.disabledSize === "default"
26148
+ }, {
26149
+ default: withCtx(() => [
26150
+ createTextVNode(
26151
+ toDisplayString(_ctx.$t("message.user.dropdownDefault")),
26152
+ 1
26153
+ /* TEXT */
26154
+ )
26155
+ ]),
26156
+ _: 1
26157
+ /* STABLE */
26158
+ }, 8, ["disabled"]),
26159
+ createVNode(_component_el_dropdown_item, {
26160
+ command: "small",
26161
+ disabled: state.disabledSize === "small"
26162
+ }, {
26163
+ default: withCtx(() => [
26164
+ createTextVNode(
26165
+ toDisplayString(_ctx.$t("message.user.dropdownSmall")),
26166
+ 1
26167
+ /* TEXT */
26168
+ )
26169
+ ]),
26170
+ _: 1
26171
+ /* STABLE */
26172
+ }, 8, ["disabled"])
26173
+ ]),
26174
+ _: 1
26175
+ /* STABLE */
26176
+ })
26177
+ ]),
26178
+ default: withCtx(() => [
26179
+ createElementVNode("div", _hoisted_1$4, [
26180
+ createElementVNode("i", {
26181
+ class: "iconfont icon-ziti",
26182
+ title: _ctx.$t("message.user.title0")
26183
+ }, null, 8, _hoisted_2$3)
26184
+ ])
26185
+ ]),
26186
+ _: 1
26187
+ /* STABLE */
26188
+ }),
26189
+ unref(themeConfig).i18NSwitch ? (openBlock(), createBlock(_component_el_dropdown, {
26190
+ key: 0,
26191
+ "show-timeout": 70,
26192
+ "hide-timeout": 50,
26193
+ trigger: "click",
26194
+ onCommand: onLanguageChange
26195
+ }, {
26196
+ dropdown: withCtx(() => [
26197
+ createVNode(_component_el_dropdown_menu, null, {
26198
+ default: withCtx(() => [
26199
+ (openBlock(true), createElementBlock(
26200
+ Fragment,
26201
+ null,
26202
+ renderList(unref(languageList), (value, key) => {
26203
+ return openBlock(), createBlock(_component_el_dropdown_item, {
26204
+ key,
26205
+ command: key,
26206
+ disabled: state.disabledI18n === key
26207
+ }, {
26208
+ default: withCtx(() => [
26209
+ createElementVNode("div", _hoisted_4$1, [
26210
+ createElementVNode("div", _hoisted_5$1, [
26211
+ createElementVNode(
26212
+ "span",
26213
+ {
26214
+ class: normalizeClass(`fi fi-${unref(getCountryCode)(key)}`)
26215
+ },
26216
+ null,
26217
+ 2
26218
+ /* CLASS */
26219
+ )
26220
+ ]),
26221
+ createElementVNode(
26222
+ "div",
26223
+ _hoisted_6$1,
26224
+ toDisplayString(value),
26225
+ 1
26226
+ /* TEXT */
26227
+ )
26228
+ ])
26229
+ ]),
26230
+ _: 2
26231
+ /* DYNAMIC */
26232
+ }, 1032, ["command", "disabled"]);
26233
+ }),
26234
+ 128
26235
+ /* KEYED_FRAGMENT */
26236
+ ))
26237
+ ]),
26238
+ _: 1
26239
+ /* STABLE */
26240
+ })
26241
+ ]),
26242
+ default: withCtx(() => [
26243
+ createElementVNode("div", _hoisted_3$2, [
26244
+ createElementVNode(
26245
+ "span",
26246
+ {
26247
+ class: normalizeClass(`fi fi-${currentCountryCode.value}`)
26248
+ },
26249
+ null,
26250
+ 2
26251
+ /* CLASS */
26252
+ )
26253
+ ])
26254
+ ]),
26255
+ _: 1
26256
+ /* STABLE */
26257
+ })) : createCommentVNode("v-if", true),
26258
+ createElementVNode("div", {
26259
+ class: "layout-navbars-breadcrumb-user-icon",
26260
+ onClick: onChatClick
26261
+ }, [
26262
+ createVNode(_component_el_icon, {
26263
+ title: _ctx.$t("message.user.chat")
26264
+ }, {
26265
+ default: withCtx(() => [
26266
+ createVNode(_component_ele_ChatDotRound)
26267
+ ]),
26268
+ _: 1
26269
+ /* STABLE */
26270
+ }, 8, ["title"])
26271
+ ]),
26272
+ createElementVNode("div", {
26273
+ class: "layout-navbars-breadcrumb-user-icon",
26274
+ onClick: onSearchClick
26275
+ }, [
26276
+ createVNode(_component_el_icon, {
26277
+ title: _ctx.$t("message.user.title2")
26278
+ }, {
26279
+ default: withCtx(() => [
26280
+ createVNode(_component_ele_Search)
26281
+ ]),
26282
+ _: 1
26283
+ /* STABLE */
26284
+ }, 8, ["title"])
26285
+ ]),
26286
+ createElementVNode("div", {
26287
+ class: "layout-navbars-breadcrumb-user-icon",
26288
+ onClick: onLayoutSetingClick
26289
+ }, [
26290
+ createElementVNode("i", {
26291
+ class: "icon-skin iconfont",
26292
+ title: _ctx.$t("message.user.title3")
26293
+ }, null, 8, _hoisted_7$1)
26294
+ ]),
26295
+ createElementVNode("div", _hoisted_8$1, [
26296
+ createVNode(_component_el_popover, {
26297
+ placement: "bottom",
26298
+ trigger: "hover",
26299
+ transition: "el-zoom-in-top",
26300
+ width: 400,
26301
+ persistent: false
26302
+ }, {
26303
+ reference: withCtx(() => [
26304
+ createVNode(_component_el_badge, { "is-dot": hasUnreadNotice.value }, {
26305
+ default: withCtx(() => [
26306
+ createVNode(_component_el_icon, {
26307
+ title: _ctx.$t("message.user.title4")
26308
+ }, {
26309
+ default: withCtx(() => [
26310
+ createVNode(_component_ele_Bell)
26311
+ ]),
26312
+ _: 1
26313
+ /* STABLE */
26314
+ }, 8, ["title"])
26315
+ ]),
26316
+ _: 1
26317
+ /* STABLE */
26318
+ }, 8, ["is-dot"])
26319
+ ]),
26320
+ default: withCtx(() => [
26321
+ createVNode(unref(UserNews), {
26322
+ noticeList: state.noticeList
26323
+ }, null, 8, ["noticeList"])
26324
+ ]),
26325
+ _: 1
26326
+ /* STABLE */
26327
+ })
26328
+ ]),
26329
+ createElementVNode("div", {
26330
+ class: "layout-navbars-breadcrumb-user-icon",
26331
+ onClick: onScreenfullClick
26332
+ }, [
26333
+ createElementVNode("i", {
26334
+ class: normalizeClass(["iconfont", !state.isScreenfull ? "icon-fullscreen" : "icon-tuichuquanping"]),
26335
+ title: state.isScreenfull ? _ctx.$t("message.user.title6") : _ctx.$t("message.user.title5")
26336
+ }, null, 10, _hoisted_9$1)
26337
+ ]),
26338
+ createElementVNode("div", {
26339
+ class: "layout-navbars-breadcrumb-user-icon mr10",
26340
+ onClick: onOnlineUserClick
26341
+ }, [
26342
+ createVNode(_component_el_icon, {
26343
+ title: _ctx.$t("message.list.onlineUser")
26344
+ }, {
26345
+ default: withCtx(() => [
26346
+ createVNode(_component_ele_User)
26347
+ ]),
26348
+ _: 1
26349
+ /* STABLE */
26350
+ }, 8, ["title"])
26351
+ ]),
26352
+ _ctx.$slots["user-dropdown"] ? renderSlot(_ctx.$slots, "user-dropdown", { key: 1 }, () => [
26353
+ renderSlot(_ctx.$slots, "user-dropdown")
26354
+ ]) : (openBlock(), createBlock(_component_el_dropdown, {
26355
+ key: 2,
26356
+ "show-timeout": 70,
26357
+ "hide-timeout": 50,
26358
+ size: "large",
26359
+ onCommand: onHandleCommandClick
26360
+ }, {
26361
+ dropdown: withCtx(() => [
26362
+ createVNode(_component_el_dropdown_menu, null, {
26363
+ default: withCtx(() => [
26364
+ createCommentVNode(` <el-dropdown-item command="/dashboard/home">{{ $t('message.user.dropdown1') }}</el-dropdown-item> `),
26365
+ createVNode(_component_el_dropdown_item, {
26366
+ icon: unref(Avatar),
26367
+ command: "/system/userCenter"
26368
+ }, {
26369
+ default: withCtx(() => [
26370
+ createTextVNode(
26371
+ toDisplayString(_ctx.$t("message.user.dropdown2")),
26372
+ 1
26373
+ /* TEXT */
26374
+ )
26375
+ ]),
26376
+ _: 1
26377
+ /* STABLE */
26378
+ }, 8, ["icon"]),
26379
+ createVNode(_component_el_dropdown_item, {
26380
+ icon: unref(Loading),
26381
+ command: "clearCache"
26382
+ }, {
26383
+ default: withCtx(() => [
26384
+ createTextVNode(
26385
+ toDisplayString(_ctx.$t("message.user.dropdown3")),
26386
+ 1
26387
+ /* TEXT */
26388
+ )
26389
+ ]),
26390
+ _: 1
26391
+ /* STABLE */
26392
+ }, 8, ["icon"]),
26393
+ createVNode(_component_el_dropdown_item, {
26394
+ icon: unref(Lock),
26395
+ divided: "",
26396
+ command: "lockScreen"
26397
+ }, {
26398
+ default: withCtx(() => [
26399
+ createTextVNode(
26400
+ toDisplayString(_ctx.$t("message.layout.threeIsLockScreen")),
26401
+ 1
26402
+ /* TEXT */
26403
+ )
26404
+ ]),
26405
+ _: 1
26406
+ /* STABLE */
26407
+ }, 8, ["icon"]),
26408
+ createVNode(_component_el_dropdown_item, {
26409
+ icon: unref(CircleCloseFilled),
26410
+ divided: "",
26411
+ command: "logOut"
26412
+ }, {
26413
+ default: withCtx(() => [
26414
+ createTextVNode(
26415
+ toDisplayString(_ctx.$t("message.user.dropdown5")),
26416
+ 1
26417
+ /* TEXT */
26418
+ )
26419
+ ]),
26420
+ _: 1
26421
+ /* STABLE */
26422
+ }, 8, ["icon"])
26423
+ ]),
26424
+ _: 1
26425
+ /* STABLE */
26426
+ })
26427
+ ]),
26428
+ default: withCtx(() => [
26429
+ createElementVNode("span", _hoisted_10$1, [
26430
+ createVNode(_component_el_tooltip, {
26431
+ effect: "dark",
26432
+ placement: "left"
26433
+ }, {
26434
+ content: withCtx(() => [
26435
+ createTextVNode(
26436
+ toDisplayString(_ctx.$t("message.list.account")) + "\uFF1A" + toDisplayString(unref(userInfos).account),
26437
+ 1
26438
+ /* TEXT */
26439
+ ),
26440
+ _cache[0] || (_cache[0] = createElementVNode(
26441
+ "br",
26442
+ null,
26443
+ null,
26444
+ -1
26445
+ /* CACHED */
26446
+ )),
26447
+ createTextVNode(
26448
+ " " + toDisplayString(_ctx.$t("message.list.realName")) + "\uFF1A" + toDisplayString(unref(userInfos).realName),
26449
+ 1
26450
+ /* TEXT */
26451
+ ),
26452
+ _cache[1] || (_cache[1] = createElementVNode(
26453
+ "br",
26454
+ null,
26455
+ null,
26456
+ -1
26457
+ /* CACHED */
26458
+ )),
26459
+ createTextVNode(
26460
+ " " + toDisplayString(_ctx.$t("message.list.phone")) + "\uFF1A" + toDisplayString(unref(userInfos).phone),
26461
+ 1
26462
+ /* TEXT */
26463
+ ),
26464
+ _cache[2] || (_cache[2] = createElementVNode(
26465
+ "br",
26466
+ null,
26467
+ null,
26468
+ -1
26469
+ /* CACHED */
26470
+ )),
26471
+ createTextVNode(
26472
+ " " + toDisplayString(_ctx.$t("message.list.email")) + "\uFF1A" + toDisplayString(unref(userInfos).email),
26473
+ 1
26474
+ /* TEXT */
26475
+ ),
26476
+ _cache[3] || (_cache[3] = createElementVNode(
26477
+ "br",
26478
+ null,
26479
+ null,
26480
+ -1
26481
+ /* CACHED */
26482
+ )),
26483
+ createTextVNode(
26484
+ " " + toDisplayString(_ctx.$t("message.list.orgName")) + "\uFF1A" + toDisplayString(unref(userInfos).orgName),
26485
+ 1
26486
+ /* TEXT */
26487
+ ),
26488
+ _cache[4] || (_cache[4] = createElementVNode(
26489
+ "br",
26490
+ null,
26491
+ null,
26492
+ -1
26493
+ /* CACHED */
26494
+ )),
26495
+ createTextVNode(
26496
+ " " + toDisplayString(_ctx.$t("message.list.positionText")) + "\uFF1A" + toDisplayString(unref(userInfos).posName),
26497
+ 1
26498
+ /* TEXT */
26499
+ ),
26500
+ _cache[5] || (_cache[5] = createElementVNode(
26501
+ "br",
26502
+ null,
26503
+ null,
26504
+ -1
26505
+ /* CACHED */
26506
+ ))
26507
+ ]),
26508
+ default: withCtx(() => [
26509
+ createElementVNode("img", {
26510
+ src: unref(userInfos).avatar,
26511
+ class: "layout-navbars-breadcrumb-user-link-photo mr5"
26512
+ }, null, 8, _hoisted_11$1)
26513
+ ]),
26514
+ _: 1
26515
+ /* STABLE */
26516
+ }),
26517
+ createTextVNode(
26518
+ " " + toDisplayString(unref(userInfos).realName == "" ? unref(userInfos).account : unref(userInfos).realName) + " ",
26519
+ 1
26520
+ /* TEXT */
26521
+ ),
26522
+ createVNode(_component_el_icon, { class: "el-icon--right" }, {
26523
+ default: withCtx(() => [
26524
+ createVNode(_component_ele_ArrowDown)
26525
+ ]),
26526
+ _: 1
26527
+ /* STABLE */
26528
+ })
26529
+ ])
26530
+ ]),
26531
+ _: 1
26532
+ /* STABLE */
26533
+ })),
26534
+ createVNode(
26535
+ unref(Search),
26536
+ {
26537
+ ref_key: "searchRef",
26538
+ ref: searchRef
26539
+ },
26540
+ null,
26541
+ 512
26542
+ /* NEED_PATCH */
26543
+ ),
26544
+ createCommentVNode(' <OnlineUser ref="onlineUserRef" /> '),
26545
+ createCommentVNode(' <ChangePassword ref="changePasswordRef" /> '),
26546
+ createVNode(
26547
+ unref(UpgradeInfo),
26548
+ {
26549
+ ref_key: "upgradeInfoRef",
26550
+ ref: upgradeInfoRef
26551
+ },
26552
+ null,
26553
+ 512
26554
+ /* NEED_PATCH */
26555
+ ),
26556
+ renderSlot(_ctx.$slots, "user-after")
26557
+ ],
26558
+ 4
26559
+ /* STYLE */
26560
+ );
26561
+ };
26562
+ }
26563
+ });
26564
+
26565
+ var user = /*#__PURE__*/Object.freeze({
26566
+ __proto__: null,
26567
+ default: _sfc_main$4
26568
+ });
26569
+
26570
+ const _hoisted_1$3 = { class: "el-menu-horizontal-warp" };
26571
+ const _hoisted_2$2 = ["onClick"];
26572
+ var _sfc_main$3 = /* @__PURE__ */ defineComponent({
26573
+ __name: "horizontal",
26574
+ props: {
26575
+ // 菜单列表
26576
+ menuList: {
26577
+ type: Array,
26578
+ default: () => []
26579
+ }
26580
+ },
26581
+ setup(__props) {
26582
+ const SubItem = defineAsyncComponent(() => Promise.resolve().then(function () { return subItem; }));
26583
+ const props = __props;
26584
+ const stores = useRoutesList();
26585
+ const storesThemeConfig = useThemeConfig();
26586
+ const { routesList } = storeToRefs(stores);
26587
+ const { themeConfig } = storeToRefs(storesThemeConfig);
26588
+ const route = useRoute();
26589
+ const state = reactive({
26590
+ defaultActive: ""
26591
+ });
26592
+ const menuLists = computed(() => {
26593
+ return props.menuList;
26594
+ });
26595
+ const filterRoutesFun = (arr) => {
26596
+ return arr.filter((item) => {
26597
+ var _a;
26598
+ return !((_a = item.meta) == null ? void 0 : _a.isHide);
26599
+ }).map((item) => {
26600
+ item = Object.assign({}, item);
26601
+ if (item.children) item.children = filterRoutesFun(item.children);
26602
+ return item;
26603
+ });
26604
+ };
26605
+ const setSendClassicChildren = (path) => {
26606
+ const currentPathSplit = path.split("/");
26607
+ let currentData = { children: [] };
26608
+ filterRoutesFun(routesList.value).map((v, k) => {
26609
+ if (v.path === `/${currentPathSplit[1]}`) {
26610
+ v["k"] = k;
26611
+ currentData["item"] = { ...v };
26612
+ currentData["children"] = [{ ...v }];
26613
+ if (v.children) currentData["children"] = v.children;
26614
+ }
26615
+ });
26616
+ return currentData;
26617
+ };
26618
+ const setCurrentRouterHighlight = (currentRoute) => {
26619
+ const { path, meta } = currentRoute;
26620
+ if (themeConfig.value.layout === "classic") {
26621
+ state.defaultActive = `/${path == null ? void 0 : path.split("/")[1]}`;
26622
+ } else {
26623
+ const pathSplit = (meta == null ? void 0 : meta.isDynamic) ? meta.isDynamicPath.split("/") : path.split("/");
26624
+ if (pathSplit.length >= 4 && (meta == null ? void 0 : meta.isHide)) state.defaultActive = pathSplit.splice(0, 3).join("/");
26625
+ else state.defaultActive = path;
26626
+ }
26627
+ };
26628
+ const onALinkClick = (val) => {
26629
+ other.handleOpenLink(val);
26630
+ };
26631
+ onBeforeMount(() => {
26632
+ setCurrentRouterHighlight(route);
26633
+ });
26634
+ onBeforeRouteUpdate((to) => {
26635
+ setCurrentRouterHighlight(to);
26636
+ let { layout, isClassicSplitMenu } = themeConfig.value;
26637
+ if (layout === "classic" && isClassicSplitMenu) {
26638
+ emitter.emit("setSendClassicChildren", setSendClassicChildren(to.path));
26639
+ }
26640
+ });
26641
+ return (_ctx, _cache) => {
26642
+ const _component_SvgIcon = resolveComponent("SvgIcon");
26643
+ const _component_el_sub_menu = resolveComponent("el-sub-menu");
26644
+ const _component_el_menu_item = resolveComponent("el-menu-item");
26645
+ const _component_el_menu = resolveComponent("el-menu");
26646
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [
26647
+ createVNode(_component_el_menu, {
26648
+ router: "",
26649
+ "default-active": state.defaultActive,
26650
+ "background-color": "transparent",
26651
+ mode: "horizontal"
26652
+ }, {
26653
+ default: withCtx(() => [
26654
+ (openBlock(true), createElementBlock(
26655
+ Fragment,
26656
+ null,
26657
+ renderList(menuLists.value, (val) => {
26658
+ return openBlock(), createElementBlock(
26659
+ Fragment,
26660
+ null,
26661
+ [
26662
+ val.children && val.children.length > 0 ? (openBlock(), createBlock(_component_el_sub_menu, {
26663
+ index: val.path,
26664
+ key: val.path
26665
+ }, {
26666
+ title: withCtx(() => [
26667
+ createVNode(_component_SvgIcon, {
26668
+ name: val.meta.icon
26669
+ }, null, 8, ["name"]),
26670
+ createElementVNode(
26671
+ "span",
26672
+ null,
26673
+ toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
26674
+ 1
26675
+ /* TEXT */
26676
+ )
26677
+ ]),
26678
+ default: withCtx(() => [
26679
+ createVNode(unref(SubItem), {
26680
+ chil: val.children
26681
+ }, null, 8, ["chil"])
26682
+ ]),
26683
+ _: 2
26684
+ /* DYNAMIC */
26685
+ }, 1032, ["index"])) : (openBlock(), createBlock(_component_el_menu_item, {
26686
+ index: val.path,
26687
+ key: val.path
26688
+ }, createSlots({
26689
+ _: 2
26690
+ /* DYNAMIC */
26691
+ }, [
26692
+ !val.meta.isLink || val.meta.isLink && val.meta.isIframe ? {
26693
+ name: "title",
26694
+ fn: withCtx(() => [
26695
+ createVNode(_component_SvgIcon, {
26696
+ name: val.meta.icon
26697
+ }, null, 8, ["name"]),
26698
+ createTextVNode(
26699
+ " " + toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
26700
+ 1
26701
+ /* TEXT */
26702
+ )
26703
+ ]),
26704
+ key: "0"
26705
+ } : {
26706
+ name: "title",
26707
+ fn: withCtx(() => [
26708
+ createElementVNode("a", {
26709
+ class: "w100",
26710
+ onClick: withModifiers(($event) => onALinkClick(val), ["prevent"])
26711
+ }, [
26712
+ createVNode(_component_SvgIcon, {
26713
+ name: val.meta.icon
26714
+ }, null, 8, ["name"]),
26715
+ createTextVNode(
26716
+ " " + toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
26717
+ 1
26718
+ /* TEXT */
26719
+ )
26720
+ ], 8, _hoisted_2$2)
26721
+ ]),
26722
+ key: "1"
26723
+ }
26724
+ ]), 1032, ["index"]))
26725
+ ],
26726
+ 64
26727
+ /* STABLE_FRAGMENT */
26728
+ );
26729
+ }),
26730
+ 256
26731
+ /* UNKEYED_FRAGMENT */
26732
+ ))
26733
+ ]),
26734
+ _: 1
26735
+ /* STABLE */
26736
+ }, 8, ["default-active"])
26737
+ ]);
26738
+ };
26739
+ }
26740
+ });
26741
+
26742
+ var horizontal = /*#__PURE__*/Object.freeze({
26743
+ __proto__: null,
26744
+ default: _sfc_main$3
26745
+ });
26746
+
26747
+ const _hoisted_1$2 = { class: "user-news-container" };
26748
+ const _hoisted_2$1 = { style: { "margin-left": "5px" } };
26749
+ const _hoisted_3$1 = { class: "notice-box" };
26750
+ const _hoisted_4 = ["onClick"];
26751
+ const _hoisted_5 = { class: "notice-item-icon" };
26752
+ const _hoisted_6 = { class: "notice-title" };
26753
+ const _hoisted_7 = { class: "notice-content" };
26754
+ const _hoisted_8 = { class: "notice-time" };
26755
+ const _hoisted_9 = { style: { "margin-left": "5px" } };
26756
+ const _hoisted_10 = {
26757
+ class: "notice-box",
26758
+ style: { "height": "435px" }
26759
+ };
26760
+ const _hoisted_11 = { style: { "color": "#fff" } };
26761
+ const _hoisted_12 = { class: "w-e-text-container" };
26762
+ const _hoisted_13 = ["innerHTML"];
26763
+ const _hoisted_14 = { class: "dialog-footer" };
26764
+ var _sfc_main$2 = /* @__PURE__ */ defineComponent({
26765
+ __name: "userNews",
26766
+ props: {
26767
+ noticeList: Array
26768
+ },
26769
+ setup(__props) {
26770
+ const { removeHtmlSub } = commonFunction();
26771
+ const state = reactive({
26772
+ dialogVisible: false,
26773
+ content: ""
26774
+ });
26775
+ const goToNotice = () => {
26776
+ router.push("/dashboard/notice");
26777
+ };
26778
+ const viewNoticeDetail = async (notice) => {
26779
+ state.content = notice.content;
26780
+ state.dialogVisible = true;
26781
+ notice.readStatus = 1;
26782
+ await useBaseApi("sysNotice").post({ id: notice.id }, "setRead");
26783
+ };
26784
+ return (_ctx, _cache) => {
26785
+ const _component_ele_Bell = resolveComponent("ele-Bell");
26786
+ const _component_el_icon = resolveComponent("el-icon");
26787
+ const _component_ele_Notification = resolveComponent("ele-Notification");
26788
+ const _component_ele_Message = resolveComponent("ele-Message");
26789
+ const _component_el_empty = resolveComponent("el-empty");
26790
+ const _component_el_tab_pane = resolveComponent("el-tab-pane");
26791
+ const _component_ele_Position = resolveComponent("ele-Position");
26792
+ const _component_el_tabs = resolveComponent("el-tabs");
26793
+ const _component_el_button = resolveComponent("el-button");
26794
+ const _component_el_dialog = resolveComponent("el-dialog");
26795
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [
26796
+ createVNode(_component_el_tabs, {
26797
+ stretch: "",
26798
+ class: "content-box"
26799
+ }, {
26800
+ default: withCtx(() => [
26801
+ createVNode(_component_el_tab_pane, {
26802
+ label: _ctx.$t("message.list.messageInbox")
26803
+ }, {
26804
+ label: withCtx(() => [
26805
+ createVNode(_component_el_icon, null, {
26806
+ default: withCtx(() => [
26807
+ createVNode(_component_ele_Bell)
26808
+ ]),
26809
+ _: 1
26810
+ /* STABLE */
26811
+ }),
26812
+ createElementVNode(
26813
+ "span",
26814
+ _hoisted_2$1,
26815
+ toDisplayString(_ctx.$t("message.list.messageInbox")),
26816
+ 1
26817
+ /* TEXT */
26818
+ )
26819
+ ]),
26820
+ default: withCtx(() => [
26821
+ createElementVNode("div", _hoisted_3$1, [
26822
+ __props.noticeList.length > 0 ? (openBlock(true), createElementBlock(
26823
+ Fragment,
26824
+ { key: 0 },
26825
+ renderList(__props.noticeList, (v, k) => {
26826
+ return withDirectives((openBlock(), createElementBlock("div", {
26827
+ class: "notice-item",
26828
+ key: k,
26829
+ onClick: ($event) => viewNoticeDetail(v)
26830
+ }, [
26831
+ createElementVNode("div", _hoisted_5, [
26832
+ createVNode(
26833
+ _component_el_icon,
26834
+ {
26835
+ size: "24",
26836
+ color: "var(--el-color-primary)"
26837
+ },
26838
+ {
26839
+ default: withCtx(() => [
26840
+ v.type == 1 ? (openBlock(), createBlock(_component_ele_Notification, { key: 0 })) : (openBlock(), createBlock(_component_ele_Message, { key: 1 }))
26841
+ ]),
26842
+ _: 2
26843
+ /* DYNAMIC */
26844
+ },
26845
+ 1024
26846
+ /* DYNAMIC_SLOTS */
26847
+ )
26848
+ ]),
26849
+ createElementVNode("div", null, [
26850
+ createElementVNode(
26851
+ "div",
26852
+ _hoisted_6,
26853
+ toDisplayString(v.title),
26854
+ 1
26855
+ /* TEXT */
26856
+ ),
26857
+ createElementVNode(
26858
+ "div",
26859
+ _hoisted_7,
26860
+ toDisplayString(unref(removeHtmlSub)(v.content)),
26861
+ 1
26862
+ /* TEXT */
26863
+ ),
26864
+ createElementVNode(
26865
+ "div",
26866
+ _hoisted_8,
26867
+ toDisplayString(v.publicTime),
26868
+ 1
26869
+ /* TEXT */
26870
+ )
26871
+ ])
26872
+ ], 8, _hoisted_4)), [
26873
+ [vShow, v.readStatus == 1 ? false : true]
26874
+ ]);
26875
+ }),
26876
+ 128
26877
+ /* KEYED_FRAGMENT */
26878
+ )) : (openBlock(), createBlock(_component_el_empty, {
26879
+ key: 1,
26880
+ description: _ctx.$t("message.list.empty"),
26881
+ style: { "height": "85%" }
26882
+ }, null, 8, ["description"]))
26883
+ ]),
26884
+ __props.noticeList.length > 0 ? (openBlock(), createElementBlock(
26885
+ "div",
26886
+ {
26887
+ key: 0,
26888
+ class: "notice-foot",
26889
+ onClick: goToNotice
26890
+ },
26891
+ toDisplayString(_ctx.$t("message.list.goToNotice")),
26892
+ 1
26893
+ /* TEXT */
26894
+ )) : createCommentVNode("v-if", true)
26895
+ ]),
26896
+ _: 1
26897
+ /* STABLE */
26898
+ }, 8, ["label"]),
26899
+ createVNode(_component_el_tab_pane, {
26900
+ label: _ctx.$t("message.list.my")
26901
+ }, {
26902
+ label: withCtx(() => [
26903
+ createVNode(_component_el_icon, null, {
26904
+ default: withCtx(() => [
26905
+ createVNode(_component_ele_Position)
26906
+ ]),
26907
+ _: 1
26908
+ /* STABLE */
26909
+ }),
26910
+ createElementVNode(
26911
+ "span",
26912
+ _hoisted_9,
26913
+ toDisplayString(_ctx.$t("message.list.my")),
26914
+ 1
26915
+ /* TEXT */
26916
+ )
26917
+ ]),
26918
+ default: withCtx(() => [
26919
+ createElementVNode("div", _hoisted_10, [
26920
+ createVNode(_component_el_empty, {
26921
+ description: _ctx.$t("message.list.empty"),
26922
+ style: { "height": "85%" }
26923
+ }, null, 8, ["description"])
26924
+ ])
26925
+ ]),
26926
+ _: 1
26927
+ /* STABLE */
26928
+ }, 8, ["label"])
26929
+ ]),
26930
+ _: 1
26931
+ /* STABLE */
26932
+ }),
26933
+ createVNode(_component_el_dialog, {
26934
+ modelValue: state.dialogVisible,
26935
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.dialogVisible = $event),
26936
+ draggable: "",
26937
+ width: "769px"
26938
+ }, {
26939
+ header: withCtx(() => [
26940
+ createElementVNode("div", _hoisted_11, [
26941
+ createVNode(_component_el_icon, {
26942
+ size: "16",
26943
+ style: { "margin-right": "3px", "display": "inline", "vertical-align": "middle" }
26944
+ }, {
26945
+ default: withCtx(() => [
26946
+ createVNode(_component_ele_Bell)
26947
+ ]),
26948
+ _: 1
26949
+ /* STABLE */
26950
+ }),
26951
+ createElementVNode(
26952
+ "span",
26953
+ null,
26954
+ toDisplayString(_ctx.$t("message.list.messageDetail")),
26955
+ 1
26956
+ /* TEXT */
26957
+ )
26958
+ ])
26959
+ ]),
26960
+ footer: withCtx(() => [
26961
+ createElementVNode("span", _hoisted_14, [
26962
+ createVNode(_component_el_button, {
26963
+ type: "primary",
26964
+ onClick: _cache[0] || (_cache[0] = ($event) => state.dialogVisible = false)
26965
+ }, {
26966
+ default: withCtx(() => [
26967
+ createTextVNode(
26968
+ toDisplayString(_ctx.$t("message.list.confirm")),
26969
+ 1
26970
+ /* TEXT */
26971
+ )
26972
+ ]),
26973
+ _: 1
26974
+ /* STABLE */
26975
+ })
26976
+ ])
26977
+ ]),
26978
+ default: withCtx(() => [
26979
+ createElementVNode("div", _hoisted_12, [
26980
+ createElementVNode("div", {
26981
+ innerHTML: state.content,
26982
+ "data-slate-editor": ""
26983
+ }, null, 8, _hoisted_13)
26984
+ ])
26985
+ ]),
26986
+ _: 1
26987
+ /* STABLE */
26988
+ }, 8, ["modelValue"])
26989
+ ]);
26990
+ };
26991
+ }
26992
+ });
26993
+
26994
+ var userNews = /*#__PURE__*/Object.freeze({
26995
+ __proto__: null,
26996
+ default: _sfc_main$2
26997
+ });
26998
+
26999
+ const _hoisted_1$1 = { class: "layout-search-dialog" };
27000
+ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
27001
+ __name: "search",
27002
+ setup(__props, { expose: __expose }) {
27003
+ const storesTagsViewRoutes = useTagsViewRoutes();
27004
+ const { tagsViewRoutes } = storeToRefs(storesTagsViewRoutes);
27005
+ const layoutMenuAutocompleteRef = ref();
27006
+ const { t } = useI18n();
27007
+ const router = useRouter();
27008
+ const state = reactive({
27009
+ isShowSearch: false,
27010
+ menuQuery: "",
27011
+ tagsViewList: []
27012
+ });
27013
+ const openSearch = () => {
27014
+ state.menuQuery = "";
27015
+ state.isShowSearch = true;
27016
+ initTageView();
27017
+ nextTick(() => {
27018
+ setTimeout(() => {
27019
+ layoutMenuAutocompleteRef.value.focus();
27020
+ });
27021
+ });
27022
+ };
27023
+ const closeSearch = () => {
27024
+ state.isShowSearch = false;
27025
+ };
27026
+ const menuSearch = (queryString, cb) => {
27027
+ let results = queryString ? state.tagsViewList.filter(createFilter(queryString)) : state.tagsViewList;
27028
+ cb(results);
27029
+ };
27030
+ const createFilter = (queryString) => {
27031
+ return (restaurant) => {
27032
+ return restaurant.path.toLowerCase().indexOf(queryString.toLowerCase()) > -1 || restaurant.meta.title.toLowerCase().indexOf(queryString.toLowerCase()) > -1 || t(restaurant.meta.title).indexOf(queryString.toLowerCase()) > -1;
27033
+ };
27034
+ };
27035
+ const initTageView = () => {
27036
+ if (state.tagsViewList.length > 0) return false;
27037
+ tagsViewRoutes.value.map((v) => {
27038
+ var _a;
27039
+ if (!((_a = v.meta) == null ? void 0 : _a.isHide) && v.type !== 1) state.tagsViewList.push({ ...v });
27040
+ });
27041
+ };
27042
+ const onHandleSelect = (item) => {
27043
+ var _a, _b, _c;
27044
+ let { path, redirect } = item;
27045
+ if (((_a = item.meta) == null ? void 0 : _a.isLink) && !((_b = item.meta) == null ? void 0 : _b.isIframe)) window.open((_c = item.meta) == null ? void 0 : _c.isLink);
27046
+ else if (redirect) router.push(redirect);
27047
+ else router.push(path);
27048
+ closeSearch();
27049
+ };
27050
+ __expose({
27051
+ openSearch
27052
+ });
27053
+ return (_ctx, _cache) => {
27054
+ const _component_ele_Search = resolveComponent("ele-Search");
27055
+ const _component_el_icon = resolveComponent("el-icon");
27056
+ const _component_SvgIcon = resolveComponent("SvgIcon");
27057
+ const _component_el_autocomplete = resolveComponent("el-autocomplete");
27058
+ const _component_el_dialog = resolveComponent("el-dialog");
27059
+ return openBlock(), createElementBlock("div", _hoisted_1$1, [
27060
+ createVNode(_component_el_dialog, {
27061
+ modelValue: state.isShowSearch,
27062
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.isShowSearch = $event),
27063
+ "destroy-on-close": "",
27064
+ "show-close": false
27065
+ }, {
27066
+ footer: withCtx(() => [
27067
+ createVNode(_component_el_autocomplete, {
27068
+ modelValue: state.menuQuery,
27069
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.menuQuery = $event),
27070
+ "fetch-suggestions": menuSearch,
27071
+ placeholder: _ctx.$t("message.user.searchPlaceholder"),
27072
+ ref_key: "layoutMenuAutocompleteRef",
27073
+ ref: layoutMenuAutocompleteRef,
27074
+ onSelect: onHandleSelect,
27075
+ "fit-input-width": true
27076
+ }, {
27077
+ prefix: withCtx(() => [
27078
+ createVNode(_component_el_icon, { class: "el-input__icon" }, {
27079
+ default: withCtx(() => [
27080
+ createVNode(_component_ele_Search)
27081
+ ]),
27082
+ _: 1
27083
+ /* STABLE */
27084
+ })
27085
+ ]),
27086
+ default: withCtx(({ item }) => [
27087
+ createElementVNode("div", null, [
27088
+ createVNode(_component_SvgIcon, {
27089
+ name: item.meta.icon,
27090
+ class: "mr5"
27091
+ }, null, 8, ["name"]),
27092
+ createTextVNode(
27093
+ " " + toDisplayString(_ctx.$t(item.meta.title)),
27094
+ 1
27095
+ /* TEXT */
27096
+ )
27097
+ ])
27098
+ ]),
27099
+ _: 1
27100
+ /* STABLE */
27101
+ }, 8, ["modelValue", "placeholder"])
27102
+ ]),
27103
+ _: 1
27104
+ /* STABLE */
27105
+ }, 8, ["modelValue"])
27106
+ ]);
27107
+ };
27108
+ }
27109
+ });
27110
+
27111
+ var search = /*#__PURE__*/Object.freeze({
27112
+ __proto__: null,
27113
+ default: _sfc_main$1
27114
+ });
27115
+
27116
+ const _hoisted_1 = { class: "sys-upgrade-container" };
27117
+ const _hoisted_2 = { style: { "color": "#fff" } };
27118
+ const _hoisted_3 = ["innerHTML"];
27119
+ var _sfc_main = /* @__PURE__ */ defineComponent({
27120
+ __name: "upgradeInfo",
27121
+ setup(__props, { expose: __expose }) {
27122
+ const state = reactive({
27123
+ isShowDialog: false,
27124
+ ruleForm: {}
27125
+ });
27126
+ const openDialog = (row) => {
27127
+ state.ruleForm = JSON.parse(JSON.stringify(row));
27128
+ state.isShowDialog = true;
27129
+ };
27130
+ const cancel = async () => {
27131
+ await useBaseApi("sysUpgrade").pcomm({ id: state.ruleForm.id }, "setRead");
27132
+ state.isShowDialog = false;
27133
+ };
27134
+ __expose({ openDialog });
27135
+ return (_ctx, _cache) => {
27136
+ const _component_ele_InfoFilled = resolveComponent("ele-InfoFilled");
27137
+ const _component_el_icon = resolveComponent("el-icon");
27138
+ const _component_el_dialog = resolveComponent("el-dialog");
27139
+ return openBlock(), createElementBlock("div", _hoisted_1, [
27140
+ createVNode(_component_el_dialog, {
27141
+ modelValue: state.isShowDialog,
27142
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.isShowDialog = $event),
27143
+ draggable: "",
27144
+ "close-on-click-modal": false,
27145
+ width: "50vw",
27146
+ "before-close": cancel
27147
+ }, {
27148
+ header: withCtx(() => [
27149
+ createElementVNode("div", _hoisted_2, [
27150
+ createVNode(_component_el_icon, {
27151
+ size: "16",
27152
+ style: { "margin-right": "3px", "display": "inline", "vertical-align": "middle" }
27153
+ }, {
27154
+ default: withCtx(() => [
27155
+ createVNode(_component_ele_InfoFilled)
27156
+ ]),
27157
+ _: 1
27158
+ /* STABLE */
27159
+ }),
27160
+ _cache[1] || (_cache[1] = createElementVNode(
27161
+ "span",
27162
+ null,
27163
+ " \u7CFB\u7EDF\u66F4\u65B0\u65E5\u5FD7 ",
27164
+ -1
27165
+ /* CACHED */
27166
+ ))
27167
+ ])
27168
+ ]),
27169
+ default: withCtx(() => [
27170
+ createElementVNode("div", {
27171
+ innerHTML: state.ruleForm.content,
27172
+ style: { "padding": "20px" }
27173
+ }, null, 8, _hoisted_3)
27174
+ ]),
27175
+ _: 1
27176
+ /* STABLE */
27177
+ }, 8, ["modelValue"])
27178
+ ]);
27179
+ };
27180
+ }
27181
+ });
27182
+
27183
+ var upgradeInfo = /*#__PURE__*/Object.freeze({
27184
+ __proto__: null,
27185
+ default: _sfc_main
27186
+ });
27187
+
23187
27188
  export { AccountTypeEnum, HttpMethodEnum, JobCreateTypeEnum, Local, NextLoading, Session, StringToObj, watermark as Watermark, accessTokenKey, auth, authAll, auths, axiosInstance, base64ToFile, blobToFile, buildLocaleContext, buildTranslator, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, clone, commonFun, commonFunction, configureRoutes, dataURLtoBlob, decryptJWT, installer as default, destroyIdleTimeout, downloadByBase64, downloadByData, downloadByOnlineUrl, downloadByUrl, downloadStreamFile, en, exportExcel, feature, fileToBase64, flowLoading, formatAxis, formatDate, formatPast, gcj02ToBd09, getCountryCode, getFileName, getHeader, getJWTDate, getToken, getWeek, hAuth, hAuthAll, hAuths, hasPrivilege, hasRoleCode, i18n, initBackEndControlRoutes, initFrontEndControlRoutes, initIdleTimeout, initRouter, install, isAdmin, isMember, isNormalUser, isObjectValueEqual, isSupperAdmin, isTenantAdmin, iso_3166_1_CountryList, judgementIdCard, judgementSameArr, languageList, loadSysInfo, mergMessage, emitter as mittBus, openWindow, orgId, orgName, other, posId, posName, provideFormEvents, reLoadLoginAccessToken, refreshAccessTokenKey, removeDuplicate, request2, restartSignalR, roles, router, saulVModel, service, setCssCdn, setDynamicViewsModules, setIntroduction, setJsCdn, setPathPrefix, setupI18n, signalR, signatureByKSort, sleep, staticRoutes, tansParams, tenantId, translate, updateFavicon, updateIdleTimeout, urlToBase64, useApi, useBaseApi, useChangeColor, useDateTimeShortCust, useFormEvents, useFormRulePresets, useKeepALiveNames, useLocale, useRequestOldRoutes, useRoutesList, useSysApi, useTagsViewRoutes, useThemeConfig, useUserInfo, useVxeTable, userAccount, userEmail, userFriendName, userId, userName, userPhone, validateFormWithScroll, validateFormWithScrollCallback, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl, version, wgs84ToBd09, wgs84ToGcj02, plusZhCn as zhCn };