@ditari/bsui 5.1.2 → 5.1.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.
Files changed (43) hide show
  1. package/dist/cjs/components/card/Card.cjs +1 -1
  2. package/dist/cjs/components/card/Card.cjs.map +1 -1
  3. package/dist/cjs/components/layout/AppContext.cjs.map +1 -1
  4. package/dist/cjs/components/layout/Layout.vue2.cjs +24 -6
  5. package/dist/cjs/components/layout/Layout.vue2.cjs.map +1 -1
  6. package/dist/cjs/components/layout/List.cjs +26 -23
  7. package/dist/cjs/components/layout/List.cjs.map +1 -1
  8. package/dist/cjs/components/layout/Show.cjs +80 -36
  9. package/dist/cjs/components/layout/Show.cjs.map +1 -1
  10. package/dist/cjs/components/layout/components/layout/RouterContent.vue2.cjs +57 -21
  11. package/dist/cjs/components/layout/components/layout/RouterContent.vue2.cjs.map +1 -1
  12. package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs +42 -27
  13. package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs.map +1 -1
  14. package/dist/cjs/components/tab/Tab.vue2.cjs +4 -10
  15. package/dist/cjs/components/tab/Tab.vue2.cjs.map +1 -1
  16. package/dist/esm/components/card/Card.mjs +1 -1
  17. package/dist/esm/components/card/Card.mjs.map +1 -1
  18. package/dist/esm/components/layout/AppContext.mjs.map +1 -1
  19. package/dist/esm/components/layout/Layout.vue2.mjs +26 -8
  20. package/dist/esm/components/layout/Layout.vue2.mjs.map +1 -1
  21. package/dist/esm/components/layout/List.mjs +26 -23
  22. package/dist/esm/components/layout/List.mjs.map +1 -1
  23. package/dist/esm/components/layout/Show.mjs +82 -38
  24. package/dist/esm/components/layout/Show.mjs.map +1 -1
  25. package/dist/esm/components/layout/components/layout/RouterContent.vue2.mjs +58 -22
  26. package/dist/esm/components/layout/components/layout/RouterContent.vue2.mjs.map +1 -1
  27. package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs +43 -28
  28. package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs.map +1 -1
  29. package/dist/esm/components/tab/Tab.vue2.mjs +4 -10
  30. package/dist/esm/components/tab/Tab.vue2.mjs.map +1 -1
  31. package/dist/types/components/card/Card.d.ts.map +1 -1
  32. package/dist/types/components/layout/AppContext.d.ts +3 -1
  33. package/dist/types/components/layout/AppContext.d.ts.map +1 -1
  34. package/dist/types/components/layout/Layout.vue.d.ts +16 -29
  35. package/dist/types/components/layout/Layout.vue.d.ts.map +1 -1
  36. package/dist/types/components/layout/Show.d.ts +18 -0
  37. package/dist/types/components/layout/Show.d.ts.map +1 -1
  38. package/dist/types/components/layout/components/layout/HeaderLayout.vue.d.ts +2 -2
  39. package/dist/types/components/layout/components/layout/RouterContent.vue.d.ts +4 -2
  40. package/dist/types/components/layout/components/layout/RouterContent.vue.d.ts.map +1 -1
  41. package/dist/types/components/tab/Tab.vue.d.ts +2 -2
  42. package/dist/types/components/tab/Tab.vue.d.ts.map +1 -1
  43. package/package.json +3 -3
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var vue = require('vue');
4
+ var style = require('./style.cjs');
4
5
  var css = require('@emotion/css');
5
6
  var useDesign = require('../../hooks/useDesign.cjs');
6
7
  var withInstall = require('../../utils/withInstall.cjs');
7
- var style = require('./style.cjs');
8
8
 
9
9
  "use strict";
