bmp-layout 0.0.25-beta.2 → 0.0.25-beta.4

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
@@ -417,7 +417,18 @@ const whiteLight = {
417
417
  topHeaderCompanyIconColor: "#88a0c3",
418
418
  topHeaderCompanyBgColor: "rgba(246,248,255,1)",
419
419
  // 菜单触发器背景颜色
420
- 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"
421
432
  };
422
433
  const blueLight = {
423
434
  ...baseLight,
@@ -474,7 +485,18 @@ const blueLight = {
474
485
  topHeaderCompanyIconColor: "#fff",
475
486
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
476
487
  // 菜单触发器背景颜色
477
- 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)"
478
500
  };
479
501
  const redLight = {
480
502
  ...baseLight,
@@ -530,7 +552,18 @@ const redLight = {
530
552
  topHeaderCompanyIconColor: "#fff",
531
553
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
532
554
  // 菜单触发器背景颜色
533
- 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)"
534
567
  };
535
568
  const greenLight = {
536
569
  ...baseLight,
@@ -586,7 +619,18 @@ const greenLight = {
586
619
  topHeaderCompanyIconColor: "#fff",
587
620
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
588
621
  // 菜单触发器背景颜色
589
- 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)"
590
634
  };
591
635
  const springFestival = {
592
636
  ...baseLight,
@@ -642,7 +686,18 @@ const springFestival = {
642
686
  topHeaderCompanyIconColor: "#fff",
643
687
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
644
688
  // 菜单触发器背景颜色
645
- 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)"
646
701
  };
647
702
  const dragonBoatFestival = {
648
703
  ...baseLight,
@@ -698,7 +753,18 @@ const dragonBoatFestival = {
698
753
  topHeaderCompanyIconColor: "#fff",
699
754
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
700
755
  // 菜单触发器背景颜色
701
- 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)"
702
768
  };
703
769
  const midAutumnFestival = {
704
770
  ...baseLight,
@@ -754,7 +820,18 @@ const midAutumnFestival = {
754
820
  topHeaderCompanyIconColor: "#fff",
755
821
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
756
822
  // 菜单触发器背景颜色
757
- 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)"
758
835
  };
759
836
  const newYearsDay = {
760
837
  ...baseLight,
@@ -810,7 +887,18 @@ const newYearsDay = {
810
887
  topHeaderCompanyIconColor: "#fff",
811
888
  topHeaderCompanyBgColor: "rgba(246,248,255,.3)",
812
889
  // 菜单触发器背景颜色
813
- 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)"
814
902
  };
815
903
  const systemTheme = {
816
904
  whiteLight,
@@ -1129,6 +1217,28 @@ function buildChildPaths(router) {
1129
1217
  return { ...child, path: `${parentPath}${childPath}` };
1130
1218
  });
1131
1219
  }
