vxe-table 4.15.2 → 4.15.4
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 +8 -0
- package/es/locale/lang/de-DE.js +80 -80
- package/es/locale/lang/es-ES.js +79 -79
- package/es/locale/lang/ja-JP.js +82 -82
- package/es/locale/lang/ko-KR.js +88 -88
- package/es/locale/lang/ru-RU.js +84 -84
- package/es/locale/lang/vi-VN.js +79 -79
- package/es/locale/lang/zh-CHT.js +21 -21
- package/es/style.css +1 -1
- package/es/table/src/body.js +4 -4
- package/es/table/src/table.js +30 -124
- package/es/table/src/util.js +116 -0
- package/es/toolbar/src/toolbar.js +10 -4
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +8 -0
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +146 -54
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/de-DE.js +80 -80
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +80 -80
- package/lib/locale/lang/es-ES.js +79 -79
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +79 -79
- package/lib/locale/lang/ja-JP.js +82 -82
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +82 -82
- package/lib/locale/lang/ko-KR.js +88 -88
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +88 -88
- package/lib/locale/lang/ru-RU.js +84 -84
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +84 -84
- package/lib/locale/lang/vi-VN.js +79 -79
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/vi-VN.umd.js +79 -79
- package/lib/locale/lang/zh-CHT.js +21 -21
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +21 -21
- package/lib/style.css +1 -1
- package/lib/table/src/body.js +4 -3
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +7 -46
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +117 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/toolbar/src/toolbar.js +9 -3
- package/lib/toolbar/src/toolbar.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +11 -1
- package/packages/locale/lang/de-DE.ts +80 -80
- package/packages/locale/lang/es-ES.ts +79 -79
- package/packages/locale/lang/ja-JP.ts +82 -82
- package/packages/locale/lang/ko-KR.ts +88 -88
- package/packages/locale/lang/ru-RU.ts +84 -84
- package/packages/locale/lang/vi-VN.ts +79 -79
- package/packages/locale/lang/zh-CHT.ts +21 -21
- package/packages/table/src/body.ts +4 -4
- package/packages/table/src/table.ts +32 -128
- package/packages/table/src/util.ts +121 -1
- package/packages/toolbar/src/toolbar.ts +12 -4
- /package/es/{iconfont.1754370048998.ttf → iconfont.1754457119712.ttf} +0 -0
- /package/es/{iconfont.1754370048998.woff → iconfont.1754457119712.woff} +0 -0
- /package/es/{iconfont.1754370048998.woff2 → iconfont.1754457119712.woff2} +0 -0
- /package/lib/{iconfont.1754370048998.ttf → iconfont.1754457119712.ttf} +0 -0
- /package/lib/{iconfont.1754370048998.woff → iconfont.1754457119712.woff} +0 -0
- /package/lib/{iconfont.1754370048998.woff2 → iconfont.1754457119712.woff2} +0 -0
package/es/table/src/body.js
CHANGED
|
@@ -79,7 +79,7 @@ export default defineVxeComponent({
|
|
|
79
79
|
const renderTdColumn = (seq, rowid, fixedType, isOptimizeMode, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) => {
|
|
80
80
|
const $xeGrid = $xeTable.xeGrid;
|
|
81
81
|
const { columnKey, resizable: allResizable, showOverflow: allShowOverflow, border, height, treeConfig, cellClassName: allCellClassName, cellStyle, align: allAlign, spanMethod, mouseConfig, editConfig, editRules, tooltipConfig, padding: allPadding } = tableProps;
|
|
82
|
-
const { tableData, dragRow, overflowX, currentColumn, scrollXLoad, scrollYLoad, mergeBodyFlag, calcCellHeightFlag, resizeHeightFlag, resizeWidthFlag, editStore, isAllOverflow, validErrorMaps } = tableReactData;
|
|
82
|
+
const { tableData, dragRow, overflowX, overflowY, currentColumn, scrollXLoad, scrollYLoad, mergeBodyFlag, calcCellHeightFlag, resizeHeightFlag, resizeWidthFlag, editStore, isAllOverflow, validErrorMaps } = tableReactData;
|
|
83
83
|
const { fullAllDataRowIdData, fullColumnIdData, mergeBodyCellMaps, visibleColumn, afterFullData, mergeBodyList, scrollXStore, scrollYStore } = tableInternalData;
|
|
84
84
|
const cellOpts = computeCellOpts.value;
|
|
85
85
|
const validOpts = computeValidOpts.value;
|
|
@@ -263,12 +263,12 @@ export default defineVxeComponent({
|
|
|
263
263
|
const isLastColumn = $columnIndex === columns.length - 1;
|
|
264
264
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
265
265
|
let isVNPreEmptyStatus = false;
|
|
266
|
-
if (
|
|
266
|
+
if (!isMergeCell) {
|
|
267
267
|
if (!dragRow || getRowid($xeTable, dragRow) !== rowid) {
|
|
268
|
-
if (scrollYLoad && !treeConfig && !virtualYOpts.immediate && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
|
|
268
|
+
if (overflowY && scrollYLoad && !treeConfig && !virtualYOpts.immediate && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
|
|
269
269
|
isVNPreEmptyStatus = true;
|
|
270
270
|
}
|
|
271
|
-
else if (scrollXLoad && !virtualXOpts.immediate && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
271
|
+
else if (overflowX && scrollXLoad && !virtualXOpts.immediate && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
272
272
|
isVNPreEmptyStatus = true;
|
|
273
273
|
}
|
|
274
274
|
}
|
package/es/table/src/table.js
CHANGED
|
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils';
|
|
|
4
4
|
import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey } from '../../ui/src/dom';
|
|
5
5
|
import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils';
|
|
6
6
|
import { VxeUI } from '../../ui';
|
|
7
|
-
import { getRowUniqueId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight } from './util';
|
|
7
|
+
import { createInternalData, getRowUniqueId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight } from './util';
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
9
9
|
import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from './anime';
|
|
10
10
|
import { warnLog, errLog } from '../../ui/src/log';
|
|
@@ -275,120 +275,7 @@ export default defineVxeComponent({
|
|
|
275
275
|
isRowLoading: false,
|
|
276
276
|
isColLoading: false
|
|
277
277
|
});
|
|
278
|
-
const internalData =
|
|
279
|
-
tZindex: 0,
|
|
280
|
-
currKeyField: '',
|
|
281
|
-
isCurrDeepKey: false,
|
|
282
|
-
elemStore: {},
|
|
283
|
-
// 存放横向 X 虚拟滚动相关的信息
|
|
284
|
-
scrollXStore: {
|
|
285
|
-
preloadSize: 0,
|
|
286
|
-
offsetSize: 0,
|
|
287
|
-
visibleSize: 0,
|
|
288
|
-
visibleStartIndex: 0,
|
|
289
|
-
visibleEndIndex: 0,
|
|
290
|
-
startIndex: 0,
|
|
291
|
-
endIndex: 0
|
|
292
|
-
},
|
|
293
|
-
// 存放纵向 Y 虚拟滚动相关信息
|
|
294
|
-
scrollYStore: {
|
|
295
|
-
preloadSize: 0,
|
|
296
|
-
offsetSize: 0,
|
|
297
|
-
visibleSize: 0,
|
|
298
|
-
visibleStartIndex: 0,
|
|
299
|
-
visibleEndIndex: 0,
|
|
300
|
-
startIndex: 0,
|
|
301
|
-
endIndex: 0
|
|
302
|
-
},
|
|
303
|
-
// 表格宽度
|
|
304
|
-
tableWidth: 0,
|
|
305
|
-
// 表格高度
|
|
306
|
-
tableHeight: 0,
|
|
307
|
-
// 表头高度
|
|
308
|
-
headerHeight: 0,
|
|
309
|
-
// 表尾高度
|
|
310
|
-
footerHeight: 0,
|
|
311
|
-
customHeight: 0,
|
|
312
|
-
customMinHeight: 0,
|
|
313
|
-
customMaxHeight: 0,
|
|
314
|
-
// 当前 hover 行
|
|
315
|
-
hoverRow: null,
|
|
316
|
-
// 最后滚动位置
|
|
317
|
-
lastScrollLeft: 0,
|
|
318
|
-
lastScrollTop: 0,
|
|
319
|
-
// 单选框属性,已选中保留的行
|
|
320
|
-
radioReserveRow: null,
|
|
321
|
-
// 复选框属性,已选中保留的行集合
|
|
322
|
-
checkboxReserveRowMap: {},
|
|
323
|
-
// 行数据,已展开保留的行集合
|
|
324
|
-
rowExpandedReserveRowMap: {},
|
|
325
|
-
// 树结构数据,已展开保留的行集合
|
|
326
|
-
treeExpandedReserveRowMap: {},
|
|
327
|
-
// 树结构数据,不确定状态的集合
|
|
328
|
-
treeIndeterminateRowMaps: {},
|
|
329
|
-
// 列表完整数据、条件处理后
|
|
330
|
-
tableFullData: [],
|
|
331
|
-
afterFullData: [],
|
|
332
|
-
afterTreeFullData: [],
|
|
333
|
-
afterGroupFullData: [],
|
|
334
|
-
// 列表条件处理后数据集合
|
|
335
|
-
afterFullRowMaps: {},
|
|
336
|
-
// 树结构完整数据、条件处理后
|
|
337
|
-
tableFullTreeData: [],
|
|
338
|
-
// 行分组全量数据、条件处理后
|
|
339
|
-
tableFullGroupData: [],
|
|
340
|
-
tableSynchData: [],
|
|
341
|
-
tableSourceData: [],
|
|
342
|
-
// 收集的列配置(带分组)
|
|
343
|
-
collectColumn: [],
|
|
344
|
-
// 完整所有列(不带分组)
|
|
345
|
-
tableFullColumn: [],
|
|
346
|
-
// 渲染所有列
|
|
347
|
-
visibleColumn: [],
|
|
348
|
-
// 全量数据集(包括当前和已删除)
|
|
349
|
-
fullAllDataRowIdData: {},
|
|
350
|
-
// 数据集(仅当前)
|
|
351
|
-
fullDataRowIdData: {},
|
|
352
|
-
// 数据集(仅可视)
|
|
353
|
-
visibleDataRowIdData: {},
|
|
354
|
-
// 渲染中缓存数据
|
|
355
|
-
sourceDataRowIdData: {},
|
|
356
|
-
fullColumnIdData: {},
|
|
357
|
-
fullColumnFieldData: {},
|
|
358
|
-
// 合并单元格的数据
|
|
359
|
-
mergeBodyList: [],
|
|
360
|
-
mergeBodyMaps: {},
|
|
361
|
-
// 合并表尾的数据
|
|
362
|
-
mergeFooterList: [],
|
|
363
|
-
mergeFooterMaps: {},
|
|
364
|
-
// 已合并单元格数据集合
|
|
365
|
-
mergeBodyCellMaps: {},
|
|
366
|
-
// 已合并表尾数据集合
|
|
367
|
-
mergeFooterCellMaps: {},
|
|
368
|
-
// 已展开的行集合
|
|
369
|
-
rowExpandedMaps: {},
|
|
370
|
-
// 懒加载中的展开行的集合
|
|
371
|
-
rowExpandLazyLoadedMaps: {},
|
|
372
|
-
// 已展开的分组行
|
|
373
|
-
rowGroupExpandedMaps: {},
|
|
374
|
-
// 已展开树节点集合
|
|
375
|
-
treeExpandedMaps: {},
|
|
376
|
-
// 懒加载中的树节点的集合
|
|
377
|
-
treeExpandLazyLoadedMaps: {},
|
|
378
|
-
// 复选框属性,已选中的行集合
|
|
379
|
-
selectCheckboxMaps: {},
|
|
380
|
-
// 已标记的对象集
|
|
381
|
-
pendingRowMaps: {},
|
|
382
|
-
// 已新增的临时行
|
|
383
|
-
insertRowMaps: {},
|
|
384
|
-
// 已删除行
|
|
385
|
-
removeRowMaps: {},
|
|
386
|
-
cvCacheMaps: {},
|
|
387
|
-
inited: false,
|
|
388
|
-
tooltipTimeout: null,
|
|
389
|
-
initStatus: false,
|
|
390
|
-
isActivated: false
|
|
391
|
-
};
|
|
278
|
+
const internalData = createInternalData();
|
|
392
279
|
let tableMethods = {};
|
|
393
280
|
let tablePrivateMethods = {};
|
|
394
281
|
const refElem = ref();
|
|
@@ -3377,9 +3264,7 @@ export default defineVxeComponent({
|
|
|
3377
3264
|
internalData.cvCacheMaps = {};
|
|
3378
3265
|
reactData.isRowLoading = true;
|
|
3379
3266
|
reactData.scrollVMLoading = false;
|
|
3380
|
-
// internalData.treeExpandedMaps = {}
|
|
3381
3267
|
reactData.treeExpandedFlag++;
|
|
3382
|
-
// internalData.rowExpandedMaps = {}
|
|
3383
3268
|
reactData.rowExpandedFlag++;
|
|
3384
3269
|
internalData.insertRowMaps = {};
|
|
3385
3270
|
reactData.insertRowFlag++;
|
|
@@ -5734,9 +5619,24 @@ export default defineVxeComponent({
|
|
|
5734
5619
|
/**
|
|
5735
5620
|
* 用于当前行,获取当前行的数据
|
|
5736
5621
|
*/
|
|
5737
|
-
getCurrentRecord() {
|
|
5622
|
+
getCurrentRecord(isFull) {
|
|
5623
|
+
const { currentRow } = reactData;
|
|
5624
|
+
const { fullDataRowIdData, afterFullRowMaps } = internalData;
|
|
5738
5625
|
const rowOpts = computeRowOpts.value;
|
|
5739
|
-
|
|
5626
|
+
if (rowOpts.isCurrent || props.highlightCurrentRow) {
|
|
5627
|
+
const rowid = getRowid($xeTable, currentRow);
|
|
5628
|
+
if (isFull) {
|
|
5629
|
+
if (fullDataRowIdData[rowid]) {
|
|
5630
|
+
return currentRow;
|
|
5631
|
+
}
|
|
5632
|
+
}
|
|
5633
|
+
else {
|
|
5634
|
+
if (afterFullRowMaps[rowid]) {
|
|
5635
|
+
return currentRow;
|
|
5636
|
+
}
|
|
5637
|
+
}
|
|
5638
|
+
}
|
|
5639
|
+
return null;
|
|
5740
5640
|
},
|
|
5741
5641
|
/**
|
|
5742
5642
|
* 用于单选行,获取当已选中的数据
|
|
@@ -7947,12 +7847,16 @@ export default defineVxeComponent({
|
|
|
7947
7847
|
cacheRowMap(isReset) {
|
|
7948
7848
|
const { treeConfig } = props;
|
|
7949
7849
|
const { isRowGroupStatus } = reactData;
|
|
7950
|
-
const { fullAllDataRowIdData, tableFullData, tableFullTreeData, tableFullGroupData, treeExpandedMaps } = internalData;
|
|
7850
|
+
const { currKeyField, fullAllDataRowIdData, tableFullData, tableFullTreeData, tableFullGroupData, treeExpandedMaps } = internalData;
|
|
7951
7851
|
const fullAllDataRowIdMaps = isReset ? {} : Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
7952
7852
|
const fullDataRowIdMaps = {};
|
|
7853
|
+
const idMaps = {};
|
|
7953
7854
|
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
|
|
7954
7855
|
const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
|
|
7955
7856
|
let rowRest = fullAllDataRowIdMaps[rowid];
|
|
7857
|
+
if (idMaps[rowid]) {
|
|
7858
|
+
errLog('vxe.error.repeatKey', [currKeyField, rowid]);
|
|
7859
|
+
}
|
|
7956
7860
|
if (!rowRest) {
|
|
7957
7861
|
rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, _tIndex: -1, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
|
|
7958
7862
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
@@ -7966,6 +7870,7 @@ export default defineVxeComponent({
|
|
|
7966
7870
|
rowRest.level = level;
|
|
7967
7871
|
rowRest.index = currIndex;
|
|
7968
7872
|
rowRest.treeIndex = index;
|
|
7873
|
+
idMaps[rowid] = true;
|
|
7969
7874
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
7970
7875
|
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
7971
7876
|
};
|
|
@@ -11683,7 +11588,7 @@ export default defineVxeComponent({
|
|
|
11683
11588
|
if (value && value.length >= 50000) {
|
|
11684
11589
|
warnLog('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
|
|
11685
11590
|
}
|
|
11686
|
-
loadTableData(value,
|
|
11591
|
+
loadTableData(value, true).then(() => {
|
|
11687
11592
|
const { scrollXLoad, scrollYLoad, expandColumn } = reactData;
|
|
11688
11593
|
const expandOpts = computeExpandOpts.value;
|
|
11689
11594
|
internalData.inited = true;
|
|
@@ -12114,9 +12019,6 @@ export default defineVxeComponent({
|
|
|
12114
12019
|
if ($xeTable.closeMenu) {
|
|
12115
12020
|
$xeTable.closeMenu();
|
|
12116
12021
|
}
|
|
12117
|
-
tablePrivateMethods.preventEvent(null, 'beforeUnmount', { $table: $xeTable });
|
|
12118
|
-
});
|
|
12119
|
-
onUnmounted(() => {
|
|
12120
12022
|
globalEvents.off($xeTable, 'paste');
|
|
12121
12023
|
globalEvents.off($xeTable, 'copy');
|
|
12122
12024
|
globalEvents.off($xeTable, 'cut');
|
|
@@ -12126,7 +12028,11 @@ export default defineVxeComponent({
|
|
|
12126
12028
|
globalEvents.off($xeTable, 'keydown');
|
|
12127
12029
|
globalEvents.off($xeTable, 'resize');
|
|
12128
12030
|
globalEvents.off($xeTable, 'contextmenu');
|
|
12031
|
+
tablePrivateMethods.preventEvent(null, 'beforeUnmount', { $table: $xeTable });
|
|
12032
|
+
});
|
|
12033
|
+
onUnmounted(() => {
|
|
12129
12034
|
tablePrivateMethods.preventEvent(null, 'unmounted', { $table: $xeTable });
|
|
12035
|
+
XEUtils.assign(internalData, createInternalData());
|
|
12130
12036
|
});
|
|
12131
12037
|
nextTick(() => {
|
|
12132
12038
|
if (props.loading) {
|
package/es/table/src/util.js
CHANGED
|
@@ -3,6 +3,122 @@ import XEUtils from 'xe-utils';
|
|
|
3
3
|
import { ColumnInfo } from './columnInfo';
|
|
4
4
|
import { isPx, isScale, queryElement } from '../../ui/src/dom';
|
|
5
5
|
import { eqEmptyValue } from '../../ui/src/utils';
|
|
6
|
+
export function createInternalData() {
|
|
7
|
+
return {
|
|
8
|
+
tZindex: 0,
|
|
9
|
+
currKeyField: '',
|
|
10
|
+
isCurrDeepKey: false,
|
|
11
|
+
elemStore: {},
|
|
12
|
+
// 存放横向 X 虚拟滚动相关的信息
|
|
13
|
+
scrollXStore: {
|
|
14
|
+
preloadSize: 0,
|
|
15
|
+
offsetSize: 0,
|
|
16
|
+
visibleSize: 0,
|
|
17
|
+
visibleStartIndex: 0,
|
|
18
|
+
visibleEndIndex: 0,
|
|
19
|
+
startIndex: 0,
|
|
20
|
+
endIndex: 0
|
|
21
|
+
},
|
|
22
|
+
// 存放纵向 Y 虚拟滚动相关信息
|
|
23
|
+
scrollYStore: {
|
|
24
|
+
preloadSize: 0,
|
|
25
|
+
offsetSize: 0,
|
|
26
|
+
visibleSize: 0,
|
|
27
|
+
visibleStartIndex: 0,
|
|
28
|
+
visibleEndIndex: 0,
|
|
29
|
+
startIndex: 0,
|
|
30
|
+
endIndex: 0
|
|
31
|
+
},
|
|
32
|
+
// 表格宽度
|
|
33
|
+
tableWidth: 0,
|
|
34
|
+
// 表格高度
|
|
35
|
+
tableHeight: 0,
|
|
36
|
+
// 表头高度
|
|
37
|
+
headerHeight: 0,
|
|
38
|
+
// 表尾高度
|
|
39
|
+
footerHeight: 0,
|
|
40
|
+
customHeight: 0,
|
|
41
|
+
customMinHeight: 0,
|
|
42
|
+
customMaxHeight: 0,
|
|
43
|
+
// 当前 hover 行
|
|
44
|
+
hoverRow: null,
|
|
45
|
+
// 最后滚动位置
|
|
46
|
+
lastScrollLeft: 0,
|
|
47
|
+
lastScrollTop: 0,
|
|
48
|
+
// 单选框属性,已选中保留的行
|
|
49
|
+
radioReserveRow: null,
|
|
50
|
+
// 复选框属性,已选中保留的行集合
|
|
51
|
+
checkboxReserveRowMap: {},
|
|
52
|
+
// 行数据,已展开保留的行集合
|
|
53
|
+
rowExpandedReserveRowMap: {},
|
|
54
|
+
// 树结构数据,已展开保留的行集合
|
|
55
|
+
treeExpandedReserveRowMap: {},
|
|
56
|
+
// 树结构数据,不确定状态的集合
|
|
57
|
+
treeIndeterminateRowMaps: {},
|
|
58
|
+
// 列表完整数据、条件处理后
|
|
59
|
+
tableFullData: [],
|
|
60
|
+
afterFullData: [],
|
|
61
|
+
afterTreeFullData: [],
|
|
62
|
+
afterGroupFullData: [],
|
|
63
|
+
// 列表条件处理后数据集合
|
|
64
|
+
afterFullRowMaps: {},
|
|
65
|
+
// 树结构完整数据、条件处理后
|
|
66
|
+
tableFullTreeData: [],
|
|
67
|
+
// 行分组全量数据、条件处理后
|
|
68
|
+
tableFullGroupData: [],
|
|
69
|
+
tableSynchData: [],
|
|
70
|
+
tableSourceData: [],
|
|
71
|
+
// 收集的列配置(带分组)
|
|
72
|
+
collectColumn: [],
|
|
73
|
+
// 完整所有列(不带分组)
|
|
74
|
+
tableFullColumn: [],
|
|
75
|
+
// 渲染所有列
|
|
76
|
+
visibleColumn: [],
|
|
77
|
+
// 全量数据集(包括当前和已删除)
|
|
78
|
+
fullAllDataRowIdData: {},
|
|
79
|
+
// 数据集(仅当前)
|
|
80
|
+
fullDataRowIdData: {},
|
|
81
|
+
// 数据集(仅可视)
|
|
82
|
+
visibleDataRowIdData: {},
|
|
83
|
+
// 渲染中缓存数据
|
|
84
|
+
sourceDataRowIdData: {},
|
|
85
|
+
fullColumnIdData: {},
|
|
86
|
+
fullColumnFieldData: {},
|
|
87
|
+
// 合并单元格的数据
|
|
88
|
+
mergeBodyList: [],
|
|
89
|
+
mergeBodyMaps: {},
|
|
90
|
+
// 合并表尾的数据
|
|
91
|
+
mergeFooterList: [],
|
|
92
|
+
mergeFooterMaps: {},
|
|
93
|
+
// 已合并单元格数据集合
|
|
94
|
+
mergeBodyCellMaps: {},
|
|
95
|
+
// 已合并表尾数据集合
|
|
96
|
+
mergeFooterCellMaps: {},
|
|
97
|
+
// 已展开的行集合
|
|
98
|
+
rowExpandedMaps: {},
|
|
99
|
+
// 懒加载中的展开行的集合
|
|
100
|
+
rowExpandLazyLoadedMaps: {},
|
|
101
|
+
// 已展开的分组行
|
|
102
|
+
rowGroupExpandedMaps: {},
|
|
103
|
+
// 已展开树节点集合
|
|
104
|
+
treeExpandedMaps: {},
|
|
105
|
+
// 懒加载中的树节点的集合
|
|
106
|
+
treeExpandLazyLoadedMaps: {},
|
|
107
|
+
// 复选框属性,已选中的行集合
|
|
108
|
+
selectCheckboxMaps: {},
|
|
109
|
+
// 已标记的对象集
|
|
110
|
+
pendingRowMaps: {},
|
|
111
|
+
// 已新增的临时行
|
|
112
|
+
insertRowMaps: {},
|
|
113
|
+
// 已删除行
|
|
114
|
+
removeRowMaps: {},
|
|
115
|
+
cvCacheMaps: {},
|
|
116
|
+
inited: false,
|
|
117
|
+
tooltipTimeout: null,
|
|
118
|
+
initStatus: false,
|
|
119
|
+
isActivated: false
|
|
120
|
+
};
|
|
121
|
+
}
|
|
6
122
|
const getAllConvertColumns = (columns, parentColumn) => {
|
|
7
123
|
const result = [];
|
|
8
124
|
columns.forEach((column) => {
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import { h, ref, computed, inject, createCommentVNode, reactive, nextTick } from 'vue';
|
|
1
|
+
import { h, ref, computed, inject, createCommentVNode, reactive, nextTick, onUnmounted } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import XEUtils from 'xe-utils';
|
|
4
4
|
import { VxeUI } from '../../ui';
|
|
5
5
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
6
6
|
import { warnLog, errLog } from '../../ui/src/log';
|
|
7
7
|
const { getConfig, getIcon, getI18n, renderer, commands, createEvent, useFns } = VxeUI;
|
|
8
|
+
function createInternalData() {
|
|
9
|
+
return {
|
|
10
|
+
connectTable: null
|
|
11
|
+
};
|
|
12
|
+
}
|
|
8
13
|
export default defineVxeComponent({
|
|
9
14
|
name: 'VxeToolbar',
|
|
10
15
|
props: {
|
|
@@ -54,9 +59,7 @@ export default defineVxeComponent({
|
|
|
54
59
|
connectFlag: 0,
|
|
55
60
|
columns: []
|
|
56
61
|
});
|
|
57
|
-
const internalData =
|
|
58
|
-
connectTable: null
|
|
59
|
-
};
|
|
62
|
+
const internalData = createInternalData();
|
|
60
63
|
const refElem = ref();
|
|
61
64
|
const refMaps = {
|
|
62
65
|
refElem
|
|
@@ -643,6 +646,9 @@ export default defineVxeComponent({
|
|
|
643
646
|
}
|
|
644
647
|
}
|
|
645
648
|
});
|
|
649
|
+
onUnmounted(() => {
|
|
650
|
+
XEUtils.assign(internalData, createInternalData());
|
|
651
|
+
});
|
|
646
652
|
return $xeToolbar;
|
|
647
653
|
},
|
|
648
654
|
render() {
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -31,6 +31,11 @@ const {
|
|
|
31
31
|
const tableComponentPropKeys = Object.keys(_props.default);
|
|
32
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', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', '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
|
+
function createInternalData() {
|
|
35
|
+
return {
|
|
36
|
+
connectTable: null
|
|
37
|
+
};
|
|
38
|
+
}
|
|
34
39
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
35
40
|
name: 'VxeGrid',
|
|
36
41
|
props: Object.assign(Object.assign({}, _props.default), {
|
|
@@ -76,6 +81,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
76
81
|
currentPage: 1
|
|
77
82
|
}
|
|
78
83
|
});
|
|
84
|
+
const internalData = createInternalData();
|
|
79
85
|
const refElem = (0, _vue.ref)();
|
|
80
86
|
const refTable = (0, _vue.ref)();
|
|
81
87
|
const refForm = (0, _vue.ref)();
|
|
@@ -275,6 +281,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
275
281
|
props: props,
|
|
276
282
|
context,
|
|
277
283
|
reactData,
|
|
284
|
+
internalData,
|
|
278
285
|
getRefMaps: () => refMaps,
|
|
279
286
|
getComputeMaps: () => computeMaps
|
|
280
287
|
};
|
|
@@ -1737,6 +1744,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1737
1744
|
});
|
|
1738
1745
|
(0, _vue.onUnmounted)(() => {
|
|
1739
1746
|
globalEvents.off($xeGrid, 'keydown');
|
|
1747
|
+
_xeUtils.default.assign(internalData, createInternalData());
|
|
1740
1748
|
});
|
|
1741
1749
|
$xeGrid.renderVN = renderVN;
|
|
1742
1750
|
(0, _vue.provide)('$xeGrid', $xeGrid);
|
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","setFilterByEvent","sort","setSort","setSortByEvent","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(T,e){let t,{slots:u,emit:o}=e;var R=_xeUtils.default.uniqueId();let n=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],P=useFns.useSize(T).computeSize,j=(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)(),M=(0,_vue.ref)(),i=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=M.value;if(t&&t[r])return t[r](...e)}}),t};let F=r(tableComponentMethodKeys),D=(tableComponentMethodKeys.forEach(r=>{F[r]=(...e)=>{var t=M.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=D.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),q=(0,_vue.computed)(()=>{var e=D.value;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg}),B=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),k=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(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}),O=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,editConfig:r,proxyConfig:o}=T,{isZMax:a,tablePage:l}=j,n=O.value,i=D.value,s=B.value,u=_.value,d=Object.assign({},n);return a&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),o&&(0,_utils.isEnableConf)(i)&&(d.loading=u,t)&&i.seq&&(0,_utils.isEnableConf)(s)&&(d.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),r&&(d.editConfig=Object.assign({},r)),d}),S=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var U=(0,_vue.computed)(()=>B.value.currentPage),K=(0,_vue.computed)(()=>B.value.pageSize),H=(0,_vue.computed)(()=>B.value.total);let b=(0,_vue.computed)(()=>{var e=j.tablePage;return Math.max(Math.ceil(e.total/e.pageSize),1)}),_=(0,_vue.computed)(()=>{var{loading:e,proxyConfig:t}=T,r=j.tableLoading,o=D.value,a=o.showLoading;return e||r&&a&&t&&(0,_utils.isEnableConf)(o)}),N={refElem:s,refTable:M,refForm:i,refToolbar:d,refPager:g},G={computeProxyOpts:D,computePagerOpts:B,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:R,props:T,context:e,reactData:j,getRefMaps:()=>N,getComputeMaps:()=>G},Q=()=>{var e=L.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=M.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,r=D.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},h=e=>{var t=j.tablePage,r=T.pagerConfig,o=B.value;r&&(0,_utils.isEnableConf)(o)&&(e?o[e]&&(t[e]=_xeUtils.default.toNumber(o[e])):({currentPage:r,pageSize:e,total:o}=o,r&&(t.currentPage=r),e&&(t.pageSize=e),o&&(t.total=o)))},$=(e,t)=>{var r=D.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):o)||getI18n(t)},W=(e,t,r)=>{var o=q.value,a=F.getCheckboxRecords();if(o)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 r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},Y=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var n=D.value;r.currentPage=a,r.pageSize=l,V.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(n)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,o)})},J=t=>{var e=M.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=D.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,t.$event)}))},X=e=>{J(e),V.dispatchEvent("sort-change",e,e.$event)},ee=e=>{J(e),V.dispatchEvent("clear-all-sort",e,e.$event)},te=t=>{var e=M.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=D.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,t.$event)}))},re=e=>{te(e),V.dispatchEvent("filter-change",e,e.$event)},oe=e=>{te(e),V.dispatchEvent("clear-all-filter",e,e.$event)},ae=t=>{var e=T.proxyConfig,r=D.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&V.commitProxy("reload").then(e=>{V.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),V.dispatchEvent("form-submit",t,t.$event))},le=e=>{var t=M.value,r=T.proxyConfig;let o=e.$event;var a=D.value;r&&(0,_utils.isEnableConf)(a)&&(t.clearScroll(),V.commitProxy("reload").then(e=>{V.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),V.dispatchEvent("form-reset",e,o)},ne=e=>{V.dispatchEvent("form-submit-invalid",e,e.$event)},ie=e=>{var t=e.$event;V.dispatchEvent("form-toggle-collapse",e,t),V.dispatchEvent("form-collapse",e,t)},se=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>V.recalculate(!0)).then(()=>(setTimeout(()=>V.recalculate(!0),15),j.isZMax))},C=(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},ue=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?r[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},de=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=D.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:V});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:V,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign({ref:i},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:ae,onReset:le,onSubmitInvalid:ne,onCollapse:ie}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},ge=()=>{var t,r,o,a,l,n,i=T.toolbarConfig,s=L.value;if(i&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:V}):(i={},(n=s.slots)&&(t=C(n,"buttons"),r=C(n,"buttonPrefix"),o=C(n,"buttonSuffix"),a=C(n,"tools"),l=C(n,"toolPrefix"),n=C(n,"toolSuffix"),t&&(i.buttons=t),r&&(i.buttonPrefix=r),o&&(i.buttonSuffix=o),a&&(i.tools=a),l&&(i.toolPrefix=l),n)&&(i.toolSuffix=n),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),i))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},ce=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},e({$grid:V})):renderEmptyElement(V)},ve=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},me=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},pe=()=>{var e=T.proxyConfig,t=I.value,r=D.value,o=Object.assign({},be),a=u.empty,l=u.loading,n=u.rowDragIcon||u["row-drag-icon"],i=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=X,o.onClearAllSort=ee),r.filter)&&(o.onFilterChange=re,o.onClearAllFilter=oe),{});return a&&(e.empty=a),l&&(e.loading=l),n&&(e.rowDragIcon=n),i&&(e.columnDragIcon=i),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:M},t),o),e)])},fe=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:V})):renderEmptyElement(V),xe=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=D.value,o=B.value,a=u.pager;return t&&(0,_utils.isEnableConf)(o)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:Y}),ue(o.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},y=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(de());break;case"Toolbar":t.push(ge());break;case"Top":t.push(ce());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ve(),pe(),me()]));break;case"Bottom":t.push(fe());break;case"Pager":t.push(xe());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},be={},_e=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);be[e]=(...e)=>o(t,...e)}),()=>{var e=x.value;if(e.items){let a={};return e.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),a}return{}}),he=()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=D.value,a=x.value;e&&(0,_utils.isEnableConf)(o)&&(t&&(0,_utils.isEnableConf)(a)&&o.form&&a.items&&(j.formData=_e()),r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>A.commitProxy("initial")).then(e=>{A.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},Ce=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&V.triggerZoomEvent(e)};let A={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:V},t))},getEl(){return s.value},commitProxy(t,...d){let{proxyConfig:o,toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=T,s=j.tablePage,v=q.value,m=Z.value;var u=D.value;let p=B.value;var r,a=L.value;let{beforeQuery:f,afterQuery:x,beforeDelete:n,afterDelete:b,beforeSave:_,afterSave:h,ajax:C={}}=u,y=u.response||u.props||{},E=M.value,R=z(),w=null,P=null;P=_xeUtils.default.isString(t)?(r=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,w=a?a.item:null,t):(w=t).code;var l=w?w.params:null;switch(P){case"insert":return E.insert({});case"insert_edit":return E.insert({}).then(({row:e})=>E.setEditRow(e,!0));case"insert_actived":return E.insert({}).then(({row:e})=>E.setEditRow(e,!0));case"mark_cancel":S=P,I=q.value,k=M.value,(O=k.getCheckboxRecords()).length?(k.togglePendingRow(O),F.clearCheckboxRow()):I&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:S,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return W(P,"vxe.grid.removeSelectRecord",()=>E.removeCheckboxRow());case"import":E.importData(l);break;case"open_import":E.openImport(l);break;case"export":E.exportData(l);break;case"open_export":E.openExport(l);break;case"reset_custom":return E.resetCustom(!0);case"initial":case"reload":case"query":{var k=C.query;let n=C.querySuccess,t=C.queryError;if(k){var O="initial"===P,I="reload"===P;if(!O&&j.tableLoading)return(0,_vue.nextTick)();let r=[],a=[],e={};if(i&&((O||I)&&(s.currentPage=1),(0,_utils.isEnableConf)(p))&&(e=Object.assign({},s)),O){if(o&&(0,_utils.isEnableConf)(u)&&u.form&&(R=_e(),j.formData=R),E){let{tableFullColumn:e,fullColumnFieldData:o}=E.internalData;var S=E.getComputeMaps().computeSortOpts;let t=S.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),r=t.map(e=>{var{field:e,order:t}=e,r=o[e];return r&&(r=r.column)&&(r.order=t),{field:e,property:e,order:t}})),a=E.getCheckedFilters()}}else E&&(I?E.clearAll():(r=E.getSortColumns(),a=E.getCheckedFilters()));let l={code:P,button:w,isInited:O,isReload:I,$grid:V,page:e,sort:r.length?r[0]:{},sorts:r,filters:a,form:R,options:k};return j.sortData=r,j.filterData=a,j.tableLoading=!0,Promise.resolve((f||k)(l,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(p)?(o=y.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"page.total"))||0,s.total=_xeUtils.default.toNumber(o),r=y.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/s.pageSize),1),s.currentPage>r&&(s.currentPage=r)):(o=y.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):e)||[])),E?E.loadData(t):(0,_vue.nextTick)(()=>{E&&E.loadData(t)}),x&&x(l,...d),n&&n(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=C.delete,a=C.deleteSuccess,l=C.deleteError;if(o){let e=F.getCheckboxRecords(),t=e.filter(e=>!E.isInsertByRow(e));var U={removeRecords:t};let r={$grid:V,code:P,button:w,body:U,form:R,options:o};if(e.length)return W(P,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((n||o)(r,...d)).then(e=>(j.tableLoading=!1,E.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),b?b(r,...d):A.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):E.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let i=C.save,s=C.saveSuccess,u=C.saveError;if(i){let t=E.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,n={$grid:V,code:P,button:w,body:t,form:R,options:i},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===E.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===E.findRowIndexOf(l,e))),Promise.resolve());return(e=g?E[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((_||i)(n,...d)).then(e=>(j.tableLoading=!1,E.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),h?h(n,...d):A.commitProxy("query"),s&&s(Object.assign(Object.assign({},n),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},n),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(P);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:P,button:w,$grid:V,$table:E},...d):(0,_log.errLog)("vxe.error.notCommands",[P]))}return(0,_vue.nextTick)()},getParams(){return T.params},zoom(){return j.isZMax?A.revert():A.maximize()},isMaximized(){return j.isZMax},maximize(){return se(!0)},revert(){return se()},getFormData:z,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},resetForm(){var e=i.value;return e?e.reset():(0,_vue.nextTick)()},validateForm(){var e=i.value;return e?e.validate():(0,_vue.nextTick)()},validateFormField(e){var t=i.value;return t?t.validateField(e):(0,_vue.nextTick)()},clearFormValidate(e){var t=i.value;return t?t.clearValidate(e):(0,_vue.nextTick)()},homePage(){var e=j.tablePage;return e.currentPage=1,(0,_vue.nextTick)()},homePageByEvent(e){var t=g.value;t&&t.homePageByEvent(e)},endPage(){var e=j.tablePage,t=b.value;return e.currentPage=t,(0,_vue.nextTick)()},endPageByEvent(e){var t=g.value;t&&t.endPageByEvent(e)},setCurrentPage(e){var t=j.tablePage,r=b.value;return t.currentPage=Math.min(r,Math.max(1,_xeUtils.default.toNumber(e))),(0,_vue.nextTick)()},setCurrentPageByEvent(e,t){var r=g.value;r&&r.setCurrentPageByEvent(e,t)},setPageSize(e){var t=j.tablePage;return t.pageSize=Math.max(1,_xeUtils.default.toNumber(e)),(0,_vue.nextTick)()},setPageSizeByEvent(e,t){var r=g.value;r&&r.setPageSizeByEvent(e,t)},getProxyInfo(){var e,t=M.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},ye={extendTableMethods:r,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,r,o,a,l,n=j.isZMax,i=s.value;return i?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=i.parentElement,(!n&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(i)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-ye.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return V.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&V.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){V.triggerToolbarCommitEvent(e,t),V.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){V.triggerToolbarCommitEvent(e,t),V.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){V.zoom(),V.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}};Object.assign(V,F,A,ye,{loadColumn(e){var t=M.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)}});let E=(0,_vue.ref)(0);return(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>T.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>V.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{Q()}),(0,_vue.watch)(U,()=>{h("currentPage")}),(0,_vue.watch)(K,()=>{h("pageSize")}),(0,_vue.watch)(H,()=>{h("total")}),(0,_vue.watch)(()=>T.proxyConfig,()=>{he()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),h(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns,t=D.value;T.formConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),e&&e.length&&V.loadColumn(e),Q(),he()}),globalEvents.on(V,"keydown",Ce)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")}),V.renderVN=()=>{var e=P.value,t=k.value,r=_.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":r}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=S.value,o=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},y(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},y(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"},y(r))]})())},(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","setFilterByEvent","sort","setSort","setSortByEvent","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"];function createInternalData(){return{connectTable:null}}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(T,e){let t,{slots:u,emit:o}=e;var R=_xeUtils.default.uniqueId();let n=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],P=useFns.useSize(T).computeSize,j=(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}}),r=createInternalData(),s=(0,_vue.ref)(),D=(0,_vue.ref)(),i=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var a=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=D.value;if(t&&t[r])return t[r](...e)}}),t};let M=a(tableComponentMethodKeys),F=(tableComponentMethodKeys.forEach(r=>{M[r]=(...e)=>{var t=D.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=F.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),q=(0,_vue.computed)(()=>{var e=F.value;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg}),B=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),k=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(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}),I=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),O=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,editConfig:r,proxyConfig:o}=T,{isZMax:a,tablePage:l}=j,n=I.value,i=F.value,s=B.value,u=N.value,d=Object.assign({},n);return a&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),o&&(0,_utils.isEnableConf)(i)&&(d.loading=u,t)&&i.seq&&(0,_utils.isEnableConf)(s)&&(d.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),r&&(d.editConfig=Object.assign({},r)),d}),U=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var S=(0,_vue.computed)(()=>B.value.currentPage),K=(0,_vue.computed)(()=>B.value.pageSize),H=(0,_vue.computed)(()=>B.value.total);let _=(0,_vue.computed)(()=>{var e=j.tablePage;return Math.max(Math.ceil(e.total/e.pageSize),1)}),N=(0,_vue.computed)(()=>{var{loading:e,proxyConfig:t}=T,r=j.tableLoading,o=F.value,a=o.showLoading;return e||r&&a&&t&&(0,_utils.isEnableConf)(o)}),G={refElem:s,refTable:D,refForm:i,refToolbar:d,refPager:g},Q={computeProxyOpts:F,computePagerOpts:B,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:b},V={xID:R,props:T,context:e,reactData:j,internalData:r,getRefMaps:()=>G,getComputeMaps:()=>Q},W=()=>{var e=L.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=D.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,r=F.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},h=e=>{var t=j.tablePage,r=T.pagerConfig,o=B.value;r&&(0,_utils.isEnableConf)(o)&&(e?o[e]&&(t[e]=_xeUtils.default.toNumber(o[e])):({currentPage:r,pageSize:e,total:o}=o,r&&(t.currentPage=r),e&&(t.pageSize=e),o&&(t.total=o)))},$=(e,t)=>{var r=F.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):o)||getI18n(t)},Y=(e,t,r)=>{var o=q.value,a=M.getCheckboxRecords();if(o)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 r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},J=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var n=F.value;r.currentPage=a,r.pageSize=l,V.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(n)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,o)})},X=t=>{var e=D.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=F.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,t.$event)}))},ee=e=>{X(e),V.dispatchEvent("sort-change",e,e.$event)},te=e=>{X(e),V.dispatchEvent("clear-all-sort",e,e.$event)},re=t=>{var e=D.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=F.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,t.$event)}))},oe=e=>{re(e),V.dispatchEvent("filter-change",e,e.$event)},ae=e=>{re(e),V.dispatchEvent("clear-all-filter",e,e.$event)},le=t=>{var e=T.proxyConfig,r=F.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&V.commitProxy("reload").then(e=>{V.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),V.dispatchEvent("form-submit",t,t.$event))},ne=e=>{var t=D.value,r=T.proxyConfig;let o=e.$event;var a=F.value;r&&(0,_utils.isEnableConf)(a)&&(t.clearScroll(),V.commitProxy("reload").then(e=>{V.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),V.dispatchEvent("form-reset",e,o)},ie=e=>{V.dispatchEvent("form-submit-invalid",e,e.$event)},se=e=>{var t=e.$event;V.dispatchEvent("form-toggle-collapse",e,t),V.dispatchEvent("form-collapse",e,t)},ue=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>V.recalculate(!0)).then(()=>(setTimeout(()=>V.recalculate(!0),15),j.isZMax))},C=(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},de=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?r[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},ge=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=F.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:V});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:V,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign({ref:i},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:le,onReset:ne,onSubmitInvalid:ie,onCollapse:se}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},ce=()=>{var t,r,o,a,l,n,i=T.toolbarConfig,s=L.value;if(i&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:V}):(i={},(n=s.slots)&&(t=C(n,"buttons"),r=C(n,"buttonPrefix"),o=C(n,"buttonSuffix"),a=C(n,"tools"),l=C(n,"toolPrefix"),n=C(n,"toolSuffix"),t&&(i.buttons=t),r&&(i.buttonPrefix=r),o&&(i.buttonSuffix=o),a&&(i.tools=a),l&&(i.toolPrefix=l),n)&&(i.toolSuffix=n),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),i))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},ve=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},e({$grid:V})):renderEmptyElement(V)},me=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},pe=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},fe=()=>{var e=T.proxyConfig,t=O.value,r=F.value,o=Object.assign({},_e),a=u.empty,l=u.loading,n=u.rowDragIcon||u["row-drag-icon"],i=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=ee,o.onClearAllSort=te),r.filter)&&(o.onFilterChange=oe,o.onClearAllFilter=ae),{});return a&&(e.empty=a),l&&(e.loading=l),n&&(e.rowDragIcon=n),i&&(e.columnDragIcon=i),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:D},t),o),e)])},xe=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:V})):renderEmptyElement(V),be=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=F.value,o=B.value,a=u.pager;return t&&(0,_utils.isEnableConf)(o)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:J}),de(o.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},y=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(ge());break;case"Toolbar":t.push(ce());break;case"Top":t.push(ve());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[me(),fe(),pe()]));break;case"Bottom":t.push(xe());break;case"Pager":t.push(be());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},_e={},he=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);_e[e]=(...e)=>o(t,...e)}),()=>{var e=x.value;if(e.items){let a={};return e.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),a}return{}}),Ce=()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=F.value,a=x.value;e&&(0,_utils.isEnableConf)(o)&&(t&&(0,_utils.isEnableConf)(a)&&o.form&&a.items&&(j.formData=he()),r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>A.commitProxy("initial")).then(e=>{A.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},ye=e=>{var t=b.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&V.triggerZoomEvent(e)};let A={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:V},t))},getEl(){return s.value},commitProxy(t,...d){let{proxyConfig:o,toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=T,s=j.tablePage,v=q.value,m=Z.value;var u=F.value;let p=B.value;var r,a=L.value;let{beforeQuery:f,afterQuery:x,beforeDelete:n,afterDelete:b,beforeSave:_,afterSave:h,ajax:C={}}=u,y=u.response||u.props||{},E=D.value,R=z(),w=null,P=null;P=_xeUtils.default.isString(t)?(r=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,w=a?a.item:null,t):(w=t).code;var l=w?w.params:null;switch(P){case"insert":return E.insert({});case"insert_edit":return E.insert({}).then(({row:e})=>E.setEditRow(e,!0));case"insert_actived":return E.insert({}).then(({row:e})=>E.setEditRow(e,!0));case"mark_cancel":U=P,O=q.value,k=D.value,(I=k.getCheckboxRecords()).length?(k.togglePendingRow(I),M.clearCheckboxRow()):O&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:U,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return Y(P,"vxe.grid.removeSelectRecord",()=>E.removeCheckboxRow());case"import":E.importData(l);break;case"open_import":E.openImport(l);break;case"export":E.exportData(l);break;case"open_export":E.openExport(l);break;case"reset_custom":return E.resetCustom(!0);case"initial":case"reload":case"query":{var k=C.query;let n=C.querySuccess,t=C.queryError;if(k){var I="initial"===P,O="reload"===P;if(!I&&j.tableLoading)return(0,_vue.nextTick)();let r=[],a=[],e={};if(i&&((I||O)&&(s.currentPage=1),(0,_utils.isEnableConf)(p))&&(e=Object.assign({},s)),I){if(o&&(0,_utils.isEnableConf)(u)&&u.form&&(R=he(),j.formData=R),E){let{tableFullColumn:e,fullColumnFieldData:o}=E.internalData;var U=E.getComputeMaps().computeSortOpts;let t=U.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),r=t.map(e=>{var{field:e,order:t}=e,r=o[e];return r&&(r=r.column)&&(r.order=t),{field:e,property:e,order:t}})),a=E.getCheckedFilters()}}else E&&(O?E.clearAll():(r=E.getSortColumns(),a=E.getCheckedFilters()));let l={code:P,button:w,isInited:I,isReload:O,$grid:V,page:e,sort:r.length?r[0]:{},sorts:r,filters:a,form:R,options:k};return j.sortData=r,j.filterData=a,j.tableLoading=!0,Promise.resolve((f||k)(l,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(p)?(o=y.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"page.total"))||0,s.total=_xeUtils.default.toNumber(o),r=y.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/s.pageSize),1),s.currentPage>r&&(s.currentPage=r)):(o=y.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):e)||[])),E?E.loadData(t):(0,_vue.nextTick)(()=>{E&&E.loadData(t)}),x&&x(l,...d),n&&n(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=C.delete,a=C.deleteSuccess,l=C.deleteError;if(o){let e=M.getCheckboxRecords(),t=e.filter(e=>!E.isInsertByRow(e));var S={removeRecords:t};let r={$grid:V,code:P,button:w,body:S,form:R,options:o};if(e.length)return Y(P,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((n||o)(r,...d)).then(e=>(j.tableLoading=!1,E.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),b?b(r,...d):A.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):E.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let i=C.save,s=C.saveSuccess,u=C.saveError;if(i){let t=E.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,n={$grid:V,code:P,button:w,body:t,form:R,options:i},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===E.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===E.findRowIndexOf(l,e))),Promise.resolve());return(e=g?E[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((_||i)(n,...d)).then(e=>(j.tableLoading=!1,E.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),h?h(n,...d):A.commitProxy("query"),s&&s(Object.assign(Object.assign({},n),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},n),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var S=commands.get(P);S&&((S=S.tableCommandMethod||S.commandMethod)?S({code:P,button:w,$grid:V,$table:E},...d):(0,_log.errLog)("vxe.error.notCommands",[P]))}return(0,_vue.nextTick)()},getParams(){return T.params},zoom(){return j.isZMax?A.revert():A.maximize()},isMaximized(){return j.isZMax},maximize(){return ue(!0)},revert(){return ue()},getFormData:z,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},resetForm(){var e=i.value;return e?e.reset():(0,_vue.nextTick)()},validateForm(){var e=i.value;return e?e.validate():(0,_vue.nextTick)()},validateFormField(e){var t=i.value;return t?t.validateField(e):(0,_vue.nextTick)()},clearFormValidate(e){var t=i.value;return t?t.clearValidate(e):(0,_vue.nextTick)()},homePage(){var e=j.tablePage;return e.currentPage=1,(0,_vue.nextTick)()},homePageByEvent(e){var t=g.value;t&&t.homePageByEvent(e)},endPage(){var e=j.tablePage,t=_.value;return e.currentPage=t,(0,_vue.nextTick)()},endPageByEvent(e){var t=g.value;t&&t.endPageByEvent(e)},setCurrentPage(e){var t=j.tablePage,r=_.value;return t.currentPage=Math.min(r,Math.max(1,_xeUtils.default.toNumber(e))),(0,_vue.nextTick)()},setCurrentPageByEvent(e,t){var r=g.value;r&&r.setCurrentPageByEvent(e,t)},setPageSize(e){var t=j.tablePage;return t.pageSize=Math.max(1,_xeUtils.default.toNumber(e)),(0,_vue.nextTick)()},setPageSizeByEvent(e,t){var r=g.value;r&&r.setPageSizeByEvent(e,t)},getProxyInfo(){var e,t=D.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},Ee={extendTableMethods:a,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,r,o,a,l,n=j.isZMax,i=s.value;return i?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=i.parentElement,(!n&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(i)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-Ee.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return V.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&V.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){V.triggerToolbarCommitEvent(e,t),V.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){V.triggerToolbarCommitEvent(e,t),V.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){V.zoom(),V.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}};Object.assign(V,M,A,Ee,{loadColumn(e){var t=D.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)}});let E=(0,_vue.ref)(0);return(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>T.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>V.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{W()}),(0,_vue.watch)(S,()=>{h("currentPage")}),(0,_vue.watch)(K,()=>{h("pageSize")}),(0,_vue.watch)(H,()=>{h("total")}),(0,_vue.watch)(()=>T.proxyConfig,()=>{Ce()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),h(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns,t=F.value;T.formConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),e&&e.length&&V.loadColumn(e),W(),Ce()}),globalEvents.on(V,"keydown",ye)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown"),_xeUtils.default.assign(r,createInternalData())}),V.renderVN=()=>{var e=P.value,t=k.value,r=N.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":r}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=U.value,o=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},y(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},y(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"},y(r))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
|