vxe-table 3.12.9 → 3.12.10-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/grid/src/grid.js +6 -1
- 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/module/export/mixin.js +3 -3
- package/es/table/module/filter/mixin.js +3 -3
- package/es/table/module/keyboard/mixin.js +4 -4
- package/es/table/module/menu/mixin.js +2 -2
- package/es/table/module/validator/mixin.js +2 -2
- package/es/table/src/body.js +247 -351
- package/es/table/src/footer.js +135 -154
- package/es/table/src/header.js +120 -100
- package/es/table/src/methods.js +1174 -790
- package/es/table/src/props.js +9 -3
- package/es/table/src/table.js +187 -103
- package/es/table/src/util.js +16 -7
- package/es/table/style.css +146 -63
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +14 -4
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +146 -63
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +4 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1896 -1543
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/export/mixin.js +3 -3
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/module/filter/mixin.js +4 -4
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +5 -5
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +2 -2
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/validator/mixin.js +2 -2
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/src/body.js +185 -365
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +124 -151
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +97 -74
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +1258 -830
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +9 -3
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +171 -90
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +17 -7
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +146 -63
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +14 -4
- 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 +146 -63
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +6 -1
- package/packages/table/module/export/mixin.ts +3 -3
- package/packages/table/module/filter/mixin.ts +3 -3
- package/packages/table/module/keyboard/mixin.ts +4 -4
- package/packages/table/module/menu/mixin.ts +2 -2
- package/packages/table/module/validator/mixin.ts +2 -2
- package/packages/table/src/body.ts +281 -427
- package/packages/table/src/footer.ts +148 -164
- package/packages/table/src/header.ts +135 -111
- package/packages/table/src/methods.ts +1246 -845
- package/packages/table/src/props.ts +9 -3
- package/packages/table/src/table.ts +195 -146
- package/packages/table/src/util.ts +17 -7
- package/packages/ui/index.ts +13 -3
- package/styles/components/table.scss +164 -74
- /package/es/{iconfont.1736414871619.ttf → iconfont.1736688976404.ttf} +0 -0
- /package/es/{iconfont.1736414871619.woff → iconfont.1736688976404.woff} +0 -0
- /package/es/{iconfont.1736414871619.woff2 → iconfont.1736688976404.woff2} +0 -0
- /package/lib/{iconfont.1736414871619.ttf → iconfont.1736688976404.ttf} +0 -0
- /package/lib/{iconfont.1736414871619.woff → iconfont.1736688976404.woff} +0 -0
- /package/lib/{iconfont.1736414871619.woff2 → iconfont.1736688976404.woff2} +0 -0
package/es/table/src/props.js
CHANGED
|
@@ -214,11 +214,17 @@ export default {
|
|
|
214
214
|
// 空内容渲染配置项
|
|
215
215
|
emptyRender: [Boolean, Object],
|
|
216
216
|
// 自定义列配置项
|
|
217
|
-
customConfig:
|
|
218
|
-
//
|
|
217
|
+
customConfig: Object,
|
|
218
|
+
// (即将废弃)横向虚拟滚动配置项
|
|
219
219
|
scrollX: Object,
|
|
220
|
-
//
|
|
220
|
+
// (即将废弃)纵向虚拟滚动配置项
|
|
221
221
|
scrollY: Object,
|
|
222
|
+
// 横向虚拟滚动配置项
|
|
223
|
+
virtualXConfig: Object,
|
|
224
|
+
// 纵向虚拟滚动配置项
|
|
225
|
+
virtualYConfig: Object,
|
|
226
|
+
// 滚动条配置项
|
|
227
|
+
scrollbarConfig: Object,
|
|
222
228
|
// (即将废弃)优化相关
|
|
223
229
|
animat: { type: Boolean, default: () => getConfig().table.animat },
|
|
224
230
|
// (可能会被废弃的参数,不要使用)
|
package/es/table/src/table.js
CHANGED
|
@@ -32,10 +32,11 @@ const { getConfig, getIcon, getI18n, renderer, globalResize, globalEvents, globa
|
|
|
32
32
|
*/
|
|
33
33
|
function renderFixed(h, $xetable, fixedType) {
|
|
34
34
|
const { _e, tableData, tableColumn, tableGroupColumn, vSize, showHeader, showFooter, columnStore, footerTableData } = $xetable;
|
|
35
|
+
const isFixedLeft = fixedType === 'left';
|
|
35
36
|
const fixedColumn = columnStore[`${fixedType}List`];
|
|
36
37
|
return h('div', {
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
ref: isFixedLeft ? 'refLeftContainer' : 'refRightContainer',
|
|
39
|
+
class: `vxe-table--fixed-${fixedType}-wrapper`
|
|
39
40
|
}, [
|
|
40
41
|
showHeader
|
|
41
42
|
? h(TableHeaderComponent, {
|
|
@@ -202,7 +203,9 @@ export default {
|
|
|
202
203
|
}
|
|
203
204
|
},
|
|
204
205
|
data() {
|
|
206
|
+
const xID = XEUtils.uniqueId();
|
|
205
207
|
return {
|
|
208
|
+
xID,
|
|
206
209
|
tId: `${XEUtils.uniqueId()}`,
|
|
207
210
|
isCalcColumn: false,
|
|
208
211
|
// 低性能的静态列
|
|
@@ -423,7 +426,7 @@ export default {
|
|
|
423
426
|
dragCol: null,
|
|
424
427
|
dragTipText: '',
|
|
425
428
|
_isResize: false,
|
|
426
|
-
|
|
429
|
+
isLoading: false
|
|
427
430
|
};
|
|
428
431
|
},
|
|
429
432
|
computed: Object.assign(Object.assign({}, {}), { tableId() {
|
|
@@ -449,7 +452,7 @@ export default {
|
|
|
449
452
|
return this.computeSXOpts;
|
|
450
453
|
},
|
|
451
454
|
computeSXOpts() {
|
|
452
|
-
return
|
|
455
|
+
return this.computeVirtualXOpts;
|
|
453
456
|
},
|
|
454
457
|
computeScrollXThreshold() {
|
|
455
458
|
const $xeTable = this;
|
|
@@ -464,7 +467,22 @@ export default {
|
|
|
464
467
|
return this.computeSYOpts;
|
|
465
468
|
},
|
|
466
469
|
computeSYOpts() {
|
|
467
|
-
return
|
|
470
|
+
return this.computeVirtualYOpts;
|
|
471
|
+
},
|
|
472
|
+
computeVirtualXOpts() {
|
|
473
|
+
const $xeTable = this;
|
|
474
|
+
const props = $xeTable;
|
|
475
|
+
return Object.assign({}, getConfig().table.scrollX, getConfig().table.virtualXConfig, props.scrollX, props.virtualXConfig);
|
|
476
|
+
},
|
|
477
|
+
computeVirtualYOpts() {
|
|
478
|
+
const $xeTable = this;
|
|
479
|
+
const props = $xeTable;
|
|
480
|
+
return Object.assign({}, getConfig().table.scrollY, getConfig().table.virtualYConfig, props.scrollY, props.virtualYConfig);
|
|
481
|
+
},
|
|
482
|
+
computeScrollbarOpts() {
|
|
483
|
+
const $xeTable = this;
|
|
484
|
+
const props = $xeTable;
|
|
485
|
+
return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
|
|
468
486
|
},
|
|
469
487
|
computeScrollYThreshold() {
|
|
470
488
|
const $xeTable = this;
|
|
@@ -486,6 +504,12 @@ export default {
|
|
|
486
504
|
mini: 36
|
|
487
505
|
};
|
|
488
506
|
},
|
|
507
|
+
computeDefaultRowHeight() {
|
|
508
|
+
const $xeTable = this;
|
|
509
|
+
const vSize = $xeTable.computeSize;
|
|
510
|
+
const rowHeightMaps = $xeTable.computeRowHeightMaps;
|
|
511
|
+
return rowHeightMaps[vSize || 'default'];
|
|
512
|
+
},
|
|
489
513
|
columnOpts() {
|
|
490
514
|
return this.computeColumnOpts;
|
|
491
515
|
},
|
|
@@ -627,6 +651,30 @@ export default {
|
|
|
627
651
|
computeMenuOpts() {
|
|
628
652
|
return Object.assign({}, getConfig().table.menuConfig, this.contextMenu, this.menuConfig);
|
|
629
653
|
},
|
|
654
|
+
computeLeftFixedWidth() {
|
|
655
|
+
const $xeTable = this;
|
|
656
|
+
const reactData = $xeTable;
|
|
657
|
+
const { columnStore } = reactData;
|
|
658
|
+
const { leftList } = columnStore;
|
|
659
|
+
let leftWidth = 0;
|
|
660
|
+
for (let i = 0; i < leftList.length; i++) {
|
|
661
|
+
const column = leftList[i];
|
|
662
|
+
leftWidth += column.renderWidth;
|
|
663
|
+
}
|
|
664
|
+
return leftWidth;
|
|
665
|
+
},
|
|
666
|
+
computeRightFixedWidth() {
|
|
667
|
+
const $xeTable = this;
|
|
668
|
+
const reactData = $xeTable;
|
|
669
|
+
const { columnStore } = reactData;
|
|
670
|
+
const { rightList } = columnStore;
|
|
671
|
+
let leftWidth = 0;
|
|
672
|
+
for (let i = 0; i < rightList.length; i++) {
|
|
673
|
+
const column = rightList[i];
|
|
674
|
+
leftWidth += column.renderWidth;
|
|
675
|
+
}
|
|
676
|
+
return leftWidth;
|
|
677
|
+
},
|
|
630
678
|
exportOpts() {
|
|
631
679
|
return this.computeExportOpts;
|
|
632
680
|
},
|
|
@@ -669,7 +717,7 @@ export default {
|
|
|
669
717
|
computeLoadingOpts() {
|
|
670
718
|
return Object.assign({}, getConfig().table.loadingConfig, this.loadingConfig);
|
|
671
719
|
},
|
|
672
|
-
|
|
720
|
+
computeCellOffsetWidth() {
|
|
673
721
|
return this.border ? Math.max(2, Math.ceil(this.scrollbarWidth / this.tableColumn.length)) : 1;
|
|
674
722
|
},
|
|
675
723
|
customOpts() {
|
|
@@ -842,16 +890,21 @@ export default {
|
|
|
842
890
|
elemStore: {},
|
|
843
891
|
// 存放横向 X 虚拟滚动相关的信息
|
|
844
892
|
scrollXStore: {
|
|
893
|
+
preloadSize: 0,
|
|
845
894
|
offsetSize: 0,
|
|
846
895
|
visibleSize: 0,
|
|
896
|
+
visibleStartIndex: 0,
|
|
897
|
+
visibleEndIndex: 0,
|
|
847
898
|
startIndex: 0,
|
|
848
899
|
endIndex: 0
|
|
849
900
|
},
|
|
850
901
|
// 存放纵向 Y 虚拟滚动相关信息
|
|
851
902
|
scrollYStore: {
|
|
852
|
-
|
|
903
|
+
preloadSize: 0,
|
|
853
904
|
offsetSize: 0,
|
|
854
905
|
visibleSize: 0,
|
|
906
|
+
visibleStartIndex: 0,
|
|
907
|
+
visibleEndIndex: 0,
|
|
855
908
|
startIndex: 0,
|
|
856
909
|
endIndex: 0
|
|
857
910
|
},
|
|
@@ -893,7 +946,10 @@ export default {
|
|
|
893
946
|
fullDataRowIdData: {},
|
|
894
947
|
fullColumnMap: new Map(),
|
|
895
948
|
fullColumnIdData: {},
|
|
896
|
-
fullColumnFieldData: {}
|
|
949
|
+
fullColumnFieldData: {},
|
|
950
|
+
swYSize: 0,
|
|
951
|
+
swYInterval: 0,
|
|
952
|
+
swYTotal: 0
|
|
897
953
|
});
|
|
898
954
|
if (process.env.NODE_ENV === 'development') {
|
|
899
955
|
if (this.rowId) {
|
|
@@ -1163,18 +1219,34 @@ export default {
|
|
|
1163
1219
|
const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
|
|
1164
1220
|
const $xeTable = this;
|
|
1165
1221
|
const $xeGrid = $xeTable.$xeGrid;
|
|
1166
|
-
const
|
|
1222
|
+
const props = $xeTable;
|
|
1223
|
+
const slots = $xeTable.$scopedSlots;
|
|
1224
|
+
const reactData = $xeTable;
|
|
1225
|
+
const { xID } = $xeTable;
|
|
1226
|
+
const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules } = props;
|
|
1227
|
+
const { isCalcColumn, isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, scrollbarHeight, tableData, tableColumn, tableGroupColumn, footerTableData, initStore, columnStore, filterStore, customStore, tooltipStore } = reactData;
|
|
1167
1228
|
const { leftList, rightList } = columnStore;
|
|
1168
|
-
const loadingSlot =
|
|
1169
|
-
const
|
|
1170
|
-
const
|
|
1229
|
+
const loadingSlot = slots.loading;
|
|
1230
|
+
const tooltipOpts = $xeTable.computeTooltipOpts;
|
|
1231
|
+
const validOpts = $xeTable.computeValidOpts;
|
|
1232
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
1233
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
1234
|
+
const rowOpts = $xeTable.computeRowOpts;
|
|
1235
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
1236
|
+
const vSize = $xeTable.computeSize;
|
|
1171
1237
|
const tableBorder = $xeTable.computeTableBorder;
|
|
1172
|
-
const
|
|
1238
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
1239
|
+
const areaOpts = $xeTable.computeAreaOpts;
|
|
1240
|
+
const loadingOpts = $xeTable.computeLoadingOpts;
|
|
1241
|
+
const isMenu = $xeTable.computeIsMenu;
|
|
1242
|
+
const currLoading = reactData.isLoading || loading;
|
|
1243
|
+
const resizableOpts = $xeTable.computeResizableOpts;
|
|
1173
1244
|
const isArea = mouseConfig && mouseOpts.area;
|
|
1174
1245
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
1175
1246
|
return h('div', {
|
|
1176
1247
|
ref: 'refElem',
|
|
1177
|
-
class: ['vxe-table', 'vxe-table--render-default', `tid_${
|
|
1248
|
+
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
|
|
1249
|
+
[`size--${vSize}`]: vSize,
|
|
1178
1250
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
1179
1251
|
'vxe-editable': !!editConfig,
|
|
1180
1252
|
'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete',
|
|
@@ -1194,9 +1266,9 @@ export default {
|
|
|
1194
1266
|
'is--tree-line': treeConfig && (treeOpts.showLine || treeOpts.line),
|
|
1195
1267
|
'is--fixed-left': leftList.length,
|
|
1196
1268
|
'is--fixed-right': rightList.length,
|
|
1197
|
-
'is--animat': !!
|
|
1198
|
-
'is--padding':
|
|
1199
|
-
'is--round':
|
|
1269
|
+
'is--animat': !!props.animat,
|
|
1270
|
+
'is--padding': props.padding,
|
|
1271
|
+
'is--round': props.round,
|
|
1200
1272
|
'is--stripe': !treeConfig && stripe,
|
|
1201
1273
|
'is--loading': currLoading,
|
|
1202
1274
|
'is--empty': !currLoading && !tableData.length,
|
|
@@ -1224,100 +1296,112 @@ export default {
|
|
|
1224
1296
|
class: 'vxe-table--render-wrapper'
|
|
1225
1297
|
}, [
|
|
1226
1298
|
h('div', {
|
|
1227
|
-
|
|
1299
|
+
ref: 'refTableViewportElem',
|
|
1300
|
+
class: 'vxe-table--viewport-wrapper'
|
|
1228
1301
|
}, [
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1302
|
+
h('div', {
|
|
1303
|
+
class: 'vxe-table--main-wrapper'
|
|
1304
|
+
}, [
|
|
1305
|
+
/**
|
|
1306
|
+
* 表头
|
|
1307
|
+
*/
|
|
1308
|
+
showHeader
|
|
1309
|
+
? h(TableHeaderComponent, {
|
|
1310
|
+
ref: 'refTableHeader',
|
|
1311
|
+
props: {
|
|
1312
|
+
tableData,
|
|
1313
|
+
tableColumn,
|
|
1314
|
+
tableGroupColumn,
|
|
1315
|
+
size: vSize
|
|
1316
|
+
}
|
|
1317
|
+
})
|
|
1318
|
+
: renderEmptyElement($xeTable),
|
|
1319
|
+
/**
|
|
1320
|
+
* 表体
|
|
1321
|
+
*/
|
|
1322
|
+
h(TableBodyComponent, {
|
|
1323
|
+
ref: 'refTableBody',
|
|
1235
1324
|
props: {
|
|
1236
1325
|
tableData,
|
|
1237
1326
|
tableColumn,
|
|
1238
|
-
tableGroupColumn,
|
|
1239
1327
|
size: vSize
|
|
1240
1328
|
}
|
|
1241
|
-
})
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
*/
|
|
1257
|
-
showFooter
|
|
1258
|
-
? h(TableFooterComponent, {
|
|
1259
|
-
ref: 'tableFooter',
|
|
1260
|
-
props: {
|
|
1261
|
-
footerTableData,
|
|
1262
|
-
tableColumn,
|
|
1263
|
-
size: vSize
|
|
1264
|
-
}
|
|
1265
|
-
})
|
|
1266
|
-
: _e()
|
|
1267
|
-
]),
|
|
1268
|
-
h('div', {
|
|
1269
|
-
class: 'vxe-table--fixed-wrapper'
|
|
1270
|
-
}, [
|
|
1271
|
-
leftList && leftList.length && overflowX ? renderFixed(h, this, 'left') : _e(),
|
|
1272
|
-
rightList && rightList.length && overflowX ? renderFixed(h, this, 'right') : _e()
|
|
1273
|
-
])
|
|
1274
|
-
]),
|
|
1275
|
-
virtualScrollBars.x
|
|
1276
|
-
? h('div', {
|
|
1277
|
-
key: 'vx',
|
|
1278
|
-
ref: 'refScrollXVirtualElem',
|
|
1279
|
-
class: 'vxe-table--scroll-x-virtual'
|
|
1280
|
-
}, [
|
|
1329
|
+
}),
|
|
1330
|
+
/**
|
|
1331
|
+
* 表尾
|
|
1332
|
+
*/
|
|
1333
|
+
showFooter
|
|
1334
|
+
? h(TableFooterComponent, {
|
|
1335
|
+
ref: 'refTableFooter',
|
|
1336
|
+
props: {
|
|
1337
|
+
footerTableData,
|
|
1338
|
+
tableColumn,
|
|
1339
|
+
size: vSize
|
|
1340
|
+
}
|
|
1341
|
+
})
|
|
1342
|
+
: renderEmptyElement($xeTable)
|
|
1343
|
+
]),
|
|
1281
1344
|
h('div', {
|
|
1282
|
-
|
|
1283
|
-
class: 'vxe-table--scroll-x-handle',
|
|
1284
|
-
on: {
|
|
1285
|
-
scroll: $xeTable.scrollXEvent
|
|
1286
|
-
}
|
|
1345
|
+
class: 'vxe-table--fixed-wrapper'
|
|
1287
1346
|
}, [
|
|
1288
|
-
h
|
|
1289
|
-
|
|
1290
|
-
class: 'vxe-table--scroll-x-space'
|
|
1291
|
-
})
|
|
1347
|
+
leftList && leftList.length && overflowX ? renderFixed(h, this, 'left') : renderEmptyElement($xeTable),
|
|
1348
|
+
rightList && rightList.length && overflowX ? renderFixed(h, this, 'right') : renderEmptyElement($xeTable)
|
|
1292
1349
|
])
|
|
1293
|
-
])
|
|
1294
|
-
|
|
1295
|
-
virtualScrollBars.y
|
|
1296
|
-
? h('div', {
|
|
1297
|
-
key: 'vy',
|
|
1350
|
+
]),
|
|
1351
|
+
h('div', {
|
|
1298
1352
|
ref: 'refScrollYVirtualElem',
|
|
1299
1353
|
class: 'vxe-table--scroll-y-virtual'
|
|
1300
1354
|
}, [
|
|
1355
|
+
h('div', {
|
|
1356
|
+
ref: 'refScrollYTopCornerElem',
|
|
1357
|
+
class: 'vxe-table--scroll-y-top-corner'
|
|
1358
|
+
}),
|
|
1301
1359
|
h('div', {
|
|
1302
1360
|
ref: 'refScrollYHandleElem',
|
|
1303
1361
|
class: 'vxe-table--scroll-y-handle',
|
|
1304
1362
|
on: {
|
|
1305
|
-
scroll:
|
|
1363
|
+
scroll: this.scrollYEvent
|
|
1306
1364
|
}
|
|
1307
1365
|
}, [
|
|
1308
1366
|
h('div', {
|
|
1309
1367
|
ref: 'refScrollYSpaceElem',
|
|
1310
1368
|
class: 'vxe-table--scroll-y-space'
|
|
1311
1369
|
})
|
|
1312
|
-
])
|
|
1370
|
+
]),
|
|
1371
|
+
h('div', {
|
|
1372
|
+
ref: 'refScrollYBottomCornerElem',
|
|
1373
|
+
class: 'vxe-table--scroll-y-bottom-corner'
|
|
1374
|
+
})
|
|
1313
1375
|
])
|
|
1314
|
-
|
|
1376
|
+
]),
|
|
1377
|
+
h('div', {
|
|
1378
|
+
key: 'vx',
|
|
1379
|
+
ref: 'refScrollXVirtualElem',
|
|
1380
|
+
class: 'vxe-table--scroll-x-virtual'
|
|
1381
|
+
}, [
|
|
1382
|
+
h('div', {
|
|
1383
|
+
ref: 'refScrollXHandleElem',
|
|
1384
|
+
class: 'vxe-table--scroll-x-handle',
|
|
1385
|
+
on: {
|
|
1386
|
+
scroll: this.scrollXEvent
|
|
1387
|
+
}
|
|
1388
|
+
}, [
|
|
1389
|
+
h('div', {
|
|
1390
|
+
ref: 'refScrollXSpaceElem',
|
|
1391
|
+
class: 'vxe-table--scroll-x-space'
|
|
1392
|
+
})
|
|
1393
|
+
]),
|
|
1394
|
+
h('div', {
|
|
1395
|
+
ref: 'refScrollXRightCornerElem',
|
|
1396
|
+
class: 'vxe-table--scroll-x-right-corner'
|
|
1397
|
+
})
|
|
1398
|
+
]),
|
|
1315
1399
|
/**
|
|
1316
1400
|
* 空数据
|
|
1317
1401
|
*/
|
|
1318
1402
|
h('div', {
|
|
1319
1403
|
key: 'tn',
|
|
1320
|
-
ref: '
|
|
1404
|
+
ref: 'refEmptyPlaceholder',
|
|
1321
1405
|
class: 'vxe-table--empty-placeholder'
|
|
1322
1406
|
}, [
|
|
1323
1407
|
h('div', {
|
|
@@ -1336,19 +1420,19 @@ export default {
|
|
|
1336
1420
|
*/
|
|
1337
1421
|
h('div', {
|
|
1338
1422
|
key: 'cl',
|
|
1423
|
+
ref: 'refCellResizeBar',
|
|
1339
1424
|
class: 'vxe-table--resizable-bar',
|
|
1340
1425
|
style: overflowX
|
|
1341
1426
|
? {
|
|
1342
1427
|
'padding-bottom': `${scrollbarHeight}px`
|
|
1343
1428
|
}
|
|
1344
|
-
:
|
|
1345
|
-
ref: 'resizeBar'
|
|
1429
|
+
: undefined
|
|
1346
1430
|
}, resizableOpts.showDragTip
|
|
1347
1431
|
? [
|
|
1348
1432
|
h('div', {
|
|
1349
1433
|
ref: 'refCellResizeTip',
|
|
1350
1434
|
class: 'vxe-table--resizable-number-tip'
|
|
1351
|
-
}
|
|
1435
|
+
})
|
|
1352
1436
|
]
|
|
1353
1437
|
: []),
|
|
1354
1438
|
/**
|
|
@@ -1399,7 +1483,7 @@ export default {
|
|
|
1399
1483
|
filterStore
|
|
1400
1484
|
}
|
|
1401
1485
|
})
|
|
1402
|
-
:
|
|
1486
|
+
: renderEmptyElement($xeTable),
|
|
1403
1487
|
/**
|
|
1404
1488
|
* 导入
|
|
1405
1489
|
*/
|
|
@@ -1411,7 +1495,7 @@ export default {
|
|
|
1411
1495
|
storeData: this.importStore
|
|
1412
1496
|
}
|
|
1413
1497
|
})
|
|
1414
|
-
:
|
|
1498
|
+
: renderEmptyElement($xeTable),
|
|
1415
1499
|
/**
|
|
1416
1500
|
* 导出
|
|
1417
1501
|
*/
|
|
@@ -1423,20 +1507,20 @@ export default {
|
|
|
1423
1507
|
storeData: this.exportStore
|
|
1424
1508
|
}
|
|
1425
1509
|
})
|
|
1426
|
-
:
|
|
1510
|
+
: renderEmptyElement($xeTable),
|
|
1427
1511
|
/**
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1512
|
+
* 快捷菜单
|
|
1513
|
+
*/
|
|
1514
|
+
isMenu
|
|
1431
1515
|
? h(TableMenuPanelComponent, {
|
|
1432
1516
|
key: 'tm',
|
|
1433
|
-
ref: '
|
|
1517
|
+
ref: 'refTableMenu',
|
|
1434
1518
|
props: {
|
|
1435
|
-
ctxMenuStore,
|
|
1436
|
-
ctxMenuOpts
|
|
1519
|
+
ctxMenuStore: this.ctxMenuStore,
|
|
1520
|
+
ctxMenuOpts: this.ctxMenuOpts
|
|
1437
1521
|
}
|
|
1438
1522
|
})
|
|
1439
|
-
:
|
|
1523
|
+
: renderEmptyElement($xeTable),
|
|
1440
1524
|
/**
|
|
1441
1525
|
* 拖拽提示
|
|
1442
1526
|
*/
|
|
@@ -1448,13 +1532,13 @@ export default {
|
|
|
1448
1532
|
VxeUITooltipComponent
|
|
1449
1533
|
? h(VxeUITooltipComponent, {
|
|
1450
1534
|
key: 'ctp',
|
|
1451
|
-
ref: '
|
|
1535
|
+
ref: 'refCommTooltip',
|
|
1452
1536
|
props: {
|
|
1453
1537
|
isArrow: false,
|
|
1454
1538
|
enterable: false
|
|
1455
1539
|
}
|
|
1456
1540
|
})
|
|
1457
|
-
:
|
|
1541
|
+
: renderEmptyElement($xeTable),
|
|
1458
1542
|
/**
|
|
1459
1543
|
* 工具提示
|
|
1460
1544
|
*/
|
|
@@ -1462,22 +1546,22 @@ export default {
|
|
|
1462
1546
|
? h(VxeUITooltipComponent, {
|
|
1463
1547
|
key: 'btp',
|
|
1464
1548
|
ref: 'tooltip',
|
|
1465
|
-
props: Object.assign({},
|
|
1549
|
+
props: Object.assign({}, tooltipOpts, tooltipStore.currOpts)
|
|
1466
1550
|
})
|
|
1467
|
-
:
|
|
1551
|
+
: renderEmptyElement($xeTable),
|
|
1468
1552
|
/**
|
|
1469
1553
|
* 校验提示
|
|
1470
1554
|
*/
|
|
1471
1555
|
VxeUITooltipComponent && this.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip')
|
|
1472
1556
|
? h(VxeUITooltipComponent, {
|
|
1473
1557
|
key: 'vtp',
|
|
1474
|
-
ref: '
|
|
1558
|
+
ref: 'refValidTooltip',
|
|
1475
1559
|
class: [{
|
|
1476
1560
|
'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
|
|
1477
1561
|
}, 'vxe-table--valid-error'],
|
|
1478
|
-
props: validOpts.message === 'tooltip' || tableData.length === 1 ?
|
|
1562
|
+
props: validOpts.message === 'tooltip' || tableData.length === 1 ? Object.assign({ isArrow: false }, tooltipOpts) : {}
|
|
1479
1563
|
})
|
|
1480
|
-
:
|
|
1564
|
+
: renderEmptyElement($xeTable)
|
|
1481
1565
|
])
|
|
1482
1566
|
]);
|
|
1483
1567
|
},
|
package/es/table/src/util.js
CHANGED
|
@@ -68,10 +68,13 @@ export function restoreScrollLocation($xeTable, scrollLeft, scrollTop) {
|
|
|
68
68
|
// 重置最后滚动状态
|
|
69
69
|
internalData.lastScrollLeft = 0;
|
|
70
70
|
internalData.lastScrollTop = 0;
|
|
71
|
+
internalData.intoRunScroll = false;
|
|
71
72
|
internalData.inVirtualScroll = false;
|
|
73
|
+
internalData.inWheelScroll = false;
|
|
74
|
+
internalData.inHeaderScroll = false;
|
|
72
75
|
internalData.inBodyScroll = false;
|
|
73
76
|
internalData.inFooterScroll = false;
|
|
74
|
-
internalData.
|
|
77
|
+
internalData.scrollRenderType = '';
|
|
75
78
|
// 还原滚动状态
|
|
76
79
|
return $xeTable.scrollTo(scrollLeft, scrollTop);
|
|
77
80
|
}
|
|
@@ -209,8 +212,8 @@ export function getColReMinWidth(params) {
|
|
|
209
212
|
}
|
|
210
213
|
// 如果设置最小宽
|
|
211
214
|
if (colMinWidth) {
|
|
212
|
-
const {
|
|
213
|
-
const bodyElem =
|
|
215
|
+
const { refTableBody } = $table.$refs;
|
|
216
|
+
const bodyElem = refTableBody ? refTableBody.$el : null;
|
|
214
217
|
if (bodyElem) {
|
|
215
218
|
if (isScale(colMinWidth)) {
|
|
216
219
|
const bodyWidth = bodyElem.clientWidth - 1;
|
|
@@ -281,6 +284,12 @@ export function getCellValue(row, column) {
|
|
|
281
284
|
export function setCellValue(row, column, value) {
|
|
282
285
|
return XEUtils.set(row, column.field, value);
|
|
283
286
|
}
|
|
287
|
+
export function getRefElem(refEl) {
|
|
288
|
+
if (refEl) {
|
|
289
|
+
return (refEl.$el || refEl);
|
|
290
|
+
}
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
284
293
|
export function clearTableDefaultStatus(_vm) {
|
|
285
294
|
_vm.initStatus = false;
|
|
286
295
|
_vm.clearSort();
|
|
@@ -322,12 +331,12 @@ export function rowToVisible($xeTable, row) {
|
|
|
322
331
|
const internalData = $xeTable;
|
|
323
332
|
const tableProps = $xeTable;
|
|
324
333
|
const { showOverflow } = tableProps;
|
|
325
|
-
const
|
|
334
|
+
const refTableBody = $xeTable.$refs.refTableBody;
|
|
326
335
|
const { columnStore, scrollYLoad } = reactData;
|
|
327
336
|
const { afterFullData, scrollYStore, fullAllDataRowIdData } = internalData;
|
|
328
337
|
const { rowHeight } = scrollYStore;
|
|
329
338
|
const { leftList, rightList } = columnStore;
|
|
330
|
-
const bodyElem =
|
|
339
|
+
const bodyElem = refTableBody ? refTableBody.$el : null;
|
|
331
340
|
const rowid = getRowid($xeTable, row);
|
|
332
341
|
let offsetFixedLeft = 0;
|
|
333
342
|
leftList.forEach((item) => {
|
|
@@ -382,9 +391,9 @@ export function rowToVisible($xeTable, row) {
|
|
|
382
391
|
}
|
|
383
392
|
export function colToVisible($xeTable, column, row) {
|
|
384
393
|
const { columnStore, scrollXLoad, visibleColumn } = $xeTable;
|
|
385
|
-
const
|
|
394
|
+
const refTableBody = $xeTable.$refs.refTableBody;
|
|
386
395
|
const { leftList, rightList } = columnStore;
|
|
387
|
-
const bodyElem =
|
|
396
|
+
const bodyElem = refTableBody ? refTableBody.$el : null;
|
|
388
397
|
if (column.fixed) {
|
|
389
398
|
return Promise.resolve();
|
|
390
399
|
}
|