vxe-table 4.7.77 → 4.7.79
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.en.md +1 -1
- package/README.ja-JP.md +1 -1
- package/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/es/grid/src/grid.js +45 -36
- package/es/style.css +1 -1
- package/es/table/module/custom/panel.js +5 -0
- package/es/table/render/index.js +4 -25
- package/es/table/src/body.js +26 -2
- package/es/table/src/cell.js +6 -6
- package/es/table/src/column.js +45 -18
- package/es/table/src/footer.js +16 -4
- package/es/table/src/group.js +18 -12
- package/es/table/src/header.js +4 -1
- package/es/table/src/props.js +96 -24
- package/es/table/src/table.js +2 -4
- package/es/table/src/util.js +1 -1
- package/es/toolbar/src/toolbar.js +89 -68
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/vn.js +23 -0
- package/lib/grid/src/grid.js +45 -39
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +278 -198
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/panel.js +7 -0
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/render/index.js +7 -28
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/cell.js +3 -3
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +16 -10
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/group.js +17 -11
- package/lib/table/src/group.min.js +1 -1
- package/lib/table/src/table.js +2 -4
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +1 -1
- package/lib/table/src/util.min.js +1 -1
- package/lib/toolbar/src/toolbar.js +109 -76
- package/lib/toolbar/src/toolbar.min.js +1 -1
- package/lib/ui/index.js +2 -2
- 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/ui/src/vn.js +25 -0
- package/lib/ui/src/vn.min.js +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +54 -44
- package/packages/table/module/custom/panel.ts +5 -0
- package/packages/table/render/index.ts +4 -27
- package/packages/table/src/body.ts +26 -2
- package/packages/table/src/cell.ts +9 -8
- package/packages/table/src/column.ts +47 -20
- package/packages/table/src/footer.ts +16 -4
- package/packages/table/src/group.ts +19 -13
- package/packages/table/src/header.ts +4 -1
- package/packages/table/src/props.ts +97 -24
- package/packages/table/src/table.ts +2 -4
- package/packages/table/src/util.ts +2 -2
- package/packages/toolbar/src/toolbar.ts +97 -75
- package/packages/ui/src/vn.ts +25 -0
- /package/es/{iconfont.1725604498089.ttf → iconfont.1726116305532.ttf} +0 -0
- /package/es/{iconfont.1725604498089.woff → iconfont.1726116305532.woff} +0 -0
- /package/es/{iconfont.1725604498089.woff2 → iconfont.1726116305532.woff2} +0 -0
- /package/lib/{iconfont.1725604498089.ttf → iconfont.1726116305532.ttf} +0 -0
- /package/lib/{iconfont.1725604498089.woff → iconfont.1726116305532.woff} +0 -0
- /package/lib/{iconfont.1725604498089.woff2 → iconfont.1726116305532.woff2} +0 -0
|
@@ -14,10 +14,22 @@ export default defineComponent({
|
|
|
14
14
|
print: [Boolean, Object],
|
|
15
15
|
zoom: [Boolean, Object],
|
|
16
16
|
custom: [Boolean, Object],
|
|
17
|
-
buttons: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
buttons: {
|
|
18
|
+
type: Array,
|
|
19
|
+
default: () => getConfig().toolbar.buttons
|
|
20
|
+
},
|
|
21
|
+
tools: {
|
|
22
|
+
type: Array,
|
|
23
|
+
default: () => getConfig().toolbar.tools
|
|
24
|
+
},
|
|
25
|
+
perfect: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: () => getConfig().toolbar.perfect
|
|
28
|
+
},
|
|
29
|
+
size: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: () => getConfig().toolbar.size || getConfig().size
|
|
32
|
+
},
|
|
21
33
|
className: [String, Function]
|
|
22
34
|
},
|
|
23
35
|
emits: [
|
|
@@ -32,8 +44,12 @@ export default defineComponent({
|
|
|
32
44
|
const { computeSize } = useFns.useSize(props);
|
|
33
45
|
const reactData = reactive({
|
|
34
46
|
isRefresh: false,
|
|
47
|
+
connectFlag: 0,
|
|
35
48
|
columns: []
|
|
36
49
|
});
|
|
50
|
+
const internalData = {
|
|
51
|
+
connectTable: null
|
|
52
|
+
};
|
|
37
53
|
const refElem = ref();
|
|
38
54
|
const refMaps = {
|
|
39
55
|
refElem
|
|
@@ -43,12 +59,11 @@ export default defineComponent({
|
|
|
43
59
|
props,
|
|
44
60
|
context,
|
|
45
61
|
reactData,
|
|
62
|
+
internalData,
|
|
46
63
|
getRefMaps: () => refMaps
|
|
47
64
|
};
|
|
48
65
|
let toolbarMethods = {};
|
|
49
66
|
const $xeGrid = inject('$xeGrid', null);
|
|
50
|
-
const refTable = ref();
|
|
51
|
-
const connectFlag = ref(0);
|
|
52
67
|
const computeRefreshOpts = computed(() => {
|
|
53
68
|
return Object.assign({}, getConfig().toolbar.refresh, props.refresh);
|
|
54
69
|
});
|
|
@@ -68,8 +83,9 @@ export default defineComponent({
|
|
|
68
83
|
return Object.assign({}, getConfig().toolbar.custom, props.custom);
|
|
69
84
|
});
|
|
70
85
|
const computeTableCustomOpts = computed(() => {
|
|
71
|
-
const
|
|
72
|
-
|
|
86
|
+
const { connectTable } = internalData;
|
|
87
|
+
const $table = connectTable;
|
|
88
|
+
if (reactData.connectFlag || $table) {
|
|
73
89
|
if ($table) {
|
|
74
90
|
const { computeCustomOpts } = $table.getComputeMaps();
|
|
75
91
|
return computeCustomOpts.value;
|
|
@@ -82,14 +98,16 @@ export default defineComponent({
|
|
|
82
98
|
return tableCustomOpts.trigger;
|
|
83
99
|
});
|
|
84
100
|
const checkTable = () => {
|
|
85
|
-
const
|
|
101
|
+
const { connectTable } = internalData;
|
|
102
|
+
const $table = connectTable;
|
|
86
103
|
if ($table) {
|
|
87
104
|
return true;
|
|
88
105
|
}
|
|
89
106
|
errLog('vxe.error.barUnableLink');
|
|
90
107
|
};
|
|
91
108
|
const handleClickSettingEvent = ({ $event }) => {
|
|
92
|
-
const
|
|
109
|
+
const { connectTable } = internalData;
|
|
110
|
+
const $table = connectTable;
|
|
93
111
|
if ($table) {
|
|
94
112
|
if ($table.triggerCustomEvent) {
|
|
95
113
|
$table.triggerCustomEvent($event);
|
|
@@ -100,7 +118,8 @@ export default defineComponent({
|
|
|
100
118
|
}
|
|
101
119
|
};
|
|
102
120
|
const handleMouseenterSettingEvent = ({ $event }) => {
|
|
103
|
-
const
|
|
121
|
+
const { connectTable } = internalData;
|
|
122
|
+
const $table = connectTable;
|
|
104
123
|
if ($table) {
|
|
105
124
|
$table.customOpenEvent($event);
|
|
106
125
|
}
|
|
@@ -109,7 +128,8 @@ export default defineComponent({
|
|
|
109
128
|
}
|
|
110
129
|
};
|
|
111
130
|
const handleMouseleaveSettingEvent = ({ $event }) => {
|
|
112
|
-
const
|
|
131
|
+
const { connectTable } = internalData;
|
|
132
|
+
const $table = connectTable;
|
|
113
133
|
if ($table) {
|
|
114
134
|
const { customStore } = $table.reactData;
|
|
115
135
|
customStore.activeBtn = false;
|
|
@@ -150,7 +170,8 @@ export default defineComponent({
|
|
|
150
170
|
}
|
|
151
171
|
};
|
|
152
172
|
const btnEvent = (evnt, item) => {
|
|
153
|
-
const
|
|
173
|
+
const { connectTable } = internalData;
|
|
174
|
+
const $table = connectTable;
|
|
154
175
|
const { code } = item;
|
|
155
176
|
if (code) {
|
|
156
177
|
if ($xeGrid) {
|
|
@@ -175,7 +196,8 @@ export default defineComponent({
|
|
|
175
196
|
}
|
|
176
197
|
};
|
|
177
198
|
const tolEvent = (evnt, item) => {
|
|
178
|
-
const
|
|
199
|
+
const { connectTable } = internalData;
|
|
200
|
+
const $table = connectTable;
|
|
179
201
|
const { code } = item;
|
|
180
202
|
if (code) {
|
|
181
203
|
if ($xeGrid) {
|
|
@@ -201,7 +223,8 @@ export default defineComponent({
|
|
|
201
223
|
};
|
|
202
224
|
const importEvent = () => {
|
|
203
225
|
if (checkTable()) {
|
|
204
|
-
const
|
|
226
|
+
const { connectTable } = internalData;
|
|
227
|
+
const $table = connectTable;
|
|
205
228
|
if ($table) {
|
|
206
229
|
$table.openImport();
|
|
207
230
|
}
|
|
@@ -209,7 +232,8 @@ export default defineComponent({
|
|
|
209
232
|
};
|
|
210
233
|
const exportEvent = () => {
|
|
211
234
|
if (checkTable()) {
|
|
212
|
-
const
|
|
235
|
+
const { connectTable } = internalData;
|
|
236
|
+
const $table = connectTable;
|
|
213
237
|
if ($table) {
|
|
214
238
|
$table.openExport();
|
|
215
239
|
}
|
|
@@ -217,12 +241,25 @@ export default defineComponent({
|
|
|
217
241
|
};
|
|
218
242
|
const printEvent = () => {
|
|
219
243
|
if (checkTable()) {
|
|
220
|
-
const
|
|
244
|
+
const { connectTable } = internalData;
|
|
245
|
+
const $table = connectTable;
|
|
221
246
|
if ($table) {
|
|
222
247
|
$table.openPrint();
|
|
223
248
|
}
|
|
224
249
|
}
|
|
225
250
|
};
|
|
251
|
+
const dispatchEvent = (type, params, evnt) => {
|
|
252
|
+
emit(type, createEvent(evnt, { $toolbar: $xeToolbar }, params));
|
|
253
|
+
};
|
|
254
|
+
toolbarMethods = {
|
|
255
|
+
dispatchEvent,
|
|
256
|
+
syncUpdate(params) {
|
|
257
|
+
internalData.connectTable = params.$table;
|
|
258
|
+
reactData.columns = params.collectColumn;
|
|
259
|
+
reactData.connectFlag++;
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
Object.assign($xeToolbar, toolbarMethods);
|
|
226
263
|
const renderDropdowns = (item, isBtn) => {
|
|
227
264
|
const { dropdowns } = item;
|
|
228
265
|
const downVNs = [];
|
|
@@ -255,11 +292,8 @@ export default defineComponent({
|
|
|
255
292
|
*/
|
|
256
293
|
const renderBtns = () => {
|
|
257
294
|
const { buttons } = props;
|
|
258
|
-
const
|
|
259
|
-
const
|
|
260
|
-
if (buttonsSlot) {
|
|
261
|
-
return getSlotVNs(buttonsSlot({ $grid: $xeGrid, $table: $table }));
|
|
262
|
-
}
|
|
295
|
+
const { connectTable } = internalData;
|
|
296
|
+
const $table = connectTable;
|
|
263
297
|
const btnVNs = [];
|
|
264
298
|
if (buttons) {
|
|
265
299
|
buttons.forEach((item) => {
|
|
@@ -307,11 +341,8 @@ export default defineComponent({
|
|
|
307
341
|
*/
|
|
308
342
|
const renderRightTools = () => {
|
|
309
343
|
const { tools } = props;
|
|
310
|
-
const
|
|
311
|
-
const
|
|
312
|
-
if (toolsSlot) {
|
|
313
|
-
return getSlotVNs(toolsSlot({ $grid: $xeGrid, $table: $table }));
|
|
314
|
-
}
|
|
344
|
+
const { connectTable } = internalData;
|
|
345
|
+
const $table = connectTable;
|
|
315
346
|
const btnVNs = [];
|
|
316
347
|
if (tools) {
|
|
317
348
|
tools.forEach((item, tIndex) => {
|
|
@@ -436,44 +467,13 @@ export default defineComponent({
|
|
|
436
467
|
? h(VxeUIButtonComponent, Object.assign({ key: 'custom', circle: true, icon: customOpts.icon || getIcon().TOOLBAR_TOOLS_CUSTOM, title: getI18n('vxe.toolbar.custom'), className: 'vxe-toolbar-custom-target' }, customBtnOns))
|
|
437
468
|
: createCommentVNode();
|
|
438
469
|
};
|
|
439
|
-
toolbarMethods = {
|
|
440
|
-
dispatchEvent(type, params, evnt) {
|
|
441
|
-
emit(type, createEvent(evnt, { $toolbar: $xeToolbar }, params));
|
|
442
|
-
},
|
|
443
|
-
syncUpdate(params) {
|
|
444
|
-
const { collectColumn } = params;
|
|
445
|
-
refTable.value = params.$table;
|
|
446
|
-
reactData.columns = collectColumn;
|
|
447
|
-
connectFlag.value++;
|
|
448
|
-
}
|
|
449
|
-
};
|
|
450
|
-
Object.assign($xeToolbar, toolbarMethods);
|
|
451
|
-
nextTick(() => {
|
|
452
|
-
const { refresh } = props;
|
|
453
|
-
const refreshOpts = computeRefreshOpts.value;
|
|
454
|
-
const queryMethod = refreshOpts.queryMethod || refreshOpts.query;
|
|
455
|
-
if (refresh && !$xeGrid && !queryMethod) {
|
|
456
|
-
warnLog('vxe.error.notFunc', ['queryMethod']);
|
|
457
|
-
}
|
|
458
|
-
const customOpts = computeCustomOpts.value;
|
|
459
|
-
if (process.env.NODE_ENV === 'development') {
|
|
460
|
-
if (customOpts.isFooter) {
|
|
461
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
|
|
462
|
-
}
|
|
463
|
-
if (customOpts.showFooter) {
|
|
464
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']);
|
|
465
|
-
}
|
|
466
|
-
if (customOpts.immediate) {
|
|
467
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']);
|
|
468
|
-
}
|
|
469
|
-
if (customOpts.trigger) {
|
|
470
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']);
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
});
|
|
474
470
|
const renderVN = () => {
|
|
475
471
|
const { perfect, loading, refresh, zoom, custom, className } = props;
|
|
472
|
+
const { connectTable } = internalData;
|
|
476
473
|
const vSize = computeSize.value;
|
|
474
|
+
const toolsSlot = slots.tools;
|
|
475
|
+
const buttonsSlot = slots.buttons;
|
|
476
|
+
const $table = connectTable;
|
|
477
477
|
return h('div', {
|
|
478
478
|
ref: refElem,
|
|
479
479
|
class: ['vxe-toolbar', className ? (XEUtils.isFunction(className) ? className({ $toolbar: $xeToolbar }) : className) : '', {
|
|
@@ -484,10 +484,10 @@ export default defineComponent({
|
|
|
484
484
|
}, [
|
|
485
485
|
h('div', {
|
|
486
486
|
class: 'vxe-buttons--wrapper'
|
|
487
|
-
}, renderBtns()),
|
|
487
|
+
}, buttonsSlot ? buttonsSlot({ $grid: $xeGrid, $table: $table }) : renderBtns()),
|
|
488
488
|
h('div', {
|
|
489
489
|
class: 'vxe-tools--wrapper'
|
|
490
|
-
}, renderRightTools()),
|
|
490
|
+
}, toolsSlot ? toolsSlot({ $grid: $xeGrid, $table: $table }) : renderRightTools()),
|
|
491
491
|
h('div', {
|
|
492
492
|
class: 'vxe-tools--operate'
|
|
493
493
|
}, [
|
|
@@ -501,15 +501,36 @@ export default defineComponent({
|
|
|
501
501
|
]);
|
|
502
502
|
};
|
|
503
503
|
$xeToolbar.renderVN = renderVN;
|
|
504
|
-
|
|
505
|
-
|
|
504
|
+
nextTick(() => {
|
|
505
|
+
const { refresh } = props;
|
|
506
|
+
const refreshOpts = computeRefreshOpts.value;
|
|
507
|
+
const queryMethod = refreshOpts.queryMethod || refreshOpts.query;
|
|
508
|
+
if (refresh && !$xeGrid && !queryMethod) {
|
|
509
|
+
warnLog('vxe.error.notFunc', ['queryMethod']);
|
|
510
|
+
}
|
|
511
|
+
const customOpts = computeCustomOpts.value;
|
|
512
|
+
if (process.env.NODE_ENV === 'development') {
|
|
513
|
+
if (customOpts.isFooter) {
|
|
514
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
|
|
515
|
+
}
|
|
516
|
+
if (customOpts.showFooter) {
|
|
517
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']);
|
|
518
|
+
}
|
|
519
|
+
if (customOpts.immediate) {
|
|
520
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']);
|
|
521
|
+
}
|
|
522
|
+
if (customOpts.trigger) {
|
|
523
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
if (process.env.NODE_ENV === 'development') {
|
|
506
527
|
if (props.refresh || props.import || props.export || props.print || props.zoom) {
|
|
507
528
|
if (!VxeUIButtonComponent) {
|
|
508
529
|
errLog('vxe.error.reqComp', ['vxe-button']);
|
|
509
530
|
}
|
|
510
531
|
}
|
|
511
|
-
}
|
|
512
|
-
}
|
|
532
|
+
}
|
|
533
|
+
});
|
|
513
534
|
return $xeToolbar;
|
|
514
535
|
},
|
|
515
536
|
render() {
|
package/es/ui/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { getFuncText } from './src/utils';
|
|
3
|
-
export const version = "4.7.
|
|
3
|
+
export const version = "4.7.79";
|
|
4
4
|
VxeUI.version = version;
|
|
5
|
-
VxeUI.tableVersion = "4.7.
|
|
5
|
+
VxeUI.tableVersion = "4.7.79";
|
|
6
6
|
VxeUI.setConfig({
|
|
7
7
|
emptyCell: ' ',
|
|
8
8
|
table: {
|
package/es/ui/src/log.js
CHANGED
package/es/ui/src/vn.js
CHANGED
|
@@ -2,6 +2,29 @@ import XEUtils from 'xe-utils';
|
|
|
2
2
|
export function getOnName(type) {
|
|
3
3
|
return 'on' + type.substring(0, 1).toLocaleUpperCase() + type.substring(1);
|
|
4
4
|
}
|
|
5
|
+
export function getModelEvent(renderOpts) {
|
|
6
|
+
switch (renderOpts.name) {
|
|
7
|
+
case 'input':
|
|
8
|
+
case 'textarea':
|
|
9
|
+
return 'input';
|
|
10
|
+
case 'select':
|
|
11
|
+
return 'change';
|
|
12
|
+
}
|
|
13
|
+
return 'update:modelValue';
|
|
14
|
+
}
|
|
15
|
+
export function getChangeEvent(renderOpts) {
|
|
16
|
+
switch (renderOpts.name) {
|
|
17
|
+
case 'input':
|
|
18
|
+
case 'textarea':
|
|
19
|
+
case 'VxeInput':
|
|
20
|
+
case 'VxeNumberInput':
|
|
21
|
+
case 'VxeTextarea':
|
|
22
|
+
case '$input':
|
|
23
|
+
case '$textarea':
|
|
24
|
+
return 'input';
|
|
25
|
+
}
|
|
26
|
+
return 'change';
|
|
27
|
+
}
|
|
5
28
|
export function getSlotVNs(vns) {
|
|
6
29
|
if (XEUtils.isArray(vns)) {
|
|
7
30
|
return vns;
|
package/lib/grid/src/grid.js
CHANGED
|
@@ -140,28 +140,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
140
140
|
});
|
|
141
141
|
return rest;
|
|
142
142
|
});
|
|
143
|
-
const refMaps = {
|
|
144
|
-
refElem,
|
|
145
|
-
refTable,
|
|
146
|
-
refForm,
|
|
147
|
-
refToolbar,
|
|
148
|
-
refPager
|
|
149
|
-
};
|
|
150
|
-
const computeMaps = {
|
|
151
|
-
computeProxyOpts,
|
|
152
|
-
computePagerOpts,
|
|
153
|
-
computeFormOpts,
|
|
154
|
-
computeToolbarOpts,
|
|
155
|
-
computeZoomOpts
|
|
156
|
-
};
|
|
157
|
-
const $xeGrid = {
|
|
158
|
-
xID,
|
|
159
|
-
props: props,
|
|
160
|
-
context,
|
|
161
|
-
reactData,
|
|
162
|
-
getRefMaps: () => refMaps,
|
|
163
|
-
getComputeMaps: () => computeMaps
|
|
164
|
-
};
|
|
165
143
|
const computeTableProps = (0, _vue.computed)(() => {
|
|
166
144
|
const {
|
|
167
145
|
seqConfig,
|
|
@@ -201,6 +179,37 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
201
179
|
}
|
|
202
180
|
return tableProps;
|
|
203
181
|
});
|
|
182
|
+
const computeCurrLayout = (0, _vue.computed)(() => {
|
|
183
|
+
const {
|
|
184
|
+
layouts
|
|
185
|
+
} = props;
|
|
186
|
+
if (layouts && layouts.length) {
|
|
187
|
+
return layouts;
|
|
188
|
+
}
|
|
189
|
+
return getConfig().grid.layouts || ['Form', 'Toolbar', 'Top', 'Table', 'Bottom', 'Pager'];
|
|
190
|
+
});
|
|
191
|
+
const refMaps = {
|
|
192
|
+
refElem,
|
|
193
|
+
refTable,
|
|
194
|
+
refForm,
|
|
195
|
+
refToolbar,
|
|
196
|
+
refPager
|
|
197
|
+
};
|
|
198
|
+
const computeMaps = {
|
|
199
|
+
computeProxyOpts,
|
|
200
|
+
computePagerOpts,
|
|
201
|
+
computeFormOpts,
|
|
202
|
+
computeToolbarOpts,
|
|
203
|
+
computeZoomOpts
|
|
204
|
+
};
|
|
205
|
+
const $xeGrid = {
|
|
206
|
+
xID,
|
|
207
|
+
props: props,
|
|
208
|
+
context,
|
|
209
|
+
reactData,
|
|
210
|
+
getRefMaps: () => refMaps,
|
|
211
|
+
getComputeMaps: () => computeMaps
|
|
212
|
+
};
|
|
204
213
|
const initToolbar = () => {
|
|
205
214
|
const toolbarOpts = computeToolbarOpts.value;
|
|
206
215
|
if (props.toolbarConfig && (0, _utils.isEnableConf)(toolbarOpts)) {
|
|
@@ -689,13 +698,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
689
698
|
}
|
|
690
699
|
return (0, _vue.createCommentVNode)();
|
|
691
700
|
};
|
|
692
|
-
const defaultLayouts = ['Form', 'Toolbar', 'Top', 'Table', 'Bottom', 'Pager'];
|
|
693
701
|
const renderLayout = () => {
|
|
694
|
-
const {
|
|
695
|
-
layouts
|
|
696
|
-
} = props;
|
|
697
702
|
const vns = [];
|
|
698
|
-
const currLayouts =
|
|
703
|
+
const currLayouts = computeCurrLayout.value;
|
|
699
704
|
currLayouts.forEach(name => {
|
|
700
705
|
switch (name) {
|
|
701
706
|
case 'Form':
|
|
@@ -782,12 +787,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
782
787
|
}
|
|
783
788
|
}
|
|
784
789
|
};
|
|
790
|
+
const handleGlobalKeydownEvent = evnt => {
|
|
791
|
+
const zoomOpts = computeZoomOpts.value;
|
|
792
|
+
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
|
|
793
|
+
if (isEsc && reactData.isZMax && zoomOpts.escRestore !== false) {
|
|
794
|
+
gridPrivateMethods.triggerZoomEvent(evnt);
|
|
795
|
+
}
|
|
796
|
+
};
|
|
797
|
+
const dispatchEvent = (type, params, evnt) => {
|
|
798
|
+
emit(type, createEvent(evnt, {
|
|
799
|
+
$grid: $xeGrid
|
|
800
|
+
}, params));
|
|
801
|
+
};
|
|
785
802
|
const gridMethods = {
|
|
786
|
-
dispatchEvent
|
|
787
|
-
emit(type, createEvent(evnt, {
|
|
788
|
-
$grid: $xeGrid
|
|
789
|
-
}, params));
|
|
790
|
-
},
|
|
803
|
+
dispatchEvent,
|
|
791
804
|
/**
|
|
792
805
|
* 提交指令,支持 code 或 button
|
|
793
806
|
* @param {String/Object} code 字符串或对象
|
|
@@ -1391,13 +1404,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1391
1404
|
(0, _vue.watch)(() => props.proxyConfig, () => {
|
|
1392
1405
|
initProxy();
|
|
1393
1406
|
});
|
|
1394
|
-
const handleGlobalKeydownEvent = evnt => {
|
|
1395
|
-
const zoomOpts = computeZoomOpts.value;
|
|
1396
|
-
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
|
|
1397
|
-
if (isEsc && reactData.isZMax && zoomOpts.escRestore !== false) {
|
|
1398
|
-
gridPrivateMethods.triggerZoomEvent(evnt);
|
|
1399
|
-
}
|
|
1400
|
-
};
|
|
1401
1407
|
hooks.forEach(options => {
|
|
1402
1408
|
const {
|
|
1403
1409
|
setupGrid
|
package/lib/grid/src/grid.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getData","getCheckboxRecords","getParentRow","getRowSeq","getRowById","getRowid","getTableData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","isCheckedByCheckboxRow","isIndeterminateByCheckboxRow","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","setRadioRow","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(G,e){const{slots:i,emit:r}=e;var y=_xeUtils.default.uniqueId();const l=_ui.VxeUI.getComponent("VxeForm"),u=_ui.VxeUI.getComponent("VxePager"),R=useFns.useSize(G)["computeSize"],Q=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),d=(0,_vue.ref)(),W=(0,_vue.ref)(),g=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)(),x=(0,_vue.ref)();var t=e=>{const t={};return e.forEach(o=>{t[o]=(...e)=>{var t=W.value;if(t&&t[o])return t[o](...e)}}),t};const Y=t(tableComponentMethodKeys),J=(tableComponentMethodKeys.forEach(o=>{Y[o]=(...e)=>{var t=W.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},getConfig().grid.proxyConfig,G.proxyConfig))),ie=(0,_vue.computed)(()=>{var e=J.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),X=(0,_vue.computed)(()=>{return J.value.showActiveMsg}),ee=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,G.pagerConfig)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,G.formConfig)),te=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,G.toolbarConfig)),o=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,G.zoomConfig)),w=(0,_vue.computed)(()=>Q.isZMax?{zIndex:Q.tZindex}:null),O=(0,_vue.computed)(()=>{const t={},o=G;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),I={refElem:d,refTable:W,refForm:g,refToolbar:n,refPager:c},k={computeProxyOpts:J,computePagerOpts:ee,computeFormOpts:b,computeToolbarOpts:te,computeZoomOpts:o},oe={xID:y,props:G,context:e,reactData:Q,getRefMaps:()=>I,getComputeMaps:()=>k},P=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=G,{isZMax:n,tableLoading:s,tablePage:i,tableData:l}=Q,u=O.value,d=J.value,g=ee.value,c=Object.assign({},u);return n&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||s,c.data=l,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(i.currentPage-1)*i.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),a=()=>{var e=te.value;G.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=W.value,t=n.value;e&&t&&e.connect(t)})},re=()=>{var e=G["proxyConfig"],t=Q["formData"],o=J.value,r=b.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},s=()=>{var e=Q["tablePage"],t=G["pagerConfig"],o=ee.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},ae=(e,t)=>{var o=J.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):r)||getI18n(t)},ne=(e,t,o)=>{var r=X.value,a=Y.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},U=e=>{var t=G["proxyConfig"],o=Q["tablePage"];const{$event:r,currentPage:a,pageSize:n}=e;var s=J.value;o.currentPage=a,o.pageSize=n,se.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(s)&&se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,r)})},j=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeSortOpts"],r=J.value;e.value.remote&&(Q.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("sort-change",t,t.$event)},T=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeFilterOpts"],r=J.value;e.value.remote&&(Q.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("filter-change",t,t.$event)},D=t=>{var e=G["proxyConfig"],o=J.value;e&&(0,_utils.isEnableConf)(o)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),se.dispatchEvent("form-submit",t,t.$event)},V=e=>{var t=G["proxyConfig"];const o=e["$event"];var r=J.value;t&&(0,_utils.isEnableConf)(r)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)}),se.dispatchEvent("form-reset",e,o)},S=e=>{se.dispatchEvent("form-submit-invalid",e,e.$event)},q=e=>{var t=e["$event"];(0,_vue.nextTick)(()=>Y.recalculate(!0)),se.dispatchEvent("form-toggle-collapse",e,t),se.dispatchEvent("form-collapse",e,t)},_=e=>{var t=Q["isZMax"];return(e?!t:t)&&(Q.isZMax=!t,Q.tZindex<(0,_utils.getLastZIndex)())&&(Q.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>Y.recalculate(!0)).then(()=>Q.isZMax)},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(i[e])return i[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},M=()=>{var{formConfig:e,proxyConfig:t}=G,o=Q["formData"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(a)||i.form){let e=[];if(i.form)e=i.form({$grid:oe});else if(a.items){const n={};if(!a.inited){a.inited=!0;const s=r.beforeItem;r&&s&&a.items.forEach(e=>{s({$grid:oe,item:e})})}a.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(n[e]=i[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:g},Object.assign({},a,{data:t&&(0,_utils.isEnableConf)(r)&&r.form?o:a.data})),{onSubmit:D,onReset:V,onSubmitInvalid:S,onCollapse:q}),n))}return(0,_vue.h)("div",{ref:v,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},F=()=>{var t,o,r=G["toolbarConfig"],a=te.value;if(r&&(0,_utils.isEnableConf)(a)||i.toolbar){let e=[];return i.toolbar?e=i.toolbar({$grid:oe}):(r={},(o=a.slots)&&(t=C(o,"buttons"),o=C(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:n},a),r))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},N=()=>i.top?(0,_vue.h)("div",{ref:p,key:"top",class:"vxe-grid--top-wrapper"},i.top({$grid:oe})):(0,_vue.createCommentVNode)(),L=()=>{var e=i.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},$=()=>{var e=i.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},z=()=>{var e=G["proxyConfig"],t=P.value,o=J.value,r=Object.assign({},H);const a=i.empty,n=i.loading;e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=j),o.filter)&&(r.onFilterChange=T);e={};return a&&(e.empty=()=>a({$grid:oe})),n&&(e.loading=()=>n({$grid:oe})),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:W},t),r),e)])},Z=()=>i.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},i.bottom({$grid:oe})):(0,_vue.createCommentVNode)(),B=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=G,n=J.value,s=ee.value;if(a&&(0,_utils.isEnableConf)(s)||i.pager){let e=[];return i.pager?e=i.pager({$grid:oe}):(a={},(o=s.slots)&&(t=C(o,"left"),o=C(o,"right"),t&&(a.left=t),o)&&(a.right=o),u&&e.push((0,_vue.h)(u,Object.assign(Object.assign(Object.assign({ref:c},s),r&&(0,_utils.isEnableConf)(n)?Q.tablePage:{}),{onPageChange:U}),a))),(0,_vue.h)("div",{ref:x,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},A=["Form","Toolbar","Top","Table","Bottom","Pager"],H={},K=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);H[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=G,o=Q["proxyInited"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items){const n={};a.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r["defaultValue"],_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),n[o]=e}}),Q.formData=n}o||!(Q.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>se.commitProxy("_init")).then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),se={dispatchEvent(e,t,o){r(e,createEvent(o,{$grid:oe},t))},commitProxy(t,...r){const{toolbarConfig:q,pagerConfig:a,editRules:M,validConfig:F}=G,n=Q["tablePage"],N=X.value,o=ie.value;var e=J.value;const L=ee.value;var s=te.value;const{beforeQuery:$,afterQuery:z,beforeDelete:Z,afterDelete:B,beforeSave:A,afterSave:H,ajax:i={}}=e,l=e.response||e.props||{},u=W.value;var d=re();let g=null,c=null;c=_xeUtils.default.isString(t)?(e=s["buttons"],s=q&&(0,_utils.isEnableConf)(s)&&e?_xeUtils.default.findTree(e,e=>e.code===t,{children:"dropdowns"}):null,g=s?s.item:null,t):(g=t).code;var v=g?g.params:null;switch(c){case"insert":return u.insert({});case"insert_edit":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"insert_actived":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"mark_cancel":x=c,f=X.value,m=W.value,(p=m.getCheckboxRecords()).length?(m.togglePendingRow(p),Y.clearCheckboxRow()):f&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:x,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return ne(c,"vxe.grid.removeSelectRecord",()=>u.removeCheckboxRow());case"import":u.importData(v);break;case"open_import":u.openImport(v);break;case"export":u.exportData(v);break;case"open_export":u.openExport(v);break;case"reset_custom":return u.resetColumn(!0);case"_init":case"reload":case"query":{var m=i.query;const _=i.querySuccess,C=i.queryError;if(m){var p="_init"===c,f="reload"===c;let t=[],o=[],e={};if(a&&((p||f)&&(n.currentPage=1),(0,_utils.isEnableConf)(L))&&(e=Object.assign({},n)),p){var x=u.getComputeMaps()["computeSortOpts"];let e=x.value.defaultSort;e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),o=u.getCheckedFilters()}else f?u.clearAll():(t=u.getSortColumns(),o=u.getCheckedFilters());const h={code:c,button:g,isInited:p,isReload:f,$grid:oe,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:d,options:m};return Q.sortData=t,Q.filterData=o,Q.tableLoading=!0,Promise.resolve(($||m)(h,...r)).then(e=>{var t,o;return Q.tableLoading=!1,e?a&&(0,_utils.isEnableConf)(L)?(o=l.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=l.result,Q.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:oe}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=l.list,Q.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):e)||[]):Q.tableData=[],z&&z(h,...r),_&&_(Object.assign(Object.assign({},h),{response:e})),{status:!0}}).catch(e=>(Q.tableLoading=!1,C&&C(Object.assign(Object.assign({},h),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{const E=i.delete,y=i.deleteSuccess,R=i.deleteError;if(E){const w=Y.getCheckboxRecords(),O=w.filter(e=>!u.isInsertByRow(e));var b={removeRecords:O};const I={$grid:oe,code:c,button:g,body:b,form:d,options:E};if(w.length)return ne(c,"vxe.grid.deleteSelectRecord",()=>O.length?(Q.tableLoading=!0,Promise.resolve((Z||E)(I,...r)).then(e=>(Q.tableLoading=!1,u.setPendingRow(O,!1),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.delSuccess"),status:"success"}),B?B(I,...r):se.commitProxy("query"),y&&y(Object.assign(Object.assign({},I),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),R&&R(Object.assign(Object.assign({},I),{response:e})),{status:!1}))):u.remove(w));N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{const k=i.save,P=i.saveSuccess,U=i.saveError;if(k){const j=u.getRecordset(),{insertRecords:T,removeRecords:K,updateRecords:D,pendingRecords:V}=j,S={$grid:oe,code:c,button:g,body:j,form:d,options:k};T.length&&(j.pendingRecords=V.filter(e=>-1===u.findRowIndexOf(T,e))),V.length&&(j.insertRecords=T.filter(e=>-1===u.findRowIndexOf(V,e)));let e=Promise.resolve();return(e=M?u[F&&"full"===F.msgMode?"fullValidate":"validate"](j.insertRecords.concat(D)):e).then(e=>{if(!e)return j.insertRecords.length||K.length||D.length||j.pendingRecords.length?(Q.tableLoading=!0,Promise.resolve((A||k)(S,...r)).then(e=>(Q.tableLoading=!1,u.clearPendingRow(),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.saveSuccess"),status:"success"}),H?H(S,...r):se.commitProxy("query"),P&&P(Object.assign(Object.assign({},S),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),U&&U(Object.assign(Object.assign({},S),{response:e})),{status:!1}))):void(N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var b=commands.get(c);b&&((b=b.tableCommandMethod||b.commandMethod)?b({code:c,button:g,$grid:oe,$table:u},...r):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[c]))}return(0,_vue.nextTick)()},zoom(){return Q.isZMax?se.revert():se.maximize()},isMaximized(){return Q.isZMax},maximize(){return _(!0)},revert(){return _()},getFormData:re,getFormItems(e){var t=b.value,o=G["formConfig"],r=t["items"];const a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=W.value;return G.proxyConfig?(e=Q["sortData"],{data:Q.tableData,filter:Q.filterData,form:re(),sort:e.length?e[0]:{},sorts:e,pager:Q.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},h=("development"===process.env.NODE_ENV&&(se.loadColumn=e=>{var t=W.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},se.reloadColumn=e=>(Y.clearAll(),se.loadColumn(e))),{extendTableMethods:t,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=G["height"],t=Q["isZMax"],o=d.value,r=v.value,a=m.value,n=p.value,s=f.value,i=x.value;return(t||"auto"!==e&&"100%"!==e?0:(0,_dom.getPaddingTopBottomSize)(o.parentNode))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)},getParentHeight(){var e=d.value;return e?(Q.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-h.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){const o=e["code"];return se.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&se.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){se.zoom(),se.dispatchEvent("zoom",{type:Q.isZMax?"max":"revert"},e)}}),E=(Object.assign(oe,Y,se,h),(0,_vue.ref)(0)),le=((0,_vue.watch)(()=>G.columns?G.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>G.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>oe.loadColumn(G.columns||[]))}),(0,_vue.watch)(()=>G.toolbarConfig,()=>{a()}),(0,_vue.watch)(()=>G.pagerConfig,()=>{s()}),(0,_vue.watch)(()=>G.proxyConfig,()=>{K()}),e=>{var t=o.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&Q.isZMax&&!1!==t.escRestore&&h.triggerZoomEvent(e)});hooks.forEach(e=>{var e=e["setupGrid"];e&&(e=e(oe))&&_xeUtils.default.isObject(e)&&Object.assign(oe,e)}),s(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=G["columns"];e&&e.length&&oe.loadColumn(e),a()}),globalEvents.on(oe,"keydown",le)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(oe,"keydown")}),(0,_vue.nextTick)(()=>{"development"===process.env.NODE_ENV&&(G.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),G.pagerConfig)&&!u&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),K()});return oe.renderVN=()=>{var e=R.value,t=w.value;return(0,_vue.h)("div",{ref:d,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!G.animat,"is--round":G.round,"is--maximize":Q.isZMax,"is--loading":G.loading||Q.tableLoading}],style:t},(()=>{var e=G["layouts"];const t=[];return(e&&e.length?e:getConfig().grid.layouts||A).forEach(e=>{switch(e){case"Form":t.push(M());break;case"Toolbar":t.push(F());break;case"Top":t.push(N());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[L(),z(),$()]));break;case"Bottom":t.push(Z());break;case"Pager":t.push(B());break;default:"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t})())},(0,_vue.provide)("$xeGrid",oe),oe},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getData","getCheckboxRecords","getParentRow","getRowSeq","getRowById","getRowid","getTableData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","isCheckedByCheckboxRow","isIndeterminateByCheckboxRow","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","setRadioRow","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(G,e){const{slots:i,emit:r}=e;var y=_xeUtils.default.uniqueId();const l=_ui.VxeUI.getComponent("VxeForm"),u=_ui.VxeUI.getComponent("VxePager"),R=useFns.useSize(G)["computeSize"],Q=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),d=(0,_vue.ref)(),W=(0,_vue.ref)(),g=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)(),x=(0,_vue.ref)();var t=e=>{const t={};return e.forEach(o=>{t[o]=(...e)=>{var t=W.value;if(t&&t[o])return t[o](...e)}}),t};const Y=t(tableComponentMethodKeys),J=(tableComponentMethodKeys.forEach(o=>{Y[o]=(...e)=>{var t=W.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},getConfig().grid.proxyConfig,G.proxyConfig))),ie=(0,_vue.computed)(()=>{var e=J.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),X=(0,_vue.computed)(()=>{return J.value.showActiveMsg}),ee=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,G.pagerConfig)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,G.formConfig)),te=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,G.toolbarConfig)),o=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,G.zoomConfig)),w=(0,_vue.computed)(()=>Q.isZMax?{zIndex:Q.tZindex}:null),O=(0,_vue.computed)(()=>{const t={},o=G;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=G,{isZMax:n,tableLoading:s,tablePage:i,tableData:l}=Q,u=O.value,d=J.value,g=ee.value,c=Object.assign({},u);return n&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||s,c.data=l,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(i.currentPage-1)*i.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),k=(0,_vue.computed)(()=>{var e=G["layouts"];return e&&e.length?e:getConfig().grid.layouts||["Form","Toolbar","Top","Table","Bottom","Pager"]}),P={refElem:d,refTable:W,refForm:g,refToolbar:n,refPager:c},U={computeProxyOpts:J,computePagerOpts:ee,computeFormOpts:b,computeToolbarOpts:te,computeZoomOpts:o},oe={xID:y,props:G,context:e,reactData:Q,getRefMaps:()=>P,getComputeMaps:()=>U},a=()=>{var e=te.value;G.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=W.value,t=n.value;e&&t&&e.connect(t)})},re=()=>{var e=G["proxyConfig"],t=Q["formData"],o=J.value,r=b.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},s=()=>{var e=Q["tablePage"],t=G["pagerConfig"],o=ee.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},ae=(e,t)=>{var o=J.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):r)||getI18n(t)},ne=(e,t,o)=>{var r=X.value,a=Y.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},j=e=>{var t=G["proxyConfig"],o=Q["tablePage"];const{$event:r,currentPage:a,pageSize:n}=e;var s=J.value;o.currentPage=a,o.pageSize=n,se.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(s)&&se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,r)})},T=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeSortOpts"],r=J.value;e.value.remote&&(Q.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("sort-change",t,t.$event)},D=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeFilterOpts"],r=J.value;e.value.remote&&(Q.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("filter-change",t,t.$event)},V=t=>{var e=G["proxyConfig"],o=J.value;e&&(0,_utils.isEnableConf)(o)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),se.dispatchEvent("form-submit",t,t.$event)},S=e=>{var t=G["proxyConfig"];const o=e["$event"];var r=J.value;t&&(0,_utils.isEnableConf)(r)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)}),se.dispatchEvent("form-reset",e,o)},q=e=>{se.dispatchEvent("form-submit-invalid",e,e.$event)},M=e=>{var t=e["$event"];(0,_vue.nextTick)(()=>Y.recalculate(!0)),se.dispatchEvent("form-toggle-collapse",e,t),se.dispatchEvent("form-collapse",e,t)},_=e=>{var t=Q["isZMax"];return(e?!t:t)&&(Q.isZMax=!t,Q.tZindex<(0,_utils.getLastZIndex)())&&(Q.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>Y.recalculate(!0)).then(()=>Q.isZMax)},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(i[e])return i[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},F=()=>{var{formConfig:e,proxyConfig:t}=G,o=Q["formData"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(a)||i.form){let e=[];if(i.form)e=i.form({$grid:oe});else if(a.items){const n={};if(!a.inited){a.inited=!0;const s=r.beforeItem;r&&s&&a.items.forEach(e=>{s({$grid:oe,item:e})})}a.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(n[e]=i[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:g},Object.assign({},a,{data:t&&(0,_utils.isEnableConf)(r)&&r.form?o:a.data})),{onSubmit:V,onReset:S,onSubmitInvalid:q,onCollapse:M}),n))}return(0,_vue.h)("div",{ref:v,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},N=()=>{var t,o,r=G["toolbarConfig"],a=te.value;if(r&&(0,_utils.isEnableConf)(a)||i.toolbar){let e=[];return i.toolbar?e=i.toolbar({$grid:oe}):(r={},(o=a.slots)&&(t=C(o,"buttons"),o=C(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:n},a),r))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},L=()=>i.top?(0,_vue.h)("div",{ref:p,key:"top",class:"vxe-grid--top-wrapper"},i.top({$grid:oe})):(0,_vue.createCommentVNode)(),$=()=>{var e=i.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},z=()=>{var e=i.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},Z=()=>{var e=G["proxyConfig"],t=I.value,o=J.value,r=Object.assign({},H);const a=i.empty,n=i.loading;e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=T),o.filter)&&(r.onFilterChange=D);e={};return a&&(e.empty=()=>a({$grid:oe})),n&&(e.loading=()=>n({$grid:oe})),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:W},t),r),e)])},B=()=>i.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},i.bottom({$grid:oe})):(0,_vue.createCommentVNode)(),A=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=G,n=J.value,s=ee.value;if(a&&(0,_utils.isEnableConf)(s)||i.pager){let e=[];return i.pager?e=i.pager({$grid:oe}):(a={},(o=s.slots)&&(t=C(o,"left"),o=C(o,"right"),t&&(a.left=t),o)&&(a.right=o),u&&e.push((0,_vue.h)(u,Object.assign(Object.assign(Object.assign({ref:c},s),r&&(0,_utils.isEnableConf)(n)?Q.tablePage:{}),{onPageChange:j}),a))),(0,_vue.h)("div",{ref:x,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},H={},K=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);H[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=G,o=Q["proxyInited"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items){const n={};a.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r["defaultValue"],_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),n[o]=e}}),Q.formData=n}o||!(Q.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>se.commitProxy("_init")).then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),le=e=>{var t=o.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&Q.isZMax&&!1!==t.escRestore&&h.triggerZoomEvent(e)};const se={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:oe},t))},commitProxy(t,...r){const{toolbarConfig:q,pagerConfig:a,editRules:M,validConfig:F}=G,n=Q["tablePage"],N=X.value,o=ie.value;var e=J.value;const L=ee.value;var s=te.value;const{beforeQuery:$,afterQuery:z,beforeDelete:Z,afterDelete:B,beforeSave:A,afterSave:H,ajax:i={}}=e,l=e.response||e.props||{},u=W.value;var d=re();let g=null,c=null;c=_xeUtils.default.isString(t)?(e=s["buttons"],s=q&&(0,_utils.isEnableConf)(s)&&e?_xeUtils.default.findTree(e,e=>e.code===t,{children:"dropdowns"}):null,g=s?s.item:null,t):(g=t).code;var v=g?g.params:null;switch(c){case"insert":return u.insert({});case"insert_edit":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"insert_actived":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"mark_cancel":x=c,f=X.value,m=W.value,(p=m.getCheckboxRecords()).length?(m.togglePendingRow(p),Y.clearCheckboxRow()):f&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:x,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return ne(c,"vxe.grid.removeSelectRecord",()=>u.removeCheckboxRow());case"import":u.importData(v);break;case"open_import":u.openImport(v);break;case"export":u.exportData(v);break;case"open_export":u.openExport(v);break;case"reset_custom":return u.resetColumn(!0);case"_init":case"reload":case"query":{var m=i.query;const _=i.querySuccess,C=i.queryError;if(m){var p="_init"===c,f="reload"===c;let t=[],o=[],e={};if(a&&((p||f)&&(n.currentPage=1),(0,_utils.isEnableConf)(L))&&(e=Object.assign({},n)),p){var x=u.getComputeMaps()["computeSortOpts"];let e=x.value.defaultSort;e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),o=u.getCheckedFilters()}else f?u.clearAll():(t=u.getSortColumns(),o=u.getCheckedFilters());const h={code:c,button:g,isInited:p,isReload:f,$grid:oe,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:d,options:m};return Q.sortData=t,Q.filterData=o,Q.tableLoading=!0,Promise.resolve(($||m)(h,...r)).then(e=>{var t,o;return Q.tableLoading=!1,e?a&&(0,_utils.isEnableConf)(L)?(o=l.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=l.result,Q.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:oe}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=l.list,Q.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):e)||[]):Q.tableData=[],z&&z(h,...r),_&&_(Object.assign(Object.assign({},h),{response:e})),{status:!0}}).catch(e=>(Q.tableLoading=!1,C&&C(Object.assign(Object.assign({},h),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{const E=i.delete,y=i.deleteSuccess,R=i.deleteError;if(E){const w=Y.getCheckboxRecords(),O=w.filter(e=>!u.isInsertByRow(e));var b={removeRecords:O};const I={$grid:oe,code:c,button:g,body:b,form:d,options:E};if(w.length)return ne(c,"vxe.grid.deleteSelectRecord",()=>O.length?(Q.tableLoading=!0,Promise.resolve((Z||E)(I,...r)).then(e=>(Q.tableLoading=!1,u.setPendingRow(O,!1),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.delSuccess"),status:"success"}),B?B(I,...r):se.commitProxy("query"),y&&y(Object.assign(Object.assign({},I),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),R&&R(Object.assign(Object.assign({},I),{response:e})),{status:!1}))):u.remove(w));N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{const k=i.save,P=i.saveSuccess,U=i.saveError;if(k){const j=u.getRecordset(),{insertRecords:T,removeRecords:K,updateRecords:D,pendingRecords:V}=j,S={$grid:oe,code:c,button:g,body:j,form:d,options:k};T.length&&(j.pendingRecords=V.filter(e=>-1===u.findRowIndexOf(T,e))),V.length&&(j.insertRecords=T.filter(e=>-1===u.findRowIndexOf(V,e)));let e=Promise.resolve();return(e=M?u[F&&"full"===F.msgMode?"fullValidate":"validate"](j.insertRecords.concat(D)):e).then(e=>{if(!e)return j.insertRecords.length||K.length||D.length||j.pendingRecords.length?(Q.tableLoading=!0,Promise.resolve((A||k)(S,...r)).then(e=>(Q.tableLoading=!1,u.clearPendingRow(),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.saveSuccess"),status:"success"}),H?H(S,...r):se.commitProxy("query"),P&&P(Object.assign(Object.assign({},S),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),U&&U(Object.assign(Object.assign({},S),{response:e})),{status:!1}))):void(N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var b=commands.get(c);b&&((b=b.tableCommandMethod||b.commandMethod)?b({code:c,button:g,$grid:oe,$table:u},...r):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[c]))}return(0,_vue.nextTick)()},zoom(){return Q.isZMax?se.revert():se.maximize()},isMaximized(){return Q.isZMax},maximize(){return _(!0)},revert(){return _()},getFormData:re,getFormItems(e){var t=b.value,o=G["formConfig"],r=t["items"];const a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=W.value;return G.proxyConfig?(e=Q["sortData"],{data:Q.tableData,filter:Q.filterData,form:re(),sort:e.length?e[0]:{},sorts:e,pager:Q.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},h=("development"===process.env.NODE_ENV&&(se.loadColumn=e=>{var t=W.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},se.reloadColumn=e=>(Y.clearAll(),se.loadColumn(e))),{extendTableMethods:t,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=G["height"],t=Q["isZMax"],o=d.value,r=v.value,a=m.value,n=p.value,s=f.value,i=x.value;return(t||"auto"!==e&&"100%"!==e?0:(0,_dom.getPaddingTopBottomSize)(o.parentNode))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)},getParentHeight(){var e=d.value;return e?(Q.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-h.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){const o=e["code"];return se.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&se.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){se.zoom(),se.dispatchEvent("zoom",{type:Q.isZMax?"max":"revert"},e)}}),E=(Object.assign(oe,Y,se,h),(0,_vue.ref)(0));(0,_vue.watch)(()=>G.columns?G.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>G.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>oe.loadColumn(G.columns||[]))}),(0,_vue.watch)(()=>G.toolbarConfig,()=>{a()}),(0,_vue.watch)(()=>G.pagerConfig,()=>{s()}),(0,_vue.watch)(()=>G.proxyConfig,()=>{K()}),hooks.forEach(e=>{var e=e["setupGrid"];e&&(e=e(oe))&&_xeUtils.default.isObject(e)&&Object.assign(oe,e)}),s(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=G["columns"];e&&e.length&&oe.loadColumn(e),a()}),globalEvents.on(oe,"keydown",le)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(oe,"keydown")}),(0,_vue.nextTick)(()=>{"development"===process.env.NODE_ENV&&(G.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),G.pagerConfig)&&!u&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),K()});return oe.renderVN=()=>{var e=R.value,t=w.value;return(0,_vue.h)("div",{ref:d,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!G.animat,"is--round":G.round,"is--maximize":Q.isZMax,"is--loading":G.loading||Q.tableLoading}],style:t},(()=>{const t=[];return k.value.forEach(e=>{switch(e){case"Form":t.push(F());break;case"Toolbar":t.push(N());break;case"Top":t.push(L());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[$(),Z(),z()]));break;case"Bottom":t.push(B());break;case"Pager":t.push(A());break;default:"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t})())},(0,_vue.provide)("$xeGrid",oe),oe},render(){return this.renderVN()}});
|