@ditari/bsui 5.0.26 → 5.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/cjs/components/date/RangePicker.vue2.cjs +2 -1
  2. package/dist/cjs/components/date/RangePicker.vue2.cjs.map +1 -1
  3. package/dist/cjs/components/date/index.cjs.map +1 -1
  4. package/dist/cjs/components/dic/DicReplace.cjs +3 -3
  5. package/dist/cjs/components/dic/DicReplace.cjs.map +1 -1
  6. package/dist/cjs/components/dic/index.cjs.map +1 -1
  7. package/dist/cjs/components/form/FormLayout.cjs.map +1 -1
  8. package/dist/cjs/components/form/index.cjs.map +1 -1
  9. package/dist/cjs/components/icon/Moon.vue.cjs +3 -3
  10. package/dist/cjs/components/icon/Moon.vue.cjs.map +1 -1
  11. package/dist/cjs/components/icon/Sun.vue.cjs +4 -4
  12. package/dist/cjs/components/icon/Sun.vue.cjs.map +1 -1
  13. package/dist/cjs/components/icon/index.cjs.map +1 -1
  14. package/dist/cjs/components/layout/Layout.vue2.cjs.map +1 -1
  15. package/dist/cjs/components/layout/List.cjs.map +1 -1
  16. package/dist/cjs/components/layout/Show.cjs.map +1 -1
  17. package/dist/cjs/components/layout/components/index.cjs.map +1 -1
  18. package/dist/cjs/components/layout/components/layout/HeaderLayout.vue2.cjs +24 -2
  19. package/dist/cjs/components/layout/components/layout/HeaderLayout.vue2.cjs.map +1 -1
  20. package/dist/cjs/components/layout/components/layout/RouterContent.vue2.cjs +12 -3
  21. package/dist/cjs/components/layout/components/layout/RouterContent.vue2.cjs.map +1 -1
  22. package/dist/cjs/components/layout/components/layout/ThemeApp.vue2.cjs.map +1 -1
  23. package/dist/cjs/components/layout/components/menu/Menu.cjs +61 -29
  24. package/dist/cjs/components/layout/components/menu/Menu.cjs.map +1 -1
  25. package/dist/cjs/components/layout/components/settings/BlockCheckbox.vue2.cjs.map +1 -1
  26. package/dist/cjs/components/layout/components/settings/SettingDrawer.cjs.map +1 -1
  27. package/dist/cjs/components/layout/index.cjs.map +1 -1
  28. package/dist/cjs/components/select/Select.vue2.cjs +1 -1
  29. package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
  30. package/dist/cjs/components/select/index.cjs.map +1 -1
  31. package/dist/cjs/components/tab/Search.cjs +5 -3
  32. package/dist/cjs/components/tab/Search.cjs.map +1 -1
  33. package/dist/cjs/components/tab/Tab.vue2.cjs +1 -1
  34. package/dist/cjs/components/tab/Tab.vue2.cjs.map +1 -1
  35. package/dist/cjs/components/tab/index.cjs.map +1 -1
  36. package/dist/cjs/components/table/Table.cjs.map +1 -1
  37. package/dist/cjs/components/table/index.cjs.map +1 -1
  38. package/dist/cjs/index.cjs +0 -1
  39. package/dist/cjs/index.cjs.map +1 -1
  40. package/dist/cjs/utils/useMenuCore.cjs.map +1 -1
  41. package/dist/cjs/utils/useTheme.cjs.map +1 -1
  42. package/dist/css/components/tab/style/index.css +1 -1
  43. package/dist/css/index.css +1 -1
  44. package/dist/esm/components/date/RangePicker.vue2.mjs +2 -1
  45. package/dist/esm/components/date/RangePicker.vue2.mjs.map +1 -1
  46. package/dist/esm/components/date/index.mjs.map +1 -1
  47. package/dist/esm/components/dic/DicReplace.mjs +3 -3
  48. package/dist/esm/components/dic/DicReplace.mjs.map +1 -1
  49. package/dist/esm/components/dic/index.mjs.map +1 -1
  50. package/dist/esm/components/form/FormLayout.mjs.map +1 -1
  51. package/dist/esm/components/form/index.mjs.map +1 -1
  52. package/dist/esm/components/icon/Moon.vue.mjs +3 -3
  53. package/dist/esm/components/icon/Moon.vue.mjs.map +1 -1
  54. package/dist/esm/components/icon/Sun.vue.mjs +4 -4
  55. package/dist/esm/components/icon/Sun.vue.mjs.map +1 -1
  56. package/dist/esm/components/icon/index.mjs.map +1 -1
  57. package/dist/esm/components/layout/Layout.vue2.mjs.map +1 -1
  58. package/dist/esm/components/layout/List.mjs.map +1 -1
  59. package/dist/esm/components/layout/Show.mjs.map +1 -1
  60. package/dist/esm/components/layout/components/index.mjs.map +1 -1
  61. package/dist/esm/components/layout/components/layout/HeaderLayout.vue2.mjs +26 -4
  62. package/dist/esm/components/layout/components/layout/HeaderLayout.vue2.mjs.map +1 -1
  63. package/dist/esm/components/layout/components/layout/RouterContent.vue2.mjs +13 -4
  64. package/dist/esm/components/layout/components/layout/RouterContent.vue2.mjs.map +1 -1
  65. package/dist/esm/components/layout/components/layout/ThemeApp.vue2.mjs.map +1 -1
  66. package/dist/esm/components/layout/components/menu/Menu.mjs +64 -32
  67. package/dist/esm/components/layout/components/menu/Menu.mjs.map +1 -1
  68. package/dist/esm/components/layout/components/settings/BlockCheckbox.vue2.mjs.map +1 -1
  69. package/dist/esm/components/layout/components/settings/SettingDrawer.mjs.map +1 -1
  70. package/dist/esm/components/layout/index.mjs.map +1 -1
  71. package/dist/esm/components/select/Select.vue2.mjs +1 -1
  72. package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
  73. package/dist/esm/components/select/index.mjs.map +1 -1
  74. package/dist/esm/components/tab/Search.mjs +4 -2
  75. package/dist/esm/components/tab/Search.mjs.map +1 -1
  76. package/dist/esm/components/tab/Tab.vue2.mjs +1 -1
  77. package/dist/esm/components/tab/Tab.vue2.mjs.map +1 -1
  78. package/dist/esm/components/tab/index.mjs.map +1 -1
  79. package/dist/esm/components/table/Table.mjs.map +1 -1
  80. package/dist/esm/components/table/index.mjs.map +1 -1
  81. package/dist/esm/index.mjs +0 -1
  82. package/dist/esm/index.mjs.map +1 -1
  83. package/dist/esm/utils/useMenuCore.mjs.map +1 -1
  84. package/dist/esm/utils/useTheme.mjs.map +1 -1
  85. package/dist/types/components/date/RangePicker.vue.d.ts.map +1 -1
  86. package/dist/types/components/layout/Layout.vue.d.ts +44 -2
  87. package/dist/types/components/layout/Layout.vue.d.ts.map +1 -1
  88. package/dist/types/components/layout/components/layout/HeaderLayout.vue.d.ts +29 -1
  89. package/dist/types/components/layout/components/layout/HeaderLayout.vue.d.ts.map +1 -1
  90. package/dist/types/components/layout/components/layout/RouterContent.vue.d.ts +15 -1
  91. package/dist/types/components/layout/components/layout/RouterContent.vue.d.ts.map +1 -1
  92. package/dist/types/components/layout/components/menu/Menu.d.ts.map +1 -1
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/package.json +4 -15
  95. package/src/index.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Moon.vue.mjs","sources":["../../../../src/components/icon/Moon.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\r\n\r\n<template>\r\n <svg\r\n width=\"48\"\r\n height=\"48\"\r\n viewBox=\"0 0 48 48\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M42.108 29.769c.124-.387-.258-.736-.645-.613A17.99 17.99 0 0136 30c-9.941 0-18-8.059-18-18 0-1.905.296-3.74.844-5.463.123-.387-.226-.769-.613-.645C10.558 8.334 5 15.518 5 24c0 10.493 8.507 19 19 19 8.482 0 15.666-5.558 18.108-13.231z\"\r\n fill=\"#4E5969\"\r\n />\r\n </svg>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_openBlock","_createElementBlock","_createElementVNode"],"mappings":";;;;;AAII,MAAA,UAAU,GAAA;AAAA,EACV;EACA;EACA,OAAW,EAAA,WAAA;AAAA;;AAJb,SAAA,WAAA,CAAA,MAAA,MAAA,EAAA;EASI,OAAAA,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA,OAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA;AAAA,IAFAC,kBAAA;AAAA,MAA6O,MAAA;AAAA,MAAA;AAAA,QAC7O,CAAA,EAAA,2OAAA;AAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Moon.vue.mjs","sources":["../../../../src/components/icon/Moon.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\r\n\r\n<template>\r\n <svg\r\n width=\"48\"\r\n height=\"48\"\r\n viewBox=\"0 0 48 48\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M42.108 29.769c.124-.387-.258-.736-.645-.613A17.99 17.99 0 0136 30c-9.941 0-18-8.059-18-18 0-1.905.296-3.74.844-5.463.123-.387-.226-.769-.613-.645C10.558 8.334 5 15.518 5 24c0 10.493 8.507 19 19 19 8.482 0 15.666-5.558 18.108-13.231z\"\r\n fill=\"#4E5969\"\r\n />\r\n </svg>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_openBlock","_createElementBlock","_createElementVNode"],"mappings":";;;;;;EAII,KAAA,EAAM,IAAA;AAAA,EACN,MAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAQ,WAAA;AAAA,EACR,IAAA,EAAK;;;AAJP,EAAA,OAAAA,SAAA,EAAA,EAAAC,kBAAA,CAUM,KAAA,EAVN,UAAA,EAUM,CAAA,GAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA;AAAA,IAJJC,kBAAA;AAAA,MAGE,MAAA;AAAA,MAAA;AAAA,QAFA,CAAA,EAAE,2OAAA;AAAA,QACF,IAAA,EAAK;AAAA;;;;;;;;;;;"}
@@ -10,7 +10,7 @@ const _hoisted_1 = {
10
10
  fill: "none"
11
11
  };
