bmp-layout 0.0.24 → 0.0.25-beta.1

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, 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";
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,20 +397,25 @@ 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
420
  menuTriggerBgColor: "#2468F2"
394
421
  };
@@ -434,13 +461,18 @@ const blueLight = {
434
461
  leftMenuItemBgHoverColor: "rgba(103,153,255,0.5)",
435
462
  // 左侧菜单文字颜色
436
463
  leftMenuTextColor: "#fff",
464
+ leftMenuTextHoverColor: "#fff",
437
465
  // 顶部菜单项移入颜色
438
466
  topMenuItemBgActiveColor: "rgba(103,153,255,1)",
439
467
  topMenuItemBgHoverColor: "rgba(103,153,255,0.5)",
440
468
  // 头部背景颜色
441
469
  topHeaderBgColor: "270deg, #29ACFE 0%, #2468F2 100%",
442
470
  // 头部文字颜色
471
+ topHeaderIconColor: "#fff",
443
472
  topHeaderTextColor: "#fff",
473
+ topHeaderHoverColor: "#f6f6f6",
474
+ topHeaderCompanyIconColor: "#fff",
475
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
444
476
  // 菜单触发器背景颜色
445
477
  menuTriggerBgColor: "transparent"
446
478
  };
@@ -492,7 +524,11 @@ const redLight = {
492
524
  // 头部背景颜色
493
525
  topHeaderBgColor: "0, #ea4636, #ea4636",
494
526
  // 头部文字颜色
527
+ topHeaderIconColor: "#fff",
495
528
  topHeaderTextColor: "#fff",
529
+ topHeaderHoverColor: "#f6f6f6",
530
+ topHeaderCompanyIconColor: "#fff",
531
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
496
532
  // 菜单触发器背景颜色
497
533
  menuTriggerBgColor: "transparent"
498
534
  };
@@ -544,7 +580,11 @@ const greenLight = {
544
580
  // 头部背景颜色
545
581
  topHeaderBgColor: "0, #0acfa5, #0acfa5",
546
582
  // 头部文字颜色
583
+ topHeaderIconColor: "#fff",
547
584
  topHeaderTextColor: "#fff",
585
+ topHeaderHoverColor: "#f6f6f6",
586
+ topHeaderCompanyIconColor: "#fff",
587
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
548
588
  // 菜单触发器背景颜色
549
589
  menuTriggerBgColor: "transparent"
550
590
  };
@@ -596,7 +636,11 @@ const springFestival = {
596
636
  // 头部背景颜色
597
637
  topHeaderBgColor: "270deg, #f25416 0%, #ef2704 100%",
598
638
  // 头部文字颜色
639
+ topHeaderIconColor: "#fff",
599
640
  topHeaderTextColor: "#fff",
641
+ topHeaderHoverColor: "#f6f6f6",
642
+ topHeaderCompanyIconColor: "#fff",
643
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
600
644
  // 菜单触发器背景颜色
601
645
  menuTriggerBgColor: "transparent"
602
646
  };
@@ -648,7 +692,11 @@ const dragonBoatFestival = {
648
692
  // 头部背景颜色
649
693
  topHeaderBgColor: "270deg, #3ac677 0%, #0dc35c 100%",
650
694
  // 头部文字颜色
695
+ topHeaderIconColor: "#fff",
651
696
  topHeaderTextColor: "#fff",
697
+ topHeaderHoverColor: "#f6f6f6",
698
+ topHeaderCompanyIconColor: "#fff",
699
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
652
700
  // 菜单触发器背景颜色
653
701
  menuTriggerBgColor: "transparent"
654
702
  };
@@ -700,7 +748,11 @@ const midAutumnFestival = {
700
748
  // 头部背景颜色
701
749
  topHeaderBgColor: "270deg, #fc9b4b 0%, #fa771d 100%",
702
750
  // 头部文字颜色
751
+ topHeaderIconColor: "#fff",
703
752
  topHeaderTextColor: "#fff",
753
+ topHeaderHoverColor: "#f6f6f6",
754
+ topHeaderCompanyIconColor: "#fff",
755
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
704
756
  // 菜单触发器背景颜色
705
757
  menuTriggerBgColor: "transparent"
706
758
  };
@@ -752,7 +804,11 @@ const newYearsDay = {
752
804
  // 头部背景颜色
753
805
  topHeaderBgColor: "270deg, #f84958 0%, #f63344 100%",
754
806
  // 头部文字颜色
807
+ topHeaderIconColor: "#fff",
755
808
  topHeaderTextColor: "#fff",
809
+ topHeaderHoverColor: "#f6f6f6",
810
+ topHeaderCompanyIconColor: "#fff",
811
+ topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
756
812
  // 菜单触发器背景颜色
757
813
  menuTriggerBgColor: "transparent"
758
814
  };
@@ -773,7 +829,7 @@ const useAppStore = defineStore("layout-app", {
773
829
  userInfo: "userInfo",
774
830
  // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
775
831
  sizeMap: ["default", "large", "small"],
776
- title: "业务中台",
832
+ title: "浪潮信链",
777
833
  // 标题
778
834
  pageLoading: false,
779
835
  // 路由跳转loading
@@ -803,13 +859,15 @@ const useAppStore = defineStore("layout-app", {
803
859
  // 显示页脚
804
860
  greyMode: false,
805
861
  // 是否开始灰色模式,用于特殊悼念日
806
- layout: wsCache$3.get(CACHE_KEY.LAYOUT) || "left",
807
- // layout布局
862
+ // layout: wsCache.get(CACHE_KEY.LAYOUT) || 'left', // layout布局
863
+ layout: "top",
808
864
  currentSize: wsCache$3.get("default") || "default",
809
865
  // 组件尺寸
810
866
  theme: wsCache$3.get(CACHE_KEY.THEME) || "whiteLight",
811
- isSetTheme: false
867
+ isSetTheme: false,
812
868
  //初始化主题色
869
+ // topNav: wsCache.get(CACHE_KEY.TOPNAV) || 'normal', // 顶部导航栏 normal、floating、collapsed
870
+ topNav: "normal"
813
871
  };
814
872
  },
815
873
  getters: {
@@ -875,6 +933,9 @@ const useAppStore = defineStore("layout-app", {
875
933
  },
876
934
  getIsSetTheme() {
877
935
  return this.isSetTheme;
936
+ },
937
+ getTopNav() {
938
+ return this.topNav;
878
939
  }
879
940
  },
880
941
  actions: {
@@ -936,6 +997,10 @@ const useAppStore = defineStore("layout-app", {
936
997
  setFooter(footer) {
937
998
  this.footer = footer;
938
999
  },
1000
+ setTopNav(topNav) {
1001
+ this.topNav = topNav;
1002
+ wsCache$3.set(CACHE_KEY.TOPNAV, topNav);
1003
+ },
939
1004
  async setUserTheme() {
940
1005
  }
941
1006
  },
@@ -1044,6 +1109,26 @@ const addToChildren = (routes, children, routeModule) => {
1044
1109
  }
1045
1110
  }
1046
1111
  };
1112
+ function findRouterBy(routers, key, value) {
1113
+ var _a2;
1114
+ for (const router of routers) {
1115
+ if (router[key] === value)
1116
+ return router;
1117
+ if ((_a2 = router.children) == null ? void 0 : _a2.length) {
1118
+ const found = findRouterBy(router.children, key, value);
1119
+ if (found)
1120
+ return found;
1121
+ }
1122
+ }
1123
+ return void 0;
1124
+ }
1125
+ function buildChildPaths(router) {
1126
+ const parentPath = router.path ? router.path.startsWith("/") ? router.path : `/${router.path}` : "";
1127
+ return (router.children || []).map((child) => {
1128
+ const childPath = child.path ? parentPath.endsWith("/") ? child.path.startsWith("/") ? child.path.substring(1) : child.path : child.path.startsWith("/") ? child.path : `/${child.path}` : "";
1129
+ return { ...child, path: `${parentPath}${childPath}` };
1130
+ });
1131
+ }
1047
1132
  const usePermissionStore = defineStore("layout-permission", {
1048
1133
  state: () => ({
1049
1134
  routers: [],
@@ -1052,6 +1137,7 @@ const usePermissionStore = defineStore("layout-permission", {
1052
1137
  leftMenuRouters: [],
1053
1138
  moduleRouters: [],
1054
1139
  moduleId: void 0,
1140
+ moduleName: void 0,
1055
1141
  roleRouters: []
1056
1142
  // 菜单数据存储到 state,确保响应式
1057
1143
  }),
@@ -1079,6 +1165,9 @@ const usePermissionStore = defineStore("layout-permission", {
1079
1165
  },
1080
1166
  getModuleId() {
1081
1167
  return this.moduleId;
1168
+ },
1169
+ getModuleName() {
1170
+ return this.moduleName;
1082
1171
  }
1083
1172
  },
1084
1173
  actions: {
@@ -1101,22 +1190,15 @@ const usePermissionStore = defineStore("layout-permission", {
1101
1190
  const childPath = child.path ? child.path.startsWith("/") ? child.path : `/${child.path}` : "";
1102
1191
  return { ...child, path: `${basePath}${childPath}` };
1103
1192
  });
1104
- this.leftMenuRouters = [];
1105
- nextTick(() => {
1106
- this.leftMenuRouters = routers;
1107
- });
1193
+ this.leftMenuRouters = routers;
1108
1194
  },
1109
1195
  // 处理模块对应菜单
1110
1196
  setModuleRouters(menuId) {
1111
- this.moduleId = menuId;
1112
- const findRouter = this.getRoleRouters.find((router) => router.id === menuId);
1197
+ const findRouter = findRouterBy(this.getRoleRouters, "id", menuId);
1113
1198
  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
- });
1199
+ this.moduleId = findRouter.id;
1200
+ this.moduleName = findRouter.name;
1201
+ this.moduleRouters = buildChildPaths(findRouter);
1120
1202
  }
1121
1203
  },
1122
1204
  resetState() {
@@ -1126,19 +1208,16 @@ const usePermissionStore = defineStore("layout-permission", {
1126
1208
  this.leftMenuRouters = [];
1127
1209
  this.moduleRouters = [];
1128
1210
  this.moduleId = void 0;
1211
+ this.moduleName = void 0;
1129
1212
  this.roleRouters = [];
1130
1213
  },
1131
1214
  // 处理模块对应菜单(通过模块code)
1132
1215
  setModuleRoutersByCode(moduleCode) {
1133
- const findRouter = this.getRoleRouters.find((router) => router.moduleCode === moduleCode);
1216
+ const findRouter = findRouterBy(this.getRoleRouters, "moduleCode", moduleCode);
1134
1217
  if (findRouter) {
1135
1218
  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
- });
1219
+ this.moduleName = findRouter.name;
1220
+ this.moduleRouters = buildChildPaths(findRouter);
1142
1221
  }
1143
1222
  }
1144
1223
  },
@@ -3489,8 +3568,8 @@ try {
3489
3568
  }
3490
3569
  } catch (err) {
3491
3570
  }
3492
- const _hoisted_1$e = ["xlink:href"];
3493
- const _hoisted_2$c = ["data-icon"];
3571
+ const _hoisted_1$d = ["xlink:href"];
3572
+ const _hoisted_2$b = ["data-icon"];
3494
3573
  const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
3495
3574
  __name: "Icon",
3496
3575
  props: {
@@ -3571,7 +3650,7 @@ const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
3571
3650
  key: 0,
3572
3651
  class: normalizeClass(unref(getSvgClass))
3573
3652
  }, [
3574
- createElementVNode("use", { "xlink:href": unref(symbolId) }, null, 8, _hoisted_1$e)
3653
+ createElementVNode("use", { "xlink:href": unref(symbolId) }, null, 8, _hoisted_1$d)
3575
3654
  ], 2)) : (openBlock(), createElementBlock("span", {
3576
3655
  key: 1,
3577
3656
  ref_key: "elRef",
@@ -3582,7 +3661,7 @@ const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
3582
3661
  createElementVNode("span", {
3583
3662
  class: normalizeClass(unref(getSvgClass)),
3584
3663
  "data-icon": unref(symbolId)
3585
- }, null, 10, _hoisted_2$c)
3664
+ }, null, 10, _hoisted_2$b)
3586
3665
  ], 6))
