vxe-table 4.1.6 → 4.1.9
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 +3 -3
- package/es/export/src/hook.js +17 -6
- package/es/filter/src/hook.js +20 -1
- package/es/grid/src/grid.js +6 -2
- package/es/table/src/body.js +11 -14
- package/es/table/src/cell.js +16 -14
- package/es/table/src/props.js +6 -6
- package/es/table/src/table.js +102 -89
- package/es/table/src/util.js +3 -0
- package/es/tools/dom.js +2 -8
- package/es/v-x-e-table/src/conf.js +3 -0
- package/lib/button/src/button.js +15 -14
- package/lib/button/src/button.min.js +1 -1
- package/lib/edit/src/hook.js +3 -0
- package/lib/edit/src/hook.min.js +1 -1
- package/lib/export/src/hook.js +25 -10
- package/lib/export/src/hook.min.js +1 -1
- package/lib/filter/src/hook.js +23 -0
- package/lib/filter/src/hook.min.js +1 -1
- package/lib/grid/src/grid.js +6 -3
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +307 -208
- package/lib/index.umd.min.js +1 -1
- package/lib/table/src/body.js +8 -16
- 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/props.js +6 -6
- package/lib/table/src/table.js +158 -114
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +7 -0
- 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 +3 -0
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +1 -1
- package/packages/button/src/button.ts +14 -14
- package/packages/edit/src/hook.ts +3 -3
- package/packages/export/src/hook.ts +17 -6
- package/packages/filter/src/hook.ts +20 -1
- package/packages/grid/src/grid.ts +6 -2
- package/packages/table/src/body.ts +11 -14
- package/packages/table/src/cell.ts +16 -14
- package/packages/table/src/props.ts +6 -6
- package/packages/table/src/table.ts +102 -89
- package/packages/table/src/util.ts +4 -0
- package/packages/tools/dom.ts +2 -7
- package/packages/v-x-e-table/src/conf.ts +3 -0
- package/types/filter.d.ts +5 -0
- package/types/plugins/pro.d.ts +5 -0
- package/types/table.d.ts +12 -2
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
|
@@ -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
|
}
|
|
@@ -95,7 +95,7 @@ var editHook = {
|
|
|
95
95
|
}
|
|
96
96
|
afterFullData[funcName](item);
|
|
97
97
|
treeFullData[funcName](item);
|
|
98
|
-
var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items: treeFullData, parent: null, level: 0 };
|
|
98
|
+
var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: treeFullData, parent: null, level: 0 };
|
|
99
99
|
fullDataRowIdData[rowid] = rest;
|
|
100
100
|
fullAllDataRowIdData[rowid] = rest;
|
|
101
101
|
}
|
|
@@ -188,7 +188,7 @@ var editHook = {
|
|
|
188
188
|
item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
|
|
189
189
|
}
|
|
190
190
|
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 };
|
|
191
|
+
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
192
|
fullDataRowIdData[rowid] = rest;
|
|
193
193
|
fullAllDataRowIdData[rowid] = rest;
|
|
194
194
|
});
|
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;
|
|
@@ -86,6 +86,9 @@ function getFooterData(opts, footerTableData) {
|
|
|
86
86
|
}
|
|
87
87
|
function getCsvCellTypeLabel(column, cellValue) {
|
|
88
88
|
if (cellValue) {
|
|
89
|
+
if (column.type === 'seq') {
|
|
90
|
+
return "\t" + cellValue;
|
|
91
|
+
}
|
|
89
92
|
switch (column.cellType) {
|
|
90
93
|
case 'string':
|
|
91
94
|
if (!isNaN(cellValue)) {
|
|
@@ -262,10 +265,16 @@ var tableExportHook = {
|
|
|
262
265
|
var treeOpts = computeTreeOpts.value;
|
|
263
266
|
return row[treeOpts.children] && row[treeOpts.children].length;
|
|
264
267
|
};
|
|
265
|
-
var getSeq = function (row, rowIndex, column, columnIndex) {
|
|
268
|
+
var getSeq = function (row, rowIndex, column, columnIndex, path) {
|
|
266
269
|
var seqOpts = computeSeqOpts.value;
|
|
267
270
|
var seqMethod = seqOpts.seqMethod || column.seqMethod;
|
|
268
|
-
|
|
271
|
+
if (seqMethod) {
|
|
272
|
+
return seqMethod({ row: row, rowIndex: rowIndex, column: column, columnIndex: columnIndex });
|
|
273
|
+
}
|
|
274
|
+
if (path) {
|
|
275
|
+
return toTreePathSeq(path);
|
|
276
|
+
}
|
|
277
|
+
return seqOpts.startIndex + rowIndex + 1;
|
|
269
278
|
};
|
|
270
279
|
var toBooleanValue = function (cellValue) {
|
|
271
280
|
return XEUtils.isBoolean(cellValue) ? (cellValue ? 'TRUE' : 'FALSE') : cellValue;
|
|
@@ -282,10 +291,11 @@ var tableExportHook = {
|
|
|
282
291
|
if (treeConfig) {
|
|
283
292
|
// 如果是树表格只允许导出数据源
|
|
284
293
|
var rest_1 = [];
|
|
294
|
+
var expandMaps_1 = new Map();
|
|
285
295
|
XEUtils.eachTree(datas, function (item, rowIndex, items, path, parent, nodes) {
|
|
286
296
|
var row = item._row || item;
|
|
287
297
|
var parentRow = parent && parent._row ? parent._row : parent;
|
|
288
|
-
if ((isAllExpand || !parentRow || $xetable.isTreeExpandByRow(parentRow))) {
|
|
298
|
+
if ((isAllExpand || !parentRow || (expandMaps_1.has(parentRow) && $xetable.isTreeExpandByRow(parentRow)))) {
|
|
289
299
|
var hasRowChild = hasTreeChildren(row);
|
|
290
300
|
var item_3 = {
|
|
291
301
|
_row: row,
|
|
@@ -309,7 +319,7 @@ var tableExportHook = {
|
|
|
309
319
|
else {
|
|
310
320
|
switch (column.type) {
|
|
311
321
|
case 'seq':
|
|
312
|
-
cellValue = getSeq(row, rowIndex, column, columnIndex);
|
|
322
|
+
cellValue = getSeq(row, rowIndex, column, columnIndex, path);
|
|
313
323
|
break;
|
|
314
324
|
case 'checkbox':
|
|
315
325
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row));
|
|
@@ -342,6 +352,7 @@ var tableExportHook = {
|
|
|
342
352
|
}
|
|
343
353
|
item_3[column.id] = XEUtils.toValueString(cellValue);
|
|
344
354
|
});
|
|
355
|
+
expandMaps_1.set(row, 1);
|
|
345
356
|
rest_1.push(Object.assign(item_3, row));
|
|
346
357
|
}
|
|
347
358
|
}, treeOpts);
|
|
@@ -367,7 +378,7 @@ var tableExportHook = {
|
|
|
367
378
|
else {
|
|
368
379
|
switch (column.type) {
|
|
369
380
|
case 'seq':
|
|
370
|
-
cellValue = getSeq(row, rowIndex, column, columnIndex);
|
|
381
|
+
cellValue = getSeq(row, rowIndex, column, columnIndex, []);
|
|
371
382
|
break;
|
|
372
383
|
case 'checkbox':
|
|
373
384
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row));
|
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) {
|
|
@@ -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/grid/src/grid.js
CHANGED
|
@@ -835,7 +835,11 @@ export default defineComponent({
|
|
|
835
835
|
body_1.insertRecords = insertRecords_1.filter(function (row) { return $xetable.findRowIndexOf(pendingRecords_1, row) === -1; });
|
|
836
836
|
}
|
|
837
837
|
// 只校验新增和修改的数据
|
|
838
|
-
return $xetable.validate(body_1.insertRecords.concat(updateRecords_1)).then(function () {
|
|
838
|
+
return $xetable.validate(body_1.insertRecords.concat(updateRecords_1)).then(function (errMap) {
|
|
839
|
+
if (errMap) {
|
|
840
|
+
// 如果校验不通过
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
839
843
|
if (body_1.insertRecords.length || removeRecords_2.length || updateRecords_1.length || body_1.pendingRecords.length) {
|
|
840
844
|
reactData.tableLoading = true;
|
|
841
845
|
return Promise.resolve((beforeSave || ajaxMethods_2).apply(void 0, applyArgs_3))
|
|
@@ -882,7 +886,7 @@ export default defineComponent({
|
|
|
882
886
|
VXETable.modal.message({ id: code, content: GlobalConfig.i18n('vxe.grid.dataUnchanged'), status: 'info' });
|
|
883
887
|
}
|
|
884
888
|
}
|
|
885
|
-
})
|
|
889
|
+
});
|
|
886
890
|
}
|
|
887
891
|
else {
|
|
888
892
|
if (process.env.NODE_ENV === 'development') {
|
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,10 +282,10 @@ 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;
|
|
@@ -295,10 +295,6 @@ export default defineComponent({
|
|
|
295
295
|
tableData.forEach(function (row, $rowIndex) {
|
|
296
296
|
var trOn = {};
|
|
297
297
|
var rowIndex = $rowIndex;
|
|
298
|
-
var seq = rowIndex + 1;
|
|
299
|
-
if (scrollYLoad) {
|
|
300
|
-
seq += scrollYStore.startIndex;
|
|
301
|
-
}
|
|
302
298
|
var _rowIndex = $xetable.getVTRowIndex(row);
|
|
303
299
|
// 确保任何情况下 rowIndex 都精准指向真实 data 索引
|
|
304
300
|
rowIndex = $xetable.getRowIndex(row);
|
|
@@ -318,9 +314,10 @@ export default defineComponent({
|
|
|
318
314
|
};
|
|
319
315
|
}
|
|
320
316
|
var rowid = getRowid($xetable, row);
|
|
321
|
-
var rest =
|
|
317
|
+
var rest = fullDataRowIdData[rowid];
|
|
322
318
|
var rowLevel = rest ? rest.level : 0;
|
|
323
|
-
var
|
|
319
|
+
var seq = rest ? rest.seq : -1;
|
|
320
|
+
var params = { $table: $xetable, seq: seq, rowid: rowid, fixed: fixedType, type: renderType, level: rowLevel, row: row, rowIndex: rowIndex, $rowIndex: $rowIndex, _rowIndex: _rowIndex };
|
|
324
321
|
var isNewRow = false;
|
|
325
322
|
if (editConfig) {
|
|
326
323
|
isNewRow = $xetable.findRowIndexOf(editStore.insertList, row) > -1;
|
|
@@ -332,7 +329,7 @@ export default defineComponent({
|
|
|
332
329
|
'row--radio': radioOpts.highlight && selectRow === row,
|
|
333
330
|
'row--checked': checkboxOpts.highlight && $xetable.isCheckedByCheckboxRow(row)
|
|
334
331
|
}, 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(
|
|
332
|
+
return renderColumn(seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
|
|
336
333
|
})));
|
|
337
334
|
// 如果行被展开了
|
|
338
335
|
if (expandColumn && rowExpandeds.length && $xetable.findRowIndexOf(rowExpandeds, row) > -1) {
|
|
@@ -344,7 +341,7 @@ export default defineComponent({
|
|
|
344
341
|
}
|
|
345
342
|
var showOverflow = expandColumn.showOverflow;
|
|
346
343
|
var hasEllipsis = (XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow)) ? allColumnOverflow : showOverflow;
|
|
347
|
-
var expandParams = { $table: $xetable,
|
|
344
|
+
var expandParams = { $table: $xetable, seq: seq, column: expandColumn, fixed: fixedType, type: renderType, level: rowLevel, row: row, rowIndex: rowIndex, $rowIndex: $rowIndex, _rowIndex: _rowIndex };
|
|
348
345
|
rows.push(h('tr', __assign({ class: 'vxe-body--expanded-row', key: "expand_" + rowid, style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(expandParams) : rowStyle) : null }, trOn), [
|
|
349
346
|
h('td', {
|
|
350
347
|
class: ['vxe-body--expanded-column', {
|
|
@@ -366,7 +363,7 @@ export default defineComponent({
|
|
|
366
363
|
if (treeConfig && !scrollYLoad && treeExpandeds.length) {
|
|
367
364
|
var rowChildren = row[treeOpts.children];
|
|
368
365
|
if (rowChildren && rowChildren.length && $xetable.findRowIndexOf(treeExpandeds, row) > -1) {
|
|
369
|
-
rows.push.apply(rows, renderRows(
|
|
366
|
+
rows.push.apply(rows, renderRows(fixedType, rowChildren, tableColumn));
|
|
370
367
|
}
|
|
371
368
|
}
|
|
372
369
|
});
|
|
@@ -655,7 +652,7 @@ export default defineComponent({
|
|
|
655
652
|
*/
|
|
656
653
|
h('tbody', {
|
|
657
654
|
ref: refBodyTBody
|
|
658
|
-
}, renderRows(
|
|
655
|
+
}, renderRows(fixedType, tableData, tableColumn))
|
|
659
656
|
]),
|
|
660
657
|
h('div', {
|
|
661
658
|
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
|
* 展开行
|
package/es/table/src/props.js
CHANGED
|
@@ -30,15 +30,15 @@ export default {
|
|
|
30
30
|
footerAlign: { type: String, default: function () { return GlobalConfig.table.footerAlign; } },
|
|
31
31
|
// 是否显示表头
|
|
32
32
|
showHeader: { type: Boolean, default: function () { return GlobalConfig.table.showHeader; } },
|
|
33
|
-
//
|
|
33
|
+
// (即将废弃)是否要高亮当前选中行
|
|
34
34
|
highlightCurrentRow: { type: Boolean, default: function () { return GlobalConfig.table.highlightCurrentRow; } },
|
|
35
|
-
//
|
|
35
|
+
// (即将废弃)鼠标移到行是否要高亮显示
|
|
36
36
|
highlightHoverRow: { type: Boolean, default: function () { return GlobalConfig.table.highlightHoverRow; } },
|
|
37
|
-
//
|
|
37
|
+
// (即将废弃)是否要高亮当前选中列
|
|
38
38
|
highlightCurrentColumn: { type: Boolean, default: function () { return GlobalConfig.table.highlightCurrentColumn; } },
|
|
39
|
-
//
|
|
39
|
+
// (即将废弃)鼠标移到列是否要高亮显示
|
|
40
40
|
highlightHoverColumn: { type: Boolean, default: function () { return GlobalConfig.table.highlightHoverColumn; } },
|
|
41
|
-
//
|
|
41
|
+
// (即将废弃)激活单元格编辑时是否高亮显示
|
|
42
42
|
highlightCell: Boolean,
|
|
43
43
|
// 是否显示表尾合计
|
|
44
44
|
showFooter: Boolean,
|
|
@@ -148,7 +148,7 @@ export default {
|
|
|
148
148
|
scrollX: Object,
|
|
149
149
|
// 纵向虚拟滚动配置项
|
|
150
150
|
scrollY: Object,
|
|
151
|
-
//
|
|
151
|
+
// (即将废弃)优化相关
|
|
152
152
|
animat: { type: Boolean, default: function () { return GlobalConfig.table.animat; } },
|
|
153
153
|
delayHover: { type: Number, default: function () { return GlobalConfig.table.delayHover; } },
|
|
154
154
|
// 额外的参数
|