ele-admin-plus 1.1.3 → 1.1.4-beta.2

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 (284) hide show
  1. package/es/ele-alert/index.d.ts +10 -10
  2. package/es/ele-alert/props.d.ts +6 -6
  3. package/es/ele-app/style/message.scss +1 -0
  4. package/es/ele-app/style/overwrite.scss +84 -3
  5. package/es/ele-app/types/index.d.ts +7 -6
  6. package/es/ele-avatar-group/index.d.ts +7 -8
  7. package/es/ele-avatar-group/props.d.ts +3 -4
  8. package/es/ele-basic-select/style/index.scss +4 -6
  9. package/es/ele-bottom-bar/index.d.ts +4 -4
  10. package/es/ele-bottom-bar/props.d.ts +2 -3
  11. package/es/ele-card/index.d.ts +6 -6
  12. package/es/ele-card/props.d.ts +3 -4
  13. package/es/ele-check-card/components/card-item.d.ts +2 -3
  14. package/es/ele-check-card/index.d.ts +4 -4
  15. package/es/ele-check-card/props.d.ts +3 -3
  16. package/es/ele-config-provider/receiver.d.ts +1 -1
  17. package/es/ele-config-provider/receiver.js +29 -29
  18. package/es/ele-copyable/index.d.ts +8 -8
  19. package/es/ele-copyable/index.js +5 -4
  20. package/es/ele-copyable/props.d.ts +5 -5
  21. package/es/ele-copyable/style/index.scss +4 -0
  22. package/es/ele-count-up/index.d.ts +2 -2
  23. package/es/ele-count-up/index.js +2 -1
  24. package/es/ele-count-up/props.d.ts +1 -1
  25. package/es/ele-cropper/index.js +2 -2
  26. package/es/ele-dashboard/index.d.ts +1 -2
  27. package/es/ele-drawer/index.d.ts +16 -10
  28. package/es/ele-drawer/props.d.ts +7 -6
  29. package/es/ele-dropdown/index.d.ts +2 -2
  30. package/es/ele-dropdown/props.d.ts +1 -2
  31. package/es/ele-edit-tag/index.d.ts +4 -4
  32. package/es/ele-edit-tag/props.d.ts +2 -3
  33. package/es/ele-ellipsis/index.d.ts +4 -5
  34. package/es/ele-ellipsis/props.d.ts +1 -1
  35. package/es/ele-ellipsis/style/index.scss +4 -0
  36. package/es/ele-file-list/index.d.ts +2 -7
  37. package/es/ele-file-list/index.js +2 -2
  38. package/es/ele-file-list/types/index.d.ts +0 -4
  39. package/es/ele-icon-select/components/icon-grid.d.ts +5 -5
  40. package/es/ele-icon-select/components/icon-popper.d.ts +15 -15
  41. package/es/ele-icon-select/index.d.ts +15 -16
  42. package/es/ele-icon-select/props.d.ts +8 -8
  43. package/es/ele-loading/index.d.ts +26 -1
  44. package/es/ele-loading/index.js +53 -11
  45. package/es/ele-loading/props.d.ts +11 -1
  46. package/es/ele-loading/props.js +16 -1
  47. package/es/ele-loading/style/css-var.scss +7 -0
  48. package/es/ele-loading/style/index.js +1 -0
  49. package/es/ele-loading/style/index.scss +90 -0
  50. package/es/ele-loading/types/index.d.ts +17 -0
  51. package/es/ele-map-picker/components/map-view.d.ts +2 -2
  52. package/es/ele-map-picker/index.d.ts +2 -2
  53. package/es/ele-map-picker/props.d.ts +3 -3
  54. package/es/ele-menus/index.d.ts +2 -0
  55. package/es/ele-menus/index.js +11 -5
  56. package/es/ele-menus/props.d.ts +10 -0
  57. package/es/ele-menus/props.js +7 -1
  58. package/es/ele-menus/style/index.scss +18 -18
  59. package/es/ele-menus/types/index.d.ts +4 -0
  60. package/es/ele-menus/util.d.ts +4 -3
  61. package/es/ele-menus/util.js +23 -12
  62. package/es/ele-modal/index.d.ts +19 -13
  63. package/es/ele-modal/props.d.ts +8 -7
  64. package/es/ele-modal/types/index.d.ts +9 -0
  65. package/es/ele-modal/util.js +45 -32
  66. package/es/ele-pagination/index.d.ts +1 -1
  67. package/es/ele-popconfirm/index.d.ts +10 -10
  68. package/es/ele-popconfirm/index.js +8 -2
  69. package/es/ele-popconfirm/props.d.ts +6 -6
  70. package/es/ele-popover/index.d.ts +6 -6
  71. package/es/ele-popover/props.d.ts +3 -4
  72. package/es/ele-printer/index.d.ts +7 -6
  73. package/es/ele-printer/index.js +11 -4
  74. package/es/ele-printer/props.d.ts +3 -4
  75. package/es/ele-pro-layout/components/pro-header.d.ts +7 -2
  76. package/es/ele-pro-layout/components/pro-header.js +15 -5
  77. package/es/ele-pro-layout/components/pro-iframe.js +10 -7
  78. package/es/ele-pro-layout/components/pro-sidebar.d.ts +7 -2
  79. package/es/ele-pro-layout/components/pro-sidebar.js +14 -5
  80. package/es/ele-pro-layout/components/pro-sidebox.d.ts +11 -4
  81. package/es/ele-pro-layout/components/pro-sidebox.js +16 -5
  82. package/es/ele-pro-layout/components/tab-dropdown.js +1 -4
  83. package/es/ele-pro-layout/index.d.ts +17 -3
  84. package/es/ele-pro-layout/index.js +208 -105
  85. package/es/ele-pro-layout/props.d.ts +6 -1
  86. package/es/ele-pro-layout/props.js +10 -0
  87. package/es/ele-pro-layout/style/collapse.scss +9 -10
  88. package/es/ele-pro-layout/style/index.js +0 -1
  89. package/es/ele-pro-layout/style/layout-mobile.scss +1 -0
  90. package/es/ele-pro-layout/types/index.d.ts +9 -0
  91. package/es/ele-pro-layout/util.d.ts +4 -2
  92. package/es/ele-pro-layout/util.js +20 -17
  93. package/es/ele-pro-table/components/table-view.d.ts +9 -3
  94. package/es/ele-pro-table/components/table-view.js +27 -24
  95. package/es/ele-pro-table/components/tool-column.d.ts +2 -1
  96. package/es/ele-pro-table/components/tool-column.js +26 -18
  97. package/es/ele-pro-table/index.d.ts +46 -25
  98. package/es/ele-pro-table/index.js +182 -196
  99. package/es/ele-pro-table/props.d.ts +27 -15
  100. package/es/ele-pro-table/props.js +15 -3
  101. package/es/ele-pro-table/style/index.js +1 -1
  102. package/es/ele-pro-table/style/index.scss +64 -8
  103. package/es/ele-pro-table/types/index.d.ts +39 -5
  104. package/es/ele-pro-table/util.d.ts +84 -49
  105. package/es/ele-pro-table/util.js +193 -78
  106. package/es/ele-qr-code/index.d.ts +3 -3
  107. package/es/ele-qr-code/props.d.ts +1 -2
  108. package/es/ele-qr-code-svg/index.d.ts +3 -3
  109. package/es/ele-split-panel/index.d.ts +6 -6
  110. package/es/ele-split-panel/props.d.ts +3 -4
  111. package/es/ele-table/style/index.scss +1 -0
  112. package/es/ele-tabs/index.js +4 -3
  113. package/es/ele-tabs/types/index.d.ts +3 -0
  114. package/es/ele-text/index.d.ts +3 -3
  115. package/es/ele-text/props.d.ts +2 -2
  116. package/es/ele-toolbar/index.d.ts +6 -6
  117. package/es/ele-toolbar/props.d.ts +3 -4
  118. package/es/ele-tooltip/index.d.ts +3 -3
  119. package/es/ele-tooltip/props.d.ts +1 -2
  120. package/es/ele-tour/index.d.ts +2 -3
  121. package/es/ele-tour/style/index.scss +1 -1
  122. package/es/ele-tour/util.js +3 -3
  123. package/es/ele-upload-list/index.d.ts +8 -7
  124. package/es/ele-upload-list/index.js +18 -11
  125. package/es/ele-upload-list/props.d.ts +4 -4
  126. package/es/ele-upload-list/props.js +1 -1
  127. package/es/ele-watermark/index.d.ts +16 -8
  128. package/es/ele-watermark/index.js +18 -12
  129. package/es/ele-watermark/props.d.ts +3 -1
  130. package/es/ele-watermark/props.js +5 -1
  131. package/es/ele-watermark/util.js +1 -1
  132. package/es/ele-xg-player/index.js +1 -0
  133. package/es/style/index.scss +1 -0
  134. package/es/style/nprogress.scss +2 -2
  135. package/es/style/themes/default.scss +36 -12
  136. package/es/style/themes/rounded.scss +4 -2
  137. package/es/style/themes/theme-util.scss +2 -0
  138. package/es/utils/core.d.ts +1 -1
  139. package/es/utils/core.js +17 -15
  140. package/es/utils/resolvers.js +2 -2
  141. package/lib/ele-alert/index.d.ts +10 -10
  142. package/lib/ele-alert/props.d.ts +6 -6
  143. package/lib/ele-app/style/message.scss +1 -0
  144. package/lib/ele-app/style/overwrite.scss +84 -3
  145. package/lib/ele-app/types/index.d.ts +7 -6
  146. package/lib/ele-avatar-group/index.d.ts +7 -8
  147. package/lib/ele-avatar-group/props.d.ts +3 -4
  148. package/lib/ele-basic-select/style/index.scss +4 -6
  149. package/lib/ele-bottom-bar/index.d.ts +4 -4
  150. package/lib/ele-bottom-bar/props.d.ts +2 -3
  151. package/lib/ele-card/index.d.ts +6 -6
  152. package/lib/ele-card/props.d.ts +3 -4
  153. package/lib/ele-check-card/components/card-item.d.ts +2 -3
  154. package/lib/ele-check-card/index.d.ts +4 -4
  155. package/lib/ele-check-card/props.d.ts +3 -3
  156. package/lib/ele-config-provider/receiver.d.ts +1 -1
  157. package/lib/ele-config-provider/receiver.js +2 -2
  158. package/lib/ele-copyable/index.d.ts +8 -8
  159. package/lib/ele-copyable/index.js +4 -3
  160. package/lib/ele-copyable/props.d.ts +5 -5
  161. package/lib/ele-copyable/style/index.scss +4 -0
  162. package/lib/ele-count-up/index.d.ts +2 -2
  163. package/lib/ele-count-up/index.js +2 -1
  164. package/lib/ele-count-up/props.d.ts +1 -1
  165. package/lib/ele-cropper/index.js +2 -2
  166. package/lib/ele-dashboard/index.d.ts +1 -2
  167. package/lib/ele-drawer/index.d.ts +16 -10
  168. package/lib/ele-drawer/props.d.ts +7 -6
  169. package/lib/ele-dropdown/index.d.ts +2 -2
  170. package/lib/ele-dropdown/props.d.ts +1 -2
  171. package/lib/ele-edit-tag/index.d.ts +4 -4
  172. package/lib/ele-edit-tag/props.d.ts +2 -3
  173. package/lib/ele-ellipsis/index.d.ts +4 -5
  174. package/lib/ele-ellipsis/props.d.ts +1 -1
  175. package/lib/ele-ellipsis/style/index.scss +4 -0
  176. package/lib/ele-file-list/index.d.ts +2 -7
  177. package/lib/ele-file-list/index.js +2 -2
  178. package/lib/ele-file-list/types/index.d.ts +0 -4
  179. package/lib/ele-icon-select/components/icon-grid.d.ts +5 -5
  180. package/lib/ele-icon-select/components/icon-popper.d.ts +15 -15
  181. package/lib/ele-icon-select/index.d.ts +15 -16
  182. package/lib/ele-icon-select/props.d.ts +8 -8
  183. package/lib/ele-loading/index.d.ts +26 -1
  184. package/lib/ele-loading/index.js +52 -10
  185. package/lib/ele-loading/props.d.ts +11 -1
  186. package/lib/ele-loading/props.js +16 -1
  187. package/lib/ele-loading/style/css-var.scss +7 -0
  188. package/lib/ele-loading/style/index.js +1 -0
  189. package/lib/ele-loading/style/index.scss +90 -0
  190. package/lib/ele-loading/types/index.d.ts +17 -0
  191. package/lib/ele-map-picker/components/map-view.d.ts +2 -2
  192. package/lib/ele-map-picker/index.d.ts +2 -2
  193. package/lib/ele-map-picker/props.d.ts +3 -3
  194. package/lib/ele-menus/index.d.ts +2 -0
  195. package/lib/ele-menus/index.js +9 -3
  196. package/lib/ele-menus/props.d.ts +10 -0
  197. package/lib/ele-menus/props.js +6 -0
  198. package/lib/ele-menus/style/index.scss +18 -18
  199. package/lib/ele-menus/types/index.d.ts +4 -0
  200. package/lib/ele-menus/util.d.ts +4 -3
  201. package/lib/ele-menus/util.js +23 -12
  202. package/lib/ele-modal/index.d.ts +19 -13
  203. package/lib/ele-modal/props.d.ts +8 -7
  204. package/lib/ele-modal/types/index.d.ts +9 -0
  205. package/lib/ele-modal/util.js +45 -32
  206. package/lib/ele-pagination/index.d.ts +1 -1
  207. package/lib/ele-popconfirm/index.d.ts +10 -10
  208. package/lib/ele-popconfirm/index.js +8 -2
  209. package/lib/ele-popconfirm/props.d.ts +6 -6
  210. package/lib/ele-popover/index.d.ts +6 -6
  211. package/lib/ele-popover/props.d.ts +3 -4
  212. package/lib/ele-printer/index.d.ts +7 -6
  213. package/lib/ele-printer/index.js +10 -3
  214. package/lib/ele-printer/props.d.ts +3 -4
  215. package/lib/ele-pro-layout/components/pro-header.d.ts +7 -2
  216. package/lib/ele-pro-layout/components/pro-header.js +15 -5
  217. package/lib/ele-pro-layout/components/pro-iframe.js +10 -7
  218. package/lib/ele-pro-layout/components/pro-sidebar.d.ts +7 -2
  219. package/lib/ele-pro-layout/components/pro-sidebar.js +14 -5
  220. package/lib/ele-pro-layout/components/pro-sidebox.d.ts +11 -4
  221. package/lib/ele-pro-layout/components/pro-sidebox.js +16 -5
  222. package/lib/ele-pro-layout/components/tab-dropdown.js +1 -4
  223. package/lib/ele-pro-layout/index.d.ts +17 -3
  224. package/lib/ele-pro-layout/index.js +205 -102
  225. package/lib/ele-pro-layout/props.d.ts +6 -1
  226. package/lib/ele-pro-layout/props.js +10 -0
  227. package/lib/ele-pro-layout/style/collapse.scss +9 -10
  228. package/lib/ele-pro-layout/style/index.js +0 -1
  229. package/lib/ele-pro-layout/style/layout-mobile.scss +1 -0
  230. package/lib/ele-pro-layout/types/index.d.ts +9 -0
  231. package/lib/ele-pro-layout/util.d.ts +4 -2
  232. package/lib/ele-pro-layout/util.js +19 -16
  233. package/lib/ele-pro-table/components/table-view.d.ts +9 -3
  234. package/lib/ele-pro-table/components/table-view.js +25 -22
  235. package/lib/ele-pro-table/components/tool-column.d.ts +2 -1
  236. package/lib/ele-pro-table/components/tool-column.js +25 -17
  237. package/lib/ele-pro-table/index.d.ts +46 -25
  238. package/lib/ele-pro-table/index.js +180 -194
  239. package/lib/ele-pro-table/props.d.ts +27 -15
  240. package/lib/ele-pro-table/props.js +15 -3
  241. package/lib/ele-pro-table/style/index.js +1 -1
  242. package/lib/ele-pro-table/style/index.scss +64 -8
  243. package/lib/ele-pro-table/types/index.d.ts +39 -5
  244. package/lib/ele-pro-table/util.d.ts +84 -49
  245. package/lib/ele-pro-table/util.js +192 -77
  246. package/lib/ele-qr-code/index.d.ts +3 -3
  247. package/lib/ele-qr-code/props.d.ts +1 -2
  248. package/lib/ele-qr-code-svg/index.d.ts +3 -3
  249. package/lib/ele-split-panel/index.d.ts +6 -6
  250. package/lib/ele-split-panel/props.d.ts +3 -4
  251. package/lib/ele-table/style/index.scss +1 -0
  252. package/lib/ele-tabs/index.js +4 -3
  253. package/lib/ele-tabs/types/index.d.ts +3 -0
  254. package/lib/ele-text/index.d.ts +3 -3
  255. package/lib/ele-text/props.d.ts +2 -2
  256. package/lib/ele-toolbar/index.d.ts +6 -6
  257. package/lib/ele-toolbar/props.d.ts +3 -4
  258. package/lib/ele-tooltip/index.d.ts +3 -3
  259. package/lib/ele-tooltip/props.d.ts +1 -2
  260. package/lib/ele-tour/index.d.ts +2 -3
  261. package/lib/ele-tour/style/index.scss +1 -1
  262. package/lib/ele-tour/util.js +3 -3
  263. package/lib/ele-upload-list/index.d.ts +8 -7
  264. package/lib/ele-upload-list/index.js +17 -10
  265. package/lib/ele-upload-list/props.d.ts +4 -4
  266. package/lib/ele-upload-list/props.js +1 -1
  267. package/lib/ele-watermark/index.d.ts +16 -8
  268. package/lib/ele-watermark/index.js +17 -11
  269. package/lib/ele-watermark/props.d.ts +3 -1
  270. package/lib/ele-watermark/props.js +5 -1
  271. package/lib/ele-watermark/util.js +1 -1
  272. package/lib/ele-xg-player/index.js +1 -0
  273. package/lib/style/index.scss +1 -0
  274. package/lib/style/nprogress.scss +2 -2
  275. package/lib/style/themes/default.scss +36 -12
  276. package/lib/style/themes/rounded.scss +4 -2
  277. package/lib/style/themes/theme-util.scss +2 -0
  278. package/lib/utils/core.d.ts +1 -1
  279. package/lib/utils/core.js +17 -15
  280. package/lib/utils/resolvers.js +2 -2
  281. package/package.json +25 -23
  282. package/typings/global.d.ts +52 -52
  283. package/es/ele-alert/types/index.d.ts +0 -0
  284. package/lib/ele-alert/types/index.d.ts +0 -0