3587
3666
  ]),
3588
3667
  _: 1
@@ -3643,19 +3722,10 @@ const useRenderMenuTitle = () => {
3643
3722
  title = "Please set title",
3644
3723
  icon
3645
3724
  } = 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", {
3725
+ const showIcon = computed(() => layout.value !== "top");
3726
+ return createVNode(Fragment, null, [showIcon.value && createVNode(_sfc_main$x, {
3727
+ "icon": icon ? icon : "ep:house"
3728
+ }, null), createVNode("span", {
3659
3729
  "class": [`${prefixCls$5}__title`, "overflow-hidden overflow-ellipsis whitespace-nowrap text-ellipsis"]
3660
3730
  }, [t2(title)])]);
3661
3731
  };
@@ -3865,21 +3935,30 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
3865
3935
  }
3866
3936
  });
3867
3937
  };
3938
+ const showCollapse = computed(() => {
3939
+ return layout.value == "left" || unref(layout) == "topLeft" && props.mode == "vertical";
3940
+ });
3941
+ const moduleName = computed(() => permissionStore.getModuleName);
3942
+ const showModuleName = computed(() => (layout.value == "left" || layout.value == "topLeft" && props.mode == "vertical") && !collapse.value);
3868
3943
  return () => createVNode("div", {
3869
3944
  "id": prefixCls$4,
3870
- "class": [`${prefixCls$4} ${prefixCls$4}__${unref(menuMode)}`, "h-[100%] flex flex-col", {
3945
+ "class": [`${prefixCls$4} ${prefixCls$4}__${unref(menuMode)}`, "flex flex-col", {
3871
3946
  "w-[var(--left-menu-min-width)]": unref(collapse),
3872
3947
  "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"
3948
+ "bg-[linear-gradient(var(--left-menu-bg-color))]": unref(layout) == "left" || unref(layout) == "topLeft" && props.mode == "vertical",
3949
+ "collapse": unref(collapse),
3950
+ "un-collapse": !unref(collapse)
3874
3951
  }]
3875
- }, [createVNode("div", {
3952
+ }, [showModuleName.value && createVNode("div", {
3953
+ "class": "text-center text-16px font-500 p-16px pb-10px text-[var(--left-menu-text-color)]"
3954
+ }, [moduleName.value]), createVNode("div", {
3876
3955
  "class": "flex-1 overflow-hidden"
3877
- }, [renderMenuWrap()]), layout.value !== "top" ? createVNode(Collapse, {
3956
+ }, [renderMenuWrap()]), unref(showCollapse) ? createVNode(Collapse, {
3878
3957
  "color": "var(--top-header-text-color)"
3879
3958
  }, null) : void 0]);
3880
3959
  }
3881
3960
  });
3882
- const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-474ce778"]]);
3961
+ const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-ca95b9cd"]]);
3883
3962
  var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
3884
3963
  function int2char(n2) {
3885
3964
  return BI_RM.charAt(n2);
@@ -7535,10 +7614,15 @@ const useUserStore = defineStore("layout-user", {
7535
7614
  avatar: "",
7536
7615
  nickname: "",
7537
7616
  deptId: 0,
7617
+ deptName: "",
7538
7618
  mobile: "",
7539
7619
  email: "",
7540
- username: ""
7541
- }
7620
+ username: "",
7621
+ orgId: "",
7622
+ orgName: ""
7623
+ },
7624
+ // 公司列表
7625
+ companyList: []
7542
7626
  }),