10
10
  const _Card = /* @__PURE__ */ vue.defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"Card.cjs","sources":["../../../../src/components/card/Card.tsx"],"sourcesContent":["// components/card/index.tsx\r\nimport { defineComponent } from \"vue\";\r\n\r\nimport { cx } from \"@emotion/css\"; // 引入 cx\r\n\r\nimport { useDesign } from \"../../hooks/useDesign\"; // 引入我们刚才写的 hook\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nimport { useStyle } from \"./style\";\r\n\r\nconst _Card = defineComponent({\r\n name: \"DCard\",\r\n props: {\r\n title: String\r\n },\r\n setup(props, { slots }) {\r\n // 初始化 Design Hook,传入组件名 'card'\r\n const { getPrefixCls } = useDesign(\"card\");\r\n\r\n // 初始化 Emotion 样式\r\n const styles = useStyle();\r\n\r\n return () => {\r\n // 生成语义化类名\r\n const rootCls = getPrefixCls();\r\n const headerCls = getPrefixCls(\"head\");\r\n const iconCls = getPrefixCls(\"icon\");\r\n const titleCls = getPrefixCls(\"title\");\r\n const actionCls = getPrefixCls(\"action\");\r\n const bodyCls = getPrefixCls(\"body\");\r\n\r\n return (\r\n <div class={cx(rootCls, styles.container)}>\r\n {/* Header 区域 */}\r\n <div class={cx(headerCls, styles.header)}>\r\n {slots.icon && <div class={cx(iconCls, styles.icon)}>{slots.icon()}</div>}\r\n <div class={cx(titleCls, styles.header_title)}>{props.title}</div>\r\n </div>\r\n {/*action*/}\r\n {slots.action && <div class={cx(actionCls, styles.action)}>{slots.action()}</div>}\r\n\r\n {/* Body 区域 */}\r\n <div class={cx(bodyCls, styles.body)}>{slots.default?.()}</div>\r\n </div>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const Card = withInstall(_Card);\r\n"],"names":["_Card","defineComponent","name","props","title","String","setup","slots","getPrefixCls","useDesign","styles","useStyle","rootCls","headerCls","iconCls","titleCls","actionCls","bodyCls","_createVNode","cx","container","header","icon","header_title","action","body","default","Card","withInstall"],"mappings":";;;;;;;;;AAUA,MAAMA,wBAAQC,mBAAAA,CAAgB;AAAA,EAC5BC,IAAAA,EAAM,OAAA;AAAA,EACNC,KAAAA,EAAO;AAAA,IACLC,KAAAA,EAAOC;AAAAA,GACT;AAAA,EACAC,MAAMH,KAAAA,EAAO;AAAA,IAAEI;AAAAA,GAAM,EAAG;AAEtB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAa,GAAIC,oBAAU,MAAM,CAAA;AAGzC,IAAA,MAAMC,SAASC,cAAAA,EAAS;AAExB,IAAA,OAAO,MAAM;AAtBjB,MAAA,IAAA,EAAA;AAwBM,MAAA,MAAMC,UAAUJ,YAAAA,EAAa;AAC7B,MAAA,MAAMK,SAAAA,GAAYL,aAAa,MAAM,CAAA;AACrC,MAAA,MAAMM,OAAAA,GAAUN,aAAa,MAAM,CAAA;AACnC,MAAA,MAAMO,QAAAA,GAAWP,aAAa,OAAO,CAAA;AACrC,MAAA,MAAMQ,SAAAA,GAAYR,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMS,OAAAA,GAAUT,aAAa,MAAM,CAAA;AAEnC,MAAA,OAAAU,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,MAAAA,CAAGP,OAAAA,EAASF,MAAAA,CAAOU,SAAS;AAAA,OAAC,EAAA,CAAAF,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAE3BC,MAAAA,CAAGN,SAAAA,EAAWH,MAAAA,CAAOW,MAAM;AAAA,OAAC,EAAA,CACrCd,KAAAA,CAAMe,IAAAA,IAAIJ,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAgBC,MAAAA,CAAGL,OAAAA,EAASJ,MAAAA,CAAOY,IAAI;AAAA,OAAC,EAAA,CAAGf,KAAAA,CAAMe,IAAAA,EAAM,CAAA,CAAA,EAAOJ,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAC7DC,MAAAA,CAAGJ,QAAAA,EAAUL,MAAAA,CAAOa,YAAY;AAAA,OAAC,EAAA,CAAGpB,KAAAA,CAAMC,KAAK,CAAA,CAAA,CAAA,CAAA,EAG5DG,KAAAA,CAAMiB,MAAAA,IAAMN,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAgBC,MAAAA,CAAGH,SAAAA,EAAWN,MAAAA,CAAOc,MAAM;AAAA,OAAC,EAAA,CAAGjB,KAAAA,CAAMiB,MAAAA,EAAQ,CAAA,CAAA,EAAON,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAGrEC,MAAAA,CAAGF,OAAAA,EAASP,MAAAA,CAAOe,IAAI;AAAA,SAAC,CAAA,CAAGlB,EAAAA,GAAAA,KAAAA,CAAMmB,YAANnB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAiB,CAAA,CAAA,CAAA,CAAA;AAAA,IAG9D,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMoB,IAAAA,GAAOC,wBAAY5B,KAAK;;;;"}
