@ditari/bsui 1.1.35 → 1.1.37
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 +13 -3
- package/dist/cjs/date/RangePicker.cjs.map +1 -1
- package/dist/cjs/layout/FuckMain.vue.d.ts +2 -17
- package/dist/cjs/layout/FuckMain.vue2.cjs +1 -25
- package/dist/cjs/layout/FuckMain.vue2.cjs.map +1 -1
- package/dist/cjs/layout/List.vue2.cjs +3 -0
- package/dist/cjs/layout/List.vue2.cjs.map +1 -1
- package/dist/cjs/layout/Show.vue.d.ts +1 -0
- package/dist/cjs/layout/Show.vue2.cjs +14 -7
- package/dist/cjs/layout/Show.vue2.cjs.map +1 -1
- package/dist/esm/date/RangePicker.mjs +13 -3
- package/dist/esm/date/RangePicker.mjs.map +1 -1
- package/dist/esm/layout/FuckMain.vue.d.ts +2 -17
- package/dist/esm/layout/FuckMain.vue2.mjs +2 -26
- package/dist/esm/layout/FuckMain.vue2.mjs.map +1 -1
- package/dist/esm/layout/List.vue2.mjs +4 -1
- package/dist/esm/layout/List.vue2.mjs.map +1 -1
- package/dist/esm/layout/Show.vue.d.ts +1 -0
- package/dist/esm/layout/Show.vue2.mjs +15 -8
- package/dist/esm/layout/Show.vue2.mjs.map +1 -1
- package/example/src/main.ts +7 -0
- package/example/src/views/table/Add.vue +0 -154
- package/example/src/views/table/List.vue +4 -10
- package/package.json +1 -1
- package/src/date/RangePicker.tsx +14 -3
- package/src/layout/FuckMain.vue +1 -32
- package/src/layout/List.vue +5 -1
- package/src/layout/Show.vue +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -28,7 +28,6 @@ var RangePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
28
28
|
attrs
|
|
29
29
|
}) {
|
|
30
30
|
const dates = vue.ref([]);
|
|
31
|
-
const modelValue = vue.ref(props.value);
|
|
32
31
|
const internalModel = vue.ref((props == null ? void 0 : props.value) || {});
|
|
33
32
|
const onChange = (dates2) => {
|
|
34
33
|
if (!dates2) {
|
|
@@ -43,11 +42,22 @@ var RangePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
43
42
|
emit("update:value", internalModel.value);
|
|
44
43
|
};
|
|
45
44
|
vue.watchEffect(() => {
|
|
45
|
+
const value = props.value;
|
|
46
46
|
props.field.forEach((key, index) => {
|
|
47
|
-
if (
|
|
47
|
+
if (value[key] === "") {
|
|
48
48
|
dates.value && (dates.value[index] = "");
|
|
49
49
|
} else {
|
|
50
|
-
dates.value && (dates.value[index] =
|
|
50
|
+
dates.value && (dates.value[index] = value[key]);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
vue.watchEffect(() => {
|
|
55
|
+
const value = props.value;
|
|
56
|
+
props.field.forEach((key, index) => {
|
|
57
|
+
if (value[key] === "") {
|
|
58
|
+
dates.value && (dates.value[index] = "");
|
|
59
|
+
} else {
|
|
60
|
+
dates.value && (dates.value[index] = value[key]);
|
|
51
61
|
}
|
|
52
62
|
});
|
|
53
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.cjs","sources":["../../../src/date/RangePicker.tsx"],"sourcesContent":["import { defineComponent, ref, watchEffect } 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
|
|
1
|
+
{"version":3,"file":"RangePicker.cjs","sources":["../../../src/date/RangePicker.tsx"],"sourcesContent":["import { defineComponent, ref, watchEffect } 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 watchEffect(() => {\n const value: any = props.value;\n props.field.forEach((key, index) => {\n if (value[key] === \"\") {\n dates.value && (dates.value[index] = \"\");\n } else {\n dates.value && (dates.value[index] = value[key]);\n }\n });\n });\n\n watchEffect(() => {\n const value: any = props.value;\n props.field.forEach((key, index) => {\n if (value[key] === \"\") {\n dates.value && (dates.value[index] = \"\");\n } else {\n dates.value && (dates.value[index] = value[key]);\n }\n });\n });\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","watchEffect","_createVNode","RangePicker","_mergeProps","$event","width"],"mappings":";;;;;;;AAOA,kCAA+BA,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,cAAA;AAAA,EACNC,KAAO,EAAA;AAAA,IACLC,KAAO,EAAA;AAAA,MACLC,IAAMC,EAAAA,MAAAA;AAAAA,KACR;AAAA,IACAC,KAAO,EAAA;AAAA,MACLC,QAAU,EAAA,IAAA;AAAA,MACVC,SAAS,EAAA;AAAA,KACX;AAAA,IACAC,MAAQ,EAAA;AAAA,MACND,OAAS,EAAA,YAAA;AAAA,KACX;AAAA,IACAE,WAAa,EAAA;AAAA,MACXF,OAAS,EAAA,YAAA;AAAA,KACX;AAAA,GACF;AAAA,EACAG,KAAAA,EAAO,CAAC,cAAc,CAAA;AAAA,EACtBC,MAAMV,KAAO,EAAA;AAAA,IAAEW,IAAAA;AAAAA,IAAMC,KAAAA;AAAAA,GAAS,EAAA;AAC5B,IAAMC,MAAAA,KAAAA,GAAQC,OAAc,CAAA,EAAE,CAAA,CAAA;AAG9B,IAAA,MAAMC,aAAgBD,GAAAA,OAAAA,CAAAA,CAAiCd,KAAOC,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,KAAAA,KAAS,EAAE,CAAA,CAAA;AAGzE,IAAMe,MAAAA,QAAAA,GAAYH,CAAAA,MAAsB,KAAA;AACtC,MAAA,IAAI,CAACA,MAAO,EAAA;AACVb,QAAMI,KAAAA,CAAAA,KAAAA,CAAMa,QAASC,CAAQ,GAAA,KAAA;AAC3BH,UAAcd,aAAAA,CAAAA,KAAAA,CAAMiB,GAAG,CAAI,GAAA,EAAA,CAAA;AAAA,SAC5B,CAAA,CAAA;AAAA,OACI,MAAA;AACLlB,QAAAA,KAAAA,CAAMI,KAAMa,CAAAA,OAAAA,CAAQ,CAACC,GAAAA,EAAKC,KAAU,KAAA;AAClCJ,UAAAA,aAAAA,CAAcd,KAAMiB,CAAAA,GAAG,CAAIL,GAAAA,MAAAA,CAAMM,KAAK,CAAA,CAAA;AAAA,SACvC,CAAA,CAAA;AAAA,OACH;AACAR,MAAK,IAAA,CAAA,cAAA,EAAgBI,cAAcd,KAAK,CAAA,CAAA;AAAA,KAC1C,CAAA;AAEAmB,IAAAA,eAAAA,CAAY,MAAM;AAChB,MAAA,MAAMnB,QAAaD,KAAMC,CAAAA,KAAAA,CAAAA;AACzBD,MAAAA,KAAAA,CAAMI,KAAMa,CAAAA,OAAAA,CAAQ,CAACC,GAAAA,EAAKC,KAAU,KAAA;AAClC,QAAIlB,IAAAA,KAAAA,CAAMiB,GAAG,CAAA,KAAM,EAAI,EAAA;AACrBL,UAAAA,KAAAA,CAAMZ,KAAUY,KAAAA,KAAAA,CAAMZ,KAAMkB,CAAAA,KAAK,CAAI,GAAA,EAAA,CAAA,CAAA;AAAA,SAChC,MAAA;AACLN,UAAAA,KAAAA,CAAMZ,UAAUY,KAAMZ,CAAAA,KAAAA,CAAMkB,KAAK,CAAA,GAAIlB,MAAMiB,GAAG,CAAA,CAAA,CAAA;AAAA,SAChD;AAAA,OACD,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAEDE,IAAAA,eAAAA,CAAY,MAAM;AAChB,MAAA,MAAMnB,QAAaD,KAAMC,CAAAA,KAAAA,CAAAA;AACzBD,MAAAA,KAAAA,CAAMI,KAAMa,CAAAA,OAAAA,CAAQ,CAACC,GAAAA,EAAKC,KAAU,KAAA;AAClC,QAAIlB,IAAAA,KAAAA,CAAMiB,GAAG,CAAA,KAAM,EAAI,EAAA;AACrBL,UAAAA,KAAAA,CAAMZ,KAAUY,KAAAA,KAAAA,CAAMZ,KAAMkB,CAAAA,KAAK,CAAI,GAAA,EAAA,CAAA,CAAA;AAAA,SAChC,MAAA;AACLN,UAAAA,KAAAA,CAAMZ,UAAUY,KAAMZ,CAAAA,KAAAA,CAAMkB,KAAK,CAAA,GAAIlB,MAAMiB,GAAG,CAAA,CAAA,CAAA;AAAA,SAChD;AAAA,OACD,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAO,OAAA,MAAAG,gBAAAA,KAAAA,EAAAA,IAAAA,EAAAA,CAAAA,eAAAC,CAAAA,wBAAAA,EAAAC,eAGGX,KAAK,EAAA;AAAA,MAAA,SACMC,KAAMZ,CAAAA,KAAAA;AAAAA,MAAK,gBAAA,EAAAuB,CAAXX,MAAAA,KAAAA,KAAAA,CAAMZ,KAAKuB,GAAAA,MAAAA;AAAAA,MAAA,UAChBR,EAAAA,QAAAA;AAAAA,MAAQ,UACVhB,KAAMO,CAAAA,MAAAA;AAAAA,MAAM,eACPP,KAAMQ,CAAAA,WAAAA;AAAAA,MAAW,OACvB,EAAA;AAAA,QAAEiB,KAAO,EAAA,MAAA;AAAA,OAAO;AAAA,KAG5B,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<{
|
|
2
|
-
showConfig: {
|
|
3
|
-
type: null;
|
|
4
|
-
required: true;
|
|
5
|
-
default: any;
|
|
6
|
-
};
|
|
7
|
-
}, {
|
|
8
|
-
props: any;
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {
|
|
9
2
|
store: import("pinia").Store<string, {
|
|
10
3
|
list: string[];
|
|
11
4
|
}, {
|
|
@@ -131,13 +124,5 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
131
124
|
readonly CloseOutlined: import("@ant-design/icons-vue/lib/icons/CloseOutlined").CloseOutlinedIconType;
|
|
132
125
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
133
126
|
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<{}>>, {}, {}>;
|
|
134
|
-
},
|
|
135
|
-
showConfig: {
|
|
136
|
-
type: null;
|
|
137
|
-
required: true;
|
|
138
|
-
default: any;
|
|
139
|
-
};
|
|
140
|
-
}>>, {
|
|
141
|
-
showConfig: any;
|
|
142
|
-
}, {}>;
|
|
127
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
143
128
|
export default _default;
|
|
@@ -13,17 +13,12 @@ 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: true, default: { backBtn: "LeftOutlined" } }
|
|
18
|
-
},
|
|
19
16
|
setup(__props) {
|
|
20
|
-
const props = __props;
|
|
21
17
|
const store$1 = store.useKeepAliveStore();
|
|
22
18
|
const keepAliveNames = vue.computed(() => store$1.get);
|
|
23
19
|
const settingsStore = store.useSettingsStore();
|
|
24
20
|
const { switchCollapsed } = settingsStore;
|
|
25
21
|
const collapsedStatus = vue.computed(() => settingsStore.getCollapsed);
|
|
26
|
-
vue.provide("showConfig", props.showConfig);
|
|
27
22
|
return (_ctx, _cache) => {
|
|
28
23
|
const _component_a_layout_sider = vue.resolveComponent("a-layout-sider");
|
|
29
24
|
const _component_router_view = vue.resolveComponent("router-view");
|
|
@@ -80,26 +75,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
80
75
|
vue.createVNode(NavTabs.default),
|
|
81
76
|
vue.createElementVNode("div", _hoisted_3, [
|
|
82
77
|
vue.renderSlot(_ctx.$slots, "operation")
|
|
83
|
-
])
|
|
84
|
-
vue.createCommentVNode(' <div class="ditari-layout-header">'),
|
|
85
|
-
vue.createCommentVNode(' <div class="ditari-layout-header-left">'),
|
|
86
|
-
vue.createCommentVNode(' <div class="ditari-side-collapsed" @click="switchCollapsed">'),
|
|
87
|
-
vue.createCommentVNode(" <menu-unfold-outlined"),
|
|
88
|
-
vue.createCommentVNode(' v-if="collapsedStatus"'),
|
|
89
|
-
vue.createCommentVNode(' class="trigger"'),
|
|
90
|
-
vue.createCommentVNode(' style="font-size: 16px; font-weight: bold; cursor: pointer"'),
|
|
91
|
-
vue.createCommentVNode(" />"),
|
|
92
|
-
vue.createCommentVNode(" <menu-fold-outlined"),
|
|
93
|
-
vue.createCommentVNode(" v-else"),
|
|
94
|
-
vue.createCommentVNode(' style="font-size: 16px; font-weight: bold; cursor: pointer"'),
|
|
95
|
-
vue.createCommentVNode(" />"),
|
|
96
|
-
vue.createCommentVNode(" </div>"),
|
|
97
|
-
vue.createCommentVNode(" "),
|
|
98
|
-
vue.createCommentVNode(" </div>"),
|
|
99
|
-
vue.createCommentVNode(' <div class="ditari-user-menu">'),
|
|
100
|
-
vue.createCommentVNode(' <slot name="operation"></slot>'),
|
|
101
|
-
vue.createCommentVNode(" </div>"),
|
|
102
|
-
vue.createCommentVNode(" </div>")
|
|
78
|
+
])
|
|
103
79
|
],
|
|
104
80
|
4
|
|
105
81
|
/* STYLE */
|
|
@@ -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 } 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\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":["store","useKeepAliveStore","computed","useSettingsStore"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAA,MAAMA,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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,\n watchEffect\n} from \"vue\";\nimport { useElementSize } 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// 然后再获取表格高度\nconst formRef = ref(null);\nconst { height: formHeight } = useElementSize(formRef);\nwatch(\n () => formHeight.value,\n () => {\n calcHeight();\n },\n { immediate: true }\n);\n\nwatchEffect(() => {\n calcHeight();\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","watchEffect","nextTick"],"mappings":"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"}
|
|
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 watchEffect\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// 然后再获取表格高度\nconst formRef = ref(null);\nconst { height: formHeight } = useElementSize(formRef);\nwatch(\n () => formHeight.value,\n () => {\n calcHeight();\n },\n { immediate: true }\n);\n\nwatchEffect(() => {\n calcHeight();\n});\n\nuseResizeObserver(document.body, () => {\n calcHeight();\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","watchEffect","useResizeObserver","nextTick"],"mappings":"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"}
|
|
@@ -82,6 +82,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
82
82
|
gridMatching(): any;
|
|
83
83
|
}>;
|
|
84
84
|
showConfig: any;
|
|
85
|
+
collapsedStatus: import("vue").ComputedRef<boolean>;
|
|
85
86
|
btnRender: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
86
87
|
[key: string]: any;
|
|
87
88
|
}>;
|
|
@@ -10,10 +10,6 @@ var store = require('@ditari/store');
|
|
|
10
10
|
var pinia = require('pinia');
|
|
11
11
|
|
|
12
12
|
const _hoisted_1 = { class: "ditari-show-layout" };
|
|
13
|
-
const _hoisted_2 = {
|
|
14
|
-
key: 0,
|
|
15
|
-
class: "ditari-show-footer"
|
|
16
|
-
};
|
|
17
13
|
const delayTime = 200;
|
|
18
14
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
19
15
|
__name: "Show",
|
|
@@ -29,6 +25,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
29
25
|
const navTabStore = store.useNavTabsStore();
|
|
30
26
|
const settingsStore = store.useSettingsStore();
|
|
31
27
|
const showConfig = vue.inject("showConfig");
|
|
28
|
+
const collapsedStatus = vue.computed(() => settingsStore.getCollapsed);
|
|
32
29
|
const btnRender = () => {
|
|
33
30
|
if (!showConfig) {
|
|
34
31
|
return vue.h(iconsVue.LeftOutlined);
|
|
@@ -106,9 +103,19 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
106
103
|
}, [
|
|
107
104
|
vue.renderSlot(_ctx.$slots, "default")
|
|
108
105
|
]),
|
|
109
|
-
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock(
|
|
110
|
-
|
|
111
|
-
|
|
106
|
+
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
key: 0,
|
|
110
|
+
class: "ditari-show-footer",
|
|
111
|
+
style: vue.normalizeStyle({ left: collapsedStatus.value ? "80px" : "200px" })
|
|
112
|
+
},
|
|
113
|
+
[
|
|
114
|
+
vue.renderSlot(_ctx.$slots, "footer")
|
|
115
|
+
],
|
|
116
|
+
4
|
|
117
|
+
/* STYLE */
|
|
118
|
+
)) : vue.createCommentVNode("v-if", true)
|
|
112
119
|
]),
|
|
113
120
|
_: 3
|
|
114
121
|
/* FORWARDED */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Show.vue2.cjs","sources":["../../../src/layout/Show.vue"],"sourcesContent":["<script lang=\"ts\">\nconst delayTime = 200\n</script>\n<script setup lang=\"ts\">\n/**\n * 详情/新增/编辑组件\n */\nimport { computed, inject, useSlots, watch, h, resolveComponent } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useScrollLock, useWindowScroll } from \"@vueuse/core\";\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\nimport { useNavTabsStore, useSettingsStore } from \"@ditari/store\";\n\nimport { storeToRefs } from \"pinia\";\n\nconst props = defineProps({\n \"close\": { type: Boolean, required: false, default: false },\n \"loading\": { type: Boolean, required: false, default: false }\n});\n\nconst router = useRouter();\nconst route = useRoute();\nconst slots = useSlots();\n\nconst navTabStore = useNavTabsStore();\nconst settingsStore = useSettingsStore();\n\nconst showConfig = inject(\"showConfig\") as any;\
|
|
1
|
+
{"version":3,"file":"Show.vue2.cjs","sources":["../../../src/layout/Show.vue"],"sourcesContent":["<script lang=\"ts\">\nconst delayTime = 200\n</script>\n<script setup lang=\"ts\">\n/**\n * 详情/新增/编辑组件\n */\nimport { computed, inject, useSlots, watch, h, resolveComponent } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useScrollLock, useWindowScroll } from \"@vueuse/core\";\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\nimport { useNavTabsStore, useSettingsStore } from \"@ditari/store\";\n\nimport { storeToRefs } from \"pinia\";\n\nconst props = defineProps({\n \"close\": { type: Boolean, required: false, default: false },\n \"loading\": { type: Boolean, required: false, default: false }\n});\n\nconst router = useRouter();\nconst route = useRoute();\nconst slots = useSlots();\n\nconst navTabStore = useNavTabsStore();\nconst settingsStore = useSettingsStore();\n\nconst showConfig = inject(\"showConfig\") as any;\nconst collapsedStatus = computed(() => settingsStore.getCollapsed);\nconst btnRender = () => {\n if (!showConfig) {\n return h(LeftOutlined);\n } else {\n return h(resolveComponent(showConfig.backBtn));\n }\n};\n\nconst { refresh } = storeToRefs(settingsStore);\n\nconst showLoading = computed(() => props.loading);\n\nconst contentStyle = {\n padding: `10px 10px ${slots.footer ? \"70px\" : \"10px\"} 10px`\n};\n\n/**\n * 点击返回\n */\nconst onBack = () => {\n if (props.close) {\n // 返回关闭标签\n navTabStore.deleteTabs(route.path);\n router.go(-1);\n } else {\n // 不关闭标签\n router.go(-1);\n }\n};\n\n/**\n * 对外暴露方法 调用后关闭标签 并且出发List组件刷新动作\n */\nconst onRefresh = () => {\n refresh.value = true;\n navTabStore.deleteTabs(route.fullPath);\n router.go(-1);\n};\n\n/**\n * 监听屏幕滚动,滚动大于0的时候给a-page-header组件添加阴影\n */\nconst { y } = useWindowScroll();\n// 锁定屏幕\nconst isLocked = useScrollLock(document.body);\n\nwatch(\n () => props.loading,\n (val) => {\n isLocked.value = val;\n }\n);\n\n\ndefineExpose({\n closePage: onRefresh\n});\n</script>\n<template>\n <div class=\"ditari-show-layout\">\n <a-spin\n tip=\"正在处理...\"\n :spinning=\"showLoading\"\n :delay=\"delayTime\"\n size=\"large\"\n >\n <a-page-header\n class=\"ditari-page-header\"\n :class=\"{ active: y > 0 }\"\n :ghost=\"false\"\n @back=\"onBack\"\n >\n <template #backIcon>\n <btn-render />\n </template>\n <template #title>{{ $route.meta.title }} </template>\n <template #subTitle>\n <slot name=\"subTitle\"></slot>\n </template>\n <template #extra>\n <slot name=\"extra\"></slot>\n </template>\n </a-page-header>\n <div class=\"ditari-show-content\" :style=\"contentStyle\">\n <slot></slot>\n </div>\n <div\n v-if=\"$slots.footer\"\n class=\"ditari-show-footer\"\n :style=\"{ left: collapsedStatus ? '80px' : '200px' }\"\n >\n <slot name=\"footer\"></slot>\n </div>\n </a-spin>\n </div>\n</template>\n<style lang=\"scss\"></style>\n"],"names":["useRouter","useRoute","useSlots","useNavTabsStore","useSettingsStore","inject","computed","h","LeftOutlined","resolveComponent","storeToRefs","useWindowScroll","useScrollLock","watch"],"mappings":";;;;;;;;;;;;AACA,MAAM,SAAY,GAAA,GAAA,CAAA;;;;;;;;;AAmBlB,IAAA,MAAM,SAASA,mBAAU,EAAA,CAAA;AACzB,IAAA,MAAM,QAAQC,kBAAS,EAAA,CAAA;AACvB,IAAA,MAAM,QAAQC,YAAS,EAAA,CAAA;AAEvB,IAAA,MAAM,cAAcC,qBAAgB,EAAA,CAAA;AACpC,IAAA,MAAM,gBAAgBC,sBAAiB,EAAA,CAAA;AAEvC,IAAM,MAAA,UAAA,GAAaC,WAAO,YAAY,CAAA,CAAA;AACtC,IAAA,MAAM,eAAkB,GAAAC,YAAA,CAAS,MAAM,aAAA,CAAc,YAAY,CAAA,CAAA;AACjE,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,IAAI,CAAC,UAAY,EAAA;AACf,QAAA,OAAOC,MAAEC,qBAAY,CAAA,CAAA;AAAA,OAChB,MAAA;AACL,QAAA,OAAOD,KAAE,CAAAE,oBAAA,CAAiB,UAAW,CAAA,OAAO,CAAC,CAAA,CAAA;AAAA,OAC/C;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,EAAE,OAAA,EAAY,GAAAC,iBAAA,CAAY,aAAa,CAAA,CAAA;AAE7C,IAAA,MAAM,WAAc,GAAAJ,YAAA,CAAS,MAAM,KAAA,CAAM,OAAO,CAAA,CAAA;AAEhD,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,OAAS,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,GAAS,SAAS,MAAM,CAAA,KAAA,CAAA;AAAA,KACtD,CAAA;AAKA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,IAAI,MAAM,KAAO,EAAA;AAEf,QAAY,WAAA,CAAA,UAAA,CAAW,MAAM,IAAI,CAAA,CAAA;AACjC,QAAA,MAAA,CAAO,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,OACP,MAAA;AAEL,QAAA,MAAA,CAAO,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,OACd;AAAA,KACF,CAAA;AAKA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAChB,MAAY,WAAA,CAAA,UAAA,CAAW,MAAM,QAAQ,CAAA,CAAA;AACrC,MAAA,MAAA,CAAO,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,KACd,CAAA;AAKA,IAAM,MAAA,EAAE,CAAE,EAAA,GAAIK,oBAAgB,EAAA,CAAA;AAE9B,IAAM,MAAA,QAAA,GAAWC,kBAAc,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAE5C,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,OAAA;AAAA,MACZ,CAAC,GAAQ,KAAA;AACP,QAAA,QAAA,CAAS,KAAQ,GAAA,GAAA,CAAA;AAAA,OACnB;AAAA,KACF,CAAA;AAGA,IAAa,QAAA,CAAA;AAAA,MACX,SAAW,EAAA,SAAA;AAAA,KACZ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -24,7 +24,6 @@ var RangePicker = /* @__PURE__ */ defineComponent({
|
|
|
24
24
|
attrs
|
|
25
25
|
}) {
|
|
26
26
|
const dates = ref([]);
|
|
27
|
-
const modelValue = ref(props.value);
|
|
28
27
|
const internalModel = ref((props == null ? void 0 : props.value) || {});
|
|
29
28
|
const onChange = (dates2) => {
|
|
30
29
|
if (!dates2) {
|
|
@@ -39,11 +38,22 @@ var RangePicker = /* @__PURE__ */ defineComponent({
|
|
|
39
38
|
emit("update:value", internalModel.value);
|
|
40
39
|
};
|
|
41
40
|
watchEffect(() => {
|
|
41
|
+
const value = props.value;
|
|
42
42
|
props.field.forEach((key, index) => {
|
|
43
|
-
if (
|
|
43
|
+
if (value[key] === "") {
|
|
44
44
|
dates.value && (dates.value[index] = "");
|
|
45
45
|
} else {
|
|
46
|
-
dates.value && (dates.value[index] =
|
|
46
|
+
dates.value && (dates.value[index] = value[key]);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
watchEffect(() => {
|
|
51
|
+
const value = props.value;
|
|
52
|
+
props.field.forEach((key, index) => {
|
|
53
|
+
if (value[key] === "") {
|
|
54
|
+
dates.value && (dates.value[index] = "");
|
|
55
|
+
} else {
|
|
56
|
+
dates.value && (dates.value[index] = value[key]);
|
|
47
57
|
}
|
|
48
58
|
});
|
|
49
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.mjs","sources":["../../../src/date/RangePicker.tsx"],"sourcesContent":["import { defineComponent, ref, watchEffect } 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
|
|
1
|
+
{"version":3,"file":"RangePicker.mjs","sources":["../../../src/date/RangePicker.tsx"],"sourcesContent":["import { defineComponent, ref, watchEffect } 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 watchEffect(() => {\n const value: any = props.value;\n props.field.forEach((key, index) => {\n if (value[key] === \"\") {\n dates.value && (dates.value[index] = \"\");\n } else {\n dates.value && (dates.value[index] = value[key]);\n }\n });\n });\n\n watchEffect(() => {\n const value: any = props.value;\n props.field.forEach((key, index) => {\n if (value[key] === \"\") {\n dates.value && (dates.value[index] = \"\");\n } else {\n dates.value && (dates.value[index] = value[key]);\n }\n });\n });\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":["name","props","value","type","Object","field","required","default","format","valueFormat","emits","setup","emit","attrs","dates","ref","internalModel","onChange","forEach","key","index","watchEffect","_createVNode","RangePicker","_mergeProps","$event","width"],"mappings":"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"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<{
|
|
2
|
-
showConfig: {
|
|
3
|
-
type: null;
|
|
4
|
-
required: true;
|
|
5
|
-
default: any;
|
|
6
|
-
};
|
|
7
|
-
}, {
|
|
8
|
-
props: any;
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {
|
|
9
2
|
store: import("pinia").Store<string, {
|
|
10
3
|
list: string[];
|
|
11
4
|
}, {
|
|
@@ -131,13 +124,5 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
131
124
|
readonly CloseOutlined: import("@ant-design/icons-vue/lib/icons/CloseOutlined").CloseOutlinedIconType;
|
|
132
125
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
133
126
|
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<{}>>, {}, {}>;
|
|
134
|
-
},
|
|
135
|
-
showConfig: {
|
|
136
|
-
type: null;
|
|
137
|
-
required: true;
|
|
138
|
-
default: any;
|
|
139
|
-
};
|
|
140
|
-
}>>, {
|
|
141
|
-
showConfig: any;
|
|
142
|
-
}, {}>;
|
|
127
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
143
128
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed,
|
|
1
|
+
import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, withCtx, createElementVNode, renderSlot, unref, normalizeStyle, createBlock, Transition, KeepAlive, resolveDynamicComponent } from 'vue';
|
|
2
2
|
import { MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons-vue';
|
|
3
3
|
import { useKeepAliveStore, useSettingsStore } from '@ditari/store';
|
|
4
4
|
import DNavTabs from './NavTabs.vue.mjs';
|
|
@@ -9,17 +9,12 @@ const _hoisted_2 = { class: "ditari-menu" };
|
|
|
9
9
|
const _hoisted_3 = { class: "ditari-user-menu" };
|
|
10
10
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
11
|
__name: "FuckMain",
|
|
12
|
-
props: {
|
|
13
|
-
"showConfig": { type: null, required: true, default: { backBtn: "LeftOutlined" } }
|
|
14
|
-
},
|
|
15
12
|
setup(__props) {
|
|
16
|
-
const props = __props;
|
|
17
13
|
const store = useKeepAliveStore();
|
|
18
14
|
const keepAliveNames = computed(() => store.get);
|
|
19
15
|
const settingsStore = useSettingsStore();
|
|
20
16
|
const { switchCollapsed } = settingsStore;
|
|
21
17
|
const collapsedStatus = computed(() => settingsStore.getCollapsed);
|
|
22
|
-
provide("showConfig", props.showConfig);
|
|
23
18
|
return (_ctx, _cache) => {
|
|
24
19
|
const _component_a_layout_sider = resolveComponent("a-layout-sider");
|
|
25
20
|
const _component_router_view = resolveComponent("router-view");
|
|
@@ -76,26 +71,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
76
71
|
createVNode(DNavTabs),
|
|
77
72
|
createElementVNode("div", _hoisted_3, [
|
|
78
73
|
renderSlot(_ctx.$slots, "operation")
|
|
79
|
-
])
|
|
80
|
-
createCommentVNode(' <div class="ditari-layout-header">'),
|
|
81
|
-
createCommentVNode(' <div class="ditari-layout-header-left">'),
|
|
82
|
-
createCommentVNode(' <div class="ditari-side-collapsed" @click="switchCollapsed">'),
|
|
83
|
-
createCommentVNode(" <menu-unfold-outlined"),
|
|
84
|
-
createCommentVNode(' v-if="collapsedStatus"'),
|
|
85
|
-
createCommentVNode(' class="trigger"'),
|
|
86
|
-
createCommentVNode(' style="font-size: 16px; font-weight: bold; cursor: pointer"'),
|
|
87
|
-
createCommentVNode(" />"),
|
|
88
|
-
createCommentVNode(" <menu-fold-outlined"),
|
|
89
|
-
createCommentVNode(" v-else"),
|
|
90
|
-
createCommentVNode(' style="font-size: 16px; font-weight: bold; cursor: pointer"'),
|
|
91
|
-
createCommentVNode(" />"),
|
|
92
|
-
createCommentVNode(" </div>"),
|
|
93
|
-
createCommentVNode(" "),
|
|
94
|
-
createCommentVNode(" </div>"),
|
|
95
|
-
createCommentVNode(' <div class="ditari-user-menu">'),
|
|
96
|
-
createCommentVNode(' <slot name="operation"></slot>'),
|
|
97
|
-
createCommentVNode(" </div>"),
|
|
98
|
-
createCommentVNode(" </div>")
|
|
74
|
+
])
|
|
99
75
|
],
|
|
100
76
|
4
|
|
101
77
|
/* STYLE */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FuckMain.vue2.mjs","sources":["../../../src/layout/FuckMain.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * FUCK MAIN 入口文件\n */\nimport { computed
|
|
1
|
+
{"version":3,"file":"FuckMain.vue2.mjs","sources":["../../../src/layout/FuckMain.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * FUCK MAIN 入口文件\n */\nimport { computed } 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\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":[],"mappings":";;;;;;;;;;;;AAcA,IAAA,MAAM,QAAQ,iBAAkB,EAAA,CAAA;AAEhC,IAAA,MAAM,cAAiB,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAE/C,IAAA,MAAM,gBAAgB,gBAAiB,EAAA,CAAA;AACvC,IAAM,MAAA,EAAE,iBAAoB,GAAA,aAAA,CAAA;AAC5B,IAAA,MAAM,eAAkB,GAAA,QAAA,CAAS,MAAM,aAAA,CAAc,YAAY,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, useSlots, inject, ref, watch, onUnmounted, onActivated, onDeactivated, watchEffect, nextTick, resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, normalizeClass, unref, normalizeStyle, withCtx, renderSlot, withDirectives, vShow } from 'vue';
|
|
2
|
-
import { useElementSize } from '@vueuse/core';
|
|
2
|
+
import { useElementSize, useResizeObserver } from '@vueuse/core';
|
|
3
3
|
import { useSettingsStore } from '@ditari/store';
|
|
4
4
|
import { storeToRefs } from 'pinia';
|
|
5
5
|
import { useRoute } from 'vue-router';
|
|
@@ -74,6 +74,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
74
74
|
watchEffect(() => {
|
|
75
75
|
calcHeight();
|
|
76
76
|
});
|
|
77
|
+
useResizeObserver(document.body, () => {
|
|
78
|
+
calcHeight();
|
|
79
|
+
});
|
|
77
80
|
function calcHeight() {
|
|
78
81
|
show.value = false;
|
|
79
82
|
nextTick(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.vue2.mjs","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 watchEffect\n} from \"vue\";\nimport { useElementSize } 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// 然后再获取表格高度\nconst formRef = ref(null);\nconst { height: formHeight } = useElementSize(formRef);\nwatch(\n () => formHeight.value,\n () => {\n calcHeight();\n },\n { immediate: true }\n);\n\nwatchEffect(() => {\n calcHeight();\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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.vue2.mjs","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 watchEffect\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// 然后再获取表格高度\nconst formRef = ref(null);\nconst { height: formHeight } = useElementSize(formRef);\nwatch(\n () => formHeight.value,\n () => {\n calcHeight();\n },\n { immediate: true }\n);\n\nwatchEffect(() => {\n calcHeight();\n});\n\nuseResizeObserver(document.body, () => {\n calcHeight();\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":[],"mappings":"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"}
|
|
@@ -82,6 +82,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
82
82
|
gridMatching(): any;
|
|
83
83
|
}>;
|
|
84
84
|
showConfig: any;
|
|
85
|
+
collapsedStatus: import("vue").ComputedRef<boolean>;
|
|
85
86
|
btnRender: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
86
87
|
[key: string]: any;
|
|
87
88
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, useSlots, inject, h, resolveComponent,
|
|
1
|
+
import { defineComponent, useSlots, inject, computed, h, resolveComponent, watch, openBlock, createElementBlock, createVNode, withCtx, normalizeClass, unref, createTextVNode, toDisplayString, renderSlot, createElementVNode, normalizeStyle, createCommentVNode } from 'vue';
|
|
2
2
|
import { useRouter, useRoute } from 'vue-router';
|
|
3
3
|
import { useWindowScroll, useScrollLock } from '@vueuse/core';
|
|
4
4
|
import { LeftOutlined } from '@ant-design/icons-vue';
|
|
@@ -6,10 +6,6 @@ import { useNavTabsStore, useSettingsStore } from '@ditari/store';
|
|
|
6
6
|
import { storeToRefs } from 'pinia';
|
|
7
7
|
|
|
8
8
|
const _hoisted_1 = { class: "ditari-show-layout" };
|
|
9
|
-
const _hoisted_2 = {
|
|
10
|
-
key: 0,
|
|
11
|
-
class: "ditari-show-footer"
|
|
12
|
-
};
|
|
13
9
|
const delayTime = 200;
|
|
14
10
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
15
11
|
__name: "Show",
|
|
@@ -25,6 +21,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
25
21
|
const navTabStore = useNavTabsStore();
|
|
26
22
|
const settingsStore = useSettingsStore();
|
|
27
23
|
const showConfig = inject("showConfig");
|
|
24
|
+
const collapsedStatus = computed(() => settingsStore.getCollapsed);
|
|
28
25
|
const btnRender = () => {
|
|
29
26
|
if (!showConfig) {
|
|
30
27
|
return h(LeftOutlined);
|
|
@@ -102,9 +99,19 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
102
99
|
}, [
|
|
103
100
|
renderSlot(_ctx.$slots, "default")
|
|
104
101
|
]),
|
|
105
|
-
_ctx.$slots.footer ? (openBlock(), createElementBlock(
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
_ctx.$slots.footer ? (openBlock(), createElementBlock(
|
|
103
|
+
"div",
|
|
104
|
+
{
|
|
105
|
+
key: 0,
|
|
106
|
+
class: "ditari-show-footer",
|
|
107
|
+
style: normalizeStyle({ left: collapsedStatus.value ? "80px" : "200px" })
|
|
108
|
+
},
|
|
109
|
+
[
|
|
110
|
+
renderSlot(_ctx.$slots, "footer")
|
|
111
|
+
],
|
|
112
|
+
4
|
|
113
|
+
/* STYLE */
|
|
114
|
+
)) : createCommentVNode("v-if", true)
|
|
108
115
|
]),
|
|
109
116
|
_: 3
|
|
110
117
|
/* FORWARDED */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Show.vue2.mjs","sources":["../../../src/layout/Show.vue"],"sourcesContent":["<script lang=\"ts\">\nconst delayTime = 200\n</script>\n<script setup lang=\"ts\">\n/**\n * 详情/新增/编辑组件\n */\nimport { computed, inject, useSlots, watch, h, resolveComponent } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useScrollLock, useWindowScroll } from \"@vueuse/core\";\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\nimport { useNavTabsStore, useSettingsStore } from \"@ditari/store\";\n\nimport { storeToRefs } from \"pinia\";\n\nconst props = defineProps({\n \"close\": { type: Boolean, required: false, default: false },\n \"loading\": { type: Boolean, required: false, default: false }\n});\n\nconst router = useRouter();\nconst route = useRoute();\nconst slots = useSlots();\n\nconst navTabStore = useNavTabsStore();\nconst settingsStore = useSettingsStore();\n\nconst showConfig = inject(\"showConfig\") as any;\
|
|
1
|
+
{"version":3,"file":"Show.vue2.mjs","sources":["../../../src/layout/Show.vue"],"sourcesContent":["<script lang=\"ts\">\nconst delayTime = 200\n</script>\n<script setup lang=\"ts\">\n/**\n * 详情/新增/编辑组件\n */\nimport { computed, inject, useSlots, watch, h, resolveComponent } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useScrollLock, useWindowScroll } from \"@vueuse/core\";\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\nimport { useNavTabsStore, useSettingsStore } from \"@ditari/store\";\n\nimport { storeToRefs } from \"pinia\";\n\nconst props = defineProps({\n \"close\": { type: Boolean, required: false, default: false },\n \"loading\": { type: Boolean, required: false, default: false }\n});\n\nconst router = useRouter();\nconst route = useRoute();\nconst slots = useSlots();\n\nconst navTabStore = useNavTabsStore();\nconst settingsStore = useSettingsStore();\n\nconst showConfig = inject(\"showConfig\") as any;\nconst collapsedStatus = computed(() => settingsStore.getCollapsed);\nconst btnRender = () => {\n if (!showConfig) {\n return h(LeftOutlined);\n } else {\n return h(resolveComponent(showConfig.backBtn));\n }\n};\n\nconst { refresh } = storeToRefs(settingsStore);\n\nconst showLoading = computed(() => props.loading);\n\nconst contentStyle = {\n padding: `10px 10px ${slots.footer ? \"70px\" : \"10px\"} 10px`\n};\n\n/**\n * 点击返回\n */\nconst onBack = () => {\n if (props.close) {\n // 返回关闭标签\n navTabStore.deleteTabs(route.path);\n router.go(-1);\n } else {\n // 不关闭标签\n router.go(-1);\n }\n};\n\n/**\n * 对外暴露方法 调用后关闭标签 并且出发List组件刷新动作\n */\nconst onRefresh = () => {\n refresh.value = true;\n navTabStore.deleteTabs(route.fullPath);\n router.go(-1);\n};\n\n/**\n * 监听屏幕滚动,滚动大于0的时候给a-page-header组件添加阴影\n */\nconst { y } = useWindowScroll();\n// 锁定屏幕\nconst isLocked = useScrollLock(document.body);\n\nwatch(\n () => props.loading,\n (val) => {\n isLocked.value = val;\n }\n);\n\n\ndefineExpose({\n closePage: onRefresh\n});\n</script>\n<template>\n <div class=\"ditari-show-layout\">\n <a-spin\n tip=\"正在处理...\"\n :spinning=\"showLoading\"\n :delay=\"delayTime\"\n size=\"large\"\n >\n <a-page-header\n class=\"ditari-page-header\"\n :class=\"{ active: y > 0 }\"\n :ghost=\"false\"\n @back=\"onBack\"\n >\n <template #backIcon>\n <btn-render />\n </template>\n <template #title>{{ $route.meta.title }} </template>\n <template #subTitle>\n <slot name=\"subTitle\"></slot>\n </template>\n <template #extra>\n <slot name=\"extra\"></slot>\n </template>\n </a-page-header>\n <div class=\"ditari-show-content\" :style=\"contentStyle\">\n <slot></slot>\n </div>\n <div\n v-if=\"$slots.footer\"\n class=\"ditari-show-footer\"\n :style=\"{ left: collapsedStatus ? '80px' : '200px' }\"\n >\n <slot name=\"footer\"></slot>\n </div>\n </a-spin>\n </div>\n</template>\n<style lang=\"scss\"></style>\n"],"names":[],"mappings":";;;;;;;;AACA,MAAM,SAAY,GAAA,GAAA,CAAA;;;;;;;;;AAmBlB,IAAA,MAAM,SAAS,SAAU,EAAA,CAAA;AACzB,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,IAAA,MAAM,cAAc,eAAgB,EAAA,CAAA;AACpC,IAAA,MAAM,gBAAgB,gBAAiB,EAAA,CAAA;AAEvC,IAAM,MAAA,UAAA,GAAa,OAAO,YAAY,CAAA,CAAA;AACtC,IAAA,MAAM,eAAkB,GAAA,QAAA,CAAS,MAAM,aAAA,CAAc,YAAY,CAAA,CAAA;AACjE,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,IAAI,CAAC,UAAY,EAAA;AACf,QAAA,OAAO,EAAE,YAAY,CAAA,CAAA;AAAA,OAChB,MAAA;AACL,QAAA,OAAO,CAAE,CAAA,gBAAA,CAAiB,UAAW,CAAA,OAAO,CAAC,CAAA,CAAA;AAAA,OAC/C;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,EAAE,OAAA,EAAY,GAAA,WAAA,CAAY,aAAa,CAAA,CAAA;AAE7C,IAAA,MAAM,WAAc,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,OAAO,CAAA,CAAA;AAEhD,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,OAAS,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,GAAS,SAAS,MAAM,CAAA,KAAA,CAAA;AAAA,KACtD,CAAA;AAKA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,IAAI,MAAM,KAAO,EAAA;AAEf,QAAY,WAAA,CAAA,UAAA,CAAW,MAAM,IAAI,CAAA,CAAA;AACjC,QAAA,MAAA,CAAO,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,OACP,MAAA;AAEL,QAAA,MAAA,CAAO,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,OACd;AAAA,KACF,CAAA;AAKA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAChB,MAAY,WAAA,CAAA,UAAA,CAAW,MAAM,QAAQ,CAAA,CAAA;AACrC,MAAA,MAAA,CAAO,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,KACd,CAAA;AAKA,IAAM,MAAA,EAAE,CAAE,EAAA,GAAI,eAAgB,EAAA,CAAA;AAE9B,IAAM,MAAA,QAAA,GAAW,aAAc,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAE5C,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,OAAA;AAAA,MACZ,CAAC,GAAQ,KAAA;AACP,QAAA,QAAA,CAAS,KAAQ,GAAA,GAAA,CAAA;AAAA,OACnB;AAAA,KACF,CAAA;AAGA,IAAa,QAAA,CAAA;AAAA,MACX,SAAW,EAAA,SAAA;AAAA,KACZ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/example/src/main.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createApp } from "vue";
|
|
2
2
|
import Antd from "ant-design-vue";
|
|
3
3
|
import "ant-design-vue/dist/antd.css";
|
|
4
|
+
import * as Icons from "@ant-design/icons-vue";
|
|
4
5
|
import App from "./App.vue";
|
|
5
6
|
import router from "./router";
|
|
6
7
|
import ui from "../../../bsui/src/index";
|
|
@@ -12,4 +13,10 @@ app.use(Antd);
|
|
|
12
13
|
app.use(router);
|
|
13
14
|
app.use(ui, { menuIcon: { componentName: "nativeHtml", prop: "type" } } as any);
|
|
14
15
|
|
|
16
|
+
//注册UI自带的图标
|
|
17
|
+
const icons: any = Icons;
|
|
18
|
+
for (const i in icons) {
|
|
19
|
+
app.component(i, icons[i]);
|
|
20
|
+
}
|
|
21
|
+
|
|
15
22
|
app.mount("#app");
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
import { onActivated, ref } from "vue";
|
|
3
3
|
import { useRoute } from "vue-router";
|
|
4
4
|
|
|
5
|
-
import { useDeclareData } from "../../store";
|
|
6
|
-
|
|
7
5
|
const columns = [
|
|
8
6
|
{
|
|
9
7
|
title: "商品编码"
|
|
@@ -22,17 +20,8 @@ const columns = [
|
|
|
22
20
|
}
|
|
23
21
|
];
|
|
24
22
|
const route = useRoute();
|
|
25
|
-
const store = useDeclareData();
|
|
26
23
|
const loading = ref(false);
|
|
27
24
|
|
|
28
|
-
onActivated(() => {
|
|
29
|
-
if (route.path.includes("form")) {
|
|
30
|
-
store.data = store.exportDeclarationData;
|
|
31
|
-
} else {
|
|
32
|
-
store.data = store.importDeclarationData;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
|
|
36
25
|
const formState = ref({
|
|
37
26
|
originCountry: ""
|
|
38
27
|
});
|
|
@@ -44,148 +33,6 @@ export default {
|
|
|
44
33
|
</script>
|
|
45
34
|
<template>
|
|
46
35
|
<d-show-layout :loading="loading">
|
|
47
|
-
|
|
48
|
-
<a-card>
|
|
49
|
-
<template #title>
|
|
50
|
-
<span class="title">申报人信息</span>
|
|
51
|
-
</template>
|
|
52
|
-
<a-form :colon="false" :label-col="{ style: { width: '120px' } }">
|
|
53
|
-
<d-grid class-name="ditari-bsui-grid-form" :fill="true" grid="repeat(2, 50%)">
|
|
54
|
-
<d-grid-item>
|
|
55
|
-
<a-form-item label="申报人姓名">
|
|
56
|
-
<a-input />
|
|
57
|
-
</a-form-item>
|
|
58
|
-
</d-grid-item>
|
|
59
|
-
<d-grid-item>
|
|
60
|
-
<a-form-item label="申报人证件号">
|
|
61
|
-
{{ formState.originCountry }}
|
|
62
|
-
<a-input v-model:value="formState.originCountry" v-trim />
|
|
63
|
-
</a-form-item>
|
|
64
|
-
</d-grid-item>
|
|
65
|
-
<d-grid-item>
|
|
66
|
-
<a-button type="primary" block>选择申报人</a-button>
|
|
67
|
-
</d-grid-item>
|
|
68
|
-
</d-grid>
|
|
69
|
-
</a-form>
|
|
70
|
-
</a-card>
|
|
71
|
-
<a-card>
|
|
72
|
-
<template #title>
|
|
73
|
-
<span class="title">基本信息</span>
|
|
74
|
-
</template>
|
|
75
|
-
<a-form :colon="false" :label-col="{ style: { width: '150px' } }">
|
|
76
|
-
<d-grid class-name="ditari-bsui-grid-form">
|
|
77
|
-
<d-grid-item>
|
|
78
|
-
<a-form-item label="进出口标志"> </a-form-item>
|
|
79
|
-
</d-grid-item>
|
|
80
|
-
<d-grid-item>
|
|
81
|
-
<a-form-item label="业务模式"> </a-form-item>
|
|
82
|
-
</d-grid-item>
|
|
83
|
-
<d-grid-item>
|
|
84
|
-
<a-form-item label="运输方式"> </a-form-item>
|
|
85
|
-
</d-grid-item>
|
|
86
|
-
<d-grid-item>
|
|
87
|
-
<a-form-item label="总金额(元)"> </a-form-item>
|
|
88
|
-
</d-grid-item>
|
|
89
|
-
<d-grid-item>
|
|
90
|
-
<a-form-item label="总毛重(KG)"> </a-form-item>
|
|
91
|
-
</d-grid-item>
|
|
92
|
-
<d-grid-item>
|
|
93
|
-
<a-form-item label="总净重(KG)"> </a-form-item>
|
|
94
|
-
</d-grid-item>
|
|
95
|
-
<d-grid-item>
|
|
96
|
-
<a-form-item label="币制"> </a-form-item>
|
|
97
|
-
</d-grid-item>
|
|
98
|
-
<d-grid-item>
|
|
99
|
-
<a-form-item label="件数"> </a-form-item>
|
|
100
|
-
</d-grid-item>
|
|
101
|
-
<d-grid-item>
|
|
102
|
-
<a-form-item label="贸易国别"> </a-form-item>
|
|
103
|
-
</d-grid-item>
|
|
104
|
-
<d-grid-item>
|
|
105
|
-
<a-form-item label="运输工具航次(班)号"> </a-form-item>
|
|
106
|
-
</d-grid-item>
|
|
107
|
-
<d-grid-item>
|
|
108
|
-
<a-form-item label="运输工具号"> </a-form-item>
|
|
109
|
-
</d-grid-item>
|
|
110
|
-
<d-grid-item>
|
|
111
|
-
<a-form-item label="提运单号"> </a-form-item>
|
|
112
|
-
</d-grid-item>
|
|
113
|
-
<d-grid-item>
|
|
114
|
-
<a-form-item label="是否涉及证书预备案"> </a-form-item>
|
|
115
|
-
</d-grid-item>
|
|
116
|
-
<d-grid-item>
|
|
117
|
-
<a-form-item label="证书类型"> </a-form-item>
|
|
118
|
-
</d-grid-item>
|
|
119
|
-
<d-grid-item>
|
|
120
|
-
<a-form-item label="证书预备案编号"> </a-form-item>
|
|
121
|
-
</d-grid-item>
|
|
122
|
-
</d-grid>
|
|
123
|
-
</a-form>
|
|
124
|
-
</a-card>
|
|
125
|
-
<!-- <a-card v-for="item in 3">-->
|
|
126
|
-
<!-- <template #title>-->
|
|
127
|
-
<!-- <span class="title">商品信息</span>-->
|
|
128
|
-
<!-- </template>-->
|
|
129
|
-
<!-- <d-table-->
|
|
130
|
-
<!-- row-key="id"-->
|
|
131
|
-
<!-- bordered-->
|
|
132
|
-
<!-- :height="150"-->
|
|
133
|
-
<!-- :columns="columns"-->
|
|
134
|
-
<!-- :data="[{}]"-->
|
|
135
|
-
<!-- ></d-table>-->
|
|
136
|
-
<!-- <a-form :colon="false" :label-col="{ style: { width: '150px' } }">-->
|
|
137
|
-
<!-- <d-grid class-name="ditari-bsui-grid-form">-->
|
|
138
|
-
<!-- <d-grid-item>-->
|
|
139
|
-
<!-- <a-form-item label="商品编码"> </a-form-item>-->
|
|
140
|
-
<!-- </d-grid-item>-->
|
|
141
|
-
<!-- <d-grid-item>-->
|
|
142
|
-
<!-- <a-form-item label="商品名称"> </a-form-item>-->
|
|
143
|
-
<!-- </d-grid-item>-->
|
|
144
|
-
<!-- <d-grid-item>-->
|
|
145
|
-
<!-- <a-form-item label="规格型号"> </a-form-item>-->
|
|
146
|
-
<!-- </d-grid-item>-->
|
|
147
|
-
<!-- <d-grid-item>-->
|
|
148
|
-
<!-- <a-form-item label="申报计量单位"> </a-form-item>-->
|
|
149
|
-
<!-- </d-grid-item>-->
|
|
150
|
-
<!-- <d-grid-item>-->
|
|
151
|
-
<!-- <a-form-item label="第一计量单位"> </a-form-item>-->
|
|
152
|
-
<!-- </d-grid-item>-->
|
|
153
|
-
<!-- <d-grid-item>-->
|
|
154
|
-
<!-- <a-form-item label="第二计量单位"> </a-form-item>-->
|
|
155
|
-
<!-- </d-grid-item>-->
|
|
156
|
-
<!-- <d-grid-item>-->
|
|
157
|
-
<!-- <a-form-item label="申报数量(千克)"> </a-form-item>-->
|
|
158
|
-
<!-- </d-grid-item>-->
|
|
159
|
-
<!-- <d-grid-item>-->
|
|
160
|
-
<!-- <a-form-item label="第一数量"> </a-form-item>-->
|
|
161
|
-
<!-- </d-grid-item>-->
|
|
162
|
-
<!-- <d-grid-item>-->
|
|
163
|
-
<!-- <a-form-item label="第二数量"> </a-form-item>-->
|
|
164
|
-
<!-- </d-grid-item>-->
|
|
165
|
-
<!-- <d-grid-item>-->
|
|
166
|
-
<!-- <a-form-item label="毛重(KG)"> </a-form-item>-->
|
|
167
|
-
<!-- </d-grid-item>-->
|
|
168
|
-
<!-- <d-grid-item>-->
|
|
169
|
-
<!-- <a-form-item label="净重(KG)"> </a-form-item>-->
|
|
170
|
-
<!-- </d-grid-item>-->
|
|
171
|
-
<!-- <d-grid-item>-->
|
|
172
|
-
<!-- <a-form-item label="产销国"> </a-form-item>-->
|
|
173
|
-
<!-- </d-grid-item>-->
|
|
174
|
-
<!-- <d-grid-item>-->
|
|
175
|
-
<!-- <a-form-item label="申报单价(元)"> </a-form-item>-->
|
|
176
|
-
<!-- </d-grid-item>-->
|
|
177
|
-
<!-- <d-grid-item>-->
|
|
178
|
-
<!-- <a-form-item label="申报总价(元)"> </a-form-item>-->
|
|
179
|
-
<!-- </d-grid-item>-->
|
|
180
|
-
<!-- <d-grid-item>-->
|
|
181
|
-
<!-- <a-form-item label="存储条件"> </a-form-item>-->
|
|
182
|
-
<!-- </d-grid-item>-->
|
|
183
|
-
<!-- <d-grid-item>-->
|
|
184
|
-
<!-- <a-form-item label="用途"> </a-form-item>-->
|
|
185
|
-
<!-- </d-grid-item>-->
|
|
186
|
-
<!-- </d-grid>-->
|
|
187
|
-
<!-- </a-form>-->
|
|
188
|
-
<!-- </a-card>-->
|
|
189
36
|
<template #footer>
|
|
190
37
|
<a-space>
|
|
191
38
|
<a-button type="primary" @click="loading = true">暂存</a-button>
|
|
@@ -201,5 +48,4 @@ export default {
|
|
|
201
48
|
font-weight: bold;
|
|
202
49
|
color: #2589ff;
|
|
203
50
|
}
|
|
204
|
-
|
|
205
51
|
</style>
|
|
@@ -263,10 +263,10 @@ const onQuery = () => {
|
|
|
263
263
|
|
|
264
264
|
const queryParams = ref({ from: "", to: "" });
|
|
265
265
|
|
|
266
|
-
const format = ref("YYYY-MM-DD");
|
|
267
266
|
setTimeout(() => {
|
|
268
|
-
|
|
269
|
-
|
|
267
|
+
queryParams.value.from = "2023-02-04";
|
|
268
|
+
queryParams.value.to = "2023-05-06";
|
|
269
|
+
}, 3000);
|
|
270
270
|
</script>
|
|
271
271
|
<script lang="ts">
|
|
272
272
|
export default {
|
|
@@ -279,13 +279,7 @@ export default {
|
|
|
279
279
|
<d-query-form :value="formState" :scheme="scheme" @query="onQuery">
|
|
280
280
|
</d-query-form>
|
|
281
281
|
{{ queryParams }}
|
|
282
|
-
<d-range-picker
|
|
283
|
-
v-model:value="queryParams"
|
|
284
|
-
:format="format"
|
|
285
|
-
:value-format="format"
|
|
286
|
-
:field="['from', 'to']"
|
|
287
|
-
picker="year"
|
|
288
|
-
/>
|
|
282
|
+
<d-range-picker v-model:value="queryParams" :field="['from', 'to']" />
|
|
289
283
|
</template>
|
|
290
284
|
<template #table="{ height }">
|
|
291
285
|
<d-table
|
package/package.json
CHANGED
package/src/date/RangePicker.tsx
CHANGED
|
@@ -25,7 +25,6 @@ export default defineComponent({
|
|
|
25
25
|
emits: ["update:value"],
|
|
26
26
|
setup(props, { emit, attrs }) {
|
|
27
27
|
const dates = ref<string[]>([]);
|
|
28
|
-
const modelValue: any = ref(props.value);
|
|
29
28
|
|
|
30
29
|
//内部model
|
|
31
30
|
const internalModel = ref<{ [name: string]: unknown }>(props?.value || {});
|
|
@@ -45,11 +44,23 @@ export default defineComponent({
|
|
|
45
44
|
};
|
|
46
45
|
|
|
47
46
|
watchEffect(() => {
|
|
47
|
+
const value: any = props.value;
|
|
48
48
|
props.field.forEach((key, index) => {
|
|
49
|
-
if (
|
|
49
|
+
if (value[key] === "") {
|
|
50
50
|
dates.value && (dates.value[index] = "");
|
|
51
51
|
} else {
|
|
52
|
-
dates.value && (dates.value[index] =
|
|
52
|
+
dates.value && (dates.value[index] = value[key]);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
watchEffect(() => {
|
|
58
|
+
const value: any = props.value;
|
|
59
|
+
props.field.forEach((key, index) => {
|
|
60
|
+
if (value[key] === "") {
|
|
61
|
+
dates.value && (dates.value[index] = "");
|
|
62
|
+
} else {
|
|
63
|
+
dates.value && (dates.value[index] = value[key]);
|
|
53
64
|
}
|
|
54
65
|
});
|
|
55
66
|
});
|
package/src/layout/FuckMain.vue
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* FUCK MAIN 入口文件
|
|
4
4
|
*/
|
|
5
|
-
import { computed
|
|
5
|
+
import { computed } from "vue";
|
|
6
6
|
import { MenuFoldOutlined, MenuUnfoldOutlined } from "@ant-design/icons-vue";
|
|
7
7
|
import { useKeepAliveStore, useSettingsStore } from "@ditari/store";
|
|
8
8
|
|
|
@@ -11,15 +11,6 @@ import DNavTabs from "./NavTabs.vue";
|
|
|
11
11
|
// 菜单组件
|
|
12
12
|
import Menu from "../menu/Menu";
|
|
13
13
|
|
|
14
|
-
const props = withDefaults(
|
|
15
|
-
defineProps<{
|
|
16
|
-
showConfig: any;
|
|
17
|
-
}>(),
|
|
18
|
-
{
|
|
19
|
-
showConfig: { backBtn: "LeftOutlined" } as any
|
|
20
|
-
}
|
|
21
|
-
);
|
|
22
|
-
|
|
23
14
|
// 缓存store
|
|
24
15
|
const store = useKeepAliveStore();
|
|
25
16
|
// 缓存的names
|
|
@@ -28,9 +19,6 @@ const keepAliveNames = computed(() => store.get);
|
|
|
28
19
|
const settingsStore = useSettingsStore();
|
|
29
20
|
const { switchCollapsed } = settingsStore;
|
|
30
21
|
const collapsedStatus = computed(() => settingsStore.getCollapsed);
|
|
31
|
-
|
|
32
|
-
// 注入show组件的配置文件
|
|
33
|
-
provide("showConfig", props.showConfig);
|
|
34
22
|
</script>
|
|
35
23
|
<template>
|
|
36
24
|
<a-layout class="ditari-layout">
|
|
@@ -67,25 +55,6 @@ provide("showConfig", props.showConfig);
|
|
|
67
55
|
<div class="ditari-user-menu">
|
|
68
56
|
<slot name="operation"></slot>
|
|
69
57
|
</div>
|
|
70
|
-
<!-- <div class="ditari-layout-header">-->
|
|
71
|
-
<!-- <div class="ditari-layout-header-left">-->
|
|
72
|
-
<!-- <div class="ditari-side-collapsed" @click="switchCollapsed">-->
|
|
73
|
-
<!-- <menu-unfold-outlined-->
|
|
74
|
-
<!-- v-if="collapsedStatus"-->
|
|
75
|
-
<!-- class="trigger"-->
|
|
76
|
-
<!-- style="font-size: 16px; font-weight: bold; cursor: pointer"-->
|
|
77
|
-
<!-- />-->
|
|
78
|
-
<!-- <menu-fold-outlined-->
|
|
79
|
-
<!-- v-else-->
|
|
80
|
-
<!-- style="font-size: 16px; font-weight: bold; cursor: pointer"-->
|
|
81
|
-
<!-- />-->
|
|
82
|
-
<!-- </div>-->
|
|
83
|
-
<!-- -->
|
|
84
|
-
<!-- </div>-->
|
|
85
|
-
<!-- <div class="ditari-user-menu">-->
|
|
86
|
-
<!-- <slot name="operation"></slot>-->
|
|
87
|
-
<!-- </div>-->
|
|
88
|
-
<!-- </div>-->
|
|
89
58
|
</div>
|
|
90
59
|
<a-layout-content
|
|
91
60
|
style="margin-top: 42px"
|
package/src/layout/List.vue
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
nextTick,
|
|
12
12
|
watchEffect
|
|
13
13
|
} from "vue";
|
|
14
|
-
import { useElementSize } from "@vueuse/core";
|
|
14
|
+
import { useElementSize, useResizeObserver } from "@vueuse/core";
|
|
15
15
|
import { useSettingsStore } from "@ditari/store";
|
|
16
16
|
import { storeToRefs } from "pinia";
|
|
17
17
|
import { useRoute } from "vue-router";
|
|
@@ -95,6 +95,10 @@ watchEffect(() => {
|
|
|
95
95
|
calcHeight();
|
|
96
96
|
});
|
|
97
97
|
|
|
98
|
+
useResizeObserver(document.body, () => {
|
|
99
|
+
calcHeight();
|
|
100
|
+
});
|
|
101
|
+
|
|
98
102
|
// 动态计算高度
|
|
99
103
|
function calcHeight() {
|
|
100
104
|
show.value = false;
|
package/src/layout/Show.vue
CHANGED
|
@@ -31,7 +31,7 @@ const navTabStore = useNavTabsStore();
|
|
|
31
31
|
const settingsStore = useSettingsStore();
|
|
32
32
|
|
|
33
33
|
const showConfig = inject("showConfig") as any;
|
|
34
|
-
|
|
34
|
+
const collapsedStatus = computed(() => settingsStore.getCollapsed);
|
|
35
35
|
const btnRender = () => {
|
|
36
36
|
if (!showConfig) {
|
|
37
37
|
return h(LeftOutlined);
|
|
@@ -118,7 +118,11 @@ defineExpose({
|
|
|
118
118
|
<div class="ditari-show-content" :style="contentStyle">
|
|
119
119
|
<slot></slot>
|
|
120
120
|
</div>
|
|
121
|
-
<div
|
|
121
|
+
<div
|
|
122
|
+
v-if="$slots.footer"
|
|
123
|
+
class="ditari-show-footer"
|
|
124
|
+
:style="{ left: collapsedStatus ? '80px' : '200px' }"
|
|
125
|
+
>
|
|
122
126
|
<slot name="footer"></slot>
|
|
123
127
|
</div>
|
|
124
128
|
</a-spin>
|