7543
7627
  getters: {
7544
7628
  getPermissions() {
@@ -7556,6 +7640,9 @@ const useUserStore = defineStore("layout-user", {
7556
7640
  getUserInfo() {
7557
7641
  const userInfo = wsCache$1.get(CACHE_KEY.USER);
7558
7642
  return userInfo;
7643
+ },
7644
+ getCompanyList() {
7645
+ return this.companyList;
7559
7646
  }
7560
7647
  },
7561
7648
  actions: {
@@ -7592,6 +7679,10 @@ const useUserStore = defineStore("layout-user", {
7592
7679
  userInfo.user.email = user.email;
7593
7680
  wsCache$1.set(CACHE_KEY.USER, userInfo);
7594
7681
  },
7682
+ // 更新用户企业列表信息
7683
+ setCompanyListAction(companyList) {
7684
+ this.companyList = companyList || [];
7685
+ },
7595
7686
  async loginOut() {
7596
7687
  removeToken();
7597
7688
  deleteUserCache();
@@ -7978,9 +8069,9 @@ function useScrollTo({
7978
8069
  }
7979
8070
  return { start: run, stop };
7980
8071
  }
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" };
8072
+ const _hoisted_1$c = ["id"];
8073
+ const _hoisted_2$a = { class: "flex-1 overflow-hidden px-16px" };
8074
+ const _hoisted_3$9 = { class: "h-[var(--tags-view-height)] flex" };
7984
8075
  const _hoisted_4$8 = ["onClick"];
7985
8076
  const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
7986
8077
  __name: "TagsView",
@@ -8058,6 +8149,7 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8058
8149
  const wrap$ = (_a2 = unref(scrollbarRef)) == null ? void 0 : _a2.wrapRef;
8059
8150
  if (!wrap$)
8060
8151
  return;
8152
+ scrollStopFn == null ? void 0 : scrollStopFn();
8061
8153
  let firstTag = null;
8062
8154
  let lastTag = null;
8063
8155
  const tagList = unref(tagLinksRefs);
@@ -8066,12 +8158,22 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8066
8158
  lastTag = tagList[tagList.length - 1];
8067
8159
  }
8068
8160
  if ((firstTag == null ? void 0 : firstTag.to).fullPath === currentTag.fullPath) {
8069
- const { start } = useScrollTo({
8161
+ const { start, stop } = useScrollTo({
8070
8162
  el: wrap$,
8071
8163
  position: "scrollLeft",
8072
8164
  to: 0,
8073
8165
  duration: 500
8074
8166
  });
8167
+ scrollStopFn = stop;
8168
+ start();
8169
+ } else if ((lastTag == null ? void 0 : lastTag.to).fullPath === currentTag.fullPath) {
8170
+ const { start, stop } = useScrollTo({
8171
+ el: wrap$,
8172
+ position: "scrollLeft",
8173
+ to: wrap$.scrollWidth - wrap$.offsetWidth,
8174
+ duration: 500
8175
+ });
8176
+ scrollStopFn = stop;
8075
8177
  start();
8076
8178
  } else if ((lastTag == null ? void 0 : lastTag.to).fullPath === currentTag.fullPath) {
8077
8179
  const { start } = useScrollTo({
@@ -8082,9 +8184,7 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8082
8184
  });
8083
8185
  start();
8084
8186
  } else {
8085
- const currentIndex = tagList.findIndex(
8086
- (item) => (item == null ? void 0 : item.to).fullPath === currentTag.fullPath
8087
- );
8187
+ const currentIndex = tagList.findIndex((item) => (item == null ? void 0 : item.to).fullPath === currentTag.fullPath);
8088
8188
  const tgsRefs = document.getElementsByClassName(`${prefixCls2}__item`);
8089
8189
  const prevTag = tgsRefs[currentIndex - 1];
8090
8190
  const nextTag = tgsRefs[currentIndex + 1];
@@ -8093,20 +8193,22 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8093
8193
  const afterNextTagOffsetLeft = nextTag.offsetLeft + nextTag.offsetWidth;
8094
8194
  const beforePrevTagOffsetLeft = prevTag.offsetLeft;
8095
8195
  if (afterNextTagOffsetLeft > unref(scrollLeftNumber) + wrap$.offsetWidth) {
8096
- const { start } = useScrollTo({
8196
+ const { start, stop } = useScrollTo({
8097
8197
  el: wrap$,
8098
8198
  position: "scrollLeft",
8099
8199
  to: afterNextTagOffsetLeft - wrap$.offsetWidth,
8100
8200
  duration: 500
8101
8201
  });
8202
+ scrollStopFn = stop;
8102
8203
  start();
8103
8204
  } else if (beforePrevTagOffsetLeft < unref(scrollLeftNumber)) {
8104
- const { start } = useScrollTo({
8205
+ const { start, stop } = useScrollTo({
8105
8206
  el: wrap$,
8106
8207
  position: "scrollLeft",
8107
8208
  to: beforePrevTagOffsetLeft,
8108
8209
  duration: 500
8109
8210
  });
8211
+ scrollStopFn = stop;
8110
8212
  start();
8111
8213
  }
8112
8214
  }
@@ -8119,6 +8221,7 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8119
8221
  };
8120
8222
  const scrollbarRef = ref();
8121
8223
  const scrollLeftNumber = ref(0);
8224
+ let scrollStopFn = null;
8122
8225
  const scroll = ({ scrollLeft }) => {
8123
8226
  scrollLeftNumber.value = scrollLeft;
8124
8227
  };
@@ -8138,9 +8241,9 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8138
8241
  const _component_router_link = resolveComponent("router-link");
8139
8242
  return openBlock(), createElementBlock("div", {
8140
8243
  id: unref(prefixCls2),
8141
- class: normalizeClass([unref(prefixCls2), "relative w-full flex bg-[#dbe4f880]"])
8244
+ class: normalizeClass([unref(prefixCls2), "relative flex"])
8142
8245
  }, [
8143
- createElementVNode("div", _hoisted_2$b, [
8246
+ createElementVNode("div", _hoisted_2$a, [
8144
8247
  createVNode(unref(ElScrollbar), {
8145
8248
  ref_key: "scrollbarRef",
8146
8249
  ref: scrollbarRef,
@@ -8148,7 +8251,7 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8148
8251
  onScroll: scroll
8149
8252
  }, {
8150
8253
  default: withCtx(() => [
8151
- createElementVNode("div", _hoisted_3$a, [
8254
+ createElementVNode("div", _hoisted_3$9, [
8152
8255
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(visitedViews), (item) => {
8153
8256
  var _a2, _b, _c, _d, _e, _f;
8154
8257
  return openBlock(), createBlock(unref(_sfc_main$u), {
@@ -8208,18 +8311,22 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8208
8311
  var _a3, _b2;
8209
8312
  return [
8210
8313
  createElementVNode("div", {
8211
- class: normalizeClass(`h-full flex items-center justify-center gap-8px whitespace-nowrap ${unref(prefixCls2)}__item--label`),
8314
+ class: normalizeClass(`h-full flex items-center justify-center gap-16px whitespace-nowrap ${unref(prefixCls2)}__item--label`),
8212
8315
  onClick: navigate
8213
8316
  }, [
8214
8317
  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)
8318
+ ((_b2 = unref(visitedViews)) == null ? void 0 : _b2.length) > 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
8319
+ createVNode(_component_Icon, {
8320
+ class: normalizeClass(`${unref(prefixCls2)}__item--close`),
8321
+ size: 8,
8322
+ color: "#7b7e904ff",
8323
+ icon: "svg-icon:tag-close",
8324
+ onClick: withModifiers(($event) => closeSelectedTag(item), ["prevent", "stop"])
8325
+ }, null, 8, ["class", "onClick"]),
8326
+ createElementVNode("span", {
8327
+ class: normalizeClass(`${unref(prefixCls2)}__item--dot`)
8328
+ }, null, 2)
8329
+ ], 64)) : createCommentVNode("", true)
8223
8330
  ], 10, _hoisted_4$8)
8224
8331
  ];
8225
8332
  }),
@@ -8235,11 +8342,11 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8235
8342
  _: 1
8236
8343
  }, 512)
8237
8344
  ])
8238
- ], 10, _hoisted_1$d);
8345
+ ], 10, _hoisted_1$c);
8239
8346
  };
8240
8347
  }
8241
8348
  });
8242
- const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-dadb909c"]]);
8349
+ const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-3ab01e0b"]]);
8243
8350
  const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8244
8351
  __name: "MenuTrigger",
8245
8352
  props: {
@@ -8250,9 +8357,12 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8250
8357
  },
8251
8358
  emits: ["click", "toggle"],
8252
8359
  setup(__props, { emit: __emit }) {
8360
+ const appStore = useAppStore();
8253
8361
  const { getPrefixCls: getPrefixCls2 } = useDesign();
8254
8362
  const prefixCls2 = getPrefixCls2("menu-trigger");
8255
8363
  const props = __props;
8364
+ const theme = computed(() => appStore.getTheme);
8365
+ const triggerIcon = computed(() => props.active ? "ant-design:close-outlined" : theme.value === "whiteLight" ? "svg-icon:menu-trigger-filled" : "svg-icon:menu-trigger");
8256
8366
  const emit = __emit;
8257
8367
  const handleClick = () => {
8258
8368
  emit("click");
@@ -8265,7 +8375,7 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8265
8375
  onClick: handleClick
8266
8376
  }, [
8267
8377
  createVNode(_component_Icon, {
8268
- icon: props.active ? "ant-design:close-outlined" : "svg-icon:menu-trigger",
8378
+ icon: unref(triggerIcon),
8269
8379
  svgClass: "!w-full !h-full",
8270
8380
  class: normalizeClass(["!w-18px", "!h-18px", "icon-color"])
8271
8381
  }, null, 8, ["icon"])
@@ -8273,13 +8383,12 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8273
8383
  };
8274
8384
  }
8275
8385
  });
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"];
8386
+ const MenuTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-aedf94f7"]]);
8387
+ const _hoisted_1$b = { class: "sidebar-inner" };
8388
+ const _hoisted_2$9 = ["onClick"];
8389
+ const _hoisted_3$8 = ["onClick"];
8280
8390
  const _hoisted_4$7 = ["onClick"];
8281
- const _hoisted_5$5 = { key: 0 };
8282
- const _hoisted_6$4 = { key: 1 };
8391
+ const _hoisted_5$6 = ["onClick"];
8283
8392
  const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel" }, {
8284
8393
  __name: "ProductServicePanel",
8285
8394
  props: {
@@ -8320,11 +8429,15 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8320
8429
  }, 300);
8321
8430
  }
8322
8431
  });
8323
- const activeCategory = ref(0);
8432
+ const activeProductIndex = ref(0);
8433
+ const activeModuleIndex = ref(0);
8324
8434
  const routers = computed(() => permissionStore.getRoleRouters);
8435
+ const productMenuRouters = computed(() => {
8436
+ return (routers.value || []).filter((item) => item.type === 10);
8437
+ });
8325
8438
  const filteredMenus = computed(() => {
8326
8439
  const keyword = debouncedKeyword.value.toLowerCase().trim();
8327
- const items = routers.value;
8440
+ const items = productMenuRouters.value;
8328
8441
  if (!items || !Array.isArray(items))
8329
8442
  return [];
8330
8443
  const filterFn = (list) => {
@@ -8345,7 +8458,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8345
8458
  };
8346
8459
  return filterFn(items);
8347
8460
  });
8348
- const groupedMenus = computed(() => {
8461
+ const productList = computed(() => {
8349
8462
  return filteredMenus.value.map((menu) => {
8350
8463
  var _a2;
8351
8464
  return {
@@ -8358,11 +8471,34 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8358
8471
  };
8359
8472
  });
8360
8473
  });
8361
- const currentCategoryMenus = computed(() => {
8362
- if (groupedMenus.value.length === 0)
8474
+ const activeProduct = computed(() => {
8475
+ if (productList.value.length === 0)
8476
+ return null;
8477
+ return productList.value[activeProductIndex.value] || null;
8478
+ });
8479
+ const activeModules = computed(() => {
8480
+ var _a2;
8481
+ return ((_a2 = activeProduct.value) == null ? void 0 : _a2.children) || [];
8482
+ });
8483
+ const activeModule = computed(() => {
8484
+ if (activeModules.value.length === 0)
8485
+ return null;
8486
+ return activeModules.value[activeModuleIndex.value] || null;
8487
+ });
8488
+ const contentGroups = computed(() => {
8489
+ if (!activeModule.value)
8363
8490
  return [];
8364
- const group = groupedMenus.value[activeCategory.value];
8365
- return (group == null ? void 0 : group.children) || [];
8491
+ const thirdMenus = (activeModule.value.children || []).filter(isVisible);
8492
+ return thirdMenus.map((third) => ({
8493
+ id: third.id,
8494
+ title: getMenuTitle(third),
8495
+ path: third.path,
8496
+ items: (third.children || []).filter(isVisible).map((fourth) => ({
8497
+ id: fourth.id,
8498
+ title: getMenuTitle(fourth),
8499
+ path: fourth.path
8500
+ }))
8501
+ }));
8366
8502
  });
8367
8503
  const joinPath = (...paths) => {
8368
8504
  return paths.filter(Boolean).reduce((result, path) => {
@@ -8388,19 +8524,20 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8388
8524
  clearTimeout(debounceTimer);
8389
8525
  searchKeyword.value = "";
8390
8526
  debouncedKeyword.value = "";
8391
- activeCategory.value = 0;
8527
+ activeProductIndex.value = 0;
8528
+ activeModuleIndex.value = 0;
8392
8529
  };
8393
8530
  const handleSelect = (item, parentPath = "") => {
8394
- var _a2, _b;
8531
+ var _a2, _b, _c;
8395
8532
  const fullPath = getAccessiblePath(item, parentPath);
8396
8533
  if (fullPath) {
8397
8534
  const currentModuleId = permissionStore.getModuleId;
8398
- const selectedModuleId = (_a2 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a2.id;
8535
+ const selectedModuleId = (_b = (_a2 = productList.value[activeProductIndex.value]) == null ? void 0 : _a2.children[activeModuleIndex.value]) == null ? void 0 : _b.id;
8399
8536
  if (selectedModuleId === currentModuleId) {
8400
8537
  router.push(fullPath.startsWith("/") ? fullPath : `/${fullPath}`);
8401
8538
  } else {
8402
8539
  const currentOrigin = window.location.origin;
8403
- const modulePath = ((_b = groupedMenus.value[activeCategory.value]) == null ? void 0 : _b.modulePath) || "";
8540
+ const modulePath = ((_c = productList.value[activeProductIndex.value]) == null ? void 0 : _c.modulePath) || "";
8404
8541
  const moduleFullPath = joinPath(modulePath, fullPath);
8405
8542
  const targetUrl = `${currentOrigin}${moduleFullPath.startsWith("/") ? moduleFullPath : `/${moduleFullPath}`}`;
8406
8543
  window.location.href = targetUrl;
@@ -8408,38 +8545,64 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8408
8545
  closePanel();
8409
8546
  }
8410
8547
  };
8411
- const handleCategorySelect = (index) => {
8412
- activeCategory.value = index;
8548
+ const handleProductSelect = (index) => {
8549
+ activeProductIndex.value = index;
8550
+ activeModuleIndex.value = 0;
8413
8551
  };
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
- }
8552
+ const handleModuleSelect = (index) => {
8553
+ activeModuleIndex.value = index;
8554
+ };
8555
+ const handleItemClick = (fourthItem, group) => {
8556
+ var _a2, _b;
8557
+ const parentPath = joinPath((_a2 = activeProduct.value) == null ? void 0 : _a2.path, (_b = activeModule.value) == null ? void 0 : _b.path, group.path);
8558
+ handleSelect(fourthItem, parentPath);
8559
+ };
8560
+ const handleGroupClick = (group) => {
8561
+ var _a2, _b;
8562
+ const parentPath = joinPath((_a2 = activeProduct.value) == null ? void 0 : _a2.path, (_b = activeModule.value) == null ? void 0 : _b.path);
8563
+ handleSelect({ path: group.path, children: [] }, parentPath);
8564
+ };
8565
+ const syncActiveSelection = () => {
8566
+ const currentModuleId = permissionStore.getModuleId;
8567
+ if (!currentModuleId)
8568
+ return false;
8569
+ for (let pIndex = 0; pIndex < productList.value.length; pIndex++) {
8570
+ const mIndex = productList.value[pIndex].children.findIndex(
8571
+ (mod) => mod.id === currentModuleId
8572
+ );
8573
+ if (mIndex !== -1) {
8574
+ activeProductIndex.value = pIndex;
8575
+ activeModuleIndex.value = mIndex;
8576
+ return true;
8429
8577
  }
8430
8578
  }
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
- });
8579
+ return false;
8580
+ };
8581
+ watch(productList, () => {
8582
+ if (!syncActiveSelection()) {
8583
+ if (activeProductIndex.value >= productList.value.length) {
8584
+ activeProductIndex.value = 0;
8585
+ }
8586
+ activeModuleIndex.value = 0;
8441
8587
  }
8442
8588
  });
8589
+ watch(
8590
+ () => props.visible,
8591
+ (val) => {
8592
+ if (val) {
8593
+ searchKeyword.value = "";
8594
+ debouncedKeyword.value = "";
8595
+ if (!syncActiveSelection()) {
8596
+ activeProductIndex.value = 0;
8597
+ activeModuleIndex.value = 0;
8598
+ }
8599
+ nextTick(() => {
8600
+ var _a2;
8601
+ (_a2 = searchInputRef.value) == null ? void 0 : _a2.focus();
8602
+ });
8603
+ }
8604
+ }
8605
+ );
8443
8606
  const handleKeydown = (e2) => {
8444
8607
  if (e2.key === "Escape" && props.visible) {
8445
8608
  closePanel();
@@ -8473,22 +8636,43 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8473
8636
  createElementVNode("div", {
8474
8637
  class: normalizeClass([unref(prefixCls2) + "__sidebar-title"])
8475
8638
  }, [
8476
- createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.allProducts")), 1)
8639
+ createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.productNavigation")), 1)
8477
8640
  ], 2),
8478
8641
  createVNode(unref(ElScrollbar), null, {
8479
8642
  default: withCtx(() => [
8480
- createElementVNode("div", _hoisted_1$c, [
8481
- (openBlock(true), createElementBlock(Fragment, null, renderList(groupedMenus.value, (group, index) => {
8643
+ createElementVNode("div", _hoisted_1$b, [
8644
+ (openBlock(true), createElementBlock(Fragment, null, renderList(productList.value, (product, pIndex) => {
8482
8645
  return openBlock(), createElementBlock("div", {
8483
- key: group.id || index,
8646
+ key: product.id || pIndex,
8484
8647
  class: normalizeClass([
8485
- unref(prefixCls2) + "__category",
8486
- { "is-active": activeCategory.value === index }
8648
+ unref(prefixCls2) + "__product-card",
8649
+ { "is-active": activeProductIndex.value === pIndex }
8487
8650
  ]),
8488
- onClick: ($event) => handleCategorySelect(index)
8651
+ onClick: ($event) => handleProductSelect(pIndex)
8489
8652
  }, [
8490
- createElementVNode("span", null, toDisplayString(group.title), 1)
8491
- ], 10, _hoisted_2$a);
8653
+ createElementVNode("div", {
8654
+ class: normalizeClass([unref(prefixCls2) + "__product-name"])
8655
+ }, [
8656
+ createElementVNode("span", null, toDisplayString(product.title), 1)
8657
+ ], 2),
8658
+ product.children.length > 0 ? (openBlock(), createElementBlock("div", {
8659
+ key: 0,
8660
+ class: normalizeClass([unref(prefixCls2) + "__product-modules"])
8661
+ }, [
8662
+ (openBlock(true), createElementBlock(Fragment, null, renderList(product.children, (mod, mIndex) => {
8663
+ return openBlock(), createElementBlock("span", {
8664
+ key: mod.id || mIndex,
8665
+ class: normalizeClass([
8666
+ unref(prefixCls2) + "__module-tag",
8667
+ {
8668
+ "is-active": activeProductIndex.value === pIndex && activeModuleIndex.value === mIndex
8669
+ }
8670
+ ]),
8671
+ onClick: withModifiers(($event) => (handleProductSelect(pIndex), handleModuleSelect(mIndex)), ["stop"])
8672
+ }, toDisplayString(getMenuTitle(mod)), 11, _hoisted_3$8);
8673
+ }), 128))
8674
+ ], 2)) : createCommentVNode("", true)
8675
+ ], 10, _hoisted_2$9);
8492
8676
  }), 128))
8493
8677
  ])
8494
8678
  ]),
@@ -8533,60 +8717,38 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8533
8717
  createElementVNode("div", {
8534
8718
  class: normalizeClass([unref(prefixCls2) + "__grid-container"])
8535
8719
  }, [
8536
- currentCategoryMenus.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(currentCategoryMenus.value, (secondMenu) => {
8720
+ contentGroups.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(contentGroups.value, (group) => {
8537
8721
  return openBlock(), createElementBlock("div", {
8538
- key: secondMenu.id || secondMenu.path,
8539
- class: normalizeClass([unref(prefixCls2) + "__column"])
8722
+ key: group.id || group.title,
8723
+ class: normalizeClass([unref(prefixCls2) + "__group"])
8540
8724
  }, [
8541
8725
  createElementVNode("div", {
8542
- class: normalizeClass([unref(prefixCls2) + "__column-title"])
8726
+ class: normalizeClass([unref(prefixCls2) + "__group-title"])
8543
8727
  }, [
8544
- createElementVNode("span", null, toDisplayString(getMenuTitle(secondMenu)), 1)
8728
+ createElementVNode("span", null, toDisplayString(group.title), 1)
8545
8729
  ], 2),
8546
8730
  createElementVNode("div", {
8547
- class: normalizeClass([unref(prefixCls2) + "__column-list"])
8731
+ class: normalizeClass([unref(prefixCls2) + "__group-grid"])
8548
8732
  }, [
8549
- secondMenu.children && secondMenu.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(secondMenu.children.filter(isVisible), (thirdMenu) => {
8733
+ group.items.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(group.items, (item) => {
8550
8734
  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
- }
8735
+ key: item.id || item.path,
8736
+ class: normalizeClass([unref(prefixCls2) + "__group-item"]),
8737
+ onClick: ($event) => handleItemClick(item, group)
8557
8738
  }, [
8558
- createElementVNode("span", null, toDisplayString(getMenuTitle(thirdMenu)), 1)
8559
- ], 10, _hoisted_3$9);
8739
+ createElementVNode("span", null, toDisplayString(item.title), 1)
8740
+ ], 10, _hoisted_4$7);
8560
8741
  }), 128)) : (openBlock(), createElementBlock("div", {
8561
8742
  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
- }
8743
+ class: normalizeClass([unref(prefixCls2) + "__group-item"]),
8744
+ onClick: ($event) => handleGroupClick(group)
8570
8745
  }, [
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))
8746
+ createElementVNode("span", null, toDisplayString(group.title), 1)
8747
+ ], 10, _hoisted_5$6))
8573
8748
  ], 2)
8574
8749
  ], 2);
8575
- }), 128)) : groupedMenus.value[activeCategory.value] ? (openBlock(), createElementBlock("div", {
8750
+ }), 128)) : activeProduct.value ? (openBlock(), createElementBlock("div", {
8576
8751
  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
8752
  class: normalizeClass([unref(prefixCls2) + "__empty"])
8591
8753
  }, [
8592
8754
  createVNode(unref(_sfc_main$x), {
@@ -8594,7 +8756,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8594
8756
  size: 48
8595
8757
  }),
8596
8758
  createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.noDataTitle")), 1)
8597
- ], 2))
8759
+ ], 2)) : createCommentVNode("", true)
8598
8760
  ], 2)
8599
8761
  ]),
8600
8762
  _: 1
@@ -8613,7 +8775,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8613
8775
  };
8614
8776
  }
8615
8777
  });
