@ditari/bsui 5.1.0 → 5.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/date/RangePicker.vue2.cjs +3 -2
- package/dist/cjs/components/date/RangePicker.vue2.cjs.map +1 -1
- package/dist/cjs/components/index.cjs +2 -0
- package/dist/cjs/components/index.cjs.map +1 -1
- package/dist/cjs/components/layout/AppContext.cjs.map +1 -1
- package/dist/cjs/components/layout/Layout.vue2.cjs +14 -4
- package/dist/cjs/components/layout/Layout.vue2.cjs.map +1 -1
- package/dist/cjs/components/layout/List.cjs +33 -28
- package/dist/cjs/components/layout/List.cjs.map +1 -1
- package/dist/cjs/components/layout/components/layout/RouterContent.vue2.cjs +41 -11
- package/dist/cjs/components/layout/components/layout/RouterContent.vue2.cjs.map +1 -1
- package/dist/cjs/components/layout/components/layout/RouterContentName.vue.cjs +10 -0
- package/dist/cjs/components/layout/components/layout/RouterContentName.vue.cjs.map +1 -0
- package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs +52 -0
- package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs.map +1 -0
- package/dist/cjs/components/layout/components/menu/Menu.cjs +3 -2
- package/dist/cjs/components/layout/components/menu/Menu.cjs.map +1 -1
- package/dist/cjs/components/layout/index.cjs +2 -0
- package/dist/cjs/components/layout/index.cjs.map +1 -1
- package/dist/cjs/components/tab/Tab.vue2.cjs +137 -28
- package/dist/cjs/components/tab/Tab.vue2.cjs.map +1 -1
- package/dist/cjs/components/table-form/interface.cjs +1 -1
- package/dist/cjs/components/table-form/interface.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/components/date/RangePicker.vue2.mjs +4 -3
- package/dist/esm/components/date/RangePicker.vue2.mjs.map +1 -1
- package/dist/esm/components/index.mjs +1 -0
- package/dist/esm/components/index.mjs.map +1 -1
- package/dist/esm/components/layout/AppContext.mjs.map +1 -1
- package/dist/esm/components/layout/Layout.vue2.mjs +15 -5
- package/dist/esm/components/layout/Layout.vue2.mjs.map +1 -1
- package/dist/esm/components/layout/List.mjs +34 -29
- package/dist/esm/components/layout/List.mjs.map +1 -1
- package/dist/esm/components/layout/components/layout/RouterContent.vue2.mjs +43 -13
- package/dist/esm/components/layout/components/layout/RouterContent.vue2.mjs.map +1 -1
- package/dist/esm/components/layout/components/layout/RouterContentName.vue.mjs +6 -0
- package/dist/esm/components/layout/components/layout/RouterContentName.vue.mjs.map +1 -0
- package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs +48 -0
- package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs.map +1 -0
- package/dist/esm/components/layout/components/menu/Menu.mjs +3 -2
- package/dist/esm/components/layout/components/menu/Menu.mjs.map +1 -1
- package/dist/esm/components/layout/index.mjs +1 -0
- package/dist/esm/components/layout/index.mjs.map +1 -1
- package/dist/esm/components/tab/Tab.vue2.mjs +139 -30
- package/dist/esm/components/tab/Tab.vue2.mjs.map +1 -1
- package/dist/esm/components/table-form/interface.mjs +1 -1
- package/dist/esm/components/table-form/interface.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/components/date/RangePicker.vue.d.ts +3 -0
- package/dist/types/components/date/RangePicker.vue.d.ts.map +1 -1
- package/dist/types/components/layout/AppContext.d.ts +3 -0
- package/dist/types/components/layout/AppContext.d.ts.map +1 -1
- package/dist/types/components/layout/Layout.vue.d.ts +51 -3
- package/dist/types/components/layout/Layout.vue.d.ts.map +1 -1
- package/dist/types/components/layout/List.d.ts.map +1 -1
- package/dist/types/components/layout/components/layout/HeaderLayout.vue.d.ts +11 -0
- package/dist/types/components/layout/components/layout/HeaderLayout.vue.d.ts.map +1 -1
- package/dist/types/components/layout/components/layout/RouterContent.vue.d.ts +4 -14
- package/dist/types/components/layout/components/layout/RouterContent.vue.d.ts.map +1 -1
- package/dist/types/components/layout/components/layout/RouterContentName.vue.d.ts +19 -0
- package/dist/types/components/layout/components/layout/RouterContentName.vue.d.ts.map +1 -0
- package/dist/types/components/layout/components/menu/Menu.d.ts.map +1 -1
- package/dist/types/components/layout/index.d.ts +1 -0
- package/dist/types/components/layout/index.d.ts.map +1 -1
- package/dist/types/components/tab/Tab.vue.d.ts +11 -0
- package/dist/types/components/tab/Tab.vue.d.ts.map +1 -1
- package/dist/types/components/table-form/TableFormItem.d.ts +4 -4
- package/dist/types/components/table-form/interface.d.ts +2 -2
- package/dist/types/components/table-form/interface.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/_virtual/_commonjsHelpers.cjs +0 -47
- package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +0 -1
- package/dist/cjs/_virtual/dayjs.min.cjs +0 -12
- package/dist/cjs/_virtual/dayjs.min.cjs.map +0 -1
- package/dist/cjs/_virtual/dayjs.min2.cjs +0 -6
- package/dist/cjs/_virtual/dayjs.min2.cjs.map +0 -1
- package/dist/cjs/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.cjs +0 -20
- package/dist/cjs/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.cjs.map +0 -1
- package/dist/esm/_virtual/_commonjsHelpers.mjs +0 -41
- package/dist/esm/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/dist/esm/_virtual/dayjs.min.mjs +0 -8
- package/dist/esm/_virtual/dayjs.min.mjs.map +0 -1
- package/dist/esm/_virtual/dayjs.min2.mjs +0 -4
- package/dist/esm/_virtual/dayjs.min2.mjs.map +0 -1
- package/dist/esm/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.mjs +0 -18
- package/dist/esm/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.mjs.map +0 -1
|
@@ -64,6 +64,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
64
64
|
};
|
|
65
65
|
const props = __props;
|
|
66
66
|
const emits = __emit;
|
|
67
|
+
const attrs = vue.useAttrs();
|
|
67
68
|
const innerValue = vue.ref(null);
|
|
68
69
|
vue.watch(
|
|
69
70
|
() => props.value,
|
|
@@ -111,14 +112,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
111
112
|
};
|
|
112
113
|
return (_ctx, _cache) => {
|
|
113
114
|
const _component_a_range_picker = vue.resolveComponent("a-range-picker");
|
|
114
|
-
return vue.openBlock(), vue.createBlock(_component_a_range_picker, {
|
|
115
|
+
return vue.openBlock(), vue.createBlock(_component_a_range_picker, vue.mergeProps(vue.unref(attrs), {
|
|
115
116
|
style: { "width": "100%" },
|
|
116
117
|
value: innerValue.value,
|
|
117
118
|
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
|
|
118
119
|
placeholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"],
|
|
119
120
|
onChange: handleChange,
|
|
120
121
|
valueFormat: __props.format
|
|
121
|
-
}, null,
|
|
122
|
+
}), null, 16, ["value", "valueFormat"]);
|
|
122
123
|
};
|
|
123
124
|
}
|
|
124
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.vue2.cjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\n// 工具函数:规范化路径\r\nconst normalizePath = (\r\n field: string | string[]\r\n): string[] => {\r\n return Array.isArray(field) ? field : [field];\r\n};\r\n\r\n// 工具函数:获取嵌套值\r\nconst getNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[]\r\n): string | null | undefined => {\r\n const path = normalizePath(field);\r\n let current: unknown = obj;\r\n\r\n for (const key of path) {\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n key in current\r\n ) {\r\n current = (current as Record<string, unknown>)[key];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current as string | null | undefined;\r\n};\r\n\r\n// 工具函数:设置嵌套值\r\nconst setNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[],\r\n value: string | null\r\n): T => {\r\n const path = normalizePath(field);\r\n const newObj = { ...obj };\r\n let current: Record<string, unknown> = newObj;\r\n\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const key = path[i];\r\n if (\r\n !(key in current) ||\r\n typeof current[key] !== \"object\" ||\r\n current[key] === null\r\n ) {\r\n current[key] = {};\r\n } else {\r\n current[key] = { ...current[key] };\r\n }\r\n current = current[key] as Record<string, unknown>;\r\n }\r\n\r\n current[path[path.length - 1]] = value;\r\n return newObj as T;\r\n};\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>;\r\n startField?: string | string[];\r\n endField?: string | string[];\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: [String, Array], required: false, default: \"startTime\" },\n endField: { type: [String, Array], required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\n// 内部值,用于日期选择器\r\nconst innerValue = ref<any>(null); // 使用 any 代替 Dayjs\r\n\r\n// 监听外部 value 变化,同步内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n const start = getNestedValue(newVal, props.startField);\r\n const end = getNestedValue(newVal, props.endField);\r\n\r\n if (start && end) {\r\n innerValue.value = [start, end];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: [any, any]) => {\r\n let updatedValue = { ...props.value };\r\n\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n startTime ? startTime : null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n endTime ? endTime : null\r\n );\r\n // 更新 innerValue 为当前选择的日期范围数组\r\n innerValue.value = dates;\r\n } else {\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n null\r\n );\r\n // 清空 innerValue\r\n innerValue.value = null;\r\n }\r\n\r\n emits(\"update:value\", updatedValue);\r\n emits(\"change\", updatedValue);\r\n};\r\n</script>\r\n\r\n<template>\r\n <a-range-picker\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n :valueFormat=\"format\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["ref","watch","_createBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAA,MAAM,aAAA,GAAgB,CACpB,KAAA,KACa;AACb,MAAA,OAAO,MAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AAAA,IAC9C,CAAA;AAGA,IAAA,MAAM,cAAA,GAAiB,CACrB,GAAA,EACA,KAAA,KAC8B;AAC9B,MAAA,MAAM,IAAA,GAAO,cAAc,KAAK,CAAA;AAChC,MAAA,IAAI,OAAA,GAAmB,GAAA;AAEvB,MAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,QAAA,IACE,OAAA,IACA,OAAO,OAAA,KAAY,QAAA,IACnB,OAAO,OAAA,EACP;AACA,UAAA,OAAA,GAAW,QAAoC,GAAG,CAAA;AAAA,QACpD,CAAA,MAAO;AACL,UAAA,OAAO,KAAA,CAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAGA,IAAA,MAAM,cAAA,GAAiB,CACrB,GAAA,EACA,KAAA,EACA,KAAA,KACM;AACN,MAAA,MAAM,IAAA,GAAO,cAAc,KAAK,CAAA;AAChC,MAAA,MAAM,SAAS,cAAA,CAAA,EAAA,EAAK,GAAA,CAAA;AACpB,MAAA,IAAI,OAAA,GAAmC,MAAA;AAEvC,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AACxC,QAAA,MAAM,GAAA,GAAM,KAAK,CAAC,CAAA;AAClB,QAAA,IACE,EAAE,GAAA,IAAO,OAAA,CAAA,IACT,OAAO,OAAA,CAAQ,GAAG,CAAA,KAAM,QAAA,IACxB,OAAA,CAAQ,GAAG,CAAA,KAAM,IAAA,EACjB;AACA,UAAA,OAAA,CAAQ,GAAG,IAAI,EAAC;AAAA,QAClB,CAAA,MAAO;AACL,UAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,cAAA,CAAA,EAAA,EAAK,OAAA,CAAQ,GAAG,CAAA,CAAA;AAAA,QACjC;AACA,QAAA,OAAA,GAAU,QAAQ,GAAG,CAAA;AAAA,MACvB;AAEA,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAC,CAAA,GAAI,KAAA;AACjC,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAUA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,KAAA,GAAQ,MAAA;
|
|
1
|
+
{"version":3,"file":"RangePicker.vue2.cjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, useAttrs, watch } from \"vue\";\r\n\r\n// 工具函数:规范化路径\r\nconst normalizePath = (\r\n field: string | string[]\r\n): string[] => {\r\n return Array.isArray(field) ? field : [field];\r\n};\r\n\r\n// 工具函数:获取嵌套值\r\nconst getNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[]\r\n): string | null | undefined => {\r\n const path = normalizePath(field);\r\n let current: unknown = obj;\r\n\r\n for (const key of path) {\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n key in current\r\n ) {\r\n current = (current as Record<string, unknown>)[key];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current as string | null | undefined;\r\n};\r\n\r\n// 工具函数:设置嵌套值\r\nconst setNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[],\r\n value: string | null\r\n): T => {\r\n const path = normalizePath(field);\r\n const newObj = { ...obj };\r\n let current: Record<string, unknown> = newObj;\r\n\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const key = path[i];\r\n if (\r\n !(key in current) ||\r\n typeof current[key] !== \"object\" ||\r\n current[key] === null\r\n ) {\r\n current[key] = {};\r\n } else {\r\n current[key] = { ...current[key] };\r\n }\r\n current = current[key] as Record<string, unknown>;\r\n }\r\n\r\n current[path[path.length - 1]] = value;\r\n return newObj as T;\r\n};\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>;\r\n startField?: string | string[];\r\n endField?: string | string[];\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: [String, Array], required: false, default: \"startTime\" },\n endField: { type: [String, Array], required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\nconst attrs = useAttrs();\r\n\r\n// 内部值,用于日期选择器\r\nconst innerValue = ref<any>(null); // 使用 any 代替 Dayjs\r\n\r\n// 监听外部 value 变化,同步内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n const start = getNestedValue(newVal, props.startField);\r\n const end = getNestedValue(newVal, props.endField);\r\n\r\n if (start && end) {\r\n innerValue.value = [start, end];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: [any, any]) => {\r\n let updatedValue = { ...props.value };\r\n\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n startTime ? startTime : null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n endTime ? endTime : null\r\n );\r\n // 更新 innerValue 为当前选择的日期范围数组\r\n innerValue.value = dates;\r\n } else {\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n null\r\n );\r\n // 清空 innerValue\r\n innerValue.value = null;\r\n }\r\n\r\n emits(\"update:value\", updatedValue);\r\n emits(\"change\", updatedValue);\r\n};\r\n</script>\r\n\r\n<template>\r\n <a-range-picker\r\n v-bind=\"attrs\"\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n :valueFormat=\"format\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["useAttrs","ref","watch","_createBlock","_mergeProps","_unref"],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ var RangePicker_vue_vue_type_script_setup_true_lang = require('./date/RangePicke
|
|
|
19
19
|
var FormLayout = require('./form/FormLayout.cjs');
|
|
20
20
|
var Moon = require('./icon/Moon.vue.cjs');
|
|
21
21
|
var Sun = require('./icon/Sun.vue.cjs');
|
|
22
|
+
var AppContext = require('./layout/AppContext.cjs');
|
|
22
23
|
var ThemeApp_vue_vue_type_script_setup_true_lang = require('./layout/components/layout/ThemeApp.vue2.cjs');
|
|
23
24
|
var HeaderLayout_vue_vue_type_script_setup_true_lang = require('./layout/components/layout/HeaderLayout.vue2.cjs');
|
|
24
25
|
var Menu = require('./layout/components/menu/Menu.cjs');
|
|
@@ -40,6 +41,7 @@ exports.RangePicker = RangePicker_vue_vue_type_script_setup_true_lang.default;
|
|
|
40
41
|
exports.FormLayout = FormLayout.default;
|
|
41
42
|
exports.Moon = Moon.default;
|
|
42
43
|
exports.Sun = Sun.default;
|
|
44
|
+
exports.AppContextKey = AppContext.AppContextKey;
|
|
43
45
|
exports.AppTheme = ThemeApp_vue_vue_type_script_setup_true_lang.default;
|
|
44
46
|
exports.HeaderLayout = HeaderLayout_vue_vue_type_script_setup_true_lang.default;
|
|
45
47
|
exports.Menu = Menu.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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}\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?: () => void;\r\n // 多标签是否开启右键菜单\r\n enableTabContextMenu?: boolean;\r\n}\r\n"],"names":[],"mappings":";;;AAEO,MAAM,aAAA,GAAgB,OAAO,gBAAgB;;;;"}
|
|
@@ -12,7 +12,9 @@ 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');
|
|
15
16
|
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');
|
|
16
18
|
var RouterContent_vue_vue_type_script_setup_true_lang = require('./components/layout/RouterContent.vue2.cjs');
|
|
17
19
|
|
|
18
20
|
"use strict";
|
|
@@ -24,7 +26,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
24
26
|
content: ""
|
|
25
27
|
}) },
|
|
26
28
|
isSettings: { type: Boolean, required: false, default: false },
|
|
27
|
-
renderMenuIcon: { type: Function, required: false, default: void 0 }
|
|
29
|
+
renderMenuIcon: { type: Function, required: false, default: void 0 },
|
|
30
|
+
keepAliveMode: { type: String, required: false, default: "Name" },
|
|
31
|
+
onReloadPage: { type: Function, required: false },
|
|
32
|
+
enableTabContextMenu: { type: Boolean, required: false, default: true }
|
|
28
33
|
},
|
|
29
34
|
emits: ["onMenuClick"],
|
|
30
35
|
setup(__props, { emit: __emit }) {
|
|
@@ -34,7 +39,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
34
39
|
const { onMenuClick } = useMenu();
|
|
35
40
|
vue.provide(AppContext.AppContextKey, {
|
|
36
41
|
watermarkContent: vue.computed(() => props.watermark || ""),
|
|
37
|
-
renderMenuIcon: props.renderMenuIcon
|
|
42
|
+
renderMenuIcon: props.renderMenuIcon,
|
|
43
|
+
keepAliveMode: props.keepAliveMode,
|
|
44
|
+
onReloadPage: props.onReloadPage,
|
|
45
|
+
enableTabContextMenu: props.enableTabContextMenu
|
|
38
46
|
});
|
|
39
47
|
const {
|
|
40
48
|
layoutStyle,
|
|
@@ -49,7 +57,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
49
57
|
vue.watch(
|
|
50
58
|
() => route.path,
|
|
51
59
|
() => {
|
|
52
|
-
|
|
60
|
+
if (props.keepAliveMode === "Name") {
|
|
61
|
+
save(route);
|
|
62
|
+
}
|
|
53
63
|
},
|
|
54
64
|
{
|
|
55
65
|
immediate: true
|
|
@@ -156,7 +166,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
156
166
|
class: vue.normalizeClass(vue.unref(rightContentStyle))
|
|
157
167
|
}, {
|
|
158
168
|
default: vue.withCtx(() => [
|
|
159
|
-
vue.
|
|
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 }))
|
|
160
170
|
]),
|
|
161
171
|
_: 1
|
|
162
172
|
/* 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\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});\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});\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
|
|
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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"}
|
|
@@ -7,6 +7,7 @@ var vueRouter = require('vue-router');
|
|
|
7
7
|
var antDesignVue = require('ant-design-vue');
|
|
8
8
|
var pinia = require('pinia');
|
|
9
9
|
var core = require('@vueuse/core');
|
|
10
|
+
var AppContext = require('./AppContext.cjs');
|
|
10
11
|
var store = require('@ditari/store');
|
|
11
12
|
var css = require('@emotion/css');
|
|
12
13
|
|
|
@@ -15,9 +16,9 @@ function _isSlot(s) {
|
|
|
15
16
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
|
|
16
17
|
}
|
|
17
18
|
const tableRootStyle = css.css`
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
height: 100%;
|
|
20
|
+
position: relative;
|
|
21
|
+
overflow: hidden;
|
|
21
22
|
`;
|
|
22
23
|
const list = /* @__PURE__ */ vue.defineComponent({
|
|
23
24
|
name: "DListLayout",
|
|
@@ -26,7 +27,11 @@ const list = /* @__PURE__ */ vue.defineComponent({
|
|
|
26
27
|
slots,
|
|
27
28
|
emit
|
|
28
29
|
}) {
|
|
29
|
-
const
|
|
30
|
+
const appContext = vue.inject(AppContext.AppContextKey, null);
|
|
31
|
+
const watermarkContent = vue.computed(() => {
|
|
32
|
+
var _a;
|
|
33
|
+
return (_a = appContext == null ? void 0 : appContext.watermarkContent) == null ? void 0 : _a.value.content;
|
|
34
|
+
});
|
|
30
35
|
const route = vueRouter.useRoute();
|
|
31
36
|
const {
|
|
32
37
|
refresh
|
|
@@ -43,44 +48,44 @@ const list = /* @__PURE__ */ vue.defineComponent({
|
|
|
43
48
|
useReload();
|
|
44
49
|
const maskDivStyle = vue.computed(() => {
|
|
45
50
|
return css.css`
|
|
46
|
-
position: absolute;
|
|
47
|
-
top: 0;
|
|
48
|
-
right: 0;
|
|
49
|
-
bottom: 0;
|
|
50
|
-
left: 0;
|
|
51
|
-
z-index: 1;
|
|
52
|
-
background: white;
|
|
53
|
-
display: ${tableVisible.value ? "block" : "none"};
|
|
54
|
-
`;
|
|
55
|
-
});
|
|
56
|
-
const tableWrapperStyle = css.css`
|
|
57
51
|
position: absolute;
|
|
58
52
|
top: 0;
|
|
59
53
|
right: 0;
|
|
60
54
|
bottom: 0;
|
|
61
55
|
left: 0;
|
|
62
|
-
|
|
56
|
+
z-index: 1;
|
|
57
|
+
background: white;
|
|
58
|
+
display: ${tableVisible.value ? "block" : "none"};
|
|
59
|
+
`;
|
|
60
|
+
});
|
|
61
|
+
const tableWrapperStyle = css.css`
|
|
62
|
+
position: absolute;
|
|
63
|
+
top: 0;
|
|
64
|
+
right: 0;
|
|
65
|
+
bottom: 0;
|
|
66
|
+
left: 0;
|
|
67
|
+
overflow: hidden;
|
|
63
68
|
`;
|
|
64
69
|
const cardStyle = css.css`
|
|
65
|
-
|
|
70
|
+
box-shadow: none !important;
|
|
66
71
|
`;
|
|
67
72
|
const leftCardStyle = css.css`
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
.ant-card-body {
|
|
74
|
+
overflow-y: scroll;
|
|
75
|
+
-ms-overflow-style: none; /* 对 IE 和 Edge 生效 */
|
|
76
|
+
scrollbar-width: none; /* 对 Firefox 生效 */
|
|
72
77
|
|
|
73
|
-
|
|
78
|
+
/* Webkit 浏览器 */
|
|
74
79
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
80
|
+
::-webkit-scrollbar {
|
|
81
|
+
display: none;
|
|
78
82
|
}
|
|
83
|
+
}
|
|
79
84
|
`;
|
|
80
85
|
const listStyle = vue.computed(() => css.css`
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
86
|
+
padding: 10px;
|
|
87
|
+
height: 100%;
|
|
88
|
+
//height: calc(100vh - 44px);
|
|
84
89
|
`);
|
|
85
90
|
vue.onMounted(() => {
|
|
86
91
|
playTableHeight();
|
|
@@ -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 { 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
|
+
{"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":";;;;;;;;;;;;;;AAyBmC,SAAAA,QAAAC,CAAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAA,IAAAC,MAAAA,CAAAC,SAAAA,CAAAC,QAAAA,CAAAC,IAAAA,CAAAJ,CAAA,CAAA,KAAA,iBAAA,IAAA,CAAAK,WAAAA,CAAAL,CAAA,CAAA;AAAA;AAEnC,MAAMM,cAAAA,GAAiBC,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAAA;AAMvB,MAAMC,uBAAOC,mBAAAA,CAAgB;AAAA,EAC3BC,IAAAA,EAAM,aAAA;AAAA,EACNC,KAAAA,EAAO,CAAC,SAAS,CAAA;AAAA,EACjBC,MAAMC,CAAAA,EAAG;AAAA,IAAEC,KAAAA;AAAAA,IAAOC;AAAAA,GAAK,EAAG;AACxB,IAAA,MAAMC,UAAAA,GAAaC,UAAAA,CACjBC,wBAAAA,EACA,IACF,CAAA;AAEA,IAAA,MAAMC,gBAAAA,GAAmBC,aACvB,MAAA;AA3CN,MAAA,IAAA,EAAA;AA2CYJ,MAAAA,OAAAA,CAAAA,EAAAA,GAAAA,UAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAAA,CAAYG,gBAAAA,KAAZH,mBAA8BK,KAAAA,CAAMC,OAAAA;AAAAA,IAAAA,CAC5C,CAAA;AAEA,IAAA,MAAMC,QAAQC,kBAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAQ,GAAIC,iBAAAA,CAAYC,iBAAAA,EAAa,CAAA;AAC7C,IAAA,MAAM;AAAA,MACJC,QAAAA;AAAAA,MACAC,MAAAA;AAAAA,MACAC,YAAAA;AAAAA,MACAC;AAAAA,QACEC,cAAAA,EAAe;AACnB,IAAA,MAAM;AAAA,MAAEC;AAAAA,QAAYC,OAAAA,EAAQ;AAC5BC,IAAAA,SAAAA,EAAU;AAEV,IAAA,MAAMC,YAAAA,GAAehB,aAAS,MAAM;AAClC,MAAA,OAAOb,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAAAA,EAQMuB,YAAAA,CAAaT,KAAAA,GAAQ,OAAA,GAAU,MAAM,CAAA;AAAA,MAAA,CAAA;AAAA,IAEpD,CAAC,CAAA;AAED,IAAA,MAAMgB,iBAAAA,GAAoB9B,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAS1B,IAAA,MAAM+B,SAAAA,GAAY/B,OAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAIlB,IAAA,MAAMgC,aAAAA,GAAgBhC,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AActB,IAAA,MAAMiC,SAAAA,GAAYpB,aAChB,MAAMb,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAAAA,CAKR,CAAA;AAEAkC,IAAAA,aAAAA,CAAU,MAAM;AACdV,MAAAA,eAAAA,EAAgB;AAAA,IAClB,CAAC,CAAA;AAED,IAAA,SAASC,cAAAA,GAAiB;AACxB,MAAA,MAAMJ,YAAWc,OAAAA,EAAI;AACrB,MAAA,MAAMb,OAAAA,GAASa,QAAI,CAAC,CAAA;AACpB,MAAA,MAAMZ,aAAAA,GAAeY,QAAI,IAAI,CAAA;AAE7B,MAAA,SAASX,gBAAAA,GAAkB;AAlHjC,QAAA,IAAA,EAAA;AAmHQD,QAAAA,cAAaT,KAAAA,GAAQ,IAAA;AACrBQ,QAAAA,OAAAA,CAAOR,SAAQO,EAAAA,GAAAA,SAAAA,IAAAA,gBAAAA,SAAAA,CAAUP,KAAAA,KAAVO,mBAAiBe,GAAAA,CAAIC,YAAAA;AACpCC,QAAAA,YAAAA,CAAS,MAAM;AACbC,UAAAA,UAAAA,CAAW,MAAM;AACfhB,YAAAA,cAAaT,KAAAA,GAAQ,KAAA;AAAA,UACvB,GAAG,EAAE,CAAA;AAAA,QACP,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,OAAO;AAAA,QACLO,QAAAA,EAAAA,SAAAA;AAAAA,QACAC,MAAAA,EAAAA,OAAAA;AAAAA,QACAC,YAAAA,EAAAA,aAAAA;AAAAA,QACAC,eAAAA,EAAAA;AAAAA,OACF;AAAA,IACF;AAEA,IAAA,SAASG,OAAAA,GAAU;AACjB,MAAA,MAAMD,QAAAA,GAAUS,QAAI,IAAI,CAAA;AACxB,MAAA,MAAM;AAAA,QAAEb,MAAAA,EAAQkB;AAAAA,OAAW,GACzBC,oBAAef,QAAO,CAAA;AACxBgB,MAAAA,SAAAA,CACE,MAAMF,UAAAA,CAAW1B,KAAAA,EACjB,MAAM;AACJwB,QAAAA,YAAAA,CAAS,MAAM;AACbd,UAAAA,eAAAA,EAAgB;AAAA,QAClB,CAAC,CAAA;AAAA,MACH,CACF,CAAA;AAEA,MAAA,OAAO;AAAA,QACLE,OAAAA,EAAAA;AAAAA,OACF;AAAA,IACF;AAGA,IAAA,SAASE,SAAAA,GAAY;AACnB,MAAA,IAAIe,eAAAA;AAEJ,MAAA,IAAI,CAAC3B,MAAMb,IAAAA,EAAM;AACfwC,QAAAA,eAAAA,GAAkBC,SAAAA,EAAU;AAE5BC,QAAAA,eAAAA,CAAY,MAAM;AAChBF,UAAAA,eAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAAA,EAAAA;AAAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA,MAAO;AAELG,QAAAA,eAAAA,CAAY,MAAM;AAChB,UAAA,IAAI5B,QAAQJ,KAAAA,EAAO;AACjBI,YAAAA,OAAAA,CAAQJ,KAAAA,GAAQ,KAAA;AAChBN,YAAAA,IAAAA,CAAK,SAAS,CAAA;AAAA,UAChB;AACAmC,UAAAA,eAAAA,GAAkBC,SAAAA,EAAU;AAAA,QAC9B,CAAC,CAAA;AAEDG,QAAAA,iBAAAA,CAAc,MAAM;AAClBJ,UAAAA,eAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAAA,EAAAA;AAAAA,QACF,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,SAASC,SAAAA,GAAY;AAEnB,QAAA,OAAOF,SAAAA,CACL,MAAMxB,OAAAA,CAAQJ,KAAAA,EACdkC,CAAAA,GAAAA,KAAO;AACL,UAAA,IAAIA,GAAAA,EAAK;AAEPxC,YAAAA,IAAAA,CAAK,SAAS,CAAA;AAAA,UAChB;AAAA,QACF,CACF,CAAA;AAAA,MACF;AAAA,IACF;AAEA,IAAA,SAASyC,SAAAA,GAAY;AACnB,MAAA,SAASC,UAAAA,GAAa;AACpB,QAAA,OAAO,MAAA;AAAA,UAAA,IAAAC,KAAAA;AAAA,UAAA,OACL5C,KAAAA,CAAM6C,IAAAA,IAAIC,eAAAA,CAAAC,iBAAAA,EAAA;AAAA,YAAA,OAAA,EAECvB,SAAAA;AAAAA,YAAS,KAAA,EACXL,OAAAA;AAAAA,YAAO,OAAA,EACL;AAAA,cAAE6B,YAAAA,EAAc;AAAA,aAAO;AAAA,YAAC,WAAA,EACpB;AAAA,cAAEC,OAAAA,EAAS;AAAA,aAAmB;AAAA,YAAC,UAAA,EAChC;AAAA,aAAKhE,OAAAA,CAAA2D,KAAAA,GAEd5C,MAAM6C,IAAAA,EAAM,IAAAD,KAAAA,GAAA;AAAA,YAAAM,OAAAA,EAAAA,MAAA,CAAAN,KAAA;AAAA,WAAA,CAAA;AAAA,QAEhB,CAAA;AAAA,MACL;AAEA,MAAA,SAASO,WAAAA,GAAc;AACrB,QAAA,OAAO,MAAAL,gBAAAM,iBAAAA,EAAA;AAAA,UAAA,MAAA,EACO,CAAA;AAAA,UAAC,UAAA,EAAY;AAAA,SAAI,EAAA;AAAA,UAAAF,OAAAA,EAAAA,MAAA,CAAAJ,eAAAA,CAAAC,iBAAAA,EAAA;AAAA,YAAA,OAAA,EAElBvB,SAAAA;AAAAA,YAAS,OAAA,EACT;AAAA,cAAET,MAAAA,EAAQ;AAAA,aAAO;AAAA,YAAC,WAAA,EACd;AAAA,cACTA,MAAAA,EAAQ,MAAA;AAAA,cACRkC,OAAAA,EAAS;AAAA,aACX;AAAA,YAAC,UAAA,EACS;AAAA,WAAK,EAAA;AAAA,YAAAC,OAAAA,EAAAA,MAAA,CAAAJ,eAAAA,CAAAM,iBAAAA,EAAA;AAAA,cAAA,OAAA,EAGN;AAAA,gBAAErC,MAAAA,EAAQ;AAAA,eAAO;AAAA,cAAC,UAAA,EACf;AAAA,aAAI,EAAA;AAAA,cAAAmC,OAAAA,EAAAA,MAAA,CAAAJ,eAAAA,CAAAO,kBAAAA,EAAA;AAAA,gBAAA,OAAA,EAEA;AAAA,kBAAEL,YAAAA,EAAc;AAAA;AAAM,eAAC,EAAA;AAAA,gBAAAE,SAAAA,MAAA;AA7NrD,kBAAA,IAAA,EAAA;AA6NqD,kBAAA,OAAA,CAAA,CAClClD,EAAAA,GAAAA,KAAAA,CAAMsD,UAANtD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAe,CAAA;AAAA,gBAAA;AAAA,eAAA,CAAA,EAAA8C,eAAAA,CAAAM,iBAAAA,EAAA;AAAA,gBAAA,KAAA,EAGXtC,QAAAA;AAAAA,gBAAQ,MAAA,EACP,CAAA;AAAA,gBAAC,OAAA,EACA;AAAA,kBAAEC,MAAAA,EAAQ;AAAA,iBAAO;AAAA,gBAAC,UAAA,EACf;AAAA,eAAI,EAAA;AAAA,gBAAAmC,SAAAA,MAAA;AApOhC,kBAAA,IAAA,EAAA;AAoOgC,kBAAA,OAAA,CAAAJ,gBAAA,KAAA,EAAA;AAAA,oBAAA,OAAA,EAEFtD;AAAAA,mBAAc,EAAA,CAAAsD,eAAAA,CAAA,KAAA,EAAA;AAAA,oBAAA,SACZxB,YAAAA,CAAaf;AAAAA,mBAAK,EAAA,IAAA,CAAA,EAAAuC,eAAAA,CAAA,KAAA,EAAA;AAAA,oBAAA,OAAA,EAClBvB;AAAAA,mBAAiB,EAAA,CAAA,CAC1BvB,EAAAA,GAAAA,KAAAA,CAAMuD,KAAAA,KAANvD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAc;AAAA,oBACbe,QAAQA,MAAAA,CAAOR;AAAAA,mBACjB,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,gBAAA;AAAA,eAAA,CAAA;AAAA,aAAA,CAAA;AAAA,WAAA,CAAA;AAAA,SAAA,CAAA;AAAA,MAQlB;AAEA,MAAA,OAAAuC,gBAAAU,sBAAAA,EAAA;AAAA,QAAA,OAAA,EAEW;AAAA,UAAEzC,MAAAA,EAAQ;AAAA,SAAO;AAAA,QAAC,WAChBV,gBAAAA,CAAiBE;AAAAA,OAAK,EAAA;AAAA,QAAA2C,OAAAA,EAAAA,MAAA,CAAAJ,eAAAA,CAAAM,iBAAAA,EAAA;AAAA,UAAA,OAAA,EAGtB,CAAC1B,SAAAA,CAAUnB,KAAAA,EAAO,UAAU,CAAA;AAAA,UAAC,KAAA,EAC/B;AAAA,SAAE,EAAA;AAAA,UAAA2C,SAAAA,MAAA,CAENlD,KAAAA,CAAMyD,IAAAA,GAAIX,gBAAAC,iBAAAA,EAAA;AAAA,YAAA,OAAA,EAEA,CAACvB,SAAAA,EAAWC,aAAa,CAAA;AAAA,YAAC,UAAA,EACvB,KAAA;AAAA,YAAK,WAAA,EACJ;AAAA,cACTV,MAAAA,EAAQ,MAAA;AAAA,cACRkC,OAAAA,EAAS;AAAA;AACX,WAAC,EAAA;AAAA,YAAAC,SAAAA,MAAA;AArQjB,cAAA,IAAA,EAAA;AAqQiB,cAAA,OAAA,CAAA,CAEAlD,EAAAA,GAAAA,KAAAA,CAAMyD,SAANzD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAc,CAAA;AAAA,YAAA;AAAA,WAAA,CAAA,GAEf,IAAA,EAAI8C,eAAAA,CAAAM,iBAAAA,EAAA;AAAA,YAAA,UAAA,EACQ,IAAA;AAAA,YAAI,MAAA,EAAQ;AAAA,WAAC,EAAA;AAAA,YAAAF,OAAAA,EAAAA,MAAA,CAC1BP,UAAAA,IAAa,EACbQ,WAAAA,IAAe;AAAA,WAAA,CAAA;AAAA,SAAA,CAAA;AAAA,OAAA,CAAA;AAAA,IAK1B;AAEA,IAAA,OAAO,MAAMT,SAAAA,EAAU;AAAA,EACzB;AACF,CAAC;;;;"}
|
|
@@ -3,22 +3,52 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var pinia = require('pinia');
|
|
7
6
|
var vueRouter = require('vue-router');
|
|
7
|
+
var pinia = require('pinia');
|
|
8
8
|
var store = require('@ditari/store');
|
|
9
9
|
|
|
10
10
|
"use strict";
|
|
11
11
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
12
12
|
__name: "RouterContent",
|
|
13
13
|
setup(__props) {
|
|
14
|
-
const
|
|
15
|
-
const keepAliveStore = pinia$1 ? store.useKeepAliveStore() : null;
|
|
16
|
-
const keepAliveNames = vue.ref([]);
|
|
17
|
-
if (keepAliveStore) {
|
|
18
|
-
const { get } = keepAliveStore;
|
|
19
|
-
keepAliveNames.value = get;
|
|
20
|
-
}
|
|
14
|
+
const { list } = pinia.storeToRefs(store.useNavTabStore());
|
|
21
15
|
const route = vueRouter.useRoute();
|
|
16
|
+
const cachedViews = vue.computed(() => {
|
|
17
|
+
return list.value.filter(
|
|
18
|
+
(tab) => {
|
|
19
|
+
var _a;
|
|
20
|
+
return ((_a = tab.meta) == null ? void 0 : _a.keepAlive) === true && tab.fullPath;
|
|
21
|
+
}
|
|
22
|
+
).map((tab) => tab.fullPath);
|
|
23
|
+
});
|
|
24
|
+
const wrapperMap = /* @__PURE__ */ new Map();
|
|
25
|
+
const getWrapper = (Component, route2) => {
|
|
26
|
+
if (!Component) return null;
|
|
27
|
+
const wrapperName = route2.fullPath;
|
|
28
|
+
if (wrapperMap.has(wrapperName)) {
|
|
29
|
+
return wrapperMap.get(wrapperName);
|
|
30
|
+
}
|
|
31
|
+
const wrapper = vue.defineComponent({
|
|
32
|
+
name: wrapperName,
|
|
33
|
+
// 这确保了 keep-alive 的 include 能够匹配到
|
|
34
|
+
setup() {
|
|
35
|
+
return () => vue.h(Component);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
wrapperMap.set(wrapperName, wrapper);
|
|
39
|
+
return wrapper;
|
|
40
|
+
};
|
|
41
|
+
vue.watch(
|
|
42
|
+
cachedViews,
|
|
43
|
+
(names) => {
|
|
44
|
+
wrapperMap.forEach((_, key) => {
|
|
45
|
+
if (!names.includes(key)) {
|
|
46
|
+
wrapperMap.delete(key);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
{ deep: true }
|
|
51
|
+
);
|
|
22
52
|
return (_ctx, _cache) => {
|
|
23
53
|
const _component_router_view = vue.resolveComponent("router-view");
|
|
24
54
|
return vue.openBlock(), vue.createBlock(_component_router_view, null, {
|
|
@@ -32,9 +62,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
32
62
|
},
|
|
33
63
|
{
|
|
34
64
|
default: vue.withCtx(() => [
|
|
35
|
-
(vue.openBlock(), vue.createBlock(vue.KeepAlive, { include:
|
|
36
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
|
|
37
|
-
key: vue.unref(route).
|
|
65
|
+
(vue.openBlock(), vue.createBlock(vue.KeepAlive, { include: cachedViews.value }, [
|
|
66
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getWrapper(Component, vue.unref(route))), {
|
|
67
|
+
key: vue.unref(route).fullPath
|
|
38
68
|
}))
|
|
39
69
|
], 1032, ["include"]))
|
|
40
70
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterContent.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/RouterContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport {
|
|
1
|
+
{"version":3,"file":"RouterContent.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/RouterContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, defineComponent, h, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useNavTabStore } from \"@ditari/store\";\r\n\r\nconst { list } = storeToRefs(useNavTabStore());\r\nconst route = useRoute();\r\n\r\n// 1. 依然保留 cachedViews,它存储的是 fullPath 数组\r\nconst cachedViews = computed<string[]>(() => {\r\n return list.value\r\n .filter(\r\n tab => tab.meta?.keepAlive === true && tab.fullPath\r\n ) // 确保 fullPath 存在\r\n .map(tab => tab.fullPath as string); // 明确断言为 string\r\n});\r\n\r\n// 2. 使用 shallowRef 存储包装组件,避免不必要的深层响应式开销\r\nconst wrapperMap = new Map();\r\n\r\nconst getWrapper = (Component: any, route: any) => {\r\n if (!Component) return null;\r\n\r\n // 使用 fullPath 作为唯一的组件名\r\n const wrapperName = route.fullPath;\r\n\r\n if (wrapperMap.has(wrapperName)) {\r\n return wrapperMap.get(wrapperName);\r\n }\r\n\r\n // 3. 关键:创建一个新组件,其 name 必须在 cachedViews 数组中\r\n const wrapper = defineComponent({\r\n name: wrapperName, // 这确保了 keep-alive 的 include 能够匹配到\r\n setup() {\r\n return () => h(Component);\r\n }\r\n });\r\n\r\n wrapperMap.set(wrapperName, wrapper);\r\n return wrapper;\r\n};\r\nwatch(\r\n cachedViews,\r\n names => {\r\n wrapperMap.forEach((_, key) => {\r\n if (!names.includes(key)) {\r\n wrapperMap.delete(key);\r\n }\r\n });\r\n },\r\n { deep: true }\r\n);\r\n</script>\r\n<template>\r\n <router-view v-slot=\"{ Component }\">\r\n <transition name=\"main\" mode=\"out-in\" appear>\r\n <keep-alive :include=\"cachedViews\">\r\n <component\r\n :is=\"getWrapper(Component, route)\"\r\n :key=\"route.fullPath\"\r\n />\r\n </keep-alive>\r\n </transition>\r\n </router-view>\r\n</template>\r\n"],"names":["storeToRefs","useNavTabStore","useRoute","computed","route","defineComponent","h","watch","_createBlock","_withCtx","_createVNode","_Transition","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;;;;;AAOA,IAAA,MAAM,EAAE,IAAA,EAAK,GAAIA,iBAAA,CAAYC,sBAAgB,CAAA;AAC7C,IAAA,MAAM,QAAQC,kBAAA,EAAS;AAGvB,IAAA,MAAM,WAAA,GAAcC,aAAmB,MAAM;AAC3C,MAAA,OAAO,KAAK,KAAA,CACT,MAAA;AAAA,QACC,CAAA,GAAA,KAAI;;AAAG,UAAA,OAAA,CAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAU,SAAA,MAAc,IAAA,IAAQ,GAAA,CAAI,QAAA;AAAA,QAAA;AAAA,OAC7C,CACC,GAAA,CAAI,CAAA,GAAA,KAAO,GAAA,CAAI,QAAkB,CAAA;AAAA,IACtC,CAAC,CAAA;AAGD,IAAA,MAAM,UAAA,uBAAiB,GAAA,EAAI;AAE3B,IAAA,MAAM,UAAA,GAAa,CAAC,SAAA,EAAgBC,MAAAA,KAAe;AACjD,MAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AAGvB,MAAA,MAAM,cAAcA,MAAAA,CAAM,QAAA;AAE1B,MAAA,IAAI,UAAA,CAAW,GAAA,CAAI,WAAW,CAAA,EAAG;AAC/B,QAAA,OAAO,UAAA,CAAW,IAAI,WAAW,CAAA;AAAA,MACnC;AAGA,MAAA,MAAM,UAAUC,mBAAA,CAAgB;AAAA,QAC9B,IAAA,EAAM,WAAA;AAAA;AAAA,QACN,KAAA,GAAQ;AACN,UAAA,OAAO,MAAMC,MAAE,SAAS,CAAA;AAAA,QAC1B;AAAA,OACD,CAAA;AAED,MAAA,UAAA,CAAW,GAAA,CAAI,aAAa,OAAO,CAAA;AACnC,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AACA,IAAAC,SAAA;AAAA,MACE,WAAA;AAAA,MACA,CAAA,KAAA,KAAS;AACP,QAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,EAAG,GAAA,KAAQ;AAC7B,UAAA,IAAI,CAAC,KAAA,CAAM,QAAA,CAAS,GAAG,CAAA,EAAG;AACxB,YAAA,UAAA,CAAW,OAAO,GAAG,CAAA;AAAA,UACvB;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,EAAE,MAAM,IAAA;AAAK,KACf;;;8BAGEC,eAAA,CASc,sBAAA,EAAA,IAAA,EAAA;AAAA,QARZ,OAAA,EAAAC,WAAA,CAAA,CAOa,EARQ,WAAS,KAAA;AAAA,UAC9BC,eAAA;AAAA,YAOaC,cAAA;AAAA,YAAA;AAAA,cAPD,IAAA,EAAK,MAAA;AAAA,cAAO,IAAA,EAAK,QAAA;AAAA,cAAS,MAAA,EAAA;AAAA;;mCACpC,MAKa;AAAA,kCALbH,eAAA,CAKaI,aAAA,EAAA,EALA,OAAA,EAAS,WAAA,CAAA,OAAW,EAAA;AAAA,mBAC/BC,aAAA,EAAA,EAAAL,eAAA,CAGEM,2BAAA,CAFK,UAAA,CAAW,WAAWC,SAAA,CAAA,KAAA,CAAK,CAAA,CAAA,EAAA;AAAA,oBAC/B,GAAA,EAAKA,SAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var RouterContentName_vue_vue_type_script_setup_true_lang = require('./RouterContentName.vue2.cjs');
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
|
|
9
|
+
exports.default = RouterContentName_vue_vue_type_script_setup_true_lang.default;
|
|
10
|
+
//# sourceMappingURL=RouterContentName.vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouterContentName.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var vueRouter = require('vue-router');
|
|
7
|
+
var pinia = require('pinia');
|
|
8
|
+
var store = require('@ditari/store');
|
|
9
|
+
|
|
10
|
+
"use strict";
|
|
11
|
+
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
12
|
+
__name: "RouterContentName",
|
|
13
|
+
setup(__props) {
|
|
14
|
+
const keepAliveStore = store.useKeepAliveStore();
|
|
15
|
+
const { get } = pinia.storeToRefs(keepAliveStore);
|
|
16
|
+
const keepAliveNames = vue.computed(() => get.value);
|
|
17
|
+
const route = vueRouter.useRoute();
|
|
18
|
+
return (_ctx, _cache) => {
|
|
19
|
+
const _component_router_view = vue.resolveComponent("router-view");
|
|
20
|
+
return vue.openBlock(), vue.createBlock(_component_router_view, null, {
|
|
21
|
+
default: vue.withCtx(({ Component }) => [
|
|
22
|
+
vue.createVNode(
|
|
23
|
+
vue.Transition,
|
|
24
|
+
{
|
|
25
|
+
name: "main",
|
|
26
|
+
mode: "out-in",
|
|
27
|
+
appear: ""
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
default: vue.withCtx(() => [
|
|
31
|
+
(vue.openBlock(), vue.createBlock(vue.KeepAlive, { include: keepAliveNames.value }, [
|
|
32
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
|
|
33
|
+
key: vue.unref(route).path
|
|
34
|
+
}))
|
|
35
|
+
], 1032, ["include"]))
|
|
36
|
+
]),
|
|
37
|
+
_: 2
|
|
38
|
+
/* DYNAMIC */
|
|
39
|
+
},
|
|
40
|
+
1024
|
|
41
|
+
/* DYNAMIC_SLOTS */
|
|
42
|
+
)
|
|
43
|
+
]),
|
|
44
|
+
_: 1
|
|
45
|
+
/* STABLE */
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
exports.default = _sfc_main;
|
|
52
|
+
//# sourceMappingURL=RouterContentName.vue2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouterContentName.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/RouterContentName.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useKeepAliveStore } from \"@ditari/store\";\r\n\r\nconst keepAliveStore = useKeepAliveStore();\r\n\r\nconst { get } = storeToRefs(keepAliveStore);\r\nconst keepAliveNames = computed<string[]>(() => get.value);\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":["useKeepAliveStore","storeToRefs","computed","useRoute","_createBlock","_withCtx","_createVNode","_Transition","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;;;;;AAOA,IAAA,MAAM,iBAAiBA,uBAAA,EAAkB;AAEzC,IAAA,MAAM,EAAE,GAAA,EAAI,GAAIC,iBAAA,CAAY,cAAc,CAAA;AAC1C,IAAA,MAAM,cAAA,GAAiBC,YAAA,CAAmB,MAAM,GAAA,CAAI,KAAK,CAAA;AAEzD,IAAA,MAAM,QAAQC,kBAAA,EAAS;;;8BAIrBC,eAAA,CAMc,sBAAA,EAAA,IAAA,EAAA;AAAA,QALZ,OAAA,EAAAC,WAAA,CAAA,CAIa,EALQ,WAAS,KAAA;AAAA,UAC9BC,eAAA;AAAA,YAIaC,cAAA;AAAA,YAAA;AAAA,cAJD,IAAA,EAAK,MAAA;AAAA,cAAO,IAAA,EAAK,QAAA;AAAA,cAAS,MAAA,EAAA;AAAA;;mCACpC,MAEa;AAAA,kCAFbH,eAAA,CAEaI,aAAA,EAAA,EAFA,OAAA,EAAS,cAAA,CAAA,OAAc,EAAA;AAAA,mBAClCC,aAAA,EAAA,EAAAL,eAAA,CAA+CM,2BAAA,CAA/B,SAAS,CAAA,EAAA;AAAA,oBAAG,GAAA,EAAKC,SAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -133,15 +133,16 @@ var Menu = /* @__PURE__ */ vue.defineComponent({
|
|
|
133
133
|
}
|
|
134
134
|
}));
|
|
135
135
|
vue.watch(() => layout.value.collapsed, (val) => {
|
|
136
|
+
var _a, _b, _c;
|
|
136
137
|
const id = selectedKeys.value[0];
|
|
137
138
|
const rs = findMatchedMenuById(id, data.value);
|
|
138
139
|
if (val) {
|
|
139
140
|
openKeys.value = [];
|
|
140
141
|
} else {
|
|
141
142
|
if (rs == null ? void 0 : rs.parentItem) {
|
|
142
|
-
openKeys.value = [rs.parentItem.key];
|
|
143
|
+
openKeys.value = [(_a = rs.parentItem) == null ? void 0 : _a.key];
|
|
143
144
|
} else {
|
|
144
|
-
openKeys.value = [rs.matchItem.key];
|
|
145
|
+
openKeys.value = ((_b = rs.matchItem) == null ? void 0 : _b.key) ? [(_c = rs.matchItem) == null ? void 0 : _c.key] : [];
|
|
145
146
|
}
|
|
146
147
|
}
|
|
147
148
|
});
|