@ditari/bsui 1.1.39 → 1.1.41
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/CHANGELOG.md +12 -0
- package/dist/cjs/date/RangePicker.cjs +15 -18
- package/dist/cjs/date/RangePicker.cjs.map +1 -1
- package/dist/cjs/dic/DicReplace.cjs +4 -2
- package/dist/cjs/dic/DicReplace.cjs.map +1 -1
- package/dist/cjs/layout/FuckMain.vue.d.ts +26 -3
- package/dist/cjs/layout/FuckMain.vue2.cjs +36 -11
- package/dist/cjs/layout/FuckMain.vue2.cjs.map +1 -1
- package/dist/cjs/layout/List.vue.d.ts +1 -0
- package/dist/cjs/layout/List.vue2.cjs +7 -6
- package/dist/cjs/layout/List.vue2.cjs.map +1 -1
- package/dist/cjs/layout/Main.vue2.cjs +31 -9
- package/dist/cjs/layout/Main.vue2.cjs.map +1 -1
- package/dist/cjs/menu/Menu.cjs +4 -2
- package/dist/cjs/menu/Menu.cjs.map +1 -1
- package/dist/cjs/table/Table.cjs +14 -14
- package/dist/cjs/table/Table.cjs.map +1 -1
- package/dist/esm/date/RangePicker.mjs +16 -19
- package/dist/esm/date/RangePicker.mjs.map +1 -1
- package/dist/esm/dic/DicReplace.mjs +5 -3
- package/dist/esm/dic/DicReplace.mjs.map +1 -1
- package/dist/esm/layout/FuckMain.vue.d.ts +26 -3
- package/dist/esm/layout/FuckMain.vue2.mjs +37 -12
- package/dist/esm/layout/FuckMain.vue2.mjs.map +1 -1
- package/dist/esm/layout/List.vue.d.ts +1 -0
- package/dist/esm/layout/List.vue2.mjs +8 -7
- package/dist/esm/layout/List.vue2.mjs.map +1 -1
- package/dist/esm/layout/Main.vue2.mjs +32 -10
- package/dist/esm/layout/Main.vue2.mjs.map +1 -1
- package/dist/esm/menu/Menu.mjs +5 -3
- package/dist/esm/menu/Menu.mjs.map +1 -1
- package/dist/esm/table/Table.mjs +15 -15
- package/dist/esm/table/Table.mjs.map +1 -1
- package/example/src/App.vue +3 -5
- package/example/src/components/AppMain.vue +6 -6
- package/example/src/views/table/Add.vue +368 -33
- package/example/src/views/table/List.vue +6 -21
- package/example/src/views/table/hooks.ts +1 -1
- package/package.json +1 -1
- package/src/date/RangePicker.tsx +19 -19
- package/src/dic/DicReplace.tsx +13 -7
- package/src/layout/FuckMain.vue +22 -14
- package/src/layout/List.vue +9 -8
- package/src/layout/Main.vue +10 -11
- package/src/menu/Menu.tsx +30 -13
- package/src/table/Table.tsx +87 -34
package/CHANGELOG.md
CHANGED
|
@@ -41,26 +41,23 @@ var RangePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
41
41
|
}
|
|
42
42
|
emit("update:value", internalModel.value);
|
|
43
43
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
props.
|
|
47
|
-
if (value[key] === "") {
|
|
48
|
-
dates.value && (dates.value[index] = "");
|
|
49
|
-
} else {
|
|
50
|
-
dates.value && (dates.value[index] = value[key]);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
44
|
+
const watchExpressions = props.field.map((key) => () => {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = props.value) == null ? void 0 : _a[key];
|
|
53
47
|
});
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
if (value[key] === "") {
|
|
58
|
-
dates.value && (dates.value[index] = "");
|
|
59
|
-
} else {
|
|
60
|
-
dates.value && (dates.value[index] = value[key]);
|
|
61
|
-
}
|
|
48
|
+
const watchHandler = (newValues) => {
|
|
49
|
+
const isClear = props.field.every((key, index) => {
|
|
50
|
+
return newValues[index] === "" || newValues[index] === void 0;
|
|
62
51
|
});
|
|
63
|
-
|
|
52
|
+
if (isClear) {
|
|
53
|
+
dates.value = [];
|
|
54
|
+
} else {
|
|
55
|
+
props.field.forEach((key, index) => {
|
|
56
|
+
dates.value && (dates.value[index] = newValues[index]);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
vue.watch(watchExpressions, watchHandler);
|
|
64
61
|
return () => vue.createVNode("div", null, [vue.createVNode(antDesignVue.RangePicker, vue.mergeProps(attrs, {
|
|
65
62
|
"value": dates.value,
|
|
66
63
|
"onUpdate:value": ($event) => dates.value = $event,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.cjs","sources":["../../../src/date/RangePicker.tsx"],"sourcesContent":["import { defineComponent, ref,
|
|
1
|
+
{"version":3,"file":"RangePicker.cjs","sources":["../../../src/date/RangePicker.tsx"],"sourcesContent":["import { defineComponent, ref, watch } from \"vue\";\nimport type { PropType } from \"vue\";\nimport { RangePicker } from \"ant-design-vue\";\n\n/**\n * 日期范围控件\n */\nexport default defineComponent({\n name: \"DRangePicker\",\n props: {\n value: {\n type: Object as PropType<{ [name: string]: unknown }>\n },\n field: {\n required: true,\n default: [] as string[]\n },\n format: {\n default: \"YYYY-MM-DD\"\n },\n valueFormat: {\n default: \"YYYY-MM-DD\"\n }\n },\n emits: [\"update:value\"],\n setup(props, { emit, attrs }) {\n const dates = ref<string[]>([]);\n\n //内部model\n const internalModel = ref<{ [name: string]: unknown }>(props?.value || {});\n\n // 监听日期变化\n const onChange = (dates: [any, any]) => {\n if (!dates) {\n props.field.forEach((key) => {\n internalModel.value[key] = \"\";\n });\n } else {\n props.field.forEach((key, index) => {\n internalModel.value[key] = dates[index];\n });\n }\n emit(\"update:value\", internalModel.value);\n };\n\n //循环字段\n // eslint-disable-next-line vue/no-setup-props-destructure\n const watchExpressions = props.field.map((key) => () => {\n return props.value?.[key];\n });\n\n const watchHandler = (newValues: any) => {\n // 判断是否被置空只有这两个字段同时为空,才是表明被置空\n const isClear = props.field.every((key, index) => {\n return newValues[index] === \"\" || newValues[index] === undefined;\n });\n if (isClear) {\n dates.value = [];\n } else {\n props.field.forEach((key, index) => {\n dates.value && (dates.value[index] = newValues[index]);\n });\n }\n };\n //监听多个字段变化\n watch(watchExpressions, watchHandler);\n\n return () => (\n <div>\n <RangePicker\n {...attrs}\n v-model:value={dates.value}\n onChange={onChange}\n format={props.format}\n valueFormat={props.valueFormat}\n style={{ width: \"100%\" }}\n ></RangePicker>\n </div>\n );\n }\n});\n"],"names":["defineComponent","name","props","value","type","Object","field","required","default","format","valueFormat","emits","setup","emit","attrs","dates","ref","internalModel","onChange","forEach","key","index","watchExpressions","map","watchHandler","newValues","isClear","every","undefined","watch","_createVNode","RangePicker","_mergeProps","$event","width"],"mappings":"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"}
|
|
@@ -24,10 +24,12 @@ var DicReplace = /* @__PURE__ */ vue.defineComponent({
|
|
|
24
24
|
getDicTextByValue
|
|
25
25
|
} = store.useDataDicStore();
|
|
26
26
|
const dicValueTxt = vue.ref("");
|
|
27
|
-
vue.
|
|
28
|
-
const value =
|
|
27
|
+
vue.watch(() => props.value, (val) => {
|
|
28
|
+
const value = val;
|
|
29
29
|
const name = props.name;
|
|
30
30
|
dicValueTxt.value = getDicTextByValue(name, value);
|
|
31
|
+
}, {
|
|
32
|
+
immediate: true
|
|
31
33
|
});
|
|
32
34
|
return () => vue.createVNode(vue.Fragment, null, [dicValueTxt.value]);
|
|
33
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DicReplace.cjs","sources":["../../../src/dic/DicReplace.tsx"],"sourcesContent":["/**\n * 字典替换\n * 根据字典名字及对应的value替换成中文或者人能看懂的文字\n * @author 余春林\n */\nimport { defineComponent, ref,
|
|
1
|
+
{"version":3,"file":"DicReplace.cjs","sources":["../../../src/dic/DicReplace.tsx"],"sourcesContent":["/**\n * 字典替换\n * 根据字典名字及对应的value替换成中文或者人能看懂的文字\n * @author 余春林\n */\nimport { defineComponent, ref, watch } from \"vue\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n// import DicWorker from \"./replace.worker?worker&inline\";\nimport { useDataDicStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DicReplace\",\n props: {\n // 字典名称\n name: {\n type: String,\n default: \"\"\n },\n // 值\n value: {\n type: String as any,\n default: \"\"\n }\n },\n setup(props) {\n const { getDicTextByValue } = useDataDicStore();\n //TODO 使用webworker存在一定的问题\n //const workerStatus = ref(true);\n const dicValueTxt = ref<any>(\"\");\n // const repWorkerPool: any = inject(\"repWorkerPool\");\n // // 获取worker\n // const workerInstance: any = repWorkerPool.getWorker();\n /**\n * web worker 启动失败\n */\n // workerInstance.onerror = () => {\n // workerStatus.value = false;\n // };\n /**\n * 监听web worker发送的数据\n * @param e\n */\n // workerInstance.onmessage = (e: any) => {\n // // 赋值给下拉选择数据变量\n // dicValueTxt.value = e.data;\n // };\n\n watch(\n () => props.value,\n (val: any) => {\n const value = val;\n const name = props.name;\n dicValueTxt.value = getDicTextByValue(name, value);\n },\n {\n immediate: true\n }\n );\n\n return () => <>{dicValueTxt.value}</>;\n }\n});\n"],"names":["defineComponent","name","props","type","String","default","value","setup","getDicTextByValue","useDataDicStore","dicValueTxt","ref","watch","val","immediate","_createVNode","_Fragment"],"mappings":";;;;;;;AAWA,iCAA+BA,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,YAAA;AAAA,EACNC,KAAO,EAAA;AAAA;AAAA,IAELD,IAAM,EAAA;AAAA,MACJE,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,OAAS,EAAA,EAAA;AAAA,KACX;AAAA;AAAA,IAEAC,KAAO,EAAA;AAAA,MACLH,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,OAAS,EAAA,EAAA;AAAA,KACX;AAAA,GACF;AAAA,EACAE,MAAML,KAAO,EAAA;AACX,IAAM,MAAA;AAAA,MAAEM,iBAAAA;AAAAA,QAAsBC,qBAAgB,EAAA,CAAA;AAG9C,IAAMC,MAAAA,WAAAA,GAAcC,QAAS,EAAE,CAAA,CAAA;AAmB/BC,IACEA,SAAA,CAAA,MAAMV,KAAMI,CAAAA,KAAAA,EACXO,CAAa,GAAA,KAAA;AACZ,MAAA,MAAMP,KAAQO,GAAAA,GAAAA,CAAAA;AACd,MAAA,MAAMZ,OAAOC,KAAMD,CAAAA,IAAAA,CAAAA;AACnBS,MAAYJ,WAAAA,CAAAA,KAAAA,GAAQE,iBAAkBP,CAAAA,IAAAA,EAAMK,KAAK,CAAA,CAAA;AAAA,KAEnD,EAAA;AAAA,MACEQ,SAAW,EAAA,IAAA;AAAA,KAEf,CAAA,CAAA;AAEA,IAAA,OAAO,MAAAC,eAAAC,CAAAA,YAAAA,SAASN,WAAAA,CAAYJ,KAAK,CAAI,CAAA,CAAA;AAAA,GACvC;AACF,CAAC,CAAA;;;;"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<{
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
showConfig: {
|
|
3
|
+
type: null;
|
|
4
|
+
required: false;
|
|
5
|
+
default: any;
|
|
6
|
+
};
|
|
7
|
+
breadcrumbStatus: {
|
|
8
|
+
type: BooleanConstructor;
|
|
9
|
+
required: false;
|
|
10
|
+
};
|
|
11
|
+
}, {
|
|
12
|
+
props: any;
|
|
2
13
|
store: import("pinia").Store<string, {
|
|
3
14
|
list: string[];
|
|
4
15
|
}, {
|
|
@@ -41,7 +52,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
41
52
|
}>;
|
|
42
53
|
switchCollapsed: () => void;
|
|
43
54
|
collapsedStatus: import("vue").ComputedRef<boolean>;
|
|
44
|
-
keepAliveRef: import("vue").Ref<any>;
|
|
45
55
|
readonly MenuFoldOutlined: import("@ant-design/icons-vue/lib/icons/MenuFoldOutlined").MenuFoldOutlinedIconType;
|
|
46
56
|
readonly MenuUnfoldOutlined: import("@ant-design/icons-vue/lib/icons/MenuUnfoldOutlined").MenuUnfoldOutlinedIconType;
|
|
47
57
|
DNavTabs: import("vue").DefineComponent<{}, {
|
|
@@ -125,5 +135,18 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
125
135
|
readonly CloseOutlined: import("@ant-design/icons-vue/lib/icons/CloseOutlined").CloseOutlinedIconType;
|
|
126
136
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
127
137
|
readonly Menu: import("vue").DefineComponent<{}, () => JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
128
|
-
},
|
|
138
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
139
|
+
showConfig: {
|
|
140
|
+
type: null;
|
|
141
|
+
required: false;
|
|
142
|
+
default: any;
|
|
143
|
+
};
|
|
144
|
+
breadcrumbStatus: {
|
|
145
|
+
type: BooleanConstructor;
|
|
146
|
+
required: false;
|
|
147
|
+
};
|
|
148
|
+
}>>, {
|
|
149
|
+
showConfig: any;
|
|
150
|
+
breadcrumbStatus: boolean;
|
|
151
|
+
}, {}>;
|
|
129
152
|
export default _default;
|
|
@@ -13,17 +13,18 @@ const _hoisted_2 = { class: "ditari-menu" };
|
|
|
13
13
|
const _hoisted_3 = { class: "ditari-user-menu" };
|
|
14
14
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
15
15
|
__name: "FuckMain",
|
|
16
|
+
props: {
|
|
17
|
+
"showConfig": { type: null, required: false, default: { backBtn: "LeftOutlined" } },
|
|
18
|
+
"breadcrumbStatus": { type: Boolean, required: false }
|
|
19
|
+
},
|
|
16
20
|
setup(__props) {
|
|
21
|
+
const props = __props;
|
|
22
|
+
vue.provide("showConfig", props.showConfig);
|
|
17
23
|
const store$1 = store.useKeepAliveStore();
|
|
18
24
|
const keepAliveNames = vue.computed(() => store$1.get);
|
|
19
25
|
const settingsStore = store.useSettingsStore();
|
|
20
26
|
const { switchCollapsed } = settingsStore;
|
|
21
27
|
const collapsedStatus = vue.computed(() => settingsStore.getCollapsed);
|
|
22
|
-
const keepAliveRef = vue.ref();
|
|
23
|
-
vue.nextTick(() => {
|
|
24
|
-
const instance = vue.getCurrentInstance();
|
|
25
|
-
console.log(instance);
|
|
26
|
-
});
|
|
27
28
|
return (_ctx, _cache) => {
|
|
28
29
|
const _component_a_layout_sider = vue.resolveComponent("a-layout-sider");
|
|
29
30
|
const _component_router_view = vue.resolveComponent("router-view");
|
|
@@ -90,12 +91,36 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
90
91
|
class: "ditari-layout-content"
|
|
91
92
|
}, {
|
|
92
93
|
default: vue.withCtx(() => [
|
|
93
|
-
vue.createVNode(_component_router_view
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
vue.createVNode(_component_router_view, null, {
|
|
95
|
+
default: vue.withCtx(({ Component }) => [
|
|
96
|
+
vue.createVNode(
|
|
97
|
+
vue.Transition,
|
|
98
|
+
{
|
|
99
|
+
name: "main",
|
|
100
|
+
mode: "out-in",
|
|
101
|
+
appear: ""
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
default: vue.withCtx(() => [
|
|
105
|
+
(vue.openBlock(), vue.createBlock(vue.KeepAlive, {
|
|
106
|
+
ref: "keepAliveRef",
|
|
107
|
+
include: keepAliveNames.value
|
|
108
|
+
}, [
|
|
109
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
|
|
110
|
+
key: _ctx.$route.path
|
|
111
|
+
}))
|
|
112
|
+
], 1032, ["include"]))
|
|
113
|
+
]),
|
|
114
|
+
_: 2
|
|
115
|
+
/* DYNAMIC */
|
|
116
|
+
},
|
|
117
|
+
1024
|
|
118
|
+
/* DYNAMIC_SLOTS */
|
|
119
|
+
)
|
|
120
|
+
]),
|
|
121
|
+
_: 1
|
|
122
|
+
/* STABLE */
|
|
123
|
+
}),
|
|
99
124
|
vue.renderSlot(_ctx.$slots, "micro")
|
|
100
125
|
]),
|
|
101
126
|
_: 3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FuckMain.vue2.cjs","sources":["../../../src/layout/FuckMain.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * FUCK MAIN 入口文件\n */\nimport { computed,
|
|
1
|
+
{"version":3,"file":"FuckMain.vue2.cjs","sources":["../../../src/layout/FuckMain.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * FUCK MAIN 入口文件\n */\nimport { computed, provide } from \"vue\";\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from \"@ant-design/icons-vue\";\nimport { useKeepAliveStore, useSettingsStore } from \"@ditari/store\";\n\n//标签页组件\nimport DNavTabs from \"./NavTabs.vue\";\n// 菜单组件\nimport Menu from \"../menu/Menu\";\n\nconst props = defineProps({\n \"showConfig\": { type: null, required: false, default: { backBtn: \"LeftOutlined\" } as any },\n \"breadcrumbStatus\": { type: Boolean, required: false, }\n});\n\n// 注入show组件的配置文件\n// eslint-disable-next-line vue/no-setup-props-destructure\nprovide(\"showConfig\", props.showConfig);\n\n// 缓存store\nconst store = useKeepAliveStore();\n// 缓存的names\nconst keepAliveNames = computed(() => store.get);\n// 设置store\nconst settingsStore = useSettingsStore();\nconst { switchCollapsed } = settingsStore;\nconst collapsedStatus = computed(() => settingsStore.getCollapsed);\n</script>\n<template>\n <a-layout class=\"ditari-layout\">\n <a-layout-sider\n v-model:collapsed=\"collapsedStatus\"\n :trigger=\"null\"\n collapsible\n class=\"ditari-layout-sider\"\n >\n <div class=\"ditari-logo\">\n <slot name=\"logo\"></slot>\n </div>\n <div class=\"ditari-menu\">\n <Menu />\n </div>\n </a-layout-sider>\n <a-layout>\n <div\n class=\"ditari-fuck-top-layout\"\n :style=\"{ left: collapsedStatus ? '80px' : '200px' }\"\n >\n <div class=\"ditari-side-collapsed\" @click=\"switchCollapsed\">\n <menu-unfold-outlined\n v-if=\"collapsedStatus\"\n class=\"trigger\"\n style=\"font-size: 16px; font-weight: bold; cursor: pointer\"\n />\n <menu-fold-outlined\n v-else\n style=\"font-size: 16px; font-weight: bold; cursor: pointer\"\n />\n </div>\n <d-nav-tabs />\n <div class=\"ditari-user-menu\">\n <slot name=\"operation\"></slot>\n </div>\n </div>\n <a-layout-content\n style=\"margin-top: 42px\"\n class=\"ditari-layout-content\"\n :style=\"{ marginLeft: collapsedStatus ? '80px' : '200px' }\"\n >\n <router-view v-slot=\"{ Component }\">\n <transition name=\"main\" mode=\"out-in\" appear>\n <keep-alive ref=\"keepAliveRef\" :include=\"keepAliveNames\">\n <component :is=\"Component\" :key=\"$route.path\" />\n </keep-alive>\n </transition>\n </router-view>\n <slot name=\"micro\"></slot>\n </a-layout-content>\n </a-layout>\n </a-layout>\n <a-back-top class=\"ditari-ant-back-top\" :visibility-height=\"50\"></a-back-top>\n</template>\n"],"names":["provide","store","useKeepAliveStore","computed","useSettingsStore"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,IAAQA,WAAA,CAAA,YAAA,EAAc,MAAM,UAAU,CAAA,CAAA;AAGtC,IAAA,MAAMC,UAAQC,uBAAkB,EAAA,CAAA;AAEhC,IAAA,MAAM,cAAiB,GAAAC,YAAA,CAAS,MAAMF,OAAA,CAAM,GAAG,CAAA,CAAA;AAE/C,IAAA,MAAM,gBAAgBG,sBAAiB,EAAA,CAAA;AACvC,IAAM,MAAA,EAAE,iBAAoB,GAAA,aAAA,CAAA;AAC5B,IAAA,MAAM,eAAkB,GAAAD,YAAA,CAAS,MAAM,aAAA,CAAc,YAAY,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -44,6 +44,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
44
44
|
useWatch: () => WatchStopHandle;
|
|
45
45
|
formRef: import("vue").Ref<null>;
|
|
46
46
|
formHeight: import("vue").Ref<number>;
|
|
47
|
+
stop: () => void;
|
|
47
48
|
calcHeight: () => void;
|
|
48
49
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "refresh"[], "refresh", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
|
|
49
50
|
onRefresh?: ((...args: any[]) => any) | undefined;
|
|
@@ -71,15 +71,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
71
71
|
vue.watch(
|
|
72
72
|
() => formHeight.value,
|
|
73
73
|
() => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
vue.nextTick(() => {
|
|
75
|
+
calcHeight();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
77
78
|
);
|
|
78
|
-
|
|
79
|
+
const { stop } = core.useResizeObserver(document.body, () => {
|
|
79
80
|
calcHeight();
|
|
80
81
|
});
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
vue.onUnmounted(() => {
|
|
83
|
+
stop();
|
|
83
84
|
});
|
|
84
85
|
function calcHeight() {
|
|
85
86
|
show.value = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.vue2.cjs","sources":["../../../src/layout/List.vue"],"sourcesContent":["<script lang=\"ts\">\nconst marginBottom = 16\n</script>\n<script setup lang=\"ts\">\nimport {\n useSlots,\n ref,\n onActivated,\n watch,\n onDeactivated,\n onUnmounted,\n WatchStopHandle,\n inject,\n nextTick
|
|
1
|
+
{"version":3,"file":"List.vue2.cjs","sources":["../../../src/layout/List.vue"],"sourcesContent":["<script lang=\"ts\">\nconst marginBottom = 16\n</script>\n<script setup lang=\"ts\">\nimport {\n useSlots,\n ref,\n onActivated,\n watch,\n onDeactivated,\n onUnmounted,\n WatchStopHandle,\n inject,\n nextTick\n} from \"vue\";\nimport { useElementSize, useResizeObserver } from \"@vueuse/core\";\nimport { useSettingsStore } from \"@ditari/store\";\nimport { storeToRefs } from \"pinia\";\nimport { useRoute } from \"vue-router\";\n\nconst emits = defineEmits([\"refresh\"]);\n\nconst slots = useSlots();\nconst store = useSettingsStore();\nconst route = useRoute();\nconst configProvider = inject(\"configProvider\") as any;\n\nconst { refresh } = storeToRefs(store);\n\nconst toolsRef = ref();\nconst tableRef = ref();\n\nconst show = ref(false);\nconst height = ref(0);\n\nlet stopHandleWatch: WatchStopHandle;\n\nwatch(\n () => configProvider?.componentSize,\n () => {\n calcHeight();\n }\n);\n\nuseReload();\n// 处理标签重载\nfunction useReload() {\n // !route.meta.keepAlive\n if (!route.name) {\n stopHandleWatch = useWatch();\n // 卸载未缓存的组件\n onUnmounted(() => {\n stopHandleWatch();\n });\n } else {\n // 激活缓存页面\n onActivated(() => {\n if (refresh.value) {\n refresh.value = false;\n emits(\"refresh\");\n }\n stopHandleWatch = useWatch();\n });\n // 离开缓存页面\n onDeactivated(() => {\n stopHandleWatch();\n });\n }\n}\n\nfunction useWatch() {\n //点击了标签重载图标\n return watch(\n () => refresh.value,\n (val) => {\n if (val) {\n // 发送刷新事件到列表页面\n emits(\"refresh\");\n }\n }\n );\n}\n\n// 监听表单高度变化\n// 然后再获取表格高度\n// 在表格高度动态变化的时候会被监听到\nconst formRef = ref(null);\nconst { height: formHeight } = useElementSize(formRef);\nwatch(\n () => formHeight.value,\n () => {\n nextTick(() => {\n calcHeight();\n });\n }\n);\n\nconst { stop } = useResizeObserver(document.body, () => {\n calcHeight();\n});\n\nonUnmounted(() => {\n stop();\n});\n\n// 动态计算高度\nfunction calcHeight() {\n show.value = false;\n nextTick(() => {\n height.value = tableRef?.value?.offsetHeight;\n show.value = true;\n });\n}\n</script>\n<template>\n <div class=\"ditari-list-layout\">\n <div ref=\"contentRef\" class=\"wrapper\">\n <a-card\n ref=\"formRef\"\n :bordered=\"false\"\n :class=\"{ 'ditari-list-form': slots.form }\"\n :style=\"{ 'margin-bottom': slots.form ? marginBottom + 'px' : 0 }\"\n >\n <slot name=\"form\" />\n </a-card>\n <a-card class=\"ditari-list-table\" :bordered=\"false\">\n <div\n ref=\"toolsRef\"\n class=\"xi-tools\"\n :style=\"{ 'margin-bottom': slots.tools ? marginBottom + 'px' : 0 }\"\n >\n <a-space>\n <slot name=\"tools\"></slot>\n </a-space>\n </div>\n <div ref=\"tableRef\" style=\"flex: 1\">\n <div v-show=\"show\" style=\"height: 100%\">\n <slot name=\"table\" :height=\"height\" />\n </div>\n </div>\n </a-card>\n </div>\n <div class=\"ditari-content-extra\">\n <slot></slot>\n </div>\n </div>\n</template>\n<style></style>\n"],"names":["useSlots","store","useSettingsStore","useRoute","inject","storeToRefs","ref","watch","onUnmounted","onActivated","onDeactivated","useElementSize","nextTick","useResizeObserver"],"mappings":"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"}
|
|
@@ -22,12 +22,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
22
22
|
},
|
|
23
23
|
setup(__props) {
|
|
24
24
|
const props = __props;
|
|
25
|
+
vue.provide("showConfig", props.showConfig);
|
|
25
26
|
const store$1 = store.useKeepAliveStore();
|
|
26
27
|
const keepAliveNames = vue.computed(() => store$1.get);
|
|
27
28
|
const settingsStore = store.useSettingsStore();
|
|
28
29
|
const { switchCollapsed } = settingsStore;
|
|
29
30
|
const collapsedStatus = vue.computed(() => settingsStore.getCollapsed);
|
|
30
|
-
vue.provide("showConfig", props.showConfig);
|
|
31
31
|
return (_ctx, _cache) => {
|
|
32
32
|
const _component_a_layout_sider = vue.resolveComponent("a-layout-sider");
|
|
33
33
|
const _component_router_view = vue.resolveComponent("router-view");
|
|
@@ -101,14 +101,36 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
101
101
|
style: vue.normalizeStyle({ marginLeft: collapsedStatus.value ? "80px" : "200px" })
|
|
102
102
|
}, {
|
|
103
103
|
default: vue.withCtx(() => [
|
|
104
|
-
vue.createVNode(_component_router_view
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
vue.createVNode(_component_router_view, null, {
|
|
105
|
+
default: vue.withCtx(({ Component }) => [
|
|
106
|
+
vue.createVNode(
|
|
107
|
+
vue.Transition,
|
|
108
|
+
{
|
|
109
|
+
name: "main",
|
|
110
|
+
mode: "out-in",
|
|
111
|
+
appear: ""
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
default: vue.withCtx(() => [
|
|
115
|
+
(vue.openBlock(), vue.createBlock(vue.KeepAlive, {
|
|
116
|
+
ref: "keepAliveRef",
|
|
117
|
+
include: keepAliveNames.value
|
|
118
|
+
}, [
|
|
119
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
|
|
120
|
+
key: _ctx.$route.path
|
|
121
|
+
}))
|
|
122
|
+
], 1032, ["include"]))
|
|
123
|
+
]),
|
|
124
|
+
_: 2
|
|
125
|
+
/* DYNAMIC */
|
|
126
|
+
},
|
|
127
|
+
1024
|
|
128
|
+
/* DYNAMIC_SLOTS */
|
|
129
|
+
)
|
|
130
|
+
]),
|
|
131
|
+
_: 1
|
|
132
|
+
/* STABLE */
|
|
133
|
+
}),
|
|
112
134
|
vue.renderSlot(_ctx.$slots, "micro")
|
|
113
135
|
]),
|
|
114
136
|
_: 3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.vue2.cjs","sources":["../../../src/layout/Main.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * 入口文件\n */\nimport { computed, provide } from \"vue\";\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from \"@ant-design/icons-vue\";\nimport { useKeepAliveStore, useSettingsStore } from \"@ditari/store\";\n\n//标签页组件\nimport DNavTabs from \"./NavTabs.vue\";\n//面包屑组件\nimport DBreadcrumb from \"./Breadcrumb.vue\";\n// 菜单组件\nimport Menu from \"../menu/Menu\";\n\nconst props = defineProps({\n \"showConfig\": { type: null, required: false, default: { backBtn: \"LeftOutlined\" } as any },\n \"breadcrumbStatus\": { type: Boolean, required: false, }\n});\n\n// 缓存store\nconst store = useKeepAliveStore();\n// 缓存的names\nconst keepAliveNames = computed(() => store.get);\n// 设置store\nconst settingsStore = useSettingsStore();\nconst { switchCollapsed } = settingsStore;\nconst collapsedStatus = computed(() => settingsStore.getCollapsed);\n
|
|
1
|
+
{"version":3,"file":"Main.vue2.cjs","sources":["../../../src/layout/Main.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * 入口文件\n */\nimport { computed, provide } from \"vue\";\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from \"@ant-design/icons-vue\";\nimport { useKeepAliveStore, useSettingsStore } from \"@ditari/store\";\n\n//标签页组件\nimport DNavTabs from \"./NavTabs.vue\";\n//面包屑组件\nimport DBreadcrumb from \"./Breadcrumb.vue\";\n// 菜单组件\nimport Menu from \"../menu/Menu\";\n\nconst props = defineProps({\n \"showConfig\": { type: null, required: false, default: { backBtn: \"LeftOutlined\" } as any },\n \"breadcrumbStatus\": { type: Boolean, required: false, }\n});\n// 注入show组件的配置文件\n// eslint-disable-next-line vue/no-setup-props-destructure\nprovide(\"showConfig\", props.showConfig);\n// 缓存store\nconst store = useKeepAliveStore();\n// 缓存的names\nconst keepAliveNames = computed(() => store.get);\n// 设置store\nconst settingsStore = useSettingsStore();\nconst { switchCollapsed } = settingsStore;\nconst collapsedStatus = computed(() => settingsStore.getCollapsed);\n</script>\n<template>\n <a-layout class=\"ditari-layout\">\n <a-layout-sider\n v-model:collapsed=\"collapsedStatus\"\n :trigger=\"null\"\n collapsible\n class=\"ditari-layout-sider\"\n >\n <div>\n <div class=\"ditari-logo\">\n <slot name=\"logo\"></slot>\n </div>\n <div class=\"ditari-menu\">\n <Menu />\n </div>\n </div>\n </a-layout-sider>\n <a-layout>\n <div\n class=\"ditari-top-layout\"\n :style=\"{ left: collapsedStatus ? '80px' : '200px' }\"\n >\n <d-nav-tabs />\n <div class=\"ditari-layout-header\">\n <div class=\"ditari-layout-header-left\">\n <div class=\"ditari-side-collapsed\" @click=\"switchCollapsed\">\n <menu-unfold-outlined\n v-if=\"collapsedStatus\"\n class=\"trigger\"\n style=\"font-size: 16px; font-weight: bold; cursor: pointer\"\n />\n <menu-fold-outlined\n v-else\n style=\"font-size: 16px; font-weight: bold; cursor: pointer\"\n />\n </div>\n <d-breadcrumb />\n </div>\n <div class=\"ditari-user-menu\">\n <slot name=\"operation\"></slot>\n </div>\n </div>\n </div>\n <a-layout-content\n class=\"ditari-layout-content\"\n :style=\"{ marginLeft: collapsedStatus ? '80px' : '200px' }\"\n >\n <router-view v-slot=\"{ Component }\">\n <transition name=\"main\" mode=\"out-in\" appear>\n <keep-alive ref=\"keepAliveRef\" :include=\"keepAliveNames\">\n <component :is=\"Component\" :key=\"$route.path\" />\n </keep-alive>\n </transition>\n </router-view>\n <slot name=\"micro\"></slot>\n </a-layout-content>\n </a-layout>\n </a-layout>\n <a-back-top class=\"ditari-ant-back-top\" :visibility-height=\"50\"></a-back-top>\n</template>\n<style lang=\"scss\"></style>\n"],"names":["provide","store","useKeepAliveStore","computed","useSettingsStore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAQA,WAAA,CAAA,YAAA,EAAc,MAAM,UAAU,CAAA,CAAA;AAEtC,IAAA,MAAMC,UAAQC,uBAAkB,EAAA,CAAA;AAEhC,IAAA,MAAM,cAAiB,GAAAC,YAAA,CAAS,MAAMF,OAAA,CAAM,GAAG,CAAA,CAAA;AAE/C,IAAA,MAAM,gBAAgBG,sBAAiB,EAAA,CAAA;AACvC,IAAM,MAAA,EAAE,iBAAoB,GAAA,aAAA,CAAA;AAC5B,IAAA,MAAM,eAAkB,GAAAD,YAAA,CAAS,MAAM,aAAA,CAAc,YAAY,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/menu/Menu.cjs
CHANGED
|
@@ -29,13 +29,15 @@ var Menu = /* @__PURE__ */ vue.defineComponent({
|
|
|
29
29
|
const {
|
|
30
30
|
getCollapsed
|
|
31
31
|
} = pinia.storeToRefs(settingsStore);
|
|
32
|
-
vue.
|
|
32
|
+
vue.watch(() => selectedMenuKeys.value, (newValue) => {
|
|
33
33
|
if (getCollapsed.value) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
const activatedUrl =
|
|
36
|
+
const activatedUrl = newValue.length > 0 ? newValue[0] : "";
|
|
37
37
|
const parentUrls = getParentUrls(list.value, activatedUrl);
|
|
38
38
|
openMenusKeys.value = parentUrls || [];
|
|
39
|
+
}, {
|
|
40
|
+
deep: true
|
|
39
41
|
});
|
|
40
42
|
function getParentUrls(menus, url) {
|
|
41
43
|
for (let i = 0; i < menus.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.cjs","sources":["../../../src/menu/Menu.tsx"],"sourcesContent":["import { defineComponent, h, inject, resolveComponent, watchEffect } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\n\nimport { storeToRefs } from \"pinia\";\n\nimport { useMenuStore, useSettingsStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DMenu\",\n setup() {\n const router = useRouter();\n const route = useRoute();\n const { componentName, prop: menuProp } = inject(\"menuIcon\") as any;\n // 菜单store\n const menuStore = useMenuStore();\n const { list, openMenusKeys, selectedMenuKeys } = storeToRefs(menuStore);\n // 设置store\n const settingsStore = useSettingsStore();\n const { getCollapsed } = storeToRefs(settingsStore) as any;\n\n watchEffect(() => {\n if (getCollapsed.value) {\n // 如果菜单是收缩的状态,则不匹配激活的菜单\n // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n return;\n }\n // 会被触发两次\n // 当前激活的url\n const activatedUrl =\n selectedMenuKeys.value.length > 0 ? selectedMenuKeys.value[0] : \"\";\n const parentUrls = getParentUrls(list.value, activatedUrl);\n openMenusKeys.value = parentUrls || [];\n });\n\n function getParentUrls(menus: any, url: any) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].url === url || url.startsWith(menus[i].url)) {\n // 如果当前菜单项的url与传入的url相等,说明找到了当前菜单项\n return [menus[i].url];\n } else if (menus[i].children && menus[i].children.length > 0) {\n // 如果当前菜单项有子菜单,则递归查找子菜单\n const parentUrls: any = getParentUrls(menus[i].children, url);\n if (parentUrls) {\n // 如果子菜单中存在当前url,则将当前菜单项的url添加到返回结果中\n return [menus[i].url, ...parentUrls];\n }\n }\n }\n return null;\n }\n\n /**\n * 监听菜单点击事件\n * @param item\n * @param key\n * @param keyPath\n */\n const onClick = ({ key, keyPath }: any) => {\n openMenusKeys.value = keyPath;\n selectedMenuKeys.value = [key];\n // 判断目标路由和当前路由是否相等\n // 不相等的时候再跳转\n route.path !== key\n ? router.push(key).then((r) => (r ? console.warn(r) : null))\n : null;\n };\n\n // 渲染菜单\n const renderMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n icon: () => renderIcon(menu),\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n const iconClass = [\"anticon\", \"anticon-menu\", \"ant-menu-item-icon\"];\n // 渲染图标\n const renderIcon = (menu: any) => {\n return (\n <>\n {!menu.icon ? (\n <div v-show={getCollapsed.value} class={iconClass}>\n {menu.title.substring(0, 1)}\n </div>\n ) : (\n renderIconSwitch(menu.icon)\n )}\n </>\n );\n };\n\n const renderIconSwitch = (icon: any) => {\n if (componentName === \"nativeHtml\") {\n return <span v-html={icon}></span>;\n } else {\n return h(resolveComponent(componentName), {\n [`${menuProp}`]: icon\n });\n }\n };\n\n // 递归渲染子菜单\n const renderSub = (menu: any) => {\n return (\n <>\n <a-sub-menu key={menu.url}>\n {{\n title: () => menu.title,\n icon: () => renderIcon(menu),\n default: () => {\n return menu.children.map(\n (item: any) =>\n !item.children || item.children.length === 0\n ? renderSubMenu(item)\n : renderSub(item) // 递归调用\n );\n }\n }}\n </a-sub-menu>\n </>\n );\n };\n\n // 递归下的子菜单\n const renderSubMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n return () => (\n <>\n <a-menu\n mode=\"inline\"\n theme=\"dark\"\n v-model:openKeys={openMenusKeys.value}\n v-model:selectedKeys={selectedMenuKeys.value}\n onClick={onClick}\n >\n {list.value.map((menu: any) => {\n if (!menu.children || menu.children?.length === 0) {\n // 没有children属性或者children的长度等于0\n return renderMenu(menu);\n } else {\n return renderSub(menu);\n }\n })}\n </a-menu>\n </>\n );\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","setup","router","useRouter","route","useRoute","componentName","prop","menuProp","inject","menuStore","useMenuStore","list","openMenusKeys","selectedMenuKeys","storeToRefs","settingsStore","useSettingsStore","getCollapsed","watchEffect","value","activatedUrl","length","parentUrls","getParentUrls","menus","url","i","startsWith","children","onClick","key","keyPath","path","push","then","r","console","warn","renderMenu","menu","_createVNode","_Fragment","_resolveComponent","icon","renderIcon","default","title","iconClass","_withDirectives","substring","_vShow","renderIconSwitch","h","resolveComponent","renderSub","map","item","renderSubMenu","_slot","$event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.cjs","sources":["../../../src/menu/Menu.tsx"],"sourcesContent":["import { defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\n\nimport { storeToRefs } from \"pinia\";\n\nimport { useMenuStore, useSettingsStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DMenu\",\n setup() {\n const router = useRouter();\n const route = useRoute();\n const { componentName, prop: menuProp } = inject(\"menuIcon\") as any;\n // 菜单store\n const menuStore = useMenuStore();\n const { list, openMenusKeys, selectedMenuKeys } = storeToRefs(menuStore);\n // 设置store\n const settingsStore = useSettingsStore();\n const { getCollapsed } = storeToRefs(settingsStore) as any;\n\n // watchEffect(() => {\n // if (getCollapsed.value) {\n // // 如果菜单是收缩的状态,则不匹配激活的菜单\n // // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n // return;\n // }\n // // 会被触发两次\n // // 当前激活的url\n // const activatedUrl =\n // selectedMenuKeys.value.length > 0 ? selectedMenuKeys.value[0] : \"\";\n // const parentUrls = getParentUrls(list.value, activatedUrl);\n // openMenusKeys.value = parentUrls || [];\n // });\n\n watch(\n () => selectedMenuKeys.value,\n (newValue: any) => {\n if (getCollapsed.value) {\n // 如果菜单是收缩的状态,则不匹配激活的菜单\n // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n return;\n }\n const activatedUrl = newValue.length > 0 ? newValue[0] : \"\";\n const parentUrls = getParentUrls(list.value, activatedUrl);\n openMenusKeys.value = parentUrls || [];\n },\n {\n deep: true\n }\n );\n\n function getParentUrls(menus: any, url: any) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].url === url || url.startsWith(menus[i].url)) {\n // 如果当前菜单项的url与传入的url相等,说明找到了当前菜单项\n return [menus[i].url];\n } else if (menus[i].children && menus[i].children.length > 0) {\n // 如果当前菜单项有子菜单,则递归查找子菜单\n const parentUrls: any = getParentUrls(menus[i].children, url);\n if (parentUrls) {\n // 如果子菜单中存在当前url,则将当前菜单项的url添加到返回结果中\n return [menus[i].url, ...parentUrls];\n }\n }\n }\n return null;\n }\n\n /**\n * 监听菜单点击事件\n * @param item\n * @param key\n * @param keyPath\n */\n const onClick = ({ key, keyPath }: any) => {\n openMenusKeys.value = keyPath;\n selectedMenuKeys.value = [key];\n // 判断目标路由和当前路由是否相等\n // 不相等的时候再跳转\n route.path !== key\n ? router.push(key).then((r) => (r ? console.warn(r) : null))\n : null;\n };\n\n // 渲染菜单\n const renderMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n icon: () => renderIcon(menu),\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n const iconClass = [\"anticon\", \"anticon-menu\", \"ant-menu-item-icon\"];\n // 渲染图标\n const renderIcon = (menu: any) => {\n return (\n <>\n {!menu.icon ? (\n <div v-show={getCollapsed.value} class={iconClass}>\n {menu.title.substring(0, 1)}\n </div>\n ) : (\n renderIconSwitch(menu.icon)\n )}\n </>\n );\n };\n\n const renderIconSwitch = (icon: any) => {\n if (componentName === \"nativeHtml\") {\n return <span v-html={icon}></span>;\n } else {\n return h(resolveComponent(componentName), {\n [`${menuProp}`]: icon\n });\n }\n };\n\n // 递归渲染子菜单\n const renderSub = (menu: any) => {\n return (\n <>\n <a-sub-menu key={menu.url}>\n {{\n title: () => menu.title,\n icon: () => renderIcon(menu),\n default: () => {\n return menu.children.map(\n (item: any) =>\n !item.children || item.children.length === 0\n ? renderSubMenu(item)\n : renderSub(item) // 递归调用\n );\n }\n }}\n </a-sub-menu>\n </>\n );\n };\n\n // 递归下的子菜单\n const renderSubMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n return () => (\n <>\n <a-menu\n mode=\"inline\"\n theme=\"dark\"\n v-model:openKeys={openMenusKeys.value}\n v-model:selectedKeys={selectedMenuKeys.value}\n onClick={onClick}\n >\n {list.value.map((menu: any) => {\n if (!menu.children || menu.children?.length === 0) {\n // 没有children属性或者children的长度等于0\n return renderMenu(menu);\n } else {\n return renderSub(menu);\n }\n })}\n </a-menu>\n </>\n );\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","setup","router","useRouter","route","useRoute","componentName","prop","menuProp","inject","menuStore","useMenuStore","list","openMenusKeys","selectedMenuKeys","storeToRefs","settingsStore","useSettingsStore","getCollapsed","watch","value","newValue","activatedUrl","length","parentUrls","getParentUrls","deep","menus","url","i","startsWith","children","onClick","key","keyPath","path","push","then","r","console","warn","renderMenu","menu","_createVNode","_Fragment","_resolveComponent","icon","renderIcon","default","title","iconClass","_withDirectives","substring","_vShow","renderIconSwitch","h","resolveComponent","renderSub","map","item","renderSubMenu","_slot","$event"],"mappings":"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"}
|
package/dist/cjs/table/Table.cjs
CHANGED
|
@@ -101,12 +101,6 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
101
101
|
const expandedKeys = vue.ref(props.expandedRowKeys);
|
|
102
102
|
paginationConfig.pageSizeOptions = (_c = (_b = (_a = props.config) == null ? void 0 : _a.pageOption) == null ? void 0 : _b.sizeOptions) != null ? _c : paginationConfig.pageSizeOptions;
|
|
103
103
|
paginationConfig.defaultPageSize = (_f = (_e = (_d = props.config) == null ? void 0 : _d.pageOption) == null ? void 0 : _e.defaultSize) != null ? _f : paginationConfig.defaultPageSize;
|
|
104
|
-
vue.watchEffect(() => {
|
|
105
|
-
const {
|
|
106
|
-
expandedRowKeys
|
|
107
|
-
} = props;
|
|
108
|
-
expandedKeys.value = expandedRowKeys;
|
|
109
|
-
});
|
|
110
104
|
const {
|
|
111
105
|
tableRef,
|
|
112
106
|
tableRootRef,
|
|
@@ -145,19 +139,26 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
145
139
|
console.warn(e);
|
|
146
140
|
}
|
|
147
141
|
};
|
|
148
|
-
|
|
149
|
-
|
|
142
|
+
let playTimeout = null;
|
|
143
|
+
vue.watch(() => props.height, (val) => {
|
|
144
|
+
if (val !== 0) {
|
|
150
145
|
vue.nextTick(() => {
|
|
151
146
|
if (isInit.value) {
|
|
152
147
|
playHeight(props.height);
|
|
153
148
|
} else {
|
|
154
|
-
setTimeout(() => {
|
|
149
|
+
playTimeout = setTimeout(() => {
|
|
155
150
|
playHeight(props.height);
|
|
156
151
|
}, 100);
|
|
157
152
|
}
|
|
158
153
|
});
|
|
159
154
|
}
|
|
160
155
|
});
|
|
156
|
+
vue.onBeforeUnmount(() => {
|
|
157
|
+
playTimeout && clearTimeout(playTimeout);
|
|
158
|
+
});
|
|
159
|
+
vue.onDeactivated(() => {
|
|
160
|
+
playTimeout && clearTimeout(playTimeout);
|
|
161
|
+
});
|
|
161
162
|
const onPageChange2 = (page, size) => {
|
|
162
163
|
onChange ? onChange({
|
|
163
164
|
page: page === 0 ? 1 : page,
|
|
@@ -208,11 +209,8 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
208
209
|
selectedRowKeys.value = val;
|
|
209
210
|
});
|
|
210
211
|
const rowSelection2 = vue.ref(void 0);
|
|
211
|
-
vue.
|
|
212
|
-
|
|
213
|
-
selection
|
|
214
|
-
} = props.config;
|
|
215
|
-
localSelection = selection;
|
|
212
|
+
vue.watch(() => props.config.selection, (val) => {
|
|
213
|
+
localSelection = val;
|
|
216
214
|
if (localSelection !== "N") {
|
|
217
215
|
rowSelection2.value = {
|
|
218
216
|
selectedRowKeys,
|
|
@@ -226,6 +224,8 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
226
224
|
} else {
|
|
227
225
|
rowSelection2.value = void 0;
|
|
228
226
|
}
|
|
227
|
+
}, {
|
|
228
|
+
immediate: true
|
|
229
229
|
});
|
|
230
230
|
return rowSelection2;
|
|
231
231
|
}
|