12
12
  function _sfc_render(_ctx, _cache) {
13
- return openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
13
+ return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [
14
14
  createElementVNode(
15
15
  "circle",
16
16
  {
@@ -21,7 +21,7 @@ function _sfc_render(_ctx, _cache) {
21
21
  },
22
22
  null,
23
23
  -1
24
- /* HOISTED */
24
+ /* CACHED */
25
25
  ),
26
26
  createElementVNode(
27
27
  "path",
@@ -31,9 +31,9 @@ function _sfc_render(_ctx, _cache) {
31
31
  },
32
32
  null,
33
33
  -1
34
- /* HOISTED */
34
+ /* CACHED */
35
35
  )
36
- ]));
36
+ ])]);
37
37
  }
38
38
  var Sun = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
39
39
 
@@ -1 +1 @@
1
- {"version":3,"file":"Sun.vue.mjs","sources":["../../../../src/components/icon/Sun.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\r\n\r\n<template>\r\n <svg\r\n width=\"22\"\r\n height=\"22\"\r\n viewBox=\"0 0 48 48\"\r\n fill=\"none\"\r\n >\r\n <circle cx=\"24\" cy=\"24\" r=\"9\" fill=\"red\" />\r\n <path\r\n d=\"M21 5.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5zM21 37.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5zM42.5 21a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5h5zM10.5 21a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5h5zM39.203 34.96a.5.5 0 010 .707l-3.536 3.536a.5.5 0 01-.707 0l-3.535-3.536a.5.5 0 010-.707l3.535-3.535a.5.5 0 01.707 0l3.536 3.535zM16.575 12.333a.5.5 0 010 .707l-3.535 3.535a.5.5 0 01-.707 0L8.797 13.04a.5.5 0 010-.707l3.536-3.536a.5.5 0 01.707 0l3.535 3.536zM13.04 39.203a.5.5 0 01-.707 0l-3.536-3.536a.5.5 0 010-.707l3.536-3.535a.5.5 0 01.707 0l3.536 3.535a.5.5 0 010 .707l-3.536 3.536zM35.668 16.575a.5.5 0 01-.708 0l-3.535-3.535a.5.5 0 010-.707l3.535-3.536a.5.5 0 01.708 0l3.535 3.536a.5.5 0 010 .707l-3.535 3.535z\"\r\n fill=\"#4E5969\"\r\n />\r\n </svg>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_openBlock","_createElementBlock","_createElementVNode"],"mappings":";;;;;AAII,MAAA,UAAU,GAAA;AAAA,EACV;EACA;EACA,OAAW,EAAA,WAAA;AAAA;;AAJb,SAAA,WAAA,CAAA,MAAA,MAAA,EAAA;EAM6C,OAAAA,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA,OAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA;AAAA,IAAnCC,kBAAA;AAAA,MAAO,QAAA;AAAA,MAAA;AAAA,QAAC,EAAG,EAAA,IAAA;AAAA,QAAK,EAAK,EAAA,IAAA;AAAA,QAAC,CAAA,EAAA,GAAA;AAAA;OAC9B;AAAA,MAGE,IAAA;AAAA,MAAA,CAAA;AAAA;AAAA,KAAA;AAAA,IAFAA,kBAAA;AAAA,MAAo0B,MAAA;AAAA,MAAA;AAAA,QACp0B,CAAA,EAAA,k0BAAA;AAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Sun.vue.mjs","sources":["../../../../src/components/icon/Sun.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\r\n\r\n<template>\r\n <svg\r\n width=\"22\"\r\n height=\"22\"\r\n viewBox=\"0 0 48 48\"\r\n fill=\"none\"\r\n >\r\n <circle cx=\"24\" cy=\"24\" r=\"9\" fill=\"red\" />\r\n <path\r\n d=\"M21 5.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5zM21 37.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5zM42.5 21a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5h5zM10.5 21a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-5a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5h5zM39.203 34.96a.5.5 0 010 .707l-3.536 3.536a.5.5 0 01-.707 0l-3.535-3.536a.5.5 0 010-.707l3.535-3.535a.5.5 0 01.707 0l3.536 3.535zM16.575 12.333a.5.5 0 010 .707l-3.535 3.535a.5.5 0 01-.707 0L8.797 13.04a.5.5 0 010-.707l3.536-3.536a.5.5 0 01.707 0l3.535 3.536zM13.04 39.203a.5.5 0 01-.707 0l-3.536-3.536a.5.5 0 010-.707l3.536-3.535a.5.5 0 01.707 0l3.536 3.535a.5.5 0 010 .707l-3.536 3.536zM35.668 16.575a.5.5 0 01-.708 0l-3.535-3.535a.5.5 0 010-.707l3.535-3.536a.5.5 0 01.708 0l3.535 3.536a.5.5 0 010 .707l-3.535 3.535z\"\r\n fill=\"#4E5969\"\r\n />\r\n </svg>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_openBlock","_createElementBlock","_createElementVNode"],"mappings":";;;;;;EAII,KAAA,EAAM,IAAA;AAAA,EACN,MAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAQ,WAAA;AAAA,EACR,IAAA,EAAK;;;AAJP,EAAA,OAAAA,SAAA,EAAA,EAAAC,kBAAA,CAWM,KAAA,EAXN,UAAA,EAWM,CAAA,GAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA;AAAA,IALJC,kBAAA;AAAA,MAA2C,QAAA;AAAA,MAAA;AAAA,QAAnC,EAAA,EAAG,IAAA;AAAA,QAAK,EAAA,EAAG,IAAA;AAAA,QAAK,CAAA,EAAE,GAAA;AAAA,QAAI,IAAA,EAAK;AAAA;;;;;IACnCA,kBAAA;AAAA,MAGE,MAAA;AAAA,MAAA;AAAA,QAFA,CAAA,EAAE,k0BAAA;AAAA,QACF,IAAA,EAAK;AAAA;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/components/icon/index.ts"],"sourcesContent":["import type { App } from \"vue\";\r\n\r\nimport Moon from \"./Moon.vue\";\r\nimport Sun from \"./Sun.vue\";\r\n\r\nSun.install = (app: App) => {\r\n app.component(\"IconSun\", Sun);\r\n};\r\nMoon.install = (app: App) => {\r\n app.component(\"IconMoon\", Moon);\r\n};\r\nexport { Moon, Sun };\r\n"],"names":[],"mappings":";;;;AAKA,GAAI,CAAA,OAAA,GAAU,CAAC,GAAa,KAAA;AAC1B,EAAI,GAAA,CAAA,SAAA,CAAU,WAAW,GAAG,CAAA;AAC9B,CAAA;AACA,IAAK,CAAA,OAAA,GAAU,CAAC,GAAa,KAAA;AAC3B,EAAI,GAAA,CAAA,SAAA,CAAU,YAAY,IAAI,CAAA;AAChC,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/components/icon/index.ts"],"sourcesContent":["import type { App } from \"vue\";\r\n\r\nimport Moon from \"./Moon.vue\";\r\nimport Sun from \"./Sun.vue\";\r\n\r\nSun.install = (app: App) => {\r\n app.component(\"IconSun\", Sun);\r\n};\r\nMoon.install = (app: App) => {\r\n app.component(\"IconMoon\", Moon);\r\n};\r\nexport { Moon, Sun };\r\n"],"names":[],"mappings":";;;;AAKA,GAAA,CAAI,OAAA,GAAU,CAAC,GAAA,KAAa;AAC1B,EAAA,GAAA,CAAI,SAAA,CAAU,WAAW,GAAG,CAAA;AAC9B,CAAA;AACA,IAAA,CAAK,OAAA,GAAU,CAAC,GAAA,KAAa;AAC3B,EAAA,GAAA,CAAI,SAAA,CAAU,YAAY,IAAI,CAAA;AAChC,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.vue2.mjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide, ref, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport DMenu from \"./components/menu/Menu\";\r\nimport SettingDrawer from \"./components/settings/SettingDrawer\";\r\nimport {\r\n useAppStore,\r\n useKeepAliveStore\r\n} from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nimport HeaderLayout from \"./components/layout/HeaderLayout.vue\";\r\nimport RouterContent from \"./components/layout/RouterContent.vue\";\r\n\r\nconst props = defineProps({\n watermark: { type: Object, required: false, default: () => ({\r\n content: \"\"\r\n }) },\n isSettings: { type: Boolean, required: false, default: true }\n});\r\nconst emits = defineEmits([\"onMenuClick\"]);\r\n\r\nconst { layout, modeConfig, sideTokenStyle } =\r\n storeToRefs(useAppStore());\r\nconst route = useRoute();\r\nuseWatermark();\r\nconst { onMenuClick } = useMenu();\r\n\r\nconst {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n} = useStyle();\r\nuseKeepAlive();\r\n\r\nfunction useKeepAlive() {\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n\r\n watch(\r\n () => route.path,\r\n () => {\r\n save(route);\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n}\r\n\r\nfunction useWatermark() {\r\n const watermarkContent = ref(\"\");\r\n provide(\"watermarkContent\", watermarkContent);\r\n // 监听 watermark 的变化\r\n watch(\r\n () => props.watermark,\r\n val => {\r\n watermarkContent.value = val.content || \"\";\r\n },\r\n { deep: true, immediate: true }\r\n );\r\n}\r\n\r\nfunction useStyle() {\r\n const layoutStyle = css`\r\n height: 100vh;\r\n `;\r\n\r\n const transitionStyle = css`\r\n transition: margin-left 0.4s\r\n cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `;\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const siderStyle = computed(\r\n () => css`\r\n position: fixed !important;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n width: ${layout.value.sideWidth}px;\r\n\r\n .app-side {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n ${modeConfig.value.mode === \"light\"\r\n ? `background:${sideTokenStyle.value.bgColor};`\r\n : \"\"}\r\n }\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n margin-left: ${left.value};\r\n ${transitionStyle}\r\n `\r\n );\r\n\r\n const rightContentStyle = computed(\r\n () => css`\r\n padding-top: ${layout.value.headerHeight}px;\r\n `\r\n );\r\n\r\n return {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n };\r\n}\r\n\r\nfunction useMenu() {\r\n const onMenuClick = (item: never) => {\r\n emits(\"onMenuClick\", item);\r\n };\r\n\r\n return {\r\n onMenuClick\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-layout :class=\"layoutStyle\">\r\n <a-layout-sider\r\n v-model:collapsed=\"layout.collapsed\"\r\n theme=\"light\"\r\n collapsible\r\n :trigger=\"null\"\r\n :class=\"siderStyle\"\r\n >\r\n <div class=\"app-side\">\r\n <slot name=\"logo\"></slot>\r\n <d-menu @onMenuClick=\"onMenuClick\" />\r\n </div>\r\n </a-layout-sider>\r\n <a-layout :class=\"rightStyle\">\r\n <header-layout>\r\n <slot name=\"headerRight\"></slot>\r\n </header-layout>\r\n <a-layout-content :class=\"rightContentStyle\">\r\n <RouterContent />\r\n </a-layout-content>\r\n </a-layout>\r\n </a-layout>\r\n\r\n <SettingDrawer v-if=\"isSettings\" />\r\n <a-back-top></a-back-top>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["layoutStyle","siderStyle","rightStyle","rightContentStyle","onMenuClick"],"mappings":"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"}
1
+ {"version":3,"file":"Layout.vue2.mjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide, ref, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport DMenu from \"./components/menu/Menu\";\r\nimport SettingDrawer from \"./components/settings/SettingDrawer\";\r\nimport {\r\n useAppStore,\r\n useKeepAliveStore\r\n} from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nimport HeaderLayout from \"./components/layout/HeaderLayout.vue\";\r\nimport RouterContent from \"./components/layout/RouterContent.vue\";\r\n\r\nconst props = defineProps({\n watermark: { type: Object, required: false, default: () => ({\r\n content: \"\"\r\n }) },\n isSettings: { type: Boolean, required: false, default: true }\n});\r\nconst emits = defineEmits([\"onMenuClick\"]);\r\n\r\nconst { layout, modeConfig, sideTokenStyle } =\r\n storeToRefs(useAppStore());\r\nconst route = useRoute();\r\nuseWatermark();\r\nconst { onMenuClick } = useMenu();\r\n\r\nconst {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n} = useStyle();\r\nuseKeepAlive();\r\n\r\nfunction useKeepAlive() {\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n\r\n watch(\r\n () => route.path,\r\n () => {\r\n save(route);\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n}\r\n\r\nfunction useWatermark() {\r\n const watermarkContent = ref(\"\");\r\n provide(\"watermarkContent\", watermarkContent);\r\n // 监听 watermark 的变化\r\n watch(\r\n () => props.watermark,\r\n val => {\r\n watermarkContent.value = val.content || \"\";\r\n },\r\n { deep: true, immediate: true }\r\n );\r\n}\r\n\r\nfunction useStyle() {\r\n const layoutStyle = css`\r\n height: 100vh;\r\n `;\r\n\r\n const transitionStyle = css`\r\n transition: margin-left 0.4s\r\n cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `;\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const siderStyle = computed(\r\n () => css`\r\n position: fixed !important;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n width: ${layout.value.sideWidth}px;\r\n\r\n .app-side {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n ${modeConfig.value.mode === \"light\"\r\n ? `background:${sideTokenStyle.value.bgColor};`\r\n : \"\"}\r\n }\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n margin-left: ${left.value};\r\n ${transitionStyle}\r\n `\r\n );\r\n\r\n const rightContentStyle = computed(\r\n () => css`\r\n padding-top: ${layout.value.headerHeight}px;\r\n `\r\n );\r\n\r\n return {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n };\r\n}\r\n\r\nfunction useMenu() {\r\n const onMenuClick = (item: never) => {\r\n emits(\"onMenuClick\", item);\r\n };\r\n\r\n return {\r\n onMenuClick\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-layout :class=\"layoutStyle\">\r\n <a-layout-sider\r\n v-model:collapsed=\"layout.collapsed\"\r\n theme=\"light\"\r\n collapsible\r\n :trigger=\"null\"\r\n :class=\"siderStyle\"\r\n >\r\n <div class=\"app-side\">\r\n <slot name=\"logo\"></slot>\r\n <d-menu @onMenuClick=\"onMenuClick\" />\r\n </div>\r\n </a-layout-sider>\r\n <a-layout :class=\"rightStyle\">\r\n <header-layout>\r\n <slot name=\"headerRight\"></slot>\r\n </header-layout>\r\n <a-layout-content :class=\"rightContentStyle\">\r\n <RouterContent />\r\n </a-layout-content>\r\n </a-layout>\r\n </a-layout>\r\n\r\n <SettingDrawer v-if=\"isSettings\" />\r\n <a-back-top></a-back-top>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["layoutStyle","siderStyle","rightStyle","rightContentStyle","onMenuClick","_createVNode","_unref","_createElementVNode","_renderSlot","DMenu","HeaderLayout","RouterContent","_createBlock"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"List.mjs","sources":["../../../../src/components/layout/List.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n inject,\r\n nextTick,\r\n onActivated,\r\n onDeactivated,\r\n onMounted,\r\n onUnmounted,\r\n ref,\r\n watch,\r\n type WatchStopHandle\r\n} from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport {\r\n Card,\r\n Flex,\r\n Space,\r\n Watermark\r\n} from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\nimport { useElementSize } from \"@vueuse/core\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nconst tableRootStyle = css`\r\n height: 100%;\r\n position: relative;\r\n overflow: hidden;\r\n`;\r\n\r\nconst list = defineComponent({\r\n name: \"DListLayout\",\r\n emits: [\"refresh\"],\r\n setup(_, { slots, emit }) {\r\n const watermarkContent = ref(\r\n inject(\"watermarkContent\", \"\")\r\n );\r\n const route = useRoute();\r\n const { refresh } = storeToRefs(useAppStore());\r\n const {\r\n tableRef,\r\n height,\r\n tableVisible,\r\n playTableHeight\r\n } = useTableHeight();\r\n const { formRef } = useForm();\r\n useReload();\r\n // 使用 computed 来动态计算样式\r\n const maskDivStyle = computed(() => {\r\n return css`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n background: white;\r\n display: ${tableVisible.value ? \"block\" : \"none\"};\r\n `;\r\n });\r\n\r\n const tableWrapperStyle = css`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n overflow: hidden;\r\n `;\r\n\r\n const cardStyle = css`\r\n box-shadow: none !important;\r\n `;\r\n\r\n const leftCardStyle = css`\r\n .ant-card-body {\r\n overflow-y: scroll;\r\n -ms-overflow-style: none; /* 对 IE 和 Edge 生效 */\r\n scrollbar-width: none; /* 对 Firefox 生效 */\r\n\r\n /* Webkit 浏览器 */\r\n\r\n ::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n const listStyle = computed(\r\n () => css`\r\n padding: 10px;\r\n height: 100%;\r\n //height: calc(100vh - 44px);\r\n `\r\n );\r\n\r\n onMounted(() => {\r\n playTableHeight();\r\n });\r\n\r\n function useTableHeight() {\r\n const tableRef = ref();\r\n const height = ref(0);\r\n const tableVisible = ref(true);\r\n\r\n function playTableHeight() {\r\n tableVisible.value = true;\r\n height.value = tableRef?.value?.$el.offsetHeight;\r\n nextTick(() => {\r\n setTimeout(() => {\r\n tableVisible.value = false;\r\n }, 10);\r\n });\r\n }\r\n\r\n return {\r\n tableRef,\r\n height,\r\n tableVisible,\r\n playTableHeight\r\n };\r\n }\r\n\r\n function useForm() {\r\n const formRef = ref(null);\r\n const { height: formHeight } =\r\n useElementSize(formRef);\r\n watch(\r\n () => formHeight.value,\r\n () => {\r\n nextTick(() => {\r\n playTableHeight();\r\n });\r\n }\r\n );\r\n\r\n return {\r\n formRef\r\n };\r\n }\r\n\r\n // 处理标签重载\r\n function useReload() {\r\n let stopHandleWatch: WatchStopHandle;\r\n // !route.meta.keepAlive\r\n if (!route.name) {\r\n stopHandleWatch = _useWatch();\r\n // 卸载未缓存的组件\r\n onUnmounted(() => {\r\n stopHandleWatch?.();\r\n });\r\n } else {\r\n // 激活缓存页面\r\n onActivated(() => {\r\n if (refresh.value) {\r\n refresh.value = false;\r\n emit(\"refresh\");\r\n }\r\n stopHandleWatch = _useWatch();\r\n });\r\n // 离开缓存页面\r\n onDeactivated(() => {\r\n stopHandleWatch?.();\r\n });\r\n }\r\n\r\n function _useWatch() {\r\n //点击了标签重载图标\r\n return watch(\r\n () => refresh.value,\r\n val => {\r\n if (val) {\r\n // 发送刷新事件到列表页面\r\n emit(\"refresh\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n function useLayout() {\r\n function formLayout() {\r\n return () =>\r\n slots.form && (\r\n <Card\r\n class={cardStyle}\r\n ref={formRef}\r\n style={{ marginBottom: \"10px\" }}\r\n bodyStyle={{ padding: \"10px 10px 0 10px\" }}\r\n bordered={false}\r\n >\r\n {slots.form()}\r\n </Card>\r\n );\r\n }\r\n\r\n function tableLayout() {\r\n return () => (\r\n <Flex flex={1} vertical={true}>\r\n <Card\r\n class={cardStyle}\r\n style={{ height: \"100%\" }}\r\n bodyStyle={{\r\n height: \"100%\",\r\n padding: \"10px\"\r\n }}\r\n bordered={false}\r\n >\r\n <Flex\r\n style={{ height: \"100%\" }}\r\n vertical={true}\r\n >\r\n <Space style={{ marginBottom: \"6px\" }}>\r\n {slots.tools?.()}\r\n </Space>\r\n <Flex\r\n ref={tableRef}\r\n flex={1}\r\n style={{ height: \"100%\" }}\r\n vertical={true}\r\n >\r\n <div class={tableRootStyle}>\r\n <div class={maskDivStyle.value}></div>\r\n <div class={tableWrapperStyle}>\r\n {slots.table?.({\r\n height: height.value\r\n })}\r\n </div>\r\n </div>\r\n </Flex>\r\n </Flex>\r\n </Card>\r\n </Flex>\r\n );\r\n }\r\n\r\n return (\r\n <Watermark style={{ height: \"100%\" }} content={watermarkContent.value}>\r\n <Flex\r\n class={[listStyle.value, \"app-list\"]}\r\n gap={10}\r\n >\r\n {slots.left ? (\r\n <Card\r\n class={[cardStyle, leftCardStyle]}\r\n bordered={false}\r\n bodyStyle={{\r\n height: \"100%\",\r\n padding: \"10px\"\r\n }}\r\n >\r\n {slots.left?.()}\r\n </Card>\r\n ) : null}\r\n <Flex vertical={true} flex={1}>\r\n {formLayout()()}\r\n {tableLayout()()}\r\n </Flex>\r\n </Flex>\r\n </Watermark>\r\n );\r\n }\r\n\r\n return () => useLayout();\r\n }\r\n});\r\n\r\nexport default list;\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableRootStyle","css","list","name","emits","setup","_","slots","emit","watermarkContent","ref","inject","route","useRoute","refresh","storeToRefs","useAppStore","tableRef","height","tableVisible","playTableHeight","useTableHeight","formRef","useForm","useReload","maskDivStyle","computed","value","tableWrapperStyle","cardStyle","leftCardStyle","listStyle","onMounted","$el","offsetHeight","nextTick","setTimeout","formHeight","useElementSize","watch","stopHandleWatch","_useWatch","onUnmounted","onActivated","onDeactivated","val","useLayout","formLayout","_slot","form","_createVNode","Card","marginBottom","padding","default","tableLayout","Flex","Space","tools","table","Watermark","left"],"mappings":"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"}
1
+ {"version":3,"file":"List.mjs","sources":["../../../../src/components/layout/List.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n inject,\r\n nextTick,\r\n onActivated,\r\n onDeactivated,\r\n onMounted,\r\n onUnmounted,\r\n ref,\r\n watch,\r\n type WatchStopHandle\r\n} from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport {\r\n Card,\r\n Flex,\r\n Space,\r\n Watermark\r\n} from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\nimport { useElementSize } from \"@vueuse/core\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nconst tableRootStyle = css`\r\n height: 100%;\r\n position: relative;\r\n overflow: hidden;\r\n`;\r\n\r\nconst list = defineComponent({\r\n name: \"DListLayout\",\r\n emits: [\"refresh\"],\r\n setup(_, { slots, emit }) {\r\n const watermarkContent = ref(\r\n inject(\"watermarkContent\", \"\")\r\n );\r\n const route = useRoute();\r\n const { refresh } = storeToRefs(useAppStore());\r\n const {\r\n tableRef,\r\n height,\r\n tableVisible,\r\n playTableHeight\r\n } = useTableHeight();\r\n const { formRef } = useForm();\r\n useReload();\r\n // 使用 computed 来动态计算样式\r\n const maskDivStyle = computed(() => {\r\n return css`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n background: white;\r\n display: ${tableVisible.value ? \"block\" : \"none\"};\r\n `;\r\n });\r\n\r\n const tableWrapperStyle = css`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n overflow: hidden;\r\n `;\r\n\r\n const cardStyle = css`\r\n box-shadow: none !important;\r\n `;\r\n\r\n const leftCardStyle = css`\r\n .ant-card-body {\r\n overflow-y: scroll;\r\n -ms-overflow-style: none; /* 对 IE 和 Edge 生效 */\r\n scrollbar-width: none; /* 对 Firefox 生效 */\r\n\r\n /* Webkit 浏览器 */\r\n\r\n ::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n const listStyle = computed(\r\n () => css`\r\n padding: 10px;\r\n height: 100%;\r\n //height: calc(100vh - 44px);\r\n `\r\n );\r\n\r\n onMounted(() => {\r\n playTableHeight();\r\n });\r\n\r\n function useTableHeight() {\r\n const tableRef = ref();\r\n const height = ref(0);\r\n const tableVisible = ref(true);\r\n\r\n function playTableHeight() {\r\n tableVisible.value = true;\r\n height.value = tableRef?.value?.$el.offsetHeight;\r\n nextTick(() => {\r\n setTimeout(() => {\r\n tableVisible.value = false;\r\n }, 10);\r\n });\r\n }\r\n\r\n return {\r\n tableRef,\r\n height,\r\n tableVisible,\r\n playTableHeight\r\n };\r\n }\r\n\r\n function useForm() {\r\n const formRef = ref(null);\r\n const { height: formHeight } =\r\n useElementSize(formRef);\r\n watch(\r\n () => formHeight.value,\r\n () => {\r\n nextTick(() => {\r\n playTableHeight();\r\n });\r\n }\r\n );\r\n\r\n return {\r\n formRef\r\n };\r\n }\r\n\r\n // 处理标签重载\r\n function useReload() {\r\n let stopHandleWatch: WatchStopHandle;\r\n // !route.meta.keepAlive\r\n if (!route.name) {\r\n stopHandleWatch = _useWatch();\r\n // 卸载未缓存的组件\r\n onUnmounted(() => {\r\n stopHandleWatch?.();\r\n });\r\n } else {\r\n // 激活缓存页面\r\n onActivated(() => {\r\n if (refresh.value) {\r\n refresh.value = false;\r\n emit(\"refresh\");\r\n }\r\n stopHandleWatch = _useWatch();\r\n });\r\n // 离开缓存页面\r\n onDeactivated(() => {\r\n stopHandleWatch?.();\r\n });\r\n }\r\n\r\n function _useWatch() {\r\n //点击了标签重载图标\r\n return watch(\r\n () => refresh.value,\r\n val => {\r\n if (val) {\r\n // 发送刷新事件到列表页面\r\n emit(\"refresh\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n function useLayout() {\r\n function formLayout() {\r\n return () =>\r\n slots.form && (\r\n <Card\r\n class={cardStyle}\r\n ref={formRef}\r\n style={{ marginBottom: \"10px\" }}\r\n bodyStyle={{ padding: \"10px 10px 0 10px\" }}\r\n bordered={false}\r\n >\r\n {slots.form()}\r\n </Card>\r\n );\r\n }\r\n\r\n function tableLayout() {\r\n return () => (\r\n <Flex flex={1} vertical={true}>\r\n <Card\r\n class={cardStyle}\r\n style={{ height: \"100%\" }}\r\n bodyStyle={{\r\n height: \"100%\",\r\n padding: \"10px\"\r\n }}\r\n bordered={false}\r\n >\r\n <Flex\r\n style={{ height: \"100%\" }}\r\n vertical={true}\r\n >\r\n <Space style={{ marginBottom: \"6px\" }}>\r\n {slots.tools?.()}\r\n </Space>\r\n <Flex\r\n ref={tableRef}\r\n flex={1}\r\n style={{ height: \"100%\" }}\r\n vertical={true}\r\n >\r\n <div class={tableRootStyle}>\r\n <div class={maskDivStyle.value}></div>\r\n <div class={tableWrapperStyle}>\r\n {slots.table?.({\r\n height: height.value\r\n })}\r\n </div>\r\n </div>\r\n </Flex>\r\n </Flex>\r\n </Card>\r\n </Flex>\r\n );\r\n }\r\n\r\n return (\r\n <Watermark style={{ height: \"100%\" }} content={watermarkContent.value}>\r\n <Flex\r\n class={[listStyle.value, \"app-list\"]}\r\n gap={10}\r\n >\r\n {slots.left ? (\r\n <Card\r\n class={[cardStyle, leftCardStyle]}\r\n bordered={false}\r\n bodyStyle={{\r\n height: \"100%\",\r\n padding: \"10px\"\r\n }}\r\n >\r\n {slots.left?.()}\r\n </Card>\r\n ) : null}\r\n <Flex vertical={true} flex={1}>\r\n {formLayout()()}\r\n {tableLayout()()}\r\n </Flex>\r\n </Flex>\r\n </Watermark>\r\n );\r\n }\r\n\r\n return () => useLayout();\r\n }\r\n});\r\n\r\nexport default list;\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableRootStyle","css","list","defineComponent","name","emits","setup","_","slots","emit","watermarkContent","ref","inject","route","useRoute","refresh","storeToRefs","useAppStore","tableRef","height","tableVisible","playTableHeight","useTableHeight","formRef","useForm","useReload","maskDivStyle","computed","value","tableWrapperStyle","cardStyle","leftCardStyle","listStyle","onMounted","$el","offsetHeight","nextTick","setTimeout","formHeight","useElementSize","watch","stopHandleWatch","_useWatch","onUnmounted","onActivated","onDeactivated","val","useLayout","formLayout","_slot","form","_createVNode","Card","marginBottom","padding","default","tableLayout","Flex","Space","tools","table","Watermark","left"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Show.mjs","sources":["../../../../src/components/layout/Show.tsx"],"sourcesContent":["import {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n inject,\r\n ref\r\n} from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport {\r\n Flex,\r\n PageHeader,\r\n theme,\r\n Watermark\r\n} from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\nimport { useWindowScroll } from \"@vueuse/core\";\r\n\r\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore, useNavTabStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nconst getProps = () => {\r\n return {\r\n close: {\r\n type: Boolean,\r\n default: false\r\n }\r\n };\r\n};\r\nconst show = defineComponent({\r\n name: \"DShowLayout\",\r\n props: getProps(),\r\n setup(props, { slots, expose }) {\r\n const { useToken } = theme;\r\n const watermarkContent = ref(\r\n inject(\"watermarkContent\", \"\")\r\n );\r\n const { token }: { token: ComputedRef<GlobalToken> } =\r\n useToken();\r\n\r\n const { layout, modeConfig, refresh } =\r\n storeToRefs(useAppStore());\r\n const { deleteTabs } = useNavTabStore();\r\n\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n const { y } = useWindowScroll();\r\n\r\n const pageHeaderStyle = computed(\r\n () => css`\r\n position: sticky;\r\n top: ${layout.value.headerHeight}px;\r\n z-index: 10;\r\n padding: 0;\r\n transition: all 0.3s;\r\n background-color: ${token.value.colorBgLayout};\r\n\r\n ${y.value > 0\r\n ? \"box-shadow:0 10px 10px rgba(0, 0, 0, 0.15);\"\r\n : \"\"}\r\n .ant-page-header-back {\r\n height: 100%;\r\n margin-right: 0;\r\n\r\n .ant-page-header-back-button {\r\n height: 100%;\r\n padding: 0 6px !important;\r\n display: flex !important;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n }\r\n\r\n .ant-page-header-heading-title {\r\n font-size: 14px;\r\n }\r\n `\r\n );\r\n const contentStyle = computed(\r\n () => css`\r\n padding: 10px 10px\r\n ${slots.bottomFooter ? \"50px\" : \"0\"};\r\n background: ${token.value.colorBgLayout};\r\n `\r\n );\r\n const footerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n height: 50px;\r\n left: ${layout.value.collapsed\r\n ? layout.value.collapsedWidth\r\n : layout.value.sideWidth}px;\r\n z-index: 10;\r\n padding: 10px;\r\n background: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : \"#fff\"};\r\n box-shadow: 6px 0 10px rgba(0, 0, 0, 0.15);\r\n transition: left 0.4s\r\n cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `\r\n );\r\n const pageTitle = () => (\r\n <div>{route.meta.title || \"无标题\"}</div>\r\n );\r\n const ghost = ref(false);\r\n\r\n const onBack = () => {\r\n if (props.close) {\r\n // 返回关闭标签\r\n deleteTabs(route.fullPath);\r\n router.go(-1);\r\n } else {\r\n // 不关闭标签\r\n router.go(-1);\r\n }\r\n };\r\n\r\n const onClosePage = () => {\r\n refresh.value = true;\r\n deleteTabs(route.fullPath);\r\n router.go(-1);\r\n };\r\n\r\n expose({\r\n close: onClosePage\r\n });\r\n\r\n return () => (\r\n <Watermark content={watermarkContent.value}>\r\n <Flex vertical={true}>\r\n <PageHeader\r\n ghost={ghost.value}\r\n class={pageHeaderStyle.value}\r\n onBack={() => onBack()}\r\n title={pageTitle()}\r\n >\r\n {{\r\n backIcon: () => (\r\n <div>\r\n <LeftOutlined\r\n style={{ fontSize: \"26px\" }}\r\n />\r\n </div>\r\n ),\r\n extra: () => slots.extra?.(),\r\n footer: () => slots.footer?.(),\r\n subTitle: () => slots.subTitle?.()\r\n }}\r\n </PageHeader>\r\n <div class={contentStyle.value}>\r\n {slots.default?.()}\r\n </div>\r\n {slots.bottomFooter ? (\r\n <div class={footerStyle.value}>\r\n {slots.bottomFooter?.()}\r\n </div>\r\n ) : null}\r\n </Flex>\r\n </Watermark>\r\n );\r\n }\r\n});\r\n\r\nexport default show;\r\n"],"names":["getProps","close","type","Boolean","default","show","name","props","setup","slots","expose","useToken","theme","watermarkContent","ref","inject","token","layout","modeConfig","refresh","storeToRefs","useAppStore","deleteTabs","useNavTabStore","route","useRoute","router","useRouter","y","useWindowScroll","pageHeaderStyle","computed","css","value","headerHeight","colorBgLayout","contentStyle","bottomFooter","footerStyle","collapsed","collapsedWidth","sideWidth","mode","colorBgContainer","pageTitle","_createVNode","meta","title","ghost","onBack","fullPath","go","onClosePage","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle"],"mappings":"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"}
1
+ {"version":3,"file":"Show.mjs","sources":["../../../../src/components/layout/Show.tsx"],"sourcesContent":["import {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n inject,\r\n ref\r\n} from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport {\r\n Flex,\r\n PageHeader,\r\n theme,\r\n Watermark\r\n} from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\nimport { useWindowScroll } from \"@vueuse/core\";\r\n\r\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore, useNavTabStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nconst getProps = () => {\r\n return {\r\n close: {\r\n type: Boolean,\r\n default: false\r\n }\r\n };\r\n};\r\nconst show = defineComponent({\r\n name: \"DShowLayout\",\r\n props: getProps(),\r\n setup(props, { slots, expose }) {\r\n const { useToken } = theme;\r\n const watermarkContent = ref(\r\n inject(\"watermarkContent\", \"\")\r\n );\r\n const { token }: { token: ComputedRef<GlobalToken> } =\r\n useToken();\r\n\r\n const { layout, modeConfig, refresh } =\r\n storeToRefs(useAppStore());\r\n const { deleteTabs } = useNavTabStore();\r\n\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n const { y } = useWindowScroll();\r\n\r\n const pageHeaderStyle = computed(\r\n () => css`\r\n position: sticky;\r\n top: ${layout.value.headerHeight}px;\r\n z-index: 10;\r\n padding: 0;\r\n transition: all 0.3s;\r\n background-color: ${token.value.colorBgLayout};\r\n\r\n ${y.value > 0\r\n ? \"box-shadow:0 10px 10px rgba(0, 0, 0, 0.15);\"\r\n : \"\"}\r\n .ant-page-header-back {\r\n height: 100%;\r\n margin-right: 0;\r\n\r\n .ant-page-header-back-button {\r\n height: 100%;\r\n padding: 0 6px !important;\r\n display: flex !important;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n }\r\n\r\n .ant-page-header-heading-title {\r\n font-size: 14px;\r\n }\r\n `\r\n );\r\n const contentStyle = computed(\r\n () => css`\r\n padding: 10px 10px\r\n ${slots.bottomFooter ? \"50px\" : \"0\"};\r\n background: ${token.value.colorBgLayout};\r\n `\r\n );\r\n const footerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n height: 50px;\r\n left: ${layout.value.collapsed\r\n ? layout.value.collapsedWidth\r\n : layout.value.sideWidth}px;\r\n z-index: 10;\r\n padding: 10px;\r\n background: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : \"#fff\"};\r\n box-shadow: 6px 0 10px rgba(0, 0, 0, 0.15);\r\n transition: left 0.4s\r\n cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `\r\n );\r\n const pageTitle = () => (\r\n <div>{route.meta.title || \"无标题\"}</div>\r\n );\r\n const ghost = ref(false);\r\n\r\n const onBack = () => {\r\n if (props.close) {\r\n // 返回关闭标签\r\n deleteTabs(route.fullPath);\r\n router.go(-1);\r\n } else {\r\n // 不关闭标签\r\n router.go(-1);\r\n }\r\n };\r\n\r\n const onClosePage = () => {\r\n refresh.value = true;\r\n deleteTabs(route.fullPath);\r\n router.go(-1);\r\n };\r\n\r\n expose({\r\n close: onClosePage\r\n });\r\n\r\n return () => (\r\n <Watermark content={watermarkContent.value}>\r\n <Flex vertical={true}>\r\n <PageHeader\r\n ghost={ghost.value}\r\n class={pageHeaderStyle.value}\r\n onBack={() => onBack()}\r\n title={pageTitle()}\r\n >\r\n {{\r\n backIcon: () => (\r\n <div>\r\n <LeftOutlined\r\n style={{ fontSize: \"26px\" }}\r\n />\r\n </div>\r\n ),\r\n extra: () => slots.extra?.(),\r\n footer: () => slots.footer?.(),\r\n subTitle: () => slots.subTitle?.()\r\n }}\r\n </PageHeader>\r\n <div class={contentStyle.value}>\r\n {slots.default?.()}\r\n </div>\r\n {slots.bottomFooter ? (\r\n <div class={footerStyle.value}>\r\n {slots.bottomFooter?.()}\r\n </div>\r\n ) : null}\r\n </Flex>\r\n </Watermark>\r\n );\r\n }\r\n});\r\n\r\nexport default show;\r\n"],"names":["getProps","close","type","Boolean","default","show","defineComponent","name","props","setup","slots","expose","useToken","theme","watermarkContent","ref","inject","token","layout","modeConfig","refresh","storeToRefs","useAppStore","deleteTabs","useNavTabStore","route","useRoute","router","useRouter","y","useWindowScroll","pageHeaderStyle","computed","css","value","headerHeight","colorBgLayout","contentStyle","bottomFooter","footerStyle","collapsed","collapsedWidth","sideWidth","mode","colorBgContainer","pageTitle","_createVNode","meta","title","ghost","onBack","fullPath","go","onClosePage","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../src/components/layout/components/index.ts"],"sourcesContent":["import Menu from \"./menu/Menu\";\r\nimport type { App } from \"vue\";\r\n\r\nimport HeaderLayout from \"./layout/HeaderLayout.vue\";\r\nimport AppTheme from \"./layout/ThemeApp.vue\";\r\n\r\nMenu.install = function (app: App) {\r\n app.component(Menu.name!, Menu);\r\n return app;\r\n};\r\n\r\nHeaderLayout.install = function (app: App) {\r\n app.component(\"DHeaderLayout\", HeaderLayout);\r\n return app;\r\n};\r\n\r\nAppTheme.install = function (app: App) {\r\n app.component(\"DAppTheme\", AppTheme);\r\n return app;\r\n};\r\n\r\nexport { AppTheme, HeaderLayout, Menu };\r\n"],"names":["HeaderLayout","AppTheme"],"mappings":";;;;;;;AAMA,IAAK,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACjC,EAAI,GAAA,CAAA,SAAA,CAAU,IAAK,CAAA,IAAA,EAAO,IAAI,CAAA;AAC9B,EAAO,OAAA,GAAA;AACT,CAAA;AAEAA,SAAa,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACzC,EAAI,GAAA,CAAA,SAAA,CAAU,iBAAiBA,SAAY,CAAA;AAC3C,EAAO,OAAA,GAAA;AACT,CAAA;AAEAC,WAAS,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACrC,EAAI,GAAA,CAAA,SAAA,CAAU,aAAaA,WAAQ,CAAA;AACnC,EAAO,OAAA,GAAA;AACT,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../src/components/layout/components/index.ts"],"sourcesContent":["import Menu from \"./menu/Menu\";\r\nimport type { App } from \"vue\";\r\n\r\nimport HeaderLayout from \"./layout/HeaderLayout.vue\";\r\nimport AppTheme from \"./layout/ThemeApp.vue\";\r\n\r\nMenu.install = function (app: App) {\r\n app.component(Menu.name!, Menu);\r\n return app;\r\n};\r\n\r\nHeaderLayout.install = function (app: App) {\r\n app.component(\"DHeaderLayout\", HeaderLayout);\r\n return app;\r\n};\r\n\r\nAppTheme.install = function (app: App) {\r\n app.component(\"DAppTheme\", AppTheme);\r\n return app;\r\n};\r\n\r\nexport { AppTheme, HeaderLayout, Menu };\r\n"],"names":["HeaderLayout","AppTheme"],"mappings":";;;;;;;AAMA,IAAA,CAAK,OAAA,GAAU,SAAU,GAAA,EAAU;AACjC,EAAA,GAAA,CAAI,SAAA,CAAU,IAAA,CAAK,IAAA,EAAO,IAAI,CAAA;AAC9B,EAAA,OAAO,GAAA;AACT,CAAA;AAEAA,SAAA,CAAa,OAAA,GAAU,SAAU,GAAA,EAAU;AACzC,EAAA,GAAA,CAAI,SAAA,CAAU,iBAAiBA,SAAY,CAAA;AAC3C,EAAA,OAAO,GAAA;AACT,CAAA;AAEAC,WAAA,CAAS,OAAA,GAAU,SAAU,GAAA,EAAU;AACrC,EAAA,GAAA,CAAI,SAAA,CAAU,aAAaA,WAAQ,CAAA;AACnC,EAAA,OAAO,GAAA;AACT,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
- import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createBlock, createVNode, renderSlot } from 'vue';
1
+ import { defineComponent, ref, computed, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createBlock, createVNode, renderSlot } from 'vue';
2
2
  import { theme } from 'ant-design-vue';