8616
- const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-909615b6"]]);
8778
+ const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-130420a1"]]);
8617
8779
  const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8618
8780
  __name: "Logo",
8619
8781
  emits: ["logo-click"],
@@ -8622,8 +8784,7 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8622
8784
  const { getPrefixCls: getPrefixCls2 } = useDesign();
8623
8785
  const prefixCls2 = getPrefixCls2("logo");
8624
8786
  const appStore = useAppStore();
8625
- const title = computed(() => appStore.getTitle);
8626
- const layout = computed(() => appStore.getLayout);
8787
+ computed(() => appStore.getLayout);
8627
8788
  const theme = computed(() => appStore.getTheme);
8628
8789
  const panelVisible = ref(false);
8629
8790
  const togglePanel = (isActive) => {
@@ -8655,20 +8816,11 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8655
8816
  onClick: handleClickLogo
8656
8817
  }, [
8657
8818
  createVNode(_component_Icon, {
8658
- icon: "svg-icon:logo",
8819
+ icon: "svg-icon:inspur-xinlian",
8659
8820
  color: fontColor.value,
8660
8821
  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)
8822
+ class: normalizeClass(["!w-[var(--logo-width)]", "!h-[var(--logo-height)]"])
8823
+ }, null, 8, ["color"])
8672
8824
  ])