1
+ {"version":3,"file":"Card.cjs","sources":["../../../../src/components/card/Card.tsx"],"sourcesContent":["// components/card/index.tsx\r\nimport { defineComponent } from \"vue\";\r\n\r\nimport { useStyle } from \"./style\";\r\nimport { cx } from \"@emotion/css\"; // 引入 cx\r\n\r\nimport { useDesign } from \"../../hooks/useDesign\"; // 引入我们刚才写的 hook\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nconst _Card = defineComponent({\r\n name: \"DCard\",\r\n props: {\r\n title: String\r\n },\r\n setup(props, { slots }) {\r\n // 初始化 Design Hook,传入组件名 'card'\r\n const { getPrefixCls } = useDesign(\"card\");\r\n\r\n // 初始化 Emotion 样式\r\n const styles = useStyle();\r\n\r\n return () => {\r\n // 生成语义化类名\r\n const rootCls = getPrefixCls();\r\n const headerCls = getPrefixCls(\"head\");\r\n const iconCls = getPrefixCls(\"icon\");\r\n const titleCls = getPrefixCls(\"title\");\r\n const actionCls = getPrefixCls(\"action\");\r\n const bodyCls = getPrefixCls(\"body\");\r\n\r\n return (\r\n <div class={cx(rootCls, styles.container)}>\r\n {/* Header 区域 */}\r\n <div class={cx(headerCls, styles.header)}>\r\n {slots.icon && (\r\n <div class={cx(iconCls, styles.icon)}>\r\n {slots.icon()}\r\n </div>\r\n )}\r\n <div class={cx(titleCls, styles.header_title)}>\r\n {props.title}\r\n </div>\r\n </div>\r\n {/*action*/}\r\n {slots.action && (\r\n <div class={cx(actionCls, styles.action)}>\r\n {slots.action()}\r\n </div>\r\n )}\r\n\r\n {/* Body 区域 */}\r\n <div class={cx(bodyCls, styles.body)}>\r\n {slots.default?.()}\r\n </div>\r\n </div>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const Card = withInstall(_Card);\r\n"],"names":["_Card","defineComponent","name","props","title","String","setup","slots","getPrefixCls","useDesign","styles","useStyle","rootCls","headerCls","iconCls","titleCls","actionCls","bodyCls","_createVNode","cx","container","header","icon","header_title","action","body","default","Card","withInstall"],"mappings":";;;;;;;;;AAUA,MAAMA,wBAAQC,mBAAAA,CAAgB;AAAA,EAC5BC,IAAAA,EAAM,OAAA;AAAA,EACNC,KAAAA,EAAO;AAAA,IACLC,KAAAA,EAAOC;AAAAA,GACT;AAAA,EACAC,MAAMH,KAAAA,EAAO;AAAA,IAAEI;AAAAA,GAAM,EAAG;AAEtB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAa,GAAIC,oBAAU,MAAM,CAAA;AAGzC,IAAA,MAAMC,SAASC,cAAAA,EAAS;AAExB,IAAA,OAAO,MAAM;AAtBjB,MAAA,IAAA,EAAA;AAwBM,MAAA,MAAMC,UAAUJ,YAAAA,EAAa;AAC7B,MAAA,MAAMK,SAAAA,GAAYL,aAAa,MAAM,CAAA;AACrC,MAAA,MAAMM,OAAAA,GAAUN,aAAa,MAAM,CAAA;AACnC,MAAA,MAAMO,QAAAA,GAAWP,aAAa,OAAO,CAAA;AACrC,MAAA,MAAMQ,SAAAA,GAAYR,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMS,OAAAA,GAAUT,aAAa,MAAM,CAAA;AAEnC,MAAA,OAAAU,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,MAAAA,CAAGP,OAAAA,EAASF,MAAAA,CAAOU,SAAS;AAAA,OAAC,EAAA,CAAAF,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAE3BC,MAAAA,CAAGN,SAAAA,EAAWH,MAAAA,CAAOW,MAAM;AAAA,OAAC,EAAA,CACrCd,KAAAA,CAAMe,IAAAA,IAAIJ,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACGC,MAAAA,CAAGL,OAAAA,EAASJ,MAAAA,CAAOY,IAAI;AAAA,OAAC,EAAA,CACjCf,KAAAA,CAAMe,IAAAA,EAAM,CAAA,CAAA,EAEhBJ,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACWC,MAAAA,CAAGJ,QAAAA,EAAUL,MAAAA,CAAOa,YAAY;AAAA,OAAC,EAAA,CAC1CpB,KAAAA,CAAMC,KAAK,CAAA,CAAA,CAAA,CAAA,EAIfG,KAAAA,CAAMiB,MAAAA,IAAMN,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACCC,MAAAA,CAAGH,SAAAA,EAAWN,MAAAA,CAAOc,MAAM;AAAA,OAAC,EAAA,CACrCjB,KAAAA,CAAMiB,MAAAA,EAAQ,CAAA,CAAA,EAElBN,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAGWC,MAAAA,CAAGF,OAAAA,EAASP,MAAAA,CAAOe,IAAI;AAAA,SAAC,CAAA,CACjClB,EAAAA,GAAAA,KAAAA,CAAMmB,YAANnB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAiB,CAAA,CAAA,CAAA,CAAA;AAAA,IAI1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMoB,IAAAA,GAAOC,wBAAY5B,KAAK;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppContext.cjs","sources":["../../../../src/components/layout/AppContext.ts"],"sourcesContent":["import { ComputedRef, VNode } from \"vue\";\r\n\r\nexport const AppContextKey = Symbol(\"d-bsui-context\");\r\nexport interface AppContext {\r\n // 水印\r\n watermarkContent?: ComputedRef<{ content: string }>;\r\n renderMenuIcon?: (item: {\r\n icon: string;\r\n }) => VNode | VNode[];\r\n // 缓存方式 Name:组件名称 Path:路径缓\r\n keepAliveMode: \"Name\" | \"Path\";\r\n // 多标签重载\r\n onReloadPage?: () => void;\r\n // 多标签是否开启右键菜单\r\n enableTabContextMenu?: boolean;\r\n}\r\n"],"names":[],"mappings":";;;AAEO,MAAM,aAAA,GAAgB,OAAO,gBAAgB;;;;"}
1
+ {"version":3,"file":"AppContext.cjs","sources":["../../../../src/components/layout/AppContext.ts"],"sourcesContent":["import { ComputedRef, VNode } from \"vue\";\r\n\r\nexport const AppContextKey = Symbol(\"d-bsui-context\");\r\nexport interface AppContext {\r\n // 水印\r\n watermarkContent?: ComputedRef<{ content: string }>;\r\n renderMenuIcon?: (item: {\r\n icon: string;\r\n }) => VNode | VNode[];\r\n // 缓存方式 Name:组件名称 Path:路径缓\r\n keepAliveMode: \"Name\" | \"Path\";\r\n // 多标签重载\r\n onReloadPage?: (item: { [key: string]: unknown }) => void;\r\n // 多标签是否开启右键菜单\r\n enableTabContextMenu?: boolean;\r\n}\r\n"],"names":[],"mappings":";;;AAEO,MAAM,aAAA,GAAgB,OAAO,gBAAgB;;;;"}
@@ -12,9 +12,7 @@ var store = require('@ditari/store');
12
12
  var css = require('@emotion/css');