@@ -1,9 +1,9 @@
1
- import { defineComponent, ref, shallowRef, computed, watch, unref, provide, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, createBlock, createCommentVNode } from "vue";
1
+ import { defineComponent, ref, shallowRef, computed, watch, unref, provide, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createBlock, createCommentVNode, createElementVNode } from "vue";
2
2
  import { useRouter } from "vue-router";
3
3
  import { ElBacktop } from "element-plus";
4
- import { mapTree } from "../utils/core";
5
- import { useLicense, LAYOUT_KEY, UNAUTHORIZED_TIP } from "../ele-config-provider/receiver";
6
- import EleAlert from "../ele-alert/index";
4
+ import { mapTree, isExternalLink } from "../utils/core";
5
+ import { useLicense, UNAUTHORIZED_TIP, LAYOUT_KEY } from "../ele-config-provider/receiver";
6
+ import EleWatermark from "../ele-watermark/index";
7
7
  import ProHeader from "./components/pro-header";
8
8
  import ProSidebar from "./components/pro-sidebar";
9
9
  import ProSidebox from "./components/pro-sidebox";
@@ -15,7 +15,7 @@ const _sfc_main = defineComponent({
15
15
  name: "EleProLayout",
16
16
  components: {
17
17
  ElBacktop,
18
- EleAlert,
18
+ EleWatermark,
19
19
  ProHeader,
20
20
  ProSidebar,
21
21
  ProSidebox,
@@ -26,7 +26,7 @@ const _sfc_main = defineComponent({
26
26
  emits: proLayoutEmits,
27
27
  setup(props, { emit }) {
28
28
  const { authenticated } = useLicense();
29
- const { currentRoute } = useRouter();
29
+ const { currentRoute, push } = useRouter();
30
30
  const { disableTransition } = useDisableTransition();
31
31
  const contentRef = ref(null);
32
32
  const levelData = shallowRef([]);
@@ -45,6 +45,7 @@ const _sfc_main = defineComponent({
45
45
  const homeMenuPath = ref(getHomePath(props.homePath));
46
46
  const isHome = ref(false);
47
47
  const mobile = ref(false);
48
+ const watermark = ref(UNAUTHORIZED_TIP.split(",") || "Error");
48
49
  const topLayout = computed(() => props.layout === "top");
49
50
  const mixLayout = computed(() => props.layout === "mix");
50
51
  const mixSidebar = computed(() => props.sidebarLayout === "mix");
@@ -64,6 +65,7 @@ const _sfc_main = defineComponent({
64
65
  const hasSide = sidebox.value || sidebar.value;
65
66
  const fixedSide = props.fixedSidebar && !props.fixedBody && hasSide;
66
67
  const logoAuto = props.logoInHeader || topLayout.value || !hasSide;
68
+ const hasMix = mixSidebar.value && sidebox.value;
67
69
  return [
68
70
  "ele-admin-layout",
69
71
  // 折叠侧栏
@@ -71,7 +73,9 @@ const _sfc_main = defineComponent({
71
73
  // 双侧栏折叠一级
72
74
  { "ele-admin-compact": props.compact && sidebox.value },
73
75
  // 双侧栏
74
- { "ele-admin-mix-sidebar": mixSidebar.value && sidebox.value },
76
+ { "ele-admin-mix-sidebar": hasMix },
77
+ // 双侧栏时侧栏空数据
78
+ { "ele-admin-none-sidebar": hasMix && !sidebar.value },
75
79
  // 固定顶栏
76
80
  { "ele-admin-fixed-header": props.fixedHeader && !props.fixedBody },
77
81
  // 固定侧栏
@@ -96,6 +100,15 @@ const _sfc_main = defineComponent({
96
100
  { "ele-admin-mobile": mobile.value }
97
101
  ];
98
102
  });
103
+ const backTopSelector = computed(() => {
104
+ if (props.backTopTarget) {
105
+ return props.backTopTarget;
106
+ }
107
+ if (props.fixedBody) {
108
+ return ".ele-admin-layout.ele-admin-fixed-body>.ele-admin-main>.ele-admin-body>.ele-admin-content";
109
+ }
110
+ return void 0;
111
+ });
99
112
  const sidebarCollapse = computed(() => {
100
113
  return mobile.value || mixSidebar.value ? false : props.collapse;
101
114
  });
@@ -224,7 +237,8 @@ const _sfc_main = defineComponent({
224
237
  path: d.path,
225
238
  component: d.component,
226
239
  redirect: d.redirect,
227
- meta: d.meta
240
+ meta: d.meta,
241
+ tempChildren: d.children
228
242
  };
229
243
  });
230
244
  const childMenus = getActiveChilds(
@@ -322,6 +336,90 @@ const _sfc_main = defineComponent({
322
336
  });
323
337
  }
324
338
  };
339
+ const onNavItemClick = (item) => {
340
+ if (!item.index || props.navTrigger != "click") {
341
+ return;
342
+ }
343
+ if (props.beforeClick && props.beforeClick(item) === false) {
344
+ return;
345
+ }
346
+ if (isExternalLink(item.index)) {
347
+ window.open(item.index);
348
+ return;
349
+ }
350
+ headerActive.value = item.index;
351
+ const temp = getActiveChilds(
352
+ headerData.value,
353
+ headerActive.value,
354
+ "tempChildren"
355
+ );
356
+ const isChild = !temp.some((d) => {
357
+ var _a;
358
+ return !((_a = d.meta) == null ? void 0 : _a.hide);
359
+ });
360
+ if (isChild && item.index !== unref(currentRoute).fullPath) {
361
+ push(item.index);
362
+ return;
363
+ }
364
+ if (mixSidebar.value) {
365
+ sideboxData.value = temp.map((d) => {
366
+ return {
367
+ name: d.name,
368
+ path: d.path,
369
+ component: d.component,
370
+ redirect: d.redirect,
371
+ meta: d.meta,
372
+ children: props.collapse ? d.children : void 0,
373
+ tempChildren: d.children
374
+ };
375
+ });
376
+ return;
377
+ }
378
+ sidebarData.value = temp;
379
+ };
380
+ const onBoxItemClick = (item) => {
381
+ if (!item.index || props.boxTrigger != "click") {
382
+ return;
383
+ }
384
+ if (props.beforeClick && props.beforeClick(item) === false) {
385
+ return;
386
+ }
387
+ if (isExternalLink(item.index)) {
388
+ window.open(item.index);
389
+ return;
390
+ }
391
+ sideboxActive.value = item.index;
392
+ const temp = getActiveChilds(
393
+ sideboxData.value,
394
+ sideboxActive.value,
395
+ "tempChildren"
396
+ );
397
+ const isChild = !temp.some((d) => {
398
+ var _a;
399
+ return !((_a = d.meta) == null ? void 0 : _a.hide);
400
+ });
401
+ if (isChild && item.index !== unref(currentRoute).fullPath) {
402
+ push(item.index);
403
+ return;
404
+ }
405
+ sidebarData.value = temp;
406
+ };
407
+ const onMenuItemClick = (item) => {
408
+ if (!item.index || props.itemTrigger != "click") {
409
+ return;
410
+ }
411
+ if (props.beforeClick && props.beforeClick(item) === false) {
412
+ return;
413
+ }
414
+ if (isExternalLink(item.index)) {
415
+ window.open(item.index);
416
+ return;
417
+ }
418
+ sidebarActive.value = item.index;
419
+ if (item.index !== unref(currentRoute).fullPath) {
420
+ push(item.index);
421
+ }
422
+ };
325
423
  watch(
326
424
  () => props.menus,
327
425
  () => {
@@ -446,8 +544,8 @@ const _sfc_main = defineComponent({
446
544
  });
447
545
  provide(LAYOUT_KEY, layoutProvide);
448
546
  return {
449
- UNAUTHORIZED_TIP,
450
547
  authenticated,
548
+ watermark,
451
549
  contentRef,
452
550
  levelData,
453
551
  tabData,
@@ -464,6 +562,7 @@ const _sfc_main = defineComponent({
464
562
  sidebox,
465
563
  sidebar,
466
564
  layoutClass,
565
+ backTopSelector,
467
566
  sidebarCollapse,
468
567
  sidebarTheme,
469
568
  updateCollapse,
@@ -475,7 +574,10 @@ const _sfc_main = defineComponent({
475
574
  onSideMenuOpen,
476
575
  onSideMenuClose,
477
576
  onHeadMenuOpen,
478
- onHeadMenuClose
577
+ onHeadMenuClose,
578
+ onNavItemClick,
579
+ onBoxItemClick,
580
+ onMenuItemClick
479
581
  };
480
582
  }
481
583
  });
@@ -486,25 +588,18 @@ const _export_sfc = (sfc, props) => {
486
588
  }
487
589
  return target;
488
590
  };
489
- const _hoisted_1 = { class: "ele-admin-main" };
490
- const _hoisted_2 = { class: "ele-admin-body" };
491
- const _hoisted_3 = {
492
- key: 1,
591
+ const _hoisted_1 = { class: "ele-admin-body" };
592
+ const _hoisted_2 = {
493
593
  ref: "contentRef",
494
594
  class: "ele-admin-content"
495
595
  };
496
- const _hoisted_4 = {
497
- key: 2,
498
- class: "ele-admin-content",
499
- style: { "padding": "16px" }
500
- };
501
596
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
502
597
  const _component_ProHeader = resolveComponent("ProHeader");
503
598
  const _component_ProSidebox = resolveComponent("ProSidebox");
504
599
  const _component_ProSidebar = resolveComponent("ProSidebar");
505
600
  const _component_ProTabs = resolveComponent("ProTabs");
506
601
  const _component_ProIframe = resolveComponent("ProIframe");
507
- const _component_EleAlert = resolveComponent("EleAlert");
602
+ const _component_EleWatermark = resolveComponent("EleWatermark");
508
603
  const _component_ElBacktop = resolveComponent("ElBacktop");
509
604
  return openBlock(), createElementBlock("div", {
510
605
  class: normalizeClass(_ctx.layoutClass)
@@ -516,6 +611,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
516
611
  ellipsis: _ctx.ellipsis,
517
612
  ellipsisProps: _ctx.ellipsisProps,
518
613
  menuTrigger: _ctx.menuTrigger,
614
+ itemTrigger: _ctx.navTrigger,
519
615
  collapse: _ctx.collapse,
520
616
  sidebar: _ctx.sidebar,
521
617
  titleSlot: _ctx.headerTitleSlot,
@@ -527,7 +623,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
527
623
  isHome: _ctx.isHome,
528
624
  onLogoClick: _ctx.onLogoClick,
529
625
  onOpen: _ctx.onHeadMenuOpen,
530
- onClsoe: _ctx.onHeadMenuClose
626
+ onClsoe: _ctx.onHeadMenuClose,
627
+ onItemClick: _ctx.onNavItemClick
531
628
  }, createSlots({ _: 2 }, [
532
629
  renderList(Object.keys(_ctx.$slots), (name) => {
533
630
  return {
@@ -537,69 +634,54 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
537
634
  ])
538
635
  };
539
636
  })
540
- ]), 1032, ["menus", "headerStyle", "active", "ellipsis", "ellipsisProps", "menuTrigger", "collapse", "sidebar", "titleSlot", "iconSlot", "levels", "breadcrumb", "breadcrumbSeparator", "homePath", "isHome", "onLogoClick", "onOpen", "onClsoe"]),
541
- createElementVNode("div", _hoisted_1, [
542
- _ctx.sidebox ? (openBlock(), createBlock(_component_ProSidebox, {
543
- key: 0,
544
- menus: _ctx.sideboxData,
545
- sidebarStyle: _ctx.sidebarStyle,
546
- colorfulIcon: _ctx.colorfulIcon,
547
- active: _ctx.collapse ? _ctx.sidebarActive : _ctx.sideboxActive,
548
- compact: _ctx.compact,
549
- collapse: _ctx.collapse,
550
- popperEffect: _ctx.tooltipEffect,
551
- titleSlot: _ctx.sideboxTitleSlot,
552
- iconSlot: _ctx.sideboxIconSlot
553
- }, createSlots({ _: 2 }, [
554
- renderList(Object.keys(_ctx.$slots), (name) => {
555
- return {
556
- name,
557
- fn: withCtx((slotProps) => [
558
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps || {})))
559
- ])
560
- };
561
- })
562
- ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "compact", "collapse", "popperEffect", "titleSlot", "iconSlot"])) : createCommentVNode("", true),
563
- _ctx.sidebar ? (openBlock(), createBlock(_component_ProSidebar, {
564
- key: 1,
565
- menus: _ctx.authenticated ? _ctx.sidebarData : [],
566
- sidebarStyle: _ctx.sidebarTheme,
567
- colorfulIcon: _ctx.colorfulIcon,
568
- active: _ctx.sidebarActive,
569
- collapse: _ctx.sidebarCollapse,
570
- uniqueOpened: _ctx.uniqueOpened,
571
- defaultOpeneds: _ctx.sidebarOpeneds,
572
- popperEffect: _ctx.tooltipEffect,
573
- titleSlot: _ctx.sidebarTitleSlot,
574
- iconSlot: _ctx.sidebarIconSlot,
575
- onOpen: _ctx.onSideMenuOpen,
576
- onClsoe: _ctx.onSideMenuClose
577
- }, createSlots({ _: 2 }, [
578
- renderList(Object.keys(_ctx.$slots), (name) => {
579
- return {
580
- name,
581
- fn: withCtx((slotProps) => [
582
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps || {})))
583
- ])
584
- };
585
- })
586
- ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "collapse", "uniqueOpened", "defaultOpeneds", "popperEffect", "titleSlot", "iconSlot", "onOpen", "onClsoe"])) : createCommentVNode("", true),
587
- createElementVNode("div", _hoisted_2, [
588
- _ctx.authenticated && _ctx.tabBar ? (openBlock(), createBlock(_component_ProTabs, {
637
+ ]), 1032, ["menus", "headerStyle", "active", "ellipsis", "ellipsisProps", "menuTrigger", "itemTrigger", "collapse", "sidebar", "titleSlot", "iconSlot", "levels", "breadcrumb", "breadcrumbSeparator", "homePath", "isHome", "onLogoClick", "onOpen", "onClsoe", "onItemClick"]),
638
+ createVNode(_component_EleWatermark, {
639
+ class: "ele-admin-main",
640
+ height: 68,
641
+ disabled: _ctx.authenticated,
642
+ fixed: true,
643
+ content: _ctx.watermark
644
+ }, {
645
+ default: withCtx(() => [
646
+ _ctx.sidebox ? (openBlock(), createBlock(_component_ProSidebox, {
589
647
  key: 0,
590
- tabs: _ctx.tabData,
591
- active: _ctx.tabActive,
592
- tabStyle: _ctx.tabStyle,
593
- fixedHome: _ctx.fixedHome,
594
- homePath: _ctx.homeMenuPath,
595
- isHome: _ctx.isHome,
596
- tabContextMenu: _ctx.tabContextMenu,
597
- tabContextMenus: _ctx.tabContextMenus,
598
- tabSortable: _ctx.tabSortable,
599
- onTabClick: _ctx.onTabClick,
600
- onTabRemove: _ctx.onTabRemove,
601
- onTabContextMenu: _ctx.onTabContextMenu,
602
- onTabSortChange: _ctx.onTabSortChange
648
+ menus: _ctx.sideboxData,
649
+ sidebarStyle: _ctx.sidebarStyle,
650
+ colorfulIcon: _ctx.colorfulIcon,
651
+ active: _ctx.collapse ? _ctx.sidebarActive : _ctx.sideboxActive,
652
+ compact: _ctx.compact,
653
+ collapse: _ctx.collapse,
654
+ popperEffect: _ctx.tooltipEffect,
655
+ itemTrigger: _ctx.boxTrigger,
656
+ titleSlot: _ctx.sideboxTitleSlot,
657
+ iconSlot: _ctx.sideboxIconSlot,
658
+ onItemClick: _ctx.onBoxItemClick
659
+ }, createSlots({ _: 2 }, [
660
+ renderList(Object.keys(_ctx.$slots), (name) => {
661
+ return {
662
+ name,
663
+ fn: withCtx((slotProps) => [
664
+ renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps || {})))
665
+ ])
666
+ };
667
+ })
668
+ ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "compact", "collapse", "popperEffect", "itemTrigger", "titleSlot", "iconSlot", "onItemClick"])) : createCommentVNode("", true),
669
+ _ctx.sidebar ? (openBlock(), createBlock(_component_ProSidebar, {
670
+ key: 1,
671
+ menus: _ctx.sidebarData,
672
+ sidebarStyle: _ctx.sidebarTheme,
673
+ colorfulIcon: _ctx.colorfulIcon,
674
+ active: _ctx.sidebarActive,
675
+ collapse: _ctx.sidebarCollapse,
676
+ uniqueOpened: _ctx.uniqueOpened,
677
+ defaultOpeneds: _ctx.sidebarOpeneds,
678
+ popperEffect: _ctx.tooltipEffect,
679
+ itemTrigger: _ctx.itemTrigger,
680
+ titleSlot: _ctx.sidebarTitleSlot,
681
+ iconSlot: _ctx.sidebarIconSlot,
682
+ onOpen: _ctx.onSideMenuOpen,
683
+ onClsoe: _ctx.onSideMenuClose,
684
+ onItemClick: _ctx.onMenuItemClick
603
685
  }, createSlots({ _: 2 }, [
604
686
  renderList(Object.keys(_ctx.$slots), (name) => {
605
687
  return {
@@ -609,28 +691,49 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
609
691
  ])
610
692
  };
611
693
  })
612
- ]), 1032, ["tabs", "active", "tabStyle", "fixedHome", "homePath", "isHome", "tabContextMenu", "tabContextMenus", "tabSortable", "onTabClick", "onTabRemove", "onTabContextMenu", "onTabSortChange"])) : createCommentVNode("", true),
613
- _ctx.authenticated ? (openBlock(), createElementBlock("div", _hoisted_3, [
614
- _ctx.tabBar && _ctx.keepAlive ? (openBlock(), createBlock(_component_ProIframe, {
694
+ ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "collapse", "uniqueOpened", "defaultOpeneds", "popperEffect", "itemTrigger", "titleSlot", "iconSlot", "onOpen", "onClsoe", "onItemClick"])) : createCommentVNode("", true),
695
+ createElementVNode("div", _hoisted_1, [
696
+ _ctx.tabBar ? (openBlock(), createBlock(_component_ProTabs, {
615
697
  key: 0,
616
- keepAlive: _ctx.keepAlive,
617
- transitionName: _ctx.transitionName,
618
- transitionDelay: _ctx.transitionDelay,
619
- tabData: _ctx.tabData,
620
- tabActive: _ctx.tabActive
621
- }, null, 8, ["keepAlive", "transitionName", "transitionDelay", "tabData", "tabActive"])) : createCommentVNode("", true),
622
- renderSlot(_ctx.$slots, "default"),
623
- !_ctx.hideFooter ? renderSlot(_ctx.$slots, "footer", { key: 1 }) : createCommentVNode("", true)
624
- ], 512)) : (openBlock(), createElementBlock("div", _hoisted_4, [
625
- createVNode(_component_EleAlert, {
626
- type: "warning",
627
- showIcon: true,
628
- closable: false,
629
- title: _ctx.UNAUTHORIZED_TIP
630
- }, null, 8, ["title"])
631
- ]))
632
- ])
633
- ]),
698
+ tabs: _ctx.tabData,
699
+ active: _ctx.tabActive,
700
+ tabStyle: _ctx.tabStyle,
701
+ fixedHome: _ctx.fixedHome,
702
+ homePath: _ctx.homeMenuPath,
703
+ isHome: _ctx.isHome,
704
+ tabContextMenu: _ctx.tabContextMenu,
705
+ tabContextMenus: _ctx.tabContextMenus,
706
+ tabSortable: _ctx.tabSortable,
707
+ onTabClick: _ctx.onTabClick,
708
+ onTabRemove: _ctx.onTabRemove,
709
+ onTabContextMenu: _ctx.onTabContextMenu,
710
+ onTabSortChange: _ctx.onTabSortChange
711
+ }, createSlots({ _: 2 }, [
712
+ renderList(Object.keys(_ctx.$slots), (name) => {
713
+ return {
714
+ name,
715
+ fn: withCtx((slotProps) => [
716
+ renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps || {})))
717
+ ])
718
+ };
719
+ })
720
+ ]), 1032, ["tabs", "active", "tabStyle", "fixedHome", "homePath", "isHome", "tabContextMenu", "tabContextMenus", "tabSortable", "onTabClick", "onTabRemove", "onTabContextMenu", "onTabSortChange"])) : createCommentVNode("", true),
721
+ createElementVNode("div", _hoisted_2, [
722
+ _ctx.tabBar && _ctx.keepAlive ? (openBlock(), createBlock(_component_ProIframe, {
723
+ key: 0,
724
+ keepAlive: _ctx.keepAlive,
725
+ transitionName: _ctx.transitionName,
726
+ transitionDelay: _ctx.transitionDelay,
727
+ tabData: _ctx.tabData,
728
+ tabActive: _ctx.tabActive
729
+ }, null, 8, ["keepAlive", "transitionName", "transitionDelay", "tabData", "tabActive"])) : createCommentVNode("", true),
730
+ renderSlot(_ctx.$slots, "default"),
731
+ !_ctx.hideFooter ? renderSlot(_ctx.$slots, "footer", { key: 1 }) : createCommentVNode("", true)
732
+ ], 512)
733
+ ])
734
+ ]),
735
+ _: 3
736
+ }, 8, ["disabled", "content"]),
634
737
  createElementVNode("div", {
635
738
  class: "ele-admin-mask",
636
739
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.updateCollapse && _ctx.updateCollapse(...args))
@@ -640,7 +743,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
640
743
  right: _ctx.backTopRight,
641
744
  bottom: _ctx.backTopBottom,
642
745
  visibilityHeight: _ctx.backTopVisibilityHeight,
643
- target: _ctx.fixedBody ? ".ele-admin-layout .ele-admin-content" : void 0
746
+ target: _ctx.backTopSelector
644
747
  }, null, 8, ["right", "bottom", "visibilityHeight", "target"])) : createCommentVNode("", true)
