vxe-table 4.13.45 → 4.13.47
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/es/grid/src/grid.js +1 -1
- package/es/locale/lang/ar-EG.js +14 -1
- package/es/locale/lang/de-DE.js +14 -1
- package/es/locale/lang/en-US.js +14 -1
- package/es/locale/lang/es-ES.js +14 -1
- package/es/locale/lang/fr-FR.js +14 -1
- package/es/locale/lang/hu-HU.js +14 -1
- package/es/locale/lang/hy-AM.js +14 -1
- package/es/locale/lang/id-ID.js +14 -1
- package/es/locale/lang/it-IT.js +14 -1
- package/es/locale/lang/ja-JP.js +14 -1
- package/es/locale/lang/ko-KR.js +14 -1
- package/es/locale/lang/ms-MY.js +14 -1
- package/es/locale/lang/nb-NO.js +14 -1
- package/es/locale/lang/pt-BR.js +14 -1
- package/es/locale/lang/ru-RU.js +14 -1
- package/es/locale/lang/th-TH.js +14 -1
- package/es/locale/lang/ug-CN.js +14 -1
- package/es/locale/lang/uk-UA.js +14 -1
- package/es/locale/lang/uz-UZ.js +14 -1
- package/es/locale/lang/vi-VN.js +14 -1
- package/es/locale/lang/zh-CHT.js +15 -2
- package/es/locale/lang/zh-CN.js +14 -1
- package/es/style.css +1 -1
- package/es/table/module/custom/hook.js +20 -5
- package/es/table/module/custom/panel.js +27 -13
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/table.js +69 -9
- package/es/ui/index.js +8 -5
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +84 -40
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +14 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/ar-EG.umd.js +14 -1
- package/lib/locale/lang/de-DE.js +14 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +14 -1
- package/lib/locale/lang/en-US.js +14 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +14 -1
- package/lib/locale/lang/es-ES.js +14 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +14 -1
- package/lib/locale/lang/fr-FR.js +14 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +14 -1
- package/lib/locale/lang/hu-HU.js +14 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +14 -1
- package/lib/locale/lang/hy-AM.js +14 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/hy-AM.umd.js +14 -1
- package/lib/locale/lang/id-ID.js +14 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/id-ID.umd.js +14 -1
- package/lib/locale/lang/it-IT.js +14 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/it-IT.umd.js +14 -1
- package/lib/locale/lang/ja-JP.js +14 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +14 -1
- package/lib/locale/lang/ko-KR.js +14 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +14 -1
- package/lib/locale/lang/ms-MY.js +14 -1
- package/lib/locale/lang/ms-MY.min.js +1 -1
- package/lib/locale/lang/ms-MY.umd.js +14 -1
- package/lib/locale/lang/nb-NO.js +14 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/nb-NO.umd.js +14 -1
- package/lib/locale/lang/pt-BR.js +14 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +14 -1
- package/lib/locale/lang/ru-RU.js +14 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +14 -1
- package/lib/locale/lang/th-TH.js +14 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/th-TH.umd.js +14 -1
- package/lib/locale/lang/ug-CN.js +14 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/ug-CN.umd.js +14 -1
- package/lib/locale/lang/uk-UA.js +14 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +14 -1
- package/lib/locale/lang/uz-UZ.js +14 -1
- package/lib/locale/lang/uz-UZ.min.js +1 -1
- package/lib/locale/lang/uz-UZ.umd.js +14 -1
- package/lib/locale/lang/vi-VN.js +14 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/vi-VN.umd.js +14 -1
- package/lib/locale/lang/zh-CHT.js +15 -2
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +15 -2
- package/lib/locale/lang/zh-CN.js +14 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +14 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/hook.js +20 -5
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/custom/panel.js +26 -14
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/table.js +13 -13
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +8 -5
- 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/package.json +1 -1
- package/packages/grid/src/grid.ts +1 -1
- package/packages/locale/lang/ar-EG.ts +14 -1
- package/packages/locale/lang/de-DE.ts +14 -1
- package/packages/locale/lang/en-US.ts +14 -1
- package/packages/locale/lang/es-ES.ts +14 -1
- package/packages/locale/lang/fr-FR.ts +14 -1
- package/packages/locale/lang/hu-HU.ts +14 -1
- package/packages/locale/lang/hy-AM.ts +14 -1
- package/packages/locale/lang/id-ID.ts +14 -1
- package/packages/locale/lang/it-IT.ts +14 -1
- package/packages/locale/lang/ja-JP.ts +14 -1
- package/packages/locale/lang/ko-KR.ts +14 -1
- package/packages/locale/lang/ms-MY.ts +14 -1
- package/packages/locale/lang/nb-NO.ts +14 -1
- package/packages/locale/lang/pt-BR.ts +14 -1
- package/packages/locale/lang/ru-RU.ts +14 -1
- package/packages/locale/lang/th-TH.ts +14 -1
- package/packages/locale/lang/ug-CN.ts +14 -1
- package/packages/locale/lang/uk-UA.ts +14 -1
- package/packages/locale/lang/uz-UZ.ts +14 -1
- package/packages/locale/lang/vi-VN.ts +14 -1
- package/packages/locale/lang/zh-CHT.ts +15 -2
- package/packages/locale/lang/zh-CN.ts +14 -1
- package/packages/table/module/custom/hook.ts +18 -5
- package/packages/table/module/custom/panel.ts +26 -13
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/table.ts +75 -13
- package/packages/ui/index.ts +7 -4
- /package/es/{iconfont.1750641793236.ttf → iconfont.1750732182259.ttf} +0 -0
- /package/es/{iconfont.1750641793236.woff → iconfont.1750732182259.woff} +0 -0
- /package/es/{iconfont.1750641793236.woff2 → iconfont.1750732182259.woff2} +0 -0
- /package/lib/{iconfont.1750641793236.ttf → iconfont.1750732182259.ttf} +0 -0
- /package/lib/{iconfont.1750641793236.woff → iconfont.1750732182259.woff} +0 -0
- /package/lib/{iconfont.1750641793236.woff2 → iconfont.1750732182259.woff2} +0 -0
|
@@ -70,7 +70,7 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
70
70
|
const saveCustom = () => {
|
|
71
71
|
const { customColumnList, aggHandleFields, rowGroupList } = reactData;
|
|
72
72
|
const customOpts = computeCustomOpts.value;
|
|
73
|
-
const { allowVisible, allowSort, allowFixed, allowResizable } = customOpts;
|
|
73
|
+
const { allowVisible, allowSort, allowFixed, allowResizable, allowGroup, allowValues } = customOpts;
|
|
74
74
|
XEUtils.eachTree(customColumnList, (column, index, items, path, parentColumn) => {
|
|
75
75
|
if (parentColumn) {
|
|
76
76
|
// 更新子列信息
|
|
@@ -96,6 +96,9 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
96
96
|
if (allowVisible) {
|
|
97
97
|
column.visible = column.renderVisible;
|
|
98
98
|
}
|
|
99
|
+
if (allowGroup && allowValues) {
|
|
100
|
+
column.aggFunc = column.renderAggFn;
|
|
101
|
+
}
|
|
99
102
|
});
|
|
100
103
|
reactData.isCustomStatus = true;
|
|
101
104
|
reactData.isDragColMove = true;
|
|
@@ -103,9 +106,9 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
103
106
|
reactData.isDragColMove = false;
|
|
104
107
|
}, 1000);
|
|
105
108
|
return $xeTable.saveCustomStore('confirm').then(() => {
|
|
106
|
-
if ($xeTable.handlePivotTableAggregateData) {
|
|
109
|
+
if (allowGroup && allowValues && $xeTable.handlePivotTableAggregateData) {
|
|
107
110
|
if (rowGroupList.length !== aggHandleFields.length || rowGroupList.some((conf, i) => conf.field !== aggHandleFields[i])) {
|
|
108
|
-
//
|
|
111
|
+
// 更新数据分组
|
|
109
112
|
if (aggHandleFields.length) {
|
|
110
113
|
$xeTable.setRowGroups(aggHandleFields);
|
|
111
114
|
}
|
|
@@ -113,6 +116,10 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
113
116
|
$xeTable.clearRowGroups();
|
|
114
117
|
}
|
|
115
118
|
}
|
|
119
|
+
else {
|
|
120
|
+
// 更新聚合函数
|
|
121
|
+
$xeTable.handleUpdateAggData();
|
|
122
|
+
}
|
|
116
123
|
}
|
|
117
124
|
});
|
|
118
125
|
};
|
|
@@ -196,7 +203,8 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
196
203
|
visible: true,
|
|
197
204
|
resizable: options === true,
|
|
198
205
|
fixed: options === true,
|
|
199
|
-
sort: options === true
|
|
206
|
+
sort: options === true,
|
|
207
|
+
aggFunc: options === true
|
|
200
208
|
}, options);
|
|
201
209
|
XEUtils.eachTree(collectColumn, (column) => {
|
|
202
210
|
if (opts.resizable) {
|
|
@@ -211,12 +219,16 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
211
219
|
if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
|
|
212
220
|
column.visible = column.defaultVisible;
|
|
213
221
|
}
|
|
222
|
+
if (opts.aggFunc) {
|
|
223
|
+
column.aggFunc = column.defaultAggFunc;
|
|
224
|
+
column.renderAggFn = column.defaultAggFunc;
|
|
225
|
+
}
|
|
214
226
|
column.renderResizeWidth = column.renderWidth;
|
|
215
227
|
});
|
|
216
228
|
reactData.isCustomStatus = false;
|
|
217
229
|
$xeTable.saveCustomStore('reset');
|
|
218
230
|
return $xeTable.handleCustom().then(() => {
|
|
219
|
-
if ($xeTable.handlePivotTableAggregateData) {
|
|
231
|
+
if (opts.aggFunc && $xeTable.handlePivotTableAggregateData) {
|
|
220
232
|
const rowGroupFields = computeRowGroupFields.value;
|
|
221
233
|
if (rowGroupFields ? rowGroupFields.length : rowGroupList.length) {
|
|
222
234
|
if (rowGroupFields && rowGroupFields.length) {
|
|
@@ -226,6 +238,9 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
226
238
|
$xeTable.clearRowGroups();
|
|
227
239
|
}
|
|
228
240
|
}
|
|
241
|
+
else {
|
|
242
|
+
$xeTable.handleUpdateAggData();
|
|
243
|
+
}
|
|
229
244
|
}
|
|
230
245
|
});
|
|
231
246
|
},
|
|
@@ -31,12 +31,14 @@ export default defineVxeComponent({
|
|
|
31
31
|
const refDragTipElem = ref();
|
|
32
32
|
const customPanelReactData = reactive({
|
|
33
33
|
dragCol: null,
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
dragGroupField: null,
|
|
35
|
+
dragAggFnCol: null,
|
|
36
36
|
dragTipText: ''
|
|
37
37
|
});
|
|
38
38
|
const customPanelInternalData = {
|
|
39
39
|
// prevDragCol: undefined,
|
|
40
|
+
// prevDragGroupField: undefined,
|
|
41
|
+
// prevDragAggFnColid: undefined,
|
|
40
42
|
// prevDragToChild: false,
|
|
41
43
|
// prevDragPos: null
|
|
42
44
|
};
|
|
@@ -208,8 +210,8 @@ export default defineVxeComponent({
|
|
|
208
210
|
const { prevDragToChild } = customPanelInternalData;
|
|
209
211
|
const bodyWrapperRect = bodyWrapperElem.getBoundingClientRect();
|
|
210
212
|
const customBodyRect = customBodyElem.getBoundingClientRect();
|
|
213
|
+
const dragLineEl = refDragLineElem.value;
|
|
211
214
|
if (optEl) {
|
|
212
|
-
const dragLineEl = refDragLineElem.value;
|
|
213
215
|
if (dragLineEl) {
|
|
214
216
|
if (showLine) {
|
|
215
217
|
const optRect = optEl.getBoundingClientRect();
|
|
@@ -226,6 +228,11 @@ export default defineVxeComponent({
|
|
|
226
228
|
}
|
|
227
229
|
}
|
|
228
230
|
}
|
|
231
|
+
else {
|
|
232
|
+
if (dragLineEl) {
|
|
233
|
+
dragLineEl.style.display = 'node';
|
|
234
|
+
}
|
|
235
|
+
}
|
|
229
236
|
const dragTipEl = refDragTipElem.value;
|
|
230
237
|
if (dragTipEl) {
|
|
231
238
|
dragTipEl.style.display = 'block';
|
|
@@ -270,6 +277,8 @@ export default defineVxeComponent({
|
|
|
270
277
|
const column = $xeTable.getColumnById(colid);
|
|
271
278
|
trEl.draggable = true;
|
|
272
279
|
customPanelReactData.dragCol = column;
|
|
280
|
+
customPanelReactData.dragGroupField = null;
|
|
281
|
+
customPanelReactData.dragAggFnCol = null;
|
|
273
282
|
updateColDropTipContent();
|
|
274
283
|
addClass(trEl, 'active--drag-origin');
|
|
275
284
|
};
|
|
@@ -281,14 +290,16 @@ export default defineVxeComponent({
|
|
|
281
290
|
hideDropTip();
|
|
282
291
|
trEl.draggable = false;
|
|
283
292
|
customPanelReactData.dragCol = null;
|
|
293
|
+
customPanelReactData.dragGroupField = null;
|
|
294
|
+
customPanelReactData.dragAggFnCol = null;
|
|
284
295
|
removeClass(trEl, 'active--drag-origin');
|
|
285
296
|
};
|
|
286
297
|
const sortDragstartEvent = (evnt) => {
|
|
287
298
|
if (evnt.dataTransfer) {
|
|
288
299
|
evnt.dataTransfer.setDragImage(getTpImg(), 0, 0);
|
|
289
300
|
}
|
|
290
|
-
|
|
291
|
-
|
|
301
|
+
customPanelInternalData.prevDragGroupField = null;
|
|
302
|
+
customPanelInternalData.prevDragAggFnColid = null;
|
|
292
303
|
};
|
|
293
304
|
const sortDragendEvent = (evnt) => {
|
|
294
305
|
const { mouseConfig } = tableProps;
|
|
@@ -299,10 +310,10 @@ export default defineVxeComponent({
|
|
|
299
310
|
const trEl = evnt.currentTarget;
|
|
300
311
|
const columnDragOpts = computeColumnDragOpts.value;
|
|
301
312
|
const { isCrossDrag, isSelfToChildDrag, isToChildDrag, dragEndMethod } = columnDragOpts;
|
|
302
|
-
const { dragCol
|
|
303
|
-
const { prevDragCol, prevDragPos, prevDragToChild } = customPanelInternalData;
|
|
313
|
+
const { dragCol } = customPanelReactData;
|
|
314
|
+
const { prevDragCol, prevDragGroupField, prevDragAggFnColid, prevDragPos, prevDragToChild } = customPanelInternalData;
|
|
304
315
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
305
|
-
if (
|
|
316
|
+
if (prevDragGroupField || prevDragAggFnColid) {
|
|
306
317
|
if ($xeTable.handlePivotTableAggregatePanelDragendEvent) {
|
|
307
318
|
$xeTable.handlePivotTableAggregatePanelDragendEvent(evnt);
|
|
308
319
|
}
|
|
@@ -461,8 +472,10 @@ export default defineVxeComponent({
|
|
|
461
472
|
}
|
|
462
473
|
hideDropTip();
|
|
463
474
|
customPanelReactData.dragCol = null;
|
|
464
|
-
customPanelReactData.
|
|
465
|
-
customPanelReactData.
|
|
475
|
+
customPanelReactData.dragGroupField = null;
|
|
476
|
+
customPanelReactData.dragAggFnCol = null;
|
|
477
|
+
customPanelInternalData.prevDragGroupField = null;
|
|
478
|
+
customPanelInternalData.prevDragAggFnColid = null;
|
|
466
479
|
trEl.draggable = false;
|
|
467
480
|
trEl.removeAttribute('drag-pos');
|
|
468
481
|
removeClass(trEl, 'active--drag-target');
|
|
@@ -478,14 +491,15 @@ export default defineVxeComponent({
|
|
|
478
491
|
const colid = optEl.getAttribute('colid');
|
|
479
492
|
const column = $xeTable.getColumnById(colid);
|
|
480
493
|
const { dragCol } = customPanelReactData;
|
|
481
|
-
|
|
482
|
-
|
|
494
|
+
customPanelInternalData.prevDragGroupField = null;
|
|
495
|
+
customPanelInternalData.prevDragAggFnColid = null;
|
|
483
496
|
// 是否移入有效列
|
|
484
497
|
if (column && (isCrossDrag || column.level === 1)) {
|
|
485
498
|
evnt.preventDefault();
|
|
486
499
|
const offsetY = evnt.clientY - optEl.getBoundingClientRect().y;
|
|
487
500
|
const dragPos = offsetY < optEl.clientHeight / 2 ? 'top' : 'bottom';
|
|
488
|
-
if (
|
|
501
|
+
if (!dragCol ||
|
|
502
|
+
(dragCol && dragCol.id === column.id) ||
|
|
489
503
|
(!isCrossDrag && column.level > 1) ||
|
|
490
504
|
(!immediate && column.level > 1) ||
|
|
491
505
|
column.renderFixed) {
|
package/es/table/src/table.js
CHANGED
|
@@ -235,6 +235,7 @@ export default defineVxeComponent({
|
|
|
235
235
|
isRowGroupStatus: false,
|
|
236
236
|
rowGroupList: [],
|
|
237
237
|
aggHandleFields: [],
|
|
238
|
+
aggHandleAggColumns: [],
|
|
238
239
|
rowGroupExpandedFlag: 1,
|
|
239
240
|
rowExpandedFlag: 1,
|
|
240
241
|
treeExpandedFlag: 1,
|
|
@@ -1431,7 +1432,8 @@ export default defineVxeComponent({
|
|
|
1431
1432
|
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom);
|
|
1432
1433
|
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom);
|
|
1433
1434
|
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom);
|
|
1434
|
-
|
|
1435
|
+
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom);
|
|
1436
|
+
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggFunc)) {
|
|
1435
1437
|
if (!tableId) {
|
|
1436
1438
|
errLog('vxe.error.reqProp', ['id']);
|
|
1437
1439
|
return;
|
|
@@ -3002,6 +3004,16 @@ export default defineVxeComponent({
|
|
|
3002
3004
|
}
|
|
3003
3005
|
});
|
|
3004
3006
|
};
|
|
3007
|
+
const handleUpdateAggValues = () => {
|
|
3008
|
+
const { visibleColumn } = internalData;
|
|
3009
|
+
const aggCols = [];
|
|
3010
|
+
visibleColumn.forEach(column => {
|
|
3011
|
+
if (column.aggFunc) {
|
|
3012
|
+
aggCols.push(column);
|
|
3013
|
+
}
|
|
3014
|
+
});
|
|
3015
|
+
reactData.aggHandleAggColumns = aggCols;
|
|
3016
|
+
};
|
|
3005
3017
|
const handleUpdateRowGroup = (groupFields) => {
|
|
3006
3018
|
const aggFields = [];
|
|
3007
3019
|
const aggConfs = [];
|
|
@@ -3015,6 +3027,7 @@ export default defineVxeComponent({
|
|
|
3015
3027
|
}
|
|
3016
3028
|
reactData.rowGroupList = aggConfs;
|
|
3017
3029
|
reactData.aggHandleFields = aggFields;
|
|
3030
|
+
handleUpdateAggValues();
|
|
3018
3031
|
};
|
|
3019
3032
|
const handleeGroupSummary = (aggList) => {
|
|
3020
3033
|
const aggregateOpts = computeAggregateOpts.value;
|
|
@@ -3497,6 +3510,7 @@ export default defineVxeComponent({
|
|
|
3497
3510
|
}
|
|
3498
3511
|
});
|
|
3499
3512
|
handleTableColumn();
|
|
3513
|
+
handleUpdateAggValues();
|
|
3500
3514
|
if (isReset) {
|
|
3501
3515
|
updateColumnOffsetLeft();
|
|
3502
3516
|
return $xeTable.updateFooter().then(() => {
|
|
@@ -6079,12 +6093,25 @@ export default defineVxeComponent({
|
|
|
6079
6093
|
},
|
|
6080
6094
|
setRowGroups(fieldOrColumns) {
|
|
6081
6095
|
const { aggregateConfig, rowGroupConfig } = props;
|
|
6096
|
+
const { rowGroupList } = reactData;
|
|
6097
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
6098
|
+
const { maxGroupSize } = aggregateOpts;
|
|
6082
6099
|
if (!(aggregateConfig || rowGroupConfig)) {
|
|
6083
6100
|
errLog('vxe.error.reqProp', ['aggregate-config']);
|
|
6084
6101
|
return nextTick();
|
|
6085
6102
|
}
|
|
6086
|
-
|
|
6087
|
-
|
|
6103
|
+
const confList = fieldOrColumns ? (XEUtils.isArray(fieldOrColumns) ? fieldOrColumns : [fieldOrColumns]) : [];
|
|
6104
|
+
if (maxGroupSize && (rowGroupList.length + confList.length > maxGroupSize)) {
|
|
6105
|
+
if (VxeUI.modal) {
|
|
6106
|
+
VxeUI.modal.message({
|
|
6107
|
+
status: 'error',
|
|
6108
|
+
content: getI18n('vxe.table.maxGroupCol', [maxGroupSize])
|
|
6109
|
+
});
|
|
6110
|
+
}
|
|
6111
|
+
return nextTick();
|
|
6112
|
+
}
|
|
6113
|
+
if (confList.length) {
|
|
6114
|
+
handleUpdateRowGroup(confList.map(fieldOrColumn => {
|
|
6088
6115
|
return XEUtils.isString(fieldOrColumn) ? fieldOrColumn : fieldOrColumn.field;
|
|
6089
6116
|
}));
|
|
6090
6117
|
return loadTableData(internalData.tableSynchData, true);
|
|
@@ -6606,15 +6633,18 @@ export default defineVxeComponent({
|
|
|
6606
6633
|
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom);
|
|
6607
6634
|
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom);
|
|
6608
6635
|
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom);
|
|
6636
|
+
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom);
|
|
6609
6637
|
const resizableData = {};
|
|
6610
6638
|
const sortData = {};
|
|
6611
6639
|
const visibleData = {};
|
|
6612
6640
|
const fixedData = {};
|
|
6641
|
+
const aggFuncData = {};
|
|
6613
6642
|
const storeData = {
|
|
6614
6643
|
resizableData: undefined,
|
|
6615
6644
|
sortData: undefined,
|
|
6616
6645
|
visibleData: undefined,
|
|
6617
|
-
fixedData: undefined
|
|
6646
|
+
fixedData: undefined,
|
|
6647
|
+
aggFuncData: undefined
|
|
6618
6648
|
};
|
|
6619
6649
|
if (!id) {
|
|
6620
6650
|
if (storage) {
|
|
@@ -6626,6 +6656,7 @@ export default defineVxeComponent({
|
|
|
6626
6656
|
let hasSort = 0;
|
|
6627
6657
|
let hasFixed = 0;
|
|
6628
6658
|
let hasVisible = 0;
|
|
6659
|
+
let hasAggFunc = 0;
|
|
6629
6660
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
6630
6661
|
const colKey = column.getKey();
|
|
6631
6662
|
if (!colKey) {
|
|
@@ -6657,6 +6688,10 @@ export default defineVxeComponent({
|
|
|
6657
6688
|
visibleData[colKey] = true;
|
|
6658
6689
|
}
|
|
6659
6690
|
}
|
|
6691
|
+
if (isCustomAggFunc && column.aggFunc !== column.defaultAggFunc) {
|
|
6692
|
+
hasAggFunc = 1;
|
|
6693
|
+
aggFuncData[colKey] = column.aggFunc;
|
|
6694
|
+
}
|
|
6660
6695
|
});
|
|
6661
6696
|
if (hasResizable) {
|
|
6662
6697
|
storeData.resizableData = resizableData;
|
|
@@ -6670,6 +6705,9 @@ export default defineVxeComponent({
|
|
|
6670
6705
|
if (hasVisible) {
|
|
6671
6706
|
storeData.visibleData = visibleData;
|
|
6672
6707
|
}
|
|
6708
|
+
if (hasAggFunc) {
|
|
6709
|
+
storeData.aggFuncData = aggFuncData;
|
|
6710
|
+
}
|
|
6673
6711
|
return storeData;
|
|
6674
6712
|
},
|
|
6675
6713
|
focus() {
|
|
@@ -6729,7 +6767,7 @@ export default defineVxeComponent({
|
|
|
6729
6767
|
if (customStore.btnEl === evnt.target || getEventTargetNode(evnt, document.body, 'vxe-toolbar-custom-target').flag) {
|
|
6730
6768
|
// 如果点击了自定义列按钮
|
|
6731
6769
|
}
|
|
6732
|
-
else if (getEventTargetNode(evnt, tableCustom
|
|
6770
|
+
else if (getEventTargetNode(evnt, tableCustom.getRefMaps().refElem.value).flag) {
|
|
6733
6771
|
// 如果点击自定义列容器
|
|
6734
6772
|
}
|
|
6735
6773
|
else {
|
|
@@ -8113,11 +8151,12 @@ export default defineVxeComponent({
|
|
|
8113
8151
|
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom);
|
|
8114
8152
|
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom);
|
|
8115
8153
|
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom);
|
|
8154
|
+
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom);
|
|
8116
8155
|
if (type !== 'reset') {
|
|
8117
8156
|
// fix:修复拖动列宽,重置按钮无法点击的问题
|
|
8118
8157
|
reactData.isCustomStatus = true;
|
|
8119
8158
|
}
|
|
8120
|
-
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort)) {
|
|
8159
|
+
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggFunc)) {
|
|
8121
8160
|
if (!tableId) {
|
|
8122
8161
|
errLog('vxe.error.reqProp', ['id']);
|
|
8123
8162
|
return nextTick();
|
|
@@ -8281,7 +8320,15 @@ export default defineVxeComponent({
|
|
|
8281
8320
|
}
|
|
8282
8321
|
vLen++;
|
|
8283
8322
|
});
|
|
8284
|
-
|
|
8323
|
+
let isSelected = (sLen >= vLen && (vLen >= 1 || hLen >= 1));
|
|
8324
|
+
if (checkMethod) {
|
|
8325
|
+
if (checkMethod({ $table: $xeTable, row })) {
|
|
8326
|
+
isSelected = sLen >= vLen;
|
|
8327
|
+
}
|
|
8328
|
+
else {
|
|
8329
|
+
isSelected = selectCheckboxMaps[rowid];
|
|
8330
|
+
}
|
|
8331
|
+
}
|
|
8285
8332
|
const halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
|
|
8286
8333
|
if (checkField) {
|
|
8287
8334
|
XEUtils.set(row, checkField, isSelected);
|
|
@@ -10463,6 +10510,9 @@ export default defineVxeComponent({
|
|
|
10463
10510
|
}
|
|
10464
10511
|
}
|
|
10465
10512
|
},
|
|
10513
|
+
handleUpdateAggData() {
|
|
10514
|
+
return loadTableData(internalData.tableSynchData, true);
|
|
10515
|
+
},
|
|
10466
10516
|
updateZindex() {
|
|
10467
10517
|
if (props.zIndex) {
|
|
10468
10518
|
internalData.tZindex = props.zIndex;
|
|
@@ -11439,6 +11489,16 @@ export default defineVxeComponent({
|
|
|
11439
11489
|
return;
|
|
11440
11490
|
}
|
|
11441
11491
|
}
|
|
11492
|
+
if (!$xeTable.handlePivotTableAggregateData) {
|
|
11493
|
+
if (customOpts.allowGroup) {
|
|
11494
|
+
errLog('vxe.error.notProp', ['custom-config.allowGroup']);
|
|
11495
|
+
return;
|
|
11496
|
+
}
|
|
11497
|
+
if (customOpts.allowValues) {
|
|
11498
|
+
errLog('vxe.error.notProp', ['custom-config.allowValues']);
|
|
11499
|
+
return;
|
|
11500
|
+
}
|
|
11501
|
+
}
|
|
11442
11502
|
if (treeConfig && rowOpts.drag && !treeOpts.transform) {
|
|
11443
11503
|
errLog('vxe.error.notSupportProp', ['column-config.drag', 'tree-config.transform=false', 'tree-config.transform=true']);
|
|
11444
11504
|
}
|
|
@@ -11451,8 +11511,8 @@ export default defineVxeComponent({
|
|
|
11451
11511
|
if (aggregateOpts.countFields) {
|
|
11452
11512
|
warnLog('vxe.error.delProp', ['row-group-config.countFields', 'column.agg-func']);
|
|
11453
11513
|
}
|
|
11454
|
-
if (aggregateOpts.
|
|
11455
|
-
warnLog('vxe.error.delProp', ['row-group-config.
|
|
11514
|
+
if (aggregateOpts.aggregateMethod) {
|
|
11515
|
+
warnLog('vxe.error.delProp', ['row-group-config.aggregateMethod', 'aggregate-config.countMethod']);
|
|
11456
11516
|
}
|
|
11457
11517
|
if (props.treeConfig && treeOpts.children) {
|
|
11458
11518
|
warnLog('vxe.error.delProp', ['tree-config.children', 'tree-config.childrenField']);
|
package/es/ui/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { getFuncText } from './src/utils';
|
|
3
|
-
export const version = "4.13.
|
|
3
|
+
export const version = "4.13.47";
|
|
4
4
|
VxeUI.version = version;
|
|
5
5
|
VxeUI.tableVersion = version;
|
|
6
6
|
VxeUI.setConfig({
|
|
@@ -102,6 +102,7 @@ VxeUI.setConfig({
|
|
|
102
102
|
// rowGroup: false,
|
|
103
103
|
// aggFunc: false
|
|
104
104
|
},
|
|
105
|
+
// autoAggGroupValues: false,
|
|
105
106
|
// checkMethod () {},
|
|
106
107
|
modalOptions: {
|
|
107
108
|
showMaximize: true,
|
|
@@ -141,7 +142,8 @@ VxeUI.setConfig({
|
|
|
141
142
|
childrenField: '_X_ROW_CHILDREN',
|
|
142
143
|
mapChildrenField: '_X_ROW_CHILD_LIST',
|
|
143
144
|
indent: 20,
|
|
144
|
-
showIcon: true
|
|
145
|
+
showIcon: true,
|
|
146
|
+
maxGroupSize: 4
|
|
145
147
|
},
|
|
146
148
|
treeConfig: {
|
|
147
149
|
padding: true,
|
|
@@ -311,9 +313,10 @@ VxeUI.setIcon({
|
|
|
311
313
|
TABLE_DRAG_DISABLED: iconPrefix + 'no-drop',
|
|
312
314
|
TABLE_ROW_GROUP_OPEN: iconPrefix + 'arrow-right rotate90',
|
|
313
315
|
TABLE_ROW_GROUP_CLOSE: iconPrefix + 'arrow-right',
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
316
|
+
TABLE_AGGREGATE_GROUPING: iconPrefix + 'grouping',
|
|
317
|
+
TABLE_AGGREGATE_VALUES: iconPrefix + 'values',
|
|
318
|
+
TABLE_AGGREGATE_SORT: iconPrefix + 'drag-handle',
|
|
319
|
+
TABLE_AGGREGATE_DELETE: iconPrefix + 'close',
|
|
317
320
|
// toolbar
|
|
318
321
|
TOOLBAR_TOOLS_REFRESH: iconPrefix + 'repeat',
|
|
319
322
|
TOOLBAR_TOOLS_REFRESH_LOADING: iconPrefix + 'repeat roll',
|
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -29,7 +29,7 @@ const {
|
|
|
29
29
|
renderEmptyElement
|
|
30
30
|
} = _ui.VxeUI;
|
|
31
31
|
const tableComponentPropKeys = Object.keys(_props.default);
|
|
32
|
-
const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', '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', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
|
|
32
|
+
const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', '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', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
|
|
33
33
|
const 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'];
|
|
34
34
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
35
35
|
name: 'VxeGrid',
|
package/lib/grid/src/grid.min.js
CHANGED
|
@@ -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")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/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}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_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","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","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","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","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,_comp.defineVxeComponent)({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(S,e){let t,{slots:u,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),i=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(S).computeSize,T=(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}}),s=(0,_vue.ref)(),j=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),m=(0,_vue.ref)(),v=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=j.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=j.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),S.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,S.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,S.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,S.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,S.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=S,{isZMax:o,tZindex:r}=T,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),P=(0,_vue.computed)(()=>{let t={},o=S;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=S,{isZMax:i,tableLoading:l,tablePage:n}=T,s=P.value,u=q.value,d=F.value,g=Object.assign({},s);return i&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=o||l,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),r&&(g.editConfig=Object.assign({},r)),g}),U=(0,_vue.computed)(()=>{var e=S.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var A=(0,_vue.computed)(()=>F.value.currentPage),K=(0,_vue.computed)(()=>F.value.pageSize),H=(0,_vue.computed)(()=>F.value.total);let G={refElem:s,refTable:j,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:q,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:E,props:S,context:e,reactData:T,getRefMaps:()=>G,getComputeMaps:()=>N},b=()=>{var e=L.value;S.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=j.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=S.proxyConfig,t=T.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=e=>{var t=T.tablePage,o=S.pagerConfig,r=F.value;o&&(0,_utils.isEnableConf)(r)&&(e?r[e]&&(t[e]=_xeUtils.default.toNumber(r[e])):({currentPage:o,pageSize:e,total:r}=r,o&&(t.currentPage=o),e&&(t.pageSize=e),r&&(t.pageSize=r)))},B=(e,t)=>{var o=q.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):r)||getI18n(t)},Q=(e,t,o)=>{var r=M.value,a=D.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()},W=e=>{var t=S.proxyConfig,o=T.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,V.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,r)})},Y=t=>{var e=j.value,o=S.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(T.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("sort-change",t,t.$event)},J=t=>{var e=j.value,o=S.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(T.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("filter-change",t,t.$event)},X=t=>{var e=S.proxyConfig,o=q.value;T.tableLoading||(e&&(0,_utils.isEnableConf)(o)&&$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),$.dispatchEvent("form-submit",t,t.$event))},ee=e=>{var t=S.proxyConfig;let o=e.$event;var r=q.value,a=j.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),$.dispatchEvent("form-reset",e,o)},te=e=>{$.dispatchEvent("form-submit-invalid",e,e.$event)},oe=e=>{var t=e.$event;$.dispatchEvent("form-toggle-collapse",e,t),$.dispatchEvent("form-collapse",e,t)},re=e=>{var t=T.isZMax;return(e?!t:t)&&(T.isZMax=!t,T.tZindex<(0,_utils.getLastZIndex)())&&(T.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),T.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},ae=e=>{let o={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?o[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o},ie=()=>{var{formConfig:e,proxyConfig:o}=S,r=T.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||u.form){let e=[];if(u.form)e=u.form({$grid:V});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:V,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:n},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:X,onReset:ee,onSubmitInvalid:te,onCollapse:oe}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},le=()=>{var t,o,r,a,i,l,n=S.toolbarConfig,s=L.value;if(n&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:V}):(n={},(l=s.slots)&&(t=h(l,"buttons"),o=h(l,"buttonPrefix"),r=h(l,"buttonSuffix"),a=h(l,"tools"),i=h(l,"toolPrefix"),l=h(l,"toolSuffix"),t&&(n.buttons=t),o&&(n.buttonPrefix=o),r&&(n.buttonSuffix=r),a&&(n.tools=a),i&&(n.toolPrefix=i),l)&&(n.toolSuffix=l),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),n))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},ne=()=>u.top?(0,_vue.h)("div",{ref:v,key:"top",class:"vxe-grid--top-wrapper"},u.top({$grid:V})):renderEmptyElement(V),se=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ue=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},de=()=>{var e=S.proxyConfig,t=k.value,o=q.value,r=Object.assign({},me),a=u.empty,i=u.loading,l=u.rowDragIcon||u["row-drag-icon"],n=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Y),o.filter)&&(r.onFilterChange=J),{});return a&&(e.empty=a),i&&(e.loading=i),l&&(e.rowDragIcon=l),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:j},t),r),e)])},ge=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:V})):renderEmptyElement(V),ce=()=>{var{proxyConfig:e,pagerConfig:t}=S,o=q.value,r=F.value,a=u.pager;return t&&(0,_utils.isEnableConf)(r)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[i?(0,_vue.h)(i,Object.assign(Object.assign(Object.assign({ref:g},r),e&&(0,_utils.isEnableConf)(o)?T.tablePage:{}),{onPageChange:W}),ae(r.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(ie());break;case"Toolbar":t.push(le());break;case"Top":t.push(ne());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[se(),de(),ue()]));break;case"Bottom":t.push(ge());break;case"Pager":t.push(ce());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},me={},ve=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);me[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=S,o=T.proxyInited,r=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.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)),a[o]=e}}),T.formData=a}o||!(T.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>$.commitProxy("_init")).then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),pe=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let $={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:V},t))},getEl(){return s.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=S,n=T.tablePage,m=M.value,v=Z.value;var o=q.value;let s=F.value;var r=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=j.value;var R=z();let E=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,E=r?r.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,k=M.value,O=j.value,(P=O.getCheckboxRecords()).length?(O.togglePendingRow(P),D.clearCheckboxRow()):k&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return Q(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let i=h.querySuccess,r=h.queryError;if(O){var I,P="_init"===w,k="reload"===w;if(!P&&T.tableLoading)return(0,_vue.nextTick)();let t=[],o=[],e={};if(l&&((P||k)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),P){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(k?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let a={code:w,button:E,isInited:P,isReload:k,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return T.sortData=t,T.filterData=o,T.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var o,r;return T.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(s)?(r=C.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"page.total"))||0,n.total=_xeUtils.default.toNumber(r),o=C.result,t=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"result"))||[],o=Math.max(Math.ceil(r/n.pageSize),1),n.currentPage>o&&(n.currentPage=o)):(r=C.list,t=(r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),i&&i(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(T.tableLoading=!1,r&&r(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let o={$grid:V,code:w,button:E,body:U,form:R,options:r};if(e.length)return Q(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((f||r)(o,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:B(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):$.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:B(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,l={$grid:V,code:w,button:E,body:t,form:R,options:n},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(T.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(T.tableLoading=!1,y.clearPendingRow(),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:B(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):$.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:B(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?$.revert():$.maximize()},isMaximized(){return T.isZMax},maximize(){return re(!0)},revert(){return re()},getFormData:z,getFormItems(e){var t=x.value,o=S.formConfig,r=t.items;let 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=j.value;return S.proxyConfig?(e=T.sortData,{data:t?t.getFullData():[],filter:T.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y={extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,o,r,a,i,l=T.isZMax,n=s.value;return n?(e=c.value,t=m.value,o=v.value,r=p.value,a=f.value,i=n.parentElement,(!l&&i?(0,_dom.getPaddingTopBottomSize)(i):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(T.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-y.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let o=e.code;return $.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&$.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){$.zoom(),$.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}},R=(Object.assign(V,D,$,y,{loadColumn(e){var t=j.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return V.clearAll(),V.loadColumn(e)}}),(0,_vue.ref)(0));(0,_vue.watch)(()=>S.columns?S.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>S.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>V.loadColumn(S.columns||[]))}),(0,_vue.watch)(()=>S.toolbarConfig,()=>{b()}),(0,_vue.watch)(A,()=>{_("currentPage")}),(0,_vue.watch)(K,()=>{_("pageSize")}),(0,_vue.watch)(H,()=>{_("total")}),(0,_vue.watch)(()=>S.proxyConfig,()=>{ve()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.columns;S.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),S.pagerConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),ve()}),globalEvents.on(V,"keydown",pe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!S.animat,"is--round":S.round,"is--maximize":T.isZMax,"is--loading":S.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",V),V},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")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/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}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_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","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","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","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","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,_comp.defineVxeComponent)({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(S,e){let t,{slots:u,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),i=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(S).computeSize,T=(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}}),s=(0,_vue.ref)(),j=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),m=(0,_vue.ref)(),v=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=j.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=j.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),S.proxyConfig))),A=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,S.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,S.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,S.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,S.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=S,{isZMax:o,tZindex:r}=T,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),P=(0,_vue.computed)(()=>{let t={},o=S;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=S,{isZMax:i,tableLoading:l,tablePage:n}=T,s=P.value,u=q.value,d=F.value,g=Object.assign({},s);return i&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=o||l,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),r&&(g.editConfig=Object.assign({},r)),g}),U=(0,_vue.computed)(()=>{var e=S.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var Z=(0,_vue.computed)(()=>F.value.currentPage),K=(0,_vue.computed)(()=>F.value.pageSize),H=(0,_vue.computed)(()=>F.value.total);let G={refElem:s,refTable:j,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:q,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:E,props:S,context:e,reactData:T,getRefMaps:()=>G,getComputeMaps:()=>N},b=()=>{var e=L.value;S.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=j.value,t=d.value;e&&t&&e.connect(t)})},B=()=>{var e=S.proxyConfig,t=T.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=e=>{var t=T.tablePage,o=S.pagerConfig,r=F.value;o&&(0,_utils.isEnableConf)(r)&&(e?r[e]&&(t[e]=_xeUtils.default.toNumber(r[e])):({currentPage:o,pageSize:e,total:r}=r,o&&(t.currentPage=o),e&&(t.pageSize=e),r&&(t.pageSize=r)))},z=(e,t)=>{var o=q.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):r)||getI18n(t)},Q=(e,t,o)=>{var r=M.value,a=D.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()},W=e=>{var t=S.proxyConfig,o=T.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,V.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,r)})},Y=t=>{var e=j.value,o=S.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(T.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("sort-change",t,t.$event)},J=t=>{var e=j.value,o=S.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(T.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("filter-change",t,t.$event)},X=t=>{var e=S.proxyConfig,o=q.value;T.tableLoading||(e&&(0,_utils.isEnableConf)(o)&&$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),$.dispatchEvent("form-submit",t,t.$event))},ee=e=>{var t=S.proxyConfig;let o=e.$event;var r=q.value,a=j.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),$.dispatchEvent("form-reset",e,o)},te=e=>{$.dispatchEvent("form-submit-invalid",e,e.$event)},oe=e=>{var t=e.$event;$.dispatchEvent("form-toggle-collapse",e,t),$.dispatchEvent("form-collapse",e,t)},re=e=>{var t=T.isZMax;return(e?!t:t)&&(T.isZMax=!t,T.tZindex<(0,_utils.getLastZIndex)())&&(T.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),T.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},ae=e=>{let o={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?o[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o},ie=()=>{var{formConfig:e,proxyConfig:o}=S,r=T.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||u.form){let e=[];if(u.form)e=u.form({$grid:V});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:V,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:n},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:X,onReset:ee,onSubmitInvalid:te,onCollapse:oe}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},le=()=>{var t,o,r,a,i,l,n=S.toolbarConfig,s=L.value;if(n&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:V}):(n={},(l=s.slots)&&(t=h(l,"buttons"),o=h(l,"buttonPrefix"),r=h(l,"buttonSuffix"),a=h(l,"tools"),i=h(l,"toolPrefix"),l=h(l,"toolSuffix"),t&&(n.buttons=t),o&&(n.buttonPrefix=o),r&&(n.buttonSuffix=r),a&&(n.tools=a),i&&(n.toolPrefix=i),l)&&(n.toolSuffix=l),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),n))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},ne=()=>u.top?(0,_vue.h)("div",{ref:v,key:"top",class:"vxe-grid--top-wrapper"},u.top({$grid:V})):renderEmptyElement(V),se=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ue=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},de=()=>{var e=S.proxyConfig,t=k.value,o=q.value,r=Object.assign({},me),a=u.empty,i=u.loading,l=u.rowDragIcon||u["row-drag-icon"],n=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Y),o.filter)&&(r.onFilterChange=J),{});return a&&(e.empty=a),i&&(e.loading=i),l&&(e.rowDragIcon=l),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:j},t),r),e)])},ge=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:V})):renderEmptyElement(V),ce=()=>{var{proxyConfig:e,pagerConfig:t}=S,o=q.value,r=F.value,a=u.pager;return t&&(0,_utils.isEnableConf)(r)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[i?(0,_vue.h)(i,Object.assign(Object.assign(Object.assign({ref:g},r),e&&(0,_utils.isEnableConf)(o)?T.tablePage:{}),{onPageChange:W}),ae(r.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(ie());break;case"Toolbar":t.push(le());break;case"Top":t.push(ne());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[se(),de(),ue()]));break;case"Bottom":t.push(ge());break;case"Pager":t.push(ce());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},me={},ve=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);me[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=S,o=T.proxyInited,r=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.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)),a[o]=e}}),T.formData=a}o||!(T.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>$.commitProxy("_init")).then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),pe=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let $={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:V},t))},getEl(){return s.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=S,n=T.tablePage,m=M.value,v=A.value;var o=q.value;let s=F.value;var r=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=j.value;var R=B();let E=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,E=r?r.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,k=M.value,O=j.value,(P=O.getCheckboxRecords()).length?(O.togglePendingRow(P),D.clearCheckboxRow()):k&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return Q(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let i=h.querySuccess,r=h.queryError;if(O){var I,P="_init"===w,k="reload"===w;if(!P&&T.tableLoading)return(0,_vue.nextTick)();let t=[],o=[],e={};if(l&&((P||k)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),P){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(k?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let a={code:w,button:E,isInited:P,isReload:k,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return T.sortData=t,T.filterData=o,T.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var o,r;return T.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(s)?(r=C.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"page.total"))||0,n.total=_xeUtils.default.toNumber(r),o=C.result,t=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"result"))||[],o=Math.max(Math.ceil(r/n.pageSize),1),n.currentPage>o&&(n.currentPage=o)):(r=C.list,t=(r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),i&&i(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(T.tableLoading=!1,r&&r(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let o={$grid:V,code:w,button:E,body:U,form:R,options:r};if(e.length)return Q(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((f||r)(o,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):$.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,l={$grid:V,code:w,button:E,body:t,form:R,options:n},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(T.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(T.tableLoading=!1,y.clearPendingRow(),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):$.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?$.revert():$.maximize()},isMaximized(){return T.isZMax},maximize(){return re(!0)},revert(){return re()},getFormData:B,getFormItems(e){var t=x.value,o=S.formConfig,r=t.items;let 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=j.value;return S.proxyConfig?(e=T.sortData,{data:t?t.getFullData():[],filter:T.filterData,form:B(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y={extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,o,r,a,i,l=T.isZMax,n=s.value;return n?(e=c.value,t=m.value,o=v.value,r=p.value,a=f.value,i=n.parentElement,(!l&&i?(0,_dom.getPaddingTopBottomSize)(i):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(T.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-y.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let o=e.code;return $.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&$.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){$.zoom(),$.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}},R=(Object.assign(V,D,$,y,{loadColumn(e){var t=j.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return V.clearAll(),V.loadColumn(e)}}),(0,_vue.ref)(0));(0,_vue.watch)(()=>S.columns?S.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>S.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>V.loadColumn(S.columns||[]))}),(0,_vue.watch)(()=>S.toolbarConfig,()=>{b()}),(0,_vue.watch)(Z,()=>{_("currentPage")}),(0,_vue.watch)(K,()=>{_("pageSize")}),(0,_vue.watch)(H,()=>{_("total")}),(0,_vue.watch)(()=>S.proxyConfig,()=>{ve()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.columns;S.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),S.pagerConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),ve()}),globalEvents.on(V,"keydown",pe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!S.animat,"is--round":S.round,"is--maximize":T.isZMax,"is--loading":S.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
|