8673
8825
  ], 2),
8674
8826
  createVNode(unref(ProductServicePanel), {
@@ -8679,7 +8831,7 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8679
8831
  };
8680
8832
  }
8681
8833
  });
8682
- const _hoisted_1$b = { class: "w-full min-w-1000px" };
8834
+ const _hoisted_1$a = { class: "w-full min-w-1000px" };
8683
8835
  const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "AppView" }, {
8684
8836
  __name: "AppView",
8685
8837
  setup(__props) {
@@ -8714,7 +8866,7 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "AppView" }, {
8714
8866
  provide("reload", reload);
8715
8867
  return (_ctx, _cache) => {
8716
8868
  const _component_router_view = resolveComponent("router-view");
8717
- return openBlock(), createElementBlock("section", _hoisted_1$b, [
8869
+ return openBlock(), createElementBlock("section", _hoisted_1$a, [
8718
8870
  unref(routerAlive) ? (openBlock(), createBlock(_component_router_view, { key: 0 }, {
8719
8871
  default: withCtx(({ Component, route }) => [
8720
8872
  (openBlock(), createBlock(KeepAlive, { include: unref(getCaches) }, [
@@ -8779,7 +8931,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Message" }, {
8779
8931
  createVNode(_component_Icon, {
8780
8932
  color: __props.color,
8781
8933
  size: 18,
8782
- icon: "ep:bell"
8934
+ icon: "svg-icon:bell"
8783
8935
  }, null, 8, ["color"])
8784
8936
  ]),
8785
8937
  _: 1
@@ -8788,72 +8940,213 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Message" }, {
8788
8940
  };
8789
8941
  }
8790
8942
  });
8791
- const Message = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-5a726c1e"]]);
8943
+ const Message = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-fdaeb8e4"]]);
8792
8944
  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" };
8945
+ 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)]" };
8946
+ const _hoisted_2$8 = { class: "pl-6px text-12px <lg:hidden" };
8947
+ const _hoisted_3$7 = { class: "ml-6px" };
8948
+ const _hoisted_4$6 = { class: "flex items-center text-[var(--top-header-text-color)] hover:text-[var(--top-header-hover-color)] mr-18px" };
8949
+ const _hoisted_5$5 = { class: "pl-5px text-12px <lg:hidden" };
8950
+ const _hoisted_6$4 = { class: "ml-6px" };
8951
+ const _hoisted_7$2 = { class: "flex items-center text-#e0e0e0" };
8952
+ const _hoisted_8$1 = { class: "flex flex-col gap-3px pl-5px text-12px <lg:hidden" };
8953
+ const _hoisted_9 = { class: "text-#fff" };
8954
+ const _hoisted_10 = { key: 0 };
8955
+ const _hoisted_11 = { class: "ml-6px" };
8796
8956
  const _sfc_main$n = /* @__PURE__ */ Object.assign({ name: "UserInfo" }, {
8797
8957
  __name: "UserInfo",
8798
- emits: ["logout-click"],
8958
+ emits: ["logout-click", "switch-company-click"],
8799
8959
  setup(__props, { emit: __emit }) {
8800
8960
  const emit = __emit;
8801
8961
  const { t: t2 } = useI18n();
8802
8962
  const userStore = useUserStore();
8963
+ const appStore = useAppStore();
8803
8964
  const { getPrefixCls: getPrefixCls2 } = useDesign();
8804
- const prefixCls2 = getPrefixCls2("user-info");
8965
+ const prefixCls2 = getPrefixCls2("info");
8805
8966
  const avatar = computed(() => userStore.user.avatar || avatarImg);
8806
8967
  const userName = computed(() => userStore.user.nickname ?? "Admin");
8968
+ const topNav = computed(() => appStore.getTopNav);
8969
+ const topNavNormal = computed(() => topNav.value === "normal");
8970
+ const topNavFloating = computed(() => topNav.value === "floating");
8971
+ const orgId = computed(() => {
8972
+ var _a2;
8973
+ return (_a2 = userStore.user) == null ? void 0 : _a2.orgId;
8974
+ });
8975
+ const orgName = computed(() => {
8976
+ var _a2;
8977
+ return (_a2 = userStore.user) == null ? void 0 : _a2.orgName;
8978
+ });
8979
+ const companyList = computed(() => userStore.getCompanyList);
8980
+ const showCompanyList = computed(() => companyList.value.length > 0);
8807
8981
  const handleLogoutClick = () => {
8808
8982
  emit("logout-click");
8809
8983
  };
8984
+ const handleSwitchCompany = (company) => {
8985
+ emit("switch-company-click", deepClone(company));
8986
+ };
8810
8987
  return (_ctx, _cache) => {
8811
8988
  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, {
8989
+ return openBlock(), createElementBlock(Fragment, null, [
8990
+ unref(topNavNormal) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
8991
+ unref(showCompanyList) && unref(orgId) ? (openBlock(), createBlock(unref(ElDropdown), {
8992
+ key: 0,
8993
+ class: normalizeClass(["custom-hover cursor-pointer", `${unref(prefixCls2)}-company`]),
8994
+ trigger: "click"
8995
+ }, {
8996
+ dropdown: withCtx(() => [
8997
+ createVNode(unref(ElDropdownMenu), null, {
8998
+ default: withCtx(() => [
8999
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(companyList), (company) => {
9000
+ return openBlock(), createBlock(unref(ElDropdownItem), {
9001
+ key: company.enterpriseId,
9002
+ disabled: company.enterpriseId == unref(orgId),
9003
+ onClick: ($event) => handleSwitchCompany(company)
9004
+ }, {
9005
+ default: withCtx(() => [
9006
+ createTextVNode(toDisplayString(company.enterpriseName), 1)
9007
+ ]),
9008
+ _: 2
9009
+ }, 1032, ["disabled", "onClick"]);
9010
+ }), 128))
9011
+ ]),
9012
+ _: 1
9013
+ })
9014
+ ]),
8818
9015
  default: withCtx(() => [
8819
- createVNode(unref(ElDropdownItem), { onClick: handleLogoutClick }, {
9016
+ createElementVNode("div", _hoisted_1$9, [
9017
+ createVNode(_component_Icon, {
9018
+ icon: "svg-icon:company",
9019
+ color: "var(--top-header-company-icon-color)",
9020
+ svgClass: "!w-full !h-full",
9021
+ class: normalizeClass(["!w-14px", "!h-14px"])
9022
+ }),
9023
+ createElementVNode("span", _hoisted_2$8, toDisplayString(unref(orgName)), 1),
9024
+ createElementVNode("span", _hoisted_3$7, [
9025
+ createVNode(_component_Icon, {
9026
+ icon: "ep:arrow-down",
9027
+ svgClass: "!w-full !h-full",
9028
+ class: normalizeClass(["!w-12px", "!h-12px"])
9029
+ })
9030
+ ])
9031
+ ])
9032
+ ]),
9033
+ _: 1
9034
+ }, 8, ["class"])) : createCommentVNode("", true),
9035
+ createVNode(unref(ElDropdown), {
9036
+ class: normalizeClass(["custom-hover cursor-pointer", `${unref(prefixCls2)}-user`]),
9037
+ trigger: "click"
9038
+ }, {
9039
+ dropdown: withCtx(() => [
9040
+ createVNode(unref(ElDropdownMenu), null, {
8820
9041
  default: withCtx(() => [
8821
- createVNode(_component_Icon, { icon: "ep:switch-button" }),
8822
- createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
9042
+ createVNode(unref(ElDropdownItem), { onClick: handleLogoutClick }, {
9043
+ default: withCtx(() => [
9044
+ createVNode(_component_Icon, { icon: "ep:switch-button" }),
9045
+ createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
9046
+ ]),
9047
+ _: 1
9048
+ })
8823
9049
  ]),
8824
9050
  _: 1
8825
9051
  })
8826
9052
  ]),
9053
+ default: withCtx(() => [
9054
+ createElementVNode("div", _hoisted_4$6, [
9055
+ createVNode(unref(ElAvatar), {
9056
+ src: unref(avatar),
9057
+ size: 24,
9058
+ class: "!bg-transparent"
9059
+ }, {
9060
+ default: withCtx(() => [
9061
+ createVNode(_component_Icon, {
9062
+ icon: "fa:user-circle-o",
9063
+ size: 24
9064
+ })
9065
+ ]),
9066
+ _: 1
9067
+ }, 8, ["src"]),
9068
+ createElementVNode("span", _hoisted_5$5, toDisplayString(unref(userName)), 1),
9069
+ createElementVNode("span", _hoisted_6$4, [
9070
+ createVNode(_component_Icon, {
9071
+ icon: "ep:arrow-down",
9072
+ svgClass: "!w-full !h-full",
9073
+ class: normalizeClass(["!w-12px", "!h-12px"])
9074
+ })
9075
+ ])
9076
+ ])
9077
+ ]),
8827
9078
  _: 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
- }, {
9079
+ }, 8, ["class"])
9080
+ ], 64)) : createCommentVNode("", true),
9081
+ unref(topNavFloating) ? (openBlock(), createBlock(unref(ElDropdown), {
9082
+ key: 1,
9083
+ class: normalizeClass(["custom-hover cursor-pointer", `${unref(prefixCls2)}-company-user`]),
9084
+ trigger: "click"
9085
+ }, {
9086
+ dropdown: withCtx(() => [
9087
+ createVNode(unref(ElDropdownMenu), null, {
8837
9088
  default: withCtx(() => [
8838
- createVNode(_component_Icon, {
8839
- icon: "fa:user-circle-o",
8840
- size: 24
8841
- })
9089
+ unref(showCompanyList) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(companyList), (company) => {
9090
+ return openBlock(), createBlock(unref(ElDropdownItem), {
9091
+ key: company.enterpriseId,
9092
+ disabled: company.enterpriseId == unref(orgId),
9093
+ onClick: ($event) => handleSwitchCompany(company)
9094
+ }, {
9095
+ default: withCtx(() => [
9096
+ createTextVNode(toDisplayString(company.enterpriseName), 1)
9097
+ ]),
9098
+ _: 2
9099
+ }, 1032, ["disabled", "onClick"]);
9100
+ }), 128)) : createCommentVNode("", true),
9101
+ createVNode(unref(ElDropdownItem), {
9102
+ divided: unref(showCompanyList),
9103
+ onClick: handleLogoutClick
9104
+ }, {
9105
+ default: withCtx(() => [
9106
+ createVNode(_component_Icon, { icon: "ep:switch-button" }),
9107
+ createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
9108
+ ]),
9109
+ _: 1
9110
+ }, 8, ["divided"])
8842
9111
  ]),
8843
9112
  _: 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" })
9113
+ })
9114
+ ]),
9115
+ default: withCtx(() => [
9116
+ createElementVNode("div", _hoisted_7$2, [
9117
+ createVNode(unref(ElAvatar), {
9118
+ src: unref(avatar),
9119
+ size: 24,
9120
+ class: "!bg-transparent"
9121
+ }, {
9122
+ default: withCtx(() => [
9123
+ createVNode(_component_Icon, {
9124
+ icon: "fa:user-circle-o",
9125
+ size: 24
9126
+ })
9127
+ ]),
9128
+ _: 1
9129
+ }, 8, ["src"]),
9130
+ createElementVNode("div", _hoisted_8$1, [
9131
+ createElementVNode("span", _hoisted_9, toDisplayString(unref(userName)), 1),
9132
+ unref(showCompanyList) ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(unref(orgName)), 1)) : createCommentVNode("", true)
9133
+ ]),
9134
+ createElementVNode("span", _hoisted_11, [
9135
+ createVNode(_component_Icon, {
9136
+ icon: "ep:arrow-down",
9137
+ svgClass: "!w-full !h-full",
9138
+ class: normalizeClass(["!w-12px", "!h-12px"])
9139
+ })
9140
+ ])
8848
9141
  ])
8849
- ])
8850
- ]),
8851
- _: 1
8852
- }, 8, ["class"]);
9142
+ ]),
9143
+ _: 1
9144
+ }, 8, ["class"])) : createCommentVNode("", true)
9145
+ ], 64);
8853
9146
  };
