dynamicformdjx 0.5.0 → 0.6.0
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/README.md +173 -2
- package/dist/elementPlus/EleZealCard.d.ts +9 -0
- package/dist/elementPlus/EleZealTableTool.d.ts +90 -8
- package/dist/elementPlus/hooks/useZealTool.d.ts +7 -0
- package/dist/elementPlus/index.cjs +1 -1
- package/dist/elementPlus/index.d.ts +6 -4
- package/dist/elementPlus/index.mjs +473 -371
- package/dist/hooks/useTool.d.ts +1 -1
- package/dist/index-BAqRAwDC.cjs +1 -0
- package/dist/index-BQKYL550.js +213 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +493 -216
- package/dist/naiveUi/NaiZealCard.d.ts +9 -0
- package/dist/naiveUi/NaiZealTableTool.d.ts +54 -1
- package/dist/naiveUi/hooks/useZealTool.d.ts +7 -0
- package/dist/naiveUi/index.cjs +1 -1
- package/dist/naiveUi/index.d.ts +6 -4
- package/dist/naiveUi/index.mjs +432 -337
- package/dist/origin/LoadedScroll.d.ts +180 -0
- package/dist/types/index.d.ts +21 -1
- package/dist/types/slots.d.ts +8 -5
- package/dist/utils/tools.d.ts +5 -2
- package/dist/vite-env.d.ts +6 -0
- package/package.json +2 -1
- package/dist/index-BRJXkpNJ.cjs +0 -1
- package/dist/index-a2ON2stt.js +0 -180
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
## 概述
|
|
12
12
|
|
|
13
|
-
>
|
|
13
|
+
> 新增触底加载下拉刷新
|
|
14
14
|
|
|
15
15
|
`DynamicForm` 一个灵活且动态的表单组件,使用数组,简化模版操作,提供多种hook快速操作表单等。
|
|
16
16
|
|
|
@@ -37,7 +37,7 @@ yarn add dynamicformdjx
|
|
|
37
37
|
pnpm add dynamicformdjx
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
### 综合`CRUD` template
|
|
40
|
+
### 综合`CRUD` template
|
|
41
41
|
|
|
42
42
|
> (依赖于naive ui或element plus组件库,请配合一起使用)
|
|
43
43
|
|
|
@@ -859,4 +859,175 @@ pnpm add dynamicformdjx
|
|
|
859
859
|
<p>Result</p>
|
|
860
860
|
<button @click="setData">setData 8888</button>
|
|
861
861
|
</template>
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
### 触底加载下拉刷新 **新**
|
|
865
|
+
|
|
866
|
+
```vue
|
|
867
|
+
<script setup lang="ts">
|
|
868
|
+
import {reactive, ref} from "vue";
|
|
869
|
+
import {LoadedScroll} from "dynamicformdjx";
|
|
870
|
+
|
|
871
|
+
type Row = {
|
|
872
|
+
id: number;
|
|
873
|
+
name: string;
|
|
874
|
+
};
|
|
875
|
+
type pageModal = {
|
|
876
|
+
pageNo: number, pageSize: number
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
const tableData = ref<Row[]>([]);
|
|
880
|
+
const loading = ref(true);
|
|
881
|
+
const finished = ref(false);
|
|
882
|
+
const isError = ref(false);
|
|
883
|
+
const pageModal = reactive({
|
|
884
|
+
pageNo: 1,
|
|
885
|
+
pageSize: 20,
|
|
886
|
+
total: 100
|
|
887
|
+
})
|
|
888
|
+
|
|
889
|
+
async function fetchData() {
|
|
890
|
+
try {
|
|
891
|
+
const list = await mockApi(pageModal);
|
|
892
|
+
|
|
893
|
+
if (tableData.value.length >= pageModal.total) {
|
|
894
|
+
finished.value = true;
|
|
895
|
+
return
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
tableData.value.push(...list);
|
|
899
|
+
pageModal.pageNo++;
|
|
900
|
+
} catch (e) {
|
|
901
|
+
throw e;
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
function mockApi(pm: pageModal): Promise<Row[]> {
|
|
906
|
+
return new Promise((resolve, reject) => {
|
|
907
|
+
setTimeout(() => {
|
|
908
|
+
if (pm.pageNo === 3) {
|
|
909
|
+
// test fail
|
|
910
|
+
pageModal.pageNo += 1
|
|
911
|
+
return reject("error");
|
|
912
|
+
}
|
|
913
|
+
const start = (pm.pageNo - 1) * pm.pageSize + 1;
|
|
914
|
+
|
|
915
|
+
resolve(
|
|
916
|
+
Array.from({length: pm.pageSize}, (_, i) => ({
|
|
917
|
+
id: start + i,
|
|
918
|
+
name: `Data ${start + i}`,
|
|
919
|
+
}))
|
|
920
|
+
);
|
|
921
|
+
}, 1500);
|
|
922
|
+
});
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
async function refreshData() {
|
|
926
|
+
pageModal.pageNo = 1
|
|
927
|
+
finished.value = false;
|
|
928
|
+
isError.value = false;
|
|
929
|
+
tableData.value = [];
|
|
930
|
+
|
|
931
|
+
await fetchData();
|
|
932
|
+
}
|
|
933
|
+
</script>
|
|
934
|
+
|
|
935
|
+
<template>
|
|
936
|
+
<h2>LoadedScroll Test</h2>
|
|
937
|
+
<LoadedScroll
|
|
938
|
+
v-model:loading="loading"
|
|
939
|
+
v-model:is-error="isError"
|
|
940
|
+
:load-data="fetchData"
|
|
941
|
+
:finished="finished"
|
|
942
|
+
scroll-node=".native-table-body"
|
|
943
|
+
pull-refresh
|
|
944
|
+
:refresh-data="refreshData"
|
|
945
|
+
support-mode="all"
|
|
946
|
+
>
|
|
947
|
+
<template #default="{ hintHeight }">
|
|
948
|
+
<div class="native-table-wrap">
|
|
949
|
+
<div
|
|
950
|
+
class="native-table-body"
|
|
951
|
+
>
|
|
952
|
+
<table class="native-table">
|
|
953
|
+
<thead>
|
|
954
|
+
<tr>
|
|
955
|
+
<th>ID</th>
|
|
956
|
+
<th>Title</th>
|
|
957
|
+
</tr>
|
|
958
|
+
</thead>
|
|
959
|
+
|
|
960
|
+
<tbody>
|
|
961
|
+
<tr v-for="row in tableData" :key="row.id">
|
|
962
|
+
<td>{{ row.id }}</td>
|
|
963
|
+
<td>{{ row.name }}</td>
|
|
964
|
+
</tr>
|
|
965
|
+
|
|
966
|
+
<tr v-if="!tableData.length && !loading">
|
|
967
|
+
<td colspan="2" class="empty-cell">
|
|
968
|
+
No Data
|
|
969
|
+
</td>
|
|
970
|
+
</tr>
|
|
971
|
+
</tbody>
|
|
972
|
+
</table>
|
|
973
|
+
</div>
|
|
974
|
+
</div>
|
|
975
|
+
</template>
|
|
976
|
+
</LoadedScroll>
|
|
977
|
+
</template>
|
|
978
|
+
|
|
979
|
+
<style scoped>
|
|
980
|
+
h2{
|
|
981
|
+
text-align: center;
|
|
982
|
+
margin: 10px;
|
|
983
|
+
}
|
|
984
|
+
.native-table-wrap {
|
|
985
|
+
height: calc(100vh - 130px);
|
|
986
|
+
border: 1px solid #e5e7eb;
|
|
987
|
+
border-radius: 8px;
|
|
988
|
+
overflow: hidden;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
.native-table-body {
|
|
992
|
+
height: 100%;
|
|
993
|
+
overflow-y: auto;
|
|
994
|
+
overscroll-behavior: contain;
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
.native-table {
|
|
998
|
+
width: 100%;
|
|
999
|
+
border-collapse: collapse;
|
|
1000
|
+
table-layout: fixed;
|
|
1001
|
+
font-size: 14px;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
.native-table thead {
|
|
1005
|
+
position: sticky;
|
|
1006
|
+
top: 0;
|
|
1007
|
+
z-index: 1;
|
|
1008
|
+
background: #f8fafc;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
.native-table th,
|
|
1012
|
+
.native-table td {
|
|
1013
|
+
padding: 10px 12px;
|
|
1014
|
+
border-bottom: 1px solid #e5e7eb;
|
|
1015
|
+
text-align: left;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.native-table th {
|
|
1019
|
+
font-weight: 600;
|
|
1020
|
+
color: #374151;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
.native-table td {
|
|
1024
|
+
color: #111827;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
.empty-cell {
|
|
1028
|
+
height: 220px;
|
|
1029
|
+
text-align: center !important;
|
|
1030
|
+
color: #999;
|
|
1031
|
+
}
|
|
1032
|
+
</style>
|
|
862
1033
|
```
|
|
@@ -20,6 +20,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
20
20
|
type: PropType<number[]>;
|
|
21
21
|
default: number[];
|
|
22
22
|
};
|
|
23
|
+
observeDelay: {
|
|
24
|
+
type: NumberConstructor;
|
|
25
|
+
default: number;
|
|
26
|
+
};
|
|
23
27
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
24
28
|
title: {
|
|
25
29
|
type: StringConstructor;
|
|
@@ -40,10 +44,15 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
40
44
|
type: PropType<number[]>;
|
|
41
45
|
default: number[];
|
|
42
46
|
};
|
|
47
|
+
observeDelay: {
|
|
48
|
+
type: NumberConstructor;
|
|
49
|
+
default: number;
|
|
50
|
+
};
|
|
43
51
|
}>> & Readonly<{}>, {
|
|
44
52
|
zealHeight: string;
|
|
45
53
|
outPadding: number;
|
|
46
54
|
searchBtnTxt: string[];
|
|
47
55
|
checkWindowSize: number[];
|
|
56
|
+
observeDelay: number;
|
|
48
57
|
}, SlotsType<ZealCardSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
49
58
|
export default _default;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { PropType, SlotsType } from 'vue';
|
|
1
|
+
import { ExtractPropTypes, PropType, SlotsType } from 'vue';
|
|
2
2
|
import { DyFormItem, ZealColumn, ZealPagination } from '../types/form';
|
|
3
|
-
import { EleZealTablePaginationSlots, EleZealTableSlots, ZealTableSearchSlots } from '../types/slots';
|
|
3
|
+
import { EleZealTablePaginationSlots, EleZealTableSlots, ZealTableBtnControlSlots, ZealTableSearchSlots } from '../types/slots';
|
|
4
4
|
import { TableProps } from 'element-plus';
|
|
5
5
|
import { PaginationProps } from 'element-plus/es/components/pagination/src/pagination';
|
|
6
|
-
|
|
6
|
+
import { TableBtnType } from '../types';
|
|
7
|
+
import { dropdownProps } from 'element-plus/es/components/dropdown/src/dropdown';
|
|
8
|
+
import { buttonProps } from 'element-plus/es/components/button/src/button';
|
|
9
|
+
export declare const EleZealTableSearch: import('vue').DefineComponent<ExtractPropTypes<{
|
|
7
10
|
title: {
|
|
8
11
|
type: StringConstructor;
|
|
9
12
|
};
|
|
@@ -49,7 +52,7 @@ export declare const EleZealTableSearch: import('vue').DefineComponent<import('v
|
|
|
49
52
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
50
53
|
onReset: () => true;
|
|
51
54
|
onSearch: (data: object) => true;
|
|
52
|
-
}, string, import('vue').PublicProps, Readonly<
|
|
55
|
+
}, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
|
|
53
56
|
title: {
|
|
54
57
|
type: StringConstructor;
|
|
55
58
|
};
|
|
@@ -106,7 +109,7 @@ export declare const EleZealTableSearch: import('vue').DefineComponent<import('v
|
|
|
106
109
|
closeDrawerAuto: boolean;
|
|
107
110
|
copyDefault: boolean;
|
|
108
111
|
}, SlotsType<ZealTableSearchSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
109
|
-
export declare const EleZealTablePaginationControl: import('vue').DefineComponent<
|
|
112
|
+
export declare const EleZealTablePaginationControl: import('vue').DefineComponent<ExtractPropTypes<{
|
|
110
113
|
pagination: {
|
|
111
114
|
type: PropType<ZealPagination>;
|
|
112
115
|
required: true;
|
|
@@ -118,7 +121,7 @@ export declare const EleZealTablePaginationControl: import('vue').DefineComponen
|
|
|
118
121
|
type: BooleanConstructor;
|
|
119
122
|
default: boolean;
|
|
120
123
|
};
|
|
121
|
-
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<
|
|
124
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
|
|
122
125
|
pagination: {
|
|
123
126
|
type: PropType<ZealPagination>;
|
|
124
127
|
required: true;
|
|
@@ -133,7 +136,7 @@ export declare const EleZealTablePaginationControl: import('vue').DefineComponen
|
|
|
133
136
|
}>> & Readonly<{}>, {
|
|
134
137
|
isMobile: boolean;
|
|
135
138
|
}, SlotsType<EleZealTablePaginationSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
136
|
-
export declare const EleZealTable: import('vue').DefineComponent<
|
|
139
|
+
export declare const EleZealTable: import('vue').DefineComponent<ExtractPropTypes<{
|
|
137
140
|
data: {
|
|
138
141
|
type: PropType<any[]>;
|
|
139
142
|
default: () => never[];
|
|
@@ -163,7 +166,7 @@ export declare const EleZealTable: import('vue').DefineComponent<import('vue').E
|
|
|
163
166
|
tableConfig: {
|
|
164
167
|
type: PropType<Partial<TableProps<any>>>;
|
|
165
168
|
};
|
|
166
|
-
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<
|
|
169
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
|
|
167
170
|
data: {
|
|
168
171
|
type: PropType<any[]>;
|
|
169
172
|
default: () => never[];
|
|
@@ -200,3 +203,82 @@ export declare const EleZealTable: import('vue').DefineComponent<import('vue').E
|
|
|
200
203
|
stripe: boolean;
|
|
201
204
|
columns: ZealColumn<any>[];
|
|
202
205
|
}, SlotsType<EleZealTableSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
206
|
+
export declare const EleZealTableBtnControl: import('vue').DefineComponent<ExtractPropTypes<{
|
|
207
|
+
isMobile: {
|
|
208
|
+
type: BooleanConstructor;
|
|
209
|
+
default: boolean;
|
|
210
|
+
};
|
|
211
|
+
btnItems: {
|
|
212
|
+
type: PropType<(TableBtnType & Partial<ExtractPropTypes<typeof buttonProps>>)[]>;
|
|
213
|
+
default: () => never[];
|
|
214
|
+
};
|
|
215
|
+
size: {
|
|
216
|
+
type: PropType<"small" | "large">;
|
|
217
|
+
default: string;
|
|
218
|
+
};
|
|
219
|
+
dropDownProps: {
|
|
220
|
+
type: PropType<Partial<ExtractPropTypes<typeof dropdownProps>>>;
|
|
221
|
+
};
|
|
222
|
+
dropDownText: {
|
|
223
|
+
type: StringConstructor;
|
|
224
|
+
default: string;
|
|
225
|
+
};
|
|
226
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
227
|
+
onSelect: (k: string) => true;
|
|
228
|
+
}, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
|
|
229
|
+
isMobile: {
|
|
230
|
+
type: BooleanConstructor;
|
|
231
|
+
default: boolean;
|
|
232
|
+
};
|
|
233
|
+
btnItems: {
|
|
234
|
+
type: PropType<(TableBtnType & Partial<ExtractPropTypes<typeof buttonProps>>)[]>;
|
|
235
|
+
default: () => never[];
|
|
236
|
+
};
|
|
237
|
+
size: {
|
|
238
|
+
type: PropType<"small" | "large">;
|
|
239
|
+
default: string;
|
|
240
|
+
};
|
|
241
|
+
dropDownProps: {
|
|
242
|
+
type: PropType<Partial<ExtractPropTypes<typeof dropdownProps>>>;
|
|
243
|
+
};
|
|
244
|
+
dropDownText: {
|
|
245
|
+
type: StringConstructor;
|
|
246
|
+
default: string;
|
|
247
|
+
};
|
|
248
|
+
}>> & Readonly<{
|
|
249
|
+
onOnSelect?: ((k: string) => any) | undefined;
|
|
250
|
+
}>, {
|
|
251
|
+
size: "small" | "large";
|
|
252
|
+
isMobile: boolean;
|
|
253
|
+
btnItems: (TableBtnType & Partial<ExtractPropTypes<{
|
|
254
|
+
readonly size: {
|
|
255
|
+
readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", never>>;
|
|
256
|
+
readonly required: false;
|
|
257
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
258
|
+
__epPropKey: true;
|
|
259
|
+
};
|
|
260
|
+
readonly disabled: BooleanConstructor;
|
|
261
|
+
readonly type: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "text" | "default" | "primary" | "success" | "warning" | "info" | "danger", unknown, "", boolean>;
|
|
262
|
+
readonly icon: {
|
|
263
|
+
readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component) | ((new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component))[], unknown, unknown>>;
|
|
264
|
+
readonly required: false;
|
|
265
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
266
|
+
__epPropKey: true;
|
|
267
|
+
};
|
|
268
|
+
readonly nativeType: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "button" | "reset" | "submit", unknown, "button", boolean>;
|
|
269
|
+
readonly loading: BooleanConstructor;
|
|
270
|
+
readonly loadingIcon: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component) | ((new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component))[], unknown, unknown, () => any, boolean>;
|
|
271
|
+
readonly plain: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
272
|
+
readonly text: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
273
|
+
readonly link: BooleanConstructor;
|
|
274
|
+
readonly bg: BooleanConstructor;
|
|
275
|
+
readonly autofocus: BooleanConstructor;
|
|
276
|
+
readonly round: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
277
|
+
readonly circle: BooleanConstructor;
|
|
278
|
+
readonly color: StringConstructor;
|
|
279
|
+
readonly dark: BooleanConstructor;
|
|
280
|
+
readonly autoInsertSpace: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
281
|
+
readonly tag: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component) | ((new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component))[], unknown, unknown, "button", boolean>;
|
|
282
|
+
}>>)[];
|
|
283
|
+
dropDownText: string;
|
|
284
|
+
}, SlotsType<ZealTableBtnControlSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { eleZealCardRef } from '..';
|
|
2
|
+
import { ZealColumnType } from '../../types';
|
|
3
|
+
import { ZealColumn } from '../../types/form.ts';
|
|
4
|
+
export declare function useZealColumnTool<T extends Record<string, any>>(createColumn: ((obj: ZealColumnType) => ZealColumn<T>[]), config?: ZealColumn<T>): {
|
|
5
|
+
eleZealCardRef: import('vue').Ref<eleZealCardRef | null, eleZealCardRef | null>;
|
|
6
|
+
tableColumns: import('vue').ComputedRef<ZealColumn<T>[]>;
|
|
7
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("../index-BRJXkpNJ.cjs"),t=require("vue"),c=require("element-plus"),J=t.defineComponent({name:"EleDynamicInput",props:{size:{type:String},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},modelValue:{type:Object,required:!0}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,o)=>!0},slots:Object,setup(e,{emit:o,expose:l,slots:r}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},y={arraySplitSymbol:",",...e.dyListConfigs},a=e.size,i=t.ref(N.tranArr(e.modelValue,e.randomFun,y.arraySplitSymbol)),v=t.ref(null);t.watch(i,p=>{if(!e.isController)return;const V=N.resetObj(p,y.arraySplitSymbol);o("update:modelValue",V),o("onMerge",V,t.toRaw(i.value))},{deep:!0}),l({onSet:p=>{i.value=N.tranArr(p??e.modelValue,e.randomFun,y.arraySplitSymbol)},getResult:(p="res")=>p==="ori"?t.toRaw(i.value):N.resetObj(i.value,y.arraySplitSymbol)});const n=()=>i.value.push({rId:e.randomFun(),key:"",value:""}),f=()=>{i.value=N.tranArr(e.modelValue,e.randomFun,y.arraySplitSymbol),o("onReset")},d=()=>{i.value.sort((V,g)=>+V.rId-+g.rId);const p=N.resetObj(i.value,y.arraySplitSymbol);o("update:modelValue",p),o("onMerge",p,t.toRaw(i.value)),i.value=N.tranArr(p,e.randomFun,y.arraySplitSymbol)};return()=>t.createVNode("div",{class:e.dyCls??`dynamicForm ${a}`,style:{maxHeight:u.maxHeight}},[t.createVNode("div",{class:`dyFormList ${i.value.length?"":"noList"}`,ref:v},[i.value.map((p,V,g)=>{const b={row:p,index:V,isLast:V===g.length-1,addItem:()=>{i.value.push({rId:e.randomFun(),key:"",value:""}),u.autoScroll&&t.nextTick(()=>{const h=v.value;h?.scrollTo({top:h.scrollHeight,behavior:"smooth"})})},removeItem:()=>{i.value=i.value.filter(h=>h.rId!==p.rId)},toggleArray:()=>p.isArray=!p.isArray,toggleNumber:()=>p.isNumber=!p.isNumber};return t.createVNode("div",{class:"dItem",key:p.rId},[t.createVNode("div",{class:"input"},[t.createVNode(c.ElInput,{size:a,modelValue:p.key,class:"key",onInput:h=>{p.key=h}},null),t.createTextVNode(":"),t.createVNode(c.ElInput,{size:a,modelValue:p.value,class:"value",onInput:h=>{u.allowFilter&&p.isNumber?p.value=N.formatNumberInput(h,p.isArray,y.arraySplitSymbol):p.value=h}},{prefix:()=>r.typeTools?r.typeTools(b):t.createVNode(t.Fragment,null,[!u.hideArrayBtn&&t.createVNode(c.ElButton,{class:"typeBtn",type:p.isArray?"success":"default",size:"small",onClick:b.toggleArray},{default:()=>[t.createTextVNode("Array")]}),!u.hideNumberBtn&&t.createVNode(c.ElButton,{class:"typeBtn",type:p.isNumber?"success":"default",size:"small",onClick:b.toggleNumber},{default:()=>[t.createTextVNode("Number")]})])})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(b):t.createVNode(t.Fragment,null,[t.createVNode(c.ElButton,{type:"success",size:a,disabled:!b.isLast,onClick:b.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(c.ElButton,{size:a,type:"danger",onClick:b.removeItem},{default:()=>[t.createTextVNode("-")]})])])])})]),t.createVNode("div",{class:`control ${i.value.length?"":"noList"}`},[!i.value.length&&(r.newBtn?r.newBtn({newItem:n}):t.createVNode(c.ElButton,{size:a,type:"success",onClick:n},{default:()=>[s.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!u.hideReset&&(r.resetBtn?r.resetBtn({reset:f}):t.createVNode(c.ElButton,{size:a,type:"default",onClick:f},{default:()=>[s.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:d}):t.createVNode(c.ElButton,{size:a,type:"info",onClick:d},{default:()=>[s.mergeTxt]})])])])}});function Q(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const X=t.defineComponent({name:"EleDynamicCascadeInput",props:{modelValue:{type:Object,required:!0},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},depth:{type:Number,default:3},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},newChildTxt:{type:Function,default:e=>`添加 '${e.key}' 子项`}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,o)=>!0},slots:Object,setup(e,{emit:o,expose:l,slots:r}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,hideArrayBtn:!1,hideNumberBtn:!1,showPad:!0,retractLen:0,borderColors:[],...e.configs},y={arraySplitSymbol:",",...e.dyListConfigs},a=g=>["string","number"].includes(g),i=g=>Object.keys(g).map((b,h)=>{let m=g[b];const S=Array.isArray(m),B=S?m.every(T=>typeof T=="number"):typeof m=="number",E=m===null;return a(typeof m)&&(m=g[b]),E&&(m=""),{rId:e.randomFun(h),key:b,value:Object.prototype.toString.call(m)==="[object Object]"?i(g[b]):S?m.join(y.arraySplitSymbol):m,isArray:S||void 0,isNumber:B||void 0}}),v=g=>g.reduce((b,h)=>{const m=h.value;return h.key.trim().length&&(b[h.key]=Array.isArray(m)?v(m):N.parseValue(h.value,h.isArray,h.isNumber,y.arraySplitSymbol)),b},{}),n=t.ref(i(e.modelValue)),f=(g,b=1,h)=>t.createVNode("div",{class:[`depth-${b}`,u.showBorder?"":"no-border",u.showPad?"":"no-pad"],style:{"--depth":b,["--c"+[b]]:N.saferRepairColor(u.borderColors,b)}},[g.map((m,S,B)=>{const E=Array.isArray(m.value),T=a(typeof m.value),w={row:m,index:S,isLast:S===B.length-1,addItem:()=>{g.push({rId:e.randomFun(),key:"",value:""})},addChild:()=>{T&&(m.value=[],m.isArray=void 0),m.value.push({rId:e.randomFun(),key:"",value:""})},removeItem:()=>{if(g.splice(S,1),g.length<1){if(h===void 0)return v([]);const k=n.value.findIndex(K=>K.rId===h?.rId);b<1?n.value.splice(k,1,{...h,value:""}):h.value=""}},toggleArray:()=>m.isArray=!m.isArray,toggleNumber:()=>m.isNumber=!m.isNumber};return t.createVNode("div",{class:"dItem",key:m.rId,style:{marginLeft:b>1?`${b*u.retractLen}px`:"0"}},[t.createVNode("div",{class:"input"},[!E&&t.createVNode(t.Fragment,null,[t.createVNode(c.ElInput,{modelValue:m.key,class:"key",onInput:k=>m.key=k},null),t.createTextVNode(":")]),t.createVNode(c.ElInput,{class:`value ${E?"isKey":""}`,modelValue:T?m.value:m.key,onInput:k=>{if(E){m.key=k;return}u.allowFilter&&m.isNumber?m.value=N.formatNumberInput(k,m.isArray,y.arraySplitSymbol):m.value=k}},{prefix:Array.isArray(m.value)?void 0:()=>r.typeTools?r.typeTools(w):t.createVNode(t.Fragment,null,[!u.hideArrayBtn&&t.createVNode(c.ElButton,{type:m.isArray?"success":"default",size:"small",onClick:w.toggleArray},{default:()=>[t.createTextVNode("Array")]}),t.createTextVNode(" "),!u.hideNumberBtn&&t.createVNode(c.ElButton,{type:m.isNumber?"success":"default",size:"small",onClick:w.toggleNumber},{default:()=>[t.createTextVNode("Number")]})]),suffix:()=>{let k;return b<e.depth?!E&&(r.newChild?r.newChild(w):t.createVNode(c.ElButton,{type:"success",size:"small",onClick:()=>{T&&(m.value=[],m.isArray=void 0),m.value.push({rId:e.randomFun(),key:"",value:""})}},Q(k=e.newChildTxt(m))?k:{default:()=>[k]})):null}})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(w):t.createVNode(t.Fragment,null,[t.createVNode(c.ElButton,{type:"success",disabled:!w.isLast,onClick:w.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(c.ElButton,{type:"danger",onClick:w.removeItem},{default:()=>[t.createTextVNode("-")]})])]),Array.isArray(m.value)&&f(m.value,b+1,m)])})]);t.watch(n,g=>{if(!e.isController)return;const b=v(g);o("update:modelValue",b),o("onMerge",b,t.toRaw(n.value))},{deep:!0}),l({onSet:g=>{n.value=i(g??e.modelValue)},getResult:(g="res")=>g==="ori"?t.toRaw(n.value):v(n.value)});const d=()=>n.value.push({rId:e.randomFun(),key:"",value:""}),p=()=>{n.value=i(e.modelValue),o("onReset")},V=()=>{const g=v(n.value);o("update:modelValue",g),o("onMerge",g,t.toRaw(n.value)),n.value=i(g)};return()=>t.createVNode("div",{class:`dynamicCascadeForm ${e.dyCls}`},[t.createVNode("div",{class:`dyFormList ${n.value.length?"":"noObj"}`,style:{maxHeight:u.maxHeight}},[f(n.value)]),t.createVNode("div",{class:`control ${n.value.length?"":"noObj"}`},[!n.value.length&&(r.newBtn?r.newBtn({newItem:d}):t.createVNode(c.ElButton,{type:"success",onClick:d},{default:()=>[s.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!u.hideReset&&(r.resetBtn?r.resetBtn({reset:p}):t.createVNode(c.ElButton,{type:"default",onClick:p},{default:()=>[s.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:V}):t.createVNode(c.ElButton,{type:"info",onClick:V},{default:()=>[s.mergeTxt]})])])])}}),x=t.defineComponent({name:"EleDynamicForm",props:{formConfig:{type:Object,default:()=>({labelPosition:"left",size:"default"})},rowConfig:{type:Object,default:()=>({gutter:10,justify:"start",align:"top"})},rules:{type:Object},preset:{type:String,default:"fullRow",validator:e=>["fullRow","grid"].includes(e)?!0:(console.error("preset value must be `fullRow` or `grid`, the default value is `fullRow`"),!1)},items:{type:Array,require:!0}},slots:Object,setup(e,{expose:o,slots:l}){const r=t.ref(null),s=t.computed(()=>(e.items??[]).filter(n=>!n.hidden)),u=t.computed(()=>s.value?s.value.reduce((n,f)=>(n[f.key]=f.value.value,n),{}):{}),y=t.computed(()=>({...s.value?.reduce((f,d)=>{let p=d.rule;return d.required&&!d.rule&&(p={required:!0,message:d.requiredHint?.(d.label??"")??`${d.label}不能为空`,trigger:"blur"}),f[d.key]=p,f},{}),...e.rules})),a=t.computed(()=>[...s.value].sort((f,d)=>{const p=f.sort??1/0,V=d.sort??1/0;return Number(p)-Number(V)}));function i(n=null){s.value&&s.value.forEach(f=>{f.value.value=n})}function v(){return new Promise((n,f)=>{r.value?.validate((d,p)=>{d?n(u.value):f(p)})})}if(o({reset:i,validator:v,getResult:(n="res")=>n==="ori"?s.value:u.value}),!e.items)throw new Error("prop items must be not null");return()=>t.createVNode("div",{class:"naiDynamicForm"},[l.header&&t.createVNode("div",{class:"header"},[l.header?.()]),t.createVNode(c.ElForm,t.mergeProps({ref:r},e.formConfig,{model:u.value,rules:y.value}),{default(){const n=a.value;return e.preset==="grid"?t.h(c.ElRow,{...e.rowConfig},{default:()=>n?.map(f=>t.h(c.ElCol,{span:f.span??24,offset:f.offset??0},{default:()=>t.h(c.ElFormItem,{label:f.label,prop:f.path||f.key},{default:R(f)})}))}):n?.map(f=>t.h(c.ElFormItem,{label:f.label,prop:f.path||f.key},{default:R(f)}))}}),l.footer&&t.h("div",{class:"footer"},l.footer?.())])}});function R(e){return function(){return e.render2?e.render2(e):null}}function O(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const Y=t.defineComponent({name:"ElePopupModal",props:{title:{type:String},modalProps:{type:Object},to:{type:[String,Object]},showClose:{type:Boolean,default:!0},closeOnMask:{type:Boolean,default:!0},width:{type:String,default:"min(1080px,90%)"},onCancel:{type:Function,default:()=>!0},onSubmit:{type:Function,default:()=>!0},footerTxt:{type:Array,default:()=>["Cancel","Submit"]}},slots:Object,setup(e,{expose:o,emit:l,slots:r}){const s=t.computed(()=>({alignCenter:!0,draggable:!0,appendToBody:!0,...e.modalProps??{}})),u=t.ref(!1),y=t.reactive({c:!1,s:!1}),a=n=>{u.value=n??!u.value};o({toggle:a});const i=async()=>{y.c=!0,(await e.onCancel?.()??!0)&&a(!1),y.c=!1},v=async()=>{y.s=!0,(await e.onSubmit?.()??!0)&&a(!1),y.s=!1};return()=>t.createVNode(c.ElDialog,t.mergeProps({modelValue:u.value,"onUpdate:modelValue":n=>u.value=n,showClose:e.showClose,closeOnClickModal:e.closeOnMask,style:{width:e.width},title:e.title,appendTo:e.to},s.value),{footer:()=>{const[n,f]=e.footerTxt,{c:d,s:p}=y;return t.createVNode("div",{class:"flex justify-end align-center"},[t.createVNode(c.ElButton,{size:"small",onClick:i,loading:d},O(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{size:"small",type:"success",onClick:v,loading:p},O(f)?f:{default:()=>[f]})])},...r})}});function A(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const ee=t.defineComponent({name:"EleZealCard",props:{title:{type:String},zealHeight:{type:String,default:"100vh"},outPadding:{type:Number,default:20},searchBtnTxt:{type:Array,default:()=>["Reset","Search"]},checkWindowSize:{type:Array,default:[756,500]}},slots:Object,setup(e,{slots:o}){const l=N.useWindowSize(...e.checkWindowSize),{wrapRef:r,cardRef:s,restRef:u,tableHeight:y}=N.useObserverSize(c.ElCard);return()=>{const a=N.unwrapObj(l);return t.createVNode("div",{class:"zealCard",style:{height:`calc(${e.zealHeight} - ${e.outPadding*2}px)`},ref:r},[t.createVNode(c.ElCard,{ref:s},{default:()=>[o.default?.({tableHeight:y.value,...a})],header:()=>{const[i,v]=e.searchBtnTxt;return t.createVNode("div",{class:"header"},[o.header?.(a)??t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"title"},[e.title]),t.createVNode("div",{class:"search"},[o.searchForm?.(),o.searchBtn?.()||o.searchForm&&t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small"},A(i)?i:{default:()=>[i]}),t.createVNode(c.ElButton,{type:"info",size:"small"},A(v)?v:{default:()=>[v]})])])]),t.createVNode("div",{class:"controlBtn"},[t.createVNode("div",null,[o.controlBtn?.()]),o.toolBtn?.()])])},footer:()=>t.createVNode("div",{class:"footer"},[o.footer?.(a)])}),t.createVNode("div",{ref:u},[o.rest?.()])])}}});function C(e,o,l){return e?.[o]??l}function te(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function I(e){return(e??[]).map(o=>{if(te(o)){const l=o.children??o.options??[];return{...o,__isGroup:!0,__children:l}}return{...o,__isGroup:!1}})}function ae(e,o,l="label",r="value"){const s=I(o);for(const u of s)if(u.__isGroup){for(const y of u.__children)if(C(y,r,y.value)===e)return C(y,l,y.label)}else if(C(u,r,u.value)===e)return C(u,l,u.label);return""}function P(e,o={},l){const{onChange:r,value:s,...u}=l;return t.h(c.ElInput,{...u,modelValue:e.value,"onUpdate:modelValue":y=>{e.value=y,l?.onChange?.(y,l)},...o})}function j(e,o,l={},r){const{onChange:s,labelField:u,valueField:y,options:a,...i}=r??{},v=u??"label",n=y??"value",f=I(a??o);return t.h(c.ElSelect,{...i,modelValue:e.value,"onUpdate:modelValue":d=>{e.value=d,r?.onChange?.(d,r,f)},...l},{default:()=>f.map((d,p)=>{if(d.__isGroup)return t.h(c.ElOptionGroup,{key:d.key??`g-${p}`,label:C(d,v,d.label)},{default:()=>(d.__children??[]).map((b,h)=>{const m=C(b,v,b.label),S=C(b,n,b.value);return t.h(c.ElOption,{key:b.key??`${p}-${h}`,label:m,value:S,disabled:b.disabled})})});const V=C(d,v,d.label),g=C(d,n,d.value);return t.h(c.ElOption,{key:d.key??`${p}`,label:V,value:g,disabled:d.disabled})})})}function z(e,o,l={},r,s){const{labelField:u,valueField:y,options:a,onChange:i,...v}=r??{},n=u??"label",f=y??"value",d=a??o,p=I(d),V=()=>{if(s)return s;const g=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?ae(e.value,d,n,f)||String(e.value):"请选择";return t.h(c.ElButton,null,{default:()=>g})};return Array.isArray(e.value)?t.createVNode(c.ElPopover,{trigger:"click",...v,...l},{reference:()=>V(),default:()=>t.h(c.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":g=>{e.value=g,r?.onChange?.(g,r,p)}},{default:()=>t.h(c.ElSpace,{wrap:!0},{default:()=>p.flatMap((g,b)=>(g.__isGroup?g.__children??[]:[g]).map((m,S)=>{const B=C(m,n,m.label),E=C(m,f,m.value);return t.h(c.ElCheckbox,{key:m.key??`${b}-${S}`,label:E,disabled:m.disabled},{default:()=>B})}))})})}):t.createVNode(c.ElDropdown,{trigger:"click",...v,onCommand:g=>{e.value=g,r?.onChange?.(g,r,p)},...l},{default:()=>V(),dropdown:()=>t.h(c.ElDropdownMenu,null,{default:()=>p.flatMap((g,b)=>(g.__isGroup?g.__children??[]:[g]).map((m,S)=>{const B=C(m,n,m.label),E=C(m,f,m.value);return t.h(c.ElDropdownItem,{key:m.key??`${b}-${S}`,command:E,disabled:m.disabled},{default:()=>B})}))})})}function D(e,o,l={},r){const{valueField:s="value",labelField:u="label",childrenField:y="children",onChange:a,options:i,...v}=r??{},n=i??o;return t.h(c.ElTreeSelect,{...v,data:n,modelValue:e.value,"onUpdate:modelValue":f=>{e.value=f,r?.onChange?.(f,r,n)},props:{value:s,label:u,children:y,disabled:"disabled"},...l})}function $(e,o,l={},r){const{onChange:s,labelField:u,valueField:y,options:a,...i}=r??{},v=u??"label",n=y??"value",f=a??o;return t.h(c.ElRadioGroup,{...i,modelValue:e.value,"onUpdate:modelValue":d=>{e.value=d,r?.onChange?.(d,r,f)},...l},{default:()=>(f??[]).map((d,p)=>{const V=C(d,v,d.label),g=C(d,n,d.value);return t.h(c.ElRadio,{key:d.key??p,label:g,disabled:d.disabled},()=>V)})})}function M(e,o,l={},r){const{onChange:s,labelField:u,valueField:y,options:a,...i}=r??{},v=u??"label",n=y??"value",f=a??o;return t.h(c.ElRadioGroup,{...i,modelValue:e.value,"onUpdate:modelValue":d=>{e.value=d,r?.onChange?.(d,r,f)},...l},{default:()=>(f??[]).map((d,p)=>{const V=C(d,v,d.label),g=C(d,n,d.value);return t.h(c.ElRadioButton,{key:d.key??p,label:g,disabled:d.disabled},()=>V)})})}function _(e,o,l={},r){const{onChange:s,labelField:u,valueField:y,options:a,...i}=r??{},v=u??"label",n=y??"value",f=a??o;return t.h(c.ElCheckboxGroup,{...i,modelValue:e.value,"onUpdate:modelValue":d=>{e.value=d,r?.onChange?.(d,r,f)},...l},{default:()=>t.h(c.ElSpace,{wrap:!0},{default:()=>(f??[]).map((d,p)=>{const V=C(d,v,d.label),g=C(d,n,d.value);return t.h(c.ElCheckbox,{key:d.key??p,label:g,disabled:d.disabled},()=>V)})})})}function G(e,o={},l){const{onChange:r,...s}=l??{};return t.h(c.ElSwitch,{...s,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,l?.onChange?.(u,l)},...o})}function L(e,o={},l){const{onChange:r,...s}=l??{};return t.h(c.ElDatePicker,{...s,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,l?.onChange?.(u,l)},...o})}function U(e,o={},l){const{onChange:r,...s}=l??{};return t.h(c.ElTimePicker,{...s,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,l?.onChange?.(u,l)},...o})}function H(e,o={},l){const{onChange:r,...s}=l??{};return t.h(c.ElCheckbox,{...s,label:o?.label??l?.label,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,l?.onChange?.(e.value,l)},...o})}function Z(e,o={},l){const{onChange:r,value:s,labelField:u="label",valueField:y,...a}=l??{};return t.h(c.ElInputTag,{...a,modelValue:y?e.value.map(i=>i[y]):e.value,"onUpdate:modelValue":i=>{e.value=y?i.map(v=>({[u]:v,[y]:v})):i,l?.onChange?.(i,l)},...o})}function q(e,o={},l){const{onChange:r,...s}=l??{};return t.h(c.ElSlider,{...s,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,l?.onChange?.(u,l)},...o})}function W(e,o={},l){const{onChange:r,...s}=l??{};return t.h(c.ElInputNumber,{...s,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u??null,l?.onChange?.(e.value,l)},...o})}const le=Object.freeze(Object.defineProperty({__proto__:null,renderCheckbox:H,renderCheckboxGroup:_,renderDatePicker:L,renderDynamicTags:Z,renderInput:P,renderInputNumber:W,renderPopSelect:z,renderRadioButtonGroup:M,renderRadioGroup:$,renderSelect:j,renderSlider:q,renderSwitch:G,renderTimePicker:U,renderTreeSelect:D},Symbol.toStringTag,{value:"Module"}));function re(e){return function(l,r=!0){const s=e,u={renderInput:a=>s.renderInput(a.value,a.renderProps??{},a),renderSelect:a=>s.renderSelect(a.value,a.options??[],a.renderProps??{},a),renderPopSelect:a=>s.renderPopSelect(a.value,a.options??[],a.renderProps??{},a),renderTreeSelect:a=>s.renderTreeSelect(a.value,a.options??[],a.renderProps??{},a),renderRadioGroup:a=>s.renderRadioGroup(a.value,a.options??[],a.renderProps??{},a),renderRadioButtonGroup:a=>s.renderRadioButtonGroup(a.value,a.options??[],a.renderProps??{},a),renderCheckboxGroup:a=>s.renderCheckboxGroup(a.value,a.options??[],a.renderProps??{},a),renderSwitch:a=>s.renderSwitch(a.value,a.renderProps??{},a),renderDatePicker:a=>s.renderDatePicker(a.value,a.renderProps??{},a),renderTimePicker:a=>s.renderTimePicker(a.value,a.renderProps??{},a),renderCheckbox:a=>s.renderCheckbox(a.value,a.renderProps??{},a),renderDynamicTags:a=>s.renderDynamicTags(a.value,a.renderProps??{},a),renderSlider:a=>s.renderSlider(a.value,a.renderProps??{},a),renderInputNumber:a=>s.renderInputNumber(a.value,a.renderProps??{},a)};return l.map(a=>{const i=a;if(i.value=N.ensureRef(a.value),typeof a.render2=="function")i.render2=a.render2;else{const v=a.renderType??"renderInput",n=u[v];n?i.render2=()=>n(i):(console.warn(`[useDecorateForm] unknown renderType: ${a.renderType}`),i.render2=()=>u.renderInput(i))}return r?t.shallowReactive(i):i})}}const ne=re(le);function F(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const oe=t.defineComponent({name:"EleZealTableSearch",props:{title:{type:String},drawerTitle:{type:String},searchItems:{type:Array,default:[]},searchFormMaxHeight:{type:String,default:"200px"},size:{type:[Number,String],default:240},drawerOpenTxt:{type:String,default:"Search Drawer"},searchBtnTxt:{type:Array,default:()=>["Reset","Search"]},mobileDrawer:{type:Boolean,default:!0},closeDrawerAuto:{type:Boolean,default:!1},copyDefault:{type:Boolean,default:!1},isMobile:{type:Boolean,default:!1}},emits:{onReset:()=>!0,onSearch:e=>!0},slots:Object,setup(e,{emit:o,slots:l,expose:r}){const s=t.ref(!1),u=t.ref({}),y=N.useDyForm(e.searchItems),a=n=>{s.value=n??!s.value},i=()=>{e.copyDefault?y.setValues(u.value):y.onReset(null),o("onReset"),a(!1)},v=()=>{const n=y.getValues();o("onSearch",n),a(!1)};return t.watch(()=>e.isMobile,n=>{e.closeDrawerAuto||n||a(!1)}),t.onMounted(async()=>{await t.nextTick(),e.copyDefault&&(u.value=y.getValues())}),r({onReset:i,onSearch:v,toggleDrawer:a,getParams:()=>y.getValues()}),()=>{const[n,f]=e.searchBtnTxt;return t.createVNode("div",{class:"eleZealTableSearch"},[!e.mobileDrawer||!e.isMobile?t.createVNode(t.Fragment,null,[l.title?.()??t.createVNode("div",{class:"naiTitle"},[e.title]),t.createVNode("div",{class:"searchForm",style:{maxHeight:e.searchFormMaxHeight}},[t.createVNode(x,{items:e.searchItems,preset:"grid",formConfig:{labelPosition:"left",showMessage:!1}},null)]),l.searchBtn?l.searchBtn?.({onSearch:v,onReset:i}):t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small",onClick:i},F(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{type:"primary",size:"small",onClick:v},F(f)?f:{default:()=>[f]})])]):t.createVNode("div",{class:"drawerSearchBtn"},[l.title?.()??t.createVNode("div",{class:"naiTitle"},[e.title]),l.drawerBtn?l.drawerBtn?.({openDrawer:()=>a(!0)}):t.createVNode(c.ElButton,{size:"small",onClick:()=>{a(!0)}},{default:()=>[e.drawerOpenTxt]})]),t.createVNode(c.ElDrawer,{class:"eleZealSearchDrawer",modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,size:e.size,trapFocus:!1,direction:"ttb"},{default:()=>[t.createVNode("div",{class:"searchForm"},[t.createVNode(x,{formConfig:{labelPosition:"left",size:"small",showMessage:!1},items:e.searchItems},null)])],header:()=>t.createVNode("div",null,[e.drawerTitle??e.title]),footer:()=>l.searchBtn?l.searchBtn?.({onSearch:v,onReset:i}):t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small",onClick:i},F(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{type:"primary",size:"small",onClick:v},F(f)?f:{default:()=>[f]})])})])}}}),ue=t.defineComponent({name:"EleZealTablePaginationControl",props:{pagination:{type:Object,required:!0},pageConfig:{type:Object},isMobile:{type:Boolean,default:!1}},slots:Object,setup(e,{slots:o}){const l=t.toRef(e,"pagination");function r(u){l.value.pageNo=u,l.value?.onChange()}function s(u){l.value.pageNo=1,l.value.pageSize=u,l.value?.onPageSizeChange()}return()=>t.createVNode(c.ElPagination,t.mergeProps({currentPage:l.value?.pageNo,"page-size":l.value?.pageSize,total:l.value?.total,pageSizes:l.value?.pageSizes,layout:!o.default&&e.isMobile?se(l.value?.layout):l.value?.layout,"onUpdate:current-page":r,"onUpdate:page-size":s},e.pageConfig),{...o})}}),de=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),se=(e,o=["sizes","jumper"])=>{if(!e||o.length===0)return e;const l=new RegExp(`(^|,\\s*)(${o.map(de).join("|")})(?=\\s*,|$)`,"g");return e.replace(l,"").replace(/^,|,$/g,"")},ce=t.defineComponent({name:"EleZealTable",props:{data:{type:Array,default:()=>[]},columns:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},maxHeight:{type:[Number,String]},columnAlign:{type:String},stripe:{type:Boolean,default:!0},border:{type:Boolean,default:!1},tableConfig:{type:Object}},slots:Object,setup(e,{slots:o,attrs:l}){return()=>t.withDirectives(t.createVNode(c.ElTable,t.mergeProps(e.tableConfig,l,{data:e.data,maxHeight:e.maxHeight,stripe:e.stripe,border:e.border}),{default:()=>[e.columns.map(r=>{const s=r.key??String(r.prop??r.label),u=r.align??e.columnAlign,{render2:y,slot:a,...i}=r,v=a||(r.prop?`cell-${String(r.prop)}`:void 0),n=v?o[v]:void 0;return t.createVNode(c.ElTableColumn,t.mergeProps(i,{align:u,key:s}),{default:f=>y?y(f.row,f.$index):n?n(f):r.prop?f.row[r.prop]:null})})],...o}),[[t.resolveDirective("loading"),e.loading]])}});exports.EleDynamicCascadeInput=X;exports.EleDynamicForm=x;exports.EleDynamicInput=J;exports.ElePopupModal=Y;exports.EleZealCard=ee;exports.EleZealTable=ce;exports.EleZealTablePaginationControl=ue;exports.EleZealTableSearch=oe;exports.renderCheckbox=H;exports.renderCheckboxGroup=_;exports.renderDatePicker=L;exports.renderDynamicTags=Z;exports.renderInput=P;exports.renderInputNumber=W;exports.renderPopSelect=z;exports.renderRadioButtonGroup=M;exports.renderRadioGroup=$;exports.renderSelect=j;exports.renderSlider=q;exports.renderSwitch=G;exports.renderTimePicker=U;exports.renderTreeSelect=D;exports.useDecorateForm=ne;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("../index-BAqRAwDC.cjs"),t=require("vue"),c=require("element-plus"),J=t.defineComponent({name:"EleDynamicInput",props:{size:{type:String},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},modelValue:{type:Object,required:!0}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,o)=>!0},slots:Object,setup(e,{emit:o,expose:a,slots:r}){const d={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},m={arraySplitSymbol:",",...e.dyListConfigs},l=e.size,s=t.ref(N.tranArr(e.modelValue,e.randomFun,m.arraySplitSymbol)),g=t.ref(null);t.watch(s,p=>{if(!e.isController)return;const C=N.resetObj(p,m.arraySplitSymbol);o("update:modelValue",C),o("onMerge",C,t.toRaw(s.value))},{deep:!0}),a({onSet:p=>{s.value=N.tranArr(p??e.modelValue,e.randomFun,m.arraySplitSymbol)},getResult:(p="res")=>p==="ori"?t.toRaw(s.value):N.resetObj(s.value,m.arraySplitSymbol)});const n=()=>s.value.push({rId:e.randomFun(),key:"",value:""}),f=()=>{s.value=N.tranArr(e.modelValue,e.randomFun,m.arraySplitSymbol),o("onReset")},i=()=>{s.value.sort((C,b)=>+C.rId-+b.rId);const p=N.resetObj(s.value,m.arraySplitSymbol);o("update:modelValue",p),o("onMerge",p,t.toRaw(s.value)),s.value=N.tranArr(p,e.randomFun,m.arraySplitSymbol)};return()=>t.createVNode("div",{class:e.dyCls??`dynamicForm ${l}`,style:{maxHeight:u.maxHeight}},[t.createVNode("div",{class:`dyFormList ${s.value.length?"":"noList"}`,ref:g},[s.value.map((p,C,b)=>{const v={row:p,index:C,isLast:C===b.length-1,addItem:()=>{s.value.push({rId:e.randomFun(),key:"",value:""}),u.autoScroll&&t.nextTick(()=>{const h=g.value;h?.scrollTo({top:h.scrollHeight,behavior:"smooth"})})},removeItem:()=>{s.value=s.value.filter(h=>h.rId!==p.rId)},toggleArray:()=>p.isArray=!p.isArray,toggleNumber:()=>p.isNumber=!p.isNumber};return t.createVNode("div",{class:"dItem",key:p.rId},[t.createVNode("div",{class:"input"},[t.createVNode(c.ElInput,{size:l,modelValue:p.key,class:"key",onInput:h=>{p.key=h}},null),t.createTextVNode(":"),t.createVNode(c.ElInput,{size:l,modelValue:p.value,class:"value",onInput:h=>{u.allowFilter&&p.isNumber?p.value=N.formatNumberInput(h,p.isArray,m.arraySplitSymbol):p.value=h}},{prefix:()=>r.typeTools?r.typeTools(v):t.createVNode(t.Fragment,null,[!u.hideArrayBtn&&t.createVNode(c.ElButton,{class:"typeBtn",type:p.isArray?"success":"default",size:"small",onClick:v.toggleArray},{default:()=>[t.createTextVNode("Array")]}),!u.hideNumberBtn&&t.createVNode(c.ElButton,{class:"typeBtn",type:p.isNumber?"success":"default",size:"small",onClick:v.toggleNumber},{default:()=>[t.createTextVNode("Number")]})])})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(v):t.createVNode(t.Fragment,null,[t.createVNode(c.ElButton,{type:"success",size:l,disabled:!v.isLast,onClick:v.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(c.ElButton,{size:l,type:"danger",onClick:v.removeItem},{default:()=>[t.createTextVNode("-")]})])])])})]),t.createVNode("div",{class:`control ${s.value.length?"":"noList"}`},[!s.value.length&&(r.newBtn?r.newBtn({newItem:n}):t.createVNode(c.ElButton,{size:l,type:"success",onClick:n},{default:()=>[d.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!u.hideReset&&(r.resetBtn?r.resetBtn({reset:f}):t.createVNode(c.ElButton,{size:l,type:"default",onClick:f},{default:()=>[d.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:i}):t.createVNode(c.ElButton,{size:l,type:"info",onClick:i},{default:()=>[d.mergeTxt]})])])])}});function Q(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const X=t.defineComponent({name:"EleDynamicCascadeInput",props:{modelValue:{type:Object,required:!0},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},depth:{type:Number,default:3},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},newChildTxt:{type:Function,default:e=>`添加 '${e.key}' 子项`}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,o)=>!0},slots:Object,setup(e,{emit:o,expose:a,slots:r}){const d={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,hideArrayBtn:!1,hideNumberBtn:!1,showPad:!0,retractLen:0,borderColors:[],...e.configs},m={arraySplitSymbol:",",...e.dyListConfigs},l=b=>["string","number"].includes(b),s=b=>Object.keys(b).map((v,h)=>{let y=b[v];const S=Array.isArray(y),T=S?y.every(F=>typeof F=="number"):typeof y=="number",E=y===null;return l(typeof y)&&(y=b[v]),E&&(y=""),{rId:e.randomFun(h),key:v,value:Object.prototype.toString.call(y)==="[object Object]"?s(b[v]):S?y.join(m.arraySplitSymbol):y,isArray:S||void 0,isNumber:T||void 0}}),g=b=>b.reduce((v,h)=>{const y=h.value;return h.key.trim().length&&(v[h.key]=Array.isArray(y)?g(y):N.parseValue(h.value,h.isArray,h.isNumber,m.arraySplitSymbol)),v},{}),n=t.ref(s(e.modelValue)),f=(b,v=1,h)=>t.createVNode("div",{class:[`depth-${v}`,u.showBorder?"":"no-border",u.showPad?"":"no-pad"],style:{"--depth":v,["--c"+[v]]:N.saferRepairColor(u.borderColors,v)}},[b.map((y,S,T)=>{const E=Array.isArray(y.value),F=l(typeof y.value),w={row:y,index:S,isLast:S===T.length-1,addItem:()=>{b.push({rId:e.randomFun(),key:"",value:""})},addChild:()=>{F&&(y.value=[],y.isArray=void 0),y.value.push({rId:e.randomFun(),key:"",value:""})},removeItem:()=>{if(b.splice(S,1),b.length<1){if(h===void 0)return g([]);const k=n.value.findIndex(K=>K.rId===h?.rId);v<1?n.value.splice(k,1,{...h,value:""}):h.value=""}},toggleArray:()=>y.isArray=!y.isArray,toggleNumber:()=>y.isNumber=!y.isNumber};return t.createVNode("div",{class:"dItem",key:y.rId,style:{marginLeft:v>1?`${v*u.retractLen}px`:"0"}},[t.createVNode("div",{class:"input"},[!E&&t.createVNode(t.Fragment,null,[t.createVNode(c.ElInput,{modelValue:y.key,class:"key",onInput:k=>y.key=k},null),t.createTextVNode(":")]),t.createVNode(c.ElInput,{class:`value ${E?"isKey":""}`,modelValue:F?y.value:y.key,onInput:k=>{if(E){y.key=k;return}u.allowFilter&&y.isNumber?y.value=N.formatNumberInput(k,y.isArray,m.arraySplitSymbol):y.value=k}},{prefix:Array.isArray(y.value)?void 0:()=>r.typeTools?r.typeTools(w):t.createVNode(t.Fragment,null,[!u.hideArrayBtn&&t.createVNode(c.ElButton,{type:y.isArray?"success":"default",size:"small",onClick:w.toggleArray},{default:()=>[t.createTextVNode("Array")]}),t.createTextVNode(" "),!u.hideNumberBtn&&t.createVNode(c.ElButton,{type:y.isNumber?"success":"default",size:"small",onClick:w.toggleNumber},{default:()=>[t.createTextVNode("Number")]})]),suffix:()=>{let k;return v<e.depth?!E&&(r.newChild?r.newChild(w):t.createVNode(c.ElButton,{type:"success",size:"small",onClick:()=>{F&&(y.value=[],y.isArray=void 0),y.value.push({rId:e.randomFun(),key:"",value:""})}},Q(k=e.newChildTxt(y))?k:{default:()=>[k]})):null}})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(w):t.createVNode(t.Fragment,null,[t.createVNode(c.ElButton,{type:"success",disabled:!w.isLast,onClick:w.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(c.ElButton,{type:"danger",onClick:w.removeItem},{default:()=>[t.createTextVNode("-")]})])]),Array.isArray(y.value)&&f(y.value,v+1,y)])})]);t.watch(n,b=>{if(!e.isController)return;const v=g(b);o("update:modelValue",v),o("onMerge",v,t.toRaw(n.value))},{deep:!0}),a({onSet:b=>{n.value=s(b??e.modelValue)},getResult:(b="res")=>b==="ori"?t.toRaw(n.value):g(n.value)});const i=()=>n.value.push({rId:e.randomFun(),key:"",value:""}),p=()=>{n.value=s(e.modelValue),o("onReset")},C=()=>{const b=g(n.value);o("update:modelValue",b),o("onMerge",b,t.toRaw(n.value)),n.value=s(b)};return()=>t.createVNode("div",{class:`dynamicCascadeForm ${e.dyCls}`},[t.createVNode("div",{class:`dyFormList ${n.value.length?"":"noObj"}`,style:{maxHeight:u.maxHeight}},[f(n.value)]),t.createVNode("div",{class:`control ${n.value.length?"":"noObj"}`},[!n.value.length&&(r.newBtn?r.newBtn({newItem:i}):t.createVNode(c.ElButton,{type:"success",onClick:i},{default:()=>[d.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!u.hideReset&&(r.resetBtn?r.resetBtn({reset:p}):t.createVNode(c.ElButton,{type:"default",onClick:p},{default:()=>[d.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:C}):t.createVNode(c.ElButton,{type:"info",onClick:C},{default:()=>[d.mergeTxt]})])])])}}),x=t.defineComponent({name:"EleDynamicForm",props:{formConfig:{type:Object,default:()=>({labelPosition:"left",size:"default"})},rowConfig:{type:Object,default:()=>({gutter:10,justify:"start",align:"top"})},rules:{type:Object},preset:{type:String,default:"fullRow",validator:e=>["fullRow","grid"].includes(e)?!0:(console.error("preset value must be `fullRow` or `grid`, the default value is `fullRow`"),!1)},items:{type:Array,require:!0}},slots:Object,setup(e,{expose:o,slots:a}){const r=t.ref(null),d=t.computed(()=>(e.items??[]).filter(n=>!n.hidden)),u=t.computed(()=>d.value?d.value.reduce((n,f)=>(n[f.key]=f.value.value,n),{}):{}),m=t.computed(()=>({...d.value?.reduce((f,i)=>{let p=i.rule;return i.required&&!i.rule&&(p={required:!0,message:i.requiredHint?.(i.label??"")??`${i.label}不能为空`,trigger:"blur"}),f[i.key]=p,f},{}),...e.rules})),l=t.computed(()=>[...d.value].sort((f,i)=>{const p=f.sort??1/0,C=i.sort??1/0;return Number(p)-Number(C)}));function s(n=null){d.value&&d.value.forEach(f=>{f.value.value=n})}function g(){return new Promise((n,f)=>{r.value?.validate((i,p)=>{i?n(u.value):f(p)})})}if(o({reset:s,validator:g,getResult:(n="res")=>n==="ori"?d.value:u.value}),!e.items)throw new Error("prop items must be not null");return()=>t.createVNode("div",{class:"naiDynamicForm"},[a.header&&t.createVNode("div",{class:"header"},[a.header?.()]),t.createVNode(c.ElForm,t.mergeProps({ref:r},e.formConfig,{model:u.value,rules:m.value}),{default(){const n=l.value;return e.preset==="grid"?t.h(c.ElRow,{...e.rowConfig},{default:()=>n?.map(f=>t.h(c.ElCol,{span:f.span??24,offset:f.offset??0},{default:()=>t.h(c.ElFormItem,{label:f.label,prop:f.path||f.key},{default:R(f)})}))}):n?.map(f=>t.h(c.ElFormItem,{label:f.label,prop:f.path||f.key},{default:R(f)}))}}),a.footer&&t.h("div",{class:"footer"},a.footer?.())])}});function R(e){return function(){return e.render2?e.render2(e):null}}function O(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const Y=t.defineComponent({name:"ElePopupModal",props:{title:{type:String},modalProps:{type:Object},to:{type:[String,Object]},showClose:{type:Boolean,default:!0},closeOnMask:{type:Boolean,default:!0},width:{type:String,default:"min(1080px,90%)"},onCancel:{type:Function,default:()=>!0},onSubmit:{type:Function,default:()=>!0},footerTxt:{type:Array,default:()=>["Cancel","Submit"]}},slots:Object,setup(e,{expose:o,emit:a,slots:r}){const d=t.computed(()=>({alignCenter:!0,draggable:!0,appendToBody:!0,...e.modalProps??{}})),u=t.ref(!1),m=t.reactive({c:!1,s:!1}),l=n=>{u.value=n??!u.value};o({toggle:l});const s=async()=>{m.c=!0,(await e.onCancel?.()??!0)&&l(!1),m.c=!1},g=async()=>{m.s=!0,(await e.onSubmit?.()??!0)&&l(!1),m.s=!1};return()=>t.createVNode(c.ElDialog,t.mergeProps({modelValue:u.value,"onUpdate:modelValue":n=>u.value=n,showClose:e.showClose,closeOnClickModal:e.closeOnMask,style:{width:e.width},title:e.title,appendTo:e.to},d.value),{footer:()=>{const[n,f]=e.footerTxt,{c:i,s:p}=m;return t.createVNode("div",{class:"flex justify-end align-center"},[t.createVNode(c.ElButton,{size:"small",onClick:s,loading:i},O(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{size:"small",type:"success",onClick:g,loading:p},O(f)?f:{default:()=>[f]})])},...r})}});function A(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const ee=t.defineComponent({name:"EleZealCard",props:{title:{type:String},zealHeight:{type:String,default:"100vh"},outPadding:{type:Number,default:20},searchBtnTxt:{type:Array,default:()=>["Reset","Search"]},checkWindowSize:{type:Array,default:[756,500]},observeDelay:{type:Number,default:100}},slots:Object,setup(e,{slots:o,expose:a}){const r=N.useWindowSize(...e.checkWindowSize),{wrapRef:d,cardRef:u,restRef:m,tableHeight:l}=N.useObserverSize(c.ElCard,e.observeDelay);return a({tableHeight:l,isMobile:t.computed(()=>r.isMobile)}),()=>{const s=N.unwrapObj(r);return t.createVNode("div",{class:"zealCard",style:{height:`calc(${e.zealHeight} - ${e.outPadding*2}px)`},ref:d},[t.createVNode(c.ElCard,{ref:u},{default:()=>[o.default?.({tableHeight:l.value,...s})],header:()=>{const[g,n]=e.searchBtnTxt;return t.createVNode("div",{class:"header"},[o.header?.(s)??t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"title"},[e.title]),t.createVNode("div",{class:"search"},[o.searchForm?.(s),o.searchBtn?.(s)||o.searchForm&&t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small"},A(g)?g:{default:()=>[g]}),t.createVNode(c.ElButton,{type:"info",size:"small"},A(n)?n:{default:()=>[n]})])])]),t.createVNode("div",{class:"controlBtn"},[t.createVNode("div",null,[o.controlBtn?.(s)]),o.toolBtn?.(s)])])},footer:o.footer?()=>t.createVNode("div",{class:"footer"},[o.footer?.(s)]):null}),t.createVNode("div",{ref:m},[o.rest?.(s)])])}}});function V(e,o,a){return e?.[o]??a}function te(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function I(e){return(e??[]).map(o=>{if(te(o)){const a=o.children??o.options??[];return{...o,__isGroup:!0,__children:a}}return{...o,__isGroup:!1}})}function le(e,o,a="label",r="value"){const d=I(o);for(const u of d)if(u.__isGroup){for(const m of u.__children)if(V(m,r,m.value)===e)return V(m,a,m.label)}else if(V(u,r,u.value)===e)return V(u,a,u.label);return""}function P(e,o={},a){const{onChange:r,value:d,...u}=a;return t.h(c.ElInput,{...u,modelValue:e.value,"onUpdate:modelValue":m=>{e.value=m,a?.onChange?.(m,a)},...o})}function j(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=I(l??o);return t.h(c.ElSelect,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>f.map((i,p)=>{if(i.__isGroup)return t.h(c.ElOptionGroup,{key:i.key??`g-${p}`,label:V(i,g,i.label)},{default:()=>(i.__children??[]).map((v,h)=>{const y=V(v,g,v.label),S=V(v,n,v.value);return t.h(c.ElOption,{key:v.key??`${p}-${h}`,label:y,value:S,disabled:v.disabled})})});const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElOption,{key:i.key??`${p}`,label:C,value:b,disabled:i.disabled})})})}function z(e,o,a={},r,d){const{labelField:u,valueField:m,options:l,onChange:s,...g}=r??{},n=u??"label",f=m??"value",i=l??o,p=I(i),C=()=>{if(d)return d;const b=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?le(e.value,i,n,f)||String(e.value):"请选择";return t.h(c.ElButton,null,{default:()=>b})};return Array.isArray(e.value)?t.createVNode(c.ElPopover,{trigger:"click",...g,...a},{reference:()=>C(),default:()=>t.h(c.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":b=>{e.value=b,r?.onChange?.(b,r,p)}},{default:()=>t.h(c.ElSpace,{wrap:!0},{default:()=>p.flatMap((b,v)=>(b.__isGroup?b.__children??[]:[b]).map((y,S)=>{const T=V(y,n,y.label),E=V(y,f,y.value);return t.h(c.ElCheckbox,{key:y.key??`${v}-${S}`,label:E,disabled:y.disabled},{default:()=>T})}))})})}):t.createVNode(c.ElDropdown,{trigger:"click",...g,onCommand:b=>{e.value=b,r?.onChange?.(b,r,p)},...a},{default:()=>C(),dropdown:()=>t.h(c.ElDropdownMenu,null,{default:()=>p.flatMap((b,v)=>(b.__isGroup?b.__children??[]:[b]).map((y,S)=>{const T=V(y,n,y.label),E=V(y,f,y.value);return t.h(c.ElDropdownItem,{key:y.key??`${v}-${S}`,command:E,disabled:y.disabled},{default:()=>T})}))})})}function D(e,o,a={},r){const{valueField:d="value",labelField:u="label",childrenField:m="children",onChange:l,options:s,...g}=r??{},n=s??o;return t.h(c.ElTreeSelect,{...g,data:n,modelValue:e.value,"onUpdate:modelValue":f=>{e.value=f,r?.onChange?.(f,r,n)},props:{value:d,label:u,children:m,disabled:"disabled"},...a})}function M(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=l??o;return t.h(c.ElRadioGroup,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>(f??[]).map((i,p)=>{const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElRadio,{key:i.key??p,label:b,disabled:i.disabled},()=>C)})})}function $(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=l??o;return t.h(c.ElRadioGroup,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>(f??[]).map((i,p)=>{const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElRadioButton,{key:i.key??p,label:b,disabled:i.disabled},()=>C)})})}function _(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=l??o;return t.h(c.ElCheckboxGroup,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>t.h(c.ElSpace,{wrap:!0},{default:()=>(f??[]).map((i,p)=>{const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElCheckbox,{key:i.key??p,label:b,disabled:i.disabled},()=>C)})})})}function G(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElSwitch,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function L(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElDatePicker,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function H(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElTimePicker,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function Z(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElCheckbox,{...d,label:o?.label??a?.label,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(e.value,a)},...o})}function U(e,o={},a){const{onChange:r,value:d,labelField:u="label",valueField:m,...l}=a??{};return t.h(c.ElInputTag,{...l,modelValue:m?e.value.map(s=>s[m]):e.value,"onUpdate:modelValue":s=>{e.value=m?s.map(g=>({[u]:g,[m]:g})):s,a?.onChange?.(s,a)},...o})}function q(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElSlider,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function W(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElInputNumber,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u??null,a?.onChange?.(e.value,a)},...o})}const ae=Object.freeze(Object.defineProperty({__proto__:null,renderCheckbox:Z,renderCheckboxGroup:_,renderDatePicker:L,renderDynamicTags:U,renderInput:P,renderInputNumber:W,renderPopSelect:z,renderRadioButtonGroup:$,renderRadioGroup:M,renderSelect:j,renderSlider:q,renderSwitch:G,renderTimePicker:H,renderTreeSelect:D},Symbol.toStringTag,{value:"Module"}));function re(e){return function(a,r=!0){const d=e,u={renderInput:l=>d.renderInput(l.value,l.renderProps??{},l),renderSelect:l=>d.renderSelect(l.value,l.options??[],l.renderProps??{},l),renderPopSelect:l=>d.renderPopSelect(l.value,l.options??[],l.renderProps??{},l),renderTreeSelect:l=>d.renderTreeSelect(l.value,l.options??[],l.renderProps??{},l),renderRadioGroup:l=>d.renderRadioGroup(l.value,l.options??[],l.renderProps??{},l),renderRadioButtonGroup:l=>d.renderRadioButtonGroup(l.value,l.options??[],l.renderProps??{},l),renderCheckboxGroup:l=>d.renderCheckboxGroup(l.value,l.options??[],l.renderProps??{},l),renderSwitch:l=>d.renderSwitch(l.value,l.renderProps??{},l),renderDatePicker:l=>d.renderDatePicker(l.value,l.renderProps??{},l),renderTimePicker:l=>d.renderTimePicker(l.value,l.renderProps??{},l),renderCheckbox:l=>d.renderCheckbox(l.value,l.renderProps??{},l),renderDynamicTags:l=>d.renderDynamicTags(l.value,l.renderProps??{},l),renderSlider:l=>d.renderSlider(l.value,l.renderProps??{},l),renderInputNumber:l=>d.renderInputNumber(l.value,l.renderProps??{},l)};return a.map(l=>{const s=l;if(s.value=N.ensureRef(l.value),typeof l.render2=="function")s.render2=l.render2;else{const g=l.renderType??"renderInput",n=u[g];n?s.render2=()=>n(s):(console.warn(`[useDecorateForm] unknown renderType: ${l.renderType}`),s.render2=()=>u.renderInput(s))}return r?t.shallowReactive(s):s})}}const ne=re(ae);function B(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const oe=t.defineComponent({name:"EleZealTableSearch",props:{title:{type:String},drawerTitle:{type:String},searchItems:{type:Array,default:[]},searchFormMaxHeight:{type:String,default:"200px"},size:{type:[Number,String],default:240},drawerOpenTxt:{type:String,default:"Search Drawer"},searchBtnTxt:{type:Array,default:()=>["Reset","Search"]},mobileDrawer:{type:Boolean,default:!0},closeDrawerAuto:{type:Boolean,default:!1},copyDefault:{type:Boolean,default:!1},isMobile:{type:Boolean,default:!1}},emits:{onReset:()=>!0,onSearch:e=>!0},slots:Object,setup(e,{emit:o,slots:a,expose:r}){const d=t.ref(!1),u=t.ref({}),m=N.useDyForm(e.searchItems),l=n=>{d.value=n??!d.value},s=()=>{e.copyDefault?m.setValues(u.value):m.onReset(null),o("onReset"),l(!1)},g=()=>{const n=m.getValues();o("onSearch",n),l(!1)};return t.watch(()=>e.isMobile,n=>{e.closeDrawerAuto||n||l(!1)}),t.onMounted(async()=>{await t.nextTick(),e.copyDefault&&(u.value=m.getValues())}),r({onReset:s,onSearch:g,toggleDrawer:l,getParams:()=>m.getValues()}),()=>{const[n,f]=e.searchBtnTxt;return t.createVNode("div",{class:"eleZealTableSearch"},[!e.mobileDrawer||!e.isMobile?t.createVNode(t.Fragment,null,[a.title?.()??t.createVNode("div",{class:"naiTitle"},[e.title]),t.createVNode("div",{class:"searchForm",style:{maxHeight:e.searchFormMaxHeight}},[t.createVNode(x,{items:e.searchItems,preset:"grid",formConfig:{labelPosition:"left",showMessage:!1}},null)]),a.searchBtn?a.searchBtn?.({onSearch:g,onReset:s}):t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small",onClick:s},B(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{type:"primary",size:"small",onClick:g},B(f)?f:{default:()=>[f]})])]):t.createVNode("div",{class:"drawerSearchBtn"},[a.title?.()??t.createVNode("div",{class:"naiTitle"},[e.title]),a.drawerBtn?a.drawerBtn?.({openDrawer:()=>l(!0)}):t.createVNode(c.ElButton,{size:"small",onClick:()=>{l(!0)}},{default:()=>[e.drawerOpenTxt]})]),t.createVNode(c.ElDrawer,{class:"eleZealSearchDrawer",modelValue:d.value,"onUpdate:modelValue":i=>d.value=i,size:e.size,trapFocus:!1,direction:"ttb"},{default:()=>[t.createVNode("div",{class:"searchForm"},[t.createVNode(x,{formConfig:{labelPosition:"left",size:"small",showMessage:!1},items:e.searchItems},null)])],header:()=>t.createVNode("div",null,[e.drawerTitle??e.title]),footer:()=>a.searchBtn?a.searchBtn?.({onSearch:g,onReset:s}):t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small",onClick:s},B(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{type:"primary",size:"small",onClick:g},B(f)?f:{default:()=>[f]})])})])}}}),ue=t.defineComponent({name:"EleZealTablePaginationControl",props:{pagination:{type:Object,required:!0},pageConfig:{type:Object},isMobile:{type:Boolean,default:!1}},slots:Object,setup(e,{slots:o}){const a=t.toRef(e,"pagination");function r(u){a.value.pageNo=u,a.value?.onChange()}function d(u){a.value.pageNo=1,a.value.pageSize=u,a.value?.onPageSizeChange()}return()=>t.createVNode(c.ElPagination,t.mergeProps({currentPage:a.value?.pageNo,"page-size":a.value?.pageSize,total:a.value?.total,pageSizes:a.value?.pageSizes,layout:!o.default&&e.isMobile?se(a.value?.layout):a.value?.layout,"onUpdate:current-page":r,"onUpdate:page-size":d},e.pageConfig),{...o})}}),de=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),se=(e,o=["sizes","jumper"])=>{if(!e||o.length===0)return e;const a=new RegExp(`(^|,\\s*)(${o.map(de).join("|")})(?=\\s*,|$)`,"g");return e.replace(a,"").replace(/^,|,$/g,"")},ce=t.defineComponent({name:"EleZealTable",props:{data:{type:Array,default:()=>[]},columns:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},maxHeight:{type:[Number,String]},columnAlign:{type:String},stripe:{type:Boolean,default:!0},border:{type:Boolean,default:!1},tableConfig:{type:Object}},slots:Object,setup(e,{slots:o,attrs:a}){return()=>t.withDirectives(t.createVNode(c.ElTable,t.mergeProps(e.tableConfig,a,{data:e.data,maxHeight:e.maxHeight,stripe:e.stripe,border:e.border}),{default:()=>[e.columns.map(r=>{const d=r.key??String(r.prop??r.label),u=r.align??e.columnAlign,{render2:m,slot:l,...s}=r,g=l||(r.prop?`cell-${String(r.prop)}`:void 0),n=g?o[g]:void 0;return t.createVNode(c.ElTableColumn,t.mergeProps(s,{align:u,key:d}),{default:f=>m?m(f.row,f.$index):n?n(f):r.prop?f.row[r.prop]:null})})],...o}),[[t.resolveDirective("loading"),e.loading]])}}),ie=t.defineComponent({name:"EleZealTableBtnControl",props:{isMobile:{type:Boolean,default:!1},btnItems:{type:Array,default:()=>[]},size:{type:String,default:"small"},dropDownProps:{type:Object},dropDownText:{type:String,default:"controls"}},slots:Object,emits:{onSelect:e=>!0},setup(e,{emit:o,slots:a}){const r=e.btnItems,{dropDownText:d,size:u}=e;return()=>t.createVNode("div",{class:"zealTableBtnControl"},[e.isMobile?t.createVNode(c.ElDropdown,t.mergeProps({size:u,trigger:"click",placement:"bottom"},e.dropDownProps),{default:()=>[a.text?a.text():t.createVNode(c.ElButton,{size:u},B(d)?d:{default:()=>[d]})],dropdown:()=>{let m;return t.createVNode(c.ElDropdownMenu,null,B(m=r.map(l=>t.createVNode(c.ElDropdownItem,{disabled:l.disabled,key:l.key,onClick:()=>{l.onSelect?.(l.key),o("onSelect",l.key)}},{default:()=>[l.title]})))?m:{default:()=>[m]})}}):r.map(m=>{const{key:l,onSelect:s,title:g,...n}=m;return t.createVNode(c.ElButton,t.mergeProps({size:u,key:l,onClick:()=>{s?.(l),o("onSelect",l)}},n),B(g)?g:{default:()=>[g]})})])}});function fe(e,o){const a=t.ref(null),r=t.computed(()=>{const d=a.value;return e({isMobile:d?.isMobile??t.ref(!1),tableHeight:d?.tableHeight??t.ref(0)}).map(u=>({...o,...u}))});return{eleZealCardRef:a,tableColumns:r}}exports.EleDynamicCascadeInput=X;exports.EleDynamicForm=x;exports.EleDynamicInput=J;exports.ElePopupModal=Y;exports.EleZealCard=ee;exports.EleZealTable=ce;exports.EleZealTableBtnControl=ie;exports.EleZealTablePaginationControl=ue;exports.EleZealTableSearch=oe;exports.renderCheckbox=Z;exports.renderCheckboxGroup=_;exports.renderDatePicker=L;exports.renderDynamicTags=U;exports.renderInput=P;exports.renderInputNumber=W;exports.renderPopSelect=z;exports.renderRadioButtonGroup=$;exports.renderRadioGroup=M;exports.renderSelect=j;exports.renderSlider=q;exports.renderSwitch=G;exports.renderTimePicker=H;exports.renderTreeSelect=D;exports.useDecorateForm=ne;exports.useZealColumnTool=fe;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { ExposeDyFType, ExposePopupMType, ExposeType, ExposeZealTSearchType } from '../types';
|
|
1
|
+
import { ExposeDyFType, ExposePopupMType, ExposeType, ExposeZealCardType, ExposeZealTSearchType } from '../types';
|
|
2
2
|
import { default as EleDynamicInput } from './EleDynamicInput';
|
|
3
3
|
import { default as EleDynamicCascadeInput } from './EleDynamicCascadeInput';
|
|
4
4
|
import { default as EleDynamicForm } from './EleDynamicForm';
|
|
5
5
|
import { default as ElePopupModal } from './ElePopupModal';
|
|
6
6
|
import { default as EleZealCard } from './EleZealCard';
|
|
7
7
|
import { useDecorateForm } from './hooks/decorateForm';
|
|
8
|
-
import { EleZealTableSearch, EleZealTablePaginationControl, EleZealTable } from './EleZealTableTool';
|
|
8
|
+
import { EleZealTableSearch, EleZealTablePaginationControl, EleZealTable, EleZealTableBtnControl } from './EleZealTableTool';
|
|
9
9
|
type eleDynamicInputRef = InstanceType<typeof EleDynamicInput> & ExposeType;
|
|
10
10
|
type eleCascadeDynamicInputRef = InstanceType<typeof EleDynamicCascadeInput> & ExposeType;
|
|
11
11
|
type eleDynamicFormRef = InstanceType<typeof EleDynamicForm> & ExposeDyFType;
|
|
12
12
|
type elePopupModalRef = InstanceType<typeof ElePopupModal> & ExposePopupMType;
|
|
13
13
|
type eleZealTableSearchRef = InstanceType<typeof EleZealTableSearch> & ExposeZealTSearchType;
|
|
14
|
+
type eleZealCardRef = InstanceType<typeof EleZealCard> & ExposeZealCardType;
|
|
14
15
|
export * from './hooks/renderForm';
|
|
15
|
-
export
|
|
16
|
-
export {
|
|
16
|
+
export * from './hooks/useZealTool';
|
|
17
|
+
export type { eleDynamicInputRef, eleCascadeDynamicInputRef, eleDynamicFormRef, elePopupModalRef, eleZealCardRef, eleZealTableSearchRef };
|
|
18
|
+
export { EleDynamicInput, EleDynamicCascadeInput, EleDynamicForm, ElePopupModal, EleZealCard, useDecorateForm, EleZealTableSearch, EleZealTablePaginationControl, EleZealTable, EleZealTableBtnControl };
|