vxe-pc-ui 4.20.14 → 4.20.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +1589 -1480
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/alert/src/alert.js +2 -1
- package/es/badge/src/badge.js +21 -4
- package/es/badge/style.css +24 -14
- package/es/badge/style.min.css +1 -1
- package/es/drawer/src/drawer.js +2 -1
- package/es/form/src/form.js +3 -2
- package/es/icon/style.css +1 -1
- package/es/list/src/list.js +2 -2
- package/es/modal/src/modal.js +2 -1
- package/es/pager/src/pager.js +3 -2
- package/es/select/src/select.js +59 -6
- package/es/select/style.css +18 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +48 -14
- package/es/tree/src/tree.js +2 -2
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-badge/style.css +24 -14
- package/es/vxe-badge/style.min.css +1 -1
- package/es/vxe-select/style.css +18 -0
- package/es/vxe-select/style.min.css +1 -1
- package/lib/alert/src/alert.js +14 -8
- package/lib/alert/src/alert.min.js +1 -1
- package/lib/badge/src/badge.js +24 -4
- package/lib/badge/src/badge.min.js +1 -1
- package/lib/badge/style/style.css +24 -14
- package/lib/badge/style/style.min.css +1 -1
- package/lib/drawer/src/drawer.js +61 -51
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/form/src/form.js +34 -26
- package/lib/form/src/form.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +454 -276
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +14 -12
- package/lib/list/src/list.min.js +1 -1
- package/lib/modal/src/modal.js +84 -74
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/pager/src/pager.js +45 -36
- package/lib/pager/src/pager.min.js +1 -1
- package/lib/select/src/select.js +67 -8
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +18 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/src/table-select.js +80 -32
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tree/src/tree.js +29 -23
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-badge/style/style.css +24 -14
- package/lib/vxe-badge/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +18 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/alert/src/alert.ts +3 -1
- package/packages/badge/src/badge.ts +22 -4
- package/packages/drawer/src/drawer.ts +3 -1
- package/packages/form/src/form.ts +4 -2
- package/packages/list/src/list.ts +2 -2
- package/packages/modal/src/modal.ts +3 -1
- package/packages/pager/src/pager.ts +4 -2
- package/packages/select/src/select.ts +60 -6
- package/packages/table-select/src/table-select.ts +51 -16
- package/packages/tree/src/tree.ts +2 -2
- package/styles/components/badge.scss +25 -16
- package/styles/components/select.scss +21 -0
- package/styles/theme/base.scss +4 -0
- package/types/components/badge.d.ts +4 -0
- package/types/components/select.d.ts +20 -0
- /package/es/icon/{iconfont.1792653813073.ttf → iconfont.1792671792434.ttf} +0 -0
- /package/es/icon/{iconfont.1792653813073.woff → iconfont.1792671792434.woff} +0 -0
- /package/es/icon/{iconfont.1792653813073.woff2 → iconfont.1792671792434.woff2} +0 -0
- /package/es/{iconfont.1792653813073.ttf → iconfont.1792671792434.ttf} +0 -0
- /package/es/{iconfont.1792653813073.woff → iconfont.1792671792434.woff} +0 -0
- /package/es/{iconfont.1792653813073.woff2 → iconfont.1792671792434.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792653813073.ttf → iconfont.1792671792434.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792653813073.woff → iconfont.1792671792434.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792653813073.woff2 → iconfont.1792671792434.woff2} +0 -0
- /package/lib/{iconfont.1792653813073.ttf → iconfont.1792671792434.ttf} +0 -0
- /package/lib/{iconfont.1792653813073.woff → iconfont.1792671792434.woff} +0 -0
- /package/lib/{iconfont.1792653813073.woff2 → iconfont.1792671792434.woff2} +0 -0
package/lib/drawer/src/drawer.js
CHANGED
|
@@ -16,6 +16,16 @@ var _button = _interopRequireDefault(require("../../button"));
|
|
|
16
16
|
var _loading = _interopRequireDefault(require("../../loading"));
|
|
17
17
|
var _scrollbar = _interopRequireDefault(require("../../scrollbar"));
|
|
18
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
const {
|
|
20
|
+
getIcon,
|
|
21
|
+
getConfig,
|
|
22
|
+
getI18n,
|
|
23
|
+
useFns,
|
|
24
|
+
globalEvents,
|
|
25
|
+
GLOBAL_EVENT_KEYS,
|
|
26
|
+
createEvent,
|
|
27
|
+
renderEmptyElement
|
|
28
|
+
} = _ui.VxeUI;
|
|
19
29
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
20
30
|
name: 'VxeDrawer',
|
|
21
31
|
props: {
|
|
@@ -29,49 +39,49 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
29
39
|
className: String,
|
|
30
40
|
position: {
|
|
31
41
|
type: [String, Object],
|
|
32
|
-
default: () =>
|
|
42
|
+
default: () => getConfig().drawer.position
|
|
33
43
|
},
|
|
34
44
|
lockView: {
|
|
35
45
|
type: Boolean,
|
|
36
|
-
default: () =>
|
|
46
|
+
default: () => getConfig().drawer.lockView
|
|
37
47
|
},
|
|
38
48
|
lockScroll: Boolean,
|
|
39
49
|
mask: {
|
|
40
50
|
type: Boolean,
|
|
41
|
-
default: () =>
|
|
51
|
+
default: () => getConfig().drawer.mask
|
|
42
52
|
},
|
|
43
53
|
maskClosable: {
|
|
44
54
|
type: Boolean,
|
|
45
|
-
default: () =>
|
|
55
|
+
default: () => getConfig().drawer.maskClosable
|
|
46
56
|
},
|
|
47
57
|
escClosable: {
|
|
48
58
|
type: Boolean,
|
|
49
|
-
default: () =>
|
|
59
|
+
default: () => getConfig().drawer.escClosable
|
|
50
60
|
},
|
|
51
61
|
cancelClosable: {
|
|
52
62
|
type: Boolean,
|
|
53
|
-
default: () =>
|
|
63
|
+
default: () => getConfig().drawer.cancelClosable
|
|
54
64
|
},
|
|
55
65
|
confirmClosable: {
|
|
56
66
|
type: Boolean,
|
|
57
|
-
default: () =>
|
|
67
|
+
default: () => getConfig().drawer.confirmClosable
|
|
58
68
|
},
|
|
59
69
|
showHeader: {
|
|
60
70
|
type: Boolean,
|
|
61
|
-
default: () =>
|
|
71
|
+
default: () => getConfig().drawer.showHeader
|
|
62
72
|
},
|
|
63
73
|
showFooter: {
|
|
64
74
|
type: Boolean,
|
|
65
|
-
default: () =>
|
|
75
|
+
default: () => getConfig().drawer.showFooter
|
|
66
76
|
},
|
|
67
77
|
showClose: {
|
|
68
78
|
type: Boolean,
|
|
69
|
-
default: () =>
|
|
79
|
+
default: () => getConfig().drawer.showClose
|
|
70
80
|
},
|
|
71
81
|
content: [Number, String],
|
|
72
82
|
useHtml: {
|
|
73
83
|
type: Boolean,
|
|
74
|
-
default: () =>
|
|
84
|
+
default: () => getConfig().drawer.useHtml
|
|
75
85
|
},
|
|
76
86
|
showCancelButton: {
|
|
77
87
|
type: Boolean,
|
|
@@ -79,79 +89,79 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
79
89
|
},
|
|
80
90
|
cancelButtonText: {
|
|
81
91
|
type: String,
|
|
82
|
-
default: () =>
|
|
92
|
+
default: () => getConfig().drawer.cancelButtonText
|
|
83
93
|
},
|
|
84
94
|
showConfirmButton: {
|
|
85
95
|
type: Boolean,
|
|
86
|
-
default: () =>
|
|
96
|
+
default: () => getConfig().drawer.showConfirmButton
|
|
87
97
|
},
|
|
88
98
|
confirmButtonText: {
|
|
89
99
|
type: String,
|
|
90
|
-
default: () =>
|
|
100
|
+
default: () => getConfig().drawer.confirmButtonText
|
|
91
101
|
},
|
|
92
102
|
destroyOnClose: {
|
|
93
103
|
type: Boolean,
|
|
94
|
-
default: () =>
|
|
104
|
+
default: () => getConfig().drawer.destroyOnClose
|
|
95
105
|
},
|
|
96
106
|
showTitleOverflow: {
|
|
97
107
|
type: Boolean,
|
|
98
|
-
default: () =>
|
|
108
|
+
default: () => getConfig().drawer.showTitleOverflow
|
|
99
109
|
},
|
|
100
110
|
preload: Boolean,
|
|
101
111
|
width: {
|
|
102
112
|
type: [Number, String],
|
|
103
|
-
default: () =>
|
|
113
|
+
default: () => getConfig().drawer.width
|
|
104
114
|
},
|
|
105
115
|
height: {
|
|
106
116
|
type: [Number, String],
|
|
107
|
-
default: () =>
|
|
117
|
+
default: () => getConfig().drawer.height
|
|
108
118
|
},
|
|
109
119
|
minWidth: {
|
|
110
120
|
type: [Number, String],
|
|
111
|
-
default: () =>
|
|
121
|
+
default: () => getConfig().drawer.minWidth
|
|
112
122
|
},
|
|
113
123
|
minHeight: {
|
|
114
124
|
type: [Number, String],
|
|
115
|
-
default: () =>
|
|
125
|
+
default: () => getConfig().drawer.minHeight
|
|
116
126
|
},
|
|
117
127
|
resize: {
|
|
118
128
|
type: Boolean,
|
|
119
|
-
default: () =>
|
|
129
|
+
default: () => getConfig().drawer.resize
|
|
120
130
|
},
|
|
121
131
|
border: {
|
|
122
132
|
type: Boolean,
|
|
123
|
-
default: () =>
|
|
133
|
+
default: () => getConfig().drawer.border
|
|
124
134
|
},
|
|
125
135
|
showTitleBackground: {
|
|
126
136
|
type: Boolean,
|
|
127
|
-
default: () =>
|
|
137
|
+
default: () => getConfig().drawer.showTitleBackground
|
|
128
138
|
},
|
|
129
139
|
zIndex: Number,
|
|
130
140
|
transfer: {
|
|
131
141
|
type: Boolean,
|
|
132
|
-
default: () =>
|
|
142
|
+
default: () => getConfig().drawer.transfer
|
|
133
143
|
},
|
|
134
144
|
appendTo: {
|
|
135
145
|
type: [String, Function],
|
|
136
|
-
default: () =>
|
|
146
|
+
default: () => getConfig().drawer.appendTo
|
|
137
147
|
},
|
|
138
148
|
isWithinAppendTo: {
|
|
139
149
|
type: Boolean,
|
|
140
|
-
default: () =>
|
|
150
|
+
default: () => getConfig().drawer.isWithinAppendTo
|
|
141
151
|
},
|
|
142
152
|
padding: {
|
|
143
153
|
type: Boolean,
|
|
144
|
-
default: () =>
|
|
154
|
+
default: () => getConfig().drawer.padding
|
|
145
155
|
},
|
|
146
156
|
size: {
|
|
147
157
|
type: String,
|
|
148
|
-
default: () =>
|
|
158
|
+
default: () => getConfig().drawer.size || getConfig().size
|
|
149
159
|
},
|
|
150
160
|
beforeHideMethod: Function,
|
|
151
161
|
slots: Object,
|
|
152
162
|
useScrollbar: {
|
|
153
163
|
type: Boolean,
|
|
154
|
-
default: () => (0, _utils.getDefaultConfig)(
|
|
164
|
+
default: () => (0, _utils.getDefaultConfig)(getConfig().drawer.useScrollbar, getConfig().useScrollbar)
|
|
155
165
|
},
|
|
156
166
|
scrollbarConfig: Object
|
|
157
167
|
},
|
|
@@ -168,10 +178,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
168
178
|
const $xeForm = (0, _vue.inject)('$xeForm', null);
|
|
169
179
|
const {
|
|
170
180
|
computeSize
|
|
171
|
-
} =
|
|
181
|
+
} = useFns.useSize(props);
|
|
172
182
|
const {
|
|
173
183
|
computeIsVScrollbar
|
|
174
|
-
} =
|
|
184
|
+
} = useFns.useVScrollbar(props);
|
|
175
185
|
const refElem = (0, _vue.ref)();
|
|
176
186
|
const refDrawerBox = (0, _vue.ref)();
|
|
177
187
|
const refConfirmBtn = (0, _vue.ref)();
|
|
@@ -184,7 +194,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
184
194
|
resizeFlag: 1
|
|
185
195
|
});
|
|
186
196
|
const defaultFuncProps = {
|
|
187
|
-
beforeHideMethod:
|
|
197
|
+
beforeHideMethod: getConfig().drawer.beforeHideMethod
|
|
188
198
|
};
|
|
189
199
|
const refMaps = {
|
|
190
200
|
refElem
|
|
@@ -194,7 +204,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
194
204
|
transfer
|
|
195
205
|
} = props;
|
|
196
206
|
if (transfer === null) {
|
|
197
|
-
const globalTransfer =
|
|
207
|
+
const globalTransfer = getConfig().modal.transfer;
|
|
198
208
|
if (_xeUtils.default.isBoolean(globalTransfer)) {
|
|
199
209
|
return globalTransfer;
|
|
200
210
|
}
|
|
@@ -216,7 +226,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
216
226
|
return 'wl';
|
|
217
227
|
});
|
|
218
228
|
const computeScrollbarOpts = (0, _vue.computed)(() => {
|
|
219
|
-
return Object.assign({},
|
|
229
|
+
return Object.assign({}, getConfig().modal.scrollbarConfig, props.scrollbarConfig);
|
|
220
230
|
});
|
|
221
231
|
const computeScrollbarProps = (0, _vue.computed)(() => {
|
|
222
232
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
@@ -399,7 +409,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
399
409
|
return (0, _vue.nextTick)();
|
|
400
410
|
};
|
|
401
411
|
const dispatchEvent = (type, params, evnt) => {
|
|
402
|
-
emit(type,
|
|
412
|
+
emit(type, createEvent(evnt, {
|
|
403
413
|
$drawer: $xeDrawer
|
|
404
414
|
}, params));
|
|
405
415
|
};
|
|
@@ -419,7 +429,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
419
429
|
}
|
|
420
430
|
};
|
|
421
431
|
const handleGlobalKeydownEvent = evnt => {
|
|
422
|
-
const isEsc =
|
|
432
|
+
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
|
|
423
433
|
if (isEsc) {
|
|
424
434
|
const lastDrawer = _xeUtils.default.max(_store.allActiveDrawers, item => item.reactData.drawerZIndex);
|
|
425
435
|
// 多个时,只关掉最上层的窗口
|
|
@@ -545,19 +555,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
545
555
|
class: 'vxe-drawer--header-title'
|
|
546
556
|
}, titleSlot ? (0, _vn.getSlotVNs)(titleSlot({
|
|
547
557
|
$drawer: $xeDrawer
|
|
548
|
-
})) : title ? (0, _utils.getFuncText)(title) :
|
|
558
|
+
})) : title ? (0, _utils.getFuncText)(title) : getI18n('vxe.alert.title')), (0, _vue.h)('div', {
|
|
549
559
|
class: 'vxe-drawer--header-right'
|
|
550
560
|
}, [cornerSlot ? (0, _vue.h)('div', {
|
|
551
561
|
class: 'vxe-drawer--corner-wrapper'
|
|
552
562
|
}, (0, _vn.getSlotVNs)(cornerSlot({
|
|
553
563
|
$drawer: $xeDrawer
|
|
554
|
-
}))) :
|
|
564
|
+
}))) : renderEmptyElement($xeDrawer), showClose ? (0, _vue.h)('div', {
|
|
555
565
|
class: ['vxe-drawer--close-btn', 'trigger--btn'],
|
|
556
|
-
title:
|
|
566
|
+
title: getI18n('vxe.drawer.close'),
|
|
557
567
|
onClick: closeEvent
|
|
558
568
|
}, [(0, _vue.h)('i', {
|
|
559
|
-
class:
|
|
560
|
-
})]) :
|
|
569
|
+
class: getIcon().DRAWER_CLOSE
|
|
570
|
+
})]) : renderEmptyElement($xeDrawer)])];
|
|
561
571
|
};
|
|
562
572
|
const renderHeader = () => {
|
|
563
573
|
const {
|
|
@@ -574,7 +584,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
574
584
|
$drawer: $xeDrawer
|
|
575
585
|
})) : renderTitles());
|
|
576
586
|
}
|
|
577
|
-
return
|
|
587
|
+
return renderEmptyElement($xeDrawer);
|
|
578
588
|
};
|
|
579
589
|
const renderBody = () => {
|
|
580
590
|
const {
|
|
@@ -625,13 +635,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
625
635
|
class: 'vxe-drawer--body-left'
|
|
626
636
|
}, (0, _vn.getSlotVNs)(leftSlot({
|
|
627
637
|
$drawer: $xeDrawer
|
|
628
|
-
}))) :
|
|
638
|
+
}))) : renderEmptyElement($xeDrawer), (0, _vue.h)('div', {
|
|
629
639
|
class: 'vxe-drawer--body-default'
|
|
630
640
|
}, contVNs), rightSlot ? (0, _vue.h)('div', {
|
|
631
641
|
class: 'vxe-drawer--body-right'
|
|
632
642
|
}, (0, _vn.getSlotVNs)(rightSlot({
|
|
633
643
|
$drawer: $xeDrawer
|
|
634
|
-
}))) :
|
|
644
|
+
}))) : renderEmptyElement($xeDrawer), (0, _vue.h)(_loading.default, {
|
|
635
645
|
class: 'vxe-drawer--loading',
|
|
636
646
|
modelValue: props.loading
|
|
637
647
|
})]);
|
|
@@ -650,7 +660,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
650
660
|
btnVNs.push((0, _vue.h)(_button.default, {
|
|
651
661
|
key: 1,
|
|
652
662
|
ref: refCancelBtn,
|
|
653
|
-
content: props.cancelButtonText ||
|
|
663
|
+
content: props.cancelButtonText || getI18n('vxe.button.cancel'),
|
|
654
664
|
onClick: cancelEvent
|
|
655
665
|
}));
|
|
656
666
|
}
|
|
@@ -660,7 +670,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
660
670
|
ref: refConfirmBtn,
|
|
661
671
|
loading: loading,
|
|
662
672
|
status: 'primary',
|
|
663
|
-
content: props.confirmButtonText ||
|
|
673
|
+
content: props.confirmButtonText || getI18n('vxe.button.confirm'),
|
|
664
674
|
onClick: confirmEvent
|
|
665
675
|
}));
|
|
666
676
|
}
|
|
@@ -688,7 +698,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
688
698
|
$drawer: $xeDrawer
|
|
689
699
|
})) : [renderDefaultFooter()]);
|
|
690
700
|
}
|
|
691
|
-
return
|
|
701
|
+
return renderEmptyElement($xeDrawer);
|
|
692
702
|
};
|
|
693
703
|
const renderVN = () => {
|
|
694
704
|
const {
|
|
@@ -746,7 +756,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
746
756
|
class: 'vxe-drawer--aside'
|
|
747
757
|
}, (0, _vn.getSlotVNs)(asideSlot({
|
|
748
758
|
$drawer: $xeDrawer
|
|
749
|
-
}))) :
|
|
759
|
+
}))) : renderEmptyElement($xeDrawer), (0, _vue.h)('div', {
|
|
750
760
|
class: 'vxe-drawer--container'
|
|
751
761
|
}, !reactData.initialized || destroyOnClose && !reactData.visible ? [] : [renderHeader(), renderBody(), renderFooter(), resize ? (0, _vue.h)('span', {
|
|
752
762
|
class: 'vxe-drawer--resize'
|
|
@@ -754,7 +764,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
754
764
|
class: `${dragType}-resize`,
|
|
755
765
|
type: dragType,
|
|
756
766
|
onMousedown: dragEvent
|
|
757
|
-
})]) :
|
|
767
|
+
})]) : renderEmptyElement($xeDrawer)])])])]);
|
|
758
768
|
};
|
|
759
769
|
const reFlag = (0, _vue.ref)(0);
|
|
760
770
|
(0, _vue.watch)(() => props.width, () => {
|
|
@@ -783,11 +793,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
783
793
|
recalculate();
|
|
784
794
|
});
|
|
785
795
|
if (props.escClosable) {
|
|
786
|
-
|
|
796
|
+
globalEvents.on($xeDrawer, 'keydown', handleGlobalKeydownEvent);
|
|
787
797
|
}
|
|
788
798
|
});
|
|
789
799
|
(0, _vue.onUnmounted)(() => {
|
|
790
|
-
|
|
800
|
+
globalEvents.off($xeDrawer, 'keydown');
|
|
791
801
|
removeActiveQueue();
|
|
792
802
|
});
|
|
793
803
|
(0, _vue.provide)('$xeDrawer', $xeDrawer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_store=require("./store"),_vn=require("../../ui/src/vn"),_button=_interopRequireDefault(require("../../button")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeDrawer",props:{modelValue:Boolean,id:String,title:String,loading:{type:Boolean,default:null},className:String,position:{type:[String,Object],default:()=>(0,_ui.getConfig)().drawer.position},lockView:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.lockView},lockScroll:Boolean,mask:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.mask},maskClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.maskClosable},escClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.escClosable},cancelClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.cancelClosable},confirmClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.confirmClosable},showHeader:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.showHeader},showFooter:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.showFooter},showClose:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.showClose},content:[Number,String],useHtml:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.useHtml},showCancelButton:{type:Boolean,default:null},cancelButtonText:{type:String,default:()=>(0,_ui.getConfig)().drawer.cancelButtonText},showConfirmButton:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.showConfirmButton},confirmButtonText:{type:String,default:()=>(0,_ui.getConfig)().drawer.confirmButtonText},destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.destroyOnClose},showTitleOverflow:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.showTitleOverflow},preload:Boolean,width:{type:[Number,String],default:()=>(0,_ui.getConfig)().drawer.width},height:{type:[Number,String],default:()=>(0,_ui.getConfig)().drawer.height},minWidth:{type:[Number,String],default:()=>(0,_ui.getConfig)().drawer.minWidth},minHeight:{type:[Number,String],default:()=>(0,_ui.getConfig)().drawer.minHeight},resize:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.resize},border:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.border},showTitleBackground:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.showTitleBackground},zIndex:Number,transfer:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.transfer},appendTo:{type:[String,Function],default:()=>(0,_ui.getConfig)().drawer.appendTo},isWithinAppendTo:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.isWithinAppendTo},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().drawer.padding},size:{type:String,default:()=>(0,_ui.getConfig)().drawer.size||(0,_ui.getConfig)().size},beforeHideMethod:Function,slots:Object,useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)((0,_ui.getConfig)().drawer.useScrollbar,(0,_ui.getConfig)().useScrollbar)},scrollbarConfig:Object},emits:["update:modelValue","show","hide","before-hide","close","confirm","cancel","resize"],setup(b,e){let{slots:x,emit:l}=e;var t=_xeUtils.default.uniqueId();let r=(0,_vue.inject)("$xeModal",null),i=(0,_vue.inject)("$xeDrawer",null),o=(0,_vue.inject)("$xeTable",null),a=(0,_vue.inject)("$xeForm",null),C=_ui.useFns.useSize(b).computeSize,y=_ui.useFns.useVScrollbar(b).computeIsVScrollbar,B=(0,_vue.ref)(),T=(0,_vue.ref)(),n=(0,_vue.ref)(),s=(0,_vue.ref)(),k=(0,_vue.reactive)({initialized:!1,visible:!1,contentVisible:!1,drawerZIndex:0,resizeFlag:1}),u={beforeHideMethod:(0,_ui.getConfig)().drawer.beforeHideMethod},d={refElem:B},S=(0,_vue.computed)(()=>{var e=b.transfer;if(null===e){var t=(0,_ui.getConfig)().modal.transfer;if(_xeUtils.default.isBoolean(t))return t;if(o||r||i||a)return!0}return e}),N=(0,_vue.computed)(()=>{switch(b.position){case"top":return"sb";case"bottom":return"st";case"left":return"wr"}return"wl"}),c=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().modal.scrollbarConfig,b.scrollbarConfig)),V=(0,_vue.computed)(()=>{var e=c.value,{viewClassName:t,viewInnerClassName:r}=e;return{width:e.width,height:e.height,autoHide:e.autoHide,visible:e.visible,xConfig:e.xConfig,yConfig:e.yConfig,className:e.className,viewAttrs:e.viewAttrs,viewClassName:"vxe-drawer--scrollbar-content-view"+(t?" "+t:""),viewInnerClassName:"vxe-drawer--scrollbar-content-inner"+(t?" "+r:"")}}),v={},E={xID:t,props:b,context:e,reactData:k,getRefMaps:()=>d,getComputeMaps:()=>v},z=()=>T.value,f=()=>{var{position:e,width:t,height:r}=b,i=z();return i&&(i.style.height=(e="top"===e||"bottom"===e)?(0,_dom.toCssUnit)(r):"",i.style.width=e?"":(0,_dom.toCssUnit)(t)),(0,_vue.nextTick)()},_=()=>{var e=b.zIndex,t=k.drawerZIndex;e?k.drawerZIndex=e:t<(0,_utils.getLastZIndex)()&&(k.drawerZIndex=(0,_utils.nextZIndex)())},g=()=>{-1<_store.allActiveDrawers.indexOf(E)&&_xeUtils.default.remove(_store.allActiveDrawers,e=>e===E)},w=e=>{var t=k.visible,r=b.beforeHideMethod||u.beforeHideMethod;let i={type:e};return t&&Promise.resolve(r?r(i):null).then(e=>{_xeUtils.default.isError(e)||((e=B.value)&&e.setAttribute("data-effect","y"),k.contentVisible=!1,g(),D("before-hide",i,null),setTimeout(()=>{k.visible=!1,l("update:modelValue",!1),D("hide",i,null)},200),setTimeout(()=>{var e=B.value;e&&e.removeAttribute("data-effect")},350))}).catch(e=>e),(0,_vue.nextTick)()},p=e=>{var t="close";D(t,{type:t},e),w(t)},h=e=>{var t=b.confirmClosable,r="confirm";D(r,{type:r},e),t&&w(r)},m=e=>{var t=b.cancelClosable,r="cancel";D(r,{type:r},e),t&&w(r)},I=()=>{let r=b.showFooter;var{initialized:e,visible:t}=k;return e||(k.initialized=!0),t||(k.visible=!0,k.contentVisible=!1,_(),_store.allActiveDrawers.push(E),(0,_vue.nextTick)(()=>{var e=B.value;e&&e.setAttribute("data-effect","y")}),setTimeout(()=>{f(),k.contentVisible=!0,(0,_vue.nextTick)(()=>{r&&(e=n.value,t=s.value,e=e||t)&&e.focus();var e,t={type:""};l("update:modelValue",!0),D("show",t,null)})},10),setTimeout(()=>{var e=B.value;e&&e.removeAttribute("data-effect")},350)),(0,_vue.nextTick)()},D=(e,t,r)=>{l(e,(0,_ui.createEvent)(r,{$drawer:E},t))};t={dispatchEvent:D,open:I,close(){return w("close")},getBox:z};let $=e=>{var t=B.value;b.maskClosable&&e.target===t&&w("mask")},A=t=>{if(_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE)){let e=_xeUtils.default.max(_store.allActiveDrawers,e=>e.reactData.drawerZIndex);e&&setTimeout(()=>{e===E&&e.props.escClosable&&(D("close",{type:"exit"},t),w("exit"))},10)}},q=()=>{let t=k.drawerZIndex;_store.allActiveDrawers.some(e=>e.reactData.visible&&e.reactData.drawerZIndex>t)&&_()},F=e=>{e.preventDefault();var{resize:t,isWithinAppendTo:r}=b,i=B.value,i=(0,_dom.getPopupWrapperElement)(r?i:document.body);if(i){let o=i.clientWidth-(t&&r?8:0),a=i.clientHeight-(t&&r?8:0);let n=e.target.getAttribute("type"),s=_xeUtils.default.toNumber(b.minWidth),u=_xeUtils.default.toNumber(b.minHeight),d=o,c=a,v=z(),f=v.clientWidth,_=v.clientHeight,g=e.clientX,w=e.clientY,p=v.offsetTop,h=v.offsetLeft,m={type:"resize"};document.onmousemove=e=>{e.preventDefault();let t,r,i,l;switch(n){case"wl":t=g-e.clientX,i=t+f,0<h-t&&i>s&&(v.style.width=`${i<d?i:d}px`);break;case"st":r=w-e.clientY,l=_+r,0<p-r&&l>u&&(v.style.height=`${l<c?l:c}px`);break;case"wr":t=e.clientX-g,i=t+f,h+i+0<o&&i>s&&(v.style.width=`${i<d?i:d}px`);break;case"sb":r=e.clientY-w,l=r+_,p+l+0<a&&l>u&&(v.style.height=`${l<c?l:c}px`)}v.className=v.className.replace(/\s?is--drag/,"")+" is--drag",D("resize",m,e),k.resizeFlag++},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,k.resizeFlag++,setTimeout(()=>{v.className=v.className.replace(/\s?is--drag/,"")},50)}}};Object.assign(E,t,{});let O=()=>{var{slots:e={},showClose:t,title:r}=b,i=x.title||e.title,e=x.corner||e.corner;return[(0,_vue.h)("div",{class:"vxe-drawer--header-title"},i?(0,_vn.getSlotVNs)(i({$drawer:E})):r?(0,_utils.getFuncText)(r):(0,_ui.getI18n)("vxe.alert.title")),(0,_vue.h)("div",{class:"vxe-drawer--header-right"},[e?(0,_vue.h)("div",{class:"vxe-drawer--corner-wrapper"},(0,_vn.getSlotVNs)(e({$drawer:E}))):(0,_ui.renderEmptyElement)(E),t?(0,_vue.h)("div",{class:["vxe-drawer--close-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.drawer.close"),onClick:p},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().DRAWER_CLOSE})]):(0,_ui.renderEmptyElement)(E)])]},M=()=>{var{slots:e={},showCancelButton:t,showConfirmButton:r,loading:i}=b,l=x.leftfoot||e.leftfoot,e=x.rightfoot||e.rightfoot,o=[];return t&&o.push((0,_vue.h)(_button.default,{key:1,ref:s,content:b.cancelButtonText||(0,_ui.getI18n)("vxe.button.cancel"),onClick:m})),r&&o.push((0,_vue.h)(_button.default,{key:2,ref:n,loading:i,status:"primary",content:b.confirmButtonText||(0,_ui.getI18n)("vxe.button.confirm"),onClick:h})),(0,_vue.h)("div",{class:"vxe-drawer--footer-wrapper"},[(0,_vue.h)("div",{class:"vxe-drawer--footer-left"},l?(0,_vn.getSlotVNs)(l({$drawer:E})):[]),(0,_vue.h)("div",{class:"vxe-drawer--footer-right"},e?(0,_vn.getSlotVNs)(e({$drawer:E})):o)])};let H=(0,_vue.ref)(0);return(0,_vue.watch)(()=>b.width,()=>{H.value++}),(0,_vue.watch)(()=>b.height,()=>{H.value++}),(0,_vue.watch)(()=>b.position,()=>{H.value++}),(0,_vue.watch)(H,f),(0,_vue.watch)(()=>b.modelValue,e=>{e?I():w("model")}),(0,_vue.onMounted)(()=>{k.initialized=!!b.preload,(0,_vue.nextTick)(()=>{b.modelValue&&I(),f()}),b.escClosable&&_ui.globalEvents.on(E,"keydown",A)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(E,"keydown"),g()}),(0,_vue.provide)("$xeDrawer",E),E.renderVN=()=>{var{border:e,showTitleBackground:t,slots:r={},className:i,position:l,loading:o,lockScroll:a,padding:n,lockView:s,mask:u,resize:d,appendTo:c,destroyOnClose:v,isWithinAppendTo:f}=b,{initialized:_,contentVisible:g,visible:w}=k,r=x.aside||r.aside,p=C.value,h=N.value,m=S.value;return(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(c),disabled:!m||!_},[(0,_vue.h)("div",{ref:B,class:["vxe-drawer--wrapper","pos--"+l,f?"ctx--within":"ctx--free",i||"",{["size--"+p]:p,"is--padding":n,"is--border":e,"is--title-bg":t,"lock--scroll":a,"lock--view":s,"is--resize":d,"is--mask":u,"is--visible":g,"is--active":w,"is--loading":o}],style:{zIndex:k.drawerZIndex},onClick:$},[(0,_vue.h)("div",{ref:T,class:"vxe-drawer--box",onMousedown:q},[r?(0,_vue.h)("div",{class:"vxe-drawer--aside"},(0,_vn.getSlotVNs)(r({$drawer:E}))):(0,_ui.renderEmptyElement)(E),(0,_vue.h)("div",{class:"vxe-drawer--container"},!k.initialized||v&&!k.visible?[]:[(()=>{var{slots:e={},showTitleOverflow:t}=b,e=x.header||e.header;return b.showHeader?(0,_vue.h)("div",{class:["vxe-drawer--header",{"is--ellipsis":t}]},e?(0,_vn.getSlotVNs)(e({$drawer:E})):O()):(0,_ui.renderEmptyElement)(E)})(),(()=>{let{slots:e={},content:t,useHtml:r}=b;var i=y.value,l=V.value;let o=x.default||e.default;var a=x.left||e.left,n=x.right||e.right,s=[];return r&&!o?s.push(i?(0,_vue.h)(_scrollbar.default,Object.assign({key:"shc",class:"vxe-drawer--scrollbar-content"},l),{default(){return[(0,_vue.h)("div",{class:"vxe-drawer--scrollbar-content-html",innerHTML:(0,_utils.getFuncText)(t)})]}}):(0,_vue.h)("div",{key:"hc",class:"vxe-drawer--content",innerHTML:(0,_utils.getFuncText)(t)})):s.push(i?(0,_vue.h)(_scrollbar.default,Object.assign({key:"sdc",class:"vxe-drawer--scrollbar-content"},l),{default:()=>o?(0,_vn.getSlotVNs)(o({$drawer:E})):(0,_utils.getFuncText)(t)}):(0,_vue.h)("div",{key:"dc",class:"vxe-drawer--content"},o?(0,_vn.getSlotVNs)(o({$drawer:E})):(0,_utils.getFuncText)(t))),(0,_vue.h)("div",{class:"vxe-drawer--body"},[a?(0,_vue.h)("div",{class:"vxe-drawer--body-left"},(0,_vn.getSlotVNs)(a({$drawer:E}))):(0,_ui.renderEmptyElement)(E),(0,_vue.h)("div",{class:"vxe-drawer--body-default"},s),n?(0,_vue.h)("div",{class:"vxe-drawer--body-right"},(0,_vn.getSlotVNs)(n({$drawer:E}))):(0,_ui.renderEmptyElement)(E),(0,_vue.h)(_loading.default,{class:"vxe-drawer--loading",modelValue:b.loading})])})(),(()=>{var{slots:e={}}=b,e=x.footer||e.footer;return b.showFooter?(0,_vue.h)("div",{class:"vxe-drawer--footer"},e?(0,_vn.getSlotVNs)(e({$drawer:E})):[M()]):(0,_ui.renderEmptyElement)(E)})(),d?(0,_vue.h)("span",{class:"vxe-drawer--resize"},[(0,_vue.h)("span",{class:h+"-resize",type:h,onMousedown:F})]):(0,_ui.renderEmptyElement)(E)])])])])},E},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_store=require("./store"),_vn=require("../../ui/src/vn"),_button=_interopRequireDefault(require("../../button")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getIcon,getConfig,getI18n,useFns,globalEvents,GLOBAL_EVENT_KEYS,createEvent,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeDrawer",props:{modelValue:Boolean,id:String,title:String,loading:{type:Boolean,default:null},className:String,position:{type:[String,Object],default:()=>getConfig().drawer.position},lockView:{type:Boolean,default:()=>getConfig().drawer.lockView},lockScroll:Boolean,mask:{type:Boolean,default:()=>getConfig().drawer.mask},maskClosable:{type:Boolean,default:()=>getConfig().drawer.maskClosable},escClosable:{type:Boolean,default:()=>getConfig().drawer.escClosable},cancelClosable:{type:Boolean,default:()=>getConfig().drawer.cancelClosable},confirmClosable:{type:Boolean,default:()=>getConfig().drawer.confirmClosable},showHeader:{type:Boolean,default:()=>getConfig().drawer.showHeader},showFooter:{type:Boolean,default:()=>getConfig().drawer.showFooter},showClose:{type:Boolean,default:()=>getConfig().drawer.showClose},content:[Number,String],useHtml:{type:Boolean,default:()=>getConfig().drawer.useHtml},showCancelButton:{type:Boolean,default:null},cancelButtonText:{type:String,default:()=>getConfig().drawer.cancelButtonText},showConfirmButton:{type:Boolean,default:()=>getConfig().drawer.showConfirmButton},confirmButtonText:{type:String,default:()=>getConfig().drawer.confirmButtonText},destroyOnClose:{type:Boolean,default:()=>getConfig().drawer.destroyOnClose},showTitleOverflow:{type:Boolean,default:()=>getConfig().drawer.showTitleOverflow},preload:Boolean,width:{type:[Number,String],default:()=>getConfig().drawer.width},height:{type:[Number,String],default:()=>getConfig().drawer.height},minWidth:{type:[Number,String],default:()=>getConfig().drawer.minWidth},minHeight:{type:[Number,String],default:()=>getConfig().drawer.minHeight},resize:{type:Boolean,default:()=>getConfig().drawer.resize},border:{type:Boolean,default:()=>getConfig().drawer.border},showTitleBackground:{type:Boolean,default:()=>getConfig().drawer.showTitleBackground},zIndex:Number,transfer:{type:Boolean,default:()=>getConfig().drawer.transfer},appendTo:{type:[String,Function],default:()=>getConfig().drawer.appendTo},isWithinAppendTo:{type:Boolean,default:()=>getConfig().drawer.isWithinAppendTo},padding:{type:Boolean,default:()=>getConfig().drawer.padding},size:{type:String,default:()=>getConfig().drawer.size||getConfig().size},beforeHideMethod:Function,slots:Object,useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)(getConfig().drawer.useScrollbar,getConfig().useScrollbar)},scrollbarConfig:Object},emits:["update:modelValue","show","hide","before-hide","close","confirm","cancel","resize"],setup(b,e){let{slots:x,emit:o}=e;var t=_xeUtils.default.uniqueId();let r=(0,_vue.inject)("$xeModal",null),l=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),i=(0,_vue.inject)("$xeForm",null),C=useFns.useSize(b).computeSize,y=useFns.useVScrollbar(b).computeIsVScrollbar,B=(0,_vue.ref)(),T=(0,_vue.ref)(),n=(0,_vue.ref)(),s=(0,_vue.ref)(),k=(0,_vue.reactive)({initialized:!1,visible:!1,contentVisible:!1,drawerZIndex:0,resizeFlag:1}),d={beforeHideMethod:getConfig().drawer.beforeHideMethod},u={refElem:B},E=(0,_vue.computed)(()=>{var e=b.transfer;if(null===e){var t=getConfig().modal.transfer;if(_xeUtils.default.isBoolean(t))return t;if(a||r||l||i)return!0}return e}),S=(0,_vue.computed)(()=>{switch(b.position){case"top":return"sb";case"bottom":return"st";case"left":return"wr"}return"wl"}),c=(0,_vue.computed)(()=>Object.assign({},getConfig().modal.scrollbarConfig,b.scrollbarConfig)),N=(0,_vue.computed)(()=>{var e=c.value,{viewClassName:t,viewInnerClassName:r}=e;return{width:e.width,height:e.height,autoHide:e.autoHide,visible:e.visible,xConfig:e.xConfig,yConfig:e.yConfig,className:e.className,viewAttrs:e.viewAttrs,viewClassName:"vxe-drawer--scrollbar-content-view"+(t?" "+t:""),viewInnerClassName:"vxe-drawer--scrollbar-content-inner"+(t?" "+r:"")}}),v={},V={xID:t,props:b,context:e,reactData:k,getRefMaps:()=>u,getComputeMaps:()=>v},z=()=>T.value,f=()=>{var{position:e,width:t,height:r}=b,l=z();return l&&(l.style.height=(e="top"===e||"bottom"===e)?(0,_dom.toCssUnit)(r):"",l.style.width=e?"":(0,_dom.toCssUnit)(t)),(0,_vue.nextTick)()},g=()=>{var e=b.zIndex,t=k.drawerZIndex;e?k.drawerZIndex=e:t<(0,_utils.getLastZIndex)()&&(k.drawerZIndex=(0,_utils.nextZIndex)())},w=()=>{-1<_store.allActiveDrawers.indexOf(V)&&_xeUtils.default.remove(_store.allActiveDrawers,e=>e===V)},p=e=>{var t=k.visible,r=b.beforeHideMethod||d.beforeHideMethod;let l={type:e};return t&&Promise.resolve(r?r(l):null).then(e=>{_xeUtils.default.isError(e)||((e=B.value)&&e.setAttribute("data-effect","y"),k.contentVisible=!1,w(),D("before-hide",l,null),setTimeout(()=>{k.visible=!1,o("update:modelValue",!1),D("hide",l,null)},200),setTimeout(()=>{var e=B.value;e&&e.removeAttribute("data-effect")},350))}).catch(e=>e),(0,_vue.nextTick)()},h=e=>{var t="close";D(t,{type:t},e),p(t)},m=e=>{var t=b.confirmClosable,r="confirm";D(r,{type:r},e),t&&p(r)},_=e=>{var t=b.cancelClosable,r="cancel";D(r,{type:r},e),t&&p(r)},I=()=>{let r=b.showFooter;var{initialized:e,visible:t}=k;return e||(k.initialized=!0),t||(k.visible=!0,k.contentVisible=!1,g(),_store.allActiveDrawers.push(V),(0,_vue.nextTick)(()=>{var e=B.value;e&&e.setAttribute("data-effect","y")}),setTimeout(()=>{f(),k.contentVisible=!0,(0,_vue.nextTick)(()=>{r&&(e=n.value,t=s.value,e=e||t)&&e.focus();var e,t={type:""};o("update:modelValue",!0),D("show",t,null)})},10),setTimeout(()=>{var e=B.value;e&&e.removeAttribute("data-effect")},350)),(0,_vue.nextTick)()},D=(e,t,r)=>{o(e,createEvent(r,{$drawer:V},t))};t={dispatchEvent:D,open:I,close(){return p("close")},getBox:z};let $=e=>{var t=B.value;b.maskClosable&&e.target===t&&p("mask")},H=t=>{if(globalEvents.hasKey(t,GLOBAL_EVENT_KEYS.ESCAPE)){let e=_xeUtils.default.max(_store.allActiveDrawers,e=>e.reactData.drawerZIndex);e&&setTimeout(()=>{e===V&&e.props.escClosable&&(D("close",{type:"exit"},t),p("exit"))},10)}},F=()=>{let t=k.drawerZIndex;_store.allActiveDrawers.some(e=>e.reactData.visible&&e.reactData.drawerZIndex>t)&&g()},O=e=>{e.preventDefault();var{resize:t,isWithinAppendTo:r}=b,l=B.value,l=(0,_dom.getPopupWrapperElement)(r?l:document.body);if(l){let a=l.clientWidth-(t&&r?8:0),i=l.clientHeight-(t&&r?8:0);let n=e.target.getAttribute("type"),s=_xeUtils.default.toNumber(b.minWidth),d=_xeUtils.default.toNumber(b.minHeight),u=a,c=i,v=z(),f=v.clientWidth,g=v.clientHeight,w=e.clientX,p=e.clientY,h=v.offsetTop,m=v.offsetLeft,_={type:"resize"};document.onmousemove=e=>{e.preventDefault();let t,r,l,o;switch(n){case"wl":t=w-e.clientX,l=t+f,0<m-t&&l>s&&(v.style.width=`${l<u?l:u}px`);break;case"st":r=p-e.clientY,o=g+r,0<h-r&&o>d&&(v.style.height=`${o<c?o:c}px`);break;case"wr":t=e.clientX-w,l=t+f,m+l+0<a&&l>s&&(v.style.width=`${l<u?l:u}px`);break;case"sb":r=e.clientY-p,o=r+g,h+o+0<i&&o>d&&(v.style.height=`${o<c?o:c}px`)}v.className=v.className.replace(/\s?is--drag/,"")+" is--drag",D("resize",_,e),k.resizeFlag++},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,k.resizeFlag++,setTimeout(()=>{v.className=v.className.replace(/\s?is--drag/,"")},50)}}};Object.assign(V,t,{});let q=()=>{var{slots:e={},showClose:t,title:r}=b,l=x.title||e.title,e=x.corner||e.corner;return[(0,_vue.h)("div",{class:"vxe-drawer--header-title"},l?(0,_vn.getSlotVNs)(l({$drawer:V})):r?(0,_utils.getFuncText)(r):getI18n("vxe.alert.title")),(0,_vue.h)("div",{class:"vxe-drawer--header-right"},[e?(0,_vue.h)("div",{class:"vxe-drawer--corner-wrapper"},(0,_vn.getSlotVNs)(e({$drawer:V}))):renderEmptyElement(V),t?(0,_vue.h)("div",{class:["vxe-drawer--close-btn","trigger--btn"],title:getI18n("vxe.drawer.close"),onClick:h},[(0,_vue.h)("i",{class:getIcon().DRAWER_CLOSE})]):renderEmptyElement(V)])]},M=()=>{var{slots:e={},showCancelButton:t,showConfirmButton:r,loading:l}=b,o=x.leftfoot||e.leftfoot,e=x.rightfoot||e.rightfoot,a=[];return t&&a.push((0,_vue.h)(_button.default,{key:1,ref:s,content:b.cancelButtonText||getI18n("vxe.button.cancel"),onClick:_})),r&&a.push((0,_vue.h)(_button.default,{key:2,ref:n,loading:l,status:"primary",content:b.confirmButtonText||getI18n("vxe.button.confirm"),onClick:m})),(0,_vue.h)("div",{class:"vxe-drawer--footer-wrapper"},[(0,_vue.h)("div",{class:"vxe-drawer--footer-left"},o?(0,_vn.getSlotVNs)(o({$drawer:V})):[]),(0,_vue.h)("div",{class:"vxe-drawer--footer-right"},e?(0,_vn.getSlotVNs)(e({$drawer:V})):a)])};let A=(0,_vue.ref)(0);return(0,_vue.watch)(()=>b.width,()=>{A.value++}),(0,_vue.watch)(()=>b.height,()=>{A.value++}),(0,_vue.watch)(()=>b.position,()=>{A.value++}),(0,_vue.watch)(A,f),(0,_vue.watch)(()=>b.modelValue,e=>{e?I():p("model")}),(0,_vue.onMounted)(()=>{k.initialized=!!b.preload,(0,_vue.nextTick)(()=>{b.modelValue&&I(),f()}),b.escClosable&&globalEvents.on(V,"keydown",H)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown"),w()}),(0,_vue.provide)("$xeDrawer",V),V.renderVN=()=>{var{border:e,showTitleBackground:t,slots:r={},className:l,position:o,loading:a,lockScroll:i,padding:n,lockView:s,mask:d,resize:u,appendTo:c,destroyOnClose:v,isWithinAppendTo:f}=b,{initialized:g,contentVisible:w,visible:p}=k,r=x.aside||r.aside,h=C.value,m=S.value,_=E.value;return(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(c),disabled:!_||!g},[(0,_vue.h)("div",{ref:B,class:["vxe-drawer--wrapper","pos--"+o,f?"ctx--within":"ctx--free",l||"",{["size--"+h]:h,"is--padding":n,"is--border":e,"is--title-bg":t,"lock--scroll":i,"lock--view":s,"is--resize":u,"is--mask":d,"is--visible":w,"is--active":p,"is--loading":a}],style:{zIndex:k.drawerZIndex},onClick:$},[(0,_vue.h)("div",{ref:T,class:"vxe-drawer--box",onMousedown:F},[r?(0,_vue.h)("div",{class:"vxe-drawer--aside"},(0,_vn.getSlotVNs)(r({$drawer:V}))):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-drawer--container"},!k.initialized||v&&!k.visible?[]:[(()=>{var{slots:e={},showTitleOverflow:t}=b,e=x.header||e.header;return b.showHeader?(0,_vue.h)("div",{class:["vxe-drawer--header",{"is--ellipsis":t}]},e?(0,_vn.getSlotVNs)(e({$drawer:V})):q()):renderEmptyElement(V)})(),(()=>{let{slots:e={},content:t,useHtml:r}=b;var l=y.value,o=N.value;let a=x.default||e.default;var i=x.left||e.left,n=x.right||e.right,s=[];return r&&!a?s.push(l?(0,_vue.h)(_scrollbar.default,Object.assign({key:"shc",class:"vxe-drawer--scrollbar-content"},o),{default(){return[(0,_vue.h)("div",{class:"vxe-drawer--scrollbar-content-html",innerHTML:(0,_utils.getFuncText)(t)})]}}):(0,_vue.h)("div",{key:"hc",class:"vxe-drawer--content",innerHTML:(0,_utils.getFuncText)(t)})):s.push(l?(0,_vue.h)(_scrollbar.default,Object.assign({key:"sdc",class:"vxe-drawer--scrollbar-content"},o),{default:()=>a?(0,_vn.getSlotVNs)(a({$drawer:V})):(0,_utils.getFuncText)(t)}):(0,_vue.h)("div",{key:"dc",class:"vxe-drawer--content"},a?(0,_vn.getSlotVNs)(a({$drawer:V})):(0,_utils.getFuncText)(t))),(0,_vue.h)("div",{class:"vxe-drawer--body"},[i?(0,_vue.h)("div",{class:"vxe-drawer--body-left"},(0,_vn.getSlotVNs)(i({$drawer:V}))):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-drawer--body-default"},s),n?(0,_vue.h)("div",{class:"vxe-drawer--body-right"},(0,_vn.getSlotVNs)(n({$drawer:V}))):renderEmptyElement(V),(0,_vue.h)(_loading.default,{class:"vxe-drawer--loading",modelValue:b.loading})])})(),(()=>{var{slots:e={}}=b,e=x.footer||e.footer;return b.showFooter?(0,_vue.h)("div",{class:"vxe-drawer--footer"},e?(0,_vn.getSlotVNs)(e({$drawer:V})):[M()]):renderEmptyElement(V)})(),u?(0,_vue.h)("span",{class:"vxe-drawer--resize"},[(0,_vue.h)("span",{class:m+"-resize",type:m,onMousedown:O})]):renderEmptyElement(V)])])])])},V},render(){return this.renderVN()}});
|
package/lib/form/src/form.js
CHANGED
|
@@ -19,6 +19,14 @@ var _vn = require("../../ui/src/vn");
|
|
|
19
19
|
var _log = require("../../ui/src/log");
|
|
20
20
|
require("../render");
|
|
21
21
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
const {
|
|
23
|
+
getConfig,
|
|
24
|
+
validators,
|
|
25
|
+
renderer,
|
|
26
|
+
createEvent,
|
|
27
|
+
useFns,
|
|
28
|
+
globalEvents
|
|
29
|
+
} = _ui.VxeUI;
|
|
22
30
|
const {
|
|
23
31
|
warnLog,
|
|
24
32
|
errLog
|
|
@@ -181,59 +189,59 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
181
189
|
data: Object,
|
|
182
190
|
size: {
|
|
183
191
|
type: String,
|
|
184
|
-
default: () =>
|
|
192
|
+
default: () => getConfig().form.size || getConfig().size
|
|
185
193
|
},
|
|
186
194
|
span: {
|
|
187
195
|
type: [String, Number],
|
|
188
|
-
default: () =>
|
|
196
|
+
default: () => getConfig().form.span
|
|
189
197
|
},
|
|
190
198
|
align: {
|
|
191
199
|
type: String,
|
|
192
|
-
default: () =>
|
|
200
|
+
default: () => getConfig().form.align
|
|
193
201
|
},
|
|
194
202
|
verticalAlign: {
|
|
195
203
|
type: String,
|
|
196
|
-
default: () =>
|
|
204
|
+
default: () => getConfig().form.verticalAlign
|
|
197
205
|
},
|
|
198
206
|
border: {
|
|
199
207
|
type: Boolean,
|
|
200
|
-
default: () =>
|
|
208
|
+
default: () => getConfig().form.border
|
|
201
209
|
},
|
|
202
210
|
titleBackground: {
|
|
203
211
|
type: Boolean,
|
|
204
|
-
default: () =>
|
|
212
|
+
default: () => getConfig().form.titleBackground
|
|
205
213
|
},
|
|
206
214
|
titleBold: {
|
|
207
215
|
type: Boolean,
|
|
208
|
-
default: () =>
|
|
216
|
+
default: () => getConfig().form.titleBold
|
|
209
217
|
},
|
|
210
218
|
titleAlign: {
|
|
211
219
|
type: String,
|
|
212
|
-
default: () =>
|
|
220
|
+
default: () => getConfig().form.titleAlign
|
|
213
221
|
},
|
|
214
222
|
titleWidth: {
|
|
215
223
|
type: [String, Number],
|
|
216
|
-
default: () =>
|
|
224
|
+
default: () => getConfig().form.titleWidth
|
|
217
225
|
},
|
|
218
226
|
titleColon: {
|
|
219
227
|
type: Boolean,
|
|
220
|
-
default: () =>
|
|
228
|
+
default: () => getConfig().form.titleColon
|
|
221
229
|
},
|
|
222
230
|
titleAsterisk: {
|
|
223
231
|
type: Boolean,
|
|
224
|
-
default: () =>
|
|
232
|
+
default: () => getConfig().form.titleAsterisk
|
|
225
233
|
},
|
|
226
234
|
titleOverflow: {
|
|
227
235
|
type: [Boolean, String],
|
|
228
|
-
default: () =>
|
|
236
|
+
default: () => getConfig().form.titleOverflow
|
|
229
237
|
},
|
|
230
238
|
vertical: {
|
|
231
239
|
type: Boolean,
|
|
232
|
-
default: () =>
|
|
240
|
+
default: () => getConfig().form.vertical
|
|
233
241
|
},
|
|
234
242
|
padding: {
|
|
235
243
|
type: Boolean,
|
|
236
|
-
default: () =>
|
|
244
|
+
default: () => getConfig().form.padding
|
|
237
245
|
},
|
|
238
246
|
className: [String, Function],
|
|
239
247
|
readonly: Boolean,
|
|
@@ -242,14 +250,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
242
250
|
rules: Object,
|
|
243
251
|
preventSubmit: {
|
|
244
252
|
type: Boolean,
|
|
245
|
-
default: () =>
|
|
253
|
+
default: () => getConfig().form.preventSubmit
|
|
246
254
|
},
|
|
247
255
|
validConfig: Object,
|
|
248
256
|
tooltipConfig: Object,
|
|
249
257
|
collapseConfig: Object,
|
|
250
258
|
customLayout: {
|
|
251
259
|
type: Boolean,
|
|
252
|
-
default: () =>
|
|
260
|
+
default: () => getConfig().form.customLayout
|
|
253
261
|
},
|
|
254
262
|
params: Object
|
|
255
263
|
},
|
|
@@ -263,19 +271,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
263
271
|
const xID = _xeUtils.default.uniqueId();
|
|
264
272
|
const {
|
|
265
273
|
computeSize
|
|
266
|
-
} =
|
|
274
|
+
} = useFns.useSize(props);
|
|
267
275
|
const reactData = (0, _vue.reactive)(createReactData());
|
|
268
276
|
const internalData = createInternalData();
|
|
269
277
|
const refElem = (0, _vue.ref)();
|
|
270
278
|
const refTooltip = (0, _vue.ref)();
|
|
271
279
|
const computeValidOpts = (0, _vue.computed)(() => {
|
|
272
|
-
return Object.assign({},
|
|
280
|
+
return Object.assign({}, getConfig().form.validConfig, props.validConfig);
|
|
273
281
|
});
|
|
274
282
|
const computeTooltipOpts = (0, _vue.computed)(() => {
|
|
275
|
-
return Object.assign({},
|
|
283
|
+
return Object.assign({}, getConfig().tooltip, getConfig().form.tooltipConfig, props.tooltipConfig);
|
|
276
284
|
});
|
|
277
285
|
const computeCollapseOpts = (0, _vue.computed)(() => {
|
|
278
|
-
return Object.assign({},
|
|
286
|
+
return Object.assign({}, getConfig().form.collapseConfig, props.collapseConfig);
|
|
279
287
|
});
|
|
280
288
|
const computeAutoItemWidthList = (0, _vue.computed)(() => {
|
|
281
289
|
const {
|
|
@@ -326,7 +334,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
326
334
|
getComputeMaps: () => computeMaps
|
|
327
335
|
};
|
|
328
336
|
const dispatchEvent = (type, params, evnt) => {
|
|
329
|
-
emit(type,
|
|
337
|
+
emit(type, createEvent(evnt, {
|
|
330
338
|
$form: $xeForm,
|
|
331
339
|
$grid: $xeGrid
|
|
332
340
|
}, params));
|
|
@@ -517,7 +525,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
517
525
|
startField,
|
|
518
526
|
endField
|
|
519
527
|
} = itemRender;
|
|
520
|
-
const compConf =
|
|
528
|
+
const compConf = renderer.get(name);
|
|
521
529
|
const fiResetMethod = compConf ? compConf.formItemResetMethod || compConf.itemResetMethod : null;
|
|
522
530
|
if (compConf && fiResetMethod) {
|
|
523
531
|
fiResetMethod({
|
|
@@ -566,7 +574,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
566
574
|
const {
|
|
567
575
|
itemRender
|
|
568
576
|
} = item;
|
|
569
|
-
const compConf =
|
|
577
|
+
const compConf = renderer.get(itemRender.name);
|
|
570
578
|
// 定位到第一个
|
|
571
579
|
if (!i) {
|
|
572
580
|
(0, _dom.scrollToView)(el.querySelector(`.${item.id}`));
|
|
@@ -647,7 +655,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
647
655
|
};
|
|
648
656
|
let customValid;
|
|
649
657
|
if (_xeUtils.default.isString(validator)) {
|
|
650
|
-
const gvItem =
|
|
658
|
+
const gvItem = validators.get(validator);
|
|
651
659
|
if (gvItem) {
|
|
652
660
|
const validatorMethod = gvItem.formItemValidatorMethod || gvItem.itemValidatorMethod;
|
|
653
661
|
if (validatorMethod) {
|
|
@@ -1093,10 +1101,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1093
1101
|
errLog('vxe.error.errConflicts', ['custom-layout', 'items']);
|
|
1094
1102
|
}
|
|
1095
1103
|
});
|
|
1096
|
-
|
|
1104
|
+
globalEvents.on($xeForm, 'resize', handleGlobalResizeEvent);
|
|
1097
1105
|
});
|
|
1098
1106
|
(0, _vue.onUnmounted)(() => {
|
|
1099
|
-
|
|
1107
|
+
globalEvents.off($xeForm, 'resize');
|
|
1100
1108
|
_xeUtils.default.assign(reactData, createReactData());
|
|
1101
1109
|
_xeUtils.default.assign(internalData, createInternalData());
|
|
1102
1110
|
});
|
package/lib/form/src/form.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.createReactData=createReactData,exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_tooltip=_interopRequireDefault(require("../../tooltip")),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_loading=_interopRequireDefault(require("../../loading")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}require("../render");let{warnLog,errLog}=(0,_log.createComponentLog)("form");class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validREValue(e,t){return!(e&&!(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}function validMaxValue(e,t){return!(!_xeUtils.default.eqNull(e)&&t>_xeUtils.default.toNumber(e))}function validMinValue(e,t){return!(!_xeUtils.default.eqNull(e)&&t<_xeUtils.default.toNumber(e))}function validRuleValue(e,t,l){var{type:e,min:i,max:r,pattern:a}=e,u="array"===e,o="number"===e,e="string"===e,n=""+t;if(!validREValue(a,n))return!1;if(u){if(!_xeUtils.default.isArray(t))return!1;if(l&&!t.length)return!1;if(!validMinValue(i,t.length))return!1;if(!validMaxValue(r,t.length))return!1}else if(o){a=Number(t);if(isNaN(a))return!1;if(!validMinValue(i,a))return!1;if(!validMaxValue(r,a))return!1}else{if(e&&!_xeUtils.default.isString(t))return!1;if(l&&!n)return!1;if(!validMinValue(i,n.length))return!1;if(!validMaxValue(r,n.length))return!1}return!0}function checkRuleStatus(e,t,l){var{required:i,field:r}=e,t=r?_xeUtils.default.get(t,r):l,r=_xeUtils.default.isArray(t)?!t.length:(0,_utils.eqEmptyValue)(t);if(i){if(r)return!1;if(!validRuleValue(e,t,i))return!1}else if(!r&&!validRuleValue(e,t,i))return!1;return!0}function createReactData(){return{collapseAll:!1,staticItems:[],formItems:[],itemWidth:0}}function createInternalData(){return{meTimeout:void 0,stTimeout:void 0,tooltipStore:{item:null,visible:!1},itemFormatCache:{},fullItemList:[],fullItemIdData:{},fullItemFieldData:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeForm",props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:()=>(0,_ui.getConfig)().form.size||(0,_ui.getConfig)().size},span:{type:[String,Number],default:()=>(0,_ui.getConfig)().form.span},align:{type:String,default:()=>(0,_ui.getConfig)().form.align},verticalAlign:{type:String,default:()=>(0,_ui.getConfig)().form.verticalAlign},border:{type:Boolean,default:()=>(0,_ui.getConfig)().form.border},titleBackground:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleBackground},titleBold:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleBold},titleAlign:{type:String,default:()=>(0,_ui.getConfig)().form.titleAlign},titleWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().form.titleWidth},titleColon:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleColon},titleAsterisk:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleAsterisk},titleOverflow:{type:[Boolean,String],default:()=>(0,_ui.getConfig)().form.titleOverflow},vertical:{type:Boolean,default:()=>(0,_ui.getConfig)().form.vertical},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().form.padding},className:[String,Function],readonly:Boolean,disabled:Boolean,items:Array,rules:Object,preventSubmit:{type:Boolean,default:()=>(0,_ui.getConfig)().form.preventSubmit},validConfig:Object,tooltipConfig:Object,collapseConfig:Object,customLayout:{type:Boolean,default:()=>(0,_ui.getConfig)().form.customLayout},params:Object},emits:["update:collapseStatus","collapse","toggle-collapse","submit","submit-invalid","reset"],setup(s,e){let{slots:d,emit:i}=e,o=(0,_vue.inject)("$xeGrid",null);var t=_xeUtils.default.uniqueId();let f=(0,_ui.useSize)(s).computeSize,m=(0,_vue.reactive)(createReactData()),c=createInternalData(),v=(0,_vue.ref)(),g=(0,_vue.ref)(),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().form.validConfig,s.validConfig)),p=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tooltip,(0,_ui.getConfig)().form.tooltipConfig,s.tooltipConfig));var l=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().form.collapseConfig,s.collapseConfig));let r=(0,_vue.computed)(()=>{let{titleWidth:i,vertical:r}=s;var e=m.formItems;let a=[];return _xeUtils.default.eachTree(e,e=>{var{titleWidth:t,vertical:l}=e;"auto"!==t&&("auto"!==((_xeUtils.default.eqNull(l)?r:l)?null:_xeUtils.default.eqNull(t)?i:t)||e.children&&e.children.length)||a.push(e)},{children:"children"}),a}),a={refElem:v},u={computeSize:f,computeValidOpts:_,computeTooltipOpts:p,computeCollapseOpts:l,computeAutoItemWidthList:r},h={xID:t,props:s,context:e,reactData:m,internalData:c,xeGrid:o,getRefMaps:()=>a,getComputeMaps:()=>u},n=(e,t,l)=>{i(e,(0,_ui.createEvent)(l,{$form:h,$grid:o},t))};let x=e=>(e.length&&e.forEach(e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{!e||_xeUtils.default.isFunction(e)||d[e]||errLog("vxe.error.notSlot",[e])})}),m.staticItems=_xeUtils.default.mapTree(e,e=>(0,_util.createItem)(h,e),{children:"children"}),c.itemFormatCache={},(0,_vue.nextTick)().then(()=>F()));let y=()=>c.fullItemList;let I=e=>{var t=c.fullItemFieldData,t=t[e];return t?t.item:null},b=()=>m.collapseAll,C=()=>{var e=!b();return m.collapseAll=e,i("update:collapseStatus",e),(0,_vue.nextTick)()};let U=t=>{var e=c.fullItemList;if(t){let e=t;(e=_xeUtils.default.isArray(t)?e:[t]).forEach(e=>{e&&(e=(0,_util.handleFieldOrItem)(h,e))&&(e.showError=!1,e.showIconMsg=!1)})}else e.forEach(e=>{e.showError=!1,e.showIconMsg=!1});return(0,_vue.nextTick)()},w=(e,t,l,i)=>{var{field:r,resetValue:a}=e;return _xeUtils.default.isFunction(a)?a({field:r,item:e,data:t,currentField:i||r||"",currentValue:l,$form:h,$grid:o}):_xeUtils.default.eqNull(a)&&_xeUtils.default.isArray(l)?[]:a},S=()=>{let u=s.data;var e=c.fullItemList;return u&&e.forEach(e=>{var t,l,i,{field:r,itemRender:a}=e;if((0,_utils.isEnableConf)(a))return{name:a,startField:t,endField:l}=a,i=(a=_ui.renderer.get(a))?a.formItemResetMethod||a.itemResetMethod:null,a&&i?i({data:u,field:r,property:r,item:e,$form:h,$grid:o}):r&&(a=_xeUtils.default.get(u,r),_xeUtils.default.set(u,r,w(e,u,a))),t&&l&&(_xeUtils.default.set(u,t,w(e,u,_xeUtils.default.get(u,t),t)),_xeUtils.default.set(u,l,w(e,u,_xeUtils.default.get(u,l),l))),""}),c.itemFormatCache={},U(),F()},O=e=>{e.preventDefault(),S(),n("reset",{data:s.data},e)},$=e=>{var l=v.value;if(l)for(let t=0;t<e.length;t++){var i=e[t],r=I(i);if(r&&(0,_utils.isEnableConf)(r.itemRender)){var a=r.itemRender,u=_ui.renderer.get(a.name);t||(0,_dom.scrollToView)(l.querySelector("."+r.id));let e=null;a=a.autoFocus||a.autofocus||(u?u.formItemAutoFocus:null);if(_xeUtils.default.isFunction(a)?e=a({$form:h,$grid:o,item:r,data:s.data,field:i}):!0===a?e=l.querySelector(`.${r.id} input,textarea`):a&&(e=l.querySelector(`.${r.id} `+a)),e){e.focus();break}}}},R=(f,e,t)=>{let{data:m,rules:l}=s,i={};return _xeUtils.default.isArray(e)||(e=[e]),Promise.all(e.map(n=>{let s=[],d=[];if(n&&l){var e=I(n);let o=e&&e.rules?e.rules:_xeUtils.default.get(l,n);if(o){let u=_xeUtils.default.isUndefined(t)?_xeUtils.default.get(m,n):t;o.forEach(t=>{let{trigger:l,validator:i}=t;if("all"===f||!l||f===l)if(i){var r,a={itemValue:u,rule:t,rules:o,data:m,field:n,property:n,$form:h};let e;_xeUtils.default.isString(i)?(r=_ui.validators.get(i))?(r=r.formItemValidatorMethod||r.itemValidatorMethod)?e=r(a):warnLog("vxe.error.notValidators",[i]):errLog("vxe.error.notValidators",[i]):e=i(a),e&&(_xeUtils.default.isError(e)?s.push(new Rule({type:"custom",trigger:l,content:e.message,rule:new Rule(t)})):e.catch&&d.push(e.catch(e=>{s.push(new Rule({type:"custom",trigger:l,content:e?e.message:t.content||t.message,rule:new Rule(t)}))})))}else checkRuleStatus(t,m,u)||s.push(new Rule(t))})}}return Promise.all(d).then(()=>{s.length&&(i[n]=s.map(e=>({$form:h,rule:e,data:m,field:n,property:n})))})})).then(()=>{if(!_xeUtils.default.isEmpty(i))return Promise.reject(i)})},E=(t,e,l)=>{var{data:i,rules:r}=s;let a=_.value,u={},o=[],n=[];return clearTimeout(c.meTimeout),i&&r?(t.forEach(t=>{let l=t.field;l&&!(0,_util.isHiddenItem)(h,t)&&(0,_util.isActiveItem)(h,t)&&n.push(R(e||"all",l).then(()=>{t.errRule=null}).catch(e=>{e=e[l];return u[l]||(u[l]=[]),u[l].push(e),o.push(l),t.errRule=e[0].rule,Promise.reject(e)}))}),Promise.all(n).then(()=>{l&&l()}).catch(()=>new Promise(e=>{c.meTimeout=setTimeout(()=>{t.forEach(e=>{e.errRule&&(e.showError=!0)})},20),!1!==a.autoPos&&(0,_vue.nextTick)(()=>{$(o)}),l?(l(u),e()):e(u)}))):(l&&l(),Promise.resolve())};let q=t=>{var e=s.readonly,l=c.fullItemList;U(),e?(n("submit",{data:s.data},t),F()):E(l).then(e=>{e?n("submit-invalid",{data:s.data,errMap:e},t):n("submit",{data:s.data},t),F()})},L=e=>{e.preventDefault(),s.preventSubmit||q(e)},T=()=>{var e=c.tooltipStore,t=g.value;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t)&&t.close(),(0,_vue.nextTick)()};let V=(e,l,t)=>l?R(e?["blur"].includes(e.type)?"blur":"change":"all",l,t).then(()=>{U(l)}).catch(e=>{var e=e[l],t=I(l);e&&t&&(t.showError=!0,t.errRule=e[0].rule)}):(0,_vue.nextTick)();let F=()=>{var e=r.value,l=v.value;if(l&&e.length){l=l.querySelectorAll(e.map(e=>`.vxe-form--item-title[itemid="${e.id}"]`).join(","));let t=0;_xeUtils.default.arrayEach(l,e=>{e.style.width="",t=Math.max(t,Math.ceil(e.clientWidth+2))}),_xeUtils.default.arrayEach(l,e=>{e.style.width=t+"px"})}return(0,_vue.nextTick)()},j=()=>{F()};l=t=>function(e){return(_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.handleFieldOrItem)(h,e);e&&(e.visible=t)}),(0,_vue.nextTick)()},t={dispatchEvent:n,loadItems:x,showItem:l(!0),hideItem:l(!1),reset:S,validate:e=>{var t=s.readonly,l=c.fullItemList;return U(),t?Promise.resolve():E(l,"",e).then(e=>(F(),e))},validateField:(e,t)=>{var l=s.readonly;if(l)return Promise.resolve();let i=[];l=(i=e?_xeUtils.default.isArray(e)?e:[e]:i).map(e=>(0,_util.handleFieldOrItem)(h,e));return E(l,"",t).then(e=>(F(),e))},clearValidate:U,updateStatus:(e,t)=>{e=e.field;return V(new Event("change"),e,t)},toggleCollapse:C,getItems:()=>y(),getFlatItems:y,getNestedItems:()=>m.formItems,getItemByField:I,closeTooltip:T,recalculate:F},e={callSlot:(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=d[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],triggerItemEvent:V,toggleCollapseEvent:e=>{var t=C(),l=b();n("toggle-collapse",{status:l,collapse:l,data:s.data},e),n("collapse",{status:l,collapse:l,data:s.data},e),t.then(()=>{F().then(()=>{o&&o.recalculate(!0)}),o&&o.recalculate()})},triggerTitleTipEvent:(e,t)=>{var t=t.item,l=c.tooltipStore,i=g.value,e=e.currentTarget.children[0],r=(e.textContent||"").trim(),a=e.scrollWidth>e.clientWidth;clearTimeout(c.stTimeout),l.item!==t&&T(),r&&a&&(Object.assign(l,{item:t,visible:!0}),i)&&i.open(e,r)},handleTitleTipLeaveEvent:()=>{var e=p.value;let t=g.value;t&&t.setActived(!1),e.enterable?c.stTimeout=setTimeout(()=>{(t=g.value)&&!t.isActived()&&T()},e.leaveDelay):T()},handleValidIconEvent(e,t){t=t.item;t.showIconMsg=!t.showIconMsg},handleSubmitEvent:q};Object.assign(h,t,e);let A=(0,_vue.ref)(0),D=((0,_vue.watch)(()=>s.vertical,()=>{A.value++}),(0,_vue.watch)(()=>s.titleWidth,()=>{A.value++}),(0,_vue.watch)(A,()=>{(0,_vue.nextTick)().then(()=>{F()})}),(0,_vue.ref)(0)),M=((0,_vue.watch)(()=>m.staticItems.length,()=>{D.value++}),(0,_vue.watch)(()=>m.staticItems,()=>{D.value++}),(0,_vue.watch)(D,()=>{m.formItems=m.staticItems,A.value++,(()=>{var e=m.formItems;let a={},u={},o=[];_xeUtils.default.eachTree(e,(e,t,l)=>{var{id:i,field:r}=e,l={item:e,items:l,index:t};i&&(a[i]=l),r&&(u[r]=l),o.push(e)},{children:"children"}),c.fullItemList=o,c.fullItemFieldData=u,c.fullItemIdData=a})()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>s.items?s.items.length:-1,()=>{M.value++}),(0,_vue.watch)(()=>s.items,()=>{M.value++}),(0,_vue.watch)(M,()=>{x(s.items||[])}),(0,_vue.watch)(()=>s.collapseStatus,e=>{m.collapseAll=!!e}),(0,_vue.watch)(()=>s.readonly,()=>{U()}),(0,_vue.watch)(()=>s.disabled,()=>{U()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{s.customLayout&&s.items&&errLog("vxe.error.errConflicts",["custom-layout","items"])}),_ui.globalEvents.on(h,"resize",j)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(h,"resize"),_xeUtils.default.assign(m,createReactData()),_xeUtils.default.assign(c,createInternalData())}),m.collapseAll=!!s.collapseStatus,s.items&&x(s.items),(0,_vue.provide)("xeFormItemInfo",null),(0,_vue.provide)("$xeForm",h),(0,_vue.provide)("$xeFormGroup",null),(0,_vue.provide)("$xeFormItem",null),h.renderVN=()=>{var{loading:e,border:t,className:l,data:i,customLayout:r}=s,a=m.formItems,u=f.value,o=p.value,n=d.default;return(0,_vue.h)("form",{ref:v,class:["vxe-form",l?_xeUtils.default.isFunction(l)?l({items:a,data:i,$form:h}):l:"",{["size--"+u]:u,"is--border":t,"custom--layout":r,"is--loading":e}],onSubmit:L,onReset:O},[(0,_vue.h)("div",{class:"vxe-form--wrapper vxe-form--item-row"},r?n?n({}):[]:a.map((e,t)=>(0,_vue.h)(_formConfigItem.default,{key:t,itemConfig:e,visible:e.visible}))),(0,_vue.h)("div",{class:"vxe-form-slots"},!r&&n?n({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-form--loading",modelValue:e}),(0,_vue.h)(_tooltip.default,Object.assign({ref:g},o))])},h},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.createReactData=createReactData,exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_tooltip=_interopRequireDefault(require("../../tooltip")),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_loading=_interopRequireDefault(require("../../loading")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}require("../render");let{getConfig,validators,renderer,createEvent,useFns,globalEvents}=_ui.VxeUI,{warnLog,errLog}=(0,_log.createComponentLog)("form");class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validREValue(e,t){return!(e&&!(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}function validMaxValue(e,t){return!(!_xeUtils.default.eqNull(e)&&t>_xeUtils.default.toNumber(e))}function validMinValue(e,t){return!(!_xeUtils.default.eqNull(e)&&t<_xeUtils.default.toNumber(e))}function validRuleValue(e,t,l){var{type:e,min:i,max:r,pattern:a}=e,u="array"===e,o="number"===e,e="string"===e,n=""+t;if(!validREValue(a,n))return!1;if(u){if(!_xeUtils.default.isArray(t))return!1;if(l&&!t.length)return!1;if(!validMinValue(i,t.length))return!1;if(!validMaxValue(r,t.length))return!1}else if(o){a=Number(t);if(isNaN(a))return!1;if(!validMinValue(i,a))return!1;if(!validMaxValue(r,a))return!1}else{if(e&&!_xeUtils.default.isString(t))return!1;if(l&&!n)return!1;if(!validMinValue(i,n.length))return!1;if(!validMaxValue(r,n.length))return!1}return!0}function checkRuleStatus(e,t,l){var{required:i,field:r}=e,t=r?_xeUtils.default.get(t,r):l,r=_xeUtils.default.isArray(t)?!t.length:(0,_utils.eqEmptyValue)(t);if(i){if(r)return!1;if(!validRuleValue(e,t,i))return!1}else if(!r&&!validRuleValue(e,t,i))return!1;return!0}function createReactData(){return{collapseAll:!1,staticItems:[],formItems:[],itemWidth:0}}function createInternalData(){return{meTimeout:void 0,stTimeout:void 0,tooltipStore:{item:null,visible:!1},itemFormatCache:{},fullItemList:[],fullItemIdData:{},fullItemFieldData:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeForm",props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:()=>getConfig().form.size||getConfig().size},span:{type:[String,Number],default:()=>getConfig().form.span},align:{type:String,default:()=>getConfig().form.align},verticalAlign:{type:String,default:()=>getConfig().form.verticalAlign},border:{type:Boolean,default:()=>getConfig().form.border},titleBackground:{type:Boolean,default:()=>getConfig().form.titleBackground},titleBold:{type:Boolean,default:()=>getConfig().form.titleBold},titleAlign:{type:String,default:()=>getConfig().form.titleAlign},titleWidth:{type:[String,Number],default:()=>getConfig().form.titleWidth},titleColon:{type:Boolean,default:()=>getConfig().form.titleColon},titleAsterisk:{type:Boolean,default:()=>getConfig().form.titleAsterisk},titleOverflow:{type:[Boolean,String],default:()=>getConfig().form.titleOverflow},vertical:{type:Boolean,default:()=>getConfig().form.vertical},padding:{type:Boolean,default:()=>getConfig().form.padding},className:[String,Function],readonly:Boolean,disabled:Boolean,items:Array,rules:Object,preventSubmit:{type:Boolean,default:()=>getConfig().form.preventSubmit},validConfig:Object,tooltipConfig:Object,collapseConfig:Object,customLayout:{type:Boolean,default:()=>getConfig().form.customLayout},params:Object},emits:["update:collapseStatus","collapse","toggle-collapse","submit","submit-invalid","reset"],setup(s,e){let{slots:d,emit:i}=e,o=(0,_vue.inject)("$xeGrid",null);var t=_xeUtils.default.uniqueId();let f=useFns.useSize(s).computeSize,m=(0,_vue.reactive)(createReactData()),c=createInternalData(),v=(0,_vue.ref)(),g=(0,_vue.ref)(),p=(0,_vue.computed)(()=>Object.assign({},getConfig().form.validConfig,s.validConfig)),_=(0,_vue.computed)(()=>Object.assign({},getConfig().tooltip,getConfig().form.tooltipConfig,s.tooltipConfig));var l=(0,_vue.computed)(()=>Object.assign({},getConfig().form.collapseConfig,s.collapseConfig));let r=(0,_vue.computed)(()=>{let{titleWidth:i,vertical:r}=s;var e=m.formItems;let a=[];return _xeUtils.default.eachTree(e,e=>{var{titleWidth:t,vertical:l}=e;"auto"!==t&&("auto"!==((_xeUtils.default.eqNull(l)?r:l)?null:_xeUtils.default.eqNull(t)?i:t)||e.children&&e.children.length)||a.push(e)},{children:"children"}),a}),a={refElem:v},u={computeSize:f,computeValidOpts:p,computeTooltipOpts:_,computeCollapseOpts:l,computeAutoItemWidthList:r},h={xID:t,props:s,context:e,reactData:m,internalData:c,xeGrid:o,getRefMaps:()=>a,getComputeMaps:()=>u},n=(e,t,l)=>{i(e,createEvent(l,{$form:h,$grid:o},t))};let x=e=>(e.length&&e.forEach(e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{!e||_xeUtils.default.isFunction(e)||d[e]||errLog("vxe.error.notSlot",[e])})}),m.staticItems=_xeUtils.default.mapTree(e,e=>(0,_util.createItem)(h,e),{children:"children"}),c.itemFormatCache={},(0,_vue.nextTick)().then(()=>F()));let y=()=>c.fullItemList;let I=e=>{var t=c.fullItemFieldData,t=t[e];return t?t.item:null},b=()=>m.collapseAll,C=()=>{var e=!b();return m.collapseAll=e,i("update:collapseStatus",e),(0,_vue.nextTick)()};let U=t=>{var e=c.fullItemList;if(t){let e=t;(e=_xeUtils.default.isArray(t)?e:[t]).forEach(e=>{e&&(e=(0,_util.handleFieldOrItem)(h,e))&&(e.showError=!1,e.showIconMsg=!1)})}else e.forEach(e=>{e.showError=!1,e.showIconMsg=!1});return(0,_vue.nextTick)()},w=(e,t,l,i)=>{var{field:r,resetValue:a}=e;return _xeUtils.default.isFunction(a)?a({field:r,item:e,data:t,currentField:i||r||"",currentValue:l,$form:h,$grid:o}):_xeUtils.default.eqNull(a)&&_xeUtils.default.isArray(l)?[]:a},E=()=>{let u=s.data;var e=c.fullItemList;return u&&e.forEach(e=>{var t,l,i,{field:r,itemRender:a}=e;if((0,_utils.isEnableConf)(a))return{name:a,startField:t,endField:l}=a,i=(a=renderer.get(a))?a.formItemResetMethod||a.itemResetMethod:null,a&&i?i({data:u,field:r,property:r,item:e,$form:h,$grid:o}):r&&(a=_xeUtils.default.get(u,r),_xeUtils.default.set(u,r,w(e,u,a))),t&&l&&(_xeUtils.default.set(u,t,w(e,u,_xeUtils.default.get(u,t),t)),_xeUtils.default.set(u,l,w(e,u,_xeUtils.default.get(u,l),l))),""}),c.itemFormatCache={},U(),F()},O=e=>{e.preventDefault(),E(),n("reset",{data:s.data},e)},$=e=>{var l=v.value;if(l)for(let t=0;t<e.length;t++){var i=e[t],r=I(i);if(r&&(0,_utils.isEnableConf)(r.itemRender)){var a=r.itemRender,u=renderer.get(a.name);t||(0,_dom.scrollToView)(l.querySelector("."+r.id));let e=null;a=a.autoFocus||a.autofocus||(u?u.formItemAutoFocus:null);if(_xeUtils.default.isFunction(a)?e=a({$form:h,$grid:o,item:r,data:s.data,field:i}):!0===a?e=l.querySelector(`.${r.id} input,textarea`):a&&(e=l.querySelector(`.${r.id} `+a)),e){e.focus();break}}}},S=(f,e,t)=>{let{data:m,rules:l}=s,i={};return _xeUtils.default.isArray(e)||(e=[e]),Promise.all(e.map(n=>{let s=[],d=[];if(n&&l){var e=I(n);let o=e&&e.rules?e.rules:_xeUtils.default.get(l,n);if(o){let u=_xeUtils.default.isUndefined(t)?_xeUtils.default.get(m,n):t;o.forEach(t=>{let{trigger:l,validator:i}=t;if("all"===f||!l||f===l)if(i){var r,a={itemValue:u,rule:t,rules:o,data:m,field:n,property:n,$form:h};let e;_xeUtils.default.isString(i)?(r=validators.get(i))?(r=r.formItemValidatorMethod||r.itemValidatorMethod)?e=r(a):warnLog("vxe.error.notValidators",[i]):errLog("vxe.error.notValidators",[i]):e=i(a),e&&(_xeUtils.default.isError(e)?s.push(new Rule({type:"custom",trigger:l,content:e.message,rule:new Rule(t)})):e.catch&&d.push(e.catch(e=>{s.push(new Rule({type:"custom",trigger:l,content:e?e.message:t.content||t.message,rule:new Rule(t)}))})))}else checkRuleStatus(t,m,u)||s.push(new Rule(t))})}}return Promise.all(d).then(()=>{s.length&&(i[n]=s.map(e=>({$form:h,rule:e,data:m,field:n,property:n})))})})).then(()=>{if(!_xeUtils.default.isEmpty(i))return Promise.reject(i)})},R=(t,e,l)=>{var{data:i,rules:r}=s;let a=p.value,u={},o=[],n=[];return clearTimeout(c.meTimeout),i&&r?(t.forEach(t=>{let l=t.field;l&&!(0,_util.isHiddenItem)(h,t)&&(0,_util.isActiveItem)(h,t)&&n.push(S(e||"all",l).then(()=>{t.errRule=null}).catch(e=>{e=e[l];return u[l]||(u[l]=[]),u[l].push(e),o.push(l),t.errRule=e[0].rule,Promise.reject(e)}))}),Promise.all(n).then(()=>{l&&l()}).catch(()=>new Promise(e=>{c.meTimeout=setTimeout(()=>{t.forEach(e=>{e.errRule&&(e.showError=!0)})},20),!1!==a.autoPos&&(0,_vue.nextTick)(()=>{$(o)}),l?(l(u),e()):e(u)}))):(l&&l(),Promise.resolve())};let q=t=>{var e=s.readonly,l=c.fullItemList;U(),e?(n("submit",{data:s.data},t),F()):R(l).then(e=>{e?n("submit-invalid",{data:s.data,errMap:e},t):n("submit",{data:s.data},t),F()})},L=e=>{e.preventDefault(),s.preventSubmit||q(e)},T=()=>{var e=c.tooltipStore,t=g.value;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t)&&t.close(),(0,_vue.nextTick)()};let V=(e,l,t)=>l?S(e?["blur"].includes(e.type)?"blur":"change":"all",l,t).then(()=>{U(l)}).catch(e=>{var e=e[l],t=I(l);e&&t&&(t.showError=!0,t.errRule=e[0].rule)}):(0,_vue.nextTick)();let F=()=>{var e=r.value,l=v.value;if(l&&e.length){l=l.querySelectorAll(e.map(e=>`.vxe-form--item-title[itemid="${e.id}"]`).join(","));let t=0;_xeUtils.default.arrayEach(l,e=>{e.style.width="",t=Math.max(t,Math.ceil(e.clientWidth+2))}),_xeUtils.default.arrayEach(l,e=>{e.style.width=t+"px"})}return(0,_vue.nextTick)()},j=()=>{F()};l=t=>function(e){return(_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.handleFieldOrItem)(h,e);e&&(e.visible=t)}),(0,_vue.nextTick)()},t={dispatchEvent:n,loadItems:x,showItem:l(!0),hideItem:l(!1),reset:E,validate:e=>{var t=s.readonly,l=c.fullItemList;return U(),t?Promise.resolve():R(l,"",e).then(e=>(F(),e))},validateField:(e,t)=>{var l=s.readonly;if(l)return Promise.resolve();let i=[];l=(i=e?_xeUtils.default.isArray(e)?e:[e]:i).map(e=>(0,_util.handleFieldOrItem)(h,e));return R(l,"",t).then(e=>(F(),e))},clearValidate:U,updateStatus:(e,t)=>{e=e.field;return V(new Event("change"),e,t)},toggleCollapse:C,getItems:()=>y(),getFlatItems:y,getNestedItems:()=>m.formItems,getItemByField:I,closeTooltip:T,recalculate:F},e={callSlot:(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=d[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],triggerItemEvent:V,toggleCollapseEvent:e=>{var t=C(),l=b();n("toggle-collapse",{status:l,collapse:l,data:s.data},e),n("collapse",{status:l,collapse:l,data:s.data},e),t.then(()=>{F().then(()=>{o&&o.recalculate(!0)}),o&&o.recalculate()})},triggerTitleTipEvent:(e,t)=>{var t=t.item,l=c.tooltipStore,i=g.value,e=e.currentTarget.children[0],r=(e.textContent||"").trim(),a=e.scrollWidth>e.clientWidth;clearTimeout(c.stTimeout),l.item!==t&&T(),r&&a&&(Object.assign(l,{item:t,visible:!0}),i)&&i.open(e,r)},handleTitleTipLeaveEvent:()=>{var e=_.value;let t=g.value;t&&t.setActived(!1),e.enterable?c.stTimeout=setTimeout(()=>{(t=g.value)&&!t.isActived()&&T()},e.leaveDelay):T()},handleValidIconEvent(e,t){t=t.item;t.showIconMsg=!t.showIconMsg},handleSubmitEvent:q};Object.assign(h,t,e);let A=(0,_vue.ref)(0),D=((0,_vue.watch)(()=>s.vertical,()=>{A.value++}),(0,_vue.watch)(()=>s.titleWidth,()=>{A.value++}),(0,_vue.watch)(A,()=>{(0,_vue.nextTick)().then(()=>{F()})}),(0,_vue.ref)(0)),M=((0,_vue.watch)(()=>m.staticItems.length,()=>{D.value++}),(0,_vue.watch)(()=>m.staticItems,()=>{D.value++}),(0,_vue.watch)(D,()=>{m.formItems=m.staticItems,A.value++,(()=>{var e=m.formItems;let a={},u={},o=[];_xeUtils.default.eachTree(e,(e,t,l)=>{var{id:i,field:r}=e,l={item:e,items:l,index:t};i&&(a[i]=l),r&&(u[r]=l),o.push(e)},{children:"children"}),c.fullItemList=o,c.fullItemFieldData=u,c.fullItemIdData=a})()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>s.items?s.items.length:-1,()=>{M.value++}),(0,_vue.watch)(()=>s.items,()=>{M.value++}),(0,_vue.watch)(M,()=>{x(s.items||[])}),(0,_vue.watch)(()=>s.collapseStatus,e=>{m.collapseAll=!!e}),(0,_vue.watch)(()=>s.readonly,()=>{U()}),(0,_vue.watch)(()=>s.disabled,()=>{U()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{s.customLayout&&s.items&&errLog("vxe.error.errConflicts",["custom-layout","items"])}),globalEvents.on(h,"resize",j)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(h,"resize"),_xeUtils.default.assign(m,createReactData()),_xeUtils.default.assign(c,createInternalData())}),m.collapseAll=!!s.collapseStatus,s.items&&x(s.items),(0,_vue.provide)("xeFormItemInfo",null),(0,_vue.provide)("$xeForm",h),(0,_vue.provide)("$xeFormGroup",null),(0,_vue.provide)("$xeFormItem",null),h.renderVN=()=>{var{loading:e,border:t,className:l,data:i,customLayout:r}=s,a=m.formItems,u=f.value,o=_.value,n=d.default;return(0,_vue.h)("form",{ref:v,class:["vxe-form",l?_xeUtils.default.isFunction(l)?l({items:a,data:i,$form:h}):l:"",{["size--"+u]:u,"is--border":t,"custom--layout":r,"is--loading":e}],onSubmit:L,onReset:O},[(0,_vue.h)("div",{class:"vxe-form--wrapper vxe-form--item-row"},r?n?n({}):[]:a.map((e,t)=>(0,_vue.h)(_formConfigItem.default,{key:t,itemConfig:e,visible:e.visible}))),(0,_vue.h)("div",{class:"vxe-form-slots"},!r&&n?n({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-form--loading",modelValue:e}),(0,_vue.h)(_tooltip.default,Object.assign({ref:g},o))])},h},render(){return this.renderVN()}});
|