8854
9147
  }
8855
9148
  });
8856
- const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-058b21ff"]]);
9149
+ const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-31268ba6"]]);
8857
9150
  const filterBreadcrumb = (routes, parentPath = "") => {
8858
9151
  var _a2;
8859
9152
  const res = [];
@@ -9382,7 +9675,7 @@ const setI18nLanguage = (locale) => {
9382
9675
  const useLocale = () => {
9383
9676
  const changeLocale = async (locale) => {
9384
9677
  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`);
9678
+ 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/${locale}.js`);
9386
9679
  globalI18n.setLocaleMessage(locale, langModule.default);
9387
9680
  setI18nLanguage(locale);
9388
9681
  };
@@ -9452,9 +9745,9 @@ const _sfc_main$l = /* @__PURE__ */ Object.assign({ name: "LocaleDropdown" }, {
9452
9745
  };
9453
9746
  }
9454
9747
  });
9455
- const _hoisted_1$9 = { class: "theme-list" };
9456
- const _hoisted_2$8 = ["onClick"];
9457
- const _hoisted_3$7 = { class: "name" };
9748
+ const _hoisted_1$8 = { class: "theme-list" };
9749
+ const _hoisted_2$7 = ["onClick"];
9750
+ const _hoisted_3$6 = { class: "name" };
9458
9751
  const _sfc_main$k = {
9459
9752
  __name: "ThemeSwitch",
9460
9753
  emits: ["change"],
@@ -9493,7 +9786,7 @@ const _sfc_main$k = {
9493
9786
  return (_ctx, _cache) => {
9494
9787
  return openBlock(), createElementBlock(Fragment, null, [
9495
9788
  createElementVNode("div", null, toDisplayString(unref(t2)("layout.setting.theme")), 1),
9496
- createElementVNode("div", _hoisted_1$9, [
9789
+ createElementVNode("div", _hoisted_1$8, [
9497
9790
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(themeList), (item) => {
9498
9791
  return openBlock(), createElementBlock("div", {
9499
9792
  class: normalizeClass(["item", { "active": unref(theme) === item.key }]),
@@ -9509,8 +9802,8 @@ const _sfc_main$k = {
9509
9802
  style: normalizeStyle({ backgroundColor: item.color === "#fff" ? "#fafafa" : item.color })
9510
9803
  }, null, 4)
9511
9804
  ], 4),
9512
- createElementVNode("div", _hoisted_3$7, toDisplayString(item.name), 1)
9513
- ], 10, _hoisted_2$8);
9805
+ createElementVNode("div", _hoisted_3$6, toDisplayString(item.name), 1)
9806
+ ], 10, _hoisted_2$7);
9514
9807
  }), 128))
9515
9808
  ])
9516
9809
  ], 64);
@@ -9522,10 +9815,10 @@ const Chunjie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAABGCAYAAADip
9522
9815
  const Duanwu = "data:image/png;base64,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";
9523
9816
  const Zhongqiu = "data:image/png;base64,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";
9524
9817
  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"];
9818
+ const _hoisted_1$7 = { class: "mt-24px" };
9819
+ const _hoisted_2$6 = { class: "theme-list" };
9820
+ const _hoisted_3$5 = ["src"];
9821
+ const _hoisted_4$5 = ["src"];
9529
9822
  const _hoisted_5$4 = ["src"];
9530
9823
  const _hoisted_6$3 = { class: "theme-list" };
9531
9824
  const _hoisted_7$1 = ["src"];
@@ -9544,8 +9837,8 @@ const _sfc_main$j = {
9544
9837
  };
9545
9838
  return (_ctx, _cache) => {
9546
9839
  return openBlock(), createElementBlock(Fragment, null, [
9547
- createElementVNode("div", _hoisted_1$8, toDisplayString(unref(t2)("layout.setting.festivalTheme")), 1),
9548
- createElementVNode("div", _hoisted_2$7, [
9840
+ createElementVNode("div", _hoisted_1$7, toDisplayString(unref(t2)("layout.setting.festivalTheme")), 1),
9841
+ createElementVNode("div", _hoisted_2$6, [
9549
9842
  createElementVNode("div", {
9550
9843
  class: normalizeClass(["item", { "active": unref(theme) === "springFestival" }]),
9551
9844
  onClick: _cache[0] || (_cache[0] = ($event) => handleClick("springFestival"))
@@ -9554,7 +9847,7 @@ const _sfc_main$j = {
9554
9847
  class: "border",
9555
9848
  style: normalizeStyle({ borderColor: unref(theme) === "springFestival" ? "var(--el-color-primary)" : "#d2d5e4" })
9556
9849
  }, [
9557
- createElementVNode("img", { src: unref(Chunjie) }, null, 8, _hoisted_3$6)
9850
+ createElementVNode("img", { src: unref(Chunjie) }, null, 8, _hoisted_3$5)
9558
9851
  ], 4),
9559
9852
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "name" }, "春节", -1))
9560
9853
  ], 2),
@@ -9566,7 +9859,7 @@ const _sfc_main$j = {
9566
9859
  class: "border",
9567
9860
  style: normalizeStyle({ borderColor: unref(theme) === "dragonBoatFestival" ? "var(--el-color-primary)" : "#d2d5e4" })
9568
9861
  }, [
9569
- createElementVNode("img", { src: unref(Duanwu) }, null, 8, _hoisted_4$6)
9862
+ createElementVNode("img", { src: unref(Duanwu) }, null, 8, _hoisted_4$5)
9570
9863
  ], 4),
9571
9864
  _cache[5] || (_cache[5] = createElementVNode("div", { class: "name" }, "端午", -1))
9572
9865
  ], 2),