1220
+ function mergeExampleRoutes(targetModule, exampleRoutes, position = "start") {
1221
+ if (!exampleRoutes || exampleRoutes.length === 0)
1222
+ return;
1223
+ const convertRouteToMenu = (route) => {
1224
+ var _a2, _b, _c, _d, _e, _f;
1225
+ return {
1226
+ name: ((_a2 = route.meta) == null ? void 0 : _a2.title) || route.name || "",
1227
+ path: route.path,
1228
+ icon: ((_b = route.meta) == null ? void 0 : _b.icon) || "",
1229
+ visible: ((_c = route.meta) == null ? void 0 : _c.hidden) !== true,
1230
+ redirect: route.redirect || "",
1231
+ meta: {
1232
+ title: ((_d = route.meta) == null ? void 0 : _d.title) || route.name || "",
1233
+ icon: ((_e = route.meta) == null ? void 0 : _e.icon) || "",
1234
+ hidden: ((_f = route.meta) == null ? void 0 : _f.hidden) === true
1235
+ },
1236
+ children: (route.children || []).map(convertRouteToMenu)
1237
+ };
1238
+ };
1239
+ const converted = exampleRoutes.map(convertRouteToMenu);
1240
+ targetModule.children = position === "start" ? converted.concat(targetModule.children || []) : (targetModule.children || []).concat(converted);
1241
+ }
1132
1242
  const usePermissionStore = defineStore("layout-permission", {
1133
1243
  state: () => ({
1134
1244
  routers: [],
@@ -1193,12 +1303,13 @@ const usePermissionStore = defineStore("layout-permission", {
1193
1303
  this.leftMenuRouters = routers;
1194
1304
  },
1195
1305
  // 处理模块对应菜单
1196
- setModuleRouters(menuId) {
1306
+ setModuleRouters(menuId, exampleRoutes = [], examplePosition = "start") {
1197
1307
  const findRouter = findRouterBy(this.getRoleRouters, "id", menuId);
1198
1308
  if (findRouter) {
1199
1309
  this.moduleId = findRouter.id;
1200
1310
  this.moduleName = findRouter.name;
1201
1311
  this.moduleRouters = buildChildPaths(findRouter);
1312
+ mergeExampleRoutes(findRouter, exampleRoutes, examplePosition);
1202
1313
  }
1203
1314
  },
1204
1315
  resetState() {
@@ -1212,12 +1323,13 @@ const usePermissionStore = defineStore("layout-permission", {
1212
1323
  this.roleRouters = [];
1213
1324
  },
1214
1325
  // 处理模块对应菜单(通过模块code)
1215
- setModuleRoutersByCode(moduleCode) {
1326
+ setModuleRoutersByCode(moduleCode, exampleRoutes = [], examplePosition = "start") {
1216
1327
  const findRouter = findRouterBy(this.getRoleRouters, "moduleCode", moduleCode);
1217
1328
  if (findRouter) {
1218
1329
  this.moduleId = findRouter.id;
1219
1330
  this.moduleName = findRouter.name;
1220
1331
  this.moduleRouters = buildChildPaths(findRouter);
1332
+ mergeExampleRoutes(findRouter, exampleRoutes, examplePosition);
1221
1333
  }
1222
1334
  }
1223
1335
  },
@@ -8221,8 +8333,9 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8221
8333
  };
8222
8334
  const scrollbarRef = ref();
8223
8335
  const scrollLeftNumber = ref(0);
8224
- const showLeftArrow = ref(false);
8225
- const showRightArrow = ref(false);
8336
+ const showArrows = ref(false);
8337
+ const disabledLeftArrow = ref(false);
8338
+ const disabledRightArrow = ref(false);
8226
8339
  let scrollStopFn = null;
8227
8340
  const checkArrows = () => {
8228
8341
  var _a2;
@@ -8230,8 +8343,9 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8230
8343
  if (!wrap$)
8231
8344
  return;
8232
8345
  const { scrollLeft, scrollWidth, offsetWidth } = wrap$;
8233
- showLeftArrow.value = scrollLeft > 0;
8234
- showRightArrow.value = scrollLeft < scrollWidth - offsetWidth - 1;
8346
+ showArrows.value = scrollWidth > offsetWidth;
8347
+ disabledLeftArrow.value = scrollLeft <= 0;
8348
+ disabledRightArrow.value = scrollLeft >= scrollWidth - offsetWidth - 1;
8235
8349
  };
8236
8350
  const handleScroll = ({ scrollLeft }) => {
8237
8351
  scrollLeftNumber.value = scrollLeft;
@@ -8280,17 +8394,6 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8280
8394
  id: unref(prefixCls2),
8281
8395
  class: normalizeClass([unref(prefixCls2), "relative flex items-center"])
8282
8396
  }, [
8283
- unref(showLeftArrow) ? (openBlock(), createElementBlock("div", {
8284
- key: 0,
8285
- class: normalizeClass(`${unref(prefixCls2)}__arrow ${unref(prefixCls2)}__arrow--left`),
8286
- onClick: handleScrollLeft
8287
- }, [
8288
- createVNode(_component_Icon, {
8289
- icon: "lucide:chevron-left",
8290
- size: 16,
8291
- color: "#a4aec4ff"
8292
- })
8293
- ], 2)) : createCommentVNode("", true),
8294
8397
  createElementVNode("div", _hoisted_2$a, [
8295
8398
  createVNode(unref(ElScrollbar), {
8296
8399
  ref_key: "scrollbarRef",
@@ -8389,22 +8492,31 @@ const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
8389
8492
  _: 1
8390
8493
  }, 512)
8391
8494
  ]),
8392
- unref(showRightArrow) ? (openBlock(), createElementBlock("div", {
8495
+ unref(showArrows) ? (openBlock(), createElementBlock("div", {
8496
+ key: 0,
8497
+ class: normalizeClass(`${unref(prefixCls2)}__arrow ${unref(prefixCls2)}__arrow--left ${unref(disabledLeftArrow) ? "is-disabled" : ""}`),
8498
+ onClick: handleScrollLeft
8499
+ }, [
8500
+ createVNode(_component_Icon, {
8501
+ icon: "svg-icon:chevron-left",
8502
+ size: 10
8503
+ })
8504
+ ], 2)) : createCommentVNode("", true),
8505
+ unref(showArrows) ? (openBlock(), createElementBlock("div", {
8393
8506
  key: 1,
8394
- class: normalizeClass(`${unref(prefixCls2)}__arrow ${unref(prefixCls2)}__arrow--right`),
8507
+ class: normalizeClass(`${unref(prefixCls2)}__arrow ${unref(prefixCls2)}__arrow--right ${unref(disabledRightArrow) ? "is-disabled" : ""}`),
8395
8508
  onClick: handleScrollRight
8396
8509
  }, [
8397
8510
  createVNode(_component_Icon, {
8398
- icon: "lucide:chevron-right",
8399
- size: 16,
8400
- color: "#7d8595ff"
8511
+ icon: "svg-icon:chevron-right",
8512
+ size: 10
8401
8513
  })
8402
8514
  ], 2)) : createCommentVNode("", true)
8403
8515
  ], 10, _hoisted_1$c);
8404
8516
  };
8405
8517
  }
8406
8518
  });
8407
- const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-fb8d3778"]]);
8519
+ const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-3fbf2f73"]]);
8408
8520
  const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8409
8521
  __name: "MenuTrigger",
8410
8522
  props: {
@@ -8420,7 +8532,7 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8420
8532
  const prefixCls2 = getPrefixCls2("menu-trigger");
8421
8533
  const props = __props;
8422
8534
  const theme = computed(() => appStore.getTheme);
8423
- const triggerIcon = computed(() => props.active ? "ant-design:close-outlined" : theme.value === "whiteLight" ? "svg-icon:menu-trigger-filled" : "svg-icon:menu-trigger");
8535
+ const triggerIcon = computed(() => props.active ? "svg-icon:close-square" : theme.value === "whiteLight" ? "svg-icon:menu-trigger-filled" : "svg-icon:menu-trigger");
8424
8536
  const emit = __emit;
8425
8537
  const handleClick = () => {
8426
8538
  emit("click");
@@ -8434,14 +8546,14 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
8434
8546
  }, [
8435
8547
  createVNode(_component_Icon, {
8436
8548
  icon: unref(triggerIcon),
8437
- svgClass: "!w-full !h-full",
8438
- class: normalizeClass(["!w-18px", "!h-18px", "icon-color"])
8549
+ class: normalizeClass(["icon-color"]),
8550
+ size: 18
8439
8551
  }, null, 8, ["icon"])
8440
8552
  ], 2);
8441
8553
  };
8442
8554
  }
8443
8555
  });
8444
- const MenuTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-aedf94f7"]]);
8556
+ const MenuTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-df837f35"]]);
8445
8557
  const _hoisted_1$b = { class: "sidebar-inner" };
8446
8558
  const _hoisted_2$9 = ["onClick"];
8447
8559
  const _hoisted_3$8 = ["onClick"];
@@ -8487,6 +8599,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8487
8599
  }, 300);