645
748
  ], 2);
646
749
  }
@@ -2,7 +2,7 @@ import type { PropType, ExtractPropTypes } from 'vue';
2
2
  import type { EllipsisProps } from '../ele-menus/types';
3
3
  import type { ContextMenus } from '../ele-tabs/types';
4
4
  import type { EleDropdownProps } from '../ele-file-list/types';
5
- import type { MenuItem, TabItem, Layout, SidebarLayout, HeaderStyle, SidebarStyle, TabStyle, MenuI18n, TabItemEventOption, BodySizeChangeOption } from './types';
5
+ import type { MenuItem, TabItem, Layout, SidebarLayout, HeaderStyle, SidebarStyle, TabStyle, MenuI18n, TabItemEventOption, BodySizeChangeOption, MenuItemTrigger, BeforeClick } from './types';
6
6
  /**
7
7
  * 属性
8
8
  */
@@ -40,6 +40,7 @@ export declare const proLayoutProps: {
40
40
  type: NumberConstructor;
41
41
  default: number;
42
42
  };
43
+ backTopTarget: StringConstructor;
43
44
  ellipsis: {
44
45
  type: BooleanConstructor;
45
46
  default: boolean;
@@ -131,6 +132,10 @@ export declare const proLayoutProps: {
131
132
  default: string;
132
133
  };
133
134
  tooltipEffect: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "light" | "dark", unknown> | undefined>;
135
+ navTrigger: PropType<MenuItemTrigger>;
136
+ boxTrigger: PropType<MenuItemTrigger>;
137
+ itemTrigger: PropType<MenuItemTrigger>;
138
+ beforeClick: PropType<BeforeClick>;
134
139
  keepAlive: BooleanConstructor;
135
140
  transitionName: StringConstructor;
136
141
  transitionDelay: {
@@ -44,6 +44,8 @@ const proLayoutProps = {
44
44
  type: Number,
45
45
  default: 60
46
46
  },
47
+ // 返回顶部的目标选择器
48
+ backTopTarget: String,
47
49
  // 顶栏菜单是否省略多余的子项
48
50
  ellipsis: {
49
51
  type: Boolean,
@@ -169,6 +171,14 @@ const proLayoutProps = {
169
171
  },
170
172
  // 菜单 tooltip 主题
171
173
  tooltipEffect: String,
174
+ // 顶栏菜单触发模式
175
+ navTrigger: String,
176
+ // 双侧栏一级菜单触发模式
177
+ boxTrigger: String,
178
+ // 侧栏菜单触发模式
179
+ itemTrigger: String,
180
+ // 菜单点击事件前钩子
181
+ beforeClick: Function,
172
182
  // 是否支持内链缓存
173
183
  keepAlive: Boolean,
174
184
  // 内链切换动画
@@ -19,21 +19,20 @@
19
19
  }
20
20
  }
21
21
 
22
- &.ele-admin-mix-sidebar {
23
- .ele-admin-sidebox {
24
- box-shadow: eleVar('sidebar', 'shadow');
25
- }
26
-
27
- .ele-admin-sidebar {
28
- width: 0;
22
+ &.ele-admin-mix-sidebar .ele-admin-sidebar {
23
+ width: 0;
29
24
 
30
- & + .ele-admin-body {
31
- width: calc(100% - #{eleVar('sidebox', 'width')});
32
- }
25
+ & + .ele-admin-body {
26
+ width: calc(100% - #{eleVar('sidebox', 'width')});
33
27
  }
34
28
  }
35
29
  }
36
30
 
31
+ .ele-admin-collapse.ele-admin-mix-sidebar .ele-admin-sidebox,
32
+ .ele-admin-none-sidebar.ele-admin-mix-sidebar .ele-admin-sidebox {
33
+ box-shadow: eleVar('sidebar', 'shadow');
34
+ }
35
+
37
36
  /* 折叠一级侧栏 */
38
37
  .ele-admin-compact.ele-admin-mix-sidebar {
39
38
  $collapseW: eleVar('sidebar', 'collapse-width');
@@ -1,7 +1,6 @@
1
1
  import 'element-plus/es/components/backtop/style/index';
2
2
  import 'element-plus/es/components/icon/style/index';
3
3
  import 'element-plus/es/components/scrollbar/style/index';
4
- import '../../ele-alert/style/index';
5
4
  import '../../ele-page/style/index';
6
5
  import '../../ele-breadcrumb/style/index';
7
6
  import '../../ele-menus/style/index';
@@ -8,6 +8,7 @@
8
8
  position: fixed !important;
9
9
  left: 0 !important;
10
10
  width: eleVar('sidebar', 'width') !important;
11
+ height: calc(100vh - #{eleVar('header', 'height')}) !important;
11
12
  z-index: calc(eleVar('layout', 'mask-index') + 1) !important;
12
13
  }
13
14
 
@@ -204,6 +204,14 @@ export type MenuTrigger = ElMenuProps['menuTrigger'];
204
204
  * 面包屑导航分隔符
205
205
  */
206
206
  export type BreadcrumbSeparator = ElBreadcrumbProps['separatorIcon'];
207
+ /**
208
+ * 混合模式菜单切换模式
209
+ */
210
+ export type MenuItemTrigger = 'route' | 'click';
211
+ /**
212
+ * 菜单点击前钩子
213
+ */
214
+ export type BeforeClick = (item: MenuItemProps) => boolean;
207
215
  /**
208
216
  * 内链数据
209
217
  */
@@ -221,3 +229,4 @@ export type TabTitleInstance = InstanceType<typeof TabTitle> | null;
221
229
  * 标签页组件实例
222
230
  */
223
231
  export type EleTabsInstance = InstanceType<typeof EleTabs> | null;
232
+ export type { MenuItemProps };
@@ -72,8 +72,9 @@ export declare function getMixActive(matched?: MenuItem[]): MixActiveResult;
72
72
  * 获取选中菜单的子级
73
73
  * @param menus 菜单数据
74
74
  * @param active 选中地址
75
+ * @param childrenName 子级字段名称
75
76
  */
76
- export declare function getActiveChilds(menus: MenuItem[], active?: string): MenuItem[];
77
+ export declare function getActiveChilds(menus: MenuItem[], active?: string, childrenName?: string): MenuItem[];
77
78
  /**
78
79
  * 绑定窗口事件监听
79
80
  */
@@ -93,5 +94,6 @@ export declare function useDisableTransition(): {
93
94
  /**
94
95
  * 菜单数据转换
95
96
  * @param menus 菜单数据
97
+ * @param link 是否使用超链接
96
98
  */
97
- export declare function getMenuItems(menus: MenuItem[]): MenuItemProps[];
99
+ export declare function getMenuItems(menus: MenuItem[], link: boolean): MenuItemProps[];
@@ -1,5 +1,5 @@
1
1
  import { onBeforeUnmount, onMounted, watch, nextTick } from "vue";
2
- import { eachTree, debounce, mapTree } from "../utils/core";
2
+ import { eachTree, debounce, mapTree, omit } from "../utils/core";
3
3
  function isHomeRoute(route, homePath) {
4
4
  return route.path === homePath || route.fullPath === homePath;
5
5
  }
@@ -65,15 +65,17 @@ function getMatchedMenus(path, menus, parents) {
65
65
  function getMatchedLevels(matched, activeOther, route, menus, tabs) {
66
66
  var _a;
67
67
  const levels = [];
68
- matched == null ? void 0 : matched.forEach((m) => {
69
- var _a2;
70
- if (m.meta && m.meta.title && m.meta.breadcrumb !== false) {
71
- levels.push({
72
- path: m.path,
73
- title: ((_a2 = findTabByPath(m.path, tabs)) == null ? void 0 : _a2.title) || m.meta.title
74
- });
75
- }
76
- });
68
+ if (matched) {
69
+ matched.forEach((m) => {
70
+ var _a2;
71
+ if (m.meta && m.meta.title && m.meta.breadcrumb !== false) {
72
+ levels.push({
73
+ path: m.path,
74
+ title: ((_a2 = findTabByPath(m.path, tabs)) == null ? void 0 : _a2.title) || m.meta.title
75
+ });
76
+ }
77
+ });
78
+ }
77
79
  if (activeOther) {
78
80
  const { path, fullPath, meta } = route;
79
81
  if ((!levels.length || fullPath !== levels[levels.length - 1].path) && meta.title) {
@@ -132,18 +134,19 @@ function getMixActive(matched) {
132
134
  active2: match2.path
133
135
  };
134
136
  }
135
- function getActiveChilds(menus, active) {
137
+ function getActiveChilds(menus, active, childrenName) {
138
+ const key = childrenName || "children";
136
139
  if (!menus.length) {
137
140
  return [];
138
141
  }
139
142
  if (!active) {
140
- return menus[0].children || [];
143
+ return menus[0][key] || [];
141
144
  }
142
145
  const temp = menus.find((m) => m.path === active);
143
146
  if (temp == null) {
144
- return menus[0].children || [];
147
+ return menus[0][key] || [];
145
148
  }
146
- return temp.children || [];
149
+ return temp[key] || [];
147
150
  }
148
151
  function useWindowListener(option, props) {
149
152
  const state = { timer: null };
@@ -242,7 +245,7 @@ function useDisableTransition() {
242
245
  });
243
246
  return { disableTransition };
244
247
  }
245
- function getMenuItems(menus) {
248
+ function getMenuItems(menus, link) {
246
249
  return mapTree(menus, (m) => {
247
250
  const { path, meta } = m;
248
251
  const { hide, icon, title, props } = meta ?? {};
@@ -252,9 +255,9 @@ function getMenuItems(menus) {
252
255
  const item = {
253
256
  title,
254
257
  icon,
255
- path,
258
+ path: link ? path : void 0,
256
259
  index: path,
257
- ...props,
260
+ ...omit(props, ["title", "icon", "path", "index"]),
258
261
  meta
259
262
  };
260
263
  return item;