3
- import { storeToRefs } from 'pinia';
3
+ import { getActivePinia, storeToRefs } from 'pinia';
4
4
  import { MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons-vue';
5
5
  import { useAppStore } from '@ditari/store';
6
6
  import { css } from '@emotion/css';
@@ -11,7 +11,29 @@ import _sfc_main$1 from '../../../tab/Tab.vue2.mjs';
11
11
  var _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  __name: "HeaderLayout",
13
13
  setup(__props) {
14
- const { layout, modeConfig, headerTokenStyle } = storeToRefs(useAppStore());
14
+ const pinia = getActivePinia();
15
+ const appStore = pinia ? useAppStore() : null;
16
+ const defaultLayout = {
17
+ sideWidth: 200,
18
+ headerHeight: 44,
19
+ collapsedWidth: 80,
20
+ collapsed: false
21
+ };
22
+ const defaultModeConfig = {
23
+ mode: "light",
24
+ list: [
25
+ { value: "light", label: "\u4EAE\u8272" },
26
+ { value: "dark", label: "\u6DF1\u8272" },
27
+ { value: "os", label: "\u8DDF\u968F\u7CFB\u7EDF" }
28
+ ]
29
+ };
30
+ const defaultHeaderTokenStyle = {
31
+ bgColor: "#1677ff",
32
+ txtColor: "#fff"
33
+ };
34
+ const layout = appStore ? storeToRefs(appStore).layout : ref(defaultLayout);
35
+ const modeConfig = appStore ? storeToRefs(appStore).modeConfig : ref(defaultModeConfig);
36
+ const headerTokenStyle = appStore ? storeToRefs(appStore).headerTokenStyle : ref(defaultHeaderTokenStyle);
15
37
  const {
16
38
  headerStyle,
17
39
  headerTabStyle,
@@ -72,7 +94,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
72
94
  return openBlock(), createElementBlock(
73
95
  "div",
74
96
  {
75
- class: normalizeClass(unref(headerStyle))
97
+ class: normalizeClass([unref(headerStyle), "app-header-layout"])
76
98
  },
77
99
  [
78
100
  createElementVNode(
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderLayout.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/HeaderLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, type ComputedRef } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport {\r\n MenuFoldOutlined,\r\n MenuUnfoldOutlined\r\n} from \"@ant-design/icons-vue\";\r\nimport { useAppStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nimport Tab from \"../../../tab/Tab.vue\";\r\n\r\nconst { layout, modeConfig, headerTokenStyle } =\r\n storeToRefs(useAppStore());\r\nconst {\r\n headerStyle,\r\n headerTabStyle,\r\n collapsedStyle,\r\n rightStyle\r\n} = useStyle();\r\n\r\nfunction useStyle(): {\r\n headerStyle: ComputedRef<string>;\r\n headerTabStyle: ComputedRef<string>;\r\n collapsedStyle: ComputedRef<string>;\r\n rightStyle: ComputedRef<string>;\r\n} {\r\n const { useToken } = theme;\r\n const { token }: { token: ComputedRef<GlobalToken> } =\r\n useToken();\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const headerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n z-index: 1;\r\n background-color: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : headerTokenStyle.value.bgColor};\r\n left: ${left.value};\r\n height: ${layout.value.headerHeight}px;\r\n transition: left 0.4s cubic-bezier(0.22, 1.2, 0.36, 1);\r\n display: flex;\r\n align-items: flex-end;\r\n `\r\n );\r\n\r\n const headerTabStyle = computed(\r\n () => css`\r\n flex: 1;\r\n overflow: hidden;\r\n padding-right: 10px;\r\n `\r\n );\r\n\r\n const collapsedStyle = computed(\r\n () => css`\r\n padding: 0 10px;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: ${modeConfig.value.mode === \"light\"\r\n ? headerTokenStyle.value.txtColor\r\n : \"inherit\"};\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n height: 100%;\r\n `\r\n );\r\n\r\n return {\r\n headerStyle,\r\n headerTabStyle,\r\n collapsedStyle,\r\n rightStyle\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <div :class=\"headerStyle\">\r\n <div\r\n :class=\"collapsedStyle\"\r\n @click=\"layout.collapsed = !layout.collapsed\"\r\n >\r\n <menu-unfold-outlined\r\n v-if=\"layout.collapsed\"\r\n class=\"trigger\"\r\n />\r\n <menu-fold-outlined v-else />\r\n </div>\r\n <div :class=\"headerTabStyle\">\r\n <Tab />\r\n </div>\r\n <div :class=\"rightStyle\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["headerStyle","headerTabStyle","collapsedStyle","rightStyle"],"mappings":";;;;;;;;;;;;;AAeA,IAAA,MAAM,EAAE,MAAQ,EAAA,UAAA,EAAY,kBAC1B,GAAA,WAAA,CAAY,aAAa,CAAA;AAC3B,IAAM,MAAA;AAAA,MACJ,WAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,QACE,QAAS,EAAA;AAEb,IAAA,SAAS,QAKP,GAAA;AACA,MAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AACrB,MAAM,MAAA,EAAE,KAAM,EAAA,GACZ,QAAS,EAAA;AAEX,MAAA,MAAM,IAAO,GAAA,QAAA;AAAA,QACX,MACE,CAAG,EAAA,MAAA,CAAO,KAAM,CAAA,SAAA,GAAY,OAAO,KAAM,CAAA,cAAA,GAAiB,MAAO,CAAA,KAAA,CAAM,SAAS,CAAA,EAAA;AAAA,OACpF;AAEA,MAAA,MAAMA,YAAc,GAAA,QAAA;AAAA,QAClB,MAAM,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKgB,EAAA,UAAA,CAAW,MAAM,IAAS,KAAA,OAAA,GAC1C,MAAM,KAAM,CAAA,gBAAA,GACZ,gBAAiB,CAAA,KAAA,CAAM,OAAO,CAAA;AAAA,YAAA,EAC1B,KAAK,KAAK,CAAA;AAAA,cACR,EAAA,MAAA,CAAO,MAAM,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAKvC;AAEA,MAAA,MAAMC,eAAiB,GAAA,QAAA;AAAA,QACrB,MAAM,GAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAKR;AAEA,MAAA,MAAMC,eAAiB,GAAA,QAAA;AAAA,QACrB,MAAM,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAOK,WAAW,KAAM,CAAA,IAAA,KAAS,UAC/B,gBAAiB,CAAA,KAAA,CAAM,WACvB,SAAS,CAAA;AAAA,IAAA;AAAA,OAEjB;AAEA,MAAA,MAAMC,WAAa,GAAA,QAAA;AAAA,QACjB,MAAM,GAAA;AAAA;AAAA,IAAA;AAAA,OAGR;AAEA,MAAO,OAAA;AAAA,QACL,WAAAH,EAAAA,YAAAA;AAAA,QACA,cAAAC,EAAAA,eAAAA;AAAA,QACA,cAAAC,EAAAA,eAAAA;AAAA,QACA,UAAAC,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"HeaderLayout.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/HeaderLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, type ComputedRef, ref } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { getActivePinia, storeToRefs } from \"pinia\";\r\n\r\nimport {\r\n MenuFoldOutlined,\r\n MenuUnfoldOutlined\r\n} from \"@ant-design/icons-vue\";\r\nimport { useAppStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nimport Tab from \"../../../tab/Tab.vue\";\r\n\r\n// 检查 Pinia 是否可用\r\nconst pinia = getActivePinia();\r\nconst appStore = pinia ? useAppStore() : null;\r\n\r\n// 提供默认值当 Pinia 不可用时\r\nconst defaultLayout = {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n};\r\n\r\nconst defaultModeConfig = {\r\n mode: \"light\",\r\n list: [\r\n { value: \"light\", label: \"亮色\" },\r\n { value: \"dark\", label: \"深色\" },\r\n { value: \"os\", label: \"跟随系统\" }\r\n ]\r\n};\r\n\r\nconst defaultHeaderTokenStyle = {\r\n bgColor: \"#1677ff\",\r\n txtColor: \"#fff\"\r\n};\r\n\r\nconst layout = appStore ? storeToRefs(appStore).layout : ref(defaultLayout);\r\nconst modeConfig = appStore ? storeToRefs(appStore).modeConfig : ref(defaultModeConfig);\r\nconst headerTokenStyle = appStore ? storeToRefs(appStore).headerTokenStyle : ref(defaultHeaderTokenStyle);\r\n\r\nconst {\r\n headerStyle,\r\n headerTabStyle,\r\n collapsedStyle,\r\n rightStyle\r\n} = useStyle();\r\n\r\nfunction useStyle(): {\r\n headerStyle: ComputedRef<string>;\r\n headerTabStyle: ComputedRef<string>;\r\n collapsedStyle: ComputedRef<string>;\r\n rightStyle: ComputedRef<string>;\r\n} {\r\n const { useToken } = theme;\r\n const { token }: { token: ComputedRef<GlobalToken> } =\r\n useToken();\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const headerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n z-index: 1;\r\n background-color: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : headerTokenStyle.value.bgColor};\r\n left: ${left.value};\r\n height: ${layout.value.headerHeight}px;\r\n transition: left 0.4s cubic-bezier(0.22, 1.2, 0.36, 1);\r\n display: flex;\r\n align-items: flex-end;\r\n `\r\n );\r\n\r\n const headerTabStyle = computed(\r\n () => css`\r\n flex: 1;\r\n overflow: hidden;\r\n padding-right: 10px;\r\n `\r\n );\r\n\r\n const collapsedStyle = computed(\r\n () => css`\r\n padding: 0 10px;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: ${modeConfig.value.mode === \"light\"\r\n ? headerTokenStyle.value.txtColor\r\n : \"inherit\"};\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n height: 100%;\r\n `\r\n );\r\n\r\n return {\r\n headerStyle,\r\n headerTabStyle,\r\n collapsedStyle,\r\n rightStyle\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <div :class=\"[headerStyle, 'app-header-layout']\">\r\n <div\r\n :class=\"collapsedStyle\"\r\n @click=\"layout.collapsed = !layout.collapsed\"\r\n >\r\n <menu-unfold-outlined\r\n v-if=\"layout.collapsed\"\r\n class=\"trigger\"\r\n />\r\n <menu-fold-outlined v-else />\r\n </div>\r\n <div :class=\"headerTabStyle\">\r\n <Tab />\r\n </div>\r\n <div :class=\"rightStyle\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["headerStyle","headerTabStyle","collapsedStyle","rightStyle","_createElementBlock","_unref","_createElementVNode","_createBlock","_createVNode","Tab","_renderSlot"],"mappings":"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"}
@@ -1,11 +1,20 @@
1
- import { defineComponent, resolveComponent, createBlock, openBlock, withCtx, createVNode, Transition, KeepAlive, unref, resolveDynamicComponent } from 'vue';
1
+ import { defineComponent, ref, resolveComponent, createBlock, openBlock, withCtx, createVNode, Transition, KeepAlive, resolveDynamicComponent, unref } from 'vue';
2
+ import { getActivePinia } from 'pinia';
3
+ import { useRoute } from 'vue-router';
2
4
  import { useKeepAliveStore } from '@ditari/store';
3
5
 
4
6
  "use strict";
5
7
  var _sfc_main = /* @__PURE__ */ defineComponent({
6
8
  __name: "RouterContent",
7
9
  setup(__props) {
8
- const { get: keepAliveNames } = useKeepAliveStore();
10
+ const pinia = getActivePinia();
11
+ const keepAliveStore = pinia ? useKeepAliveStore() : null;
12
+ const keepAliveNames = ref([]);
13
+ if (keepAliveStore) {
14
+ const { get } = keepAliveStore;
15
+ keepAliveNames.value = get;
16
+ }
17
+ const route = useRoute();
9
18
  return (_ctx, _cache) => {
10
19
  const _component_router_view = resolveComponent("router-view");
11
20
  return openBlock(), createBlock(_component_router_view, null, {
@@ -19,9 +28,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
19
28
  },
20
29
  {
21
30
  default: withCtx(() => [
22
- (openBlock(), createBlock(KeepAlive, { include: unref(keepAliveNames) }, [
31
+ (openBlock(), createBlock(KeepAlive, { include: keepAliveNames.value }, [
23
32
  (openBlock(), createBlock(resolveDynamicComponent(Component), {
24
- key: _ctx.$route.path
33
+ key: unref(route).path
25
34
  }))
26
35
  ], 1032, ["include"]))
27
36
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"RouterContent.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/RouterContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { useKeepAliveStore } from \"@ditari/store\";\r\n\r\nconst { get: keepAliveNames } = useKeepAliveStore();\r\n</script>\r\n\r\n<template>\r\n <router-view v-slot=\"{ Component }\">\r\n <transition name=\"main\" mode=\"out-in\" appear>\r\n <keep-alive :include=\"keepAliveNames\">\r\n <component :is=\"Component\" :key=\"$route.path\" />\r\n </keep-alive>\r\n </transition>\r\n </router-view>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":[],"mappings":";;;;;;;AAGA,IAAA,MAAM,EAAE,GAAA,EAAK,cAAe,EAAA,GAAI,iBAAkB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"RouterContent.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/RouterContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { getActivePinia } from \"pinia\";\r\nimport { ref } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { useKeepAliveStore } from \"@ditari/store\";\r\n\r\n// 检查 Pinia 是否可用\r\nconst pinia = getActivePinia();\r\nconst keepAliveStore = pinia ? useKeepAliveStore() : null;\r\n\r\n// 提供默认值当 Pinia 不可用时\r\nconst keepAliveNames = ref<string[]>([]);\r\n\r\n// 如果 Pinia 可用,使用 store 的值\r\nif (keepAliveStore) {\r\n const { get } = keepAliveStore;\r\n keepAliveNames.value = get;\r\n}\r\n\r\n// 获取路由实例\r\nconst route = useRoute();\r\n</script>\r\n\r\n<template>\r\n <router-view v-slot=\"{ Component }\">\r\n <transition name=\"main\" mode=\"out-in\" appear>\r\n <keep-alive :include=\"keepAliveNames\">\r\n <component :is=\"Component\" :key=\"route.path\" />\r\n </keep-alive>\r\n </transition>\r\n </router-view>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_createBlock","_withCtx","_createVNode","_Transition","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;AAOA,IAAA,MAAM,QAAQ,cAAA,EAAe;AAC7B,IAAA,MAAM,cAAA,GAAiB,KAAA,GAAQ,iBAAA,EAAkB,GAAI,IAAA;AAGrD,IAAA,MAAM,cAAA,GAAiB,GAAA,CAAc,EAAE,CAAA;AAGvC,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,MAAM,EAAE,KAAI,GAAI,cAAA;AAChB,MAAA,cAAA,CAAe,KAAA,GAAQ,GAAA;AAAA,IACzB;AAGA,IAAA,MAAM,QAAQ,QAAA,EAAS;;;0BAIrBA,WAAA,CAMc,sBAAA,EAAA,IAAA,EAAA;AAAA,QALZ,OAAA,EAAAC,OAAA,CAAA,CAIa,EALQ,WAAS,KAAA;AAAA,UAC9BC,WAAA;AAAA,YAIaC,UAAA;AAAA,YAAA;AAAA,cAJD,IAAA,EAAK,MAAA;AAAA,cAAO,IAAA,EAAK,QAAA;AAAA,cAAS,MAAA,EAAA;AAAA;;+BACpC,MAEa;AAAA,8BAFbH,WAAA,CAEaI,SAAA,EAAA,EAFA,OAAA,EAAS,cAAA,CAAA,OAAc,EAAA;AAAA,mBAClCC,SAAA,EAAA,EAAAL,WAAA,CAA+CM,uBAAA,CAA/B,SAAS,CAAA,EAAA;AAAA,oBAAG,GAAA,EAAKC,KAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeApp.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/ThemeApp.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\n\r\nconst props = defineProps({\n themeJson: { type: Object, required: false, default: () => ({}) }\n});\r\n\r\nconst { appTheme } = useTheme();\r\n\r\nfunction useTheme(): { appTheme: Ref<unknown> } {\r\n const { modeConfig, isCompact } =\r\n storeToRefs(useAppStore());\r\n const appTheme = ref<Record<string, unknown>>({});\r\n const { useToken } = theme;\r\n const { token } = useToken();\r\n\r\n watch(\r\n () => modeConfig.value.mode,\r\n () => {\r\n handleTheme();\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => isCompact.value,\r\n () => {\r\n handleTheme();\r\n }\r\n );\r\n\r\n function handleTheme() {\r\n const isDarkMode =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\")\r\n .matches;\r\n switch (modeConfig.value.mode) {\r\n case \"light\":\r\n if (isCompact.value) {\r\n appTheme.value.algorithm = theme.compactAlgorithm;\r\n appTheme.value.token = {};\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"dark\":\r\n if (isCompact.value) {\r\n appTheme.value.token = props.themeJson;\r\n } else {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"os\":\r\n if (isCompact.value && isDarkMode) {\r\n appTheme.value.token = props.themeJson;\r\n }\r\n break;\r\n }\r\n console.log(token);\r\n }\r\n\r\n return {\r\n appTheme\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-config-provider :theme=\"appTheme\">\r\n <slot></slot>\r\n </a-config-provider>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["appTheme"],"mappings":";;;;;;;;;;;;AAOA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAM,MAAA,EAAE,QAAS,EAAA,GAAI,QAAS,EAAA;AAE9B,IAAA,SAAS,QAAuC,GAAA;AAC9C,MAAA,MAAM,EAAE,UAAY,EAAA,SAAA,EAClB,GAAA,WAAA,CAAY,aAAa,CAAA;AAC3B,MAAMA,MAAAA,SAAAA,GAAW,GAA6B,CAAA,EAAE,CAAA;AAChD,MAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AACrB,MAAM,MAAA,EAAE,KAAM,EAAA,GAAI,QAAS,EAAA;AAE3B,MAAA,KAAA;AAAA,QACE,MAAM,WAAW,KAAM,CAAA,IAAA;AAAA,QACvB,MAAM;AACJ,UAAY,WAAA,EAAA;AAAA,SACd;AAAA,QACA,EAAE,WAAW,IAAK;AAAA,OACpB;AAEA,MAAA,KAAA;AAAA,QACE,MAAM,SAAU,CAAA,KAAA;AAAA,QAChB,MAAM;AACJ,UAAY,WAAA,EAAA;AAAA;AACd,OACF;AAEA,MAAA,SAAS,WAAc,GAAA;AACrB,QAAA,MAAM,aACJ,MAAO,CAAA,UAAA,IACP,MAAO,CAAA,UAAA,CAAW,8BAA8B,CAC7C,CAAA,OAAA;AACL,QAAQ,QAAA,UAAA,CAAW,MAAM,IAAM;AAAA,UAC7B,KAAK,OAAA;AACH,YAAA,IAAI,UAAU,KAAO,EAAA;AACnB,cAAAA,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAY,KAAM,CAAA,gBAAA;AACjC,cAAAA,SAAAA,CAAS,KAAM,CAAA,KAAA,GAAQ,EAAC;AAAA,aACnB,MAAA;AACL,cAAAA,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAY,KAAM,CAAA,gBAAA;AACjC,cAAAA,SAAAA,CAAS,KAAM,CAAA,KAAA,GAAQ,EAAC;AAAA;AAE1B,YAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,IAAI,UAAU,KAAO,EAAA;AACnB,cAAAA,SAAAA,CAAS,KAAM,CAAA,KAAA,GAAQ,KAAM,CAAA,SAAA;AAAA,aACxB,MAAA;AACL,cAAAA,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAY,KAAM,CAAA,aAAA;AACjC,cAAAA,SAAAA,CAAS,KAAM,CAAA,KAAA,GAAQ,EAAC;AAAA;AAE1B,YAAA;AAAA,UACF,KAAK,IAAA;AACH,YAAI,IAAA,SAAA,CAAU,SAAS,UAAY,EAAA;AACjC,cAAAA,SAAAA,CAAS,KAAM,CAAA,KAAA,GAAQ,KAAM,CAAA,SAAA;AAAA;AAE/B,YAAA;AAAA;AAEJ,QAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA;AAGnB,MAAO,OAAA;AAAA,QACL,QAAAA,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ThemeApp.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/ThemeApp.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\n\r\nconst props = defineProps({\n themeJson: { type: Object, required: false, default: () => ({}) }\n});\r\n\r\nconst { appTheme } = useTheme();\r\n\r\nfunction useTheme(): { appTheme: Ref<unknown> } {\r\n const { modeConfig, isCompact } =\r\n storeToRefs(useAppStore());\r\n const appTheme = ref<Record<string, unknown>>({});\r\n const { useToken } = theme;\r\n const { token } = useToken();\r\n\r\n watch(\r\n () => modeConfig.value.mode,\r\n () => {\r\n handleTheme();\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => isCompact.value,\r\n () => {\r\n handleTheme();\r\n }\r\n );\r\n\r\n function handleTheme() {\r\n const isDarkMode =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\")\r\n .matches;\r\n switch (modeConfig.value.mode) {\r\n case \"light\":\r\n if (isCompact.value) {\r\n appTheme.value.algorithm = theme.compactAlgorithm;\r\n appTheme.value.token = {};\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"dark\":\r\n if (isCompact.value) {\r\n appTheme.value.token = props.themeJson;\r\n } else {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"os\":\r\n if (isCompact.value && isDarkMode) {\r\n appTheme.value.token = props.themeJson;\r\n }\r\n break;\r\n }\r\n console.log(token);\r\n }\r\n\r\n return {\r\n appTheme\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-config-provider :theme=\"appTheme\">\r\n <slot></slot>\r\n </a-config-provider>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["appTheme","_createBlock","_unref","_renderSlot"],"mappings":";;;;;;;;;;;;AAOA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAId,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,QAAA,EAAS;AAE9B,IAAA,SAAS,QAAA,GAAuC;AAC9C,MAAA,MAAM,EAAE,UAAA,EAAY,SAAA,EAAU,GAC5B,WAAA,CAAY,aAAa,CAAA;AAC3B,MAAA,MAAMA,SAAAA,GAAW,GAAA,CAA6B,EAAE,CAAA;AAChD,MAAA,MAAM,EAAE,UAAS,GAAI,KAAA;AACrB,MAAA,MAAM,EAAE,KAAA,EAAM,GAAI,QAAA,EAAS;AAE3B,MAAA,KAAA;AAAA,QACE,MAAM,WAAW,KAAA,CAAM,IAAA;AAAA,QACvB,MAAM;AACJ,UAAA,WAAA,EAAY;AAAA,QACd,CAAA;AAAA,QACA,EAAE,WAAW,IAAA;AAAK,OACpB;AAEA,MAAA,KAAA;AAAA,QACE,MAAM,SAAA,CAAU,KAAA;AAAA,QAChB,MAAM;AACJ,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,OACF;AAEA,MAAA,SAAS,WAAA,GAAc;AACrB,QAAA,MAAM,aACJ,MAAA,CAAO,UAAA,IACP,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAC7C,OAAA;AACL,QAAA,QAAQ,UAAA,CAAW,MAAM,IAAA;AAAM,UAC7B,KAAK,OAAA;AACH,YAAA,IAAI,UAAU,KAAA,EAAO;AACnB,cAAAA,SAAAA,CAAS,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,gBAAA;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,EAAC;AAAA,YAC1B,CAAA,MAAO;AACL,cAAAA,SAAAA,CAAS,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,gBAAA;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,EAAC;AAAA,YAC1B;AACA,YAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,IAAI,UAAU,KAAA,EAAO;AACnB,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,SAAA;AAAA,YAC/B,CAAA,MAAO;AACL,cAAAA,SAAAA,CAAS,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,aAAA;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,EAAC;AAAA,YAC1B;AACA,YAAA;AAAA,UACF,KAAK,IAAA;AACH,YAAA,IAAI,SAAA,CAAU,SAAS,UAAA,EAAY;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,SAAA;AAAA,YAC/B;AACA,YAAA;AAAA;AAEJ,QAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA,MACnB;AAEA,MAAA,OAAO;AAAA,QACL,QAAA,EAAAA;AAAA,OACF;AAAA,IACF;;;0BAIEC,WAAA,CAEoB,4BAAA,EAAA,EAFA,KAAA,EAAOC,KAAA,CAAA,QAAA,CAAA,EAAQ,EAAA;AAAA,yBACjC,MAAa;AAAA,UAAbC,UAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
- import { defineComponent, computed, watch, createVNode, resolveComponent } from 'vue';
1
+ import { defineComponent, ref, computed, watch, createVNode, resolveComponent } from 'vue';
2
2
  import { useRoute, useRouter } from 'vue-router';
3
- import { storeToRefs } from 'pinia';
4
- import { useAppStore, useNoStore, useMenuStore } from '@ditari/store';
3
+ import { getActivePinia, storeToRefs } from 'pinia';
4
+ import { useAppStore, useMenuStore, useNoStore } from '@ditari/store';
5
5
  import { css } from '@emotion/css';
6
6
  import useMenuCore from '../../../../utils/useMenuCore.mjs';
7
7
 
@@ -32,23 +32,47 @@ var Menu = /* @__PURE__ */ defineComponent({
32
32
  setup(_, {
33
33
  emit
34
34
  }) {
35
- const {
36
- layout,
37
- modeConfig
38
- } = storeToRefs(useAppStore());
35
+ const pinia = getActivePinia();
36
+ const appStore = pinia ? useAppStore() : null;
37
+ const menuStore = pinia ? useMenuStore() : null;
38
+ const noStore = pinia ? useNoStore() : null;
39
+ const defaultLayout = {
40
+ sideWidth: 200,
41
+ headerHeight: 44,
42
+ collapsedWidth: 80,
43
+ collapsed: false
44
+ };
45
+ const defaultModeConfig = {
46
+ mode: "light",
47
+ list: [{
48
+ value: "light",
49
+ label: "\u4EAE\u8272"
50
+ }, {
51
+ value: "dark",
52
+ label: "\u6DF1\u8272"
53
+ }, {
54
+ value: "os",
55
+ label: "\u8DDF\u968F\u7CFB\u7EDF"
56
+ }]
57
+ };
58
+ const defaultMenuList = ref([]);
59
+ const defaultOpenKeys = ref([]);
60
+ const defaultSelectedKeys = ref([]);
61
+ const defaultData = ref([]);
62
+ const layout = appStore ? storeToRefs(appStore).layout : ref(defaultLayout);
63
+ const modeConfig = appStore ? storeToRefs(appStore).modeConfig : ref(defaultModeConfig);
64
+ const menuList = noStore ? storeToRefs(noStore).menuList : defaultMenuList;
65
+ const openKeys = menuStore ? storeToRefs(menuStore).openKeys : defaultOpenKeys;
66
+ const selectedKeys = menuStore ? storeToRefs(menuStore).selectedKeys : defaultSelectedKeys;
67
+ const data = menuStore ? storeToRefs(menuStore).data : defaultData;
39
68
  const {
40
69
  findMatchedMenuById,
41
70
  findMenuItemByUrl
42
71
  } = useMenuCore();
43
- const {
44
- menuList
45
- } = storeToRefs(useNoStore());
46
72
  const {
47
73
  menuWrapperStyle
48
74
  } = useStyle();
49
75
  const {
50
- openKeys,
51
- selectedKeys,
52
76
  onClick
53
77
  } = useMenu();
54
78
  function useStyle() {
@@ -74,39 +98,47 @@ var Menu = /* @__PURE__ */ defineComponent({
74
98
  };
75
99
  }
76
100
  function useMenu() {
77
- const {
78
- openKeys: openKeys2,
79
- selectedKeys: selectedKeys2,
80
- data
81
- } = storeToRefs(useMenuStore());
82
101
  const route = useRoute();
83
102
  const router = useRouter();
84
- watch(() => route.fullPath, (path) => __async(this, null, function* () {
85
- const flag = selectedKeys2.value.some((item) => item === path);
103
+ const findClosestParentMenu = (url, menus) => {
104
+ const cleanUrl = url.split("?")[0].split("#")[0];
105
+ const pathSegments = cleanUrl.split("/").filter(Boolean);
106
+ for (let i = pathSegments.length; i > 0; i--) {
107
+ const testPath = "/" + pathSegments.slice(0, i).join("/");
108
+ const foundItem = findMenuItemByUrl(testPath, menus);
109
+ if (foundItem) return foundItem;
110
+ }
111
+ return null;
112
+ };
113
+ watch(() => route.fullPath, (path) => __async(null, null, function* () {
114
+ const flag = selectedKeys.value.some((item) => item === path);
86
115
  if (!flag) {
87
- const menuItem = findMenuItemByUrl(path, data.value);
116
+ let menuItem = findMenuItemByUrl(path, data.value);
117
+ if (!menuItem) {
118
+ menuItem = findClosestParentMenu(path, data.value);
119
+ }
88
120
  if (!menuItem) {
89
- openKeys2.value = [];
90
- selectedKeys2.value = [path];
121
+ openKeys.value = [];
122
+ selectedKeys.value = [path];
91
123
  } else {
92
124
  const rs = getFullParentChain(menuItem.id, data.value);
93
125
  if (!layout.value.collapsed) {
94
- openKeys2.value = rs;
126
+ openKeys.value = rs;
95
127
  }
96
- selectedKeys2.value = [menuItem.key];
128
+ selectedKeys.value = [menuItem.key];
97
129
  }
98
130
  }
99
131
  }));
100
132
  watch(() => layout.value.collapsed, (val) => {
101
- const id = selectedKeys2.value[0];
133
+ const id = selectedKeys.value[0];
102
134
  const rs = findMatchedMenuById(id, data.value);
103
135
  if (val) {
104
- openKeys2.value = [];
136
+ openKeys.value = [];
105
137
  } else {
106
138
  if (rs == null ? void 0 : rs.parentItem) {
107
- openKeys2.value = [rs.parentItem.key];
139
+ openKeys.value = [rs.parentItem.key];
108
140
  } else {
109
- openKeys2.value = [rs.matchItem.key];
141
+ openKeys.value = [rs.matchItem.key];
110
142
  }
111
143
  }
112
144
  });
@@ -138,8 +170,8 @@ var Menu = /* @__PURE__ */ defineComponent({
138
170
  if (((_a = item.originItemValue) == null ? void 0 : _a.isFrame) && ((_b = item.originItemValue) == null ? void 0 : _b.isFrame) === "0") {
139
171
  emit("onMenuClick", item);
140
172
  } else {
141
- openKeys2.value = keyPath;
142
- selectedKeys2.value = [(_c = rs.matchItem) == null ? void 0 : _c.key];
173
+ openKeys.value = keyPath;
174
+ selectedKeys.value = [(_c = rs.matchItem) == null ? void 0 : _c.key];
143
175
  if (((_d = rs.matchItem) == null ? void 0 : _d.url) !== route.path) {
144
176
  router.push((_e = rs.matchItem) == null ? void 0 : _e.url).then((r) => {
145
177
  if (r) {
@@ -150,8 +182,8 @@ var Menu = /* @__PURE__ */ defineComponent({
150
182
  }
151
183
  };
152
184
  return {
153
- openKeys: openKeys2,
154
- selectedKeys: selectedKeys2,
185
+ openKeys,
186
+ selectedKeys,
155
187
  data,
156
188
  onClick: onClick2
157
189
  };