vxe-table 4.7.86 → 4.7.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -17
- package/es/grid/src/grid.js +4 -4
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/table.js +67 -42
- package/es/table/src/util.js +22 -12
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +4 -4
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +104 -75
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/table.js +77 -59
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +25 -11
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +4 -4
- package/packages/table/src/table.ts +67 -42
- package/packages/table/src/util.ts +22 -12
- package/styles/theme/base.scss +1 -0
- /package/es/{iconfont.1728357720671.ttf → iconfont.1729047473391.ttf} +0 -0
- /package/es/{iconfont.1728357720671.woff → iconfont.1729047473391.woff} +0 -0
- /package/es/{iconfont.1728357720671.woff2 → iconfont.1729047473391.woff2} +0 -0
- /package/lib/{iconfont.1728357720671.ttf → iconfont.1729047473391.ttf} +0 -0
- /package/lib/{iconfont.1728357720671.woff → iconfont.1729047473391.woff} +0 -0
- /package/lib/{iconfont.1728357720671.woff2 → iconfont.1729047473391.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -362,13 +362,13 @@ export default defineComponent({
|
|
|
362
362
|
return '';
|
|
363
363
|
});
|
|
364
364
|
const computeValidOpts = computed(() => {
|
|
365
|
-
return Object.assign({},
|
|
365
|
+
return Object.assign({}, getConfig().table.validConfig, props.validConfig);
|
|
366
366
|
});
|
|
367
367
|
const computeSXOpts = computed(() => {
|
|
368
|
-
return Object.assign({},
|
|
368
|
+
return Object.assign({}, getConfig().table.scrollX, props.scrollX);
|
|
369
369
|
});
|
|
370
370
|
const computeSYOpts = computed(() => {
|
|
371
|
-
return Object.assign({},
|
|
371
|
+
return Object.assign({}, getConfig().table.scrollY, props.scrollY);
|
|
372
372
|
});
|
|
373
373
|
const computeRowHeightMaps = computed(() => {
|
|
374
374
|
return {
|
|
@@ -379,29 +379,29 @@ export default defineComponent({
|
|
|
379
379
|
};
|
|
380
380
|
});
|
|
381
381
|
const computeColumnOpts = computed(() => {
|
|
382
|
-
return Object.assign({},
|
|
382
|
+
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
|
|
383
383
|
});
|
|
384
384
|
const computeRowOpts = computed(() => {
|
|
385
|
-
return Object.assign({},
|
|
385
|
+
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
386
386
|
});
|
|
387
387
|
const computeResizeOpts = computed(() => {
|
|
388
|
-
return Object.assign({},
|
|
388
|
+
return Object.assign({}, getConfig().table.resizeConfig, props.resizeConfig);
|
|
389
389
|
});
|
|
390
390
|
const computeResizableOpts = computed(() => {
|
|
391
|
-
return Object.assign({},
|
|
391
|
+
return Object.assign({}, getConfig().table.resizableConfig, props.resizableConfig);
|
|
392
392
|
});
|
|
393
393
|
const computeSeqOpts = computed(() => {
|
|
394
|
-
return Object.assign({ startIndex: 0 },
|
|
394
|
+
return Object.assign({ startIndex: 0 }, getConfig().table.seqConfig, props.seqConfig);
|
|
395
395
|
});
|
|
396
396
|
const computeRadioOpts = computed(() => {
|
|
397
|
-
return Object.assign({},
|
|
397
|
+
return Object.assign({}, getConfig().table.radioConfig, props.radioConfig);
|
|
398
398
|
});
|
|
399
399
|
const computeCheckboxOpts = computed(() => {
|
|
400
|
-
return Object.assign({},
|
|
400
|
+
return Object.assign({}, getConfig().table.checkboxConfig, props.checkboxConfig);
|
|
401
401
|
});
|
|
402
402
|
let computeTooltipOpts = ref();
|
|
403
403
|
computeTooltipOpts = computed(() => {
|
|
404
|
-
return Object.assign({},
|
|
404
|
+
return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig);
|
|
405
405
|
});
|
|
406
406
|
const computeTipConfig = computed(() => {
|
|
407
407
|
const tooltipOpts = computeTooltipOpts.value;
|
|
@@ -412,31 +412,31 @@ export default defineComponent({
|
|
|
412
412
|
return Object.assign({ isArrow: false }, tooltipOpts);
|
|
413
413
|
});
|
|
414
414
|
const computeEditOpts = computed(() => {
|
|
415
|
-
return Object.assign({},
|
|
415
|
+
return Object.assign({}, getConfig().table.editConfig, props.editConfig);
|
|
416
416
|
});
|
|
417
417
|
const computeSortOpts = computed(() => {
|
|
418
|
-
return Object.assign({ orders: ['asc', 'desc', null] },
|
|
418
|
+
return Object.assign({ orders: ['asc', 'desc', null] }, getConfig().table.sortConfig, props.sortConfig);
|
|
419
419
|
});
|
|
420
420
|
const computeFilterOpts = computed(() => {
|
|
421
|
-
return Object.assign({},
|
|
421
|
+
return Object.assign({}, getConfig().table.filterConfig, props.filterConfig);
|
|
422
422
|
});
|
|
423
423
|
const computeMouseOpts = computed(() => {
|
|
424
|
-
return Object.assign({},
|
|
424
|
+
return Object.assign({}, getConfig().table.mouseConfig, props.mouseConfig);
|
|
425
425
|
});
|
|
426
426
|
const computeAreaOpts = computed(() => {
|
|
427
|
-
return Object.assign({},
|
|
427
|
+
return Object.assign({}, getConfig().table.areaConfig, props.areaConfig);
|
|
428
428
|
});
|
|
429
429
|
const computeKeyboardOpts = computed(() => {
|
|
430
|
-
return Object.assign({},
|
|
430
|
+
return Object.assign({}, getConfig().table.keyboardConfig, props.keyboardConfig);
|
|
431
431
|
});
|
|
432
432
|
const computeClipOpts = computed(() => {
|
|
433
|
-
return Object.assign({},
|
|
433
|
+
return Object.assign({}, getConfig().table.clipConfig, props.clipConfig);
|
|
434
434
|
});
|
|
435
435
|
const computeFNROpts = computed(() => {
|
|
436
|
-
return Object.assign({},
|
|
436
|
+
return Object.assign({}, getConfig().table.fnrConfig, props.fnrConfig);
|
|
437
437
|
});
|
|
438
438
|
const computeMenuOpts = computed(() => {
|
|
439
|
-
return Object.assign({},
|
|
439
|
+
return Object.assign({}, getConfig().table.menuConfig, props.menuConfig);
|
|
440
440
|
});
|
|
441
441
|
const computeHeaderMenu = computed(() => {
|
|
442
442
|
const menuOpts = computeMenuOpts.value;
|
|
@@ -471,31 +471,31 @@ export default defineComponent({
|
|
|
471
471
|
return rest;
|
|
472
472
|
});
|
|
473
473
|
const computeExportOpts = computed(() => {
|
|
474
|
-
return Object.assign({},
|
|
474
|
+
return Object.assign({}, getConfig().table.exportConfig, props.exportConfig);
|
|
475
475
|
});
|
|
476
476
|
const computeImportOpts = computed(() => {
|
|
477
|
-
return Object.assign({},
|
|
477
|
+
return Object.assign({}, getConfig().table.importConfig, props.importConfig);
|
|
478
478
|
});
|
|
479
479
|
const computePrintOpts = computed(() => {
|
|
480
|
-
return Object.assign({},
|
|
480
|
+
return Object.assign({}, getConfig().table.printConfig, props.printConfig);
|
|
481
481
|
});
|
|
482
482
|
const computeExpandOpts = computed(() => {
|
|
483
|
-
return Object.assign({},
|
|
483
|
+
return Object.assign({}, getConfig().table.expandConfig, props.expandConfig);
|
|
484
484
|
});
|
|
485
485
|
const computeTreeOpts = computed(() => {
|
|
486
|
-
return Object.assign({},
|
|
486
|
+
return Object.assign({}, getConfig().table.treeConfig, props.treeConfig);
|
|
487
487
|
});
|
|
488
488
|
const computeEmptyOpts = computed(() => {
|
|
489
|
-
return Object.assign({},
|
|
489
|
+
return Object.assign({}, getConfig().table.emptyRender, props.emptyRender);
|
|
490
490
|
});
|
|
491
491
|
const computeLoadingOpts = computed(() => {
|
|
492
|
-
return Object.assign({},
|
|
492
|
+
return Object.assign({}, getConfig().table.loadingConfig, props.loadingConfig);
|
|
493
493
|
});
|
|
494
494
|
const computeCellOffsetWidth = computed(() => {
|
|
495
495
|
return props.border ? Math.max(2, Math.ceil(reactData.scrollbarWidth / reactData.tableColumn.length)) : 1;
|
|
496
496
|
});
|
|
497
497
|
const computeCustomOpts = computed(() => {
|
|
498
|
-
return Object.assign({},
|
|
498
|
+
return Object.assign({}, getConfig().table.customConfig, props.customConfig);
|
|
499
499
|
});
|
|
500
500
|
const computeAutoWidthColumnList = computed(() => {
|
|
501
501
|
const { visibleColumn } = internalData;
|
|
@@ -724,7 +724,7 @@ export default defineComponent({
|
|
|
724
724
|
}
|
|
725
725
|
return { rowHeight: 0, visibleSize: 8 };
|
|
726
726
|
};
|
|
727
|
-
const
|
|
727
|
+
const calculateMergerOffsetIndex = (list, offsetItem, type) => {
|
|
728
728
|
for (let mcIndex = 0, len = list.length; mcIndex < len; mcIndex++) {
|
|
729
729
|
const mergeItem = list[mcIndex];
|
|
730
730
|
const { startIndex, endIndex } = offsetItem;
|
|
@@ -1059,7 +1059,9 @@ export default defineComponent({
|
|
|
1059
1059
|
}
|
|
1060
1060
|
else {
|
|
1061
1061
|
const labelEl = cellEl.firstChild;
|
|
1062
|
-
|
|
1062
|
+
if (labelEl) {
|
|
1063
|
+
titleWidth = labelEl.offsetWidth;
|
|
1064
|
+
}
|
|
1063
1065
|
}
|
|
1064
1066
|
if (titleWidth) {
|
|
1065
1067
|
colWidth = Math.max(colWidth, Math.ceil(titleWidth) + 4);
|
|
@@ -1294,6 +1296,7 @@ export default defineComponent({
|
|
|
1294
1296
|
const { treeConfig } = props;
|
|
1295
1297
|
const { treeExpandedMaps } = reactData;
|
|
1296
1298
|
const treeOpts = computeTreeOpts.value;
|
|
1299
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1297
1300
|
if (treeConfig && treeOpts.transform) {
|
|
1298
1301
|
const fullData = [];
|
|
1299
1302
|
const expandMaps = {};
|
|
@@ -1304,7 +1307,7 @@ export default defineComponent({
|
|
|
1304
1307
|
expandMaps[rowid] = 1;
|
|
1305
1308
|
fullData.push(row);
|
|
1306
1309
|
}
|
|
1307
|
-
}, { children:
|
|
1310
|
+
}, { children: childrenField });
|
|
1308
1311
|
internalData.afterFullData = fullData;
|
|
1309
1312
|
updateScrollYStatus(fullData);
|
|
1310
1313
|
return fullData;
|
|
@@ -1321,6 +1324,7 @@ export default defineComponent({
|
|
|
1321
1324
|
const filterOpts = computeFilterOpts.value;
|
|
1322
1325
|
const sortOpts = computeSortOpts.value;
|
|
1323
1326
|
const treeOpts = computeTreeOpts.value;
|
|
1327
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1324
1328
|
const { transform } = treeOpts;
|
|
1325
1329
|
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
|
|
1326
1330
|
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts;
|
|
@@ -1379,7 +1383,12 @@ export default defineComponent({
|
|
|
1379
1383
|
};
|
|
1380
1384
|
if (treeConfig && transform) {
|
|
1381
1385
|
// 筛选虚拟树
|
|
1382
|
-
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter,
|
|
1386
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
|
|
1387
|
+
original: true,
|
|
1388
|
+
isEvery: true,
|
|
1389
|
+
children: treeOpts.mapChildrenField,
|
|
1390
|
+
mapChildren: childrenField
|
|
1391
|
+
});
|
|
1383
1392
|
tableData = tableTree;
|
|
1384
1393
|
}
|
|
1385
1394
|
else {
|
|
@@ -1390,7 +1399,12 @@ export default defineComponent({
|
|
|
1390
1399
|
else {
|
|
1391
1400
|
if (treeConfig && transform) {
|
|
1392
1401
|
// 还原虚拟树
|
|
1393
|
-
tableTree = XEUtils.searchTree(tableFullTreeData, () => true,
|
|
1402
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1403
|
+
original: true,
|
|
1404
|
+
isEvery: true,
|
|
1405
|
+
children: treeOpts.mapChildrenField,
|
|
1406
|
+
mapChildren: childrenField
|
|
1407
|
+
});
|
|
1394
1408
|
tableData = tableTree;
|
|
1395
1409
|
}
|
|
1396
1410
|
else {
|
|
@@ -1427,7 +1441,12 @@ export default defineComponent({
|
|
|
1427
1441
|
else {
|
|
1428
1442
|
if (treeConfig && transform) {
|
|
1429
1443
|
// 还原虚拟树
|
|
1430
|
-
tableTree = XEUtils.searchTree(tableFullTreeData, () => true,
|
|
1444
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1445
|
+
original: true,
|
|
1446
|
+
isEvery: true,
|
|
1447
|
+
children: treeOpts.mapChildrenField,
|
|
1448
|
+
mapChildren: childrenField
|
|
1449
|
+
});
|
|
1431
1450
|
tableData = tableTree;
|
|
1432
1451
|
}
|
|
1433
1452
|
else {
|
|
@@ -2354,7 +2373,7 @@ export default defineComponent({
|
|
|
2354
2373
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
|
|
2355
2374
|
endIndex: toVisibleIndex + visibleSize + offsetSize
|
|
2356
2375
|
};
|
|
2357
|
-
|
|
2376
|
+
calculateMergerOffsetIndex(mergeList.concat(mergeFooterList), offsetItem, 'col');
|
|
2358
2377
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
|
|
2359
2378
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
2360
2379
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -2641,7 +2660,7 @@ export default defineComponent({
|
|
|
2641
2660
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
|
|
2642
2661
|
endIndex: toVisibleIndex + visibleSize + offsetSize
|
|
2643
2662
|
};
|
|
2644
|
-
|
|
2663
|
+
calculateMergerOffsetIndex(mergeList, offsetItem, 'row');
|
|
2645
2664
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
|
|
2646
2665
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
2647
2666
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -5402,11 +5421,13 @@ export default defineComponent({
|
|
|
5402
5421
|
cacheRowMap(isSource) {
|
|
5403
5422
|
const { treeConfig } = props;
|
|
5404
5423
|
const treeOpts = computeTreeOpts.value;
|
|
5405
|
-
|
|
5424
|
+
const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
|
|
5406
5425
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
5407
5426
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
5408
5427
|
const rowkey = getRowkey($xeTable);
|
|
5409
5428
|
const isLazy = treeConfig && treeOpts.lazy;
|
|
5429
|
+
const fullAllDataRowIdMaps = {};
|
|
5430
|
+
const fullDataRowIdMaps = {};
|
|
5410
5431
|
const handleRow = (row, index, items, path, parent, nodes) => {
|
|
5411
5432
|
let rowid = getRowid($xeTable, row);
|
|
5412
5433
|
const seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
|
|
@@ -5418,16 +5439,20 @@ export default defineComponent({
|
|
|
5418
5439
|
if (isLazy && row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
|
|
5419
5440
|
row[childrenField] = null;
|
|
5420
5441
|
}
|
|
5421
|
-
|
|
5442
|
+
let cacheItem = fullAllDataRowIdData[rowid];
|
|
5443
|
+
if (!cacheItem) {
|
|
5444
|
+
cacheItem = { row, rowid, seq, index: -1, _index: -1, $index: -1, items, parent, level };
|
|
5445
|
+
}
|
|
5422
5446
|
if (isSource) {
|
|
5423
|
-
|
|
5447
|
+
cacheItem.index = treeConfig && parent ? -1 : index;
|
|
5448
|
+
fullDataRowIdMaps[rowid] = cacheItem;
|
|
5424
5449
|
}
|
|
5425
|
-
|
|
5450
|
+
fullAllDataRowIdMaps[rowid] = cacheItem;
|
|
5426
5451
|
};
|
|
5427
5452
|
if (isSource) {
|
|
5428
|
-
|
|
5453
|
+
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
5429
5454
|
}
|
|
5430
|
-
|
|
5455
|
+
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
5431
5456
|
if (treeConfig) {
|
|
5432
5457
|
XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField });
|
|
5433
5458
|
}
|
package/es/table/src/util.js
CHANGED
|
@@ -362,30 +362,37 @@ export function rowToVisible($xeTable, row) {
|
|
|
362
362
|
export function colToVisible($xeTable, column) {
|
|
363
363
|
const { reactData, internalData } = $xeTable;
|
|
364
364
|
const { refTableBody } = $xeTable.getRefMaps();
|
|
365
|
-
const { scrollXLoad } = reactData;
|
|
365
|
+
const { columnStore, scrollXLoad } = reactData;
|
|
366
366
|
const { visibleColumn } = internalData;
|
|
367
|
+
const { leftList, rightList } = columnStore;
|
|
367
368
|
const tableBody = refTableBody.value;
|
|
368
369
|
const bodyElem = tableBody ? tableBody.$el : null;
|
|
370
|
+
let offsetFixedLeft = 0;
|
|
371
|
+
leftList.forEach(item => {
|
|
372
|
+
offsetFixedLeft += item.renderWidth;
|
|
373
|
+
});
|
|
374
|
+
let offsetFixedRight = 0;
|
|
375
|
+
rightList.forEach(item => {
|
|
376
|
+
offsetFixedRight += item.renderWidth;
|
|
377
|
+
});
|
|
369
378
|
if (bodyElem) {
|
|
379
|
+
const bodyWidth = bodyElem.clientWidth;
|
|
380
|
+
const bodySrcollLeft = bodyElem.scrollLeft;
|
|
370
381
|
const tdElem = bodyElem.querySelector(`.${column.id}`);
|
|
371
382
|
if (tdElem) {
|
|
372
|
-
const bodyWidth = bodyElem.clientWidth;
|
|
373
|
-
const bodySrcollLeft = bodyElem.scrollLeft;
|
|
374
383
|
const tdOffsetParent = tdElem.offsetParent;
|
|
375
384
|
const tdOffsetLeft = tdElem.offsetLeft + (tdOffsetParent ? tdOffsetParent.offsetLeft : 0);
|
|
376
385
|
const tdWidth = tdElem.clientWidth;
|
|
377
|
-
//
|
|
378
|
-
if (tdOffsetLeft < bodySrcollLeft
|
|
379
|
-
|
|
380
|
-
return $xeTable.scrollTo(tdOffsetLeft);
|
|
386
|
+
// 检测是否在可视区中
|
|
387
|
+
if (tdOffsetLeft < (bodySrcollLeft + offsetFixedLeft)) {
|
|
388
|
+
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - 1);
|
|
381
389
|
}
|
|
382
|
-
else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft) {
|
|
383
|
-
|
|
384
|
-
return $xeTable.scrollTo(bodySrcollLeft + tdWidth);
|
|
390
|
+
else if ((tdOffsetLeft + tdWidth) >= (bodyWidth + bodySrcollLeft - offsetFixedRight)) {
|
|
391
|
+
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - offsetFixedRight + 1);
|
|
385
392
|
}
|
|
386
393
|
}
|
|
387
394
|
else {
|
|
388
|
-
//
|
|
395
|
+
// 检测是否在虚拟渲染可视区中
|
|
389
396
|
if (scrollXLoad) {
|
|
390
397
|
let scrollLeft = 0;
|
|
391
398
|
for (let index = 0; index < visibleColumn.length; index++) {
|
|
@@ -395,7 +402,10 @@ export function colToVisible($xeTable, column) {
|
|
|
395
402
|
}
|
|
396
403
|
scrollLeft += currCol.renderWidth;
|
|
397
404
|
}
|
|
398
|
-
|
|
405
|
+
if (scrollLeft < bodySrcollLeft) {
|
|
406
|
+
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - 1);
|
|
407
|
+
}
|
|
408
|
+
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - offsetFixedRight + 1);
|
|
399
409
|
}
|
|
400
410
|
}
|
|
401
411
|
}
|
package/es/ui/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { getFuncText } from './src/utils';
|
|
3
|
-
export const version = "4.7.
|
|
3
|
+
export const version = "4.7.88";
|
|
4
4
|
VxeUI.version = version;
|
|
5
|
-
VxeUI.tableVersion = "4.7.
|
|
5
|
+
VxeUI.tableVersion = "4.7.88";
|
|
6
6
|
VxeUI.setConfig({
|
|
7
7
|
emptyCell: ' ',
|
|
8
8
|
table: {
|
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -116,16 +116,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
116
116
|
return proxyOpts.showActiveMsg;
|
|
117
117
|
});
|
|
118
118
|
const computePagerOpts = (0, _vue.computed)(() => {
|
|
119
|
-
return Object.assign({},
|
|
119
|
+
return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig);
|
|
120
120
|
});
|
|
121
121
|
const computeFormOpts = (0, _vue.computed)(() => {
|
|
122
|
-
return Object.assign({},
|
|
122
|
+
return Object.assign({}, getConfig().grid.formConfig, props.formConfig);
|
|
123
123
|
});
|
|
124
124
|
const computeToolbarOpts = (0, _vue.computed)(() => {
|
|
125
|
-
return Object.assign({},
|
|
125
|
+
return Object.assign({}, getConfig().grid.toolbarConfig, props.toolbarConfig);
|
|
126
126
|
});
|
|
127
127
|
const computeZoomOpts = (0, _vue.computed)(() => {
|
|
128
|
-
return Object.assign({},
|
|
128
|
+
return Object.assign({}, getConfig().grid.zoomConfig, props.zoomConfig);
|
|
129
129
|
});
|
|
130
130
|
const computeStyles = (0, _vue.computed)(() => {
|
|
131
131
|
return reactData.isZMax ? {
|
package/lib/grid/src/grid.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getData","getCheckboxRecords","getParentRow","getRowSeq","getRowById","getRowid","getTableData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","isCheckedByCheckboxRow","isIndeterminateByCheckboxRow","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","setRadioRow","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(G,e){const{slots:i,emit:r}=e;var y=_xeUtils.default.uniqueId();const l=_ui.VxeUI.getComponent("VxeForm"),u=_ui.VxeUI.getComponent("VxePager"),R=useFns.useSize(G)["computeSize"],Q=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),d=(0,_vue.ref)(),W=(0,_vue.ref)(),g=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)(),x=(0,_vue.ref)();var t=e=>{const t={};return e.forEach(o=>{t[o]=(...e)=>{var t=W.value;if(t&&t[o])return t[o](...e)}}),t};const Y=t(tableComponentMethodKeys),J=(tableComponentMethodKeys.forEach(o=>{Y[o]=(...e)=>{var t=W.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),G.proxyConfig))),ie=(0,_vue.computed)(()=>{var e=J.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),X=(0,_vue.computed)(()=>{return J.value.showActiveMsg}),ee=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.pagerConfig,!0),G.pagerConfig)),b=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.formConfig,!0),G.formConfig)),te=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.toolbarConfig,!0),G.toolbarConfig)),o=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.zoomConfig,!0),G.zoomConfig)),w=(0,_vue.computed)(()=>Q.isZMax?{zIndex:Q.tZindex}:null),O=(0,_vue.computed)(()=>{const t={},o=G;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=G,{isZMax:n,tableLoading:s,tablePage:i,tableData:l}=Q,u=O.value,d=J.value,g=ee.value,c=Object.assign({},u);return n&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||s,c.data=l,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(i.currentPage-1)*i.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),k=(0,_vue.computed)(()=>{var e=G["layouts"];return e&&e.length?e:getConfig().grid.layouts||["Form","Toolbar","Top","Table","Bottom","Pager"]}),U={refElem:d,refTable:W,refForm:g,refToolbar:n,refPager:c},P={computeProxyOpts:J,computePagerOpts:ee,computeFormOpts:b,computeToolbarOpts:te,computeZoomOpts:o},oe={xID:y,props:G,context:e,reactData:Q,getRefMaps:()=>U,getComputeMaps:()=>P},a=()=>{var e=te.value;G.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=W.value,t=n.value;e&&t&&e.connect(t)})},re=()=>{var e=G["proxyConfig"],t=Q["formData"],o=J.value,r=b.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},s=()=>{var e=Q["tablePage"],t=G["pagerConfig"],o=ee.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},ae=(e,t)=>{var o=J.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):r)||getI18n(t)},ne=(e,t,o)=>{var r=X.value,a=Y.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},j=e=>{var t=G["proxyConfig"],o=Q["tablePage"];const{$event:r,currentPage:a,pageSize:n}=e;var s=J.value;o.currentPage=a,o.pageSize=n,se.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(s)&&se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,r)})},T=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeSortOpts"],r=J.value;e.value.remote&&(Q.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("sort-change",t,t.$event)},D=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeFilterOpts"],r=J.value;e.value.remote&&(Q.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("filter-change",t,t.$event)},V=t=>{var e=G["proxyConfig"],o=J.value;e&&(0,_utils.isEnableConf)(o)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),se.dispatchEvent("form-submit",t,t.$event)},S=e=>{var t=G["proxyConfig"];const o=e["$event"];var r=J.value;t&&(0,_utils.isEnableConf)(r)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)}),se.dispatchEvent("form-reset",e,o)},q=e=>{se.dispatchEvent("form-submit-invalid",e,e.$event)},M=e=>{var t=e["$event"];(0,_vue.nextTick)(()=>Y.recalculate(!0)),se.dispatchEvent("form-toggle-collapse",e,t),se.dispatchEvent("form-collapse",e,t)},_=e=>{var t=Q["isZMax"];return(e?!t:t)&&(Q.isZMax=!t,Q.tZindex<(0,_utils.getLastZIndex)())&&(Q.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>Y.recalculate(!0)).then(()=>Q.isZMax)},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(i[e])return i[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},F=()=>{var{formConfig:e,proxyConfig:t}=G,o=Q["formData"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(a)||i.form){let e=[];if(i.form)e=i.form({$grid:oe});else if(a.items){const n={};if(!a.inited){a.inited=!0;const s=r.beforeItem;r&&s&&a.items.forEach(e=>{s({$grid:oe,item:e})})}a.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(n[e]=i[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:g},Object.assign({},a,{data:t&&(0,_utils.isEnableConf)(r)&&r.form?o:a.data})),{onSubmit:V,onReset:S,onSubmitInvalid:q,onCollapse:M}),n))}return(0,_vue.h)("div",{ref:v,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},N=()=>{var t,o,r=G["toolbarConfig"],a=te.value;if(r&&(0,_utils.isEnableConf)(a)||i.toolbar){let e=[];return i.toolbar?e=i.toolbar({$grid:oe}):(r={},(o=a.slots)&&(t=C(o,"buttons"),o=C(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:n},a),r))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},L=()=>i.top?(0,_vue.h)("div",{ref:f,key:"top",class:"vxe-grid--top-wrapper"},i.top({$grid:oe})):(0,_vue.createCommentVNode)(),$=()=>{var e=i.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},z=()=>{var e=i.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},Z=()=>{var e=G["proxyConfig"],t=I.value,o=J.value,r=Object.assign({},H);const a=i.empty,n=i.loading;e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=T),o.filter)&&(r.onFilterChange=D);e={};return a&&(e.empty=()=>a({$grid:oe})),n&&(e.loading=()=>n({$grid:oe})),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:W},t),r),e)])},B=()=>i.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},i.bottom({$grid:oe})):(0,_vue.createCommentVNode)(),A=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=G,n=J.value,s=ee.value;if(a&&(0,_utils.isEnableConf)(s)||i.pager){let e=[];return i.pager?e=i.pager({$grid:oe}):(a={},(o=s.slots)&&(t=C(o,"left"),o=C(o,"right"),t&&(a.left=t),o)&&(a.right=o),u&&e.push((0,_vue.h)(u,Object.assign(Object.assign(Object.assign({ref:c},s),r&&(0,_utils.isEnableConf)(n)?Q.tablePage:{}),{onPageChange:j}),a))),(0,_vue.h)("div",{ref:x,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},H={},K=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);H[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=G,o=Q["proxyInited"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items){const n={};a.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r["defaultValue"],_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),n[o]=e}}),Q.formData=n}o||!(Q.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>se.commitProxy("_init")).then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),le=e=>{var t=o.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&Q.isZMax&&!1!==t.escRestore&&h.triggerZoomEvent(e)};const se={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:oe},t))},commitProxy(t,...r){const{toolbarConfig:q,pagerConfig:a,editRules:M,validConfig:F}=G,n=Q["tablePage"],N=X.value,o=ie.value;var e=J.value;const L=ee.value;var s=te.value;const{beforeQuery:$,afterQuery:z,beforeDelete:Z,afterDelete:B,beforeSave:A,afterSave:H,ajax:i={}}=e,l=e.response||e.props||{},u=W.value;var d=re();let g=null,c=null;c=_xeUtils.default.isString(t)?(e=s["buttons"],s=q&&(0,_utils.isEnableConf)(s)&&e?_xeUtils.default.findTree(e,e=>e.code===t,{children:"dropdowns"}):null,g=s?s.item:null,t):(g=t).code;var v=g?g.params:null;switch(c){case"insert":return u.insert({});case"insert_edit":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"insert_actived":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"mark_cancel":f=c,x=X.value,m=W.value,(p=m.getCheckboxRecords()).length?(m.togglePendingRow(p),Y.clearCheckboxRow()):x&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:f,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return ne(c,"vxe.grid.removeSelectRecord",()=>u.removeCheckboxRow());case"import":u.importData(v);break;case"open_import":u.openImport(v);break;case"export":u.exportData(v);break;case"open_export":u.openExport(v);break;case"reset_custom":return u.resetColumn(!0);case"_init":case"reload":case"query":{var m=i.query;const _=i.querySuccess,C=i.queryError;if(m){var f,p="_init"===c,x="reload"===c;let t=[],o=[],e={};if(a&&((p||x)&&(n.currentPage=1),(0,_utils.isEnableConf)(L))&&(e=Object.assign({},n)),p){let e=null;u&&(f=u.getComputeMaps()["computeSortOpts"],b=f.value,e=b.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),u&&(o=u.getCheckedFilters())}else u&&(x?u.clearAll():(t=u.getSortColumns(),o=u.getCheckedFilters()));const h={code:c,button:g,isInited:p,isReload:x,$grid:oe,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:d,options:m};return Q.sortData=t,Q.filterData=o,Q.tableLoading=!0,Promise.resolve(($||m)(h,...r)).then(e=>{var t,o;return Q.tableLoading=!1,e?a&&(0,_utils.isEnableConf)(L)?(o=l.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=l.result,Q.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:oe}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=l.list,Q.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):e)||[]):Q.tableData=[],z&&z(h,...r),_&&_(Object.assign(Object.assign({},h),{response:e})),{status:!0}}).catch(e=>(Q.tableLoading=!1,C&&C(Object.assign(Object.assign({},h),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{const E=i.delete,y=i.deleteSuccess,R=i.deleteError;if(E){const w=Y.getCheckboxRecords(),O=w.filter(e=>!u.isInsertByRow(e));var b={removeRecords:O};const I={$grid:oe,code:c,button:g,body:b,form:d,options:E};if(w.length)return ne(c,"vxe.grid.deleteSelectRecord",()=>O.length?(Q.tableLoading=!0,Promise.resolve((Z||E)(I,...r)).then(e=>(Q.tableLoading=!1,u.setPendingRow(O,!1),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.delSuccess"),status:"success"}),B?B(I,...r):se.commitProxy("query"),y&&y(Object.assign(Object.assign({},I),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),R&&R(Object.assign(Object.assign({},I),{response:e})),{status:!1}))):u.remove(w));N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{const k=i.save,U=i.saveSuccess,P=i.saveError;if(k){const j=u.getRecordset(),{insertRecords:T,removeRecords:K,updateRecords:D,pendingRecords:V}=j,S={$grid:oe,code:c,button:g,body:j,form:d,options:k};T.length&&(j.pendingRecords=V.filter(e=>-1===u.findRowIndexOf(T,e))),V.length&&(j.insertRecords=T.filter(e=>-1===u.findRowIndexOf(V,e)));let e=Promise.resolve();return(e=M?u[F&&"full"===F.msgMode?"fullValidate":"validate"](j.insertRecords.concat(D)):e).then(e=>{if(!e)return j.insertRecords.length||K.length||D.length||j.pendingRecords.length?(Q.tableLoading=!0,Promise.resolve((A||k)(S,...r)).then(e=>(Q.tableLoading=!1,u.clearPendingRow(),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.saveSuccess"),status:"success"}),H?H(S,...r):se.commitProxy("query"),U&&U(Object.assign(Object.assign({},S),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),P&&P(Object.assign(Object.assign({},S),{response:e})),{status:!1}))):void(N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var b=commands.get(c);b&&((b=b.tableCommandMethod||b.commandMethod)?b({code:c,button:g,$grid:oe,$table:u},...r):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[c]))}return(0,_vue.nextTick)()},zoom(){return Q.isZMax?se.revert():se.maximize()},isMaximized(){return Q.isZMax},maximize(){return _(!0)},revert(){return _()},getFormData:re,getFormItems(e){var t=b.value,o=G["formConfig"],r=t["items"];const a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=W.value;return G.proxyConfig?(e=Q["sortData"],{data:Q.tableData,filter:Q.filterData,form:re(),sort:e.length?e[0]:{},sorts:e,pager:Q.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},h=("development"===process.env.NODE_ENV&&(se.loadColumn=e=>{var t=W.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},se.reloadColumn=e=>(Y.clearAll(),se.loadColumn(e))),{extendTableMethods:t,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=G["height"],t=Q["isZMax"],o=d.value,r=v.value,a=m.value,n=f.value,s=p.value,i=x.value;return(t||"auto"!==e&&"100%"!==e?0:(0,_dom.getPaddingTopBottomSize)(o.parentNode))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)},getParentHeight(){var e=d.value;return e?(Q.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-h.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){const o=e["code"];return se.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&se.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){se.zoom(),se.dispatchEvent("zoom",{type:Q.isZMax?"max":"revert"},e)}}),E=(Object.assign(oe,Y,se,h),(0,_vue.ref)(0));(0,_vue.watch)(()=>G.columns?G.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>G.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>oe.loadColumn(G.columns||[]))}),(0,_vue.watch)(()=>G.toolbarConfig,()=>{a()}),(0,_vue.watch)(()=>G.pagerConfig,()=>{s()}),(0,_vue.watch)(()=>G.proxyConfig,()=>{K()}),hooks.forEach(e=>{var e=e["setupGrid"];e&&(e=e(oe))&&_xeUtils.default.isObject(e)&&Object.assign(oe,e)}),s(),(0,_vue.onMounted)(()=>{"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{G.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),G.pagerConfig&&!u&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),(0,_vue.nextTick)(()=>{var e=G["columns"];e&&e.length&&oe.loadColumn(e),a(),K()}),globalEvents.on(oe,"keydown",le)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(oe,"keydown")});return oe.renderVN=()=>{var e=R.value,t=w.value;return(0,_vue.h)("div",{ref:d,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!G.animat,"is--round":G.round,"is--maximize":Q.isZMax,"is--loading":G.loading||Q.tableLoading}],style:t},(()=>{const t=[];return k.value.forEach(e=>{switch(e){case"Form":t.push(F());break;case"Toolbar":t.push(N());break;case"Top":t.push(L());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[$(),Z(),z()]));break;case"Bottom":t.push(B());break;case"Pager":t.push(A());break;default:"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t})())},(0,_vue.provide)("$xeGrid",oe),oe},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getData","getCheckboxRecords","getParentRow","getRowSeq","getRowById","getRowid","getTableData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","isCheckedByCheckboxRow","isIndeterminateByCheckboxRow","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","setRadioRow","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(G,e){const{slots:i,emit:r}=e;var y=_xeUtils.default.uniqueId();const l=_ui.VxeUI.getComponent("VxeForm"),u=_ui.VxeUI.getComponent("VxePager"),R=useFns.useSize(G)["computeSize"],Q=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),d=(0,_vue.ref)(),W=(0,_vue.ref)(),g=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)(),x=(0,_vue.ref)();var t=e=>{const t={};return e.forEach(o=>{t[o]=(...e)=>{var t=W.value;if(t&&t[o])return t[o](...e)}}),t};const Y=t(tableComponentMethodKeys),J=(tableComponentMethodKeys.forEach(o=>{Y[o]=(...e)=>{var t=W.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),G.proxyConfig))),ie=(0,_vue.computed)(()=>{var e=J.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),X=(0,_vue.computed)(()=>{return J.value.showActiveMsg}),ee=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,G.pagerConfig)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,G.formConfig)),te=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,G.toolbarConfig)),o=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,G.zoomConfig)),w=(0,_vue.computed)(()=>Q.isZMax?{zIndex:Q.tZindex}:null),O=(0,_vue.computed)(()=>{const t={},o=G;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=G,{isZMax:n,tableLoading:s,tablePage:i,tableData:l}=Q,u=O.value,d=J.value,g=ee.value,c=Object.assign({},u);return n&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||s,c.data=l,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(i.currentPage-1)*i.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),k=(0,_vue.computed)(()=>{var e=G["layouts"];return e&&e.length?e:getConfig().grid.layouts||["Form","Toolbar","Top","Table","Bottom","Pager"]}),P={refElem:d,refTable:W,refForm:g,refToolbar:n,refPager:c},U={computeProxyOpts:J,computePagerOpts:ee,computeFormOpts:b,computeToolbarOpts:te,computeZoomOpts:o},oe={xID:y,props:G,context:e,reactData:Q,getRefMaps:()=>P,getComputeMaps:()=>U},a=()=>{var e=te.value;G.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=W.value,t=n.value;e&&t&&e.connect(t)})},re=()=>{var e=G["proxyConfig"],t=Q["formData"],o=J.value,r=b.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},s=()=>{var e=Q["tablePage"],t=G["pagerConfig"],o=ee.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},ae=(e,t)=>{var o=J.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):r)||getI18n(t)},ne=(e,t,o)=>{var r=X.value,a=Y.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},j=e=>{var t=G["proxyConfig"],o=Q["tablePage"];const{$event:r,currentPage:a,pageSize:n}=e;var s=J.value;o.currentPage=a,o.pageSize=n,se.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(s)&&se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,r)})},T=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeSortOpts"],r=J.value;e.value.remote&&(Q.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("sort-change",t,t.$event)},D=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeFilterOpts"],r=J.value;e.value.remote&&(Q.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("filter-change",t,t.$event)},V=t=>{var e=G["proxyConfig"],o=J.value;e&&(0,_utils.isEnableConf)(o)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),se.dispatchEvent("form-submit",t,t.$event)},S=e=>{var t=G["proxyConfig"];const o=e["$event"];var r=J.value;t&&(0,_utils.isEnableConf)(r)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)}),se.dispatchEvent("form-reset",e,o)},q=e=>{se.dispatchEvent("form-submit-invalid",e,e.$event)},M=e=>{var t=e["$event"];(0,_vue.nextTick)(()=>Y.recalculate(!0)),se.dispatchEvent("form-toggle-collapse",e,t),se.dispatchEvent("form-collapse",e,t)},_=e=>{var t=Q["isZMax"];return(e?!t:t)&&(Q.isZMax=!t,Q.tZindex<(0,_utils.getLastZIndex)())&&(Q.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>Y.recalculate(!0)).then(()=>Q.isZMax)},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(i[e])return i[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},F=()=>{var{formConfig:e,proxyConfig:t}=G,o=Q["formData"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(a)||i.form){let e=[];if(i.form)e=i.form({$grid:oe});else if(a.items){const n={};if(!a.inited){a.inited=!0;const s=r.beforeItem;r&&s&&a.items.forEach(e=>{s({$grid:oe,item:e})})}a.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(n[e]=i[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:g},Object.assign({},a,{data:t&&(0,_utils.isEnableConf)(r)&&r.form?o:a.data})),{onSubmit:V,onReset:S,onSubmitInvalid:q,onCollapse:M}),n))}return(0,_vue.h)("div",{ref:v,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},N=()=>{var t,o,r=G["toolbarConfig"],a=te.value;if(r&&(0,_utils.isEnableConf)(a)||i.toolbar){let e=[];return i.toolbar?e=i.toolbar({$grid:oe}):(r={},(o=a.slots)&&(t=C(o,"buttons"),o=C(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:n},a),r))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},L=()=>i.top?(0,_vue.h)("div",{ref:p,key:"top",class:"vxe-grid--top-wrapper"},i.top({$grid:oe})):(0,_vue.createCommentVNode)(),$=()=>{var e=i.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},z=()=>{var e=i.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},Z=()=>{var e=G["proxyConfig"],t=I.value,o=J.value,r=Object.assign({},H);const a=i.empty,n=i.loading;e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=T),o.filter)&&(r.onFilterChange=D);e={};return a&&(e.empty=()=>a({$grid:oe})),n&&(e.loading=()=>n({$grid:oe})),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:W},t),r),e)])},B=()=>i.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},i.bottom({$grid:oe})):(0,_vue.createCommentVNode)(),A=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=G,n=J.value,s=ee.value;if(a&&(0,_utils.isEnableConf)(s)||i.pager){let e=[];return i.pager?e=i.pager({$grid:oe}):(a={},(o=s.slots)&&(t=C(o,"left"),o=C(o,"right"),t&&(a.left=t),o)&&(a.right=o),u&&e.push((0,_vue.h)(u,Object.assign(Object.assign(Object.assign({ref:c},s),r&&(0,_utils.isEnableConf)(n)?Q.tablePage:{}),{onPageChange:j}),a))),(0,_vue.h)("div",{ref:x,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},H={},K=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);H[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=G,o=Q["proxyInited"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items){const n={};a.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r["defaultValue"],_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),n[o]=e}}),Q.formData=n}o||!(Q.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>se.commitProxy("_init")).then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),le=e=>{var t=o.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&Q.isZMax&&!1!==t.escRestore&&h.triggerZoomEvent(e)};const se={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:oe},t))},commitProxy(t,...r){const{toolbarConfig:q,pagerConfig:a,editRules:M,validConfig:F}=G,n=Q["tablePage"],N=X.value,o=ie.value;var e=J.value;const L=ee.value;var s=te.value;const{beforeQuery:$,afterQuery:z,beforeDelete:Z,afterDelete:B,beforeSave:A,afterSave:H,ajax:i={}}=e,l=e.response||e.props||{},u=W.value;var d=re();let g=null,c=null;c=_xeUtils.default.isString(t)?(e=s["buttons"],s=q&&(0,_utils.isEnableConf)(s)&&e?_xeUtils.default.findTree(e,e=>e.code===t,{children:"dropdowns"}):null,g=s?s.item:null,t):(g=t).code;var v=g?g.params:null;switch(c){case"insert":return u.insert({});case"insert_edit":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"insert_actived":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"mark_cancel":p=c,x=X.value,m=W.value,(f=m.getCheckboxRecords()).length?(m.togglePendingRow(f),Y.clearCheckboxRow()):x&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:p,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return ne(c,"vxe.grid.removeSelectRecord",()=>u.removeCheckboxRow());case"import":u.importData(v);break;case"open_import":u.openImport(v);break;case"export":u.exportData(v);break;case"open_export":u.openExport(v);break;case"reset_custom":return u.resetColumn(!0);case"_init":case"reload":case"query":{var m=i.query;const _=i.querySuccess,C=i.queryError;if(m){var p,f="_init"===c,x="reload"===c;let t=[],o=[],e={};if(a&&((f||x)&&(n.currentPage=1),(0,_utils.isEnableConf)(L))&&(e=Object.assign({},n)),f){let e=null;u&&(p=u.getComputeMaps()["computeSortOpts"],b=p.value,e=b.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),u&&(o=u.getCheckedFilters())}else u&&(x?u.clearAll():(t=u.getSortColumns(),o=u.getCheckedFilters()));const h={code:c,button:g,isInited:f,isReload:x,$grid:oe,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:d,options:m};return Q.sortData=t,Q.filterData=o,Q.tableLoading=!0,Promise.resolve(($||m)(h,...r)).then(e=>{var t,o;return Q.tableLoading=!1,e?a&&(0,_utils.isEnableConf)(L)?(o=l.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=l.result,Q.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:oe}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=l.list,Q.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):e)||[]):Q.tableData=[],z&&z(h,...r),_&&_(Object.assign(Object.assign({},h),{response:e})),{status:!0}}).catch(e=>(Q.tableLoading=!1,C&&C(Object.assign(Object.assign({},h),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{const E=i.delete,y=i.deleteSuccess,R=i.deleteError;if(E){const w=Y.getCheckboxRecords(),O=w.filter(e=>!u.isInsertByRow(e));var b={removeRecords:O};const I={$grid:oe,code:c,button:g,body:b,form:d,options:E};if(w.length)return ne(c,"vxe.grid.deleteSelectRecord",()=>O.length?(Q.tableLoading=!0,Promise.resolve((Z||E)(I,...r)).then(e=>(Q.tableLoading=!1,u.setPendingRow(O,!1),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.delSuccess"),status:"success"}),B?B(I,...r):se.commitProxy("query"),y&&y(Object.assign(Object.assign({},I),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),R&&R(Object.assign(Object.assign({},I),{response:e})),{status:!1}))):u.remove(w));N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{const k=i.save,P=i.saveSuccess,U=i.saveError;if(k){const j=u.getRecordset(),{insertRecords:T,removeRecords:K,updateRecords:D,pendingRecords:V}=j,S={$grid:oe,code:c,button:g,body:j,form:d,options:k};T.length&&(j.pendingRecords=V.filter(e=>-1===u.findRowIndexOf(T,e))),V.length&&(j.insertRecords=T.filter(e=>-1===u.findRowIndexOf(V,e)));let e=Promise.resolve();return(e=M?u[F&&"full"===F.msgMode?"fullValidate":"validate"](j.insertRecords.concat(D)):e).then(e=>{if(!e)return j.insertRecords.length||K.length||D.length||j.pendingRecords.length?(Q.tableLoading=!0,Promise.resolve((A||k)(S,...r)).then(e=>(Q.tableLoading=!1,u.clearPendingRow(),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.saveSuccess"),status:"success"}),H?H(S,...r):se.commitProxy("query"),P&&P(Object.assign(Object.assign({},S),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),U&&U(Object.assign(Object.assign({},S),{response:e})),{status:!1}))):void(N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var b=commands.get(c);b&&((b=b.tableCommandMethod||b.commandMethod)?b({code:c,button:g,$grid:oe,$table:u},...r):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[c]))}return(0,_vue.nextTick)()},zoom(){return Q.isZMax?se.revert():se.maximize()},isMaximized(){return Q.isZMax},maximize(){return _(!0)},revert(){return _()},getFormData:re,getFormItems(e){var t=b.value,o=G["formConfig"],r=t["items"];const a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=W.value;return G.proxyConfig?(e=Q["sortData"],{data:Q.tableData,filter:Q.filterData,form:re(),sort:e.length?e[0]:{},sorts:e,pager:Q.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},h=("development"===process.env.NODE_ENV&&(se.loadColumn=e=>{var t=W.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},se.reloadColumn=e=>(Y.clearAll(),se.loadColumn(e))),{extendTableMethods:t,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=G["height"],t=Q["isZMax"],o=d.value,r=v.value,a=m.value,n=p.value,s=f.value,i=x.value;return(t||"auto"!==e&&"100%"!==e?0:(0,_dom.getPaddingTopBottomSize)(o.parentNode))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)},getParentHeight(){var e=d.value;return e?(Q.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-h.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){const o=e["code"];return se.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&se.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){se.zoom(),se.dispatchEvent("zoom",{type:Q.isZMax?"max":"revert"},e)}}),E=(Object.assign(oe,Y,se,h),(0,_vue.ref)(0));(0,_vue.watch)(()=>G.columns?G.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>G.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>oe.loadColumn(G.columns||[]))}),(0,_vue.watch)(()=>G.toolbarConfig,()=>{a()}),(0,_vue.watch)(()=>G.pagerConfig,()=>{s()}),(0,_vue.watch)(()=>G.proxyConfig,()=>{K()}),hooks.forEach(e=>{var e=e["setupGrid"];e&&(e=e(oe))&&_xeUtils.default.isObject(e)&&Object.assign(oe,e)}),s(),(0,_vue.onMounted)(()=>{"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{G.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),G.pagerConfig&&!u&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),(0,_vue.nextTick)(()=>{var e=G["columns"];e&&e.length&&oe.loadColumn(e),a(),K()}),globalEvents.on(oe,"keydown",le)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(oe,"keydown")});return oe.renderVN=()=>{var e=R.value,t=w.value;return(0,_vue.h)("div",{ref:d,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!G.animat,"is--round":G.round,"is--maximize":Q.isZMax,"is--loading":G.loading||Q.tableLoading}],style:t},(()=>{const t=[];return k.value.forEach(e=>{switch(e){case"Form":t.push(F());break;case"Toolbar":t.push(N());break;case"Top":t.push(L());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[$(),Z(),z()]));break;case"Bottom":t.push(B());break;case"Pager":t.push(A());break;default:"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t})())},(0,_vue.provide)("$xeGrid",oe),oe},render(){return this.renderVN()}});
|