@@ -9604,73 +9897,8 @@ const _sfc_main$j = {
9604
9897
  }
9605
9898
  };
9606
9899
  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
9900
  const _hoisted_1$6 = { class: "text-16px font-500 text-[var(--text-color)]" };
9673
- const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9901
+ const _sfc_main$i = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9674
9902
  __name: "Setting",
9675
9903
  props: {
9676
9904
  color: {
@@ -9693,10 +9921,11 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9693
9921
  const { copy, copied, isSupported } = useClipboard({
9694
9922
  source: `
9695
9923
  // 主题相关
9696
- theme: '${appStore.getTheme}',
9697
- // 布局相关
9698
- layout: '${appStore.getLayout}'
9699
- `
9924
+ theme: '${appStore.getTheme}'
9925
+ `
9926
+ // ,
9927
+ // // 布局相关
9928
+ // layout: '${appStore.getLayout}'
9700
9929
  });
9701
9930
  if (!isSupported) {
9702
9931
  ElMessage.error(t2("layout.setting.copyFailed"));
@@ -9719,10 +9948,6 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9719
9948
  appStore.setTheme(theme);
9720
9949
  appStore.setCssVarTheme();
9721
9950
  };
9722
- const layoutChange = async (layout) => {
9723
- await saveTheme({ theme: appStore.getTheme, layout });
9724
- appStore.setLayout(layout);
9725
- };
9726
9951
  const saveTheme = async ({ theme, layout }) => {
9727
9952
  ElMessage({
9728
9953
  type: "success",
@@ -9740,7 +9965,7 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9740
9965
  }), [
9741
9966
  createVNode(_component_Icon, {
9742
9967
  color: __props.color,
9743
- icon: "ep:setting",
9968
+ icon: "svg-icon:hexagon",
9744
9969
  size: 18
9745
9970
  }, null, 8, ["color"])
9746
9971
  ], 16),
@@ -9780,8 +10005,7 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9780
10005
  default: withCtx(() => [
9781
10006
  createElementVNode("div", null, [
9782
10007
  createVNode(ThemeSwitch, { onChange: themeChange }),
9783
- createVNode(FestivalThemeSwitch, { onChange: themeChange }),
9784
- createVNode(LayoutSwitch, { onChange: layoutChange })
10008
+ createVNode(FestivalThemeSwitch, { onChange: themeChange })
9785
10009
  ])
9786
10010
  ]),
9787
10011
  _: 1
@@ -9790,7 +10014,51 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
9790
10014
  };
9791
10015
  }
9792
10016
  });
9793
- const Setting = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-89f387dd"]]);
10017
+ const Setting = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-b213e887"]]);
10018
+ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Arrow" }, {
10019
+ __name: "Arrow",
10020
+ props: {
10021
+ color: {
10022
+ type: String,
10023
+ default: ""
10024
+ }
10025
+ },
10026
+ setup(__props) {
10027
+ const appStore = useAppStore();
10028
+ const { t: t2 } = useI18n();
10029
+ const topNav = computed(() => appStore.getTopNav);
10030
+ const topNavCollapsed = computed(() => topNav.value === "collapsed");
10031
+ const arrowIcon = computed(
10032
+ () => topNavCollapsed.value ? "svg-icon:arrow-left" : "svg-icon:arrow-right"
10033
+ );
10034
+ const handleArrowClick = () => {
10035
+ appStore.setTopNav(topNavCollapsed.value ? "floating" : "collapsed");
10036
+ };
10037
+ return (_ctx, _cache) => {
10038
+ const _component_Icon = resolveComponent("Icon");
10039
+ return openBlock(), createElementBlock("div", {
10040
+ class: "arrow",
10041
+ onClick: handleArrowClick
10042
+ }, [
10043
+ createVNode(unref(ElPopover), {
10044
+ disabled: !unref(topNavCollapsed),
10045
+ content: unref(t2)("layout.common.expandAppMenu"),
10046
+ placement: "left",
10047
+ "show-after": 100
10048
+ }, {
10049
+ reference: withCtx(() => [
10050
+ createVNode(_component_Icon, {
10051
+ color: __props.color,
10052
+ size: 11,
10053
+ icon: unref(arrowIcon)
10054
+ }, null, 8, ["color", "icon"])
10055
+ ]),
10056
+ _: 1
10057
+ }, 8, ["disabled", "content"])
10058
+ ]);
10059
+ };
10060
+ }
10061
+ });
9794
10062
  const _sfc_main$g = {
9795
10063
  __name: "index",
9796
10064
  props: {
@@ -9941,6 +10209,10 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
9941
10209
  onClearCacheLogoutClick: {
9942
10210
  type: Function,
9943
10211
  default: null
10212
+ },
10213
+ onSwitchCompanyClick: {
10214
+ type: Function,
10215
+ default: null
9944
10216
  }
9945
10217
  },
9946
10218
  setup(props, {
@@ -9948,49 +10220,67 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
9948
10220
  }) {
9949
10221
  const appStore = useAppStore();
9950
10222
  const breadcrumb = computed(() => appStore.getBreadcrumb);
9951
- computed(() => appStore.getHamburger);
9952
10223
  const search = computed(() => appStore.search);
9953
10224
  const layout = computed(() => appStore.getLayout);
9954
10225
  const locale = computed(() => appStore.getLocale);
9955
10226
  const message = computed(() => appStore.getMessage);
9956
10227
  const setting = computed(() => appStore.getSetting);
10228
+ const topNav = computed(() => appStore.getTopNav);
10229
+ const topNavNormal = computed(() => topNav.value === "normal");
10230
+ const topNavCollapsed = computed(() => topNav.value === "collapsed");
10231
+ const iconColor = computed(() => topNavNormal.value ? "var(--top-header-icon-color)" : "#dae0e9");
9957
10232
  return () => {
9958
10233
  var _a2;
9959
10234
  return createVNode("div", {
9960
10235
  "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)]"]
10236
+ "class": [prefixCls$2, "px-[var(--top-tool-p-x)] flex items-center justify-between", "dark:bg-[var(--el-bg-color)]", {
10237
+ "tool-header-normal": topNavNormal.value,
10238
+ "tool-header-floating": topNav.value === "floating",
10239
+ "tool-header-collapsed": topNav.value === "collapsed"
10240
+ }],
10241
+ "style": "transition: all var(--transition-time-02);"
9962
10242
  }, [layout.value !== "top" ? createVNode("div", {
9963
10243
  "class": "h-full flex items-center"
9964
10244
  }, [breadcrumb.value ? createVNode(Breadcrumb, {
9965
10245
  "class": "lt-md:hidden"
9966
10246
  }, null) : void 0]) : void 0, (_a2 = slots.default) == null ? void 0 : _a2.call(slots), createVNode("div", {
9967
10247
  "class": "h-full flex items-center"
9968
- }, [search.value ? createVNode(_sfc_main$g, {
10248
+ }, [!topNavCollapsed.value && createVNode(Fragment, null, [search.value ? createVNode(_sfc_main$g, {
9969
10249
  "isModal": false
10250
+ }, null) : void 0, message.value ? createVNode(Message, {
10251
+ "class": "custom-hover cursor-pointer",
10252
+ "color": iconColor.value,
10253
+ "onMessageClick": props.onMessageClick
9970
10254
  }, null) : void 0, setting.value ? createVNode(Setting, {
9971
10255
  "class": "custom-hover cursor-pointer",
9972
- "color": "var(--top-header-text-color)",
10256
+ "color": iconColor.value,
9973
10257
  "onClearCacheLogoutClick": props.onClearCacheLogoutClick
9974
10258
  }, null) : void 0, locale.value ? createVNode(_sfc_main$l, {
9975
10259
  "class": "custom-hover",
9976
10260
  "color": "var(--top-header-text-color)"
9977
- }, null) : void 0, message.value ? createVNode(Message, {
10261
+ }, null) : void 0, createVNode("div", {
10262
+ "class": `h-12px mx-10px`,
10263
+ "style": `border-left: 1px solid ${iconColor.value}`
10264
+ }, null), createVNode(UserInfo, {
10265
+ "onLogoutClick": props.onLogoutClick,
10266
+ "onSwitchCompanyClick": props.onSwitchCompanyClick
10267
+ }, null)]), !topNavNormal.value && createVNode(Fragment, null, [!topNavCollapsed.value && createVNode("div", {
10268
+ "class": `h-12px mx-10px`,
10269
+ "style": `border-left: 1px solid ${iconColor.value}`
10270
+ }, null), createVNode(_sfc_main$h, {
9978
10271
  "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)])]);
10272
+ "color": iconColor.value
10273
+ }, null)])])]);
9984
10274
  };
9985
10275
  }
9986
10276
  });
9987
- const ToolHeader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-0b5dffd2"]]);
10277
+ const ToolHeader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-c654093f"]]);
9988
10278
  const {
9989
10279
  getPrefixCls: getPrefixCls$1
9990
10280
  } = useDesign();
9991
10281
  const prefixCls$1 = getPrefixCls$1("layout");
9992
10282
  const scrollRef = ref();
9993
- const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick) => {
10283
+ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick, onSwitchCompanyClick) => {
9994
10284
  const appStore = useAppStore();
9995
10285
  const permissionStore = usePermissionStore();
9996
10286
  const pageLoading = computed(() => appStore.getPageLoading);
@@ -10019,28 +10309,51 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10019
10309
  });
10020
10310
  const zIndexClass = computed(() => {
10021
10311
  return {
10022
- "z-100": theme.value === "whiteLight"
10312
+ "z-2000": theme.value === "whiteLight"
10023
10313
  };
10024
10314
  });
10315
+ const topNav = computed(() => appStore.getTopNav);
10316
+ const topNavNormal = computed(() => topNav.value === "normal");
10025
10317
  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]
10318
+ return createVNode(Fragment, null, [topNavNormal.value && createVNode("div", {
10319
+ "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],
10320
+ "style": "transition: all var(--transition-time-02);"
10028
10321
  }, [logo.value ? createVNode(_sfc_main$q, {
10029
10322
  "class": [{
10030
- "w-[var(--left-menu-min-width)]": appStore.getCollapse,
10031
- "w-[var(--left-menu-max-width)]": !appStore.getCollapse
10323
+ "w-[var(--left-menu-min-width)]": collapse.value,
10324
+ "w-[var(--left-menu-max-width)]": !collapse.value
10032
10325
  }],
10033
10326
  "onLogoClick": onLogoClick
10034
10327
  }, null) : void 0, createVNode(ToolHeader, {
10035
10328
  "class": "flex-1",
10036
10329
  "onMessageClick": onMessageClick,
10037
10330
  "onLogoutClick": onLogoutClick,
10038
- "onClearCacheLogoutClick": onClearCacheLogoutClick
10331
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10332
+ "onSwitchCompanyClick": onSwitchCompanyClick
10333
+ }, null)]), createVNode("div", {
10334
+ "class": ["w-full flex", {
10335
+ "h-[calc(100%-var(--top-header-height))]": topNavNormal.value,
10336
+ "h-full": !topNavNormal.value
10337
+ }]
10338
+ }, [createVNode("div", null, [!topNavNormal.value && createVNode(Fragment, null, [logo.value ? createVNode(_sfc_main$q, {
10339
+ "class": ["relative bg-[linear-gradient(var(--top-header-bg-color))] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]", zIndexClass.value, {
10340
+ "w-[var(--left-menu-min-width)]": collapse.value,
10341
+ "w-[var(--left-menu-max-width)]": !collapse.value
10342
+ }],
10343
+ "onLogoClick": onLogoClick,
10344
+ "style": "transition: all var(--transition-time-02);"
10345
+ }, null) : void 0, createVNode(ToolHeader, {
10346
+ "class": "flex-1",
10347
+ "onMessageClick": onMessageClick,
10348
+ "onLogoutClick": onLogoutClick,
10349
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10350
+ "onSwitchCompanyClick": onSwitchCompanyClick
10351
+ }, null)]), createVNode(Menu, {
10352
+ "class": ["relative layout-border__right", festivalMenuClass.value, {
10353
+ "!h-full": topNavNormal.value,
10354
+ "h-[calc(100%-var(--top-header-height))]": !topNavNormal.value
10355
+ }]
10039
10356
  }, 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
10357
  "class": [`${prefixCls$1}-content`, "h-[100%]", {
10045
10358
  "w-[calc(100%-var(--left-menu-min-width))] left-[var(--left-menu-min-width)]": collapse.value,
10046
10359
  "w-[calc(100%-var(--left-menu-max-width))] left-[var(--left-menu-max-width)]": !collapse.value
@@ -10050,12 +10363,14 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10050
10363
  "class": [`${prefixCls$1}-content-scrollbar`, {
10051
10364
  "!h-[calc(100%-var(--tags-view-height))] mt-[calc(var(--tags-view-height))]": tagsView.value
10052
10365
  }],
10053
- "ref": scrollRef
10366
+ "ref": scrollRef,
10367
+ "style": "transition: all var(--transition-time-02);"
10054
10368
  }, {
10055
10369
  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
10370
+ "class": ["layout-border__bottom", "!fixed top-0 left-0 z-10", {
10371
+ "w-[calc(100%-var(--left-menu-min-width))] !left-[var(--left-menu-min-width)]": collapse.value,
10372
+ "w-[calc(100%-var(--left-menu-max-width))] !left-[var(--left-menu-max-width)]": !collapse.value,
10373
+ "mt-[var(--top-header-height)]": topNavNormal.value
10059
10374
  }],
10060
10375
  "style": "transition: width var(--transition-time-02), left var(--transition-time-02);"
10061
10376
  }, null) : void 0, createVNode(_sfc_main$p, null, null)]
@@ -10063,30 +10378,26 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10063
10378
  };
10064
10379
  const renderTop = () => {
10065
10380
  return createVNode(Fragment, null, [createVNode("div", {
10066
- "class": ["relative flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))]", {
10381
+ "class": ["relative 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
10382
  "layout-border__bottom": !tagsView.value
10068
10383
  }, festivalTopClass.value]
10069
10384
  }, [logo.value ? createVNode(_sfc_main$q, {
10070
10385
  "class": ["w-[var(--left-menu-max-width)]"],
10071
10386
  "onLogoClick": onLogoClick
10072
- }, null) : void 0, createVNode(Menu, {
10073
- "class": "h-[var(--top-tool-height)] flex-1 px-10px"
10387
+ }, null) : void 0, tagsView.value && createVNode(TagsView, {
10388
+ "class": ["layout-border__bottom flex-1"]
10074
10389
  }, null), createVNode(ToolHeader, {
10075
10390
  "onMessageClick": onMessageClick,
10076
10391
  "onLogoutClick": onLogoutClick,
10077
- "onClearCacheLogoutClick": onClearCacheLogoutClick
10392
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10393
+ "onSwitchCompanyClick": onSwitchCompanyClick
10078
10394
  }, null)]), createVNode("div", {
10079
10395
  "class": [`${prefixCls$1}-content`, "w-full h-[calc(100%-var(--top-tool-height))]"]
10080
10396
  }, [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
- }],
10397
+ "class": [`${prefixCls$1}-content-scrollbar`],
10084
10398
  "ref": scrollRef
10085
10399
  }, {
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)]
10400
+ default: () => [createVNode(_sfc_main$p, null, null)]
10090
10401
  }), [[resolveDirective("loading"), pageLoading.value]])])]);
10091
10402
  };
10092
10403
  const renderTopLeft = () => {
@@ -10104,7 +10415,8 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10104
10415
  "class": "flex-1",
10105
10416
  "onMessageClick": onMessageClick,
10106
10417
  "onLogoutClick": onLogoutClick,
10107
- "onClearCacheLogoutClick": onClearCacheLogoutClick
10418
+ "onClearCacheLogoutClick": onClearCacheLogoutClick,
10419
+ "onSwitchCompanyClick": onSwitchCompanyClick
10108
10420
  }, {
10109
10421
  default: () => createVNode(Menu, {
10110
10422
  "mode": "horizontal",
@@ -10151,13 +10463,13 @@ const {
10151
10463
  } = useDesign();
10152
10464
  const prefixCls = getPrefixCls("layout");
10153
10465
  const layoutScrollRef = ref();
10154
- const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick) => {
10466
+ const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick, onSwitchCompanyClick) => {
10155
10467
  const {
10156
10468
  renderLeft,
10157
10469
  renderTop,
10158
10470
  renderTopLeft,
10159
10471
  scrollRef: scrollRef2
10160
- } = useRenderLayout(onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick);
10472
+ } = useRenderLayout(onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick, onSwitchCompanyClick);
10161
10473
  layoutScrollRef.value = scrollRef2.value;
10162
10474
  switch (unref(layout)) {
10163
10475
  case "left":
@@ -10170,7 +10482,7 @@ const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClea
10170
10482
  };
10171
10483
  const _sfc_main$e = /* @__PURE__ */ defineComponent({
10172
10484
  name: "Layout",
10173
- emits: ["logo-click", "message-click", "logout-click", "clear-cache-logout-click"],
10485
+ emits: ["logo-click", "message-click", "logout-click", "clear-cache-logout-click", "switch-company-click"],
10174
10486
  setup(props, {
10175
10487
  emit
10176
10488
  }) {
@@ -10190,12 +10502,15 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
10190
10502
  const handleClearCacheLogoutClick = () => {
10191
10503
  emit("clear-cache-logout-click");
10192
10504
  };
10505
+ const handleSwitchCompanyClick = (company) => {
10506
+ emit("switch-company-click", company);
10507
+ };
10193
10508
  return () => createVNode("section", {
10194
10509
  "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)]);
10510
+ }, [renderLayout(layout, handleLogoClick, handleMessageClick, handleLogoutClick, handleClearCacheLogoutClick, handleSwitchCompanyClick), createVNode(_sfc_main$y, null, null)]);
10196
10511
  }
10197
10512
  });
10198
- const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-0fb07176"]]);
10513
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-6f98299c"]]);
10199
10514
  const _sfc_main$d = {
10200
10515
  __name: "ConfigGlobal",
10201
10516
  props: {
@@ -10276,7 +10591,7 @@ const _sfc_main$c = /* @__PURE__ */ Object.assign({ name: "PageCard" }, {
10276
10591
  return openBlock(), createBlock(unref(ElCard), {
10277
10592
  "body-style": __props.bodyStyle,
10278
10593
  header: __props.title,
10279
- class: normalizeClass([unref(prefixCls2), "m-16px"])
10594
+ class: normalizeClass([unref(prefixCls2), "mx-16px my-16px"])
10280
10595
  }, {
10281
10596
  default: withCtx(() => [
10282
10597
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
@@ -10286,7 +10601,7 @@ const _sfc_main$c = /* @__PURE__ */ Object.assign({ name: "PageCard" }, {
10286
10601
  };
10287
10602
  }
10288
10603
  });
10289
- const PageCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-eb81072a"]]);
10604
+ const PageCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-f55a8642"]]);
10290
10605
  const _hoisted_1$5 = { class: "ml-2px" };
10291
10606
  const _hoisted_2$5 = { class: "flex items-center" };
10292
10607
  const _sfc_main$b = /* @__PURE__ */ Object.assign({ name: "PageNavBar" }, {