8488
8600
  }
8489
8601
  });
8602
+ const expandedCardIndex = ref(null);
8490
8603
  const activeProductIndex = ref(0);
8491
8604
  const activeModuleIndex = ref(0);
8492
8605
  const routers = computed(() => permissionStore.getRoleRouters);
@@ -8562,9 +8675,10 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8562
8675
  return paths.filter(Boolean).reduce((result, path) => {
8563
8676
  if (!result)
8564
8677
  return path;
8678
+ if (path.startsWith("/"))
8679
+ return path;
8565
8680
  const normalizedBase = result.endsWith("/") ? result.slice(0, -1) : result;
8566
- const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
8567
- return `${normalizedBase}/${normalizedPath}`;
8681
+ return `${normalizedBase}/${path}`;
8568
8682
  }, "");
8569
8683
  };
8570
8684
  const getAccessiblePath = (item, parentPath = "") => {
@@ -8589,10 +8703,11 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8589
8703
  var _a2, _b, _c, _d;
8590
8704
  const fullPath = getAccessiblePath(item, parentPath);
8591
8705
  if (fullPath) {
8706
+ const normalizedPath = fullPath.startsWith("/") ? fullPath : `/${fullPath}`;
8592
8707
  const currentModuleId = permissionStore.getModuleId;
8593
8708
  const selectedModuleId = (_b = (_a2 = productList.value[activeProductIndex.value]) == null ? void 0 : _a2.children[activeModuleIndex.value]) == null ? void 0 : _b.id;
8594
- if (selectedModuleId === currentModuleId) {
8595
- router.push(fullPath.startsWith("/") ? fullPath : `/${fullPath}`);
8709
+ if (selectedModuleId === currentModuleId || fullPath.startsWith("/")) {
8710
+ router.push(normalizedPath);
8596
8711
  } else {
8597
8712
  const currentOrigin = window.location.origin;
8598
8713
  const modulePath = ((_d = (_c = productList.value[activeProductIndex.value]) == null ? void 0 : _c.children[activeModuleIndex.value]) == null ? void 0 : _d.modulePath) || "";
@@ -8654,6 +8769,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8654
8769
  activeProductIndex.value = 0;
8655
8770
  activeModuleIndex.value = 0;
8656
8771
  }
8772
+ expandedCardIndex.value = activeProductIndex.value;
8657
8773
  nextTick(() => {
8658
8774
  var _a2;
8659
8775
  (_a2 = searchInputRef.value) == null ? void 0 : _a2.focus();
@@ -8682,7 +8798,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8682
8798
  __props.visible ? (openBlock(), createElementBlock("div", {
8683
8799
  key: 0,
8684
8800
  class: normalizeClass([unref(prefixCls2)]),
8685
- onClick: _cache[1] || (_cache[1] = withModifiers(() => {
8801
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => {
8686
8802
  }, ["stop"]))
8687
8803
  }, [
8688
8804
  createElementVNode("div", {
@@ -8704,18 +8820,37 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8704
8820
  key: product.id || pIndex,
8705
8821
  class: normalizeClass([
8706
8822
  unref(prefixCls2) + "__product-card",
8707
- { "is-active": activeProductIndex.value === pIndex }
8823
+ { "is-active": activeProductIndex.value === pIndex },
8824
+ { "is-expanded": expandedCardIndex.value === pIndex }
8708
8825
  ]),
8709
- onClick: ($event) => handleProductSelect(pIndex)
8826
+ onClick: ($event) => {
8827
+ handleProductSelect(pIndex);
8828
+ expandedCardIndex.value = expandedCardIndex.value === pIndex ? null : pIndex;
8829
+ }
8710
8830
  }, [
8711
8831
  createElementVNode("div", {
8712
8832
  class: normalizeClass([unref(prefixCls2) + "__product-name"])
8713
8833
  }, [
8714
- createElementVNode("span", null, toDisplayString(product.title), 1)
8834
+ createVNode(unref(_sfc_main$x), {
8835
+ icon: product.icon ? product.icon : "svg-icon:clipboard",
8836
+ size: 16
8837
+ }, null, 8, ["icon"]),
8838
+ createElementVNode("span", null, toDisplayString(product.title), 1),
8839
+ product.children.length > 0 ? (openBlock(), createElementBlock("div", {
8840
+ key: 0,
8841
+ class: normalizeClass([unref(prefixCls2) + "__card-toggle"])
8842
+ }, [
8843
+ createVNode(unref(_sfc_main$x), {
8844
+ icon: expandedCardIndex.value === pIndex ? "lucide:chevron-up" : "lucide:chevron-down",
8845
+ size: 14
8846
+ }, null, 8, ["icon"])
8847
+ ], 2)) : createCommentVNode("", true)
8715
8848
  ], 2),
8716
- product.children.length > 0 ? (openBlock(), createElementBlock("div", {
8849
+ product.children.length > 0 && expandedCardIndex.value === pIndex ? (openBlock(), createElementBlock("div", {
8717
8850
  key: 0,
8718
- class: normalizeClass([unref(prefixCls2) + "__product-modules"])
8851
+ class: normalizeClass([unref(prefixCls2) + "__product-modules"]),
8852
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
8853
+ }, ["stop"]))
8719
8854
  }, [
8720
8855
  (openBlock(true), createElementBlock(Fragment, null, renderList(product.children, (mod, mIndex) => {
8721
8856
  return openBlock(), createElementBlock("span", {
@@ -8747,7 +8882,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8747
8882
  ref_key: "searchInputRef",
8748
8883
  ref: searchInputRef,
8749
8884
  modelValue: searchKeyword.value,
8750
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
8885
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchKeyword.value = $event),
8751
8886
  placeholder: unref(t2)("layout.common.searchMenu"),
8752
8887
  clearable: "",
8753
8888
  size: "default"
@@ -8833,7 +8968,7 @@ const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel"
8833
8968
  };
8834
8969
  }
8835
8970
  });
8836
- const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-c6b549d4"]]);
8971
+ const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-8066b9b5"]]);
8837
8972
  const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8838
8973
  __name: "Logo",
8839
8974
  emits: ["logo-click"],
@@ -8889,7 +9024,7 @@ const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
8889
9024
  };
8890
9025
  }
8891
9026
  });
8892
- const _hoisted_1$a = { class: "w-full min-w-1000px" };
9027
+ const _hoisted_1$a = { class: "w-full min-w-1000px h-full" };
8893
9028
  const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "AppView" }, {
8894
9029
  __name: "AppView",
8895
9030
  setup(__props) {
@@ -9001,10 +9136,10 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Message" }, {
9001
9136
  const Message = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-fdaeb8e4"]]);
9002
9137
  const avatarImg = "data:image/gif;base64,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";
9003
9138
  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)]" };
9004
- const _hoisted_2$8 = { class: "pl-6px text-12px <lg:hidden" };
9139
+ const _hoisted_2$8 = { class: "pl-6px text-12px <lg:hidden truncate max-w-120px" };
9005
9140
  const _hoisted_3$7 = { class: "ml-6px" };
9006
- const _hoisted_4$6 = { class: "flex items-center text-[var(--top-header-text-color)] hover:text-[var(--top-header-hover-color)] mr-18px" };
9007
- const _hoisted_5$5 = { class: "pl-5px text-12px <lg:hidden" };
9141
+ const _hoisted_4$6 = { class: "flex items-center text-[var(--top-header-text-color)] hover:text-[var(--top-header-hover-color)]" };
9142
+ const _hoisted_5$5 = { class: "pl-5px text-12px <lg:hidden truncate max-w-100px" };
9008
9143
  const _hoisted_6$4 = { class: "ml-6px" };
9009
9144
  const _hoisted_7$2 = { class: "flex items-center text-#e0e0e0" };
9010
9145
  const _hoisted_8$1 = { class: "flex flex-col gap-3px pl-5px text-12px <lg:hidden" };
@@ -9204,7 +9339,7 @@ const _sfc_main$n = /* @__PURE__ */ Object.assign({ name: "UserInfo" }, {
9204
9339
  };
9205
9340
  }
9206
9341
  });
9207
- const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-31268ba6"]]);
9342
+ const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-d68b68d5"]]);
9208
9343
  const filterBreadcrumb = (routes, parentPath = "") => {
9209
9344
  var _a2;
9210
9345
  const res = [];
@@ -10338,7 +10473,13 @@ const {
10338
10473
  } = useDesign();
10339
10474
  const prefixCls$1 = getPrefixCls$1("layout");
10340
10475
  const scrollRef = ref();
10341
- const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick, onSwitchCompanyClick) => {
10476
+ const useRenderLayout = (props, {
10477
+ onLogoClick,
10478
+ onMessageClick,
10479
+ onLogoutClick,
10480
+ onClearCacheLogoutClick,
10481
+ onSwitchCompanyClick
10482
+ }) => {
10342
10483
  const appStore = useAppStore();
10343
10484
  const permissionStore = usePermissionStore();
10344
10485
  const pageLoading = computed(() => appStore.getPageLoading);
@@ -10436,27 +10577,28 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCach
10436
10577
  };
10437
10578
  const renderTop = () => {
10438
10579
  return createVNode(Fragment, null, [createVNode("div", {
10439
- "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", {
10580
+ "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", {
10440
10581
  "layout-border__bottom": !tagsView.value
10441
10582
  }, festivalTopClass.value]
10442
10583
  }, [logo.value ? createVNode(_sfc_main$q, {
10443
- "class": ["w-[var(--left-menu-max-width)]"],
10584
+ "class": ["shrink-0 w-[var(--left-menu-max-width)]"],
10444
10585
  "onLogoClick": onLogoClick
10445
10586
  }, null) : void 0, tagsView.value && createVNode(TagsView, {
10446
- "class": ["layout-border__bottom flex-1"]
10587
+ "class": ["layout-border__bottom flex-1 min-w-0"]
10447
10588
  }, null), createVNode(ToolHeader, {
10589
+ "class": "shrink-0 pl-20px",
10448
10590
  "onMessageClick": onMessageClick,
10449
10591
  "onLogoutClick": onLogoutClick,
10450
10592
  "onClearCacheLogoutClick": onClearCacheLogoutClick,
10451
10593
  "onSwitchCompanyClick": onSwitchCompanyClick
10452
10594
  }, null)]), createVNode("div", {
10453
10595
  "class": [`${prefixCls$1}-content`, "w-full h-[calc(100%-var(--top-tool-height))]"]
10454
- }, [withDirectives(createVNode(ElScrollbar, {
10596
+ }, [props.scroll ? withDirectives(createVNode(ElScrollbar, {
10455
10597
  "class": [`${prefixCls$1}-content-scrollbar`],
10456
10598
  "ref": scrollRef
10457
10599
  }, {
10458
10600
  default: () => [createVNode(_sfc_main$p, null, null)]
10459
- }), [[resolveDirective("loading"), pageLoading.value]])])]);
10601
+ }), [[resolveDirective("loading"), pageLoading.value]]) : createVNode(_sfc_main$p, null, null)])]);
10460
10602
  };
10461
10603
  const renderTopLeft = () => {
10462
10604
  return createVNode(Fragment, null, [createVNode("div", {
@@ -10521,13 +10663,25 @@ const {
10521
10663
  } = useDesign();
10522
10664
  const prefixCls = getPrefixCls("layout");
10523
10665
  const layoutScrollRef = ref();
10524
- const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick, onSwitchCompanyClick) => {
10666
+ const renderLayout = (layout, props, {
10667
+ handleLogoClick,
10668
+ handleMessageClick,
10669
+ handleLogoutClick,
10670
+ handleClearCacheLogoutClick,
10671
+ handleSwitchCompanyClick
10672
+ }) => {
10525
10673
  const {
10526
10674
  renderLeft,
10527
10675
  renderTop,
10528
10676
  renderTopLeft,
10529
10677
  scrollRef: scrollRef2
10530
- } = useRenderLayout(onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick, onSwitchCompanyClick);
10678
+ } = useRenderLayout(props, {
10679
+ onLogoClick: handleLogoClick,
10680
+ onMessageClick: handleMessageClick,
10681
+ onLogoutClick: handleLogoutClick,
10682
+ onClearCacheLogoutClick: handleClearCacheLogoutClick,
10683
+ onSwitchCompanyClick: handleSwitchCompanyClick
10684
+ });
10531
10685
  layoutScrollRef.value = scrollRef2.value;
10532
10686
  switch (unref(layout)) {
10533
10687
  case "left":
@@ -10540,6 +10694,12 @@ const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClea
10540
10694
  };
10541
10695
  const _sfc_main$e = /* @__PURE__ */ defineComponent({
10542
10696
  name: "Layout",
10697
+ props: {
10698
+ scroll: {
10699
+ type: Boolean,
10700
+ default: true
10701
+ }
10702
+ },
10543
10703
  emits: ["logo-click", "message-click", "logout-click", "clear-cache-logout-click", "switch-company-click"],
10544
10704
  setup(props, {
10545
10705
  emit
@@ -10565,10 +10725,16 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
10565
10725
  };
10566
10726
  return () => createVNode("section", {
10567
10727
  "class": [prefixCls, `${prefixCls}__${layout.value}`, "w-[100%] h-[100%] relative", `${prefixCls}__${theme.value}`]
10568
- }, [renderLayout(layout, handleLogoClick, handleMessageClick, handleLogoutClick, handleClearCacheLogoutClick, handleSwitchCompanyClick), createVNode(_sfc_main$y, null, null)]);
10728
+ }, [renderLayout(layout, props, {
10729
+ handleLogoClick,
10730
+ handleMessageClick,
10731
+ handleLogoutClick,
10732
+ handleClearCacheLogoutClick,
10733
+ handleSwitchCompanyClick
10734
+ }), props.scroll && createVNode(_sfc_main$y, null, null)]);
10569
10735
  }
10570
10736
  });
10571
- const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-6f98299c"]]);
10737
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-0945fd78"]]);
10572
10738
  const _sfc_main$d = {
10573
10739
  __name: "ConfigGlobal",
10574
10740
  props: {
@@ -10640,6 +10806,22 @@ const _sfc_main$c = /* @__PURE__ */ Object.assign({ name: "PageCard" }, {
10640
10806
  padding: "16px"
10641
10807
  };
10642
10808
  }
10809
+ },
10810
+ customClass: {
10811
+ type: String,
10812
+ default: ""
10813
+ },
10814
+ scroll: {
10815
+ type: Boolean,
10816
+ default: false
10817
+ },
10818
+ scrollHeight: {
10819
+ type: String,
10820
+ default: void 0
10821
+ },
10822
+ scrollMaxHeight: {
10823
+ type: String,
10824
+ default: void 0
10643
10825
  }
10644
10826
  },
10645
10827
  setup(__props) {
@@ -10649,17 +10831,27 @@ const _sfc_main$c = /* @__PURE__ */ Object.assign({ name: "PageCard" }, {
10649
10831
  return openBlock(), createBlock(unref(ElCard), {
10650
10832
  "body-style": __props.bodyStyle,
10651
10833
  header: __props.title,
10652
- class: normalizeClass([unref(prefixCls2), "mx-16px my-16px"])
10834
+ class: normalizeClass([unref(prefixCls2), __props.customClass, "mx-16px my-16px"])
10653
10835
  }, {
10654
10836
  default: withCtx(() => [
10655
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
10837
+ __props.scroll ? (openBlock(), createBlock(unref(ElScrollbar), {
10838
+ key: 0,
10839
+ height: __props.scrollHeight,
10840
+ "max-height": __props.scrollMaxHeight,
10841
+ always: ""
10842
+ }, {
10843
+ default: withCtx(() => [
10844
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
10845
+ ]),
10846
+ _: 3
10847
+ }, 8, ["height", "max-height"])) : renderSlot(_ctx.$slots, "default", { key: 1 }, void 0, true)
10656
10848
  ]),
10657
10849
  _: 3
10658
10850
  }, 8, ["body-style", "header", "class"]);
10659
10851
  };
10660
10852
  }
10661
10853
  });
10662
- const PageCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-f55a8642"]]);
10854
+ const PageCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-8351baee"]]);
10663
10855
  const _hoisted_1$5 = { class: "ml-2px" };
10664
10856
  const _hoisted_2$5 = { class: "flex items-center" };
10665
10857
  const _sfc_main$b = /* @__PURE__ */ Object.assign({ name: "PageNavBar" }, {