13
13
  require('./components/layout/HeaderLayout.vue.cjs');
14
14
  require('./components/layout/RouterContent.vue.cjs');
15
- require('./components/layout/RouterContentName.vue.cjs');
16
15
  var HeaderLayout_vue_vue_type_script_setup_true_lang = require('./components/layout/HeaderLayout.vue2.cjs');
17
- var RouterContentName_vue_vue_type_script_setup_true_lang = require('./components/layout/RouterContentName.vue2.cjs');
18
16
  var RouterContent_vue_vue_type_script_setup_true_lang = require('./components/layout/RouterContent.vue2.cjs');
19
17
 
20
18
  "use strict";
@@ -28,7 +26,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
28
26
  isSettings: { type: Boolean, required: false, default: false },
29
27
  renderMenuIcon: { type: Function, required: false, default: void 0 },
30
28
  keepAliveMode: { type: String, required: false, default: "Name" },
31
- onReloadPage: { type: Function, required: false },
32
29
  enableTabContextMenu: { type: Boolean, required: false, default: true }
33
30
  },
34
31
  emits: ["onMenuClick"],
@@ -37,12 +34,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
37
34
  const emits = __emit;
38
35
  const { layout, modeConfig, sideTokenStyle } = pinia.storeToRefs(store.useAppStore());
39
36
  const { onMenuClick } = useMenu();
37
+ const { routerContentRef, onReloadPage } = useReloadPage();
40
38
  vue.provide(AppContext.AppContextKey, {
41
39
  watermarkContent: vue.computed(() => props.watermark || ""),
42
40
  renderMenuIcon: props.renderMenuIcon,
43
41
  keepAliveMode: props.keepAliveMode,
44
- onReloadPage: props.onReloadPage,
45
- enableTabContextMenu: props.enableTabContextMenu
42
+ enableTabContextMenu: props.enableTabContextMenu,
43
+ onReloadPage
46
44
  });
47
45
  const {
48
46
  layoutStyle,
@@ -51,6 +49,17 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
51
49
  rightContentStyle
52
50
  } = useStyle();
53
51
  useKeepAlive();
