bmp-layout 0.0.24 → 0.0.25-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bmp-layout.es.js CHANGED
@@ -1,8 +1,8 @@
1
- import { openBlock, createBlock, unref, normalizeClass, nextTick, ref, computed, watch, withCtx, createElementBlock, createElementVNode, normalizeStyle, createVNode, Fragment, resolveComponent, defineComponent, isVNode, renderList, createCommentVNode, createTextVNode, toDisplayString, renderSlot, onBeforeMount, withModifiers, onMounted, onUnmounted, Teleport, Transition, provide, KeepAlive, resolveDynamicComponent, TransitionGroup, mergeProps, isRef, withDirectives, resolveDirective, watchEffect, vShow, useSlots, useAttrs, createSlots, inject, onBeforeUnmount, reactive, onUpdated, render, useCssVars } from "vue";
1
+ import { openBlock, createBlock, unref, normalizeClass, ref, computed, watch, withCtx, createElementBlock, createElementVNode, normalizeStyle, nextTick, createVNode, Fragment, resolveComponent, defineComponent, isVNode, renderList, createCommentVNode, createTextVNode, toDisplayString, renderSlot, onBeforeMount, onMounted, withModifiers, onUnmounted, Teleport, Transition, provide, KeepAlive, resolveDynamicComponent, TransitionGroup, mergeProps, isRef, withDirectives, resolveDirective, watchEffect, vShow, useSlots, useAttrs, createSlots, inject, onBeforeUnmount, reactive, onUpdated, render, useCssVars } from "vue";
2
2
  import { createPinia, setActivePinia, defineStore } from "pinia";
3
3
  import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
4
4
  import { cloneDeep, omit } from "lodash-es";
5
- import { ElBacktop, ElIcon, ElMenuItem, ElSubMenu, ElScrollbar, ElMenu, ElDropdown, ElDropdownMenu, ElDropdownItem, ElInput, ElBadge, ElAvatar, ElBreadcrumb, ElBreadcrumbItem, ElDrawer, ElButton, ElMessage, ElConfigProvider, ElCard, ElPagination, ElDialog, ElAlert, ElAffix, ElImageViewer, ElMessageBox, ElNotification, ElUpload, ElLink, ElAutocomplete, ElButtonGroup, ElCarousel, ElCarouselItem, ElCollapse, ElCollapseItem, ElCollapseTransition, ElDivider, ElEmpty, ElOverlay, ElPageHeader, ElProgress, ElResult, ElSkeleton, ElSkeletonItem, ElSpace, ElTag, ElText, ElCascader, ElCascaderPanel, ElCheckbox, ElCheckboxButton, ElCheckboxGroup, ElColorPicker, ElDatePicker, ElForm, ElFormItem, ElInputNumber, ElInputTag, ElRadio, ElRadioButton, ElRadioGroup, ElRate, ElSelect, ElOption, ElOptionGroup, ElSelectV2, ElSlider, ElSwitch, ElTimePicker, ElTimeSelect, ElTransfer, ElTreeSelect, ElMention, ElCalendar, ElCheckTag, ElCountdown, ElDescriptions, ElDescriptionsItem, ElImage, ElStatistic, ElTable, ElTableColumn, ElTimeline, ElTimelineItem, ElTree, ElTreeV2, ElMenuItemGroup, ElTabs, ElTabPane, ElPopover, ElPopconfirm, ElTooltip, ElContainer, ElAside, ElFooter, ElHeader, ElMain, ElRow, ElCol, ElSplitter, ElSplitterPanel, ElSegmented, ElTour, ElTourStep, ElWatermark, ElPopper, ElAnchor, ElSteps } from "element-plus";
5
+ import { ElBacktop, ElIcon, ElMenuItem, ElSubMenu, ElScrollbar, ElMenu, ElDropdown, ElDropdownMenu, ElDropdownItem, ElInput, ElBadge, ElAvatar, ElBreadcrumb, ElBreadcrumbItem, ElDrawer, ElButton, ElMessage, ElPopover, ElConfigProvider, ElCard, ElPagination, ElDialog, ElAlert, ElAffix, ElImageViewer, ElMessageBox, ElNotification, ElUpload, ElLink, ElAutocomplete, ElButtonGroup, ElCarousel, ElCarouselItem, ElCollapse, ElCollapseItem, ElCollapseTransition, ElDivider, ElEmpty, ElOverlay, ElPageHeader, ElProgress, ElResult, ElSkeleton, ElSkeletonItem, ElSpace, ElTag, ElText, ElCascader, ElCascaderPanel, ElCheckbox, ElCheckboxButton, ElCheckboxGroup, ElColorPicker, ElDatePicker, ElForm, ElFormItem, ElInputNumber, ElInputTag, ElRadio, ElRadioButton, ElRadioGroup, ElRate, ElSelect, ElOption, ElOptionGroup, ElSelectV2, ElSlider, ElSwitch, ElTimePicker, ElTimeSelect, ElTransfer, ElTreeSelect, ElMention, ElCalendar, ElCheckTag, ElCountdown, ElDescriptions, ElDescriptionsItem, ElImage, ElStatistic, ElTable, ElTableColumn, ElTimeline, ElTimelineItem, ElTree, ElTreeV2, ElMenuItemGroup, ElTabs, ElTabPane, ElPopconfirm, ElTooltip, ElContainer, ElAside, ElFooter, ElHeader, ElMain, ElRow, ElCol, ElSplitter, ElSplitterPanel, ElSegmented, ElTour, ElTourStep, ElWatermark, ElPopper, ElAnchor, ElSteps } from "element-plus";
6
6
  import { ElAffix as ElAffix2, ElAlert as ElAlert2, ElAnchor as ElAnchor2, ElAside as ElAside2, ElAutocomplete as ElAutocomplete2, ElAvatar as ElAvatar2, ElBacktop as ElBacktop2, ElBadge as ElBadge2, ElBreadcrumb as ElBreadcrumb2, ElBreadcrumbItem as ElBreadcrumbItem2, ElButton as ElButton2, ElButtonGroup as ElButtonGroup2, ElCalendar as ElCalendar2, ElCard as ElCard2, ElCarousel as ElCarousel2, ElCarouselItem as ElCarouselItem2, ElCascader as ElCascader2, ElCascaderPanel as ElCascaderPanel2, ElCheckTag as ElCheckTag2, ElCheckbox as ElCheckbox2, ElCheckboxButton as ElCheckboxButton2, ElCheckboxGroup as ElCheckboxGroup2, ElCol as ElCol2, ElCollapse as ElCollapse2, ElCollapseItem as ElCollapseItem2, ElCollapseTransition as ElCollapseTransition2, ElColorPicker as ElColorPicker2, ElConfigProvider as ElConfigProvider2, ElContainer as ElContainer2, ElCountdown as ElCountdown2, ElDatePicker as ElDatePicker2, ElDescriptions as ElDescriptions2, ElDescriptionsItem as ElDescriptionsItem2, ElDialog as ElDialog2, ElDivider as ElDivider2, ElDrawer as ElDrawer2, ElDropdown as ElDropdown2, ElDropdownItem as ElDropdownItem2, ElDropdownMenu as ElDropdownMenu2, ElEmpty as ElEmpty2, ElFooter as ElFooter2, ElForm as ElForm2, ElFormItem as ElFormItem2, ElHeader as ElHeader2, ElIcon as ElIcon2, ElImage as ElImage2, ElImageViewer as ElImageViewer2, ElInfiniteScroll, ElInput as ElInput2, ElInputNumber as ElInputNumber2, ElInputTag as ElInputTag2, ElLink as ElLink2, ElLoading, ElMain as ElMain2, ElMention as ElMention2, ElMenu as ElMenu2, ElMenuItem as ElMenuItem2, ElMenuItemGroup as ElMenuItemGroup2, ElMessage as ElMessage2, ElMessageBox as ElMessageBox2, ElNotification as ElNotification2, ElOption as ElOption2, ElOptionGroup as ElOptionGroup2, ElOverlay as ElOverlay2, ElPageHeader as ElPageHeader2, ElPagination as ElPagination2, ElPopconfirm as ElPopconfirm2, ElPopover as ElPopover2, ElPopper as ElPopper2, ElProgress as ElProgress2, ElRadio as ElRadio2, ElRadioButton as ElRadioButton2, ElRadioGroup as ElRadioGroup2, ElRate as ElRate2, ElResult as ElResult2, ElRow as ElRow2, ElScrollbar as ElScrollbar2, ElSegmented as ElSegmented2, ElSelect as ElSelect2, ElSelectV2 as ElSelectV22, ElSkeleton as ElSkeleton2, ElSkeletonItem as ElSkeletonItem2, ElSlider as ElSlider2, ElSpace as ElSpace2, ElSplitter as ElSplitter2, ElSplitterPanel as ElSplitterPanel2, ElStatistic as ElStatistic2, ElSteps as ElSteps2, ElSubMenu as ElSubMenu2, ElSwitch as ElSwitch2, ElTabPane as ElTabPane2, ElTable as ElTable2, ElTableColumn as ElTableColumn2, ElTabs as ElTabs2, ElTag as ElTag2, ElText as ElText2, ElTimePicker as ElTimePicker2, ElTimeSelect as ElTimeSelect2, ElTimeline as ElTimeline2, ElTimelineItem as ElTimelineItem2, ElTooltip as ElTooltip2, ElTour as ElTour2, ElTourStep as ElTourStep2, ElTransfer as ElTransfer2, ElTree as ElTree2, ElTreeSelect as ElTreeSelect2, ElTreeV2 as ElTreeV22, ElUpload as ElUpload2, ElWatermark as ElWatermark2 } from "element-plus";
7
7
  import { createRouter, createWebHashHistory, useRoute, useRouter } from "vue-router";
8
8
  import { useTemplateRefsList, useClipboard, useWindowSize } from "@vueuse/core";
@@ -48,6 +48,27 @@ const generateUUID = () => {
48
48
  return (c === "x" ? random : random & 3 | 8).toString(16);
49
49
  });
50
50
  };
