vxe-table 3.11.38 → 3.12.0-beta.0
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/render/index.js +47 -12
- package/es/table/src/body.js +81 -35
- package/es/table/src/footer.js +54 -18
- package/es/table/src/header.js +58 -10
- package/es/table/src/methods.js +159 -118
- package/es/table/src/table.js +5 -13
- package/es/table/style.css +3 -5
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +5 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +3 -5
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +464 -272
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/render/index.js +47 -12
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +101 -56
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +67 -30
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +71 -18
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +167 -137
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +5 -15
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +3 -5
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +5 -3
- 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/lib/vxe-table/style/style.css +3 -5
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/render/index.ts +48 -12
- package/packages/table/src/body.ts +84 -35
- package/packages/table/src/footer.ts +58 -18
- package/packages/table/src/header.ts +62 -11
- package/packages/table/src/methods.ts +163 -126
- package/packages/table/src/table.ts +6 -15
- package/packages/ui/index.ts +4 -2
- package/styles/components/table.scss +1 -3
- /package/es/{iconfont.1735003904481.ttf → iconfont.1735106128767.ttf} +0 -0
- /package/es/{iconfont.1735003904481.woff → iconfont.1735106128767.woff} +0 -0
- /package/es/{iconfont.1735003904481.woff2 → iconfont.1735106128767.woff2} +0 -0
- /package/lib/{iconfont.1735003904481.ttf → iconfont.1735106128767.ttf} +0 -0
- /package/lib/{iconfont.1735003904481.woff → iconfont.1735106128767.woff} +0 -0
- /package/lib/{iconfont.1735003904481.woff2 → iconfont.1735106128767.woff2} +0 -0
package/es/table/src/body.js
CHANGED
|
@@ -352,15 +352,9 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
|
|
|
352
352
|
}
|
|
353
353
|
// 拖拽行事件
|
|
354
354
|
if (rowOpts.drag && (!treeConfig || transform)) {
|
|
355
|
-
trOn.dragstart =
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
trOn.dragover = (evnt) => {
|
|
359
|
-
$xeTable.handleRowDragDragoverEvent(evnt);
|
|
360
|
-
};
|
|
361
|
-
trOn.dragend = (evnt) => {
|
|
362
|
-
$xeTable.handleRowDragDragendEvent(evnt);
|
|
363
|
-
};
|
|
355
|
+
trOn.dragstart = $xeTable.handleRowDragDragstartEvent;
|
|
356
|
+
trOn.dragend = $xeTable.handleRowDragDragendEvent;
|
|
357
|
+
trOn.dragover = $xeTable.handleRowDragDragoverEvent;
|
|
364
358
|
}
|
|
365
359
|
const trClass = [
|
|
366
360
|
'vxe-body--row',
|
|
@@ -498,46 +492,98 @@ export default {
|
|
|
498
492
|
elemStore[`${prefix}emptyBlock`] = null;
|
|
499
493
|
},
|
|
500
494
|
render(h) {
|
|
495
|
+
const props = this;
|
|
501
496
|
const $xeTable = this.$parent;
|
|
502
|
-
const
|
|
497
|
+
const tableProps = $xeTable;
|
|
498
|
+
const tableReactData = $xeTable;
|
|
499
|
+
const tableInternalData = $xeTable;
|
|
500
|
+
const { tId, $scopedSlots } = $xeTable;
|
|
501
|
+
const { fixedColumn, fixedType, tableColumn } = props;
|
|
502
|
+
const { showOverflow: allColumnOverflow, spanMethod, footerSpanMethod, mouseConfig } = tableProps;
|
|
503
|
+
const { tableData, scrollXLoad, scrollYLoad, isAllOverflow, isDragRowMove, expandColumn, dragRow, dragCol } = tableReactData;
|
|
504
|
+
const { visibleColumn, fullAllDataRowIdData, fullColumnIdData } = tableInternalData;
|
|
503
505
|
const rowOpts = $xeTable.computeRowOpts;
|
|
506
|
+
const sYOpts = $xeTable.computeSYOpts;
|
|
507
|
+
const emptyOpts = $xeTable.computeEmptyOpts;
|
|
508
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
504
509
|
const rowDragOpts = $xeTable.computeRowDragOpts;
|
|
505
|
-
let
|
|
506
|
-
|
|
510
|
+
let renderDataList = tableData;
|
|
511
|
+
let renderColumnList = tableColumn;
|
|
507
512
|
if (fixedType) {
|
|
508
|
-
//
|
|
509
|
-
if (
|
|
510
|
-
|
|
511
|
-
|
|
513
|
+
// 如果是使用优化模式
|
|
514
|
+
if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
|
|
515
|
+
// 如果不支持优化模式
|
|
516
|
+
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
517
|
+
renderColumnList = visibleColumn;
|
|
512
518
|
}
|
|
513
519
|
else {
|
|
514
|
-
|
|
515
|
-
// 检查固定列是否被合并,合并范围是否超出固定列
|
|
516
|
-
// if (mergeList.length && !isMergeLeftFixedExceeded && fixedType === 'left') {
|
|
517
|
-
// tableColumn = fixedColumn
|
|
518
|
-
// } else if (mergeList.length && !isMergeRightFixedExceeded && fixedType === 'right') {
|
|
519
|
-
// tableColumn = fixedColumn
|
|
520
|
-
// } else {
|
|
521
|
-
// tableColumn = visibleColumn
|
|
522
|
-
// }
|
|
520
|
+
renderColumnList = fixedColumn || [];
|
|
523
521
|
}
|
|
524
522
|
}
|
|
525
523
|
else {
|
|
526
|
-
|
|
524
|
+
renderColumnList = visibleColumn;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
// 行拖拽
|
|
528
|
+
if (scrollYLoad && dragRow) {
|
|
529
|
+
if (renderDataList.length > 2) {
|
|
530
|
+
const dRowRest = fullAllDataRowIdData[getRowid($xeTable, dragRow)];
|
|
531
|
+
if (dRowRest) {
|
|
532
|
+
const drIndex = dRowRest._index;
|
|
533
|
+
const firstRow = renderDataList[0];
|
|
534
|
+
const lastRow = renderDataList[renderDataList.length - 1];
|
|
535
|
+
const firstRowRest = fullAllDataRowIdData[getRowid($xeTable, firstRow)];
|
|
536
|
+
const lastRowRest = fullAllDataRowIdData[getRowid($xeTable, lastRow)];
|
|
537
|
+
if (firstRowRest && lastRowRest) {
|
|
538
|
+
const frIndex = firstRowRest._index;
|
|
539
|
+
const lrIndex = lastRowRest._index;
|
|
540
|
+
if (drIndex < frIndex) {
|
|
541
|
+
renderDataList = [dragRow].concat(renderDataList);
|
|
542
|
+
}
|
|
543
|
+
else if (drIndex > lrIndex) {
|
|
544
|
+
renderDataList = renderDataList.concat([dragRow]);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
if (!fixedType) {
|
|
551
|
+
// 列拖拽
|
|
552
|
+
if (scrollXLoad && dragCol) {
|
|
553
|
+
if (renderColumnList.length > 2) {
|
|
554
|
+
const dCowRest = fullColumnIdData[dragCol.id];
|
|
555
|
+
if (dCowRest) {
|
|
556
|
+
const dcIndex = dCowRest._index;
|
|
557
|
+
const firstCol = renderColumnList[0];
|
|
558
|
+
const lastCol = renderColumnList[renderColumnList.length - 1];
|
|
559
|
+
const firstColRest = fullColumnIdData[firstCol.id];
|
|
560
|
+
const lastColRest = fullColumnIdData[lastCol.id];
|
|
561
|
+
if (firstColRest && lastColRest) {
|
|
562
|
+
const fcIndex = firstColRest._index;
|
|
563
|
+
const lcIndex = lastColRest._index;
|
|
564
|
+
if (dcIndex < fcIndex) {
|
|
565
|
+
renderColumnList = [dragCol].concat(renderColumnList);
|
|
566
|
+
}
|
|
567
|
+
else if (dcIndex > lcIndex) {
|
|
568
|
+
renderColumnList = renderColumnList.concat([dragCol]);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
527
573
|
}
|
|
528
574
|
}
|
|
529
575
|
let emptyContent;
|
|
530
576
|
if ($scopedSlots.empty) {
|
|
531
|
-
emptyContent = $scopedSlots.empty.call(this, { $table: $
|
|
577
|
+
emptyContent = $scopedSlots.empty.call(this, { $table: $xeTable, $grid: $xeTable.xegrid }, h);
|
|
532
578
|
}
|
|
533
579
|
else {
|
|
534
580
|
const compConf = emptyOpts.name ? renderer.get(emptyOpts.name) : null;
|
|
535
581
|
const rtEmptyView = compConf ? (compConf.renderTableEmpty || compConf.renderTableEmptyView || compConf.renderEmpty) : null;
|
|
536
582
|
if (rtEmptyView) {
|
|
537
|
-
emptyContent = getSlotVNs(rtEmptyView.call(this, h, emptyOpts, { $table: $
|
|
583
|
+
emptyContent = getSlotVNs(rtEmptyView.call(this, h, emptyOpts, { $table: $xeTable }));
|
|
538
584
|
}
|
|
539
585
|
else {
|
|
540
|
-
emptyContent =
|
|
586
|
+
emptyContent = tableProps.emptyText || getI18n('vxe.table.emptyText');
|
|
541
587
|
}
|
|
542
588
|
}
|
|
543
589
|
const ons = {
|
|
@@ -555,7 +601,7 @@ export default {
|
|
|
555
601
|
on: ons
|
|
556
602
|
}, [
|
|
557
603
|
fixedType
|
|
558
|
-
?
|
|
604
|
+
? renderEmptyElement($xeTable)
|
|
559
605
|
: h('div', {
|
|
560
606
|
class: 'vxe-body--x-space',
|
|
561
607
|
ref: 'xSpace'
|
|
@@ -579,7 +625,7 @@ export default {
|
|
|
579
625
|
*/
|
|
580
626
|
h('colgroup', {
|
|
581
627
|
ref: 'colgroup'
|
|
582
|
-
},
|
|
628
|
+
}, renderColumnList.map((column, $columnIndex) => {
|
|
583
629
|
return h('col', {
|
|
584
630
|
attrs: {
|
|
585
631
|
name: column.id
|
|
@@ -596,10 +642,10 @@ export default {
|
|
|
596
642
|
tag: 'tbody',
|
|
597
643
|
name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`
|
|
598
644
|
}
|
|
599
|
-
}, renderRows(h, this, $
|
|
645
|
+
}, renderRows(h, this, $xeTable, fixedType, renderDataList, renderColumnList))
|
|
600
646
|
: h('tbody', {
|
|
601
647
|
ref: 'tbody'
|
|
602
|
-
}, renderRows(h, this, $
|
|
648
|
+
}, renderRows(h, this, $xeTable, fixedType, renderDataList, renderColumnList))
|
|
603
649
|
]),
|
|
604
650
|
h('div', {
|
|
605
651
|
class: 'vxe-table--checkbox-range'
|
|
@@ -616,8 +662,8 @@ export default {
|
|
|
616
662
|
class: 'vxe-table--cell-main-area-btn',
|
|
617
663
|
on: {
|
|
618
664
|
mousedown(evnt) {
|
|
619
|
-
if ($
|
|
620
|
-
$
|
|
665
|
+
if ($xeTable.triggerCellAreaExtendMousedownEvent) {
|
|
666
|
+
$xeTable.triggerCellAreaExtendMousedownEvent(evnt, { $table: $xeTable, fixed: fixedType, type: renderType });
|
|
621
667
|
}
|
|
622
668
|
}
|
|
623
669
|
}
|
package/es/table/src/footer.js
CHANGED
|
@@ -3,7 +3,7 @@ import { VxeUI } from '../../ui';
|
|
|
3
3
|
import { getClass } from '../../ui/src/utils';
|
|
4
4
|
import { updateCellTitle, setScrollLeft } from '../../ui/src/dom';
|
|
5
5
|
const renderType = 'footer';
|
|
6
|
-
const { renderer } = VxeUI;
|
|
6
|
+
const { renderer, renderEmptyElement } = VxeUI;
|
|
7
7
|
function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
|
|
8
8
|
for (let mIndex = 0; mIndex < mergeFooterList.length; mIndex++) {
|
|
9
9
|
const { row: mergeRowIndex, col: mergeColIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeFooterList[mIndex];
|
|
@@ -147,15 +147,16 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
|
|
|
147
147
|
]
|
|
148
148
|
: []);
|
|
149
149
|
}
|
|
150
|
-
function renderHeads(h, _vm,
|
|
150
|
+
function renderHeads(h, _vm, renderColumnList) {
|
|
151
151
|
const $xeTable = _vm.$parent;
|
|
152
|
+
const props = _vm;
|
|
152
153
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
153
154
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
154
|
-
const {
|
|
155
|
-
const { footerRowClassName, footerRowStyle, isDragColMove } = $
|
|
155
|
+
const { fixedType, footerTableData } = props;
|
|
156
|
+
const { footerRowClassName, footerRowStyle, isDragColMove } = $xeTable;
|
|
156
157
|
return footerTableData.map((row, $rowIndex) => {
|
|
157
158
|
const _rowIndex = $rowIndex;
|
|
158
|
-
const rowParams = { $table: $
|
|
159
|
+
const rowParams = { $table: $xeTable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType };
|
|
159
160
|
if (columnOpts.drag && columnDragOpts.animation) {
|
|
160
161
|
return h('transition-group', {
|
|
161
162
|
key: $rowIndex,
|
|
@@ -168,7 +169,7 @@ function renderHeads(h, _vm, footerTableData) {
|
|
|
168
169
|
],
|
|
169
170
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
170
171
|
}
|
|
171
|
-
}, renderRows(h, _vm,
|
|
172
|
+
}, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
|
|
172
173
|
}
|
|
173
174
|
return h('tr', {
|
|
174
175
|
key: $rowIndex,
|
|
@@ -177,7 +178,7 @@ function renderHeads(h, _vm, footerTableData) {
|
|
|
177
178
|
footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
|
|
178
179
|
],
|
|
179
180
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
180
|
-
}, renderRows(h, _vm,
|
|
181
|
+
}, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
|
|
181
182
|
});
|
|
182
183
|
}
|
|
183
184
|
export default {
|
|
@@ -210,21 +211,56 @@ export default {
|
|
|
210
211
|
elemStore[`${prefix}xSpace`] = null;
|
|
211
212
|
},
|
|
212
213
|
render(h) {
|
|
213
|
-
|
|
214
|
-
const
|
|
214
|
+
const props = this;
|
|
215
|
+
const $xeTable = this.$parent;
|
|
216
|
+
const tableProps = $xeTable;
|
|
217
|
+
const tableReactData = $xeTable;
|
|
218
|
+
const tableInternalData = $xeTable;
|
|
219
|
+
const { tId } = $xeTable;
|
|
220
|
+
const { fixedType, fixedColumn, tableColumn } = props;
|
|
221
|
+
const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps;
|
|
222
|
+
const { visibleColumn, fullColumnIdData } = tableInternalData;
|
|
223
|
+
const { scrollXLoad, scrollYLoad, scrollbarWidth, dragCol } = tableReactData;
|
|
224
|
+
let renderColumnList = tableColumn;
|
|
215
225
|
// 如果是使用优化模式
|
|
216
226
|
if (fixedType) {
|
|
217
|
-
//
|
|
218
|
-
if (
|
|
219
|
-
|
|
220
|
-
|
|
227
|
+
// 如果是使用优化模式
|
|
228
|
+
if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
|
|
229
|
+
// 如果不支持优化模式
|
|
230
|
+
if (spanMethod || footerSpanMethod) {
|
|
231
|
+
renderColumnList = visibleColumn;
|
|
221
232
|
}
|
|
222
233
|
else {
|
|
223
|
-
|
|
234
|
+
renderColumnList = fixedColumn || [];
|
|
224
235
|
}
|
|
225
236
|
}
|
|
226
237
|
else {
|
|
227
|
-
|
|
238
|
+
renderColumnList = visibleColumn;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (!fixedType) {
|
|
242
|
+
// 列拖拽
|
|
243
|
+
if (scrollXLoad && dragCol) {
|
|
244
|
+
if (renderColumnList.length > 2) {
|
|
245
|
+
const dCowRest = fullColumnIdData[dragCol.id];
|
|
246
|
+
if (dCowRest) {
|
|
247
|
+
const dcIndex = dCowRest._index;
|
|
248
|
+
const firstCol = renderColumnList[0];
|
|
249
|
+
const lastCol = renderColumnList[renderColumnList.length - 1];
|
|
250
|
+
const firstColRest = fullColumnIdData[firstCol.id];
|
|
251
|
+
const lastColRest = fullColumnIdData[lastCol.id];
|
|
252
|
+
if (firstColRest && lastColRest) {
|
|
253
|
+
const fcIndex = firstColRest._index;
|
|
254
|
+
const lcIndex = lastColRest._index;
|
|
255
|
+
if (dcIndex < fcIndex) {
|
|
256
|
+
renderColumnList = [dragCol].concat(renderColumnList);
|
|
257
|
+
}
|
|
258
|
+
else if (dcIndex > lcIndex) {
|
|
259
|
+
renderColumnList = renderColumnList.concat([dragCol]);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
228
264
|
}
|
|
229
265
|
}
|
|
230
266
|
const ons = {};
|
|
@@ -239,7 +275,7 @@ export default {
|
|
|
239
275
|
on: ons
|
|
240
276
|
}, [
|
|
241
277
|
fixedType
|
|
242
|
-
?
|
|
278
|
+
? renderEmptyElement($xeTable)
|
|
243
279
|
: h('div', {
|
|
244
280
|
class: 'vxe-body--x-space',
|
|
245
281
|
ref: 'xSpace'
|
|
@@ -259,7 +295,7 @@ export default {
|
|
|
259
295
|
*/
|
|
260
296
|
h('colgroup', {
|
|
261
297
|
ref: 'colgroup'
|
|
262
|
-
},
|
|
298
|
+
}, renderColumnList.map((column, $columnIndex) => {
|
|
263
299
|
return h('col', {
|
|
264
300
|
attrs: {
|
|
265
301
|
name: column.id
|
|
@@ -280,7 +316,7 @@ export default {
|
|
|
280
316
|
*/
|
|
281
317
|
h('tfoot', {
|
|
282
318
|
ref: 'tfoot'
|
|
283
|
-
}, renderHeads(h, this,
|
|
319
|
+
}, renderHeads(h, this, renderColumnList))
|
|
284
320
|
])
|
|
285
321
|
]);
|
|
286
322
|
},
|
package/es/table/src/header.js
CHANGED
|
@@ -3,7 +3,7 @@ import { VxeUI } from '../../ui';
|
|
|
3
3
|
import { getClass } from '../../ui/src/utils';
|
|
4
4
|
import { getOffsetPos, hasClass, addClass, removeClass } from '../../ui/src/dom';
|
|
5
5
|
import { convertHeaderColumnToRows, getColReMinWidth } from './util';
|
|
6
|
-
const { renderer } = VxeUI;
|
|
6
|
+
const { renderer, renderEmptyElement } = VxeUI;
|
|
7
7
|
const cellType = 'header';
|
|
8
8
|
const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
9
9
|
const $xeTable = _vm.$parent;
|
|
@@ -75,6 +75,7 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
75
75
|
'is--sortable': column.sortable,
|
|
76
76
|
'col--filter': !!column.filters,
|
|
77
77
|
'is--filter-active': hasFilter,
|
|
78
|
+
'is--drag-active': !column.fixed && !isDisabledDrag,
|
|
78
79
|
'is--drag-disabled': isDisabledDrag,
|
|
79
80
|
'col--current': currentColumn === column
|
|
80
81
|
}, getClass(headerClassName, params), getClass(headerCellClassName, params)],
|
|
@@ -193,21 +194,68 @@ export default {
|
|
|
193
194
|
elemStore[`${prefix}repair`] = null;
|
|
194
195
|
},
|
|
195
196
|
render(h) {
|
|
196
|
-
const
|
|
197
|
-
const
|
|
198
|
-
|
|
197
|
+
const props = this;
|
|
198
|
+
const $xeTable = this.$parent;
|
|
199
|
+
const tableProps = $xeTable;
|
|
200
|
+
const tableReactData = $xeTable;
|
|
201
|
+
const tableInternalData = $xeTable;
|
|
202
|
+
const { tId } = $xeTable;
|
|
203
|
+
const { fixedType, fixedColumn, tableColumn } = props;
|
|
204
|
+
const { headerColumn } = this;
|
|
205
|
+
const { showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps;
|
|
206
|
+
const { isGroup, scrollXLoad, scrollYLoad, scrollbarWidth, dragCol } = tableReactData;
|
|
207
|
+
const { visibleColumn, fullColumnIdData } = tableInternalData;
|
|
208
|
+
let renderHeaderList = headerColumn;
|
|
199
209
|
let renderColumnList = tableColumn;
|
|
200
210
|
if (isGroup) {
|
|
201
211
|
renderColumnList = visibleColumn;
|
|
202
212
|
}
|
|
203
213
|
else {
|
|
204
|
-
// 如果是使用优化模式
|
|
205
214
|
if (fixedType) {
|
|
206
|
-
|
|
207
|
-
|
|
215
|
+
// 如果是使用优化模式
|
|
216
|
+
if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
|
|
217
|
+
// 如果不支持优化模式
|
|
218
|
+
if (spanMethod || footerSpanMethod) {
|
|
219
|
+
renderColumnList = visibleColumn;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
renderColumnList = fixedColumn || [];
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
renderColumnList = visibleColumn;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
renderHeaderList = [renderColumnList];
|
|
230
|
+
}
|
|
231
|
+
if (!fixedType) {
|
|
232
|
+
// 列拖拽
|
|
233
|
+
if (scrollXLoad && dragCol) {
|
|
234
|
+
if (renderColumnList.length > 2) {
|
|
235
|
+
const dCowRest = fullColumnIdData[dragCol.id];
|
|
236
|
+
if (dCowRest) {
|
|
237
|
+
const dcIndex = dCowRest._index;
|
|
238
|
+
const firstCol = renderColumnList[0];
|
|
239
|
+
const lastCol = renderColumnList[renderColumnList.length - 1];
|
|
240
|
+
const firstColRest = fullColumnIdData[firstCol.id];
|
|
241
|
+
const lastColRest = fullColumnIdData[lastCol.id];
|
|
242
|
+
if (firstColRest && lastColRest) {
|
|
243
|
+
const fcIndex = firstColRest._index;
|
|
244
|
+
const lcIndex = lastColRest._index;
|
|
245
|
+
console.log(dragCol.id, dcIndex, fcIndex, lcIndex, renderColumnList.length);
|
|
246
|
+
if (dcIndex < fcIndex) {
|
|
247
|
+
renderColumnList = [dragCol].concat(renderColumnList);
|
|
248
|
+
renderHeaderList = [[dragCol].concat(renderHeaderList[0])].concat(renderHeaderList.slice(1));
|
|
249
|
+
}
|
|
250
|
+
else if (dcIndex > lcIndex) {
|
|
251
|
+
renderColumnList = renderColumnList.concat([dragCol]);
|
|
252
|
+
renderHeaderList = [renderHeaderList[0].concat([dragCol])].concat(renderHeaderList.slice(1));
|
|
253
|
+
}
|
|
254
|
+
console.log(renderColumnList.length);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
208
257
|
}
|
|
209
258
|
}
|
|
210
|
-
headerGroups = [renderColumnList];
|
|
211
259
|
}
|
|
212
260
|
return h('div', {
|
|
213
261
|
class: ['vxe-table--header-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
|
|
@@ -216,7 +264,7 @@ export default {
|
|
|
216
264
|
}
|
|
217
265
|
}, [
|
|
218
266
|
fixedType
|
|
219
|
-
?
|
|
267
|
+
? renderEmptyElement($xeTable)
|
|
220
268
|
: h('div', {
|
|
221
269
|
class: 'vxe-body--x-space',
|
|
222
270
|
ref: 'xSpace'
|
|
@@ -257,7 +305,7 @@ export default {
|
|
|
257
305
|
*/
|
|
258
306
|
h('thead', {
|
|
259
307
|
ref: 'thead'
|
|
260
|
-
}, renderHeads(h, this,
|
|
308
|
+
}, renderHeads(h, this, renderHeaderList))
|
|
261
309
|
]),
|
|
262
310
|
/**
|
|
263
311
|
* 其他
|