52
+ function useReloadPage() {
53
+ const routerContentRef2 = vue.ref();
54
+ function onReloadPage2(item) {
55
+ var _a;
56
+ (_a = routerContentRef2.value) == null ? void 0 : _a.reloadPage(item.fullPath);
57
+ }
58
+ return {
59
+ routerContentRef: routerContentRef2,
60
+ onReloadPage: onReloadPage2
61
+ };
62
+ }
54
63
  function useKeepAlive() {
55
64
  const route = vueRouter.useRoute();
56
65
  const { save } = store.useKeepAliveStore();
@@ -166,7 +175,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
166
175
  class: vue.normalizeClass(vue.unref(rightContentStyle))
167
176
  }, {
168
177
  default: vue.withCtx(() => [
169
- __props.keepAliveMode === "Name" ? (vue.openBlock(), vue.createBlock(RouterContentName_vue_vue_type_script_setup_true_lang.default, { key: 0 })) : (vue.openBlock(), vue.createBlock(RouterContent_vue_vue_type_script_setup_true_lang.default, { key: 1 }))
178
+ vue.createVNode(
179
+ RouterContent_vue_vue_type_script_setup_true_lang.default,
180
+ {
181
+ ref_key: "routerContentRef",
182
+ ref: routerContentRef
183
+ },
184
+ null,
185
+ 512
186
+ /* NEED_PATCH */
187
+ )
170
188
  ]),
171
189
  _: 1
172
190
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.vue2.cjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide, VNode, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { AppContext, AppContextKey } from \"./AppContext\";\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\nimport RouterContentName from \"./components/layout/RouterContentName.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: false },\n renderMenuIcon: { type: Function, required: false, default: undefined },\n keepAliveMode: { type: String, required: false, default: \"Name\" },\n onReloadPage: { type: Function, required: false },\n enableTabContextMenu: { type: Boolean, required: false, default: true }\n});\r\nconst emits = defineEmits([\"onMenuClick\"]);\r\n\r\nconst { layout, modeConfig, sideTokenStyle } =\r\n storeToRefs(useAppStore());\r\n\r\nconst { onMenuClick } = useMenu();\r\n\r\nprovide<AppContext>(AppContextKey, {\r\n watermarkContent: computed(() => props.watermark || \"\"),\r\n renderMenuIcon: props.renderMenuIcon,\r\n keepAliveMode: props.keepAliveMode,\r\n onReloadPage: props.onReloadPage,\r\n enableTabContextMenu: props.enableTabContextMenu\r\n});\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 const route = useRoute();\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n watch(\r\n () => route.path,\r\n () => {\r\n // 如果是组件名方式缓存,那么存入Name\r\n if (props.keepAliveMode === \"Name\") {\r\n save(route);\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\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 :width=\"layout.sideWidth\"\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 <RouterContentName\r\n v-if=\"keepAliveMode === 'Name'\"\r\n />\r\n <RouterContent v-else />\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":["storeToRefs","useAppStore","provide","AppContextKey","computed","useRoute","useKeepAliveStore","watch","layoutStyle","css","siderStyle","rightStyle","rightContentStyle","onMenuClick","_createVNode","_unref","_createElementVNode","_renderSlot","DMenu","HeaderLayout","_createBlock","RouterContentName","RouterContent","SettingDrawer"],"mappings":"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"}
1
+ {"version":3,"file":"Layout.vue2.cjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide, ref, VNode, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { AppContext, AppContextKey } from \"./AppContext\";\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: false },\n renderMenuIcon: { type: Function, required: false, default: undefined },\n keepAliveMode: { type: String, required: false, default: \"Name\" },\n enableTabContextMenu: { type: Boolean, required: false, default: true }\n});\r\nconst emits = defineEmits([\"onMenuClick\"]);\r\n\r\nconst { layout, modeConfig, sideTokenStyle } =\r\n storeToRefs(useAppStore());\r\n\r\nconst { onMenuClick } = useMenu();\r\nconst { routerContentRef, onReloadPage } = useReloadPage();\r\n\r\nprovide<AppContext>(AppContextKey, {\r\n watermarkContent: computed(() => props.watermark || \"\"),\r\n renderMenuIcon: props.renderMenuIcon,\r\n keepAliveMode: props.keepAliveMode,\r\n enableTabContextMenu: props.enableTabContextMenu,\r\n onReloadPage\r\n});\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 useReloadPage() {\r\n const routerContentRef = ref();\r\n\r\n function onReloadPage(item: { [key: string]: unknown }) {\r\n routerContentRef.value?.reloadPage(item.fullPath);\r\n }\r\n return {\r\n routerContentRef,\r\n onReloadPage\r\n };\r\n}\r\n\r\nfunction useKeepAlive() {\r\n const route = useRoute();\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n watch(\r\n () => route.path,\r\n () => {\r\n // 如果是组件名方式缓存,那么存入Name\r\n if (props.keepAliveMode === \"Name\") {\r\n save(route);\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\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 :width=\"layout.sideWidth\"\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 ref=\"routerContentRef\" />\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":["storeToRefs","useAppStore","provide","AppContextKey","computed","routerContentRef","ref","onReloadPage","useRoute","useKeepAliveStore","watch","layoutStyle","css","siderStyle","rightStyle","rightContentStyle","onMenuClick","_createVNode","_unref","_createElementVNode","_renderSlot","DMenu","HeaderLayout","RouterContent","_createBlock","SettingDrawer"],"mappings":"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"}
@@ -127,7 +127,7 @@ const list = /* @__PURE__ */ vue.defineComponent({
127
127
  }
128
128
  function useReload() {
129
129
  let stopHandleWatch;
130
- if (!route.name) {
130
+ if (!route.name && !route.meta.keepAlive) {
131
131
  stopHandleWatch = _useWatch();
132
132
  vue.onUnmounted(() => {
133
133
  stopHandleWatch == null ? void 0 : stopHandleWatch();
@@ -233,29 +233,32 @@ const list = /* @__PURE__ */ vue.defineComponent({
233
233
  },
234
234
  "content": watermarkContent.value
235
235
  }, {
236
- default: () => [vue.createVNode(antDesignVue.Flex, {
237
- "class": [listStyle.value, "app-list"],
238
- "gap": 10
239
- }, {
240
- default: () => [slots.left ? vue.createVNode(antDesignVue.Card, {
241
- "class": [cardStyle, leftCardStyle],
242
- "bordered": false,
243
- "bodyStyle": {
244
- height: "100%",
245
- padding: "10px"
246
- }
247
- }, {
248
- default: () => {
249
- var _a;
250
- return [(_a = slots.left) == null ? void 0 : _a.call(slots)];
251
- }
252
- }) : null, vue.createVNode(antDesignVue.Flex, {
253
- "vertical": true,
254
- "flex": 1
236
+ default: () => {
237
+ var _a;
238
+ return [vue.createVNode(antDesignVue.Flex, {
239
+ "class": [listStyle.value, "app-list"],
240
+ "gap": 10
255
241
  }, {
256
- default: () => [formLayout()(), tableLayout()()]
257
- })]
258
- })]
242
+ default: () => [slots.left ? vue.createVNode(antDesignVue.Card, {
243
+ "class": [cardStyle, leftCardStyle],
244
+ "bordered": false,
245
+ "bodyStyle": {
246
+ height: "100%",
247
+ padding: "10px"
248
+ }
249
+ }, {
250
+ default: () => {
251
+ var _a2;
252
+ return [(_a2 = slots.left) == null ? void 0 : _a2.call(slots)];
253
+ }
254
+ }) : null, vue.createVNode(antDesignVue.Flex, {
255
+ "vertical": true,
256
+ "flex": 1
257
+ }, {
258
+ default: () => [formLayout()(), tableLayout()()]
259
+ })]
260
+ }), (_a = slots.extra) == null ? void 0 : _a.call(slots)];
261
+ }
259
262
  });
260
263
  }
261
264
  return () => useLayout();
@@ -1 +1 @@
1
- {"version":3,"file":"List.cjs","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 { AppContext, AppContextKey } from \"./AppContext\";\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 appContext = inject<AppContext | null>(\r\n AppContextKey,\r\n null\r\n );\r\n\r\n const watermarkContent = computed(\r\n () => appContext?.watermarkContent?.value.content\r\n );\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\r\n style={{ height: \"100%\" }}\r\n content={watermarkContent.value}\r\n >\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","appContext","inject","AppContextKey","watermarkContent","computed","value","content","route","useRoute","refresh","storeToRefs","useAppStore","tableRef","height","tableVisible","playTableHeight","useTableHeight","formRef","useForm","useReload","maskDivStyle","tableWrapperStyle","cardStyle","leftCardStyle","listStyle","onMounted","ref","$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.cjs","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 { AppContext, AppContextKey } from \"./AppContext\";\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 appContext = inject<AppContext | null>(\r\n AppContextKey,\r\n null\r\n );\r\n\r\n const watermarkContent = computed(\r\n () => appContext?.watermarkContent?.value.content\r\n );\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 if (!route.name && !route.meta.keepAlive) {\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\r\n style={{ height: \"100%\" }}\r\n content={watermarkContent.value}\r\n >\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 {slots.extra?.()}\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","appContext","inject","AppContextKey","watermarkContent","computed","value","content","route","useRoute","refresh","storeToRefs","useAppStore","tableRef","height","tableVisible","playTableHeight","useTableHeight","formRef","useForm","useReload","maskDivStyle","tableWrapperStyle","cardStyle","leftCardStyle","listStyle","onMounted","ref","$el","offsetHeight","nextTick","setTimeout","formHeight","useElementSize","watch","stopHandleWatch","meta","keepAlive","_useWatch","onUnmounted","onActivated","onDeactivated","val","useLayout","formLayout","_slot","form","_createVNode","Card","marginBottom","padding","default","tableLayout","Flex","Space","tools","table","Watermark","left","_a","extra"],"mappings":"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"}
@@ -11,6 +11,7 @@ var AppContext = require('./AppContext.cjs');
11
11
  var iconsVue = require('@ant-design/icons-vue');
12
12
  var store = require('@ditari/store');
13
13
  var css = require('@emotion/css');
14
+ var useDesign = require('../../hooks/useDesign.cjs');
14
15
 
15
16
  "use strict";
16
17
  const getProps = () => {
@@ -18,6 +19,14 @@ const getProps = () => {
18
19
  close: {
19
20
  type: Boolean,
20
21
  default: false
22
+ },
23
+ loading: {
24
+ type: Boolean,
25
+ default: false
26
+ },
27
+ loadingText: {
28
+ type: String,
29
+ default: "\u6B63\u5728\u8BF7\u6C42..."
21
30
  }
22
31
  };
23
32
  };
@@ -32,6 +41,10 @@ const show = /* @__PURE__ */ vue.defineComponent({
32
41
  useToken
33
42
  } = antDesignVue.theme;
34
43
  const appContext = vue.inject(AppContext.AppContextKey, null);
44
+ const {
45
+ getPrefixCls
46
+ } = useDesign.useDesign("show-layout");
47
+ const rootCls = getPrefixCls();
35
48
  const watermarkContent = vue.computed(() => {
36
49
  var _a;
37
50
  return (_a = appContext == null ? void 0 : appContext.watermarkContent) == null ? void 0 : _a.value.content;
@@ -39,6 +52,8 @@ const show = /* @__PURE__ */ vue.defineComponent({
39
52
  const {
40
53
  token
41
54
  } = useToken();
55
+ const loading = vue.computed(() => props.loading);
56
+ const loadingText = vue.computed(() => props.loadingText);
42
57
  const {
43
58
  layout,
44
59
  modeConfig,
@@ -114,45 +129,74 @@ const show = /* @__PURE__ */ vue.defineComponent({
114
129
  expose({
115
130
  close: onClosePage
116
131
  });
117
- return () => vue.createVNode(antDesignVue.Watermark, {
118
- "content": watermarkContent.value
119
- }, {
120
- default: () => [vue.createVNode(antDesignVue.Flex, {
121
- "vertical": true
132
+ function showContent() {
133
+ return vue.createVNode("div", {
134
+ "class": css.cx(rootCls),
135
+ "style": {
136
+ display: !loading.value ? "block" : "none"
137
+ }
138
+ }, [vue.createVNode(antDesignVue.Watermark, {
139
+ "content": watermarkContent.value
122
140
  }, {
123
- default: () => {
124
- var _a, _b;
125
- return [vue.createVNode(antDesignVue.PageHeader, {
126
- "ghost": ghost.value,
127
- "class": pageHeaderStyle.value,
128
- "onBack": () => onBack(),
129
- "title": pageTitle()
130
- }, {
131
- backIcon: () => vue.createVNode("div", null, [vue.createVNode(iconsVue.LeftOutlined, {
132
- "style": {
133
- fontSize: "26px"
141
+ default: () => [vue.createVNode(antDesignVue.Flex, {
142
+ "vertical": true
143
+ }, {
144
+ default: () => {
145
+ var _a, _b;
146
+ return [vue.createVNode(antDesignVue.PageHeader, {
147
+ "ghost": ghost.value,
148
+ "class": pageHeaderStyle.value,
149
+ "onBack": () => onBack(),
150
+ "title": pageTitle()
151
+ }, {
152
+ backIcon: () => vue.createVNode("div", null, [vue.createVNode(iconsVue.LeftOutlined, {
153
+ "style": {
154
+ fontSize: "26px"
155
+ }
156
+ }, null)]),
157
+ extra: () => {
158
+ var _a2;
159
+ return (_a2 = slots.extra) == null ? void 0 : _a2.call(slots);
160
+ },
161
+ footer: () => {
162
+ var _a2;
163
+ return (_a2 = slots.footer) == null ? void 0 : _a2.call(slots);
164
+ },
165
+ subTitle: () => {
166
+ var _a2;
167
+ return (_a2 = slots.subTitle) == null ? void 0 : _a2.call(slots);
134
168
  }
135
- }, null)]),
136
- extra: () => {
137
- var _a2;
138
- return (_a2 = slots.extra) == null ? void 0 : _a2.call(slots);
139
- },
140
- footer: () => {
141
- var _a2;
142
- return (_a2 = slots.footer) == null ? void 0 : _a2.call(slots);
143
- },
144
- subTitle: () => {
145
- var _a2;
146
- return (_a2 = slots.subTitle) == null ? void 0 : _a2.call(slots);
147
- }
148
- }), vue.createVNode("div", {
149
- "class": contentStyle.value
150
- }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), slots.bottomFooter ? vue.createVNode("div", {
151
- "class": footerStyle.value
152
- }, [(_b = slots.bottomFooter) == null ? void 0 : _b.call(slots)]) : null];
169
+ }), vue.createVNode("div", {
170
+ "class": contentStyle.value
171
+ }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), slots.bottomFooter ? vue.createVNode("div", {
172
+ "class": footerStyle.value
173
+ }, [(_b = slots.bottomFooter) == null ? void 0 : _b.call(slots)]) : null];
174
+ }
175
+ })]
176
+ })]);
177
+ }
178
+ function loadingContent() {
179
+ return vue.createVNode("div", {
180
+ "style": {
181
+ height: "100%",
182
+ display: loading.value ? "block" : "none"
153
183
  }
154
- })]
155
- });
184
+ }, [vue.createVNode("div", {
185
+ "style": {
186
+ height: "100%",
187
+ display: "flex",
188
+ justifyContent: "center",
189
+ alignItems: "center"
190
+ }
191
+ }, [slots.loading ? slots.loading() : vue.createVNode(antDesignVue.Spin, {
192
+ "tip": loadingText.value
193
+ }, null)])]);
194
+ }
195
+ return () => vue.createVNode("div", {
196
+ "style": {
197
+ height: "100%"
198
+ }
199
+ }, [showContent(), loadingContent()]);
156
200
  }
157
201
  });
158
202
 
@@ -1 +1 @@
1
- {"version":3,"file":"Show.cjs","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 { AppContext, AppContextKey } from \"./AppContext\";\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\r\n const appContext = inject<AppContext | null>(\r\n AppContextKey,\r\n null\r\n );\r\n\r\n const watermarkContent = computed(\r\n () => appContext?.watermarkContent?.value.content\r\n );\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","appContext","inject","AppContextKey","watermarkContent","computed","value","content","token","layout","modeConfig","refresh","storeToRefs","useAppStore","deleteTabs","useNavTabStore","route","useRoute","router","useRouter","y","useWindowScroll","pageHeaderStyle","css","headerHeight","colorBgLayout","contentStyle","bottomFooter","footerStyle","collapsed","collapsedWidth","sideWidth","mode","colorBgContainer","pageTitle","_createVNode","meta","title","ghost","ref","onBack","fullPath","go","onClosePage","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle"],"mappings":"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"}
1
+ {"version":3,"file":"Show.cjs","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 Spin,\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 { AppContext, AppContextKey } from \"./AppContext\";\r\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore, useNavTabStore } from \"@ditari/store\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nimport { useDesign } from \"../../hooks/useDesign\";\r\n\r\nconst getProps = () => {\r\n return {\r\n close: {\r\n type: Boolean,\r\n default: false\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n loadingText: {\r\n type: String,\r\n default: \"正在请求...\"\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\r\n const appContext = inject<AppContext | null>(\r\n AppContextKey,\r\n null\r\n );\r\n\r\n const { getPrefixCls } = useDesign(\"show-layout\");\r\n // 生成语义化类名\r\n const rootCls = getPrefixCls();\r\n\r\n const watermarkContent = computed(\r\n () => appContext?.watermarkContent?.value.content\r\n );\r\n\r\n const { token }: { token: ComputedRef<GlobalToken> } =\r\n useToken();\r\n\r\n const loading = computed(() => props.loading);\r\n const loadingText = computed(() => props.loadingText);\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 function showContent() {\r\n return (\r\n <div\r\n class={cx(rootCls)}\r\n style={{\r\n display: !loading.value ? \"block\" : \"none\"\r\n }}\r\n >\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\r\n <div class={contentStyle.value}>\r\n {slots.default?.()}\r\n </div>\r\n\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 </div>\r\n );\r\n }\r\n\r\n function loadingContent() {\r\n return (\r\n <div\r\n style={{\r\n height: \"100%\",\r\n display: loading.value ? \"block\" : \"none\"\r\n }}\r\n >\r\n <div\r\n style={{\r\n height: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n }}\r\n >\r\n {slots.loading ? (\r\n slots.loading()\r\n ) : (\r\n <Spin tip={loadingText.value}></Spin>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return () => (\r\n <div style={{ height: \"100%\" }}>\r\n {showContent()}\r\n {loadingContent()}\r\n </div>\r\n );\r\n }\r\n});\r\n\r\nexport default show;\r\n"],"names":["getProps","close","type","Boolean","default","loading","loadingText","String","show","defineComponent","name","props","setup","slots","expose","useToken","theme","appContext","inject","AppContextKey","getPrefixCls","useDesign","rootCls","watermarkContent","computed","value","content","token","layout","modeConfig","refresh","storeToRefs","useAppStore","deleteTabs","useNavTabStore","route","useRoute","router","useRouter","y","useWindowScroll","pageHeaderStyle","css","headerHeight","colorBgLayout","contentStyle","bottomFooter","footerStyle","collapsed","collapsedWidth","sideWidth","mode","colorBgContainer","pageTitle","_createVNode","meta","title","ghost","ref","onBack","fullPath","go","onClosePage","showContent","cx","display","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle","loadingContent","height","justifyContent","alignItems","Spin"],"mappings":"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"}