vxe-table 4.1.8 → 4.1.11-beta.1
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/button/src/button.js +14 -14
- package/es/edit/src/hook.js +19 -28
- package/es/export/src/hook.js +4 -4
- package/es/filter/src/hook.js +21 -2
- package/es/select/src/select.js +1 -1
- package/es/table/src/body.js +19 -16
- package/es/table/src/cell.js +16 -14
- package/es/table/src/table.js +212 -131
- package/es/table/src/util.js +4 -1
- package/es/tools/dom.js +2 -8
- package/es/v-x-e-table/src/conf.js +2 -1
- package/lib/button/src/button.js +15 -14
- package/lib/button/src/button.min.js +1 -1
- package/lib/edit/src/hook.js +19 -29
- package/lib/edit/src/hook.min.js +1 -1
- package/lib/export/src/hook.js +3 -5
- package/lib/export/src/hook.min.js +1 -1
- package/lib/filter/src/hook.js +24 -1
- package/lib/filter/src/hook.min.js +1 -1
- package/lib/index.umd.js +509 -291
- package/lib/index.umd.min.js +1 -1
- package/lib/select/src/select.js +1 -1
- package/lib/select/src/select.min.js +1 -1
- package/lib/table/src/body.js +19 -19
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +16 -16
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/table.js +294 -171
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +8 -1
- package/lib/table/src/util.min.js +1 -1
- package/lib/tools/dom.js +2 -9
- package/lib/tools/dom.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +2 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +4 -4
- package/packages/button/src/button.ts +14 -14
- package/packages/edit/src/hook.ts +19 -28
- package/packages/export/src/hook.ts +4 -4
- package/packages/filter/src/hook.ts +21 -2
- package/packages/select/src/select.ts +1 -1
- package/packages/table/src/body.ts +19 -16
- package/packages/table/src/cell.ts +16 -14
- package/packages/table/src/table.ts +225 -146
- package/packages/table/src/util.ts +5 -1
- package/packages/tools/dom.ts +2 -7
- package/packages/v-x-e-table/src/conf.ts +2 -1
- package/types/column.d.ts +1 -0
- package/types/filter.d.ts +5 -0
- package/types/plugins/pro.d.ts +5 -0
- package/types/table.d.ts +15 -5
package/es/button/src/button.js
CHANGED
|
@@ -127,39 +127,39 @@ export default defineComponent({
|
|
|
127
127
|
var panelStyle = {
|
|
128
128
|
zIndex: panelIndex
|
|
129
129
|
};
|
|
130
|
-
var _a = getAbsolutePos(targetElem),
|
|
130
|
+
var _a = getAbsolutePos(targetElem), top_1 = _a.top, left = _a.left, boundingTop = _a.boundingTop, visibleHeight = _a.visibleHeight, visibleWidth = _a.visibleWidth;
|
|
131
131
|
var panelPlacement = 'bottom';
|
|
132
132
|
if (transfer) {
|
|
133
|
-
var
|
|
134
|
-
var
|
|
133
|
+
var btnLeft = left + targetWidth - panelWidth;
|
|
134
|
+
var btnTop = top_1 + targetHeight;
|
|
135
135
|
if (placement === 'top') {
|
|
136
136
|
panelPlacement = 'top';
|
|
137
|
-
|
|
137
|
+
btnTop = top_1 - panelHeight;
|
|
138
138
|
}
|
|
139
139
|
else if (!placement) {
|
|
140
140
|
// 如果下面不够放,则向上
|
|
141
|
-
if (
|
|
141
|
+
if (boundingTop + targetHeight + panelHeight + marginSize > visibleHeight) {
|
|
142
142
|
panelPlacement = 'top';
|
|
143
|
-
|
|
143
|
+
btnTop = top_1 - panelHeight;
|
|
144
144
|
}
|
|
145
145
|
// 如果上面不够放,则向下(优先)
|
|
146
|
-
if (
|
|
146
|
+
if (btnTop < marginSize) {
|
|
147
147
|
panelPlacement = 'bottom';
|
|
148
|
-
|
|
148
|
+
btnTop = top_1 + targetHeight;
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
// 如果溢出右边
|
|
152
|
-
if (
|
|
153
|
-
|
|
152
|
+
if (btnLeft + panelWidth + marginSize > visibleWidth) {
|
|
153
|
+
btnLeft -= btnLeft + panelWidth + marginSize - visibleWidth;
|
|
154
154
|
}
|
|
155
155
|
// 如果溢出左边
|
|
156
|
-
if (
|
|
157
|
-
|
|
156
|
+
if (btnLeft < marginSize) {
|
|
157
|
+
btnLeft = marginSize;
|
|
158
158
|
}
|
|
159
159
|
Object.assign(panelStyle, {
|
|
160
|
-
left:
|
|
160
|
+
left: btnLeft + "px",
|
|
161
161
|
right: 'auto',
|
|
162
|
-
top:
|
|
162
|
+
top: btnTop + "px",
|
|
163
163
|
minWidth: targetWidth + "px"
|
|
164
164
|
});
|
|
165
165
|
}
|
package/es/edit/src/hook.js
CHANGED
|
@@ -25,7 +25,7 @@ var editHook = {
|
|
|
25
25
|
setupTable: function ($xetable) {
|
|
26
26
|
var props = $xetable.props, reactData = $xetable.reactData, internalData = $xetable.internalData;
|
|
27
27
|
var refElem = $xetable.getRefMaps().refElem;
|
|
28
|
-
var _a = $xetable.getComputeMaps(), computeMouseOpts = _a.computeMouseOpts, computeEditOpts = _a.computeEditOpts, computeCheckboxOpts = _a.computeCheckboxOpts,
|
|
28
|
+
var _a = $xetable.getComputeMaps(), computeMouseOpts = _a.computeMouseOpts, computeEditOpts = _a.computeEditOpts, computeCheckboxOpts = _a.computeCheckboxOpts, computeTreeOpts = _a.computeTreeOpts;
|
|
29
29
|
var editMethods = {};
|
|
30
30
|
var editPrivateMethods = {};
|
|
31
31
|
var getEditColumnModel = function (row, column) {
|
|
@@ -67,13 +67,13 @@ var editHook = {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
function insertTreeRow(newRecords, isAppend) {
|
|
70
|
-
var
|
|
70
|
+
var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
|
|
71
71
|
var treeOpts = computeTreeOpts.value;
|
|
72
72
|
var funcName = isAppend ? 'push' : 'unshift';
|
|
73
73
|
newRecords.forEach(function (item) {
|
|
74
74
|
var parentRowId = item[treeOpts.parentField];
|
|
75
75
|
var rowid = getRowid($xetable, item);
|
|
76
|
-
var matchObj = parentRowId ? XEUtils.findTree(
|
|
76
|
+
var matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, function (item) { return parentRowId === item[treeOpts.rowField]; }, treeOpts) : null;
|
|
77
77
|
if (matchObj) {
|
|
78
78
|
var parentRow = matchObj.item;
|
|
79
79
|
var parentRest = fullAllDataRowIdData[getRowid($xetable, parentRow)];
|
|
@@ -83,7 +83,7 @@ var editHook = {
|
|
|
83
83
|
parentChilds = parentRow[treeOpts.children] = [];
|
|
84
84
|
}
|
|
85
85
|
parentChilds[funcName](item);
|
|
86
|
-
var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parent, level: parentLevel + 1 };
|
|
86
|
+
var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parent, level: parentLevel + 1 };
|
|
87
87
|
fullDataRowIdData[rowid] = rest;
|
|
88
88
|
fullAllDataRowIdData[rowid] = rest;
|
|
89
89
|
}
|
|
@@ -94,13 +94,12 @@ var editHook = {
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
afterFullData[funcName](item);
|
|
97
|
-
|
|
98
|
-
var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items:
|
|
97
|
+
tableFullTreeData[funcName](item);
|
|
98
|
+
var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: tableFullTreeData, parent: null, level: 0 };
|
|
99
99
|
fullDataRowIdData[rowid] = rest;
|
|
100
100
|
fullAllDataRowIdData[rowid] = rest;
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
|
-
$xetable.updateVirtualTreeData();
|
|
104
103
|
}
|
|
105
104
|
editMethods = {
|
|
106
105
|
/**
|
|
@@ -122,9 +121,8 @@ var editHook = {
|
|
|
122
121
|
insertAt: function (records, row) {
|
|
123
122
|
var _a;
|
|
124
123
|
var treeConfig = props.treeConfig;
|
|
125
|
-
var mergeList = reactData.mergeList, editStore = reactData.editStore
|
|
126
|
-
var
|
|
127
|
-
var sYOpts = computeSYOpts.value;
|
|
124
|
+
var mergeList = reactData.mergeList, editStore = reactData.editStore;
|
|
125
|
+
var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
|
|
128
126
|
var treeOpts = computeTreeOpts.value;
|
|
129
127
|
var transform = treeOpts.transform;
|
|
130
128
|
if (!XEUtils.isArray(records)) {
|
|
@@ -169,7 +167,7 @@ var editHook = {
|
|
|
169
167
|
else {
|
|
170
168
|
// 如果为虚拟树
|
|
171
169
|
if (treeConfig && transform) {
|
|
172
|
-
var matchObj_1 = XEUtils.findTree(
|
|
170
|
+
var matchObj_1 = XEUtils.findTree(tableFullTreeData, function (item) { return row[treeOpts.rowField] === item[treeOpts.rowField]; }, treeOpts);
|
|
173
171
|
if (matchObj_1) {
|
|
174
172
|
var parentRow_1 = matchObj_1.parent;
|
|
175
173
|
var parentChilds_1 = matchObj_1.items;
|
|
@@ -188,11 +186,10 @@ var editHook = {
|
|
|
188
186
|
item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
|
|
189
187
|
}
|
|
190
188
|
parentChilds_1.splice(matchObj_1.index + i, 0, item);
|
|
191
|
-
var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items: parentChilds_1, parent: parentRow_1, level: parentLevel_1 + 1 };
|
|
189
|
+
var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds_1, parent: parentRow_1, level: parentLevel_1 + 1 };
|
|
192
190
|
fullDataRowIdData[rowid] = rest;
|
|
193
191
|
fullAllDataRowIdData[rowid] = rest;
|
|
194
192
|
});
|
|
195
|
-
$xetable.updateVirtualTreeData();
|
|
196
193
|
}
|
|
197
194
|
else {
|
|
198
195
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -225,13 +222,11 @@ var editHook = {
|
|
|
225
222
|
}
|
|
226
223
|
}
|
|
227
224
|
(_a = editStore.insertList).unshift.apply(_a, newRecords);
|
|
228
|
-
reactData.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
|
|
229
225
|
$xetable.updateFooter();
|
|
230
226
|
$xetable.cacheRowMap();
|
|
231
|
-
$xetable.handleTableData(transform);
|
|
232
|
-
$xetable.updateAfterDataIndex();
|
|
227
|
+
$xetable.handleTableData(treeConfig && treeOpts.transform);
|
|
233
228
|
$xetable.checkSelectionStatus();
|
|
234
|
-
if (scrollYLoad) {
|
|
229
|
+
if (reactData.scrollYLoad) {
|
|
235
230
|
$xetable.updateScrollYSpace();
|
|
236
231
|
}
|
|
237
232
|
return nextTick().then(function () {
|
|
@@ -252,10 +247,9 @@ var editHook = {
|
|
|
252
247
|
*/
|
|
253
248
|
remove: function (rows) {
|
|
254
249
|
var treeConfig = props.treeConfig;
|
|
255
|
-
var mergeList = reactData.mergeList, editStore = reactData.editStore, selection = reactData.selection
|
|
256
|
-
var
|
|
250
|
+
var mergeList = reactData.mergeList, editStore = reactData.editStore, selection = reactData.selection;
|
|
251
|
+
var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData;
|
|
257
252
|
var checkboxOpts = computeCheckboxOpts.value;
|
|
258
|
-
var sYOpts = computeSYOpts.value;
|
|
259
253
|
var treeOpts = computeTreeOpts.value;
|
|
260
254
|
var transform = treeOpts.transform;
|
|
261
255
|
var actived = editStore.actived, removeList = editStore.removeList, insertList = editStore.insertList;
|
|
@@ -294,7 +288,7 @@ var editHook = {
|
|
|
294
288
|
if (treeConfig && transform) {
|
|
295
289
|
rows.forEach(function (row) {
|
|
296
290
|
var rowid = getRowid($xetable, row);
|
|
297
|
-
var matchObj = XEUtils.findTree(
|
|
291
|
+
var matchObj = XEUtils.findTree(tableFullTreeData, function (item) { return rowid === getRowid($xetable, item); }, treeOpts);
|
|
298
292
|
if (matchObj) {
|
|
299
293
|
var rItems = matchObj.items.splice(matchObj.index, 1);
|
|
300
294
|
rest.push(rItems[0]);
|
|
@@ -303,7 +297,6 @@ var editHook = {
|
|
|
303
297
|
if (afIndex > -1) {
|
|
304
298
|
afterFullData.splice(afIndex, 1);
|
|
305
299
|
}
|
|
306
|
-
$xetable.updateVirtualTreeData();
|
|
307
300
|
});
|
|
308
301
|
}
|
|
309
302
|
else {
|
|
@@ -341,13 +334,11 @@ var editHook = {
|
|
|
341
334
|
insertList.splice(iIndex, 1);
|
|
342
335
|
}
|
|
343
336
|
});
|
|
344
|
-
reactData.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
|
|
345
337
|
$xetable.updateFooter();
|
|
346
338
|
$xetable.cacheRowMap();
|
|
347
|
-
$xetable.handleTableData(transform);
|
|
348
|
-
$xetable.updateAfterDataIndex();
|
|
339
|
+
$xetable.handleTableData(treeConfig && treeOpts.transform);
|
|
349
340
|
$xetable.checkSelectionStatus();
|
|
350
|
-
if (scrollYLoad) {
|
|
341
|
+
if (reactData.scrollYLoad) {
|
|
351
342
|
$xetable.updateScrollYSpace();
|
|
352
343
|
}
|
|
353
344
|
return nextTick().then(function () {
|
|
@@ -402,7 +393,7 @@ var editHook = {
|
|
|
402
393
|
getInsertRecords: function () {
|
|
403
394
|
var treeConfig = props.treeConfig;
|
|
404
395
|
var editStore = reactData.editStore;
|
|
405
|
-
var
|
|
396
|
+
var tableFullTreeData = internalData.tableFullTreeData, tableFullData = internalData.tableFullData;
|
|
406
397
|
var treeOpts = computeTreeOpts.value;
|
|
407
398
|
var insertList = editStore.insertList;
|
|
408
399
|
var insertRecords = [];
|
|
@@ -411,7 +402,7 @@ var editHook = {
|
|
|
411
402
|
if (treeConfig && treeOpts.transform) {
|
|
412
403
|
insertList.forEach(function (row) {
|
|
413
404
|
var rowid = getRowid($xetable, row);
|
|
414
|
-
var matchObj = XEUtils.findTree(
|
|
405
|
+
var matchObj = XEUtils.findTree(tableFullTreeData, function (item) { return rowid === getRowid($xetable, item); }, treeOpts);
|
|
415
406
|
if (matchObj) {
|
|
416
407
|
insertRecords.push(row);
|
|
417
408
|
}
|
package/es/export/src/hook.js
CHANGED
|
@@ -2,7 +2,7 @@ import { inject, nextTick } from 'vue';
|
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
3
|
import GlobalConfig from '../../v-x-e-table/src/conf';
|
|
4
4
|
import { VXETable } from '../../v-x-e-table';
|
|
5
|
-
import { isColumnInfo, mergeBodyMethod, getCellValue } from '../../table/src/util';
|
|
5
|
+
import { isColumnInfo, mergeBodyMethod, getCellValue, toTreePathSeq } from '../../table/src/util';
|
|
6
6
|
import { errLog, warnLog, parseFile, formatText } from '../../tools/utils';
|
|
7
7
|
import { readLocalFile, handlePrint, saveLocalFile, createHtmlPage, getExportBlobByContent } from './util';
|
|
8
8
|
var htmlCellElem;
|
|
@@ -265,14 +265,14 @@ var tableExportHook = {
|
|
|
265
265
|
var treeOpts = computeTreeOpts.value;
|
|
266
266
|
return row[treeOpts.children] && row[treeOpts.children].length;
|
|
267
267
|
};
|
|
268
|
-
var getSeq = function (row, rowIndex, column, columnIndex,
|
|
268
|
+
var getSeq = function (row, rowIndex, column, columnIndex, path) {
|
|
269
269
|
var seqOpts = computeSeqOpts.value;
|
|
270
270
|
var seqMethod = seqOpts.seqMethod || column.seqMethod;
|
|
271
271
|
if (seqMethod) {
|
|
272
272
|
return seqMethod({ row: row, rowIndex: rowIndex, column: column, columnIndex: columnIndex });
|
|
273
273
|
}
|
|
274
|
-
if (
|
|
275
|
-
return
|
|
274
|
+
if (path) {
|
|
275
|
+
return toTreePathSeq(path);
|
|
276
276
|
}
|
|
277
277
|
return seqOpts.startIndex + rowIndex + 1;
|
|
278
278
|
};
|
package/es/filter/src/hook.js
CHANGED
|
@@ -13,7 +13,7 @@ import { nextTick } from 'vue';
|
|
|
13
13
|
import XEUtils from 'xe-utils';
|
|
14
14
|
import { VXETable } from '../../v-x-e-table';
|
|
15
15
|
import { toFilters, handleFieldOrColumn } from '../../table/src/util';
|
|
16
|
-
import { getDomNode } from '../../tools/dom';
|
|
16
|
+
import { getDomNode, triggerEvent } from '../../tools/dom';
|
|
17
17
|
var tableFilterMethodKeys = ['setFilter', 'clearFilter', 'getCheckedFilters'];
|
|
18
18
|
var tableFilterHook = {
|
|
19
19
|
setupTable: function ($xetable) {
|
|
@@ -91,7 +91,7 @@ var tableFilterHook = {
|
|
|
91
91
|
// 判断面板不能大于表格高度
|
|
92
92
|
var maxHeight = null;
|
|
93
93
|
if (filterHeight >= bodyElem.clientHeight) {
|
|
94
|
-
maxHeight = Math.max(
|
|
94
|
+
maxHeight = Math.max(60, bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0));
|
|
95
95
|
}
|
|
96
96
|
if (column.fixed === 'left') {
|
|
97
97
|
left = targetElem_1.offsetLeft + targetElem_1.offsetParent.offsetLeft - centerWidth;
|
|
@@ -181,6 +181,25 @@ var tableFilterHook = {
|
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
183
|
var filterMethods = {
|
|
184
|
+
/**
|
|
185
|
+
* 手动弹出筛选面板
|
|
186
|
+
* @param column
|
|
187
|
+
*/
|
|
188
|
+
openFilter: function (fieldOrColumn) {
|
|
189
|
+
var column = handleFieldOrColumn($xetable, fieldOrColumn);
|
|
190
|
+
if (column && column.filters) {
|
|
191
|
+
var elemStore_1 = internalData.elemStore;
|
|
192
|
+
var fixed_1 = column.fixed;
|
|
193
|
+
return $xetable.scrollToColumn(column).then(function () {
|
|
194
|
+
var headerWrapperElem = elemStore_1[(fixed_1 || 'main') + "-header-wrapper"] || elemStore_1['main-header-wrapper'];
|
|
195
|
+
if (headerWrapperElem) {
|
|
196
|
+
var filterBtnElem = headerWrapperElem.querySelector(".vxe-header--column." + column.id + " .vxe-filter--btn");
|
|
197
|
+
triggerEvent(filterBtnElem, 'click');
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return nextTick();
|
|
202
|
+
},
|
|
184
203
|
/**
|
|
185
204
|
* 修改筛选条件列表
|
|
186
205
|
* @param {ColumnInfo} fieldOrColumn 列或字段名
|
package/es/select/src/select.js
CHANGED
|
@@ -151,7 +151,7 @@ export default defineComponent({
|
|
|
151
151
|
return getSelectLabel(modelValue);
|
|
152
152
|
});
|
|
153
153
|
var getOptkey = function () {
|
|
154
|
-
return props.optionId || '
|
|
154
|
+
return props.optionId || '_X_ID';
|
|
155
155
|
};
|
|
156
156
|
var getOptid = function (option) {
|
|
157
157
|
var optid = option[getOptkey()];
|
package/es/table/src/body.js
CHANGED
|
@@ -110,7 +110,7 @@ export default defineComponent({
|
|
|
110
110
|
/**
|
|
111
111
|
* 渲染列
|
|
112
112
|
*/
|
|
113
|
-
var renderColumn = function (
|
|
113
|
+
var renderColumn = function (seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
|
|
114
114
|
var _a;
|
|
115
115
|
var columnKey = tableProps.columnKey, height = tableProps.height, allColumnOverflow = tableProps.showOverflow, cellClassName = tableProps.cellClassName, cellStyle = tableProps.cellStyle, allAlign = tableProps.align, spanMethod = tableProps.spanMethod, mouseConfig = tableProps.mouseConfig, editConfig = tableProps.editConfig, editRules = tableProps.editRules, tooltipConfig = tableProps.tooltipConfig;
|
|
116
116
|
var tableData = tableReactData.tableData, overflowX = tableReactData.overflowX, scrollYLoad = tableReactData.scrollYLoad, currentColumn = tableReactData.currentColumn, mergeList = tableReactData.mergeList, editStore = tableReactData.editStore, validStore = tableReactData.validStore, isAllOverflow = tableReactData.isAllOverflow;
|
|
@@ -141,7 +141,7 @@ export default defineComponent({
|
|
|
141
141
|
var hasValidError = validStore.row === row && validStore.column === column;
|
|
142
142
|
var showValidTip = editRules && validOpts.showMessage && (validOpts.message === 'default' ? (height || tableData.length > 1) : validOpts.message === 'inline');
|
|
143
143
|
var attrs = { colid: column.id };
|
|
144
|
-
var params = { $table: $xetable,
|
|
144
|
+
var params = { $table: $xetable, seq: seq, rowid: rowid, row: row, rowIndex: rowIndex, $rowIndex: $rowIndex, _rowIndex: _rowIndex, column: column, columnIndex: columnIndex, $columnIndex: $columnIndex, _columnIndex: _columnIndex, fixed: fixedType, type: renderType, isHidden: fixedHiddenColumn, level: rowLevel, visibleData: afterFullData, data: tableData, items: items };
|
|
145
145
|
// 虚拟滚动不支持动态高度
|
|
146
146
|
if (scrollYLoad && !hasEllipsis) {
|
|
147
147
|
showEllipsis = hasEllipsis = true;
|
|
@@ -282,23 +282,20 @@ export default defineComponent({
|
|
|
282
282
|
height: hasEllipsis && (scrollYRHeight || rowHeight) ? (scrollYRHeight || rowHeight) + "px" : ''
|
|
283
283
|
}, cellStyle ? (XEUtils.isFunction(cellStyle) ? cellStyle(params) : cellStyle) : null) }), tdOns), tdVNs);
|
|
284
284
|
};
|
|
285
|
-
var renderRows = function (
|
|
285
|
+
var renderRows = function (fixedType, tableData, tableColumn) {
|
|
286
286
|
var stripe = tableProps.stripe, rowKey = tableProps.rowKey, highlightHoverRow = tableProps.highlightHoverRow, rowClassName = tableProps.rowClassName, rowStyle = tableProps.rowStyle, allColumnOverflow = tableProps.showOverflow, editConfig = tableProps.editConfig, treeConfig = tableProps.treeConfig;
|
|
287
287
|
var hasFixedColumn = tableReactData.hasFixedColumn, treeExpandeds = tableReactData.treeExpandeds, scrollYLoad = tableReactData.scrollYLoad, editStore = tableReactData.editStore, rowExpandeds = tableReactData.rowExpandeds, expandColumn = tableReactData.expandColumn, selectRow = tableReactData.selectRow;
|
|
288
|
-
var
|
|
288
|
+
var fullDataRowIdData = tableInternalData.fullDataRowIdData;
|
|
289
289
|
var checkboxOpts = computeCheckboxOpts.value;
|
|
290
290
|
var radioOpts = computeRadioOpts.value;
|
|
291
291
|
var treeOpts = computeTreeOpts.value;
|
|
292
292
|
var editOpts = computeEditOpts.value;
|
|
293
293
|
var rowOpts = computeRowOpts.value;
|
|
294
|
+
var transform = treeOpts.transform;
|
|
294
295
|
var rows = [];
|
|
295
296
|
tableData.forEach(function (row, $rowIndex) {
|
|
296
297
|
var trOn = {};
|
|
297
298
|
var rowIndex = $rowIndex;
|
|
298
|
-
var seq = rowIndex + 1;
|
|
299
|
-
if (scrollYLoad) {
|
|
300
|
-
seq += scrollYStore.startIndex;
|
|
301
|
-
}
|
|
302
299
|
var _rowIndex = $xetable.getVTRowIndex(row);
|
|
303
300
|
// 确保任何情况下 rowIndex 都精准指向真实 data 索引
|
|
304
301
|
rowIndex = $xetable.getRowIndex(row);
|
|
@@ -318,9 +315,15 @@ export default defineComponent({
|
|
|
318
315
|
};
|
|
319
316
|
}
|
|
320
317
|
var rowid = getRowid($xetable, row);
|
|
321
|
-
var rest =
|
|
322
|
-
var rowLevel =
|
|
323
|
-
var
|
|
318
|
+
var rest = fullDataRowIdData[rowid];
|
|
319
|
+
var rowLevel = 0;
|
|
320
|
+
var seq = -1;
|
|
321
|
+
if (rest) {
|
|
322
|
+
rowLevel = rest.level;
|
|
323
|
+
seq = rest.seq;
|
|
324
|
+
}
|
|
325
|
+
var params = { $table: $xetable, seq: seq, rowid: rowid, fixed: fixedType, type: renderType, level: rowLevel, row: row, rowIndex: rowIndex, $rowIndex: $rowIndex, _rowIndex: _rowIndex };
|
|
326
|
+
// 处理新增状态
|
|
324
327
|
var isNewRow = false;
|
|
325
328
|
if (editConfig) {
|
|
326
329
|
isNewRow = $xetable.findRowIndexOf(editStore.insertList, row) > -1;
|
|
@@ -332,7 +335,7 @@ export default defineComponent({
|
|
|
332
335
|
'row--radio': radioOpts.highlight && selectRow === row,
|
|
333
336
|
'row--checked': checkboxOpts.highlight && $xetable.isCheckedByCheckboxRow(row)
|
|
334
337
|
}, rowClassName ? (XEUtils.isFunction(rowClassName) ? rowClassName(params) : rowClassName) : ''], rowid: rowid, style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(params) : rowStyle) : null, key: rowKey || treeConfig ? rowid : $rowIndex }, trOn), tableColumn.map(function (column, $columnIndex) {
|
|
335
|
-
return renderColumn(
|
|
338
|
+
return renderColumn(seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
|
|
336
339
|
})));
|
|
337
340
|
// 如果行被展开了
|
|
338
341
|
if (expandColumn && rowExpandeds.length && $xetable.findRowIndexOf(rowExpandeds, row) > -1) {
|
|
@@ -344,7 +347,7 @@ export default defineComponent({
|
|
|
344
347
|
}
|
|
345
348
|
var showOverflow = expandColumn.showOverflow;
|
|
346
349
|
var hasEllipsis = (XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow)) ? allColumnOverflow : showOverflow;
|
|
347
|
-
var expandParams = { $table: $xetable,
|
|
350
|
+
var expandParams = { $table: $xetable, seq: seq, column: expandColumn, fixed: fixedType, type: renderType, level: rowLevel, row: row, rowIndex: rowIndex, $rowIndex: $rowIndex, _rowIndex: _rowIndex };
|
|
348
351
|
rows.push(h('tr', __assign({ class: 'vxe-body--expanded-row', key: "expand_" + rowid, style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(expandParams) : rowStyle) : null }, trOn), [
|
|
349
352
|
h('td', {
|
|
350
353
|
class: ['vxe-body--expanded-column', {
|
|
@@ -363,10 +366,10 @@ export default defineComponent({
|
|
|
363
366
|
]));
|
|
364
367
|
}
|
|
365
368
|
// 如果是树形表格
|
|
366
|
-
if (treeConfig && !scrollYLoad && treeExpandeds.length) {
|
|
369
|
+
if (treeConfig && !scrollYLoad && !transform && treeExpandeds.length) {
|
|
367
370
|
var rowChildren = row[treeOpts.children];
|
|
368
371
|
if (rowChildren && rowChildren.length && $xetable.findRowIndexOf(treeExpandeds, row) > -1) {
|
|
369
|
-
rows.push.apply(rows, renderRows(
|
|
372
|
+
rows.push.apply(rows, renderRows(fixedType, rowChildren, tableColumn));
|
|
370
373
|
}
|
|
371
374
|
}
|
|
372
375
|
});
|
|
@@ -655,7 +658,7 @@ export default defineComponent({
|
|
|
655
658
|
*/
|
|
656
659
|
h('tbody', {
|
|
657
660
|
ref: refBodyTBody
|
|
658
|
-
}, renderRows(
|
|
661
|
+
}, renderRows(fixedType, tableData, tableColumn))
|
|
659
662
|
]),
|
|
660
663
|
h('div', {
|
|
661
664
|
class: 'vxe-table--checkbox-range'
|
package/es/table/src/cell.js
CHANGED
|
@@ -105,16 +105,16 @@ export var Cell = {
|
|
|
105
105
|
};
|
|
106
106
|
switch (type) {
|
|
107
107
|
case 'seq':
|
|
108
|
-
renConfs.renderHeader = Cell.
|
|
109
|
-
renConfs.renderCell = treeNode ? Cell.renderTreeIndexCell : Cell.
|
|
108
|
+
renConfs.renderHeader = Cell.renderSeqHeader;
|
|
109
|
+
renConfs.renderCell = treeNode ? Cell.renderTreeIndexCell : Cell.renderSeqCell;
|
|
110
110
|
break;
|
|
111
111
|
case 'radio':
|
|
112
112
|
renConfs.renderHeader = Cell.renderRadioHeader;
|
|
113
113
|
renConfs.renderCell = treeNode ? Cell.renderTreeRadioCell : Cell.renderRadioCell;
|
|
114
114
|
break;
|
|
115
115
|
case 'checkbox':
|
|
116
|
-
renConfs.renderHeader = Cell.
|
|
117
|
-
renConfs.renderCell = checkboxOpts.checkField ? (treeNode ? Cell.renderTreeSelectionCellByProp : Cell.
|
|
116
|
+
renConfs.renderHeader = Cell.renderCheckboxHeader;
|
|
117
|
+
renConfs.renderCell = checkboxOpts.checkField ? (treeNode ? Cell.renderTreeSelectionCellByProp : Cell.renderCheckboxCellByProp) : (treeNode ? Cell.renderTreeSelectionCell : Cell.renderCheckboxCell);
|
|
118
118
|
break;
|
|
119
119
|
case 'expand':
|
|
120
120
|
renConfs.renderCell = Cell.renderExpandCell;
|
|
@@ -266,14 +266,16 @@ export var Cell = {
|
|
|
266
266
|
/**
|
|
267
267
|
* 索引
|
|
268
268
|
*/
|
|
269
|
-
|
|
269
|
+
renderSeqHeader: function (params) {
|
|
270
270
|
var $table = params.$table, column = params.column;
|
|
271
271
|
var slots = column.slots;
|
|
272
272
|
var headerSlot = slots ? slots.header : null;
|
|
273
273
|
return renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : formatText(column.getTitle(), 1));
|
|
274
274
|
},
|
|
275
|
-
|
|
275
|
+
renderSeqCell: function (params) {
|
|
276
276
|
var $table = params.$table, column = params.column;
|
|
277
|
+
var props = $table.props;
|
|
278
|
+
var treeConfig = props.treeConfig;
|
|
277
279
|
var computeSeqOpts = $table.getComputeMaps().computeSeqOpts;
|
|
278
280
|
var seqOpts = computeSeqOpts.value;
|
|
279
281
|
var slots = column.slots;
|
|
@@ -281,12 +283,12 @@ export var Cell = {
|
|
|
281
283
|
if (defaultSlot) {
|
|
282
284
|
return $table.callSlot(defaultSlot, params);
|
|
283
285
|
}
|
|
284
|
-
var
|
|
286
|
+
var seq = params.seq;
|
|
285
287
|
var seqMethod = seqOpts.seqMethod;
|
|
286
|
-
return [formatText(seqMethod ? seqMethod(params) :
|
|
288
|
+
return [formatText(seqMethod ? seqMethod(params) : treeConfig ? seq : (seqOpts.startIndex || 0) + seq, 1)];
|
|
287
289
|
},
|
|
288
290
|
renderTreeIndexCell: function (params) {
|
|
289
|
-
return Cell.renderTreeIcon(params, Cell.
|
|
291
|
+
return Cell.renderTreeIcon(params, Cell.renderSeqCell(params));
|
|
290
292
|
},
|
|
291
293
|
/**
|
|
292
294
|
* 单选
|
|
@@ -359,7 +361,7 @@ export var Cell = {
|
|
|
359
361
|
/**
|
|
360
362
|
* 多选
|
|
361
363
|
*/
|
|
362
|
-
|
|
364
|
+
renderCheckboxHeader: function (params) {
|
|
363
365
|
var $table = params.$table, column = params.column, isHidden = params.isHidden;
|
|
364
366
|
var reactData = $table.reactData;
|
|
365
367
|
var _a = $table.getComputeMaps(), computeIsAllCheckboxDisabled = _a.computeIsAllCheckboxDisabled, computeCheckboxOpts = _a.computeCheckboxOpts;
|
|
@@ -415,7 +417,7 @@ export var Cell = {
|
|
|
415
417
|
] : []))
|
|
416
418
|
]);
|
|
417
419
|
},
|
|
418
|
-
|
|
420
|
+
renderCheckboxCell: function (params) {
|
|
419
421
|
var $table = params.$table, row = params.row, column = params.column, isHidden = params.isHidden;
|
|
420
422
|
var props = $table.props, reactData = $table.reactData;
|
|
421
423
|
var treeConfig = props.treeConfig;
|
|
@@ -475,9 +477,9 @@ export var Cell = {
|
|
|
475
477
|
];
|
|
476
478
|
},
|
|
477
479
|
renderTreeSelectionCell: function (params) {
|
|
478
|
-
return Cell.renderTreeIcon(params, Cell.
|
|
480
|
+
return Cell.renderTreeIcon(params, Cell.renderCheckboxCell(params));
|
|
479
481
|
},
|
|
480
|
-
|
|
482
|
+
renderCheckboxCellByProp: function (params) {
|
|
481
483
|
var $table = params.$table, row = params.row, column = params.column, isHidden = params.isHidden;
|
|
482
484
|
var props = $table.props, reactData = $table.reactData;
|
|
483
485
|
var treeConfig = props.treeConfig;
|
|
@@ -537,7 +539,7 @@ export var Cell = {
|
|
|
537
539
|
];
|
|
538
540
|
},
|
|
539
541
|
renderTreeSelectionCellByProp: function (params) {
|
|
540
|
-
return Cell.renderTreeIcon(params, Cell.
|
|
542
|
+
return Cell.renderTreeIcon(params, Cell.renderCheckboxCellByProp(params));
|
|
541
543
|
},
|
|
542
544
|
/**
|
|
543
545
|
* 展开行
|