vxe-table 4.11.15 → 4.11.17
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 +16 -31
- package/es/style.css +1 -1
- package/es/table/module/custom/panel.js +19 -21
- package/es/table/module/edit/hook.js +7 -7
- package/es/table/module/export/export-panel.js +17 -19
- package/es/table/module/export/hook.js +5 -11
- package/es/table/module/export/import-panel.js +11 -13
- package/es/table/module/validator/hook.js +1 -3
- package/es/table/render/index.js +2 -4
- package/es/table/src/body.js +2 -2
- package/es/table/src/columnInfo.js +26 -28
- package/es/table/src/table.js +112 -78
- package/es/toolbar/src/toolbar.js +16 -24
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +16 -33
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +253 -247
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/panel.js +21 -23
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/hook.js +7 -7
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/export-panel.js +17 -19
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/hook.js +5 -11
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/export/import-panel.js +11 -13
- package/lib/table/module/export/import-panel.min.js +1 -1
- package/lib/table/module/validator/hook.js +1 -3
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/render/index.js +2 -4
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +2 -1
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/columnInfo.js +30 -32
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/table.js +119 -75
- package/lib/table/src/table.min.js +1 -1
- package/lib/toolbar/src/toolbar.js +16 -24
- 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 +2 -2
- package/packages/grid/src/grid.ts +17 -31
- package/packages/table/module/custom/panel.ts +19 -21
- package/packages/table/module/edit/hook.ts +7 -7
- package/packages/table/module/export/export-panel.ts +17 -19
- package/packages/table/module/export/hook.ts +5 -11
- package/packages/table/module/export/import-panel.ts +11 -13
- package/packages/table/module/keyboard/hook.ts +2 -2
- package/packages/table/module/validator/hook.ts +1 -3
- package/packages/table/render/index.ts +2 -4
- package/packages/table/src/body.ts +2 -2
- package/packages/table/src/columnInfo.ts +26 -28
- package/packages/table/src/table.ts +111 -76
- package/packages/toolbar/src/toolbar.ts +16 -24
- /package/es/{iconfont.1740723830079.ttf → iconfont.1741140593243.ttf} +0 -0
- /package/es/{iconfont.1740723830079.woff → iconfont.1741140593243.woff} +0 -0
- /package/es/{iconfont.1740723830079.woff2 → iconfont.1741140593243.woff2} +0 -0
- /package/lib/{iconfont.1740723830079.ttf → iconfont.1741140593243.ttf} +0 -0
- /package/lib/{iconfont.1740723830079.woff → iconfont.1741140593243.woff} +0 -0
- /package/lib/{iconfont.1740723830079.woff2 → iconfont.1741140593243.woff2} +0 -0
|
@@ -163,11 +163,9 @@ hooks.add('tableEditModule', {
|
|
|
163
163
|
const parentLevel = parentRest ? parentRest.level : 0;
|
|
164
164
|
newRecords.forEach((item, i) => {
|
|
165
165
|
const rowid = getRowid($xeTable, item);
|
|
166
|
-
if (
|
|
167
|
-
if (item[treeOpts.parentField]) {
|
|
168
|
-
|
|
169
|
-
errLog('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
|
|
170
|
-
}
|
|
166
|
+
if (item[treeOpts.parentField]) {
|
|
167
|
+
if (parentRow && item[treeOpts.parentField] !== parentRow[rowField]) {
|
|
168
|
+
errLog('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
|
|
171
169
|
}
|
|
172
170
|
}
|
|
173
171
|
if (parentRow) {
|
|
@@ -281,7 +279,7 @@ hooks.add('tableEditModule', {
|
|
|
281
279
|
return handleInsertRowAt(records.map((item) => Object.assign({}, item, { [parentField]: parentRow[rowField] })), targetRow, isInsertNextRow);
|
|
282
280
|
}
|
|
283
281
|
else {
|
|
284
|
-
errLog('vxe.error.errProp', ['tree-config.
|
|
282
|
+
errLog('vxe.error.errProp', ['tree-config.transform=false', 'tree-config.transform=true']);
|
|
285
283
|
}
|
|
286
284
|
return Promise.resolve({ row: null, rows: [] });
|
|
287
285
|
};
|
|
@@ -778,7 +776,9 @@ hooks.add('tableEditModule', {
|
|
|
778
776
|
let isPos = false;
|
|
779
777
|
if (fieldOrColumn) {
|
|
780
778
|
isPos = true;
|
|
781
|
-
|
|
779
|
+
if (fieldOrColumn !== true) {
|
|
780
|
+
column = XEUtils.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
|
|
781
|
+
}
|
|
782
782
|
}
|
|
783
783
|
return handleEditCell(row, column, isPos);
|
|
784
784
|
},
|
|
@@ -493,25 +493,23 @@ export default defineComponent({
|
|
|
493
493
|
})
|
|
494
494
|
: createCommentVNode();
|
|
495
495
|
};
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
});
|
|
514
|
-
}
|
|
496
|
+
nextTick(() => {
|
|
497
|
+
if (!VxeUIModalComponent) {
|
|
498
|
+
errLog('vxe.error.reqComp', ['vxe-modal']);
|
|
499
|
+
}
|
|
500
|
+
if (!VxeUIButtonComponent) {
|
|
501
|
+
errLog('vxe.error.reqComp', ['vxe-button']);
|
|
502
|
+
}
|
|
503
|
+
if (!VxeUISelectComponent) {
|
|
504
|
+
errLog('vxe.error.reqComp', ['vxe-select']);
|
|
505
|
+
}
|
|
506
|
+
if (!VxeUIInputComponent) {
|
|
507
|
+
errLog('vxe.error.reqComp', ['vxe-input']);
|
|
508
|
+
}
|
|
509
|
+
if (!VxeUICheckboxComponent) {
|
|
510
|
+
errLog('vxe.error.reqComp', ['vxe-checkbox']);
|
|
511
|
+
}
|
|
512
|
+
});
|
|
515
513
|
return renderVN;
|
|
516
514
|
}
|
|
517
515
|
});
|
|
@@ -893,9 +893,7 @@ hooks.add('tableExportModule', {
|
|
|
893
893
|
}
|
|
894
894
|
else {
|
|
895
895
|
// 不支持的浏览器
|
|
896
|
-
|
|
897
|
-
errLog('vxe.error.notExp');
|
|
898
|
-
}
|
|
896
|
+
errLog('vxe.error.notExp');
|
|
899
897
|
_importResolve({ status: true });
|
|
900
898
|
}
|
|
901
899
|
});
|
|
@@ -1512,10 +1510,8 @@ hooks.add('tableExportModule', {
|
|
|
1512
1510
|
message: true,
|
|
1513
1511
|
types: XEUtils.keys(exportOpts._typeMaps)
|
|
1514
1512
|
}, exportOpts, options);
|
|
1515
|
-
if (
|
|
1516
|
-
|
|
1517
|
-
errLog('vxe.error.reqProp', ['export-config']);
|
|
1518
|
-
}
|
|
1513
|
+
if (!props.exportConfig) {
|
|
1514
|
+
errLog('vxe.error.reqProp', ['export-config']);
|
|
1519
1515
|
}
|
|
1520
1516
|
handleExportAndPrint(defOpts);
|
|
1521
1517
|
},
|
|
@@ -1525,10 +1521,8 @@ hooks.add('tableExportModule', {
|
|
|
1525
1521
|
const defOpts = Object.assign({
|
|
1526
1522
|
message: true
|
|
1527
1523
|
}, printOpts, options);
|
|
1528
|
-
if (
|
|
1529
|
-
|
|
1530
|
-
errLog('vxe.error.reqProp', ['print-config']);
|
|
1531
|
-
}
|
|
1524
|
+
if (!props.printConfig) {
|
|
1525
|
+
errLog('vxe.error.reqProp', ['print-config']);
|
|
1532
1526
|
}
|
|
1533
1527
|
handleExportAndPrint(defOpts, true);
|
|
1534
1528
|
}
|
|
@@ -218,19 +218,17 @@ export default defineComponent({
|
|
|
218
218
|
})
|
|
219
219
|
: createCommentVNode();
|
|
220
220
|
};
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
});
|
|
233
|
-
}
|
|
221
|
+
nextTick(() => {
|
|
222
|
+
if (!VxeUIModalComponent) {
|
|
223
|
+
errLog('vxe.error.reqComp', ['vxe-modal']);
|
|
224
|
+
}
|
|
225
|
+
if (!VxeUIButtonComponent) {
|
|
226
|
+
errLog('vxe.error.reqComp', ['vxe-button']);
|
|
227
|
+
}
|
|
228
|
+
if (!VxeUISelectComponent) {
|
|
229
|
+
errLog('vxe.error.reqComp', ['vxe-select']);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
234
232
|
return renderVN;
|
|
235
233
|
}
|
|
236
234
|
});
|
package/es/table/render/index.js
CHANGED
|
@@ -152,10 +152,8 @@ function getComponentOns(renderOpts, params, eFns) {
|
|
|
152
152
|
const ons = {};
|
|
153
153
|
XEUtils.objectEach(events, (func, key) => {
|
|
154
154
|
ons[getOnName(key)] = function (...args) {
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
errLog('vxe.error.errFunc', [func]);
|
|
158
|
-
}
|
|
155
|
+
if (!XEUtils.isFunction(func)) {
|
|
156
|
+
errLog('vxe.error.errFunc', [func]);
|
|
159
157
|
}
|
|
160
158
|
func(params, ...args);
|
|
161
159
|
};
|
package/es/table/src/body.js
CHANGED
|
@@ -79,7 +79,7 @@ export default defineComponent({
|
|
|
79
79
|
*/
|
|
80
80
|
const renderTdColumn = (seq, rowid, fixedType, isOptimizeMode, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) => {
|
|
81
81
|
const { fullAllDataRowIdData } = tableInternalData;
|
|
82
|
-
const { columnKey, resizable: allResizable, border, height, cellClassName: allCellClassName, cellStyle, align: allAlign, spanMethod, mouseConfig, editConfig, editRules, tooltipConfig, padding: allPadding } = tableProps;
|
|
82
|
+
const { columnKey, resizable: allResizable, showOverflow: allShowOverflow, border, height, cellClassName: allCellClassName, cellStyle, align: allAlign, spanMethod, mouseConfig, editConfig, editRules, tooltipConfig, padding: allPadding } = tableProps;
|
|
83
83
|
const { tableData, dragRow, overflowX, currentColumn, scrollXLoad, scrollYLoad, calcCellHeightFlag, resizeHeightFlag, mergeList, editStore, isAllOverflow, validErrorMaps } = tableReactData;
|
|
84
84
|
const { afterFullData, scrollXStore, scrollYStore } = tableInternalData;
|
|
85
85
|
const cellOpts = computeCellOpts.value;
|
|
@@ -114,7 +114,7 @@ export default defineComponent({
|
|
|
114
114
|
const resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
|
|
115
115
|
let fixedHiddenColumn = fixedType ? column.fixed !== fixedType : column.fixed && overflowX;
|
|
116
116
|
const isCellPadding = XEUtils.eqNull(padding) ? (allPadding === null ? cellOpts.padding : allPadding) : padding;
|
|
117
|
-
const cellOverflow = XEUtils.eqNull(showOverflow) ?
|
|
117
|
+
const cellOverflow = XEUtils.eqNull(showOverflow) ? allShowOverflow : showOverflow;
|
|
118
118
|
const showEllipsis = cellOverflow === 'ellipsis';
|
|
119
119
|
const showTitle = cellOverflow === 'title';
|
|
120
120
|
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
|
|
@@ -11,37 +11,35 @@ export class ColumnInfo {
|
|
|
11
11
|
const formatter = _vm.formatter;
|
|
12
12
|
const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
|
|
13
13
|
const { props: tableProps } = $xeTable;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
|
|
15
|
+
if (_vm.type && types.indexOf(_vm.type) === -1) {
|
|
16
|
+
warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
|
|
17
|
+
}
|
|
18
|
+
if (XEUtils.isBoolean(_vm.cellRender) || (_vm.cellRender && !XEUtils.isObject(_vm.cellRender))) {
|
|
19
|
+
warnLog('vxe.error.errProp', [`column.cell-render=${_vm.cellRender}`, 'column.cell-render={}']);
|
|
20
|
+
}
|
|
21
|
+
if (XEUtils.isBoolean(_vm.editRender) || (_vm.editRender && !XEUtils.isObject(_vm.editRender))) {
|
|
22
|
+
warnLog('vxe.error.errProp', [`column.edit-render=${_vm.editRender}`, 'column.edit-render={}']);
|
|
23
|
+
}
|
|
24
|
+
if (_vm.type === 'expand') {
|
|
25
|
+
const { treeConfig } = tableProps;
|
|
26
|
+
const { computeTreeOpts } = $xeTable.getComputeMaps();
|
|
27
|
+
const treeOpts = computeTreeOpts.value;
|
|
28
|
+
if (treeConfig && (treeOpts.showLine || treeOpts.line)) {
|
|
29
|
+
errLog('vxe.error.errConflicts', ['tree-config.showLine', 'column.type=expand']);
|
|
24
30
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
if (
|
|
30
|
-
errLog('vxe.error.
|
|
31
|
+
}
|
|
32
|
+
if (formatter) {
|
|
33
|
+
if (XEUtils.isString(formatter)) {
|
|
34
|
+
const gFormatOpts = formats.get(formatter) || XEUtils[formatter];
|
|
35
|
+
if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
|
|
36
|
+
errLog('vxe.error.notFormats', [formatter]);
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
|
-
if (formatter) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
errLog('vxe.error.notFormats', [formatter]);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else if (XEUtils.isArray(formatter)) {
|
|
41
|
-
const gFormatOpts = formats.get(formatter[0]) || XEUtils[formatter[0]];
|
|
42
|
-
if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
|
|
43
|
-
errLog('vxe.error.notFormats', [formatter[0]]);
|
|
44
|
-
}
|
|
39
|
+
else if (XEUtils.isArray(formatter)) {
|
|
40
|
+
const gFormatOpts = formats.get(formatter[0]) || XEUtils[formatter[0]];
|
|
41
|
+
if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
|
|
42
|
+
errLog('vxe.error.notFormats', [formatter[0]]);
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
45
|
}
|
package/es/table/src/table.js
CHANGED
|
@@ -1241,14 +1241,12 @@ export default defineComponent({
|
|
|
1241
1241
|
if ((expandColumn && expandOpts.mode !== 'fixed') && mouseOpts.area) {
|
|
1242
1242
|
errLog('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
|
|
1243
1243
|
}
|
|
1244
|
-
if (
|
|
1245
|
-
if (
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
|
|
1251
|
-
}
|
|
1244
|
+
if (htmlColumn) {
|
|
1245
|
+
if (!columnOpts.useKey) {
|
|
1246
|
+
errLog('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
|
|
1247
|
+
}
|
|
1248
|
+
if (!rowOpts.useKey) {
|
|
1249
|
+
errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
|
|
1252
1250
|
}
|
|
1253
1251
|
}
|
|
1254
1252
|
reactData.isGroup = isGroup;
|
|
@@ -2626,28 +2624,26 @@ export default defineComponent({
|
|
|
2626
2624
|
if (treeConfig) {
|
|
2627
2625
|
if (transform) {
|
|
2628
2626
|
// 树结构自动转换
|
|
2629
|
-
if (
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
errLog('vxe.error.reqProp', ['tree-config.mapChildrenField']);
|
|
2641
|
-
}
|
|
2642
|
-
if (childrenField === treeOpts.mapChildrenField) {
|
|
2643
|
-
errLog('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
|
|
2644
|
-
}
|
|
2645
|
-
// fullData.forEach(row => {
|
|
2646
|
-
// if (row[treeOpts.children] && row[treeOpts.children].length) {
|
|
2647
|
-
// warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
|
|
2648
|
-
// }
|
|
2649
|
-
// })
|
|
2627
|
+
if (!treeOpts.rowField) {
|
|
2628
|
+
errLog('vxe.error.reqProp', ['tree-config.rowField']);
|
|
2629
|
+
}
|
|
2630
|
+
if (!treeOpts.parentField) {
|
|
2631
|
+
errLog('vxe.error.reqProp', ['tree-config.parentField']);
|
|
2632
|
+
}
|
|
2633
|
+
if (!childrenField) {
|
|
2634
|
+
errLog('vxe.error.reqProp', ['tree-config.childrenField']);
|
|
2635
|
+
}
|
|
2636
|
+
if (!treeOpts.mapChildrenField) {
|
|
2637
|
+
errLog('vxe.error.reqProp', ['tree-config.mapChildrenField']);
|
|
2650
2638
|
}
|
|
2639
|
+
if (childrenField === treeOpts.mapChildrenField) {
|
|
2640
|
+
errLog('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
|
|
2641
|
+
}
|
|
2642
|
+
// fullData.forEach(row => {
|
|
2643
|
+
// if (row[treeOpts.children] && row[treeOpts.children].length) {
|
|
2644
|
+
// warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
|
|
2645
|
+
// }
|
|
2646
|
+
// })
|
|
2651
2647
|
treeData = XEUtils.toArrayTree(fullData, {
|
|
2652
2648
|
key: treeOpts.rowField,
|
|
2653
2649
|
parentKey: treeOpts.parentField,
|
|
@@ -2712,16 +2708,14 @@ export default defineComponent({
|
|
|
2712
2708
|
// }
|
|
2713
2709
|
// }
|
|
2714
2710
|
// }
|
|
2715
|
-
if (
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
warnLog('vxe.error.scrollErrProp', ['table.span-method']);
|
|
2724
|
-
}
|
|
2711
|
+
if (!(props.height || props.maxHeight)) {
|
|
2712
|
+
errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
|
|
2713
|
+
}
|
|
2714
|
+
// if (!props.showOverflow) {
|
|
2715
|
+
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
2716
|
+
// }
|
|
2717
|
+
if (props.spanMethod) {
|
|
2718
|
+
warnLog('vxe.error.scrollErrProp', ['table.span-method']);
|
|
2725
2719
|
}
|
|
2726
2720
|
}
|
|
2727
2721
|
handleReserveStatus();
|
|
@@ -3698,8 +3692,10 @@ export default defineComponent({
|
|
|
3698
3692
|
* 如果还额外传了 field 则还原指定的单元格数据
|
|
3699
3693
|
*/
|
|
3700
3694
|
revertData(rows, field) {
|
|
3701
|
-
const { keepSource } = props;
|
|
3702
|
-
const { tableSourceData, sourceDataRowIdData } = internalData;
|
|
3695
|
+
const { keepSource, treeConfig } = props;
|
|
3696
|
+
const { fullAllDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData;
|
|
3697
|
+
const treeOpts = computeTreeOpts.value;
|
|
3698
|
+
const { transform } = treeOpts;
|
|
3703
3699
|
if (!keepSource) {
|
|
3704
3700
|
if (process.env.NODE_ENV === 'development') {
|
|
3705
3701
|
warnLog('vxe.error.reqProp', ['keep-source']);
|
|
@@ -3715,9 +3711,10 @@ export default defineComponent({
|
|
|
3715
3711
|
else {
|
|
3716
3712
|
targetRows = XEUtils.toArray($xeTable.getUpdateRecords());
|
|
3717
3713
|
}
|
|
3714
|
+
let reDelFlag = false;
|
|
3718
3715
|
if (targetRows.length) {
|
|
3719
3716
|
targetRows.forEach((row) => {
|
|
3720
|
-
if (
|
|
3717
|
+
if (!$xeTable.isInsertByRow(row)) {
|
|
3721
3718
|
const rowid = getRowid($xeTable, row);
|
|
3722
3719
|
const oRow = sourceDataRowIdData[rowid];
|
|
3723
3720
|
if (oRow && row) {
|
|
@@ -3727,14 +3724,38 @@ export default defineComponent({
|
|
|
3727
3724
|
else {
|
|
3728
3725
|
XEUtils.destructuring(row, XEUtils.clone(oRow, true));
|
|
3729
3726
|
}
|
|
3727
|
+
if ($xeTable.isRemoveByRow(row)) {
|
|
3728
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
3729
|
+
if (rowRest) {
|
|
3730
|
+
const reRow = rowRest.row;
|
|
3731
|
+
tableFullData.unshift(reRow);
|
|
3732
|
+
afterFullData.unshift(reRow);
|
|
3733
|
+
reDelFlag = true;
|
|
3734
|
+
}
|
|
3735
|
+
}
|
|
3730
3736
|
}
|
|
3731
3737
|
}
|
|
3732
3738
|
});
|
|
3733
3739
|
}
|
|
3734
3740
|
if (rows) {
|
|
3735
|
-
|
|
3741
|
+
if (reDelFlag) {
|
|
3742
|
+
$xeTable.updateFooter();
|
|
3743
|
+
$xeTable.cacheRowMap(false);
|
|
3744
|
+
$xeTable.handleTableData(treeConfig && transform);
|
|
3745
|
+
if (!(treeConfig && transform)) {
|
|
3746
|
+
$xeTable.updateAfterDataIndex();
|
|
3747
|
+
}
|
|
3748
|
+
$xeTable.checkSelectionStatus();
|
|
3749
|
+
if (reactData.scrollYLoad) {
|
|
3750
|
+
$xeTable.updateScrollYSpace();
|
|
3751
|
+
}
|
|
3752
|
+
}
|
|
3753
|
+
return nextTick().then(() => {
|
|
3754
|
+
$xeTable.updateCellAreas();
|
|
3755
|
+
return $xeTable.recalculate();
|
|
3756
|
+
});
|
|
3736
3757
|
}
|
|
3737
|
-
return
|
|
3758
|
+
return $xeTable.reloadData(tableSourceData);
|
|
3738
3759
|
},
|
|
3739
3760
|
/**
|
|
3740
3761
|
* 清空单元格内容
|
|
@@ -3854,6 +3875,11 @@ export default defineComponent({
|
|
|
3854
3875
|
const rowid = getRowid($xeTable, row);
|
|
3855
3876
|
return !!editStore.insertMaps[rowid];
|
|
3856
3877
|
},
|
|
3878
|
+
isRemoveByRow(row) {
|
|
3879
|
+
const { editStore } = reactData;
|
|
3880
|
+
const rowid = getRowid($xeTable, row);
|
|
3881
|
+
return !!editStore.removeMaps[rowid];
|
|
3882
|
+
},
|
|
3857
3883
|
/**
|
|
3858
3884
|
* 删除所有新增的临时数据
|
|
3859
3885
|
* @returns
|
|
@@ -6657,14 +6683,15 @@ export default defineComponent({
|
|
|
6657
6683
|
*/
|
|
6658
6684
|
cacheRowMap() {
|
|
6659
6685
|
const { treeConfig } = props;
|
|
6660
|
-
const
|
|
6686
|
+
const { treeExpandedMaps } = reactData;
|
|
6661
6687
|
const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
|
|
6688
|
+
const treeOpts = computeTreeOpts.value;
|
|
6662
6689
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
6663
6690
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
6664
6691
|
const rowkey = getRowkey($xeTable);
|
|
6665
|
-
const
|
|
6666
|
-
const fullAllDataRowIdMaps = {};
|
|
6692
|
+
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
6667
6693
|
const fullDataRowIdMaps = {};
|
|
6694
|
+
const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
|
|
6668
6695
|
const handleRow = (row, index, items, path, parentRow, nodes) => {
|
|
6669
6696
|
let rowid = getRowid($xeTable, row);
|
|
6670
6697
|
const seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
|
|
@@ -6673,13 +6700,23 @@ export default defineComponent({
|
|
|
6673
6700
|
rowid = getRowUniqueId();
|
|
6674
6701
|
XEUtils.set(row, rowkey, rowid);
|
|
6675
6702
|
}
|
|
6676
|
-
if (
|
|
6677
|
-
|
|
6703
|
+
if (treeConfig && treeOpts.lazy) {
|
|
6704
|
+
const treeExpRest = treeExpandedMaps[rowid];
|
|
6705
|
+
if (row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
|
|
6706
|
+
row[childrenField] = null;
|
|
6707
|
+
}
|
|
6708
|
+
if (treeExpRest) {
|
|
6709
|
+
if (!row[childrenField] || !row[childrenField].length) {
|
|
6710
|
+
delete treeTempExpandedMaps[rowid];
|
|
6711
|
+
}
|
|
6712
|
+
}
|
|
6678
6713
|
}
|
|
6679
6714
|
let rowRest = fullAllDataRowIdData[rowid];
|
|
6680
6715
|
if (!rowRest) {
|
|
6681
6716
|
rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
|
|
6682
6717
|
}
|
|
6718
|
+
rowRest.treeLoaded = false;
|
|
6719
|
+
rowRest.expandLoaded = false;
|
|
6683
6720
|
rowRest.row = row;
|
|
6684
6721
|
rowRest.items = items;
|
|
6685
6722
|
rowRest.parent = parentRow;
|
|
@@ -6688,14 +6725,15 @@ export default defineComponent({
|
|
|
6688
6725
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
6689
6726
|
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
6690
6727
|
};
|
|
6691
|
-
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
6692
|
-
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
6693
6728
|
if (treeConfig) {
|
|
6694
6729
|
XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField });
|
|
6695
6730
|
}
|
|
6696
6731
|
else {
|
|
6697
6732
|
tableFullData.forEach(handleRow);
|
|
6698
6733
|
}
|
|
6734
|
+
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
6735
|
+
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
6736
|
+
reactData.treeExpandedMaps = treeTempExpandedMaps;
|
|
6699
6737
|
},
|
|
6700
6738
|
cacheSourceMap(fullData) {
|
|
6701
6739
|
const { treeConfig } = props;
|
|
@@ -9217,18 +9255,16 @@ export default defineComponent({
|
|
|
9217
9255
|
}
|
|
9218
9256
|
};
|
|
9219
9257
|
// 检测对应模块是否安装
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
|
|
9226
|
-
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9230
|
-
});
|
|
9231
|
-
}
|
|
9258
|
+
'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
|
|
9259
|
+
$xeTable[name] = function () {
|
|
9260
|
+
errLog('vxe.error.reqModule', ['VxeTableExportModule']);
|
|
9261
|
+
};
|
|
9262
|
+
});
|
|
9263
|
+
'clearValidate,fullValidate,validate'.split(',').forEach(name => {
|
|
9264
|
+
$xeTable[name] = function () {
|
|
9265
|
+
errLog('vxe.error.reqModule', ['VxeTableValidatorModule']);
|
|
9266
|
+
};
|
|
9267
|
+
});
|
|
9232
9268
|
Object.assign($xeTable, tableMethods, tablePrivateMethods);
|
|
9233
9269
|
/**
|
|
9234
9270
|
* 渲染浮固定列
|
|
@@ -10189,23 +10225,21 @@ export default defineComponent({
|
|
|
10189
10225
|
globalEvents.off($xeTable, 'contextmenu');
|
|
10190
10226
|
tablePrivateMethods.preventEvent(null, 'unmounted', { $table: $xeTable });
|
|
10191
10227
|
});
|
|
10192
|
-
|
|
10193
|
-
|
|
10194
|
-
if (
|
|
10195
|
-
|
|
10196
|
-
errLog('vxe.error.reqComp', ['vxe-loading']);
|
|
10197
|
-
}
|
|
10228
|
+
nextTick(() => {
|
|
10229
|
+
if (props.loading) {
|
|
10230
|
+
if (!VxeUILoadingComponent && !slots.loading) {
|
|
10231
|
+
errLog('vxe.error.reqComp', ['vxe-loading']);
|
|
10198
10232
|
}
|
|
10199
|
-
|
|
10200
|
-
|
|
10201
|
-
|
|
10202
|
-
|
|
10203
|
-
|
|
10204
|
-
|
|
10205
|
-
|
|
10233
|
+
}
|
|
10234
|
+
if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
|
|
10235
|
+
(props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip') ||
|
|
10236
|
+
(props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') ||
|
|
10237
|
+
props.tooltipConfig || props.editRules) {
|
|
10238
|
+
if (!VxeUITooltipComponent) {
|
|
10239
|
+
errLog('vxe.error.reqComp', ['vxe-tooltip']);
|
|
10206
10240
|
}
|
|
10207
|
-
}
|
|
10208
|
-
}
|
|
10241
|
+
}
|
|
10242
|
+
});
|
|
10209
10243
|
provide('$xeColgroup', null);
|
|
10210
10244
|
provide('$xeTable', $xeTable);
|
|
10211
10245
|
$xeTable.renderVN = renderVN;
|
|
@@ -186,9 +186,7 @@ export default defineComponent({
|
|
|
186
186
|
tCommandMethod(params);
|
|
187
187
|
}
|
|
188
188
|
else {
|
|
189
|
-
|
|
190
|
-
errLog('vxe.error.notCommands', [code]);
|
|
191
|
-
}
|
|
189
|
+
errLog('vxe.error.notCommands', [code]);
|
|
192
190
|
}
|
|
193
191
|
}
|
|
194
192
|
$xeToolbar.dispatchEvent('button-click', params, evnt);
|
|
@@ -212,9 +210,7 @@ export default defineComponent({
|
|
|
212
210
|
tCommandMethod(params);
|
|
213
211
|
}
|
|
214
212
|
else {
|
|
215
|
-
|
|
216
|
-
errLog('vxe.error.notCommands', [code]);
|
|
217
|
-
}
|
|
213
|
+
errLog('vxe.error.notCommands', [code]);
|
|
218
214
|
}
|
|
219
215
|
}
|
|
220
216
|
$xeToolbar.dispatchEvent('tool-click', params, evnt);
|
|
@@ -541,25 +537,21 @@ export default defineComponent({
|
|
|
541
537
|
warnLog('vxe.error.notFunc', ['queryMethod']);
|
|
542
538
|
}
|
|
543
539
|
const customOpts = computeCustomOpts.value;
|
|
544
|
-
if (
|
|
545
|
-
|
|
546
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
|
|
547
|
-
}
|
|
548
|
-
if (customOpts.showFooter) {
|
|
549
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']);
|
|
550
|
-
}
|
|
551
|
-
if (customOpts.immediate) {
|
|
552
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']);
|
|
553
|
-
}
|
|
554
|
-
if (customOpts.trigger) {
|
|
555
|
-
warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']);
|
|
556
|
-
}
|
|
540
|
+
if (customOpts.isFooter) {
|
|
541
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
|
|
557
542
|
}
|
|
558
|
-
if (
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
543
|
+
if (customOpts.showFooter) {
|
|
544
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']);
|
|
545
|
+
}
|
|
546
|
+
if (customOpts.immediate) {
|
|
547
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']);
|
|
548
|
+
}
|
|
549
|
+
if (customOpts.trigger) {
|
|
550
|
+
warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']);
|
|
551
|
+
}
|
|
552
|
+
if (props.refresh || props.import || props.export || props.print || props.zoom) {
|
|
553
|
+
if (!VxeUIButtonComponent) {
|
|
554
|
+
errLog('vxe.error.reqComp', ['vxe-button']);
|
|
563
555
|
}
|
|
564
556
|
}
|
|
565
557
|
});
|