51
+ const deepClone = (obj) => {
52
+ if (obj === null || typeof obj !== "object") {
53
+ return obj;
54
+ }
55
+ if (obj instanceof Date) {
56
+ return new Date(obj.getTime());
57
+ }
58
+ if (obj instanceof Array) {
59
+ return obj.map((item) => deepClone(item));
60
+ }
61
+ if (typeof obj === "object") {
62
+ const clonedObj = {};
63
+ for (const key in obj) {
64
+ if (obj.hasOwnProperty(key)) {
65
+ clonedObj[key] = deepClone(obj[key]);
66
+ }
67
+ }
68
+ return clonedObj;
69
+ }
70
+ return obj;
71
+ };
51
72
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
52
73
  function getDefaultExportFromCjs(x) {
53
74
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
@@ -252,6 +273,7 @@ const CACHE_KEY = {
252
273
  LANG: "lang",
253
274
  THEME: "theme",
254
275
  LAYOUT: "layout",
276
+ TOPNAV: "TopNav",
255
277
  DICT_CACHE: "dictCache",
256
278
  // 登录表单
257
279
  LoginForm: "loginForm",
@@ -375,22 +397,38 @@ const whiteLight = {
375
397
  // 默认背景色
376
398
  bgColor: "#edf1ff",
377
399
  // 左侧菜单背景颜色
378
- leftMenuBgColor: "#fff",
400
+ leftMenuBgColor: "rgba(255,255,255,0.8)",
379
401
  // 左侧菜单项选中颜色
380
402
  leftMenuItemBgActiveColor: "rgba(36,104,242,1)",
381
403
  // 左侧菜单项移入颜色
382
- leftMenuItemBgHoverColor: "rgba(36,104,242,0.8)",
404
+ leftMenuItemBgHoverColor: "#eef4ff",
383
405
  // 左侧菜单文字颜色
384
406
  leftMenuTextColor: "#333",
407
+ leftMenuTextHoverColor: "#333",
385
408
  // 顶部菜单项移入颜色
386
409
  topMenuItemBgActiveColor: "rgba(36,104,242,1)",
387
410
  topMenuItemBgHoverColor: "rgba(36,104,242,0.8)",
388
411
  // 头部背景颜色
389
412
  topHeaderBgColor: "#fff",
390
413
  // 头部文字颜色
391
- topHeaderTextColor: "#6b778e",
414
+ topHeaderIconColor: "#3f5172",
415
+ topHeaderTextColor: "#333",
416
+ topHeaderHoverColor: "#2567f0",
417
+ topHeaderCompanyIconColor: "#88a0c3",
418
+ topHeaderCompanyBgColor: "rgba(246,248,255,1)",
392
419
  // 菜单触发器背景颜色
393
- menuTriggerBgColor: "#2468F2"
420
+ menuTriggerBgColor: "#2468F2",
421
+ // 多页签
422
+ tagsViewTextColor: "#7b7e90",
423
+ tagsViewTextActiveColor: "#fff",
424
+ tagsViewBgColor: "transparent",
425
+ tagsViewBgHoverColor: "#dce4f5",
426
+ tagsViewBgActiveColor: "#3d65ff",
427
+ tagsViewArrowColor: "#a4aec4",
428
+ tagsViewArrowHoverColor: "#7d8595",
429
+ tagsViewArrowBgColor: "transparent",
430
+ tagsViewArrowBgHoverColor: "#e5eaf0",
431
+ tagsViewArrowBgDisabledColor: "#e5eaf080"
394
432
  };
395
433
  const blueLight = {
396
434
  ...baseLight,
@@ -434,15 +472,31 @@ const blueLight = {
434
472
  leftMenuItemBgHoverColor: "rgba(103,153,255,0.5)",
435
473
  // 左侧菜单文字颜色
436
474
  leftMenuTextColor: "#fff",
475
+ leftMenuTextHoverColor: "#fff",
437
476
  // 顶部菜单项移入颜色
438
477
  topMenuItemBgActiveColor: "rgba(103,153,255,1)",
439
478
  topMenuItemBgHoverColor: "rgba(103,153,255,0.5)",
440
479
  // 头部背景颜色
441
480
  topHeaderBgColor: "270deg, #29ACFE 0%, #2468F2 100%",
442
481
  // 头部文字颜色
482
+ topHeaderIconColor: "#fff",
443
483
  topHeaderTextColor: "#fff",
484
+ topHeaderHoverColor: "#f6f6f6",
485
+ topHeaderCompanyIconColor: "#fff",
486
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
444
487
  // 菜单触发器背景颜色
445
- menuTriggerBgColor: "transparent"
488
+ menuTriggerBgColor: "transparent",
489
+ // 多页签
490
+ tagsViewTextColor: "#fff",
491
+ tagsViewTextActiveColor: "#fff",
492
+ tagsViewBgColor: "transparent",
493
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
494
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
495
+ tagsViewArrowColor: "#fff",
496
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
497
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
498
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
499
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
446
500
  };
447
501
  const redLight = {
448
502
  ...baseLight,
@@ -492,9 +546,24 @@ const redLight = {
492
546
  // 头部背景颜色
493
547
  topHeaderBgColor: "0, #ea4636, #ea4636",
494
548
  // 头部文字颜色
549
+ topHeaderIconColor: "#fff",
495
550
  topHeaderTextColor: "#fff",
551
+ topHeaderHoverColor: "#f6f6f6",
552
+ topHeaderCompanyIconColor: "#fff",
553
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
496
554
  // 菜单触发器背景颜色
497
- menuTriggerBgColor: "transparent"
555
+ menuTriggerBgColor: "transparent",
556
+ // 多页签
557
+ tagsViewTextColor: "#fff",
558
+ tagsViewTextActiveColor: "#fff",
559
+ tagsViewBgColor: "transparent",
560
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
561
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
562
+ tagsViewArrowColor: "#fff",
563
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
564
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
565
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
566
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
498
567
  };
499
568
  const greenLight = {
500
569
  ...baseLight,
@@ -544,9 +613,24 @@ const greenLight = {
544
613
  // 头部背景颜色
545
614
  topHeaderBgColor: "0, #0acfa5, #0acfa5",
546
615
  // 头部文字颜色
616
+ topHeaderIconColor: "#fff",
547
617
  topHeaderTextColor: "#fff",
618
+ topHeaderHoverColor: "#f6f6f6",
619
+ topHeaderCompanyIconColor: "#fff",
620
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
548
621
  // 菜单触发器背景颜色
549
- menuTriggerBgColor: "transparent"
622
+ menuTriggerBgColor: "transparent",
623
+ // 多页签
624
+ tagsViewTextColor: "#fff",
625
+ tagsViewTextActiveColor: "#fff",
626
+ tagsViewBgColor: "transparent",
627
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
628
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
629
+ tagsViewArrowColor: "#fff",
630
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
631
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
632
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
633
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
550
634
  };
551
635
  const springFestival = {
552
636
  ...baseLight,
@@ -596,9 +680,24 @@ const springFestival = {
596
680
  // 头部背景颜色
597
681
  topHeaderBgColor: "270deg, #f25416 0%, #ef2704 100%",
598
682
  // 头部文字颜色
683
+ topHeaderIconColor: "#fff",
599
684
  topHeaderTextColor: "#fff",
685
+ topHeaderHoverColor: "#f6f6f6",
686
+ topHeaderCompanyIconColor: "#fff",
687
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
600
688
  // 菜单触发器背景颜色
601
- menuTriggerBgColor: "transparent"
689
+ menuTriggerBgColor: "transparent",
690
+ // 多页签
691
+ tagsViewTextColor: "#fff",
692
+ tagsViewTextActiveColor: "#fff",
693
+ tagsViewBgColor: "transparent",
694
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
695
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
696
+ tagsViewArrowColor: "#fff",
697
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
698
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
699
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
700
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
602
701
  };
603
702
  const dragonBoatFestival = {
604
703
  ...baseLight,
@@ -648,9 +747,24 @@ const dragonBoatFestival = {
648
747
  // 头部背景颜色
649
748
  topHeaderBgColor: "270deg, #3ac677 0%, #0dc35c 100%",
650
749
  // 头部文字颜色
750
+ topHeaderIconColor: "#fff",
651
751
  topHeaderTextColor: "#fff",
752
+ topHeaderHoverColor: "#f6f6f6",
753
+ topHeaderCompanyIconColor: "#fff",
754
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
652
755
  // 菜单触发器背景颜色
653
- menuTriggerBgColor: "transparent"
756
+ menuTriggerBgColor: "transparent",
757
+ // 多页签
758
+ tagsViewTextColor: "#fff",
759
+ tagsViewTextActiveColor: "#fff",
760
+ tagsViewBgColor: "transparent",
761
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
762
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
763
+ tagsViewArrowColor: "#fff",
764
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
765
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
766
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
767
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
654
768
  };
655
769
  const midAutumnFestival = {
656
770
  ...baseLight,
@@ -700,9 +814,24 @@ const midAutumnFestival = {
700
814
  // 头部背景颜色
701
815
  topHeaderBgColor: "270deg, #fc9b4b 0%, #fa771d 100%",
702
816
  // 头部文字颜色
817
+ topHeaderIconColor: "#fff",
703
818
  topHeaderTextColor: "#fff",
819
+ topHeaderHoverColor: "#f6f6f6",
820
+ topHeaderCompanyIconColor: "#fff",
821
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
704
822
  // 菜单触发器背景颜色
705
- menuTriggerBgColor: "transparent"
823
+ menuTriggerBgColor: "transparent",
824
+ // 多页签
825
+ tagsViewTextColor: "#fff",
826
+ tagsViewTextActiveColor: "#fff",
827
+ tagsViewBgColor: "transparent",
828
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
829
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
830
+ tagsViewArrowColor: "#fff",
831
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
832
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
833
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
834
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
706
835
  };
707
836
  const newYearsDay = {
708
837
  ...baseLight,
@@ -752,9 +881,24 @@ const newYearsDay = {
752
881
  // 头部背景颜色
753
882
  topHeaderBgColor: "270deg, #f84958 0%, #f63344 100%",
754
883
  // 头部文字颜色
884
+ topHeaderIconColor: "#fff",
755
885
  topHeaderTextColor: "#fff",
886
+ topHeaderHoverColor: "#f6f6f6",
887
+ topHeaderCompanyIconColor: "#fff",
888
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
756
889
  // 菜单触发器背景颜色
757
- menuTriggerBgColor: "transparent"
890
+ menuTriggerBgColor: "transparent",
891
+ // 多页签
892
+ tagsViewTextColor: "#fff",
893
+ tagsViewTextActiveColor: "#fff",
894
+ tagsViewBgColor: "transparent",
895
+ tagsViewBgHoverColor: "rgba(255,255,255,.3)",
896
+ tagsViewBgActiveColor: "rgba(255,255,255,.2)",
897
+ tagsViewArrowColor: "#fff",
898
+ tagsViewArrowHoverColor: "rgba(255,255,255,.8)",
899
+ tagsViewArrowBgColor: "rgba(255,255,255,.2)",
900
+ tagsViewArrowBgHoverColor: "rgba(255,255,255,.3)",
901
+ tagsViewArrowBgDisabledColor: "rgba(255,255,255,.5)"
758
902
  };
759
903
  const systemTheme = {
760
904
  whiteLight,
@@ -773,7 +917,7 @@ const useAppStore = defineStore("layout-app", {
773
917
  userInfo: "userInfo",
774
918
  // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
775
919
  sizeMap: ["default", "large", "small"],
776
- title: "业务中台",
920
+ title: "浪潮信链",
777
921
  // 标题
778
922
  pageLoading: false,
779
923
  // 路由跳转loading
@@ -789,7 +933,7 @@ const useAppStore = defineStore("layout-app", {
789
933
  // 折叠图标
790
934
  search: false,
791
935
  // 搜索图标
792
- locale: false,
936
+ locale: true,
793
937
  // 多语言图标
794
938
  setting: true,
795
939
  // 偏好设置
@@ -803,13 +947,15 @@ const useAppStore = defineStore("layout-app", {
803
947
  // 显示页脚
804
948
  greyMode: false,
805
949
  // 是否开始灰色模式,用于特殊悼念日
806
- layout: wsCache$3.get(CACHE_KEY.LAYOUT) || "left",
807
- // layout布局
950
+ // layout: wsCache.get(CACHE_KEY.LAYOUT) || 'left', // layout布局
951
+ layout: "top",
808
952
  currentSize: wsCache$3.get("default") || "default",
809
953
  // 组件尺寸
810
954
  theme: wsCache$3.get(CACHE_KEY.THEME) || "whiteLight",
811
- isSetTheme: false
955
+ isSetTheme: false,
812
956
  //初始化主题色
957
+ // topNav: wsCache.get(CACHE_KEY.TOPNAV) || 'normal', // 顶部导航栏 normal、floating、collapsed
958
+ topNav: "normal"
813
959
  };
814
960
  },
815
961
  getters: {
@@ -875,6 +1021,9 @@ const useAppStore = defineStore("layout-app", {
875
1021
  },
876
1022
  getIsSetTheme() {
877
1023
  return this.isSetTheme;
1024
+ },
1025
+ getTopNav() {
1026
+ return this.topNav;
878
1027
  }
879
1028
  },
880
1029
  actions: {
@@ -936,6 +1085,10 @@ const useAppStore = defineStore("layout-app", {
936
1085
  setFooter(footer) {
937
1086
  this.footer = footer;
938
1087
  },
1088
+ setTopNav(topNav) {
1089
+ this.topNav = topNav;
1090
+ wsCache$3.set(CACHE_KEY.TOPNAV, topNav);
1091
+ },
939
1092
  async setUserTheme() {
940
1093
  }
941
1094
  },
@@ -1044,6 +1197,72 @@ const addToChildren = (routes, children, routeModule) => {
1044
1197
  }
1045
1198
  }
1046
1199
  };
1200
+ function findRouterBy(routers, key, value) {
1201
+ var _a2;
1202
+ for (const router of routers) {
1203
+ if (router[key] === value)
1204
+ return router;
1205
+ if ((_a2 = router.children) == null ? void 0 : _a2.length) {
1206
+ const found = findRouterBy(router.children, key, value);
1207
+ if (found)
1208
+ return found;
1209
+ }
1210
+ }
1211
+ return void 0;
1212
+ }
1213
+ function buildChildPaths(router) {
1214
+ const parentPath = router.path ? router.path.startsWith("/") ? router.path : `/${router.path}` : "";
1215
+ return (router.children || []).map((child) => {
1216
+ const childPath = child.path ? parentPath.endsWith("/") ? child.path.startsWith("/") ? child.path.substring(1) : child.path : child.path.startsWith("/") ? child.path : `/${child.path}` : "";
1217
+ let fullPath = `${parentPath}${childPath}`;
1218
+ if (fullPath.length > 1 && fullPath.endsWith("/")) {
1219
+ fullPath = fullPath.slice(0, -1);
1220
+ }
1221
+ return { ...child, path: fullPath };
1222
+ });
1223
+ }
1224
+ function prependPathToRoutes(routes, parentPath) {
1225
+ if (!parentPath || !routes)
1226
+ return routes;
1227
+ const base = parentPath === "/" ? "" : parentPath.replace(/\/$/, "");
1228
+ return routes.map((route) => {
1229
+ let newPath;
1230
+ if (!route.path) {
1231
+ newPath = base || "/";
1232
+ } else {
1233
+ newPath = base + (route.path.startsWith("/") ? route.path : `/${route.path}`);
1234
+ }
1235
+ if (newPath.length > 1 && newPath.endsWith("/")) {
1236
+ newPath = newPath.slice(0, -1);
1237
+ }
1238
+ return {
1239
+ ...route,
1240
+ path: newPath
1241
+ };
1242
+ });
1243
+ }
1244
+ function mergeExampleRoutes(targetModule, exampleRoutes, position = "start") {
1245
+ if (!exampleRoutes || exampleRoutes.length === 0)
1246
+ return;
1247
+ const convertRouteToMenu = (route) => {
1248
+ var _a2, _b, _c, _d, _e, _f;
1249
+ return {
1250
+ name: ((_a2 = route.meta) == null ? void 0 : _a2.title) || route.name || "",
1251
+ path: route.path,
1252
+ icon: ((_b = route.meta) == null ? void 0 : _b.icon) || "",
1253
+ visible: ((_c = route.meta) == null ? void 0 : _c.hidden) !== true,
1254
+ redirect: route.redirect || "",
1255
+ meta: {
1256
+ title: ((_d = route.meta) == null ? void 0 : _d.title) || route.name || "",
1257
+ icon: ((_e = route.meta) == null ? void 0 : _e.icon) || "",
1258
+ hidden: ((_f = route.meta) == null ? void 0 : _f.hidden) === true
1259
+ },
1260
+ children: (route.children || []).map(convertRouteToMenu)
1261
+ };
1262
+ };
1263
+ const converted = exampleRoutes.map(convertRouteToMenu);
1264
+ targetModule.children = position === "start" ? converted.concat(targetModule.children || []) : (targetModule.children || []).concat(converted);
1265
+ }
1047
1266
  const usePermissionStore = defineStore("layout-permission", {
1048
1267
  state: () => ({
1049
1268
  routers: [],
@@ -1052,6 +1271,7 @@ const usePermissionStore = defineStore("layout-permission", {
1052
1271
  leftMenuRouters: [],
1053
1272
  moduleRouters: [],
1054
1273
  moduleId: void 0,
1274
+ moduleName: void 0,
1055
1275
  roleRouters: []
1056
1276
  // 菜单数据存储到 state,确保响应式
1057
1277
  }),
@@ -1079,6 +1299,9 @@ const usePermissionStore = defineStore("layout-permission", {
1079
1299
  },
1080
1300
  getModuleId() {
1081
1301
  return this.moduleId;
1302
+ },
1303
+ getModuleName() {
1304
+ return this.moduleName;
1082
1305
  }
1083
1306
  },
1084
1307
  actions: {
@@ -1101,23 +1324,22 @@ const usePermissionStore = defineStore("layout-permission", {
1101
1324
  const childPath = child.path ? child.path.startsWith("/") ? child.path : `/${child.path}` : "";
1102
1325
  return { ...child, path: `${basePath}${childPath}` };
1103
1326
  });
1104
- this.leftMenuRouters = [];
1105
- nextTick(() => {
1106
- this.leftMenuRouters = routers;
1107
- });
1327
+ this.leftMenuRouters = routers;
1108
1328
  },
1109
1329
  // 处理模块对应菜单
1110
- setModuleRouters(menuId) {
1111
- this.moduleId = menuId;
1112
- const findRouter = this.getRoleRouters.find((router) => router.id === menuId);
1330
+ // 返回修改后的 exampleRoutes(已拼接模块路径前缀),供路由注册使用
1331
+ setModuleRouters(menuId, exampleRoutes = [], examplePosition = "start") {
1332
+ const findRouter = findRouterBy(this.getRoleRouters, "id", menuId);
1113
1333
  if (findRouter) {
1114
- const children = findRouter.children || [];
1115
- const parentPath = findRouter.path ? findRouter.path.startsWith("/") ? findRouter.path : `/${findRouter.path}` : "";
1116
- this.moduleRouters = children.map((child) => {
1117
- const childPath = child.path ? parentPath.endsWith("/") ? child.path.startsWith("/") ? child.path.substring(1) : child.path : child.path.startsWith("/") ? child.path : `/${child.path}` : "";
1118
- return { ...child, path: `${parentPath}${childPath}` };
1119
- });
1334
+ this.moduleId = findRouter.id;
1335
+ this.moduleName = findRouter.name;
1336
+ this.moduleRouters = buildChildPaths(findRouter);
1337
+ const parentPath = findRouter.path || "";
1338
+ const prefixedExampleRoutes = prependPathToRoutes(exampleRoutes, parentPath);
1339
+ mergeExampleRoutes(findRouter, prefixedExampleRoutes, examplePosition);
1340
+ return prefixedExampleRoutes;
1120
1341
  }
1342
+ return exampleRoutes;
1121
1343
  },
1122
1344
  resetState() {
1123
1345
  this.routers = [];
@@ -1126,20 +1348,23 @@ const usePermissionStore = defineStore("layout-permission", {
1126
1348
  this.leftMenuRouters = [];
1127
1349
  this.moduleRouters = [];
1128
1350
  this.moduleId = void 0;
1351
+ this.moduleName = void 0;
1129
1352
  this.roleRouters = [];
1130
1353
  },
1131
1354
  // 处理模块对应菜单(通过模块code)
1132
- setModuleRoutersByCode(moduleCode) {
1133
- const findRouter = this.getRoleRouters.find((router) => router.moduleCode === moduleCode);
1355
+ // 返回修改后的 exampleRoutes(已拼接模块路径前缀),供路由注册使用
1356
+ setModuleRoutersByCode(moduleCode, exampleRoutes = [], examplePosition = "start") {
1357
+ const findRouter = findRouterBy(this.getRoleRouters, "moduleCode", moduleCode);
1134
1358
  if (findRouter) {
1135
1359
  this.moduleId = findRouter.id;
1136
- const children = findRouter.children || [];
1137
- const parentPath = findRouter.path ? findRouter.path.startsWith("/") ? findRouter.path : `/${findRouter.path}` : "";
1138
- this.moduleRouters = children.map((child) => {
1139
- const childPath = child.path ? parentPath.endsWith("/") ? child.path.startsWith("/") ? child.path.substring(1) : child.path : child.path.startsWith("/") ? child.path : `/${child.path}` : "";
1140
- return { ...child, path: `${parentPath}${childPath}` };
1141
- });
1360
+ this.moduleName = findRouter.name;
1361
+ this.moduleRouters = buildChildPaths(findRouter);
1362
+ const parentPath = findRouter.path || "";
1363
+ const prefixedExampleRoutes = prependPathToRoutes(exampleRoutes, parentPath);
1364
+ mergeExampleRoutes(findRouter, prefixedExampleRoutes, examplePosition);
1365
+ return prefixedExampleRoutes;
1142
1366
  }
1367
+ return exampleRoutes;
1143
1368
  }
1144
1369
  },
1145
1370
  persist: false
@@ -3489,8 +3714,8 @@ try {
3489
3714
  }
3490
3715
  } catch (err) {
3491
3716
  }
3492
- const _hoisted_1$e = ["xlink:href"];
3493
- const _hoisted_2$c = ["data-icon"];
3717
+ const _hoisted_1$d = ["xlink:href"];
3718
+ const _hoisted_2$b = ["data-icon"];
3494
3719
  const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
3495
3720
  __name: "Icon",
3496
3721
  props: {
@@ -3571,7 +3796,7 @@ const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
3571
3796
  key: 0,
3572
3797
  class: normalizeClass(unref(getSvgClass))
3573
3798
  }, [
3574
- createElementVNode("use", { "xlink:href": unref(symbolId) }, null, 8, _hoisted_1$e)
3799
+ createElementVNode("use", { "xlink:href": unref(symbolId) }, null, 8, _hoisted_1$d)
3575
3800
  ], 2)) : (openBlock(), createElementBlock("span", {
3576
3801
  key: 1,
3577
3802
  ref_key: "elRef",
@@ -3582,7 +3807,7 @@ const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
3582
3807
  createElementVNode("span", {
3583
3808
  class: normalizeClass(unref(getSvgClass)),
3584
3809
  "data-icon": unref(symbolId)
3585
- }, null, 10, _hoisted_2$c)
3810
+ }, null, 10, _hoisted_2$b)
3586
3811
  ], 6))
3587
3812
  ]),
3588
3813
  _: 1
@@ -3643,19 +3868,10 @@ const useRenderMenuTitle = () => {
3643
3868
  title = "Please set title",
3644
3869
  icon
3645
3870
  } = meta;
3646
- const isIcon = computed(() => {
3647
- switch (layout.value) {
3648
- case "left":
3649
- return level == 0;
3650
- case "top":
3651
- return false;
3652
- case "topLeft":
3653
- return mode == "vertical" && level == 0;
3654
- }
3655
- });
3656
- return createVNode(Fragment, null, [isIcon.value && icon ? createVNode(_sfc_main$x, {
3657
- "icon": meta.icon
3658
- }, null) : void 0, createVNode("span", {
3871
+ const showIcon = computed(() => layout.value !== "top");
3872
+ return createVNode(Fragment, null, [showIcon.value && createVNode(_sfc_main$x, {
3873
+ "icon": icon ? icon : "ep:house"
3874
+ }, null), createVNode("span", {
3659
3875
  "class": [`${prefixCls$5}__title`, "overflow-hidden overflow-ellipsis whitespace-nowrap text-ellipsis"]
3660
3876
  }, [t2(title)])]);
3661
3877
  };
@@ -3865,21 +4081,30 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
3865
4081
  }
3866
4082
  });
3867
4083
  };
4084
+ const showCollapse = computed(() => {
4085
+ return layout.value == "left" || unref(layout) == "topLeft" && props.mode == "vertical";
4086
+ });
4087
+ const moduleName = computed(() => permissionStore.getModuleName);
4088
+ const showModuleName = computed(() => (layout.value == "left" || layout.value == "topLeft" && props.mode == "vertical") && !collapse.value);
3868
4089
  return () => createVNode("div", {
3869
4090
  "id": prefixCls$4,
3870
- "class": [`${prefixCls$4} ${prefixCls$4}__${unref(menuMode)}`, "h-[100%] flex flex-col", {
4091
+ "class": [`${prefixCls$4} ${prefixCls$4}__${unref(menuMode)}`, "flex flex-col", {
3871
4092
  "w-[var(--left-menu-min-width)]": unref(collapse),
3872
4093
  "w-[var(--left-menu-max-width)]": !unref(collapse),
3873
- "bg-[linear-gradient(var(--left-menu-bg-color))]": unref(layout) == "left" || unref(layout) == "topLeft" && props.mode == "vertical"
4094
+ "bg-[linear-gradient(var(--left-menu-bg-color))]": unref(layout) == "left" || unref(layout) == "topLeft" && props.mode == "vertical",
4095
+ "collapse": unref(collapse),
4096
+ "un-collapse": !unref(collapse)
3874
4097
  }]
3875
- }, [createVNode("div", {
4098
+ }, [showModuleName.value && createVNode("div", {
4099
+ "class": "text-center text-16px font-500 p-16px pb-10px text-[var(--left-menu-text-color)]"
4100
+ }, [moduleName.value]), createVNode("div", {
3876
4101
  "class": "flex-1 overflow-hidden"
3877
- }, [renderMenuWrap()]), layout.value !== "top" ? createVNode(Collapse, {
4102
+ }, [renderMenuWrap()]), unref(showCollapse) ? createVNode(Collapse, {
3878
4103
  "color": "var(--top-header-text-color)"
3879
4104
  }, null) : void 0]);
3880
4105
  }
3881
4106
  });
3882
- const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-474ce778"]]);
4107
+ const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-ca95b9cd"]]);
3883
4108
  var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
3884
4109
  function int2char(n2) {
3885
4110
  return BI_RM.charAt(n2);
@@ -7535,10 +7760,15 @@ const useUserStore = defineStore("layout-user", {
7535
7760
  avatar: "",
7536
7761
  nickname: "",
7537
7762
  deptId: 0,
7763
+ deptName: "",
7538
7764
  mobile: "",
7539
7765
  email: "",
7540
- username: ""
7541
- }
7766
+ username: "",
7767
+ orgId: "",
7768
+ orgName: ""
7769
+ },
7770
+ // 公司列表
7771
+ companyList: []
7542
7772
  }),
7543
7773
  getters: {
7544
7774
  getPermissions() {
@@ -7556,6 +7786,9 @@ const useUserStore = defineStore("layout-user", {
7556
7786
  getUserInfo() {
7557
7787
  const userInfo = wsCache$1.get(CACHE_KEY.USER);
7558
7788
  return userInfo;
7789
+ },
7790
+ getCompanyList() {
7791
+ return this.companyList;
7559
7792
  }
7560
7793
  },
7561
7794
  actions: {
@@ -7592,6 +7825,10 @@ const useUserStore = defineStore("layout-user", {
7592
7825
  userInfo.user.email = user.email;
7593
7826
  wsCache$1.set(CACHE_KEY.USER, userInfo);
7594
7827
  },
7828
+ // 更新用户企业列表信息
7829
+ setCompanyListAction(companyList) {
7830
+ this.companyList = companyList || [];
7831
+ },
7595
7832
  async loginOut() {
7596
7833
  removeToken();
7597
7834
  deleteUserCache();
@@ -7978,9 +8215,9 @@ function useScrollTo({
7978
8215
  }
7979
8216
  return { start: run, stop };
7980
8217
  }
7981
- const _hoisted_1$d = ["id"];
7982
- const _hoisted_2$b = { class: "flex-1 overflow-hidden px-20px" };
7983
- const _hoisted_3$a = { class: "h-[var(--tags-view-height)] flex" };
8218
+ const _hoisted_1$c = ["id"];
8219
+ const _hoisted_2$a = { class: "flex-1 overflow-hidden px-16px" };
8220
+ const _hoisted_3$9 = { class: "h-[var(--tags-view-height)] flex" };
7984
8221
  const _hoisted_4$8 = ["onClick"];
7985
8222
  const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
7986
8223
  __name: "TagsView",
@@ -8058,6 +8295,7 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8058
8295
  const wrap$ = (_a2 = unref(scrollbarRef)) == null ? void 0 : _a2.wrapRef;
8059
8296
  if (!wrap$)
8060
8297
  return;
8298
+ scrollStopFn == null ? void 0 : scrollStopFn();
8061
8299
  let firstTag = null;
8062
8300
  let lastTag = null;
8063
8301
  const tagList = unref(tagLinksRefs);
@@ -8066,12 +8304,22 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8066
8304
  lastTag = tagList[tagList.length - 1];
8067
8305
  }
8068
8306
  if ((firstTag == null ? void 0 : firstTag.to).fullPath === currentTag.fullPath) {
8069
- const { start } = useScrollTo({
8307
+ const { start, stop } = useScrollTo({
8070
8308
  el: wrap$,
8071
8309
  position: "scrollLeft",
8072
8310
  to: 0,
8073
8311
  duration: 500
8074
8312
  });
8313
+ scrollStopFn = stop;
8314
+ start();
8315
+ } else if ((lastTag == null ? void 0 : lastTag.to).fullPath === currentTag.fullPath) {
8316
+ const { start, stop } = useScrollTo({
8317
+ el: wrap$,
8318
+ position: "scrollLeft",
8319
+ to: wrap$.scrollWidth - wrap$.offsetWidth,
8320
+ duration: 500
8321
+ });
8322
+ scrollStopFn = stop;
8075
8323
  start();
8076
8324
  } else if ((lastTag == null ? void 0 : lastTag.to).fullPath === currentTag.fullPath) {
8077
8325
  const { start } = useScrollTo({
@@ -8082,9 +8330,7 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8082
8330
  });
8083
8331
  start();
8084
8332
  } else {
8085
- const currentIndex = tagList.findIndex(
8086
- (item) => (item == null ? void 0 : item.to).fullPath === currentTag.fullPath
8087
- );
8333
+ const currentIndex = tagList.findIndex((item) => (item == null ? void 0 : item.to).fullPath === currentTag.fullPath);
8088
8334
  const tgsRefs = document.getElementsByClassName(`${prefixCls2}__item`);
8089
8335
  const prevTag = tgsRefs[currentIndex - 1];
8090
8336
  const nextTag = tgsRefs[currentIndex + 1];
@@ -8093,20 +8339,22 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8093
8339
  const afterNextTagOffsetLeft = nextTag.offsetLeft + nextTag.offsetWidth;
8094
8340
  const beforePrevTagOffsetLeft = prevTag.offsetLeft;
8095
8341
  if (afterNextTagOffsetLeft > unref(scrollLeftNumber) + wrap$.offsetWidth) {
8096
- const { start } = useScrollTo({
8342
+ const { start, stop } = useScrollTo({
8097
8343
  el: wrap$,
8098
8344
  position: "scrollLeft",
8099
8345
  to: afterNextTagOffsetLeft - wrap$.offsetWidth,
8100
8346
  duration: 500
8101
8347
  });
8348
+ scrollStopFn = stop;
8102
8349
  start();
8103
8350
  } else if (beforePrevTagOffsetLeft < unref(scrollLeftNumber)) {
8104
- const { start } = useScrollTo({
8351
+ const { start, stop } = useScrollTo({
8105
8352
  el: wrap$,
8106
8353
  position: "scrollLeft",
8107
8354
  to: beforePrevTagOffsetLeft,
8108
8355
  duration: 500
8109
8356
  });
8357
+ scrollStopFn = stop;
8110
8358
  start();
8111
8359
  }
8112
8360
  }
@@ -8119,13 +8367,53 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8119
8367
  };
8120
8368
  const scrollbarRef = ref();
8121
8369
  const scrollLeftNumber = ref(0);
8122
- const scroll = ({ scrollLeft }) => {
8370
+ const showArrows = ref(false);
8371
+ const disabledLeftArrow = ref(false);
8372
+ const disabledRightArrow = ref(false);
8373
+ let scrollStopFn = null;
8374
+ const checkArrows = () => {
8375
+ var _a2;
8376
+ const wrap$ = (_a2 = unref(scrollbarRef)) == null ? void 0 : _a2.wrapRef;
8377
+ if (!wrap$)
8378
+ return;
8379
+ const { scrollLeft, scrollWidth, offsetWidth } = wrap$;
8380
+ showArrows.value = scrollWidth > offsetWidth;
8381
+ disabledLeftArrow.value = scrollLeft <= 0;
8382
+ disabledRightArrow.value = scrollLeft >= scrollWidth - offsetWidth - 1;
8383
+ };
8384
+ const handleScroll = ({ scrollLeft }) => {
8123
8385
  scrollLeftNumber.value = scrollLeft;
8386
+ checkArrows();
8387
+ };
8388
+ const handleScrollLeft = () => {
8389
+ var _a2;
8390
+ const wrap$ = (_a2 = unref(scrollbarRef)) == null ? void 0 : _a2.wrapRef;
8391
+ if (wrap$) {
8392
+ wrap$.scrollTo({
8393
+ left: Math.max(0, wrap$.scrollLeft - 300),
8394
+ behavior: "smooth"
8395
+ });
8396
+ }
8397
+ };
8398
+ const handleScrollRight = () => {
8399
+ var _a2;
8400
+ const wrap$ = (_a2 = unref(scrollbarRef)) == null ? void 0 : _a2.wrapRef;
8401
+ if (wrap$) {
8402
+ wrap$.scrollTo({
8403
+ left: wrap$.scrollLeft + 300,
8404
+ behavior: "smooth"
8405
+ });
8406
+ }
8124
8407
  };
8125
8408
  onBeforeMount(() => {
8126
8409
  initTags();
8127
8410
  addTags();
8128
8411
  });
8412
+ onMounted(() => {
8413
+ nextTick(() => {
8414
+ checkArrows();
8415
+ });
8416
+ });
8129
8417
  watch(
8130
8418
  () => currentRoute.value,
8131
8419
  () => {
@@ -8138,17 +8426,17 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8138
8426
  const _component_router_link = resolveComponent("router-link");
8139
8427
  return openBlock(), createElementBlock("div", {
8140
8428
  id: unref(prefixCls2),
8141
- class: normalizeClass([unref(prefixCls2), "relative w-full flex bg-[#dbe4f880]"])
8429
+ class: normalizeClass([unref(prefixCls2), "relative flex items-center"])
8142
8430
  }, [
8143
- createElementVNode("div", _hoisted_2$b, [
8431
+ createElementVNode("div", _hoisted_2$a, [
8144
8432
  createVNode(unref(ElScrollbar), {
8145
8433
  ref_key: "scrollbarRef",
8146
8434
  ref: scrollbarRef,
8147
8435
  class: "h-full",
8148
- onScroll: scroll
8436
+ onScroll: handleScroll
8149
8437
  }, {
8150
8438
  default: withCtx(() => [
8151
- createElementVNode("div", _hoisted_3$a, [
8439
+ createElementVNode("div", _hoisted_3$9, [
8152
8440
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(visitedViews), (item) => {
8153
8441
  var _a2, _b, _c, _d, _e, _f;
8154
8442
  return openBlock(), createBlock(unref(_sfc_main$u), {
@@ -8208,18 +8496,21 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8208
8496
  var _a3, _b2;
8209
8497
  return [
8210
8498
  createElementVNode("div", {
8211
- class: normalizeClass(`h-full flex items-center justify-center gap-8px whitespace-nowrap ${unref(prefixCls2)}__item--label`),
8499
+ class: normalizeClass(`h-full flex items-center justify-center gap-16px whitespace-nowrap ${unref(prefixCls2)}__item--label`),
8212
8500
  onClick: navigate
8213
8501
  }, [
8214
8502
  createElementVNode("span", null, toDisplayString(unref(t2)((_a3 = item == null ? void 0 : item.meta) == null ? void 0 : _a3.title)), 1),
8215
- ((_b2 = unref(visitedViews)) == null ? void 0 : _b2.length) > 1 ? (openBlock(), createBlock(_component_Icon, {
8216
- key: 0,
8217
- class: normalizeClass(`${unref(prefixCls2)}__item--close`),
8218
- size: 8,
8219
- color: isActive(item) ? "#444444ff" : "#7b7e904ff",
8220
- icon: "svg-icon:tag-close",
8221
- onClick: withModifiers(($event) => closeSelectedTag(item), ["prevent", "stop"])
8222
- }, null, 8, ["class", "color", "onClick"])) : createCommentVNode("", true)
8503
+ ((_b2 = unref(visitedViews)) == null ? void 0 : _b2.length) > 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
8504
+ createVNode(_component_Icon, {
8505
+ class: normalizeClass(`${unref(prefixCls2)}__item--close`),
8506
+ size: 8,
8507
+ icon: "svg-icon:tag-close",
8508
+ onClick: withModifiers(($event) => closeSelectedTag(item), ["prevent", "stop"])
8509
+ }, null, 8, ["class", "onClick"]),
8510
+ createElementVNode("span", {
8511
+ class: normalizeClass(`${unref(prefixCls2)}__item--dot`)
8512
+ }, null, 2)
8513
+ ], 64)) : createCommentVNode("", true)
8223
8514
  ], 10, _hoisted_4$8)
8224
8515
  ];
8225
8516
  }),
@@ -8234,12 +8525,32 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8234
8525
  ]),
8235
8526
  _: 1
8236
8527
  }, 512)
8237
- ])
8238
- ], 10, _hoisted_1$d);
8528
+ ]),
8529
+ unref(showArrows) ? (openBlock(), createElementBlock("div", {
8530
+ key: 0,
8531
+ class: normalizeClass(`${unref(prefixCls2)}__arrow ${unref(prefixCls2)}__arrow--left ${unref(disabledLeftArrow) ? "is-disabled" : ""}`),
8532
+ onClick: handleScrollLeft
8533
+ }, [
8534
+ createVNode(_component_Icon, {
8535
+ icon: "svg-icon:chevron-left",
8536
+ size: 10
8537
+ })
8538
+ ], 2)) : createCommentVNode("", true),
8539
+ unref(showArrows) ? (openBlock(), createElementBlock("div", {
8540
+ key: 1,
8541
+ class: normalizeClass(`${unref(prefixCls2)}__arrow ${unref(prefixCls2)}__arrow--right ${unref(disabledRightArrow) ? "is-disabled" : ""}`),
8542
+ onClick: handleScrollRight
8543
+ }, [
8544
+ createVNode(_component_Icon, {
8545
+ icon: "svg-icon:chevron-right",
8546
+ size: 10
8547
+ })
8548
+ ], 2)) : createCommentVNode("", true)
8549
+ ], 10, _hoisted_1$c);
8239
8550
  };
8240
8551
  }
8241
8552
  });
8242
- const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-dadb909c"]]);
8553
+ const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-3fbf2f73"]]);
8243
8554
  const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8244
8555
  __name: "MenuTrigger",
8245
8556
  props: {
@@ -8250,9 +8561,12 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8250
8561
  },
8251
8562
  emits: ["click", "toggle"],
8252
8563
  setup(__props, { emit: __emit }) {
8564
+ const appStore = useAppStore();
8253
8565
  const { getPrefixCls: getPrefixCls2 } = useDesign();
8254
8566
  const prefixCls2 = getPrefixCls2("menu-trigger");
8255
8567
  const props = __props;
8568
+ const theme = computed(() => appStore.getTheme);
8569
+ const triggerIcon = computed(() => props.active ? "svg-icon:close-square" : theme.value === "whiteLight" ? "svg-icon:menu-trigger-filled" : "svg-icon:menu-trigger");
8256
8570
  const emit = __emit;
8257
8571
  const handleClick = () => {
8258
8572
  emit("click");
@@ -8265,21 +8579,20 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8265
8579
  onClick: handleClick
8266
8580
  }, [
8267
8581
  createVNode(_component_Icon, {
8268
- icon: props.active ? "ant-design:close-outlined" : "svg-icon:menu-trigger",
8269
- svgClass: "!w-full !h-full",
8270
- class: normalizeClass(["!w-18px", "!h-18px", "icon-color"])
8582
+ icon: unref(triggerIcon),
8583
+ class: normalizeClass(["icon-color"]),
8584
+ size: 18
8271
8585
  }, null, 8, ["icon"])
8272
8586
  ], 2);
8273
8587
  };
8274
8588
  }
8275
8589
  });
8276
- const MenuTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-f7f5d176"]]);
8277
- const _hoisted_1$c = { class: "sidebar-inner" };
8278
- const _hoisted_2$a = ["onClick"];
8279
- const _hoisted_3$9 = ["onClick"];
8590
+ const MenuTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-df837f35"]]);
8591
+ const _hoisted_1$b = { class: "sidebar-inner" };
8592
+ const _hoisted_2$9 = ["onClick"];
8593
+ const _hoisted_3$8 = ["onClick"];
8280
8594
  const _hoisted_4$7 = ["onClick"];
8281
- const _hoisted_5$5 = { key: 0 };
8282
- const _hoisted_6$4 = { key: 1 };
8595
+ const _hoisted_5$6 = ["onClick"];
8283
8596
  const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel" }, {
8284
8597
  __name: "ProductServicePanel",
8285
8598
  props: {
@@ -8320,11 +8633,16 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8320
8633
  }, 300);
8321
8634
  }
8322
8635
  });
8323
- const activeCategory = ref(0);
8636
+ const expandedCardIndex = ref(null);
8637
+ const activeProductIndex = ref(0);
8638
+ const activeModuleIndex = ref(0);
8324
8639
  const routers = computed(() => permissionStore.getRoleRouters);
8640
+ const productMenuRouters = computed(() => {
8641
+ return (routers.value || []).filter((item) => item.type === 10);
8642
+ });
8325
8643
  const filteredMenus = computed(() => {
8326
8644
  const keyword = debouncedKeyword.value.toLowerCase().trim();
8327
- const items = routers.value;
8645
+ const items = productMenuRouters.value;
8328
8646
  if (!items || !Array.isArray(items))
8329
8647
  return [];
8330
8648
  const filterFn = (list) => {
@@ -8345,7 +8663,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8345
8663
  };
8346
8664
  return filterFn(items);
8347
8665
  });
8348
- const groupedMenus = computed(() => {
8666
+ const productList = computed(() => {
8349
8667
  return filteredMenus.value.map((menu) => {
8350
8668
  var _a2;
8351
8669
  return {
@@ -8358,19 +8676,43 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8358
8676
  };
8359
8677
  });
8360
8678
  });
8361
- const currentCategoryMenus = computed(() => {
8362
- if (groupedMenus.value.length === 0)
8679
+ const activeProduct = computed(() => {
8680
+ if (productList.value.length === 0)
8681
+ return null;
8682
+ return productList.value[activeProductIndex.value] || null;
8683
+ });
8684
+ const activeModules = computed(() => {
8685
+ var _a2;
8686
+ return ((_a2 = activeProduct.value) == null ? void 0 : _a2.children) || [];
8687
+ });
8688
+ const activeModule = computed(() => {
8689
+ if (activeModules.value.length === 0)
8690
+ return null;
8691
+ return activeModules.value[activeModuleIndex.value] || null;
8692
+ });
8693
+ const contentGroups = computed(() => {
8694
+ if (!activeModule.value)
8363
8695
  return [];
8364
- const group = groupedMenus.value[activeCategory.value];
8365
- return (group == null ? void 0 : group.children) || [];
8696
+ const thirdMenus = (activeModule.value.children || []).filter(isVisible);
8697
+ return thirdMenus.map((third) => ({
8698
+ id: third.id,
8699
+ title: getMenuTitle(third),
8700
+ path: third.path,
8701
+ items: (third.children || []).filter(isVisible).map((fourth) => ({
8702
+ id: fourth.id,
8703
+ title: getMenuTitle(fourth),
8704
+ path: fourth.path
8705
+ }))
8706
+ }));
8366
8707
  });
8367
8708
  const joinPath = (...paths) => {
8368
8709
  return paths.filter(Boolean).reduce((result, path) => {
8369
8710
  if (!result)
8370
8711
  return path;
8712
+ if (path.startsWith("/"))
8713
+ return path;
8371
8714
  const normalizedBase = result.endsWith("/") ? result.slice(0, -1) : result;
8372
- const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
8373
- return `${normalizedBase}/${normalizedPath}`;
8715
+ return `${normalizedBase}/${path}`;
8374
8716
  }, "");
8375
8717
  };
8376
8718
  const getAccessiblePath = (item, parentPath = "") => {
@@ -8388,58 +8730,89 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8388
8730
  clearTimeout(debounceTimer);
8389
8731
  searchKeyword.value = "";
8390
8732
  debouncedKeyword.value = "";
8391
- activeCategory.value = 0;
8733
+ activeProductIndex.value = 0;
8734
+ activeModuleIndex.value = 0;
8392
8735
  };
8393
8736
  const handleSelect = (item, parentPath = "") => {
8394
- var _a2, _b;
8737
+ var _a2, _b, _c, _d;
8395
8738
  const fullPath = getAccessiblePath(item, parentPath);
8396
8739
  if (fullPath) {
8740
+ const normalizedPath = fullPath.startsWith("/") ? fullPath : `/${fullPath}`;
8397
8741
  const currentModuleId = permissionStore.getModuleId;
8398
- const selectedModuleId = (_a2 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a2.id;
8742
+ const selectedModuleId = (_b = (_a2 = productList.value[activeProductIndex.value]) == null ? void 0 : _a2.children[activeModuleIndex.value]) == null ? void 0 : _b.id;
8399
8743
  if (selectedModuleId === currentModuleId) {
8400
- router.push(fullPath.startsWith("/") ? fullPath : `/${fullPath}`);
8744
+ router.push(normalizedPath);
8401
8745
  } else {
8402
8746
  const currentOrigin = window.location.origin;
8403
- const modulePath = ((_b = groupedMenus.value[activeCategory.value]) == null ? void 0 : _b.modulePath) || "";
8404
- const moduleFullPath = joinPath(modulePath, fullPath);
8405
- const targetUrl = `${currentOrigin}${moduleFullPath.startsWith("/") ? moduleFullPath : `/${moduleFullPath}`}`;
8747
+ const rawModulePath = ((_d = (_c = productList.value[activeProductIndex.value]) == null ? void 0 : _c.children[activeModuleIndex.value]) == null ? void 0 : _d.modulePath) || "";
8748
+ const modulePath = rawModulePath === "/" ? "" : rawModulePath;
8749
+ const hasModulePrefix = modulePath && (fullPath === modulePath || fullPath.startsWith(modulePath + "/"));
8750
+ const finalPath = hasModulePrefix ? normalizedPath : `${modulePath}${normalizedPath}`;
8751
+ const targetUrl = `${currentOrigin}${finalPath.startsWith("/") ? finalPath : `/${finalPath}`}`;
8406
8752
  window.location.href = targetUrl;
8407
8753
  }
8408
8754
  closePanel();
8409
8755
  }
8410
8756
  };
8411
- const handleCategorySelect = (index) => {
8412
- activeCategory.value = index;
8757
+ const handleProductSelect = (index) => {
8758
+ activeProductIndex.value = index;
8759
+ activeModuleIndex.value = 0;
8413
8760
  };
8414
- watch(groupedMenus, () => {
8415
- var _a2;
8416
- if (activeCategory.value >= groupedMenus.value.length) {
8417
- activeCategory.value = 0;
8418
- }
8419
- if (groupedMenus.value.length > 0) {
8420
- const currentGroup = groupedMenus.value[activeCategory.value];
8421
- if (!((_a2 = currentGroup == null ? void 0 : currentGroup.children) == null ? void 0 : _a2.length)) {
8422
- const firstWithChildren = groupedMenus.value.findIndex((g) => {
8423
- var _a3;
8424
- return ((_a3 = g.children) == null ? void 0 : _a3.length) > 0;
8425
- });
8426
- if (firstWithChildren !== -1) {
8427
- activeCategory.value = firstWithChildren;
8428
- }
8761
+ const handleModuleSelect = (index) => {
8762
+ activeModuleIndex.value = index;
8763
+ };
8764
+ const handleItemClick = (fourthItem, group) => {
8765
+ var _a2, _b;
8766
+ const parentPath = joinPath((_a2 = activeProduct.value) == null ? void 0 : _a2.path, (_b = activeModule.value) == null ? void 0 : _b.path, group.path);
8767
+ handleSelect(fourthItem, parentPath);
8768
+ };
8769
+ const handleGroupClick = (group) => {
8770
+ var _a2, _b;
8771
+ const parentPath = joinPath((_a2 = activeProduct.value) == null ? void 0 : _a2.path, (_b = activeModule.value) == null ? void 0 : _b.path);
8772
+ handleSelect({ path: group.path, children: [] }, parentPath);
8773
+ };
8774
+ const syncActiveSelection = () => {
8775
+ const currentModuleId = permissionStore.getModuleId;
8776
+ if (!currentModuleId)
8777
+ return false;
8778
+ for (let pIndex = 0; pIndex < productList.value.length; pIndex++) {
8779
+ const mIndex = productList.value[pIndex].children.findIndex(
8780
+ (mod) => mod.id === currentModuleId
8781
+ );
8782
+ if (mIndex !== -1) {
8783
+ activeProductIndex.value = pIndex;
8784
+ activeModuleIndex.value = mIndex;
8785
+ return true;
8429
8786
  }
8430
8787
  }
8431
- });
8432
- watch(() => props.visible, (val) => {
8433
- if (val) {
8434
- searchKeyword.value = "";
8435
- debouncedKeyword.value = "";
8436
- activeCategory.value = 0;
8437
- nextTick(() => {
8438
- var _a2;
8439
- (_a2 = searchInputRef.value) == null ? void 0 : _a2.focus();
8440
- });
8788
+ return false;
8789
+ };
8790
+ watch(productList, () => {
8791
+ if (!syncActiveSelection()) {
8792
+ if (activeProductIndex.value >= productList.value.length) {
8793
+ activeProductIndex.value = 0;
8794
+ }
8795
+ activeModuleIndex.value = 0;
8441
8796
  }
8442
8797
  });
8798
+ watch(
8799
+ () => props.visible,
8800
+ (val) => {
8801
+ if (val) {
8802
+ searchKeyword.value = "";
8803
+ debouncedKeyword.value = "";
8804
+ if (!syncActiveSelection()) {
8805
+ activeProductIndex.value = 0;
8806
+ activeModuleIndex.value = 0;
8807
+ }
8808
+ expandedCardIndex.value = activeProductIndex.value;
8809
+ nextTick(() => {
8810
+ var _a2;
8811
+ (_a2 = searchInputRef.value) == null ? void 0 : _a2.focus();
8812
+ });
8813
+ }
8814
+ }
8815
+ );
8443
8816
  const handleKeydown = (e2) => {
8444
8817
  if (e2.key === "Escape" && props.visible) {
8445
8818
  closePanel();
@@ -8461,7 +8834,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8461
8834
  __props.visible ? (openBlock(), createElementBlock("div", {
8462
8835
  key: 0,
8463
8836
  class: normalizeClass([unref(prefixCls2)]),
8464
- onClick: _cache[1] || (_cache[1] = withModifiers(() => {
8837
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => {
8465
8838
  }, ["stop"]))
8466
8839
  }, [
8467
8840
  createElementVNode("div", {
@@ -8473,22 +8846,62 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8473
8846
  createElementVNode("div", {
8474
8847
  class: normalizeClass([unref(prefixCls2) + "__sidebar-title"])
8475
8848
  }, [
8476
- createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.allProducts")), 1)
8849
+ createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.productNavigation")), 1)
8477
8850
  ], 2),
8478
8851
  createVNode(unref(ElScrollbar), null, {
8479
8852
  default: withCtx(() => [
8480
- createElementVNode("div", _hoisted_1$c, [
8481
- (openBlock(true), createElementBlock(Fragment, null, renderList(groupedMenus.value, (group, index) => {
8853
+ createElementVNode("div", _hoisted_1$b, [
8854
+ (openBlock(true), createElementBlock(Fragment, null, renderList(productList.value, (product, pIndex) => {
8482
8855
  return openBlock(), createElementBlock("div", {
8483
- key: group.id || index,
8856
+ key: product.id || pIndex,
8484
8857
  class: normalizeClass([
8485
- unref(prefixCls2) + "__category",
8486
- { "is-active": activeCategory.value === index }
8858
+ unref(prefixCls2) + "__product-card",
8859
+ { "is-active": activeProductIndex.value === pIndex },
8860
+ { "is-expanded": expandedCardIndex.value === pIndex }
8487
8861
  ]),
8488
- onClick: ($event) => handleCategorySelect(index)
8862
+ onClick: ($event) => {
8863
+ handleProductSelect(pIndex);
8864
+ expandedCardIndex.value = expandedCardIndex.value === pIndex ? null : pIndex;
8865
+ }
8489
8866
  }, [
8490
- createElementVNode("span", null, toDisplayString(group.title), 1)
8491
- ], 10, _hoisted_2$a);
8867
+ createElementVNode("div", {
8868
+ class: normalizeClass([unref(prefixCls2) + "__product-name"])
8869
+ }, [
8870
+ createVNode(unref(_sfc_main$x), {
8871
+ icon: product.icon ? product.icon : "svg-icon:clipboard",
8872
+ size: 16
8873
+ }, null, 8, ["icon"]),
8874
+ createElementVNode("span", null, toDisplayString(product.title), 1),
8875
+ product.children.length > 0 ? (openBlock(), createElementBlock("div", {
8876
+ key: 0,
8877
+ class: normalizeClass([unref(prefixCls2) + "__card-toggle"])
8878
+ }, [
8879
+ createVNode(unref(_sfc_main$x), {
8880
+ icon: expandedCardIndex.value === pIndex ? "lucide:chevron-up" : "lucide:chevron-down",
8881
+ size: 14
8882
+ }, null, 8, ["icon"])
8883
+ ], 2)) : createCommentVNode("", true)
8884
+ ], 2),
8885
+ product.children.length > 0 && expandedCardIndex.value === pIndex ? (openBlock(), createElementBlock("div", {
8886
+ key: 0,
8887
+ class: normalizeClass([unref(prefixCls2) + "__product-modules"]),
8888
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
8889
+ }, ["stop"]))
8890
+ }, [
8891
+ (openBlock(true), createElementBlock(Fragment, null, renderList(product.children, (mod, mIndex) => {
8892
+ return openBlock(), createElementBlock("span", {
8893
+ key: mod.id || mIndex,
8894
+ class: normalizeClass([
8895
+ unref(prefixCls2) + "__module-tag",
8896
+ {
8897
+ "is-active": activeProductIndex.value === pIndex && activeModuleIndex.value === mIndex
8898
+ }
8899
+ ]),
8900
+ onClick: withModifiers(($event) => (handleProductSelect(pIndex), handleModuleSelect(mIndex)), ["stop"])
8901
+ }, toDisplayString(getMenuTitle(mod)), 11, _hoisted_3$8);
8902
+ }), 128))
8903
+ ], 2)) : createCommentVNode("", true)
8904
+ ], 10, _hoisted_2$9);
8492
8905
  }), 128))
8493
8906
  ])
8494
8907
  ]),
@@ -8505,7 +8918,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8505
8918
  ref_key: "searchInputRef",
8506
8919
  ref: searchInputRef,
8507
8920
  modelValue: searchKeyword.value,
8508
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
8921
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchKeyword.value = $event),
8509
8922
  placeholder: unref(t2)("layout.common.searchMenu"),
8510
8923
  clearable: "",
8511
8924
  size: "default"
@@ -8533,60 +8946,38 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8533
8946
  createElementVNode("div", {
8534
8947
  class: normalizeClass([unref(prefixCls2) + "__grid-container"])
8535
8948
  }, [
8536
- currentCategoryMenus.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(currentCategoryMenus.value, (secondMenu) => {
8949
+ contentGroups.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(contentGroups.value, (group) => {
8537
8950
  return openBlock(), createElementBlock("div", {
8538
- key: secondMenu.id || secondMenu.path,
8539
- class: normalizeClass([unref(prefixCls2) + "__column"])
8951
+ key: group.id || group.title,
8952
+ class: normalizeClass([unref(prefixCls2) + "__group"])
8540
8953
  }, [
8541
8954
  createElementVNode("div", {
8542
- class: normalizeClass([unref(prefixCls2) + "__column-title"])
8955
+ class: normalizeClass([unref(prefixCls2) + "__group-title"])
8543
8956
  }, [
8544
- createElementVNode("span", null, toDisplayString(getMenuTitle(secondMenu)), 1)
8957
+ createElementVNode("span", null, toDisplayString(group.title), 1)
8545
8958
  ], 2),
8546
8959
  createElementVNode("div", {
8547
- class: normalizeClass([unref(prefixCls2) + "__column-list"])
8960
+ class: normalizeClass([unref(prefixCls2) + "__group-grid"])
8548
8961
  }, [
8549
- secondMenu.children && secondMenu.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(secondMenu.children.filter(isVisible), (thirdMenu) => {
8962
+ group.items.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(group.items, (item) => {
8550
8963
  return openBlock(), createElementBlock("div", {
8551
- key: thirdMenu.path,
8552
- class: normalizeClass([unref(prefixCls2) + "__column-item"]),
8553
- onClick: ($event) => {
8554
- var _a2;
8555
- return handleSelect(thirdMenu, joinPath((_a2 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a2.path, secondMenu.path));
8556
- }
8964
+ key: item.id || item.path,
8965
+ class: normalizeClass([unref(prefixCls2) + "__group-item"]),
8966
+ onClick: ($event) => handleItemClick(item, group)
8557
8967
  }, [
8558
- createElementVNode("span", null, toDisplayString(getMenuTitle(thirdMenu)), 1)
8559
- ], 10, _hoisted_3$9);
8968
+ createElementVNode("span", null, toDisplayString(item.title), 1)
8969
+ ], 10, _hoisted_4$7);
8560
8970
  }), 128)) : (openBlock(), createElementBlock("div", {
8561
8971
  key: 1,
8562
- class: normalizeClass([
8563
- unref(prefixCls2) + "__column-item",
8564
- { [unref(prefixCls2) + "__column-item--disabled"]: secondMenu.type === 1 }
8565
- ]),
8566
- onClick: ($event) => {
8567
- var _a2;
8568
- return secondMenu.type === 2 && handleSelect(secondMenu, (_a2 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a2.path);
8569
- }
8972
+ class: normalizeClass([unref(prefixCls2) + "__group-item"]),
8973
+ onClick: ($event) => handleGroupClick(group)
8570
8974
  }, [
8571
- secondMenu.type === 1 ? (openBlock(), createElementBlock("span", _hoisted_5$5, toDisplayString(unref(t2)("layout.common.noData") || "暂无"), 1)) : (openBlock(), createElementBlock("span", _hoisted_6$4, toDisplayString(getMenuTitle(secondMenu)), 1))
8572
- ], 10, _hoisted_4$7))
8975
+ createElementVNode("span", null, toDisplayString(group.title), 1)
8976
+ ], 10, _hoisted_5$6))
8573
8977
  ], 2)
8574
8978
  ], 2);
8575
- }), 128)) : groupedMenus.value[activeCategory.value] ? (openBlock(), createElementBlock("div", {
8979
+ }), 128)) : activeProduct.value ? (openBlock(), createElementBlock("div", {
8576
8980
  key: 1,
8577
- class: normalizeClass([unref(prefixCls2) + "__column"])
8578
- }, [
8579
- createElementVNode("div", {
8580
- class: normalizeClass([unref(prefixCls2) + "__column-list"])
8581
- }, [
8582
- createElementVNode("div", {
8583
- class: normalizeClass([unref(prefixCls2) + "__column-item", unref(prefixCls2) + "__column-item--disabled"])
8584
- }, [
8585
- createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.noData") || "暂无"), 1)
8586
- ], 2)
8587
- ], 2)
8588
- ], 2)) : (openBlock(), createElementBlock("div", {
8589
- key: 2,
8590
8981
  class: normalizeClass([unref(prefixCls2) + "__empty"])
8591
8982
  }, [
8592
8983
  createVNode(unref(_sfc_main$x), {
@@ -8594,7 +8985,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8594
8985
  size: 48
8595
8986
  }),
8596
8987
  createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.noDataTitle")), 1)
8597
- ], 2))
8988
+ ], 2)) : createCommentVNode("", true)
8598
8989
  ], 2)
8599
8990
  ]),
8600
8991
  _: 1
@@ -8613,7 +9004,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8613
9004
  };
8614
9005
  }
8615
9006
  });
8616
- const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-909615b6"]]);
9007
+ const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-f9a0a896"]]);
8617
9008
  const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8618
9009
  __name: "Logo",
8619
9010
  emits: ["logo-click"],
@@ -8622,8 +9013,7 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8622
9013
  const { getPrefixCls: getPrefixCls2 } = useDesign();
8623
9014
  const prefixCls2 = getPrefixCls2("logo");
8624
9015
  const appStore = useAppStore();
8625
- const title = computed(() => appStore.getTitle);
8626
- const layout = computed(() => appStore.getLayout);
9016
+ computed(() => appStore.getLayout);
8627
9017
  const theme = computed(() => appStore.getTheme);
8628
9018
  const panelVisible = ref(false);
8629
9019
  const togglePanel = (isActive) => {
@@ -8655,20 +9045,11 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8655
9045
  onClick: handleClickLogo
8656
9046
  }, [
8657
9047
  createVNode(_component_Icon, {
8658
- icon: "svg-icon:logo",
9048
+ icon: "svg-icon:inspur-xinlian",
8659
9049
  color: fontColor.value,
8660
9050
  svgClass: "!w-full !h-full",
8661
- class: normalizeClass(["!w-[var(--logo-height)]", "!h-[var(--logo-height)]"])
8662
- }, null, 8, ["color"]),
8663
- createElementVNode("div", {
8664
- class: normalizeClass([
8665
- "ml-10px text-16px font-700",
8666
- {
8667
- "text-[var(--top-header-text-color)]": ["left", "top", "topLeft"].includes(layout.value)
8668
- }
8669
- ]),
8670
- style: normalizeStyle({ color: fontColor.value })
8671
- }, toDisplayString(title.value), 7)
9051
+ class: normalizeClass(["!w-[var(--logo-width)]", "!h-[var(--logo-height)]"])
9052
+ }, null, 8, ["color"])
8672
9053
  ])
8673
9054
  ], 2),
8674
9055
  createVNode(unref(ProductServicePanel), {
@@ -8679,7 +9060,7 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8679
9060
  };
8680
9061
  }
8681
9062
  });
8682
- const _hoisted_1$b = { class: "w-full min-w-1000px" };
9063
+ const _hoisted_1$a = { class: "w-full min-w-1000px h-full" };
8683
9064
  const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "AppView" }, {
8684
9065
  __name: "AppView",
8685
9066
  setup(__props) {
@@ -8714,7 +9095,7 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "AppView" }, {
8714
9095
  provide("reload", reload);
8715
9096
  return (_ctx, _cache) => {
8716
9097
  const _component_router_view = resolveComponent("router-view");
8717
- return openBlock(), createElementBlock("section", _hoisted_1$b, [
9098
+ return openBlock(), createElementBlock("section", _hoisted_1$a, [
8718
9099
  unref(routerAlive) ? (openBlock(), createBlock(_component_router_view, { key: 0 }, {
8719
9100
  default: withCtx(({ Component, route }) => [
8720
9101
  (openBlock(), createBlock(KeepAlive, { include: unref(getCaches) }, [
@@ -8779,7 +9160,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Message" }, {
8779
9160
  createVNode(_component_Icon, {
8780
9161
  color: __props.color,
8781
9162
  size: 18,
8782
- icon: "ep:bell"
9163
+ icon: "svg-icon:bell"
8783
9164
  }, null, 8, ["color"])
8784
9165
  ]),
8785
9166
  _: 1
@@ -8788,72 +9169,213 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Message" }, {
8788
9169
  };
8789
9170
  }
8790
9171
  });
8791
- const Message = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-5a726c1e"]]);
9172
+ const Message = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-fdaeb8e4"]]);
8792
9173
  const avatarImg = "data:image/gif;base64,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";
8793
- const _hoisted_1$a = { class: "flex items-center text-[var(--top-header-text-color)] mr-18px" };
8794
- const _hoisted_2$9 = { class: "pl-5px text-14px <lg:hidden" };
8795
- const _hoisted_3$8 = { class: "ml-15px" };
9174
+ const _hoisted_1$9 = { class: "flex items-center px-10px py-8px text-[var(--top-header-text-color)] hover:text-[var(--top-header-hover-color)] rounded-6px bg-[var(--top-header-company-bg-color)]" };
9175
+ const _hoisted_2$8 = { class: "pl-6px text-12px <lg:hidden truncate max-w-120px" };
9176
+ const _hoisted_3$7 = { class: "ml-6px" };
9177
+ const _hoisted_4$6 = { class: "flex items-center text-[var(--top-header-text-color)] hover:text-[var(--top-header-hover-color)]" };
9178
+ const _hoisted_5$5 = { class: "pl-5px text-12px <lg:hidden truncate max-w-100px" };
9179
+ const _hoisted_6$4 = { class: "ml-6px" };
9180
+ const _hoisted_7$2 = { class: "flex items-center text-#e0e0e0" };
9181
+ const _hoisted_8$1 = { class: "flex flex-col gap-3px pl-5px text-12px <lg:hidden" };
9182
+ const _hoisted_9 = { class: "text-#fff" };
9183
+ const _hoisted_10 = { key: 0 };
9184
+ const _hoisted_11 = { class: "ml-6px" };
8796
9185
  const _sfc_main$n = /* @__PURE__ */ Object.assign({ name: "UserInfo" }, {
8797
9186
  __name: "UserInfo",
8798
- emits: ["logout-click"],
9187
+ emits: ["logout-click", "switch-company-click"],
8799
9188
  setup(__props, { emit: __emit }) {
8800
9189
  const emit = __emit;
8801
9190
  const { t: t2 } = useI18n();
8802
9191
  const userStore = useUserStore();
9192
+ const appStore = useAppStore();
8803
9193
  const { getPrefixCls: getPrefixCls2 } = useDesign();
8804
- const prefixCls2 = getPrefixCls2("user-info");
9194
+ const prefixCls2 = getPrefixCls2("info");
8805
9195
  const avatar = computed(() => userStore.user.avatar || avatarImg);
8806
9196
  const userName = computed(() => userStore.user.nickname ?? "Admin");
9197
+ const topNav = computed(() => appStore.getTopNav);
9198
+ const topNavNormal = computed(() => topNav.value === "normal");
9199
+ const topNavFloating = computed(() => topNav.value === "floating");
9200
+ const orgId = computed(() => {
9201
+ var _a2;
9202
+ return (_a2 = userStore.user) == null ? void 0 : _a2.orgId;
9203
+ });
9204
+ const orgName = computed(() => {
9205
+ var _a2;
9206
+ return (_a2 = userStore.user) == null ? void 0 : _a2.orgName;
9207
+ });
9208
+ const companyList = computed(() => userStore.getCompanyList);
9209
+ const showCompanyList = computed(() => companyList.value.length > 0);
8807
9210
  const handleLogoutClick = () => {
8808
9211
  emit("logout-click");
8809
9212
  };
9213
+ const handleSwitchCompany = (company) => {
9214
+ emit("switch-company-click", deepClone(company));
9215
+ };
8810
9216
  return (_ctx, _cache) => {
8811
9217
  const _component_Icon = resolveComponent("Icon");
8812
- return openBlock(), createBlock(unref(ElDropdown), {
8813
- class: normalizeClass(["custom-hover cursor-pointer", unref(prefixCls2)]),
8814
- trigger: "click"
8815
- }, {
8816
- dropdown: withCtx(() => [
8817
- createVNode(unref(ElDropdownMenu), null, {
9218
+ return openBlock(), createElementBlock(Fragment, null, [
9219
+ unref(topNavNormal) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
9220
+ unref(showCompanyList) && unref(orgId) ? (openBlock(), createBlock(unref(ElDropdown), {
9221
+ key: 0,
9222
+ class: normalizeClass(["custom-hover cursor-pointer", `${unref(prefixCls2)}-company`]),
9223
+ trigger: "click"
9224
+ }, {
9225
+ dropdown: withCtx(() => [
9226
+ createVNode(unref(ElDropdownMenu), null, {
9227
+ default: withCtx(() => [
9228
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(companyList), (company) => {
9229
+ return openBlock(), createBlock(unref(ElDropdownItem), {
9230
+ key: company.enterpriseId,
9231
+ disabled: company.enterpriseId == unref(orgId),
9232
+ onClick: ($event) => handleSwitchCompany(company)
9233
+ }, {
9234
+ default: withCtx(() => [
9235
+ createTextVNode(toDisplayString(company.enterpriseName), 1)
9236
+ ]),
9237
+ _: 2
9238
+ }, 1032, ["disabled", "onClick"]);
9239
+ }), 128))
9240
+ ]),
9241
+ _: 1
9242
+ })
9243
+ ]),
8818
9244
  default: withCtx(() => [
8819
- createVNode(unref(ElDropdownItem), { onClick: handleLogoutClick }, {
9245
+ createElementVNode("div", _hoisted_1$9, [
9246
+ createVNode(_component_Icon, {
9247
+ icon: "svg-icon:company",
9248
+ color: "var(--top-header-company-icon-color)",
9249
+ svgClass: "!w-full !h-full",
9250
+ class: normalizeClass(["!w-14px", "!h-14px"])
9251
+ }),
9252
+ createElementVNode("span", _hoisted_2$8, toDisplayString(unref(orgName)), 1),
9253
+ createElementVNode("span", _hoisted_3$7, [
9254
+ createVNode(_component_Icon, {
9255
+ icon: "ep:arrow-down",
9256
+ svgClass: "!w-full !h-full",
9257
+ class: normalizeClass(["!w-12px", "!h-12px"])
9258
+ })
9259
+ ])
9260
+ ])
9261
+ ]),
9262
+ _: 1
9263
+ }, 8, ["class"])) : createCommentVNode("", true),
9264
+ createVNode(unref(ElDropdown), {
9265
+ class: normalizeClass(["custom-hover cursor-pointer", `${unref(prefixCls2)}-user`]),
9266
+ trigger: "click"
9267
+ }, {
9268
+ dropdown: withCtx(() => [
9269
+ createVNode(unref(ElDropdownMenu), null, {
8820
9270
  default: withCtx(() => [
8821
- createVNode(_component_Icon, { icon: "ep:switch-button" }),
8822
- createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
9271
+ createVNode(unref(ElDropdownItem), { onClick: handleLogoutClick }, {
9272
+ default: withCtx(() => [
9273
+ createVNode(_component_Icon, { icon: "ep:switch-button" }),
9274
+ createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
9275
+ ]),
9276
+ _: 1
9277
+ })
8823
9278
  ]),
8824
9279
  _: 1
8825
9280
  })
8826
9281
  ]),
9282
+ default: withCtx(() => [
9283
+ createElementVNode("div", _hoisted_4$6, [
9284
+ createVNode(unref(ElAvatar), {
9285
+ src: unref(avatar),
9286
+ size: 24,
9287
+ class: "!bg-transparent"
9288
+ }, {
9289
+ default: withCtx(() => [
9290
+ createVNode(_component_Icon, {
9291
+ icon: "fa:user-circle-o",
9292
+ size: 24
9293
+ })
9294
+ ]),
9295
+ _: 1
9296
+ }, 8, ["src"]),
9297
+ createElementVNode("span", _hoisted_5$5, toDisplayString(unref(userName)), 1),
9298
+ createElementVNode("span", _hoisted_6$4, [
9299
+ createVNode(_component_Icon, {
9300
+ icon: "ep:arrow-down",
9301
+ svgClass: "!w-full !h-full",
9302
+ class: normalizeClass(["!w-12px", "!h-12px"])
9303
+ })
9304
+ ])
9305
+ ])
9306
+ ]),
8827
9307
  _: 1
8828
- })
8829
- ]),
8830
- default: withCtx(() => [
8831
- createElementVNode("div", _hoisted_1$a, [
8832
- createVNode(unref(ElAvatar), {
8833
- src: unref(avatar),
8834
- size: 32,
8835
- class: "!bg-transparent"
8836
- }, {
9308
+ }, 8, ["class"])
9309
+ ], 64)) : createCommentVNode("", true),
9310
+ unref(topNavFloating) ? (openBlock(), createBlock(unref(ElDropdown), {
9311
+ key: 1,
9312
+ class: normalizeClass(["custom-hover cursor-pointer", `${unref(prefixCls2)}-company-user`]),
9313
+ trigger: "click"
9314
+ }, {
9315
+ dropdown: withCtx(() => [
9316
+ createVNode(unref(ElDropdownMenu), null, {
8837
9317
  default: withCtx(() => [
8838
- createVNode(_component_Icon, {
8839
- icon: "fa:user-circle-o",
8840
- size: 24
8841
- })
9318
+ unref(showCompanyList) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(companyList), (company) => {
9319
+ return openBlock(), createBlock(unref(ElDropdownItem), {
9320
+ key: company.enterpriseId,
9321
+ disabled: company.enterpriseId == unref(orgId),
9322
+ onClick: ($event) => handleSwitchCompany(company)
9323
+ }, {
9324
+ default: withCtx(() => [
9325
+ createTextVNode(toDisplayString(company.enterpriseName), 1)
9326
+ ]),
9327
+ _: 2
9328
+ }, 1032, ["disabled", "onClick"]);
9329
+ }), 128)) : createCommentVNode("", true),
9330
+ createVNode(unref(ElDropdownItem), {
9331
+ divided: unref(showCompanyList),
9332
+ onClick: handleLogoutClick
9333
+ }, {
9334
+ default: withCtx(() => [
9335
+ createVNode(_component_Icon, { icon: "ep:switch-button" }),
9336
+ createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
9337
+ ]),
9338
+ _: 1
9339
+ }, 8, ["divided"])
8842
9340
  ]),
8843
9341
  _: 1
8844
- }, 8, ["src"]),
8845
- createElementVNode("span", _hoisted_2$9, toDisplayString(unref(userName)), 1),
8846
- createElementVNode("span", _hoisted_3$8, [
8847
- createVNode(_component_Icon, { icon: "ant-design:caret-down-outlined" })
9342
+ })
9343
+ ]),
9344
+ default: withCtx(() => [
9345
+ createElementVNode("div", _hoisted_7$2, [
9346
+ createVNode(unref(ElAvatar), {
9347
+ src: unref(avatar),
9348
+ size: 24,
9349
+ class: "!bg-transparent"
9350
+ }, {
9351
+ default: withCtx(() => [
9352
+ createVNode(_component_Icon, {
9353
+ icon: "fa:user-circle-o",
9354
+ size: 24
9355
+ })
9356
+ ]),
9357
+ _: 1
9358
+ }, 8, ["src"]),
9359
+ createElementVNode("div", _hoisted_8$1, [
9360
+ createElementVNode("span", _hoisted_9, toDisplayString(unref(userName)), 1),
9361
+ unref(showCompanyList) ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(unref(orgName)), 1)) : createCommentVNode("", true)
9362
+ ]),
9363
+ createElementVNode("span", _hoisted_11, [
9364
+ createVNode(_component_Icon, {
9365
+ icon: "ep:arrow-down",
9366
+ svgClass: "!w-full !h-full",
9367
+ class: normalizeClass(["!w-12px", "!h-12px"])
9368
+ })
9369
+ ])
8848
9370
  ])
8849
- ])
8850
- ]),
8851
- _: 1
8852
- }, 8, ["class"]);
9371
+ ]),
9372
+ _: 1
9373
+ }, 8, ["class"])) : createCommentVNode("", true)
9374
+ ], 64);
8853
9375
  };
8854
9376
  }
8855
9377
  });
8856
- const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-058b21ff"]]);
9378
+ const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-d68b68d5"]]);
8857
9379
  const filterBreadcrumb = (routes, parentPath = "") => {
8858
9380
  var _a2;
8859
9381
  const res = [];
@@ -9309,10 +9831,189 @@ var English = {
9309
9831
  }
9310
9832
  }
9311
9833
  };
9834
+ var zhTw = {
9835
+ name: "zh-tw",
9836
+ el: {
9837
+ breadcrumb: {
9838
+ label: "面包屑"
9839
+ },
9840
+ colorpicker: {
9841
+ confirm: "確認",
9842
+ clear: "清空",
9843
+ defaultLabel: "色彩選擇器",
9844
+ description: "目前色彩為 {color}。按一下 Enter 以選擇新色彩。",
9845
+ alphaLabel: "選擇透明度的值"
9846
+ },
9847
+ datepicker: {
9848
+ now: "現在",
9849
+ today: "今天",
9850
+ cancel: "取消",
9851
+ clear: "清空",
9852
+ confirm: "確認",
9853
+ dateTablePrompt: "使用方向鍵與 Enter 鍵以選擇日期",
9854
+ monthTablePrompt: "使用方向鍵與 Enter 鍵以選擇月份",
9855
+ yearTablePrompt: "使用方向鍵與 Enter 鍵以選擇年份",
9856
+ selectedDate: "已選日期",
9857
+ selectDate: "選擇日期",
9858
+ selectTime: "選擇時間",
9859
+ startDate: "開始日期",
9860
+ startTime: "開始時間",
9861
+ endDate: "結束日期",
9862
+ endTime: "結束時間",
9863
+ prevYear: "前一年",
9864
+ nextYear: "後一年",
9865
+ prevMonth: "上個月",
9866
+ nextMonth: "下個月",
9867
+ year: "年",
9868
+ month1: "1 月",
9869
+ month2: "2 月",
9870
+ month3: "3 月",
9871
+ month4: "4 月",
9872
+ month5: "5 月",
9873
+ month6: "6 月",
9874
+ month7: "7 月",
9875
+ month8: "8 月",
9876
+ month9: "9 月",
9877
+ month10: "10 月",
9878
+ month11: "11 月",
9879
+ month12: "12 月",
9880
+ weeks: {
9881
+ sun: "日",
9882
+ mon: "一",
9883
+ tue: "二",
9884
+ wed: "三",
9885
+ thu: "四",
9886
+ fri: "五",
9887
+ sat: "六"
9888
+ },
9889
+ weeksFull: {
9890
+ sun: "星期日",
9891
+ mon: "星期一",
9892
+ tue: "星期二",
9893
+ wed: "星期三",
9894
+ thu: "星期四",
9895
+ fri: "星期五",
9896
+ sat: "星期六"
9897
+ },
9898
+ months: {
9899
+ jan: "一月",
9900
+ feb: "二月",
9901
+ mar: "三月",
9902
+ apr: "四月",
9903
+ may: "五月",
9904
+ jun: "六月",
9905
+ jul: "七月",
9906
+ aug: "八月",
9907
+ sep: "九月",
9908
+ oct: "十月",
9909
+ nov: "十一月",
9910
+ dec: "十二月"
9911
+ }
9912
+ },
9913
+ inputNumber: {
9914
+ decrease: "減少數值",
9915
+ increase: "增加數值"
9916
+ },
9917
+ select: {
9918
+ loading: "載入中",
9919
+ noMatch: "無相符資料",
9920
+ noData: "無資料",
9921
+ placeholder: "請選擇"
9922
+ },
9923
+ mention: {
9924
+ loading: "載入中"
9925
+ },
9926
+ dropdown: {
9927
+ toggleDropdown: "切換下拉選單"
9928
+ },
9929
+ cascader: {
9930
+ noMatch: "無相符資料",
9931
+ loading: "載入中",
9932
+ placeholder: "請選擇",
9933
+ noData: "無資料"
9934
+ },
9935
+ pagination: {
9936
+ goto: "前往",
9937
+ pagesize: "項/頁",
9938
+ total: "共 {total} 項",
9939
+ pageClassifier: "頁",
9940
+ page: "頁",
9941
+ prev: "上一頁",
9942
+ next: "下一頁",
9943
+ currentPage: "第 {pager} 頁",
9944
+ prevPages: "向前 {pager} 頁",
9945
+ nextPages: "向後 {pager} 頁",
9946
+ deprecationWarning: "偵測到已過時的使用方式,請參閱 el-pagination 說明文件以了解更多資訊"
9947
+ },
9948
+ dialog: {
9949
+ close: "關閉此對話框"
9950
+ },
9951
+ drawer: {
9952
+ close: "關閉此對話框"
9953
+ },
9954
+ messagebox: {
9955
+ title: "提示",
9956
+ confirm: "確定",
9957
+ cancel: "取消",
9958
+ error: "輸入的資料不符合規定!",
9959
+ close: "關閉此對話框"
9960
+ },
9961
+ upload: {
9962
+ deleteTip: "按 Delete 鍵以刪除",
9963
+ delete: "刪除",
9964
+ preview: "查看圖片",
9965
+ continue: "繼續上傳"
9966
+ },
9967
+ slider: {
9968
+ defaultLabel: "滑桿介於 {min} 至 {max}",
9969
+ defaultRangeStartLabel: "選擇起始值",
9970
+ defaultRangeEndLabel: "選擇結束值"
9971
+ },
9972
+ table: {
9973
+ emptyText: "暫無資料",
9974
+ confirmFilter: "篩選",
9975
+ resetFilter: "重置",
9976
+ clearFilter: "全部",
9977
+ sumText: "合計"
9978
+ },
9979
+ tour: {
9980
+ next: "下一步",
9981
+ previous: "上一步",
9982
+ finish: "結束導覽"
9983
+ },
9984
+ tree: {
9985
+ emptyText: "暫無資料"
9986
+ },
9987
+ transfer: {
9988
+ noMatch: "無相符資料",
9989
+ noData: "無資料",
9990
+ titles: ["列表 1", "列表 2"],
9991
+ filterPlaceholder: "請輸入搜尋內容",
9992
+ noCheckedFormat: "共 {total} 項",
9993
+ hasCheckedFormat: "已選 {checked}/{total} 項"
9994
+ },
9995
+ image: {
9996
+ error: "載入失敗"
9997
+ },
9998
+ pageHeader: {
9999
+ title: "返回"
10000
+ },
10001
+ popconfirm: {
10002
+ confirmButtonText: "確認",
10003
+ cancelButtonText: "取消"
10004
+ },
10005
+ carousel: {
10006
+ leftArrow: "上一張投影片",
10007
+ rightArrow: "下一張投影片",
10008
+ indicator: "投影片切換至索引 {index}"
10009
+ }
10010
+ }
10011
+ };
9312
10012
  const { wsCache } = useCache();
9313
10013
  const elLocaleMap = {
9314
10014
  "zh-CN": zhCn,
9315
- en: English
10015
+ en: English,
10016
+ "zh-TW": zhTw
9316
10017
  };
9317
10018
  const useLocaleStore = defineStore("layout-locales", {
9318
10019
  state: () => {
@@ -9327,6 +10028,10 @@ const useLocaleStore = defineStore("layout-locales", {
9327
10028
  lang: "zh-CN",
9328
10029
  name: "简体中文"
9329
10030
  },
10031
+ {
10032
+ lang: "zh-TW",
10033
+ name: "繁體中文"
10034
+ },
9330
10035
  {
9331
10036
  lang: "en",
9332
10037
  name: "English"
@@ -9382,7 +10087,7 @@ const setI18nLanguage = (locale) => {
9382
10087
  const useLocale = () => {
9383
10088
  const changeLocale = async (locale) => {
9384
10089
  const globalI18n = i18n.global;
9385
- const langModule = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../locales/en.js": () => import("./en-BXmz6NO1.mjs"), "../../locales/zh-CN.js": () => import("./zh-CN-CY7gEVUl.mjs") }), `../../locales/${locale}.js`);
10090
+ const langModule = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../locales/en.js": () => import("./en-BLMsUBCM.mjs"), "../../locales/zh-CN.js": () => import("./zh-CN-i4M-o5m6.mjs"), "../../locales/zh-TW.js": () => import("./zh-TW-DYC8NCr4.mjs") }), `../../locales/${locale}.js`);
9386
10091
  globalI18n.setLocaleMessage(locale, langModule.default);
9387
10092
  setI18nLanguage(locale);
9388
10093
  };
@@ -9390,7 +10095,7 @@ const useLocale = () => {
9390
10095
  changeLocale
9391
10096
  };
9392
10097
  };
9393
- const _sfc_main$l = /* @__PURE__ */ Object.assign({ name: "LocaleDropdown" }, {
10098
+ const _sfc_main$l = /* @__PURE__ */ Object.assign({ name: "LocaleDropdown", inheritAttrs: false }, {
9394
10099
  __name: "LocaleDropdown",
9395
10100
  props: {
9396
10101
  color: {
@@ -9440,21 +10145,25 @@ const _sfc_main$l = /* @__PURE__ */ Object.assign({ name: "LocaleDropdown" }, {
9440
10145
  })
9441
10146
  ]),
9442
10147
  default: withCtx(() => [
9443
- createVNode(_component_Icon, {
9444
- class: normalizeClass([_ctx.$attrs.class, "cursor-pointer !p-0"]),
9445
- color: __props.color,
9446
- size: 18,
9447
- icon: "ion:language-sharp"
9448
- }, null, 8, ["class", "color"])
10148
+ createElementVNode("div", {
10149
+ class: normalizeClass(_ctx.$attrs.class)
10150
+ }, [
10151
+ createVNode(_component_Icon, {
10152
+ color: __props.color,
10153
+ size: 18,
10154
+ class: "!p-0",
10155
+ icon: "svg-icon:language"
10156
+ }, null, 8, ["color"])
10157
+ ], 2)
9449
10158
  ]),
9450
10159
  _: 1
9451
10160
  }, 8, ["class"]);
9452
10161
  };
9453
10162
  }
9454
10163
  });
9455
- const _hoisted_1$9 = { class: "theme-list" };
9456
- const _hoisted_2$8 = ["onClick"];
9457
- const _hoisted_3$7 = { class: "name" };
10164
+ const _hoisted_1$8 = { class: "theme-list" };
10165
+ const _hoisted_2$7 = ["onClick"];
10166
+ const _hoisted_3$6 = { class: "name" };
9458
10167
  const _sfc_main$k = {
9459
10168
  __name: "ThemeSwitch",
9460
10169
  emits: ["change"],
@@ -9493,7 +10202,7 @@ const _sfc_main$k = {
9493
10202
  return (_ctx, _cache) => {
9494
10203
  return openBlock(), createElementBlock(Fragment, null, [
9495
10204
  createElementVNode("div", null, toDisplayString(unref(t2)("layout.setting.theme")), 1),
9496
- createElementVNode("div", _hoisted_1$9, [
10205
+ createElementVNode("div", _hoisted_1$8, [
9497
10206
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(themeList), (item) => {
9498
10207
  return openBlock(), createElementBlock("div", {
9499
10208
  class: normalizeClass(["item", { "active": unref(theme) === item.key }]),
@@ -9509,8 +10218,8 @@ const _sfc_main$k = {
9509
10218
  style: normalizeStyle({ backgroundColor: item.color === "#fff" ? "#fafafa" : item.color })
9510
10219
  }, null, 4)
9511
10220
  ], 4),
9512
- createElementVNode("div", _hoisted_3$7, toDisplayString(item.name), 1)
9513
- ], 10, _hoisted_2$8);
10221
+ createElementVNode("div", _hoisted_3$6, toDisplayString(item.name), 1)
10222
+ ], 10, _hoisted_2$7);
9514
10223
  }), 128))
9515
10224
  ])
9516
10225
  ], 64);
@@ -9522,10 +10231,10 @@ const Chunjie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAABGCAYAAADip
9522
10231
  const Duanwu = "data:image/png;base64,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";
9523
10232
  const Zhongqiu = "data:image/png;base64,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";
9524
10233
  const Yuandan = "data:image/png;base64,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";
9525
- const _hoisted_1$8 = { class: "mt-24px" };
9526
- const _hoisted_2$7 = { class: "theme-list" };
9527
- const _hoisted_3$6 = ["src"];
9528
- const _hoisted_4$6 = ["src"];
10234
+ const _hoisted_1$7 = { class: "mt-24px" };
10235
+ const _hoisted_2$6 = { class: "theme-list" };
10236
+ const _hoisted_3$5 = ["src"];
10237
+ const _hoisted_4$5 = ["src"];
9529
10238
  const _hoisted_5$4 = ["src"];
9530
10239
  const _hoisted_6$3 = { class: "theme-list" };
9531
10240
  const _hoisted_7$1 = ["src"];
@@ -9544,8 +10253,8 @@ const _sfc_main$j = {
9544
10253
  };
9545
10254
  return (_ctx, _cache) => {
9546
10255
  return openBlock(), createElementBlock(Fragment, null, [
9547
- createElementVNode("div", _hoisted_1$8, toDisplayString(unref(t2)("layout.setting.festivalTheme")), 1),
9548
- createElementVNode("div", _hoisted_2$7, [
10256
+ createElementVNode("div", _hoisted_1$7, toDisplayString(unref(t2)("layout.setting.festivalTheme")), 1),
10257
+ createElementVNode("div", _hoisted_2$6, [
9549
10258
  createElementVNode("div", {
9550
10259
  class: normalizeClass(["item", { "active": unref(theme) === "springFestival" }]),
9551
10260
  onClick: _cache[0] || (_cache[0] = ($event) => handleClick("springFestival"))
@@ -9554,7 +10263,7 @@ const _sfc_main$j = {
9554
10263
  class: "border",
9555
10264
  style: normalizeStyle({ borderColor: unref(theme) === "springFestival" ? "var(--el-color-primary)" : "#d2d5e4" })
9556
10265
  }, [
9557
- createElementVNode("img", { src: unref(Chunjie) }, null, 8, _hoisted_3$6)
10266
+ createElementVNode("img", { src: unref(Chunjie) }, null, 8, _hoisted_3$5)
9558
10267
  ], 4),
9559
10268
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "name" }, "春节", -1))
9560
10269
  ], 2),
@@ -9566,7 +10275,7 @@ const _sfc_main$j = {
9566
10275
  class: "border",
9567
10276
  style: normalizeStyle({ borderColor: unref(theme) === "dragonBoatFestival" ? "var(--el-color-primary)" : "#d2d5e4" })
9568
10277
  }, [
9569
- createElementVNode("img", { src: unref(Duanwu) }, null, 8, _hoisted_4$6)
10278
+ createElementVNode("img", { src: unref(Duanwu) }, null, 8, _hoisted_4$5)
9570
10279
  ], 4),
9571
10280
  _cache[5] || (_cache[5] = createElementVNode("div", { class: "name" }, "端午", -1))
9572
10281
  ], 2),
@@ -9604,73 +10313,8 @@ const _sfc_main$j = {
9604
10313
  }
9605
10314
  };
9606
10315
  const FestivalThemeSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-868f3996"]]);
9607
- const _hoisted_1$7 = { class: "mt-24px" };
9608
- const _hoisted_2$6 = { class: "layout-list" };
9609
- const _hoisted_3$5 = ["onClick"];
9610
- const _hoisted_4$5 = { class: "name" };
9611
- const _sfc_main$i = {
9612
- __name: "LayoutSwitch",
9613
- emits: ["change"],
9614
- setup(__props, { emit: __emit }) {
9615
- const emits = __emit;
9616
- const { t: t2 } = useI18n();
9617
- const appStore = useAppStore();
9618
- const layout = computed(() => appStore.getLayout);
9619
- const layoutItems = ref([
9620
- {
9621
- key: "left",
9622
- name: "侧边导航",
9623
- icon: "svg-icon:menu-left"
9624
- },
9625
- {
9626
- key: "top",
9627
- name: "顶部导航",
9628
- icon: "svg-icon:menu-top"
9629
- },
9630
- {
9631
- key: "topLeft",
9632
- name: "混合导航",
9633
- icon: "svg-icon:menu-top-left"
9634
- }
9635
- ]);
9636
- const handleClick = (item) => {
9637
- if (layout.value === item.key)
9638
- return;
9639
- emits("change", item.key);
9640
- };
9641
- return (_ctx, _cache) => {
9642
- const _component_Icon = resolveComponent("Icon");
9643
- return openBlock(), createElementBlock(Fragment, null, [
9644
- createElementVNode("div", _hoisted_1$7, toDisplayString(unref(t2)("layout.setting.layout")), 1),
9645
- createElementVNode("div", _hoisted_2$6, [
9646
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(layoutItems), (item) => {
9647
- return openBlock(), createElementBlock("div", {
9648
- class: "item",
9649
- key: item.key,
9650
- onClick: ($event) => handleClick(item)
9651
- }, [
9652
- createElementVNode("div", {
9653
- class: "border",
9654
- style: normalizeStyle({ borderColor: unref(layout) === item.key ? "var(--el-color-primary)" : "#d2d5e4" })
9655
- }, [
9656
- createVNode(_component_Icon, {
9657
- icon: item.icon,
9658
- color: "var(--el-color-primary)",
9659
- svgClass: "!w-full !h-full",
9660
- class: "!w-full !h-70px"
9661
- }, null, 8, ["icon"])
9662
- ], 4),
9663
- createElementVNode("div", _hoisted_4$5, toDisplayString(item.name), 1)
9664
- ], 8, _hoisted_3$5);
9665
- }), 128))
9666
- ])
9667
- ], 64);
9668
- };
9669
- }
9670
- };
9671
- const LayoutSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-265f0ebb"]]);
9672
10316
  const _hoisted_1$6 = { class: "text-16px font-500 text-[var(--text-color)]" };
9673
- const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
10317
+ const _sfc_main$i = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9674
10318
  __name: "Setting",
9675
10319
  props: {
9676
10320
  color: {
@@ -9693,10 +10337,11 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9693
10337
  const { copy, copied, isSupported } = useClipboard({
9694
10338
  source: `
9695
10339
  // 主题相关
9696
- theme: '${appStore.getTheme}',
9697
- // 布局相关
9698
- layout: '${appStore.getLayout}'
9699
- `
10340
+ theme: '${appStore.getTheme}'
10341
+ `
10342
+ // ,
10343
+ // // 布局相关
10344
+ // layout: '${appStore.getLayout}'
9700
10345
  });
9701
10346
  if (!isSupported) {
9702
10347
  ElMessage.error(t2("layout.setting.copyFailed"));
@@ -9719,10 +10364,6 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9719
10364
  appStore.setTheme(theme);
9720
10365
  appStore.setCssVarTheme();
9721
10366
  };
9722
- const layoutChange = async (layout) => {
9723
- await saveTheme({ theme: appStore.getTheme, layout });
9724
- appStore.setLayout(layout);
9725
- };
9726
10367
  const saveTheme = async ({ theme, layout }) => {
9727
10368
  ElMessage({
9728
10369
  type: "success",
@@ -9740,7 +10381,7 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9740
10381
  }), [
9741
10382
  createVNode(_component_Icon, {
9742
10383
  color: __props.color,
9743
- icon: "ep:setting",
10384
+ icon: "svg-icon:hexagon",
9744
10385
  size: 18
9745
10386
  }, null, 8, ["color"])
9746
10387
  ], 16),
@@ -9780,8 +10421,7 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9780
10421
  default: withCtx(() => [
9781
10422
  createElementVNode("div", null, [
9782
10423
  createVNode(ThemeSwitch, { onChange: themeChange }),
9783
- createVNode(FestivalThemeSwitch, { onChange: themeChange }),
9784
- createVNode(LayoutSwitch, { onChange: layoutChange })
10424
+ createVNode(FestivalThemeSwitch, { onChange: themeChange })
9785
10425
  ])
9786
10426
  ]),
9787
10427
  _: 1
@@ -9790,7 +10430,51 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9790
10430
  };
9791
10431
  }
9792
10432
  });
9793
- const Setting = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-89f387dd"]]);
10433
+ const Setting = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-b213e887"]]);
10434
+ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Arrow" }, {
10435
+ __name: "Arrow",
10436
+ props: {
10437
+ color: {
10438
+ type: String,
10439
+ default: ""
10440
+ }
10441
+ },
10442
+ setup(__props) {
10443
+ const appStore = useAppStore();
10444
+ const { t: t2 } = useI18n();
10445
+ const topNav = computed(() => appStore.getTopNav);
10446
+ const topNavCollapsed = computed(() => topNav.value === "collapsed");
10447
+ const arrowIcon = computed(
10448
+ () => topNavCollapsed.value ? "svg-icon:arrow-left" : "svg-icon:arrow-right"
10449
+ );
10450
+ const handleArrowClick = () => {
10451
+ appStore.setTopNav(topNavCollapsed.value ? "floating" : "collapsed");
10452
+ };
10453
+ return (_ctx, _cache) => {
10454
+ const _component_Icon = resolveComponent("Icon");
10455
+ return openBlock(), createElementBlock("div", {
10456
+ class: "arrow",
10457
+ onClick: handleArrowClick
10458
+ }, [
10459
+ createVNode(unref(ElPopover), {
10460
+ disabled: !unref(topNavCollapsed),
10461
+ content: unref(t2)("layout.common.expandAppMenu"),
10462
+ placement: "left",
10463
+ "show-after": 100
10464
+ }, {
10465
+ reference: withCtx(() => [
10466
+ createVNode(_component_Icon, {
10467
+ color: __props.color,
10468
+ size: 11,
10469
+ icon: unref(arrowIcon)
10470
+ }, null, 8, ["color", "icon"])
10471
+ ]),
10472
+ _: 1
10473
+ }, 8, ["disabled", "content"])
10474
+ ]);
10475
+ };
10476
+ }
10477
+ });
9794
10478
  const _sfc_main$g = {
9795
10479
  __name: "index",
9796
10480
  props: {
@@ -9941,6 +10625,10 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
9941
10625
  onClearCacheLogoutClick: {
9942
10626
  type: Function,
9943
10627
  default: null
10628
+ },
10629
+ onSwitchCompanyClick: {
10630
+ type: Function,
10631
+ default: null
9944
10632
  }
9945
10633
  },
9946
10634
  setup(props, {
@@ -9948,49 +10636,73 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
9948
10636
  }) {
9949
10637
  const appStore = useAppStore();
9950
10638
  const breadcrumb = computed(() => appStore.getBreadcrumb);
9951
- computed(() => appStore.getHamburger);
9952
10639
  const search = computed(() => appStore.search);
9953
10640
  const layout = computed(() => appStore.getLayout);
9954
10641
  const locale = computed(() => appStore.getLocale);
9955
10642
  const message = computed(() => appStore.getMessage);
9956
10643
  const setting = computed(() => appStore.getSetting);
10644
+ const topNav = computed(() => appStore.getTopNav);
10645
+ const topNavNormal = computed(() => topNav.value === "normal");
10646
+ const topNavCollapsed = computed(() => topNav.value === "collapsed");
10647
+ const iconColor = computed(() => topNavNormal.value ? "var(--top-header-icon-color)" : "#dae0e9");
9957
10648
  return () => {
9958
10649
  var _a2;
9959
10650
  return createVNode("div", {
9960
10651
  "id": `${variables.namespace}-tool-header`,
9961
- "class": [prefixCls$2, "h-[var(--top-tool-height)] relative px-[var(--top-tool-p-x)] flex items-center justify-between", "dark:bg-[var(--el-bg-color)]"]
10652
+ "class": [prefixCls$2, "px-[var(--top-tool-p-x)] flex items-center justify-between", "dark:bg-[var(--el-bg-color)]", {
10653
+ "tool-header-normal": topNavNormal.value,
10654
+ "tool-header-floating": topNav.value === "floating",
10655
+ "tool-header-collapsed": topNav.value === "collapsed"
10656
+ }],
10657
+ "style": "transition: all var(--transition-time-02);"
9962
10658
  }, [layout.value !== "top" ? createVNode("div", {
9963
10659
  "class": "h-full flex items-center"
9964
10660
  }, [breadcrumb.value ? createVNode(Breadcrumb, {
9965
10661
  "class": "lt-md:hidden"
9966
10662
  }, null) : void 0]) : void 0, (_a2 = slots.default) == null ? void 0 : _a2.call(slots), createVNode("div", {
9967
10663
  "class": "h-full flex items-center"
9968
- }, [search.value ? createVNode(_sfc_main$g, {
10664
+ }, [!topNavCollapsed.value && createVNode(Fragment, null, [search.value ? createVNode(_sfc_main$g, {
9969
10665
  "isModal": false
10666
+ }, null) : void 0, message.value ? createVNode(Message, {
10667
+ "class": "custom-hover cursor-pointer",
10668
+ "color": iconColor.value,
10669
+ "onMessageClick": props.onMessageClick
9970
10670
  }, null) : void 0, setting.value ? createVNode(Setting, {
9971
10671
  "class": "custom-hover cursor-pointer",
9972
- "color": "var(--top-header-text-color)",
10672
+ "color": iconColor.value,
9973
10673
  "onClearCacheLogoutClick": props.onClearCacheLogoutClick
9974
10674
  }, null) : void 0, locale.value ? createVNode(_sfc_main$l, {
9975
- "class": "custom-hover",
10675
+ "class": "custom-hover cursor-pointer",
9976
10676
  "color": "var(--top-header-text-color)"
9977
- }, null) : void 0, message.value ? createVNode(Message, {
10677
+ }, null) : void 0, createVNode("div", {
10678
+ "class": `h-12px mx-10px`,
10679
+ "style": `border-left: 1px solid ${iconColor.value}`
10680
+ }, null), createVNode(UserInfo, {
10681
+ "onLogoutClick": props.onLogoutClick,
10682
+ "onSwitchCompanyClick": props.onSwitchCompanyClick
10683
+ }, null)]), !topNavNormal.value && createVNode(Fragment, null, [!topNavCollapsed.value && createVNode("div", {
10684
+ "class": `h-12px mx-10px`,
10685
+ "style": `border-left: 1px solid ${iconColor.value}`
10686
+ }, null), createVNode(_sfc_main$h, {
9978
10687
  "class": "custom-hover cursor-pointer",
9979
- "color": "var(--top-header-text-color)",
9980
- "onMessageClick": props.onMessageClick
9981
- }, null) : void 0, createVNode(UserInfo, {
9982
- "onLogoutClick": props.onLogoutClick
9983
- }, null)])]);
10688
+ "color": iconColor.value
10689
+ }, null)])])]);
9984
10690
  };
9985
10691
  }
9986
10692
  });
9987
- const ToolHeader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-0b5dffd2"]]);
10693
+ const ToolHeader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-caca6e2e"]]);
9988
10694
  const {
9989
10695
  getPrefixCls: getPrefixCls$1
9990
10696
  } = useDesign();
9991
10697
  const prefixCls$1 = getPrefixCls$1("layout");
9992
10698
  const scrollRef = ref();
9993
- const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick) => {
10699
+ const useRenderLayout = (props, {
10700
+ onLogoClick,
10701
+ onMessageClick,
10702
+ onLogoutClick,
10703
+ onClearCacheLogoutClick,
10704
+ onSwitchCompanyClick
10705
+ }) => {
9994
10706
  const appStore = useAppStore();
9995
10707
  const permissionStore = usePermissionStore();
9996
10708
  const pageLoading = computed(() => appStore.getPageLoading);
@@ -10019,28 +10731,51 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10019
10731
  });
10020
10732
  const zIndexClass = computed(() => {
10021
10733
  return {
10022
- "z-100": theme.value === "whiteLight"
10734
+ "z-2000": theme.value === "whiteLight"
10023
10735
  };
10024
10736
  });
10737
+ const topNav = computed(() => appStore.getTopNav);
10738
+ const topNavNormal = computed(() => topNav.value === "normal");
10025
10739
  const renderLeft = () => {
10026
- return createVNode(Fragment, null, [createVNode("div", {
10027
- "class": ["relative flex items-center bg-[linear-gradient(var(--top-header-bg-color))] layout-border__bottom dark:bg-[var(--el-bg-color)] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]", festivalTopClass.value, zIndexClass.value]
10740
+ return createVNode(Fragment, null, [topNavNormal.value && createVNode("div", {
10741
+ "class": ["relative flex items-center bg-[linear-gradient(var(--top-header-bg-color))] layout-border__bottom dark:bg-[var(--el-bg-color)] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]", festivalTopClass.value, zIndexClass.value],
10742
+ "style": "transition: all var(--transition-time-02);"
10028
10743
  }, [logo.value ? createVNode(_sfc_main$q, {
10029
10744
  "class": [{
10030
- "w-[var(--left-menu-min-width)]": appStore.getCollapse,
10031
- "w-[var(--left-menu-max-width)]": !appStore.getCollapse
10745
+ "w-[var(--left-menu-min-width)]": collapse.value,
10746
+ "w-[var(--left-menu-max-width)]": !collapse.value
10032
10747
  }],
10033
10748
  "onLogoClick": onLogoClick
10034
10749
  }, null) : void 0, createVNode(ToolHeader, {
10035
10750
  "class": "flex-1",
10036
10751
  "onMessageClick": onMessageClick,
10037
10752
  "onLogoutClick": onLogoutClick,
10038
- "onClearCacheLogoutClick": onClearCacheLogoutClick
10753
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10754
+ "onSwitchCompanyClick": onSwitchCompanyClick
10755
+ }, null)]), createVNode("div", {
10756
+ "class": ["w-full flex", {
10757
+ "h-[calc(100%-var(--top-header-height))]": topNavNormal.value,
10758
+ "h-full": !topNavNormal.value
10759
+ }]
10760
+ }, [createVNode("div", null, [!topNavNormal.value && createVNode(Fragment, null, [logo.value ? createVNode(_sfc_main$q, {
10761
+ "class": ["relative bg-[linear-gradient(var(--top-header-bg-color))] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]", zIndexClass.value, {
10762
+ "w-[var(--left-menu-min-width)]": collapse.value,
10763
+ "w-[var(--left-menu-max-width)]": !collapse.value
10764
+ }],
10765
+ "onLogoClick": onLogoClick,
10766
+ "style": "transition: all var(--transition-time-02);"
10767
+ }, null) : void 0, createVNode(ToolHeader, {
10768
+ "class": "flex-1",
10769
+ "onMessageClick": onMessageClick,
10770
+ "onLogoutClick": onLogoutClick,
10771
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10772
+ "onSwitchCompanyClick": onSwitchCompanyClick
10773
+ }, null)]), createVNode(Menu, {
10774
+ "class": ["relative layout-border__right", festivalMenuClass.value, {
10775
+ "!h-full": topNavNormal.value,
10776
+ "h-[calc(100%-var(--top-header-height))]": !topNavNormal.value
10777
+ }]
10039
10778
  }, null)]), createVNode("div", {
10040
- "class": "h-[calc(100%-var(--top-header-height))] w-full flex"
10041
- }, [createVNode(Menu, {
10042
- "class": ["relative layout-border__right !h-full", festivalMenuClass.value]
10043
- }, null), createVNode("div", {
10044
10779
  "class": [`${prefixCls$1}-content`, "h-[100%]", {
10045
10780
  "w-[calc(100%-var(--left-menu-min-width))] left-[var(--left-menu-min-width)]": collapse.value,
10046
10781
  "w-[calc(100%-var(--left-menu-max-width))] left-[var(--left-menu-max-width)]": !collapse.value
@@ -10050,12 +10785,14 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10050
10785
  "class": [`${prefixCls$1}-content-scrollbar`, {
10051
10786
  "!h-[calc(100%-var(--tags-view-height))] mt-[calc(var(--tags-view-height))]": tagsView.value
10052
10787
  }],
10053
- "ref": scrollRef
10788
+ "ref": scrollRef,
10789
+ "style": "transition: all var(--transition-time-02);"
10054
10790
  }, {
10055
10791
  default: () => [tagsView.value ? createVNode(TagsView, {
10056
- "class": ["layout-border__bottom absolute", "!fixed top-0 left-0 z-10", {
10057
- "w-[calc(100%-var(--left-menu-min-width))] !left-[var(--left-menu-min-width)] mt-[var(--top-header-height)]": collapse.value,
10058
- "w-[calc(100%-var(--left-menu-max-width))] !left-[var(--left-menu-max-width)] mt-[var(--top-header-height)]": !collapse.value
10792
+ "class": ["layout-border__bottom", "!fixed top-0 left-0 z-10", {
10793
+ "w-[calc(100%-var(--left-menu-min-width))] !left-[var(--left-menu-min-width)]": collapse.value,
10794
+ "w-[calc(100%-var(--left-menu-max-width))] !left-[var(--left-menu-max-width)]": !collapse.value,
10795
+ "mt-[var(--top-header-height)]": topNavNormal.value
10059
10796
  }],
10060
10797
  "style": "transition: width var(--transition-time-02), left var(--transition-time-02);"
10061
10798
  }, null) : void 0, createVNode(_sfc_main$p, null, null)]
@@ -10063,31 +10800,28 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10063
10800
  };
10064
10801
  const renderTop = () => {
10065
10802
  return createVNode(Fragment, null, [createVNode("div", {
10066
- "class": ["relative flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))]", {
10803
+ "class": ["relative w-full flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)] z-100", {
10067
10804
  "layout-border__bottom": !tagsView.value
10068
10805
  }, festivalTopClass.value]
10069
10806
  }, [logo.value ? createVNode(_sfc_main$q, {
10070
- "class": ["w-[var(--left-menu-max-width)]"],
10807
+ "class": ["shrink-0 w-[var(--left-menu-max-width)]"],
10071
10808
  "onLogoClick": onLogoClick
10072
- }, null) : void 0, createVNode(Menu, {
10073
- "class": "h-[var(--top-tool-height)] flex-1 px-10px"
10809
+ }, null) : void 0, tagsView.value && createVNode(TagsView, {
10810
+ "class": ["layout-border__bottom flex-1 min-w-0"]
10074
10811
  }, null), createVNode(ToolHeader, {
10812
+ "class": "shrink-0 pl-20px",
10075
10813
  "onMessageClick": onMessageClick,
10076
10814
  "onLogoutClick": onLogoutClick,
10077
- "onClearCacheLogoutClick": onClearCacheLogoutClick
10815
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10816
+ "onSwitchCompanyClick": onSwitchCompanyClick
10078
10817
  }, null)]), createVNode("div", {
10079
10818
  "class": [`${prefixCls$1}-content`, "w-full h-[calc(100%-var(--top-tool-height))]"]
10080
- }, [withDirectives(createVNode(ElScrollbar, {
10081
- "class": [`${prefixCls$1}-content-scrollbar`, {
10082
- "!h-[calc(100%-var(--tags-view-height))] mt-[calc(var(--tags-view-height))]": tagsView.value
10083
- }],
10819
+ }, [props.scroll ? withDirectives(createVNode(ElScrollbar, {
10820
+ "class": [`${prefixCls$1}-content-scrollbar`],
10084
10821
  "ref": scrollRef
10085
10822
  }, {
10086
- default: () => [tagsView.value ? createVNode(TagsView, {
10087
- "class": ["layout-border__bottom layout-border__top relative", "!fixed w-full top-[var(--top-tool-height)] left-0"],
10088
- "style": "transition: width var(--transition-time-02), left var(--transition-time-02);"
10089
- }, null) : void 0, createVNode(_sfc_main$p, null, null)]
10090
- }), [[resolveDirective("loading"), pageLoading.value]])])]);
10823
+ default: () => [createVNode(_sfc_main$p, null, null)]
10824
+ }), [[resolveDirective("loading"), pageLoading.value]]) : createVNode(_sfc_main$p, null, null)])]);
10091
10825
  };
10092
10826
  const renderTopLeft = () => {
10093
10827
  return createVNode(Fragment, null, [createVNode("div", {
@@ -10104,7 +10838,8 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10104
10838
  "class": "flex-1",
10105
10839
  "onMessageClick": onMessageClick,
10106
10840
  "onLogoutClick": onLogoutClick,
10107
- "onClearCacheLogoutClick": onClearCacheLogoutClick
10841
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10842
+ "onSwitchCompanyClick": onSwitchCompanyClick
10108
10843
  }, {
10109
10844
  default: () => createVNode(Menu, {
10110
10845
  "mode": "horizontal",
@@ -10151,13 +10886,25 @@ const {
10151
10886
  } = useDesign();
10152
10887
  const prefixCls = getPrefixCls("layout");
10153
10888
  const layoutScrollRef = ref();
10154
- const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick) => {
10889
+ const renderLayout = (layout, props, {
10890
+ handleLogoClick,
10891
+ handleMessageClick,
10892
+ handleLogoutClick,
10893
+ handleClearCacheLogoutClick,
10894
+ handleSwitchCompanyClick
10895
+ }) => {
10155
10896
  const {
10156
10897
  renderLeft,
10157
10898
  renderTop,
10158
10899
  renderTopLeft,
10159
10900
  scrollRef: scrollRef2
10160
- } = useRenderLayout(onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick);
10901
+ } = useRenderLayout(props, {
10902
+ onLogoClick: handleLogoClick,
10903
+ onMessageClick: handleMessageClick,
10904
+ onLogoutClick: handleLogoutClick,
10905
+ onClearCacheLogoutClick: handleClearCacheLogoutClick,
10906
+ onSwitchCompanyClick: handleSwitchCompanyClick
10907
+ });
10161
10908
  layoutScrollRef.value = scrollRef2.value;
10162
10909
  switch (unref(layout)) {
10163
10910
  case "left":
@@ -10170,7 +10917,13 @@ const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClea
10170
10917
  };
10171
10918
  const _sfc_main$e = /* @__PURE__ */ defineComponent({
10172
10919
  name: "Layout",
10173
- emits: ["logo-click", "message-click", "logout-click", "clear-cache-logout-click"],
10920
+ props: {
10921
+ scroll: {
10922
+ type: Boolean,
10923
+ default: true
10924
+ }
10925
+ },
10926
+ emits: ["logo-click", "message-click", "logout-click", "clear-cache-logout-click", "switch-company-click"],
10174
10927
  setup(props, {
10175
10928
  emit
10176
10929
  }) {
@@ -10190,12 +10943,21 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
10190
10943
  const handleClearCacheLogoutClick = () => {
10191
10944
  emit("clear-cache-logout-click");
10192
10945
  };
10946
+ const handleSwitchCompanyClick = (company) => {
10947
+ emit("switch-company-click", company);
10948
+ };
10193
10949
  return () => createVNode("section", {
10194
10950
  "class": [prefixCls, `${prefixCls}__${layout.value}`, "w-[100%] h-[100%] relative", `${prefixCls}__${theme.value}`]
10195
- }, [renderLayout(layout, handleLogoClick, handleMessageClick, handleLogoutClick, handleClearCacheLogoutClick), createVNode(_sfc_main$y, null, null)]);
10951
+ }, [renderLayout(layout, props, {
10952
+ handleLogoClick,
10953
+ handleMessageClick,
10954
+ handleLogoutClick,
10955
+ handleClearCacheLogoutClick,
10956
+ handleSwitchCompanyClick
10957
+ }), props.scroll && createVNode(_sfc_main$y, null, null)]);
10196
10958
  }
10197
10959
  });
10198
- const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-0fb07176"]]);
10960
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-0945fd78"]]);
10199
10961
  const _sfc_main$d = {
10200
10962
  __name: "ConfigGlobal",
10201
10963
  props: {
@@ -10267,6 +11029,22 @@ const _sfc_main$c = /* @__PURE__ */ Object.assign({ name: "PageCard" }, {
10267
11029
  padding: "16px"
10268
11030
  };
10269
11031
  }
11032
+ },
11033
+ customClass: {
11034
+ type: String,
11035
+ default: ""
11036
+ },
11037
+ scroll: {
11038
+ type: Boolean,
11039
+ default: false
11040
+ },
11041
+ scrollHeight: {
11042
+ type: String,
11043
+ default: void 0
11044
+ },
11045
+ scrollMaxHeight: {
11046
+ type: String,
11047
+ default: void 0
10270
11048
  }
10271
11049
  },
10272
11050
  setup(__props) {
@@ -10276,17 +11054,27 @@ const _sfc_main$c = /* @__PURE__ */ Object.assign({ name: "PageCard" }, {
10276
11054
  return openBlock(), createBlock(unref(ElCard), {
10277
11055
  "body-style": __props.bodyStyle,
10278
11056
  header: __props.title,
10279
- class: normalizeClass([unref(prefixCls2), "m-16px"])
11057
+ class: normalizeClass([unref(prefixCls2), __props.customClass, "mx-16px my-16px"])
10280
11058
  }, {
10281
11059
  default: withCtx(() => [
10282
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
11060
+ __props.scroll ? (openBlock(), createBlock(unref(ElScrollbar), {
11061
+ key: 0,
11062
+ height: __props.scrollHeight,
11063
+ "max-height": __props.scrollMaxHeight,
11064
+ always: ""
11065
+ }, {
11066
+ default: withCtx(() => [
11067
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
11068
+ ]),
11069
+ _: 3
11070
+ }, 8, ["height", "max-height"])) : renderSlot(_ctx.$slots, "default", { key: 1 }, void 0, true)
10283
11071
  ]),
10284
11072
  _: 3
10285
11073
  }, 8, ["body-style", "header", "class"]);
10286
11074
  };
10287
11075
  }
10288
11076
  });
10289
- const PageCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-eb81072a"]]);
11077
+ const PageCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-8351baee"]]);
10290
11078
  const _hoisted_1$5 = { class: "ml-2px" };
10291
11079
  const _hoisted_2$5 = { class: "flex items-center" };
10292
11080
  const _sfc_main$b = /* @__PURE__ */ Object.assign({ name: "PageNavBar" }, {
@@ -12372,6 +13160,8 @@ export {
12372
13160
  useAppStore as BmpUseAppStore,
12373
13161
  useAppStoreWithOut as BmpUseAppStoreWithOut,
12374
13162
  useLayout as BmpUseLayout,
13163
+ useLocaleStore as BmpUseLocaleStore,
13164
+ useLocaleStoreWithOut as BmpUseLocaleStoreWithOut,
12375
13165
  usePermissionStore as BmpUsePermissionStore,
12376
13166
  usePermissionStoreWithOut as BmpUsePermissionStoreWithOut,
12377
13167
  useTagsViewStore as BmpUseTagsViewStore,