vxe-table 3.9.21 → 3.10.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/locale/lang/ja-JP.js +5 -5
- package/es/locale/lang/ko-KR.js +5 -5
- package/es/locale/lang/uk-UA.js +5 -5
- package/es/locale/lang/vi-VN.js +5 -5
- package/es/locale/lang/zh-CHT.js +5 -5
- package/es/locale/lang/zh-CN.js +5 -5
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/mixin.js +3 -3
- package/es/table/src/body.js +50 -115
- package/es/table/src/footer.js +24 -21
- package/es/table/src/methods.js +392 -123
- package/es/table/src/table.js +68 -10
- package/es/table/src/util.js +58 -33
- package/es/table/style.css +46 -3
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +46 -3
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.umd.js +672 -361
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +5 -5
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +5 -5
- package/lib/locale/lang/ko-KR.js +5 -5
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +5 -5
- package/lib/locale/lang/uk-UA.js +5 -5
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +5 -5
- package/lib/locale/lang/vi-VN.js +5 -5
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +5 -5
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +5 -5
- package/lib/locale/lang/zh-CN.js +5 -5
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +5 -5
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/mixin.js +6 -3
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/src/body.js +49 -118
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +24 -33
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/methods.js +449 -148
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +61 -13
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +72 -38
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +46 -3
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -2
- 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 +46 -3
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/ja-JP.ts +5 -5
- package/packages/locale/lang/ko-KR.ts +5 -5
- package/packages/locale/lang/uk-UA.ts +5 -5
- package/packages/locale/lang/vi-VN.ts +5 -5
- package/packages/locale/lang/zh-CHT.ts +5 -5
- package/packages/locale/lang/zh-CN.ts +5 -5
- package/packages/table/module/edit/mixin.ts +3 -3
- package/packages/table/src/body.ts +50 -118
- package/packages/table/src/footer.ts +24 -22
- package/packages/table/src/methods.ts +418 -127
- package/packages/table/src/props.ts +8 -8
- package/packages/table/src/table.ts +70 -10
- package/packages/table/src/util.ts +61 -36
- package/packages/ui/index.ts +1 -1
- package/styles/components/table-module/filter.scss +1 -1
- package/styles/components/table.scss +45 -6
- package/styles/modules.scss +0 -2
- package/styles/theme/base.scss +1 -1
- package/styles/theme/dark.scss +7 -4
- package/styles/variable.scss +5 -1
- /package/es/{iconfont.1729992873866.ttf → iconfont.1730347297462.ttf} +0 -0
- /package/es/{iconfont.1729992873866.woff → iconfont.1730347297462.woff} +0 -0
- /package/es/{iconfont.1729992873866.woff2 → iconfont.1730347297462.woff2} +0 -0
- /package/lib/{iconfont.1729992873866.ttf → iconfont.1730347297462.ttf} +0 -0
- /package/lib/{iconfont.1729992873866.woff → iconfont.1730347297462.woff} +0 -0
- /package/lib/{iconfont.1729992873866.woff2 → iconfont.1730347297462.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -2220,9 +2220,9 @@ function getClass(property, params) {
|
|
|
2220
2220
|
;// CONCATENATED MODULE: ./packages/ui/index.ts
|
|
2221
2221
|
|
|
2222
2222
|
|
|
2223
|
-
const version = "3.
|
|
2223
|
+
const version = "3.10.0-beta.0";
|
|
2224
2224
|
core_.VxeUI.version = version;
|
|
2225
|
-
core_.VxeUI.tableVersion =
|
|
2225
|
+
core_.VxeUI.tableVersion = version;
|
|
2226
2226
|
core_.VxeUI.setConfig({
|
|
2227
2227
|
emptyCell: ' ',
|
|
2228
2228
|
table: {
|
|
@@ -2764,7 +2764,7 @@ function isNodeElement(elem) {
|
|
|
2764
2764
|
const {
|
|
2765
2765
|
log: log_log
|
|
2766
2766
|
} = core_.VxeUI;
|
|
2767
|
-
const log_version = `table v${"3.
|
|
2767
|
+
const log_version = `table v${"3.10.0-beta.0"}`;
|
|
2768
2768
|
const warnLog = log_log.create('warn', log_version);
|
|
2769
2769
|
const errLog = log_log.create('error', log_version);
|
|
2770
2770
|
;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
|
|
@@ -3019,16 +3019,6 @@ function restoreScrollLocation(_vm, scrollLeft, scrollTop) {
|
|
|
3019
3019
|
function toTreePathSeq(path) {
|
|
3020
3020
|
return path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
|
|
3021
3021
|
}
|
|
3022
|
-
function removeScrollListener(scrollElem) {
|
|
3023
|
-
if (scrollElem && scrollElem._onscroll) {
|
|
3024
|
-
scrollElem.onscroll = null;
|
|
3025
|
-
}
|
|
3026
|
-
}
|
|
3027
|
-
function restoreScrollListener(scrollElem) {
|
|
3028
|
-
if (scrollElem && scrollElem._onscroll) {
|
|
3029
|
-
scrollElem.onscroll = scrollElem._onscroll;
|
|
3030
|
-
}
|
|
3031
|
-
}
|
|
3032
3022
|
/**
|
|
3033
3023
|
* 生成行的唯一主键
|
|
3034
3024
|
*/
|
|
@@ -3305,30 +3295,75 @@ function isColumnInfo(column) {
|
|
|
3305
3295
|
function createColumn($xeTable, options, renderOptions) {
|
|
3306
3296
|
return isColumnInfo(options) ? options : new ColumnInfo($xeTable, options, renderOptions);
|
|
3307
3297
|
}
|
|
3308
|
-
function rowToVisible($
|
|
3298
|
+
function rowToVisible($xeTable, row) {
|
|
3309
3299
|
const {
|
|
3310
|
-
|
|
3311
|
-
|
|
3300
|
+
reactData,
|
|
3301
|
+
internalData
|
|
3302
|
+
} = $xeTable;
|
|
3303
|
+
const tableProps = $xeTable;
|
|
3304
|
+
const {
|
|
3305
|
+
showOverflow
|
|
3306
|
+
} = tableProps;
|
|
3307
|
+
const tableBody = $xeTable.$refs.tableBody;
|
|
3308
|
+
const {
|
|
3309
|
+
columnStore,
|
|
3310
|
+
scrollYLoad
|
|
3311
|
+
} = reactData;
|
|
3312
|
+
const {
|
|
3313
|
+
afterFullData,
|
|
3314
|
+
scrollYStore,
|
|
3315
|
+
fullAllDataRowIdData
|
|
3316
|
+
} = internalData;
|
|
3317
|
+
const {
|
|
3318
|
+
leftList,
|
|
3319
|
+
rightList
|
|
3320
|
+
} = columnStore;
|
|
3312
3321
|
const bodyElem = tableBody ? tableBody.$el : null;
|
|
3322
|
+
const rowid = getRowid($xeTable, row);
|
|
3323
|
+
let offsetFixedLeft = 0;
|
|
3324
|
+
leftList.forEach(item => {
|
|
3325
|
+
offsetFixedLeft += item.renderWidth;
|
|
3326
|
+
});
|
|
3327
|
+
let offsetFixedRight = 0;
|
|
3328
|
+
rightList.forEach(item => {
|
|
3329
|
+
offsetFixedRight += item.renderWidth;
|
|
3330
|
+
});
|
|
3313
3331
|
if (bodyElem) {
|
|
3314
|
-
const
|
|
3332
|
+
const bodyHeight = bodyElem.clientHeight;
|
|
3333
|
+
const bodyScrollTop = bodyElem.scrollTop;
|
|
3334
|
+
const trElem = bodyElem.querySelector(`[rowid="${rowid}"]`);
|
|
3315
3335
|
if (trElem) {
|
|
3316
|
-
const
|
|
3317
|
-
const
|
|
3318
|
-
const trOffsetTop = trElem.offsetTop + (trElem.offsetParent ? trElem.offsetParent.offsetTop : 0);
|
|
3336
|
+
const trOffsetParent = trElem.offsetParent;
|
|
3337
|
+
const trOffsetTop = trElem.offsetTop + (trOffsetParent ? trOffsetParent.offsetTop : 0);
|
|
3319
3338
|
const trHeight = trElem.clientHeight;
|
|
3320
3339
|
// 检测行是否在可视区中
|
|
3321
|
-
if (trOffsetTop <
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
// 向下定位
|
|
3326
|
-
return $xetable.scrollTo(null, bodySrcollTop + trHeight);
|
|
3340
|
+
if (trOffsetTop < bodyScrollTop || trOffsetTop > bodyScrollTop + bodyHeight) {
|
|
3341
|
+
return $xeTable.scrollTo(null, trOffsetTop);
|
|
3342
|
+
} else if (trOffsetTop + trHeight >= bodyHeight + bodyScrollTop) {
|
|
3343
|
+
return $xeTable.scrollTo(null, bodyScrollTop + trHeight);
|
|
3327
3344
|
}
|
|
3328
3345
|
} else {
|
|
3329
|
-
//
|
|
3330
|
-
if (
|
|
3331
|
-
|
|
3346
|
+
// 如果是虚拟渲染滚动
|
|
3347
|
+
if (scrollYLoad) {
|
|
3348
|
+
if (showOverflow) {
|
|
3349
|
+
return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * scrollYStore.rowHeight);
|
|
3350
|
+
}
|
|
3351
|
+
let scrollTop = 0;
|
|
3352
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
3353
|
+
const rHeight = rest ? rest.height : 0;
|
|
3354
|
+
for (let i = 0; i < afterFullData.length; i++) {
|
|
3355
|
+
const currRow = afterFullData[i];
|
|
3356
|
+
const currRowid = getRowid($xeTable, currRow);
|
|
3357
|
+
if (currRow === row || currRowid === rowid) {
|
|
3358
|
+
break;
|
|
3359
|
+
}
|
|
3360
|
+
const rest = fullAllDataRowIdData[currRowid];
|
|
3361
|
+
scrollTop += rest ? rest.height : 0;
|
|
3362
|
+
}
|
|
3363
|
+
if (scrollTop < bodyScrollTop) {
|
|
3364
|
+
return $xeTable.scrollTo(null, scrollTop - offsetFixedLeft - 1);
|
|
3365
|
+
}
|
|
3366
|
+
return $xeTable.scrollTo(null, scrollTop + rHeight - (bodyHeight - offsetFixedRight - 1));
|
|
3332
3367
|
}
|
|
3333
3368
|
}
|
|
3334
3369
|
}
|
|
@@ -3340,14 +3375,15 @@ function colToVisible($xeTable, column) {
|
|
|
3340
3375
|
scrollXLoad,
|
|
3341
3376
|
visibleColumn
|
|
3342
3377
|
} = $xeTable;
|
|
3343
|
-
const
|
|
3344
|
-
tableBody
|
|
3345
|
-
} = $xeTable.$refs;
|
|
3378
|
+
const tableBody = $xeTable.$refs.tableBody;
|
|
3346
3379
|
const {
|
|
3347
3380
|
leftList,
|
|
3348
3381
|
rightList
|
|
3349
3382
|
} = columnStore;
|
|
3350
3383
|
const bodyElem = tableBody ? tableBody.$el : null;
|
|
3384
|
+
if (column.fixed) {
|
|
3385
|
+
return Promise.resolve();
|
|
3386
|
+
}
|
|
3351
3387
|
let offsetFixedLeft = 0;
|
|
3352
3388
|
leftList.forEach(item => {
|
|
3353
3389
|
offsetFixedLeft += item.renderWidth;
|
|
@@ -3358,15 +3394,15 @@ function colToVisible($xeTable, column) {
|
|
|
3358
3394
|
});
|
|
3359
3395
|
if (bodyElem) {
|
|
3360
3396
|
const bodyWidth = bodyElem.clientWidth;
|
|
3361
|
-
const
|
|
3397
|
+
const bodyScrollLeft = bodyElem.scrollLeft;
|
|
3362
3398
|
const tdElem = bodyElem.querySelector(`.${column.id}`);
|
|
3363
3399
|
if (tdElem) {
|
|
3364
3400
|
const tdOffsetLeft = tdElem.offsetLeft + (tdElem.offsetParent ? tdElem.offsetParent.offsetLeft : 0);
|
|
3365
3401
|
const cellWidth = tdElem.clientWidth;
|
|
3366
3402
|
// 检测是否在可视区中
|
|
3367
|
-
if (tdOffsetLeft <
|
|
3403
|
+
if (tdOffsetLeft < bodyScrollLeft + offsetFixedLeft) {
|
|
3368
3404
|
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - 1);
|
|
3369
|
-
} else if (tdOffsetLeft + cellWidth -
|
|
3405
|
+
} else if (tdOffsetLeft + cellWidth - bodyScrollLeft > bodyWidth - offsetFixedRight) {
|
|
3370
3406
|
return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - offsetFixedRight - 1));
|
|
3371
3407
|
}
|
|
3372
3408
|
} else {
|
|
@@ -3374,13 +3410,13 @@ function colToVisible($xeTable, column) {
|
|
|
3374
3410
|
if (scrollXLoad) {
|
|
3375
3411
|
let scrollLeft = 0;
|
|
3376
3412
|
const cellWidth = column.renderWidth;
|
|
3377
|
-
for (let
|
|
3378
|
-
if (visibleColumn[
|
|
3413
|
+
for (let i = 0; i < visibleColumn.length; i++) {
|
|
3414
|
+
if (visibleColumn[i] === column) {
|
|
3379
3415
|
break;
|
|
3380
3416
|
}
|
|
3381
|
-
scrollLeft += visibleColumn[
|
|
3417
|
+
scrollLeft += visibleColumn[i].renderWidth;
|
|
3382
3418
|
}
|
|
3383
|
-
if (scrollLeft <
|
|
3419
|
+
if (scrollLeft < bodyScrollLeft) {
|
|
3384
3420
|
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - 1);
|
|
3385
3421
|
}
|
|
3386
3422
|
return $xeTable.scrollTo(scrollLeft + cellWidth - (bodyWidth - offsetFixedRight - 1));
|
|
@@ -4674,7 +4710,8 @@ const {
|
|
|
4674
4710
|
getI18n: methods_getI18n,
|
|
4675
4711
|
renderer: methods_renderer,
|
|
4676
4712
|
formats: methods_formats,
|
|
4677
|
-
interceptor: methods_interceptor
|
|
4713
|
+
interceptor: methods_interceptor,
|
|
4714
|
+
createEvent
|
|
4678
4715
|
} = core_.VxeUI;
|
|
4679
4716
|
const isWebkit = browse['-webkit'] && !browse.edge;
|
|
4680
4717
|
const debounceScrollYDuration = browse.msie ? 80 : 20;
|
|
@@ -4743,7 +4780,7 @@ function handleReserveRow(_vm, reserveRowMap) {
|
|
|
4743
4780
|
});
|
|
4744
4781
|
return reserveList;
|
|
4745
4782
|
}
|
|
4746
|
-
function
|
|
4783
|
+
function handleVirtualXVisible(_vm) {
|
|
4747
4784
|
const {
|
|
4748
4785
|
$refs,
|
|
4749
4786
|
visibleColumn
|
|
@@ -4783,21 +4820,19 @@ function computeVirtualX(_vm) {
|
|
|
4783
4820
|
visibleSize: 6
|
|
4784
4821
|
};
|
|
4785
4822
|
}
|
|
4786
|
-
|
|
4823
|
+
const computeRowHeight = $xeTable => {
|
|
4787
4824
|
const {
|
|
4788
4825
|
$refs,
|
|
4789
|
-
computeSize
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
const
|
|
4793
|
-
tableHeader,
|
|
4794
|
-
tableBody
|
|
4795
|
-
} = $refs;
|
|
4826
|
+
computeSize
|
|
4827
|
+
} = $xeTable;
|
|
4828
|
+
const tableHeader = $refs.tableHeader;
|
|
4829
|
+
const tableBody = $refs.tableBody;
|
|
4796
4830
|
const tableBodyElem = tableBody ? tableBody.$el : null;
|
|
4797
4831
|
const vSize = computeSize;
|
|
4832
|
+
const rowHeightMaps = $xeTable.rowHeightMaps;
|
|
4833
|
+
let rowHeight = 0;
|
|
4798
4834
|
if (tableBodyElem) {
|
|
4799
4835
|
const tableHeaderElem = tableHeader ? tableHeader.$el : null;
|
|
4800
|
-
let rowHeight = 0;
|
|
4801
4836
|
let firstTrElem;
|
|
4802
4837
|
firstTrElem = tableBodyElem.querySelector('tr');
|
|
4803
4838
|
if (!firstTrElem && tableHeaderElem) {
|
|
@@ -4809,14 +4844,55 @@ function computeVirtualY(_vm) {
|
|
|
4809
4844
|
if (!rowHeight) {
|
|
4810
4845
|
rowHeight = rowHeightMaps[vSize || 'default'];
|
|
4811
4846
|
}
|
|
4812
|
-
|
|
4847
|
+
}
|
|
4848
|
+
return rowHeight;
|
|
4849
|
+
};
|
|
4850
|
+
function handleVirtualYVisible($xeTable) {
|
|
4851
|
+
const {
|
|
4852
|
+
$refs,
|
|
4853
|
+
scrollYStore,
|
|
4854
|
+
afterFullData,
|
|
4855
|
+
fullAllDataRowIdData
|
|
4856
|
+
} = $xeTable;
|
|
4857
|
+
const tableBody = $refs.tableBody;
|
|
4858
|
+
const tableBodyElem = tableBody ? tableBody.$el : null;
|
|
4859
|
+
const {
|
|
4860
|
+
rowHeight
|
|
4861
|
+
} = scrollYStore;
|
|
4862
|
+
if (tableBodyElem) {
|
|
4863
|
+
const {
|
|
4864
|
+
scrollTop,
|
|
4865
|
+
clientHeight
|
|
4866
|
+
} = tableBodyElem;
|
|
4867
|
+
const endHeight = scrollTop + clientHeight;
|
|
4868
|
+
let toVisibleIndex = -1;
|
|
4869
|
+
let offsetTop = 0;
|
|
4870
|
+
let visibleSize = 0;
|
|
4871
|
+
for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
4872
|
+
const row = afterFullData[rIndex];
|
|
4873
|
+
const rowid = getRowid($xeTable, row);
|
|
4874
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
4875
|
+
if (!rest) {
|
|
4876
|
+
break;
|
|
4877
|
+
}
|
|
4878
|
+
offsetTop += rest.height || rowHeight;
|
|
4879
|
+
if (toVisibleIndex === -1 && scrollTop < offsetTop) {
|
|
4880
|
+
toVisibleIndex = rIndex;
|
|
4881
|
+
}
|
|
4882
|
+
if (toVisibleIndex >= 0) {
|
|
4883
|
+
visibleSize++;
|
|
4884
|
+
if (offsetTop > endHeight) {
|
|
4885
|
+
break;
|
|
4886
|
+
}
|
|
4887
|
+
}
|
|
4888
|
+
}
|
|
4813
4889
|
return {
|
|
4814
|
-
|
|
4815
|
-
visibleSize
|
|
4890
|
+
toVisibleIndex: Math.max(0, toVisibleIndex),
|
|
4891
|
+
visibleSize: Math.max(8, visibleSize)
|
|
4816
4892
|
};
|
|
4817
4893
|
}
|
|
4818
4894
|
return {
|
|
4819
|
-
|
|
4895
|
+
toVisibleIndex: 0,
|
|
4820
4896
|
visibleSize: 8
|
|
4821
4897
|
};
|
|
4822
4898
|
}
|
|
@@ -4934,7 +5010,7 @@ function clearAllSort(_vm) {
|
|
|
4934
5010
|
column.order = null;
|
|
4935
5011
|
});
|
|
4936
5012
|
}
|
|
4937
|
-
function
|
|
5013
|
+
function calcTableHeight(_vm, key) {
|
|
4938
5014
|
const {
|
|
4939
5015
|
parentHeight
|
|
4940
5016
|
} = _vm;
|
|
@@ -4955,6 +5031,29 @@ function calcHeight(_vm, key) {
|
|
|
4955
5031
|
}
|
|
4956
5032
|
return num;
|
|
4957
5033
|
}
|
|
5034
|
+
const calcCellHeight = $xeTable => {
|
|
5035
|
+
const {
|
|
5036
|
+
tableData,
|
|
5037
|
+
scrollYLoad,
|
|
5038
|
+
fullAllDataRowIdData
|
|
5039
|
+
} = $xeTable;
|
|
5040
|
+
const el = $xeTable.$el;
|
|
5041
|
+
if (scrollYLoad && el) {
|
|
5042
|
+
tableData.forEach(row => {
|
|
5043
|
+
const rowid = getRowid($xeTable, row);
|
|
5044
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
5045
|
+
const trList = el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]`);
|
|
5046
|
+
if (rest && trList.length) {
|
|
5047
|
+
let height = 0;
|
|
5048
|
+
for (let i = 0; i < trList.length; i++) {
|
|
5049
|
+
const trEl = trList[i];
|
|
5050
|
+
height = Math.max(height, trEl.offsetHeight);
|
|
5051
|
+
}
|
|
5052
|
+
rest.height = height;
|
|
5053
|
+
}
|
|
5054
|
+
});
|
|
5055
|
+
}
|
|
5056
|
+
};
|
|
4958
5057
|
function getOrderField(_vm, column) {
|
|
4959
5058
|
const {
|
|
4960
5059
|
sortBy,
|
|
@@ -5199,9 +5298,9 @@ const Methods = {
|
|
|
5199
5298
|
if (!(this.height || this.maxHeight)) {
|
|
5200
5299
|
errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
|
|
5201
5300
|
}
|
|
5202
|
-
if (!this.showOverflow) {
|
|
5203
|
-
|
|
5204
|
-
}
|
|
5301
|
+
// if (!this.showOverflow) {
|
|
5302
|
+
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
5303
|
+
// }
|
|
5205
5304
|
if (this.spanMethod) {
|
|
5206
5305
|
warnLog('vxe.error.scrollErrProp', ['table.span-method']);
|
|
5207
5306
|
}
|
|
@@ -5442,7 +5541,8 @@ const Methods = {
|
|
|
5442
5541
|
$index: -1,
|
|
5443
5542
|
items,
|
|
5444
5543
|
parent,
|
|
5445
|
-
level
|
|
5544
|
+
level,
|
|
5545
|
+
height: 0
|
|
5446
5546
|
};
|
|
5447
5547
|
}
|
|
5448
5548
|
if (isSource) {
|
|
@@ -5540,7 +5640,8 @@ const Methods = {
|
|
|
5540
5640
|
$index: -1,
|
|
5541
5641
|
items,
|
|
5542
5642
|
parent: parentRow,
|
|
5543
|
-
level: parentLevel + nodes.length
|
|
5643
|
+
level: parentLevel + nodes.length,
|
|
5644
|
+
height: 0
|
|
5544
5645
|
};
|
|
5545
5646
|
fullDataRowIdData[rowid] = rest;
|
|
5546
5647
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -5591,7 +5692,8 @@ const Methods = {
|
|
|
5591
5692
|
colid,
|
|
5592
5693
|
index,
|
|
5593
5694
|
items,
|
|
5594
|
-
parent
|
|
5695
|
+
parent: parent || null,
|
|
5696
|
+
width: 0
|
|
5595
5697
|
};
|
|
5596
5698
|
if (field) {
|
|
5597
5699
|
if (true) {
|
|
@@ -5702,14 +5804,14 @@ const Methods = {
|
|
|
5702
5804
|
fullAllDataRowIdData
|
|
5703
5805
|
} = this;
|
|
5704
5806
|
const rowid = tr.getAttribute('rowid');
|
|
5705
|
-
const
|
|
5706
|
-
if (
|
|
5807
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
5808
|
+
if (rowRest) {
|
|
5707
5809
|
return {
|
|
5708
|
-
rowid:
|
|
5709
|
-
item:
|
|
5710
|
-
index:
|
|
5711
|
-
items:
|
|
5712
|
-
parent:
|
|
5810
|
+
rowid: rowRest.rowid,
|
|
5811
|
+
item: rowRest.row,
|
|
5812
|
+
index: rowRest.index,
|
|
5813
|
+
items: rowRest.items,
|
|
5814
|
+
parent: rowRest.parent
|
|
5713
5815
|
};
|
|
5714
5816
|
}
|
|
5715
5817
|
}
|
|
@@ -5725,15 +5827,17 @@ const Methods = {
|
|
|
5725
5827
|
fullColumnIdData
|
|
5726
5828
|
} = this;
|
|
5727
5829
|
const colid = cell.getAttribute('colid');
|
|
5728
|
-
|
|
5729
|
-
|
|
5730
|
-
|
|
5731
|
-
|
|
5732
|
-
|
|
5733
|
-
|
|
5734
|
-
|
|
5735
|
-
|
|
5736
|
-
|
|
5830
|
+
if (colid) {
|
|
5831
|
+
const colRest = fullColumnIdData[colid];
|
|
5832
|
+
if (colRest) {
|
|
5833
|
+
return {
|
|
5834
|
+
colid: colRest.colid,
|
|
5835
|
+
item: colRest.column,
|
|
5836
|
+
index: colRest.index,
|
|
5837
|
+
items: colRest.items,
|
|
5838
|
+
parent: colRest.parent
|
|
5839
|
+
};
|
|
5840
|
+
}
|
|
5737
5841
|
}
|
|
5738
5842
|
}
|
|
5739
5843
|
return null;
|
|
@@ -6083,13 +6187,13 @@ const Methods = {
|
|
|
6083
6187
|
} = $xeTable;
|
|
6084
6188
|
const rowid = getRowid($xeTable, row);
|
|
6085
6189
|
const colid = column.id;
|
|
6086
|
-
const
|
|
6087
|
-
if (
|
|
6088
|
-
formatData =
|
|
6190
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
6191
|
+
if (rowRest) {
|
|
6192
|
+
formatData = rowRest.formatData;
|
|
6089
6193
|
if (!formatData) {
|
|
6090
6194
|
formatData = fullAllDataRowIdData[rowid].formatData = {};
|
|
6091
6195
|
}
|
|
6092
|
-
if (
|
|
6196
|
+
if (rowRest && formatData[colid]) {
|
|
6093
6197
|
if (formatData[colid].value === cellValue) {
|
|
6094
6198
|
return formatData[colid].label;
|
|
6095
6199
|
}
|
|
@@ -6541,11 +6645,11 @@ const Methods = {
|
|
|
6541
6645
|
if (treeConfig) {
|
|
6542
6646
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
6543
6647
|
const rowid = getRowid(this, row);
|
|
6544
|
-
const
|
|
6648
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
6545
6649
|
const seq = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
|
|
6546
|
-
if (
|
|
6547
|
-
|
|
6548
|
-
|
|
6650
|
+
if (rowRest) {
|
|
6651
|
+
rowRest.seq = seq;
|
|
6652
|
+
rowRest._index = index;
|
|
6549
6653
|
} else {
|
|
6550
6654
|
const rest = {
|
|
6551
6655
|
row,
|
|
@@ -6556,7 +6660,8 @@ const Methods = {
|
|
|
6556
6660
|
_index: index,
|
|
6557
6661
|
items: [],
|
|
6558
6662
|
parent: null,
|
|
6559
|
-
level: 0
|
|
6663
|
+
level: 0,
|
|
6664
|
+
height: 0
|
|
6560
6665
|
};
|
|
6561
6666
|
fullAllDataRowIdData[rowid] = rest;
|
|
6562
6667
|
fullDataRowIdData[rowid] = rest;
|
|
@@ -6568,11 +6673,11 @@ const Methods = {
|
|
|
6568
6673
|
} else {
|
|
6569
6674
|
afterFullData.forEach((row, index) => {
|
|
6570
6675
|
const rowid = getRowid(this, row);
|
|
6571
|
-
const
|
|
6676
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
6572
6677
|
const seq = index + 1;
|
|
6573
|
-
if (
|
|
6574
|
-
|
|
6575
|
-
|
|
6678
|
+
if (rowRest) {
|
|
6679
|
+
rowRest.seq = seq;
|
|
6680
|
+
rowRest._index = index;
|
|
6576
6681
|
} else {
|
|
6577
6682
|
const rest = {
|
|
6578
6683
|
row,
|
|
@@ -6583,7 +6688,8 @@ const Methods = {
|
|
|
6583
6688
|
_index: index,
|
|
6584
6689
|
items: [],
|
|
6585
6690
|
parent: null,
|
|
6586
|
-
level: 0
|
|
6691
|
+
level: 0,
|
|
6692
|
+
height: 0
|
|
6587
6693
|
};
|
|
6588
6694
|
fullAllDataRowIdData[rowid] = rest;
|
|
6589
6695
|
fullDataRowIdData[rowid] = rest;
|
|
@@ -7158,7 +7264,7 @@ const Methods = {
|
|
|
7158
7264
|
}
|
|
7159
7265
|
const {
|
|
7160
7266
|
visibleSize
|
|
7161
|
-
} =
|
|
7267
|
+
} = handleVirtualXVisible(this);
|
|
7162
7268
|
scrollXStore.startIndex = 0;
|
|
7163
7269
|
scrollXStore.endIndex = visibleSize;
|
|
7164
7270
|
scrollXStore.visibleSize = visibleSize;
|
|
@@ -7172,9 +7278,9 @@ const Methods = {
|
|
|
7172
7278
|
this.scrollXLoad = scrollXLoad;
|
|
7173
7279
|
visibleColumn.forEach((column, index) => {
|
|
7174
7280
|
const colid = column.id;
|
|
7175
|
-
const
|
|
7176
|
-
if (
|
|
7177
|
-
|
|
7281
|
+
const colRest = fullColumnIdData[colid];
|
|
7282
|
+
if (colRest) {
|
|
7283
|
+
colRest._index = index;
|
|
7178
7284
|
}
|
|
7179
7285
|
});
|
|
7180
7286
|
this.visibleColumn = visibleColumn;
|
|
@@ -7285,36 +7391,26 @@ const Methods = {
|
|
|
7285
7391
|
* 计算单元格列宽,动态分配可用剩余空间
|
|
7286
7392
|
* 支持 width=? width=?px width=?% min-width=? min-width=?px min-width=?%
|
|
7287
7393
|
*/
|
|
7288
|
-
recalculate(
|
|
7289
|
-
const {
|
|
7290
|
-
$refs
|
|
7291
|
-
} = this;
|
|
7292
|
-
const {
|
|
7293
|
-
tableBody,
|
|
7294
|
-
tableHeader,
|
|
7295
|
-
tableFooter
|
|
7296
|
-
} = $refs;
|
|
7297
|
-
const bodyElem = tableBody ? tableBody.$el : null;
|
|
7298
|
-
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
7299
|
-
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
7394
|
+
recalculate(reFull) {
|
|
7300
7395
|
const el = this.$el;
|
|
7301
7396
|
if (!el || !el.clientWidth) {
|
|
7302
7397
|
return this.$nextTick();
|
|
7303
7398
|
}
|
|
7304
|
-
|
|
7305
|
-
|
|
7306
|
-
|
|
7307
|
-
|
|
7308
|
-
|
|
7309
|
-
|
|
7310
|
-
|
|
7311
|
-
|
|
7312
|
-
|
|
7313
|
-
}
|
|
7399
|
+
calcCellHeight(this);
|
|
7400
|
+
this.calcCellWidth();
|
|
7401
|
+
this.autoCellWidth();
|
|
7402
|
+
if (reFull === true) {
|
|
7403
|
+
// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
7404
|
+
return this.computeScrollLoad().then(() => {
|
|
7405
|
+
calcCellHeight(this);
|
|
7406
|
+
this.autoCellWidth();
|
|
7407
|
+
return this.computeScrollLoad();
|
|
7408
|
+
});
|
|
7314
7409
|
}
|
|
7315
7410
|
return this.computeScrollLoad();
|
|
7316
7411
|
},
|
|
7317
7412
|
calcCellWidth() {
|
|
7413
|
+
const $xeTable = this;
|
|
7318
7414
|
const {
|
|
7319
7415
|
autoWidthColumnList,
|
|
7320
7416
|
tableData
|
|
@@ -7325,9 +7421,15 @@ const Methods = {
|
|
|
7325
7421
|
}
|
|
7326
7422
|
this.isCalcColumn = true;
|
|
7327
7423
|
return this.$nextTick().then(() => {
|
|
7424
|
+
const internalData = $xeTable;
|
|
7425
|
+
const {
|
|
7426
|
+
fullColumnIdData
|
|
7427
|
+
} = internalData;
|
|
7328
7428
|
const el = this.$el;
|
|
7329
7429
|
if (el) {
|
|
7330
7430
|
autoWidthColumnList.forEach(column => {
|
|
7431
|
+
const colid = column.id;
|
|
7432
|
+
const colRest = fullColumnIdData[colid];
|
|
7331
7433
|
const cellElList = el.querySelectorAll(`.vxe-header--column.${column.id}>.vxe-cell,.vxe-body--column.${column.id}>.vxe-cell,.vxe-footer--column.${column.id}>.vxe-cell`);
|
|
7332
7434
|
const firstCellEl = cellElList[0];
|
|
7333
7435
|
let paddingSize = 0;
|
|
@@ -7354,6 +7456,9 @@ const Methods = {
|
|
|
7354
7456
|
colWidth = Math.max(colWidth, Math.ceil(titleWidth) + 4);
|
|
7355
7457
|
}
|
|
7356
7458
|
});
|
|
7459
|
+
if (colRest) {
|
|
7460
|
+
colRest.width = Math.max(colWidth, colRest.width);
|
|
7461
|
+
}
|
|
7357
7462
|
column.renderAutoWidth = colWidth + paddingSize;
|
|
7358
7463
|
});
|
|
7359
7464
|
this.analyColumnWidth();
|
|
@@ -7366,12 +7471,19 @@ const Methods = {
|
|
|
7366
7471
|
* 支持 px、%、固定 混合分配
|
|
7367
7472
|
* 支持动态列表调整分配
|
|
7368
7473
|
* 支持自动分配偏移量
|
|
7369
|
-
* @param {Element} headerElem
|
|
7370
|
-
* @param {Element} bodyElem
|
|
7371
|
-
* @param {Element} footerElem
|
|
7372
|
-
* @param {Number} bodyWidth
|
|
7373
7474
|
*/
|
|
7374
|
-
autoCellWidth(
|
|
7475
|
+
autoCellWidth() {
|
|
7476
|
+
const {
|
|
7477
|
+
$refs
|
|
7478
|
+
} = this;
|
|
7479
|
+
const {
|
|
7480
|
+
tableBody,
|
|
7481
|
+
tableHeader,
|
|
7482
|
+
tableFooter
|
|
7483
|
+
} = $refs;
|
|
7484
|
+
const bodyElem = tableBody ? tableBody.$el : null;
|
|
7485
|
+
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
7486
|
+
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
7375
7487
|
let tableWidth = 0;
|
|
7376
7488
|
const minCellWidth = 40; // 列宽最少限制 40px
|
|
7377
7489
|
const bodyWidth = bodyElem.clientWidth - 1;
|
|
@@ -7506,12 +7618,41 @@ const Methods = {
|
|
|
7506
7618
|
this.checkScrolling();
|
|
7507
7619
|
}
|
|
7508
7620
|
},
|
|
7621
|
+
calcCellHeight() {
|
|
7622
|
+
const $xeTable = this;
|
|
7623
|
+
const reactData = $xeTable;
|
|
7624
|
+
const internalData = $xeTable;
|
|
7625
|
+
const {
|
|
7626
|
+
tableData,
|
|
7627
|
+
scrollYLoad
|
|
7628
|
+
} = reactData;
|
|
7629
|
+
const {
|
|
7630
|
+
fullAllDataRowIdData
|
|
7631
|
+
} = internalData;
|
|
7632
|
+
const el = $xeTable.$el;
|
|
7633
|
+
if (scrollYLoad && el) {
|
|
7634
|
+
tableData.forEach(row => {
|
|
7635
|
+
const rowid = getRowid($xeTable, row);
|
|
7636
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
7637
|
+
const trList = el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]`);
|
|
7638
|
+
if (rowRest && trList.length) {
|
|
7639
|
+
let height = 0;
|
|
7640
|
+
for (let i = 0; i < trList.length; i++) {
|
|
7641
|
+
const trEl = trList[i];
|
|
7642
|
+
height = Math.max(height, trEl.offsetHeight);
|
|
7643
|
+
}
|
|
7644
|
+
rowRest.height = height;
|
|
7645
|
+
}
|
|
7646
|
+
});
|
|
7647
|
+
}
|
|
7648
|
+
},
|
|
7509
7649
|
updateHeight() {
|
|
7510
|
-
this.customHeight =
|
|
7511
|
-
this.customMinHeight =
|
|
7512
|
-
this.customMaxHeight =
|
|
7650
|
+
this.customHeight = calcTableHeight(this, 'height');
|
|
7651
|
+
this.customMinHeight = calcTableHeight(this, 'minHeight');
|
|
7652
|
+
this.customMaxHeight = calcTableHeight(this, 'maxHeight');
|
|
7513
7653
|
},
|
|
7514
7654
|
updateStyle() {
|
|
7655
|
+
const $xeTable = this;
|
|
7515
7656
|
let {
|
|
7516
7657
|
$refs,
|
|
7517
7658
|
isGroup,
|
|
@@ -7533,6 +7674,7 @@ const Methods = {
|
|
|
7533
7674
|
scrollbarWidth,
|
|
7534
7675
|
scrollXLoad,
|
|
7535
7676
|
scrollYLoad,
|
|
7677
|
+
overflowX,
|
|
7536
7678
|
cellOffsetWidth,
|
|
7537
7679
|
columnStore,
|
|
7538
7680
|
elemStore,
|
|
@@ -7547,7 +7689,7 @@ const Methods = {
|
|
|
7547
7689
|
footerSpanMethod,
|
|
7548
7690
|
isAllOverflow,
|
|
7549
7691
|
visibleColumn
|
|
7550
|
-
} =
|
|
7692
|
+
} = $xeTable;
|
|
7551
7693
|
const containerList = ['main', 'left', 'right'];
|
|
7552
7694
|
const emptyPlaceholderElem = $refs.emptyPlaceholder;
|
|
7553
7695
|
const bodyWrapperElem = elemStore['main-body-wrapper'];
|
|
@@ -7560,6 +7702,30 @@ const Methods = {
|
|
|
7560
7702
|
customHeight += scrollbarHeight;
|
|
7561
7703
|
}
|
|
7562
7704
|
}
|
|
7705
|
+
const scrollXVirtualEl = $xeTable.$refs.refScrollXVirtualElem;
|
|
7706
|
+
if (scrollXVirtualEl) {
|
|
7707
|
+
scrollXVirtualEl.style.height = `${scrollbarHeight}px`;
|
|
7708
|
+
}
|
|
7709
|
+
const scrollYVirtualEl = $xeTable.$refs.refScrollYVirtualElem;
|
|
7710
|
+
if (scrollYVirtualEl) {
|
|
7711
|
+
let bodyHeight = 0;
|
|
7712
|
+
let bodyMaxHeight = 0;
|
|
7713
|
+
const bodyMinHeight = customMinHeight - headerHeight - footerHeight;
|
|
7714
|
+
if (customMaxHeight) {
|
|
7715
|
+
bodyMaxHeight = customMaxHeight - headerHeight - footerHeight;
|
|
7716
|
+
bodyMaxHeight = Math.max(bodyMinHeight, bodyMaxHeight);
|
|
7717
|
+
}
|
|
7718
|
+
if (customHeight) {
|
|
7719
|
+
bodyHeight = customHeight - headerHeight - footerHeight;
|
|
7720
|
+
if (bodyMaxHeight) {
|
|
7721
|
+
bodyHeight = Math.min(bodyMaxHeight, bodyHeight);
|
|
7722
|
+
}
|
|
7723
|
+
bodyHeight = Math.max(bodyMinHeight, bodyHeight);
|
|
7724
|
+
}
|
|
7725
|
+
scrollYVirtualEl.style.top = `${headerHeight}px`;
|
|
7726
|
+
scrollYVirtualEl.style.width = `${scrollbarWidth}px`;
|
|
7727
|
+
scrollYVirtualEl.style.height = `${bodyHeight + (overflowX ? -Math.max(1, scrollbarHeight) : 0)}px`;
|
|
7728
|
+
}
|
|
7563
7729
|
containerList.forEach((name, index) => {
|
|
7564
7730
|
const fixedType = index > 0 ? name : '';
|
|
7565
7731
|
const layoutList = ['header', 'body', 'footer'];
|
|
@@ -7724,7 +7890,8 @@ const Methods = {
|
|
|
7724
7890
|
colElem.style.width = `${scrollbarWidth}px`;
|
|
7725
7891
|
}
|
|
7726
7892
|
if (fullColumnIdData[colid]) {
|
|
7727
|
-
const
|
|
7893
|
+
const colRest = fullColumnIdData[colid];
|
|
7894
|
+
const column = colRest.column;
|
|
7728
7895
|
const {
|
|
7729
7896
|
showHeaderOverflow,
|
|
7730
7897
|
showFooterOverflow,
|
|
@@ -7790,22 +7957,25 @@ const Methods = {
|
|
|
7790
7957
|
* 处理固定列的显示状态
|
|
7791
7958
|
*/
|
|
7792
7959
|
checkScrolling() {
|
|
7960
|
+
const $xeTable = this;
|
|
7793
7961
|
const {
|
|
7794
7962
|
tableBody,
|
|
7795
7963
|
leftContainer,
|
|
7796
7964
|
rightContainer
|
|
7797
|
-
} =
|
|
7965
|
+
} = $xeTable.$refs;
|
|
7798
7966
|
const bodyElem = tableBody ? tableBody.$el : null;
|
|
7799
|
-
|
|
7967
|
+
const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
|
|
7968
|
+
const bodtTargetEl = xHandleEl || bodyElem;
|
|
7969
|
+
if (bodtTargetEl) {
|
|
7800
7970
|
if (leftContainer) {
|
|
7801
|
-
if (
|
|
7971
|
+
if (bodtTargetEl.scrollLeft > 0) {
|
|
7802
7972
|
addClass(leftContainer, 'scrolling--middle');
|
|
7803
7973
|
} else {
|
|
7804
7974
|
removeClass(leftContainer, 'scrolling--middle');
|
|
7805
7975
|
}
|
|
7806
7976
|
}
|
|
7807
7977
|
if (rightContainer) {
|
|
7808
|
-
if (
|
|
7978
|
+
if (bodtTargetEl.clientWidth < bodtTargetEl.scrollWidth - Math.ceil(bodtTargetEl.scrollLeft)) {
|
|
7809
7979
|
addClass(rightContainer, 'scrolling--middle');
|
|
7810
7980
|
} else {
|
|
7811
7981
|
removeClass(rightContainer, 'scrolling--middle');
|
|
@@ -10214,8 +10384,8 @@ const Methods = {
|
|
|
10214
10384
|
const {
|
|
10215
10385
|
fullAllDataRowIdData
|
|
10216
10386
|
} = this;
|
|
10217
|
-
const
|
|
10218
|
-
return
|
|
10387
|
+
const rowRest = fullAllDataRowIdData[getRowid($xeTable, row)];
|
|
10388
|
+
return rowRest && !!rowRest.expandLoaded;
|
|
10219
10389
|
},
|
|
10220
10390
|
clearRowExpandLoaded(row) {
|
|
10221
10391
|
const $xeTable = this;
|
|
@@ -10228,9 +10398,9 @@ const Methods = {
|
|
|
10228
10398
|
lazy
|
|
10229
10399
|
} = expandOpts;
|
|
10230
10400
|
const rowid = getRowid($xeTable, row);
|
|
10231
|
-
const
|
|
10232
|
-
if (lazy &&
|
|
10233
|
-
|
|
10401
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
10402
|
+
if (lazy && rowRest) {
|
|
10403
|
+
rowRest.expandLoaded = false;
|
|
10234
10404
|
const rowTempExpandLazyLoadedMaps = {
|
|
10235
10405
|
...rowExpandLazyLoadedMaps
|
|
10236
10406
|
};
|
|
@@ -10372,7 +10542,7 @@ const Methods = {
|
|
|
10372
10542
|
fullAllDataRowIdData
|
|
10373
10543
|
} = this;
|
|
10374
10544
|
const rowid = getRowid($xeTable, row);
|
|
10375
|
-
const
|
|
10545
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
10376
10546
|
rowExpandLazyLoadedMaps[rowid] = row;
|
|
10377
10547
|
loadMethod({
|
|
10378
10548
|
$table: $xeTable,
|
|
@@ -10383,10 +10553,10 @@ const Methods = {
|
|
|
10383
10553
|
const {
|
|
10384
10554
|
rowExpandedMaps
|
|
10385
10555
|
} = this;
|
|
10386
|
-
|
|
10556
|
+
rowRest.expandLoaded = true;
|
|
10387
10557
|
rowExpandedMaps[rowid] = row;
|
|
10388
10558
|
}).catch(() => {
|
|
10389
|
-
|
|
10559
|
+
rowRest.expandLoaded = false;
|
|
10390
10560
|
}).finally(() => {
|
|
10391
10561
|
const {
|
|
10392
10562
|
rowExpandLazyLoadedMaps
|
|
@@ -10450,8 +10620,8 @@ const Methods = {
|
|
|
10450
10620
|
validRows.forEach(row => {
|
|
10451
10621
|
const rowid = getRowid(this, row);
|
|
10452
10622
|
if (!rExpandedMaps[rowid]) {
|
|
10453
|
-
const
|
|
10454
|
-
const isLoad = lazy && !
|
|
10623
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
10624
|
+
const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
|
|
10455
10625
|
if (isLoad) {
|
|
10456
10626
|
lazyRests.push(this.handleAsyncRowExpand(row));
|
|
10457
10627
|
} else {
|
|
@@ -10571,8 +10741,8 @@ const Methods = {
|
|
|
10571
10741
|
const {
|
|
10572
10742
|
fullAllDataRowIdData
|
|
10573
10743
|
} = this;
|
|
10574
|
-
const
|
|
10575
|
-
return
|
|
10744
|
+
const rowRest = fullAllDataRowIdData[getRowid($xeTable, row)];
|
|
10745
|
+
return rowRest && !!rowRest.treeLoaded;
|
|
10576
10746
|
},
|
|
10577
10747
|
clearTreeExpandLoaded(row) {
|
|
10578
10748
|
const $xeTable = this;
|
|
@@ -10586,9 +10756,9 @@ const Methods = {
|
|
|
10586
10756
|
lazy
|
|
10587
10757
|
} = treeOpts;
|
|
10588
10758
|
const rowid = getRowid($xeTable, row);
|
|
10589
|
-
const
|
|
10590
|
-
if (lazy &&
|
|
10591
|
-
|
|
10759
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
10760
|
+
if (lazy && rowRest) {
|
|
10761
|
+
rowRest.treeLoaded = false;
|
|
10592
10762
|
if (treeExpandedMaps[rowid]) {
|
|
10593
10763
|
delete treeExpandedMaps[rowid];
|
|
10594
10764
|
}
|
|
@@ -10728,13 +10898,13 @@ const Methods = {
|
|
|
10728
10898
|
fullAllDataRowIdData
|
|
10729
10899
|
} = this;
|
|
10730
10900
|
const rowid = getRowid($xeTable, row);
|
|
10731
|
-
const
|
|
10901
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
10732
10902
|
treeExpandLazyLoadedMaps[rowid] = row;
|
|
10733
10903
|
Promise.resolve(loadMethod({
|
|
10734
10904
|
$table: $xeTable,
|
|
10735
10905
|
row
|
|
10736
10906
|
})).then(childRecords => {
|
|
10737
|
-
|
|
10907
|
+
rowRest.treeLoaded = true;
|
|
10738
10908
|
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
10739
10909
|
delete treeExpandLazyLoadedMaps[rowid];
|
|
10740
10910
|
}
|
|
@@ -10764,7 +10934,7 @@ const Methods = {
|
|
|
10764
10934
|
const {
|
|
10765
10935
|
treeExpandLazyLoadedMaps
|
|
10766
10936
|
} = this;
|
|
10767
|
-
|
|
10937
|
+
rowRest.treeLoaded = false;
|
|
10768
10938
|
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
10769
10939
|
delete treeExpandLazyLoadedMaps[rowid];
|
|
10770
10940
|
}
|
|
@@ -10855,8 +11025,8 @@ const Methods = {
|
|
|
10855
11025
|
validRows.forEach(row => {
|
|
10856
11026
|
const rowid = getRowid(this, row);
|
|
10857
11027
|
if (!treeTempExpandedMaps[rowid]) {
|
|
10858
|
-
const
|
|
10859
|
-
const isLoad = lazy && row[hasChildField] && !
|
|
11028
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
11029
|
+
const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
|
|
10860
11030
|
// 是否使用懒加载
|
|
10861
11031
|
if (isLoad) {
|
|
10862
11032
|
result.push(this.handleAsyncTreeExpandChilds(row));
|
|
@@ -11020,7 +11190,7 @@ const Methods = {
|
|
|
11020
11190
|
const {
|
|
11021
11191
|
toVisibleIndex,
|
|
11022
11192
|
visibleSize
|
|
11023
|
-
} =
|
|
11193
|
+
} = handleVirtualXVisible(this);
|
|
11024
11194
|
const offsetItem = {
|
|
11025
11195
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
|
|
11026
11196
|
endIndex: toVisibleIndex + visibleSize + offsetSize
|
|
@@ -11039,10 +11209,47 @@ const Methods = {
|
|
|
11039
11209
|
}
|
|
11040
11210
|
this.closeTooltip();
|
|
11041
11211
|
},
|
|
11212
|
+
handleScrollEvent(evnt, isRollY, isRollX, params) {
|
|
11213
|
+
const $xeTable = this;
|
|
11214
|
+
const props = $xeTable;
|
|
11215
|
+
const {
|
|
11216
|
+
highlightHoverRow
|
|
11217
|
+
} = props;
|
|
11218
|
+
const tableBody = $xeTable.$refs.tableBody;
|
|
11219
|
+
const bodyElem = tableBody ? tableBody.$el : null;
|
|
11220
|
+
const rowOpts = $xeTable.computeRowOpts;
|
|
11221
|
+
const validTip = $xeTable.$refs.validTip;
|
|
11222
|
+
const tooltip = $xeTable.$refs.tooltip;
|
|
11223
|
+
if (rowOpts.isHover || highlightHoverRow) {
|
|
11224
|
+
$xeTable.clearHoverRow();
|
|
11225
|
+
}
|
|
11226
|
+
if (validTip && validTip.visible) {
|
|
11227
|
+
validTip.close();
|
|
11228
|
+
}
|
|
11229
|
+
if (tooltip && tooltip.visible) {
|
|
11230
|
+
tooltip.close();
|
|
11231
|
+
}
|
|
11232
|
+
if (isRollX) {
|
|
11233
|
+
$xeTable.checkScrolling();
|
|
11234
|
+
}
|
|
11235
|
+
const bodyHeight = bodyElem ? bodyElem.clientHeight : 0;
|
|
11236
|
+
const bodyWidth = bodyElem ? bodyElem.clientWidth : 0;
|
|
11237
|
+
const scrollHeight = bodyElem ? bodyElem.scrollHeight : 0;
|
|
11238
|
+
const scrollWidth = bodyElem ? bodyElem.scrollWidth : 0;
|
|
11239
|
+
$xeTable.dispatchEvent('scroll', {
|
|
11240
|
+
bodyHeight,
|
|
11241
|
+
bodyWidth,
|
|
11242
|
+
scrollHeight,
|
|
11243
|
+
scrollWidth,
|
|
11244
|
+
isX: isRollX,
|
|
11245
|
+
isY: isRollY,
|
|
11246
|
+
...params
|
|
11247
|
+
}, evnt);
|
|
11248
|
+
},
|
|
11042
11249
|
/**
|
|
11043
11250
|
* 纵向 Y 可视渲染事件处理
|
|
11044
11251
|
*/
|
|
11045
|
-
triggerScrollYEvent(
|
|
11252
|
+
triggerScrollYEvent() {
|
|
11046
11253
|
const {
|
|
11047
11254
|
scrollYStore
|
|
11048
11255
|
} = this;
|
|
@@ -11053,21 +11260,84 @@ const Methods = {
|
|
|
11053
11260
|
} = scrollYStore;
|
|
11054
11261
|
// webkit 浏览器使用最佳的渲染方式,且最高渲染量不能大于 40 条
|
|
11055
11262
|
if (isWebkit && adaptive && offsetSize * 2 + visibleSize <= 40) {
|
|
11056
|
-
this.loadScrollYData(
|
|
11263
|
+
this.loadScrollYData();
|
|
11057
11264
|
} else {
|
|
11058
|
-
this.
|
|
11265
|
+
this.debounceScrollYData();
|
|
11059
11266
|
}
|
|
11267
|
+
this.debounceScrollYCalculate();
|
|
11060
11268
|
},
|
|
11061
|
-
|
|
11062
|
-
this.loadScrollYData(
|
|
11269
|
+
debounceScrollYData: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().debounce(function () {
|
|
11270
|
+
this.loadScrollYData();
|
|
11063
11271
|
}, debounceScrollYDuration, {
|
|
11064
11272
|
leading: false,
|
|
11065
11273
|
trailing: true
|
|
11066
11274
|
}),
|
|
11275
|
+
scrollXEvent(evnt) {
|
|
11276
|
+
const $xeTable = this;
|
|
11277
|
+
const wrapperEl = evnt.currentTarget;
|
|
11278
|
+
const tableHeader = $xeTable.$refs.tableHeader;
|
|
11279
|
+
const tableBody = $xeTable.$refs.tableBody;
|
|
11280
|
+
const tableFooter = $xeTable.$refs.tableFooter;
|
|
11281
|
+
const bodyElem = tableBody.$el;
|
|
11282
|
+
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
11283
|
+
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
11284
|
+
const {
|
|
11285
|
+
scrollTop,
|
|
11286
|
+
scrollLeft
|
|
11287
|
+
} = wrapperEl;
|
|
11288
|
+
const isRollX = true;
|
|
11289
|
+
const isRollY = false;
|
|
11290
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
11291
|
+
$xeTable.lastScrollTime = Date.now();
|
|
11292
|
+
setScrollLeft(bodyElem, scrollLeft);
|
|
11293
|
+
setScrollLeft(headerElem, scrollLeft);
|
|
11294
|
+
setScrollLeft(footerElem, scrollLeft);
|
|
11295
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
11296
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
11297
|
+
type: 'table',
|
|
11298
|
+
fixed: '',
|
|
11299
|
+
scrollTop,
|
|
11300
|
+
scrollLeft
|
|
11301
|
+
});
|
|
11302
|
+
},
|
|
11303
|
+
debounceScrollYCalculate: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().debounce(function () {
|
|
11304
|
+
this.updateScrollYSpace();
|
|
11305
|
+
}, 1000, {
|
|
11306
|
+
leading: false,
|
|
11307
|
+
trailing: true
|
|
11308
|
+
}),
|
|
11309
|
+
scrollYEvent(evnt) {
|
|
11310
|
+
const $xeTable = this;
|
|
11311
|
+
const wrapperEl = evnt.currentTarget;
|
|
11312
|
+
const tableBody = $xeTable.$refs.tableBody;
|
|
11313
|
+
const leftBody = $xeTable.$refs.leftBody;
|
|
11314
|
+
const rightBody = $xeTable.$refs.rightBody;
|
|
11315
|
+
const bodyElem = tableBody.$el;
|
|
11316
|
+
const leftElem = leftBody ? leftBody.$el : null;
|
|
11317
|
+
const rightElem = rightBody ? rightBody.$el : null;
|
|
11318
|
+
const {
|
|
11319
|
+
scrollTop,
|
|
11320
|
+
scrollLeft
|
|
11321
|
+
} = wrapperEl;
|
|
11322
|
+
const isRollX = false;
|
|
11323
|
+
const isRollY = true;
|
|
11324
|
+
$xeTable.lastScrollTop = scrollTop;
|
|
11325
|
+
$xeTable.lastScrollTime = Date.now();
|
|
11326
|
+
setScrollTop(bodyElem, scrollTop);
|
|
11327
|
+
setScrollTop(leftElem, scrollTop);
|
|
11328
|
+
setScrollTop(rightElem, scrollTop);
|
|
11329
|
+
$xeTable.triggerScrollYEvent(evnt);
|
|
11330
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
11331
|
+
type: 'table',
|
|
11332
|
+
fixed: '',
|
|
11333
|
+
scrollTop,
|
|
11334
|
+
scrollLeft
|
|
11335
|
+
});
|
|
11336
|
+
},
|
|
11067
11337
|
/**
|
|
11068
11338
|
* 纵向 Y 可视渲染处理
|
|
11069
11339
|
*/
|
|
11070
|
-
loadScrollYData(
|
|
11340
|
+
loadScrollYData() {
|
|
11071
11341
|
const {
|
|
11072
11342
|
mergeList,
|
|
11073
11343
|
scrollYStore
|
|
@@ -11075,13 +11345,12 @@ const Methods = {
|
|
|
11075
11345
|
const {
|
|
11076
11346
|
startIndex,
|
|
11077
11347
|
endIndex,
|
|
11078
|
-
|
|
11079
|
-
offsetSize,
|
|
11080
|
-
rowHeight
|
|
11348
|
+
offsetSize
|
|
11081
11349
|
} = scrollYStore;
|
|
11082
|
-
const
|
|
11083
|
-
|
|
11084
|
-
|
|
11350
|
+
const {
|
|
11351
|
+
toVisibleIndex,
|
|
11352
|
+
visibleSize
|
|
11353
|
+
} = handleVirtualYVisible(this);
|
|
11085
11354
|
const offsetItem = {
|
|
11086
11355
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
|
|
11087
11356
|
endIndex: toVisibleIndex + visibleSize + offsetSize
|
|
@@ -11114,7 +11383,7 @@ const Methods = {
|
|
|
11114
11383
|
if (scrollXLoad) {
|
|
11115
11384
|
const {
|
|
11116
11385
|
visibleSize: visibleXSize
|
|
11117
|
-
} =
|
|
11386
|
+
} = handleVirtualXVisible(this);
|
|
11118
11387
|
const offsetXSize = sXOpts.oSize ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(sXOpts.oSize) : browse.msie ? 10 : browse.edge ? 5 : 0;
|
|
11119
11388
|
scrollXStore.offsetSize = offsetXSize;
|
|
11120
11389
|
scrollXStore.visibleSize = visibleXSize;
|
|
@@ -11123,12 +11392,14 @@ const Methods = {
|
|
|
11123
11392
|
} else {
|
|
11124
11393
|
this.updateScrollXSpace();
|
|
11125
11394
|
}
|
|
11395
|
+
calcCellHeight(this);
|
|
11126
11396
|
// 计算 Y 逻辑
|
|
11397
|
+
const rowHeight = computeRowHeight(this);
|
|
11398
|
+
scrollYStore.rowHeight = rowHeight;
|
|
11399
|
+
this.rowHeight = rowHeight;
|
|
11127
11400
|
const {
|
|
11128
|
-
rowHeight,
|
|
11129
11401
|
visibleSize: visibleYSize
|
|
11130
|
-
} =
|
|
11131
|
-
scrollYStore.rowHeight = rowHeight;
|
|
11402
|
+
} = handleVirtualYVisible(this);
|
|
11132
11403
|
if (scrollYLoad) {
|
|
11133
11404
|
const offsetYSize = sYOpts.oSize ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(sYOpts.oSize) : browse.msie ? 20 : browse.edge ? 10 : 0;
|
|
11134
11405
|
scrollYStore.offsetSize = offsetYSize;
|
|
@@ -11138,7 +11409,6 @@ const Methods = {
|
|
|
11138
11409
|
} else {
|
|
11139
11410
|
this.updateScrollYSpace();
|
|
11140
11411
|
}
|
|
11141
|
-
this.rowHeight = rowHeight;
|
|
11142
11412
|
this.$nextTick(this.updateStyle);
|
|
11143
11413
|
});
|
|
11144
11414
|
},
|
|
@@ -11146,9 +11416,18 @@ const Methods = {
|
|
|
11146
11416
|
const {
|
|
11147
11417
|
scrollXLoad,
|
|
11148
11418
|
visibleColumn,
|
|
11149
|
-
scrollXStore
|
|
11419
|
+
scrollXStore,
|
|
11420
|
+
fullColumnIdData
|
|
11150
11421
|
} = this;
|
|
11151
|
-
|
|
11422
|
+
const tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
|
|
11423
|
+
tableColumn.forEach((column, $index) => {
|
|
11424
|
+
const colid = column.id;
|
|
11425
|
+
const colRest = fullColumnIdData[colid];
|
|
11426
|
+
if (colRest) {
|
|
11427
|
+
colRest.$index = $index;
|
|
11428
|
+
}
|
|
11429
|
+
});
|
|
11430
|
+
this.tableColumn = tableColumn;
|
|
11152
11431
|
},
|
|
11153
11432
|
updateScrollXData() {
|
|
11154
11433
|
// this.tableColumn = []
|
|
@@ -11159,6 +11438,7 @@ const Methods = {
|
|
|
11159
11438
|
},
|
|
11160
11439
|
// 更新横向 X 可视渲染上下剩余空间大小
|
|
11161
11440
|
updateScrollXSpace() {
|
|
11441
|
+
const $xeTable = this;
|
|
11162
11442
|
const {
|
|
11163
11443
|
$refs,
|
|
11164
11444
|
isGroup,
|
|
@@ -11168,7 +11448,7 @@ const Methods = {
|
|
|
11168
11448
|
scrollXLoad,
|
|
11169
11449
|
tableWidth,
|
|
11170
11450
|
scrollbarWidth
|
|
11171
|
-
} =
|
|
11451
|
+
} = $xeTable;
|
|
11172
11452
|
const {
|
|
11173
11453
|
tableHeader,
|
|
11174
11454
|
tableBody,
|
|
@@ -11203,34 +11483,64 @@ const Methods = {
|
|
|
11203
11483
|
}
|
|
11204
11484
|
});
|
|
11205
11485
|
});
|
|
11486
|
+
const scrollXSpaceEl = $xeTable.$refs.refScrollXSpaceElem;
|
|
11487
|
+
if (scrollXSpaceEl) {
|
|
11488
|
+
scrollXSpaceEl.style.width = `${tableWidth + scrollbarWidth}px`;
|
|
11489
|
+
}
|
|
11206
11490
|
this.$nextTick(this.updateStyle);
|
|
11207
11491
|
}
|
|
11208
11492
|
},
|
|
11209
11493
|
updateScrollYData() {
|
|
11494
|
+
const $xeTable = this;
|
|
11210
11495
|
// this.tableData = []
|
|
11211
11496
|
this.$nextTick(() => {
|
|
11212
11497
|
this.handleTableData();
|
|
11498
|
+
calcCellHeight($xeTable);
|
|
11213
11499
|
this.updateScrollYSpace();
|
|
11214
11500
|
});
|
|
11215
11501
|
},
|
|
11216
11502
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
11217
11503
|
updateScrollYSpace() {
|
|
11504
|
+
const $xeTable = this;
|
|
11218
11505
|
const {
|
|
11506
|
+
showOverflow,
|
|
11219
11507
|
elemStore,
|
|
11220
11508
|
scrollYStore,
|
|
11221
11509
|
scrollYLoad,
|
|
11222
|
-
afterFullData
|
|
11510
|
+
afterFullData,
|
|
11511
|
+
fullAllDataRowIdData
|
|
11223
11512
|
} = this;
|
|
11224
11513
|
const {
|
|
11225
11514
|
startIndex,
|
|
11226
11515
|
rowHeight
|
|
11227
11516
|
} = scrollYStore;
|
|
11228
|
-
|
|
11229
|
-
|
|
11517
|
+
let bodyHeight = 0;
|
|
11518
|
+
let topSpaceHeight = 0;
|
|
11230
11519
|
const containerList = ['main', 'left', 'right'];
|
|
11231
11520
|
let marginTop = '';
|
|
11232
11521
|
let ySpaceHeight = '';
|
|
11233
11522
|
if (scrollYLoad) {
|
|
11523
|
+
if (showOverflow) {
|
|
11524
|
+
bodyHeight = afterFullData.length * rowHeight;
|
|
11525
|
+
topSpaceHeight = Math.max(0, startIndex * rowHeight);
|
|
11526
|
+
} else {
|
|
11527
|
+
for (let i = 0; i < afterFullData.length; i++) {
|
|
11528
|
+
const row = afterFullData[i];
|
|
11529
|
+
const rowid = getRowid($xeTable, row);
|
|
11530
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
11531
|
+
if (rowRest) {
|
|
11532
|
+
bodyHeight += rowRest.height || rowHeight;
|
|
11533
|
+
}
|
|
11534
|
+
}
|
|
11535
|
+
for (let i = 0; i < startIndex; i++) {
|
|
11536
|
+
const row = afterFullData[i];
|
|
11537
|
+
const rowid = getRowid($xeTable, row);
|
|
11538
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
11539
|
+
if (rowRest) {
|
|
11540
|
+
topSpaceHeight += rowRest.height || rowHeight;
|
|
11541
|
+
}
|
|
11542
|
+
}
|
|
11543
|
+
}
|
|
11234
11544
|
marginTop = `${topSpaceHeight}px`;
|
|
11235
11545
|
ySpaceHeight = `${bodyHeight}px`;
|
|
11236
11546
|
}
|
|
@@ -11247,6 +11557,10 @@ const Methods = {
|
|
|
11247
11557
|
}
|
|
11248
11558
|
});
|
|
11249
11559
|
});
|
|
11560
|
+
const scrollYSpaceEl = $xeTable.$refs.refScrollYSpaceElem;
|
|
11561
|
+
if (scrollYSpaceEl) {
|
|
11562
|
+
scrollYSpaceEl.style.height = ySpaceHeight;
|
|
11563
|
+
}
|
|
11250
11564
|
this.$nextTick(this.updateStyle);
|
|
11251
11565
|
},
|
|
11252
11566
|
/**
|
|
@@ -11339,36 +11653,52 @@ const Methods = {
|
|
|
11339
11653
|
* 手动清除滚动相关信息,还原到初始状态
|
|
11340
11654
|
*/
|
|
11341
11655
|
clearScroll() {
|
|
11656
|
+
const $xeTable = this;
|
|
11342
11657
|
const {
|
|
11343
11658
|
$refs,
|
|
11344
11659
|
scrollXStore,
|
|
11345
11660
|
scrollYStore
|
|
11346
|
-
} =
|
|
11661
|
+
} = $xeTable;
|
|
11347
11662
|
const {
|
|
11348
11663
|
tableBody,
|
|
11664
|
+
tableHeader,
|
|
11665
|
+
leftBody,
|
|
11349
11666
|
rightBody,
|
|
11350
11667
|
tableFooter
|
|
11351
11668
|
} = $refs;
|
|
11352
11669
|
const tableBodyElem = tableBody ? tableBody.$el : null;
|
|
11670
|
+
const leftBodyElem = leftBody ? leftBody.$el : null;
|
|
11353
11671
|
const rightBodyElem = rightBody ? rightBody.$el : null;
|
|
11672
|
+
const tableHeaderElem = tableHeader ? tableHeader.$el : null;
|
|
11354
11673
|
const tableFooterElem = tableFooter ? tableFooter.$el : null;
|
|
11355
|
-
|
|
11356
|
-
|
|
11357
|
-
|
|
11358
|
-
}
|
|
11359
|
-
|
|
11360
|
-
|
|
11674
|
+
const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
|
|
11675
|
+
if (xHandleEl) {
|
|
11676
|
+
setScrollLeft(xHandleEl, 0);
|
|
11677
|
+
} else {
|
|
11678
|
+
setScrollLeft(tableBodyElem, 0);
|
|
11679
|
+
setScrollLeft(tableHeaderElem, 0);
|
|
11680
|
+
setScrollLeft(tableFooterElem, 0);
|
|
11361
11681
|
}
|
|
11362
|
-
|
|
11363
|
-
|
|
11364
|
-
|
|
11365
|
-
|
|
11682
|
+
const yHandleEl = $xeTable.$refs.refScrollYHandleElem;
|
|
11683
|
+
if (yHandleEl) {
|
|
11684
|
+
setScrollTop(yHandleEl, 0);
|
|
11685
|
+
} else {
|
|
11686
|
+
setScrollTop(tableBodyElem, 0);
|
|
11687
|
+
setScrollTop(leftBodyElem, 0);
|
|
11688
|
+
setScrollTop(rightBodyElem, 0);
|
|
11366
11689
|
}
|
|
11367
11690
|
scrollXStore.startIndex = 0;
|
|
11368
11691
|
scrollXStore.endIndex = scrollXStore.visibleSize;
|
|
11369
11692
|
scrollYStore.startIndex = 0;
|
|
11370
11693
|
scrollYStore.endIndex = scrollYStore.visibleSize;
|
|
11371
|
-
return
|
|
11694
|
+
return $xeTable.$nextTick().then(() => {
|
|
11695
|
+
setScrollLeft(tableBodyElem, 0);
|
|
11696
|
+
setScrollLeft(tableHeaderElem, 0);
|
|
11697
|
+
setScrollLeft(tableFooterElem, 0);
|
|
11698
|
+
setScrollTop(tableBodyElem, 0);
|
|
11699
|
+
setScrollTop(leftBodyElem, 0);
|
|
11700
|
+
setScrollTop(rightBodyElem, 0);
|
|
11701
|
+
});
|
|
11372
11702
|
},
|
|
11373
11703
|
/**
|
|
11374
11704
|
* 更新表尾合计
|
|
@@ -11541,6 +11871,14 @@ const Methods = {
|
|
|
11541
11871
|
}
|
|
11542
11872
|
return this.$nextTick();
|
|
11543
11873
|
},
|
|
11874
|
+
dispatchEvent(type, params, evnt) {
|
|
11875
|
+
const $xeTable = this;
|
|
11876
|
+
$xeTable.$emit(type, createEvent(evnt, {
|
|
11877
|
+
$table: $xeTable,
|
|
11878
|
+
$grid: $xeTable.$xegrid
|
|
11879
|
+
}, params));
|
|
11880
|
+
},
|
|
11881
|
+
// 已废弃,使用 dispatchEvent
|
|
11544
11882
|
emitEvent(type, params, evnt) {
|
|
11545
11883
|
this.$emit(type, Object.assign({
|
|
11546
11884
|
$table: this,
|
|
@@ -11686,13 +12024,13 @@ function renderLine(h, _vm, $xetable, params) {
|
|
|
11686
12024
|
function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
|
|
11687
12025
|
const {
|
|
11688
12026
|
$listeners: tableListeners,
|
|
12027
|
+
fullAllDataRowIdData,
|
|
11689
12028
|
afterFullData,
|
|
11690
12029
|
tableData,
|
|
11691
12030
|
height,
|
|
11692
12031
|
columnKey,
|
|
11693
12032
|
overflowX,
|
|
11694
12033
|
sYOpts,
|
|
11695
|
-
scrollXLoad,
|
|
11696
12034
|
scrollYLoad,
|
|
11697
12035
|
highlightCurrentRow,
|
|
11698
12036
|
showOverflow: allColumnOverflow,
|
|
@@ -11748,12 +12086,13 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
11748
12086
|
const isEdit = isEnableConf(editRender);
|
|
11749
12087
|
let fixedHiddenColumn = fixedType ? column.fixed !== fixedType : column.fixed && overflowX;
|
|
11750
12088
|
const cellOverflow = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(showOverflow) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNull(showOverflow) ? allColumnOverflow : showOverflow;
|
|
11751
|
-
|
|
12089
|
+
const showEllipsis = cellOverflow === 'ellipsis';
|
|
11752
12090
|
const showTitle = cellOverflow === 'title';
|
|
11753
12091
|
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
|
|
11754
|
-
|
|
12092
|
+
const hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
11755
12093
|
let isDirty;
|
|
11756
12094
|
const tdOns = {};
|
|
12095
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
11757
12096
|
const cellAlign = align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
11758
12097
|
const errorValidItem = validErrorMaps[`${rowid}:${column.id}`];
|
|
11759
12098
|
const showValidTip = editRules && validOpts.showMessage && (validOpts.message === 'default' ? height || tableData.length > 1 : validOpts.message === 'inline');
|
|
@@ -11785,10 +12124,6 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
11785
12124
|
data: tableData,
|
|
11786
12125
|
items
|
|
11787
12126
|
};
|
|
11788
|
-
// 虚拟滚动不支持动态高度
|
|
11789
|
-
if ((scrollXLoad || scrollYLoad) && !hasEllipsis) {
|
|
11790
|
-
showEllipsis = hasEllipsis = true;
|
|
11791
|
-
}
|
|
11792
12127
|
// hover 进入事件
|
|
11793
12128
|
if (showTitle || showTooltip || showAllTip || bindMouseenter || tooltipConfig) {
|
|
11794
12129
|
tdOns.mouseenter = evnt => {
|
|
@@ -11948,7 +12283,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
11948
12283
|
key: columnKey || columnOpts.useKey ? column.id : $columnIndex,
|
|
11949
12284
|
attrs,
|
|
11950
12285
|
style: Object.assign({
|
|
11951
|
-
height: hasEllipsis && (scrollYRHeight || rowHeight) ? `${scrollYRHeight || rowHeight}px` : ''
|
|
12286
|
+
height: hasEllipsis && (scrollYRHeight || rowHeight) ? `${scrollYRHeight || rowHeight}px` : scrollYLoad ? `${rest.height || scrollYRHeight || rowHeight}px` : ''
|
|
11952
12287
|
}, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(compCellStyle) ? compCellStyle(params) : compCellStyle, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(cellStyle) ? cellStyle(params) : cellStyle),
|
|
11953
12288
|
on: tdOns
|
|
11954
12289
|
}, tdVNs);
|
|
@@ -12112,45 +12447,6 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
|
|
|
12112
12447
|
});
|
|
12113
12448
|
return rows;
|
|
12114
12449
|
}
|
|
12115
|
-
/**
|
|
12116
|
-
* 同步滚动条
|
|
12117
|
-
*/
|
|
12118
|
-
let scrollProcessTimeout;
|
|
12119
|
-
function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
|
|
12120
|
-
if (elem1 || elem2) {
|
|
12121
|
-
if (elem1) {
|
|
12122
|
-
removeScrollListener(elem1);
|
|
12123
|
-
elem1.scrollTop = scrollTop;
|
|
12124
|
-
}
|
|
12125
|
-
if (elem2) {
|
|
12126
|
-
removeScrollListener(elem2);
|
|
12127
|
-
elem2.scrollTop = scrollTop;
|
|
12128
|
-
}
|
|
12129
|
-
clearTimeout(scrollProcessTimeout);
|
|
12130
|
-
scrollProcessTimeout = setTimeout(() => {
|
|
12131
|
-
// const { tableBody, leftBody, rightBody } = _vm.$refs
|
|
12132
|
-
// const bodyElem = tableBody.$el
|
|
12133
|
-
// const leftElem = leftBody ? leftBody.$el : null
|
|
12134
|
-
// const rightElem = rightBody ? rightBody.$el : null
|
|
12135
|
-
restoreScrollListener(elem1);
|
|
12136
|
-
restoreScrollListener(elem2);
|
|
12137
|
-
// 检查滚动条是的同步
|
|
12138
|
-
// let targetTop = bodyElem.scrollTop
|
|
12139
|
-
// if (fixedType === 'left') {
|
|
12140
|
-
// if (leftElem) {
|
|
12141
|
-
// targetTop = leftElem.scrollTop
|
|
12142
|
-
// }
|
|
12143
|
-
// } else if (fixedType === 'right') {
|
|
12144
|
-
// if (rightElem) {
|
|
12145
|
-
// targetTop = rightElem.scrollTop
|
|
12146
|
-
// }
|
|
12147
|
-
// }
|
|
12148
|
-
// setScrollTop(bodyElem, targetTop)
|
|
12149
|
-
// setScrollTop(leftElem, targetTop)
|
|
12150
|
-
// setScrollTop(rightElem, targetTop)
|
|
12151
|
-
}, 300);
|
|
12152
|
-
}
|
|
12153
|
-
}
|
|
12154
12450
|
/* harmony default export */ var body = ({
|
|
12155
12451
|
name: 'VxeTableBody',
|
|
12156
12452
|
props: {
|
|
@@ -12186,17 +12482,9 @@ function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
|
|
|
12186
12482
|
elemStore[`${prefix}xSpace`] = $refs.xSpace;
|
|
12187
12483
|
elemStore[`${prefix}ySpace`] = $refs.ySpace;
|
|
12188
12484
|
elemStore[`${prefix}emptyBlock`] = $refs.emptyBlock;
|
|
12189
|
-
if (this.$el) {
|
|
12190
|
-
this.$el.onscroll = this.scrollEvent;
|
|
12191
|
-
this.$el._onscroll = this.scrollEvent;
|
|
12192
|
-
}
|
|
12193
12485
|
},
|
|
12194
12486
|
beforeDestroy() {
|
|
12195
12487
|
clearTimeout(this.wheelTime);
|
|
12196
|
-
if (this.$el) {
|
|
12197
|
-
this.$el._onscroll = null;
|
|
12198
|
-
this.$el.onscroll = null;
|
|
12199
|
-
}
|
|
12200
12488
|
},
|
|
12201
12489
|
destroyed() {
|
|
12202
12490
|
const {
|
|
@@ -12284,9 +12572,11 @@ function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
|
|
|
12284
12572
|
attrs: {
|
|
12285
12573
|
xid: tId
|
|
12286
12574
|
},
|
|
12287
|
-
on:
|
|
12575
|
+
on: Object.assign({
|
|
12576
|
+
scroll: this.scrollEvent
|
|
12577
|
+
}, scrollYLoad && sYOpts.mode === 'wheel' ? {
|
|
12288
12578
|
wheel: this.wheelEvent
|
|
12289
|
-
} :
|
|
12579
|
+
} : null)
|
|
12290
12580
|
}, [fixedType ? _e() : h('div', {
|
|
12291
12581
|
class: 'vxe-body--x-space',
|
|
12292
12582
|
ref: 'xSpace'
|
|
@@ -12362,89 +12652,68 @@ function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
|
|
|
12362
12652
|
scrollEvent(evnt) {
|
|
12363
12653
|
const {
|
|
12364
12654
|
$el: scrollBodyElem,
|
|
12365
|
-
$parent: $
|
|
12655
|
+
$parent: $xeTable,
|
|
12366
12656
|
fixedType
|
|
12367
12657
|
} = this;
|
|
12368
12658
|
const {
|
|
12369
12659
|
$refs,
|
|
12370
|
-
elemStore,
|
|
12371
|
-
highlightHoverRow,
|
|
12372
|
-
scrollXLoad,
|
|
12373
|
-
scrollYLoad,
|
|
12374
12660
|
lastScrollTop,
|
|
12375
|
-
lastScrollLeft
|
|
12376
|
-
|
|
12377
|
-
} = $xetable;
|
|
12661
|
+
lastScrollLeft
|
|
12662
|
+
} = $xeTable;
|
|
12378
12663
|
const {
|
|
12379
12664
|
tableHeader,
|
|
12380
12665
|
tableBody,
|
|
12381
12666
|
leftBody,
|
|
12382
12667
|
rightBody,
|
|
12383
|
-
tableFooter
|
|
12384
|
-
validTip
|
|
12668
|
+
tableFooter
|
|
12385
12669
|
} = $refs;
|
|
12386
12670
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
12387
12671
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
12388
12672
|
const bodyElem = tableBody.$el;
|
|
12389
12673
|
const leftElem = leftBody ? leftBody.$el : null;
|
|
12390
12674
|
const rightElem = rightBody ? rightBody.$el : null;
|
|
12391
|
-
const
|
|
12392
|
-
const bodyXElem = elemStore['main-body-xSpace'];
|
|
12393
|
-
const bodyHeight = scrollYLoad && bodyYElem ? bodyYElem.clientHeight : bodyElem.clientHeight;
|
|
12394
|
-
const bodyWidth = scrollXLoad && bodyXElem ? bodyXElem.clientWidth : bodyElem.clientWidth;
|
|
12395
|
-
let scrollTop = scrollBodyElem.scrollTop;
|
|
12675
|
+
const scrollTop = scrollBodyElem.scrollTop;
|
|
12396
12676
|
const scrollLeft = bodyElem.scrollLeft;
|
|
12397
12677
|
const isRollX = scrollLeft !== lastScrollLeft;
|
|
12398
12678
|
const isRollY = scrollTop !== lastScrollTop;
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
|
|
12402
|
-
|
|
12403
|
-
|
|
12404
|
-
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
}
|
|
12416
|
-
if (footerElem) {
|
|
12417
|
-
footerElem.scrollLeft = bodyElem.scrollLeft;
|
|
12418
|
-
}
|
|
12419
|
-
}
|
|
12420
|
-
if (leftElem || rightElem) {
|
|
12421
|
-
$xetable.checkScrolling();
|
|
12422
|
-
if (isRollY) {
|
|
12423
|
-
syncBodyScroll($xetable, fixedType, scrollTop, leftElem, rightElem);
|
|
12424
|
-
}
|
|
12679
|
+
const xHandleEl = $refs.refScrollXHandleElem;
|
|
12680
|
+
const yHandleEl = $refs.refScrollYHandleElem;
|
|
12681
|
+
if (yHandleEl) {
|
|
12682
|
+
yHandleEl.scrollTop = scrollTop;
|
|
12683
|
+
} else if (isRollY) {
|
|
12684
|
+
$xeTable.lastScrollTop = scrollTop;
|
|
12685
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
12686
|
+
if (leftElem && fixedType === 'left') {
|
|
12687
|
+
setScrollTop(bodyElem, scrollTop);
|
|
12688
|
+
setScrollTop(rightElem, scrollTop);
|
|
12689
|
+
} else if (rightElem && fixedType === 'right') {
|
|
12690
|
+
setScrollTop(bodyElem, scrollTop);
|
|
12691
|
+
setScrollTop(leftElem, scrollTop);
|
|
12692
|
+
} else {
|
|
12693
|
+
setScrollTop(leftElem, scrollTop);
|
|
12694
|
+
setScrollTop(rightElem, scrollTop);
|
|
12425
12695
|
}
|
|
12696
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
12697
|
+
type: renderType,
|
|
12698
|
+
fixed: fixedType,
|
|
12699
|
+
scrollTop,
|
|
12700
|
+
scrollLeft
|
|
12701
|
+
});
|
|
12426
12702
|
}
|
|
12427
|
-
if (
|
|
12428
|
-
|
|
12429
|
-
}
|
|
12430
|
-
|
|
12431
|
-
$
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12703
|
+
if (xHandleEl) {
|
|
12704
|
+
xHandleEl.scrollLeft = scrollLeft;
|
|
12705
|
+
} else if (isRollX) {
|
|
12706
|
+
$xeTable.lastScrollTop = scrollTop;
|
|
12707
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
12708
|
+
setScrollLeft(headerElem, scrollLeft);
|
|
12709
|
+
setScrollLeft(footerElem, scrollLeft);
|
|
12710
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
12711
|
+
type: renderType,
|
|
12712
|
+
fixed: fixedType,
|
|
12713
|
+
scrollTop,
|
|
12714
|
+
scrollLeft
|
|
12715
|
+
});
|
|
12435
12716
|
}
|
|
12436
|
-
$xetable.emitEvent('scroll', {
|
|
12437
|
-
type: renderType,
|
|
12438
|
-
fixed: fixedType,
|
|
12439
|
-
scrollTop,
|
|
12440
|
-
scrollLeft,
|
|
12441
|
-
scrollHeight: bodyElem.scrollHeight,
|
|
12442
|
-
scrollWidth: bodyElem.scrollWidth,
|
|
12443
|
-
bodyHeight,
|
|
12444
|
-
bodyWidth,
|
|
12445
|
-
isX: isRollX,
|
|
12446
|
-
isY: isRollY
|
|
12447
|
-
}, evnt);
|
|
12448
12717
|
},
|
|
12449
12718
|
handleWheel(evnt, isTopWheel, deltaTop, isRollX, isRollY) {
|
|
12450
12719
|
const {
|
|
@@ -12956,7 +13225,7 @@ const cellType = 'header';
|
|
|
12956
13225
|
|
|
12957
13226
|
|
|
12958
13227
|
|
|
12959
|
-
const
|
|
13228
|
+
const footer_renderType = 'footer';
|
|
12960
13229
|
const {
|
|
12961
13230
|
renderer: footer_renderer
|
|
12962
13231
|
} = core_.VxeUI;
|
|
@@ -13120,7 +13389,7 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
|
|
|
13120
13389
|
_rowIndex,
|
|
13121
13390
|
$rowIndex,
|
|
13122
13391
|
fixed: fixedType,
|
|
13123
|
-
type:
|
|
13392
|
+
type: footer_renderType
|
|
13124
13393
|
};
|
|
13125
13394
|
return h('tr', {
|
|
13126
13395
|
class: ['vxe-footer--row', footerRowClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
|
|
@@ -13166,7 +13435,7 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
|
|
|
13166
13435
|
itemIndex,
|
|
13167
13436
|
items: list,
|
|
13168
13437
|
fixed: fixedType,
|
|
13169
|
-
type:
|
|
13438
|
+
type: footer_renderType,
|
|
13170
13439
|
data: footerTableData
|
|
13171
13440
|
};
|
|
13172
13441
|
// 虚拟滚动不支持动态高度
|
|
@@ -13270,48 +13539,39 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
|
|
|
13270
13539
|
*/
|
|
13271
13540
|
scrollEvent(evnt) {
|
|
13272
13541
|
const {
|
|
13273
|
-
$parent: $
|
|
13542
|
+
$parent: $xeTable,
|
|
13274
13543
|
fixedType
|
|
13275
13544
|
} = this;
|
|
13276
13545
|
const {
|
|
13277
|
-
$refs
|
|
13278
|
-
|
|
13279
|
-
triggerScrollXEvent,
|
|
13280
|
-
lastScrollLeft
|
|
13281
|
-
} = $xetable;
|
|
13546
|
+
$refs
|
|
13547
|
+
} = $xeTable;
|
|
13282
13548
|
const {
|
|
13283
13549
|
tableHeader,
|
|
13284
13550
|
tableBody,
|
|
13285
|
-
tableFooter
|
|
13286
|
-
validTip
|
|
13551
|
+
tableFooter
|
|
13287
13552
|
} = $refs;
|
|
13288
13553
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
13289
13554
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
13290
13555
|
const bodyElem = tableBody.$el;
|
|
13291
13556
|
const scrollLeft = footerElem ? footerElem.scrollLeft : 0;
|
|
13292
|
-
const
|
|
13293
|
-
|
|
13294
|
-
|
|
13295
|
-
|
|
13296
|
-
|
|
13297
|
-
|
|
13298
|
-
|
|
13299
|
-
|
|
13300
|
-
|
|
13301
|
-
|
|
13302
|
-
|
|
13303
|
-
|
|
13304
|
-
|
|
13305
|
-
|
|
13557
|
+
const xHandleEl = $refs.refScrollXHandleElem;
|
|
13558
|
+
if (xHandleEl) {
|
|
13559
|
+
xHandleEl.scrollLeft = scrollLeft;
|
|
13560
|
+
} else {
|
|
13561
|
+
const isRollX = true;
|
|
13562
|
+
const isRollY = false;
|
|
13563
|
+
const scrollTop = bodyElem.scrollTop;
|
|
13564
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
13565
|
+
$xeTable.lastScrollTime = Date.now();
|
|
13566
|
+
setScrollLeft(headerElem, scrollLeft);
|
|
13567
|
+
setScrollLeft(bodyElem, scrollLeft);
|
|
13568
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
13569
|
+
type: footer_renderType,
|
|
13570
|
+
fixed: fixedType,
|
|
13571
|
+
scrollTop,
|
|
13572
|
+
scrollLeft
|
|
13573
|
+
});
|
|
13306
13574
|
}
|
|
13307
|
-
$xetable.emitEvent('scroll', {
|
|
13308
|
-
type: footer_cellType,
|
|
13309
|
-
fixed: fixedType,
|
|
13310
|
-
scrollTop: bodyElem.scrollTop,
|
|
13311
|
-
scrollLeft,
|
|
13312
|
-
isX,
|
|
13313
|
-
isY: false
|
|
13314
|
-
}, evnt);
|
|
13315
13575
|
}
|
|
13316
13576
|
}
|
|
13317
13577
|
});
|
|
@@ -16272,7 +16532,8 @@ function insertTreeRow(_vm, newRecords, isAppend) {
|
|
|
16272
16532
|
$index: -1,
|
|
16273
16533
|
items: parentChilds,
|
|
16274
16534
|
parent: parentRow,
|
|
16275
|
-
level: parentLevel + 1
|
|
16535
|
+
level: parentLevel + 1,
|
|
16536
|
+
height: 0
|
|
16276
16537
|
};
|
|
16277
16538
|
fullDataRowIdData[rowid] = rest;
|
|
16278
16539
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -16293,7 +16554,8 @@ function insertTreeRow(_vm, newRecords, isAppend) {
|
|
|
16293
16554
|
$index: -1,
|
|
16294
16555
|
items: tableFullTreeData,
|
|
16295
16556
|
parent: null,
|
|
16296
|
-
level: 0
|
|
16557
|
+
level: 0,
|
|
16558
|
+
height: 0
|
|
16297
16559
|
};
|
|
16298
16560
|
fullDataRowIdData[rowid] = rest;
|
|
16299
16561
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -16400,7 +16662,8 @@ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
|
|
|
16400
16662
|
$index: -1,
|
|
16401
16663
|
items: parentMapChilds,
|
|
16402
16664
|
parent: parentRow,
|
|
16403
|
-
level: parentLevel + 1
|
|
16665
|
+
level: parentLevel + 1,
|
|
16666
|
+
height: 0
|
|
16404
16667
|
};
|
|
16405
16668
|
fullDataRowIdData[rowid] = rest;
|
|
16406
16669
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -20148,7 +20411,8 @@ const {
|
|
|
20148
20411
|
renderer: table_renderer,
|
|
20149
20412
|
globalResize: table_globalResize,
|
|
20150
20413
|
globalEvents: table_globalEvents,
|
|
20151
|
-
globalMixins: table_globalMixins
|
|
20414
|
+
globalMixins: table_globalMixins,
|
|
20415
|
+
renderEmptyElement: table_renderEmptyElement
|
|
20152
20416
|
} = core_.VxeUI;
|
|
20153
20417
|
/**
|
|
20154
20418
|
* 渲染浮固定列
|
|
@@ -20204,7 +20468,7 @@ function renderFixed(h, $xetable, fixedType) {
|
|
|
20204
20468
|
ref: `${fixedType}Footer`
|
|
20205
20469
|
}) : _e()]);
|
|
20206
20470
|
}
|
|
20207
|
-
function
|
|
20471
|
+
function renderEmptyBody(h, _vm) {
|
|
20208
20472
|
const {
|
|
20209
20473
|
$scopedSlots,
|
|
20210
20474
|
emptyOpts
|
|
@@ -20781,6 +21045,20 @@ function handleUupdateResize(_vm) {
|
|
|
20781
21045
|
}
|
|
20782
21046
|
return false;
|
|
20783
21047
|
},
|
|
21048
|
+
computeVirtualScrollBars() {
|
|
21049
|
+
const $xeTable = this;
|
|
21050
|
+
const reactData = $xeTable;
|
|
21051
|
+
const {
|
|
21052
|
+
overflowX,
|
|
21053
|
+
scrollXLoad,
|
|
21054
|
+
overflowY,
|
|
21055
|
+
scrollYLoad
|
|
21056
|
+
} = reactData;
|
|
21057
|
+
return {
|
|
21058
|
+
x: overflowX && scrollXLoad,
|
|
21059
|
+
y: overflowY && scrollYLoad
|
|
21060
|
+
};
|
|
21061
|
+
},
|
|
20784
21062
|
tabsResizeFlag() {
|
|
20785
21063
|
const $xeTable = this;
|
|
20786
21064
|
const $xeTabs = $xeTable.$xeTabs;
|
|
@@ -21183,6 +21461,7 @@ function handleUupdateResize(_vm) {
|
|
|
21183
21461
|
// 使用已安装的组件,如果未安装则不渲染
|
|
21184
21462
|
const VxeUILoadingComponent = core_.VxeUI.getComponent('VxeLoading');
|
|
21185
21463
|
const VxeUITooltipComponent = core_.VxeUI.getComponent('VxeTooltip');
|
|
21464
|
+
const $xeTable = this;
|
|
21186
21465
|
const {
|
|
21187
21466
|
_e,
|
|
21188
21467
|
$scopedSlots,
|
|
@@ -21226,13 +21505,14 @@ function handleUupdateResize(_vm) {
|
|
|
21226
21505
|
checkboxOpts,
|
|
21227
21506
|
loadingOpts,
|
|
21228
21507
|
editRules
|
|
21229
|
-
} =
|
|
21508
|
+
} = $xeTable;
|
|
21230
21509
|
const {
|
|
21231
21510
|
leftList,
|
|
21232
21511
|
rightList
|
|
21233
21512
|
} = columnStore;
|
|
21234
21513
|
const currLoading = this._isLoading || loading;
|
|
21235
21514
|
const vSize = computeSize;
|
|
21515
|
+
const virtualScrollBars = $xeTable.computeVirtualScrollBars;
|
|
21236
21516
|
return h('div', {
|
|
21237
21517
|
class: ['vxe-table', 'vxe-table--render-default', `tid_${tId}`, vSize ? `size--${vSize}` : '', `border--${tableBorder}`, {
|
|
21238
21518
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
@@ -21276,6 +21556,7 @@ function handleUupdateResize(_vm) {
|
|
|
21276
21556
|
class: 'vxe-table-slots',
|
|
21277
21557
|
ref: 'hideColumn'
|
|
21278
21558
|
}, this.$slots.default), h('div', {
|
|
21559
|
+
key: 'tw',
|
|
21279
21560
|
class: 'vxe-table--render-wrapper'
|
|
21280
21561
|
}, [h('div', {
|
|
21281
21562
|
class: 'vxe-table--main-wrapper'
|
|
@@ -21315,34 +21596,55 @@ function handleUupdateResize(_vm) {
|
|
|
21315
21596
|
}
|
|
21316
21597
|
}) : _e()]), h('div', {
|
|
21317
21598
|
class: 'vxe-table--fixed-wrapper'
|
|
21318
|
-
}, [
|
|
21319
|
-
|
|
21320
|
-
|
|
21321
|
-
|
|
21322
|
-
|
|
21323
|
-
|
|
21324
|
-
|
|
21325
|
-
|
|
21326
|
-
|
|
21599
|
+
}, [leftList && leftList.length && overflowX ? renderFixed(h, this, 'left') : _e(), rightList && rightList.length && overflowX ? renderFixed(h, this, 'right') : _e()])]), virtualScrollBars.x ? h('div', {
|
|
21600
|
+
key: 'vx',
|
|
21601
|
+
ref: 'refScrollXVirtualElem',
|
|
21602
|
+
class: 'vxe-table--scroll-x-virtual'
|
|
21603
|
+
}, [h('div', {
|
|
21604
|
+
ref: 'refScrollXHandleElem',
|
|
21605
|
+
class: 'vxe-table--scroll-x-handle',
|
|
21606
|
+
on: {
|
|
21607
|
+
scroll: $xeTable.scrollXEvent
|
|
21608
|
+
}
|
|
21609
|
+
}, [h('div', {
|
|
21610
|
+
ref: 'refScrollXSpaceElem',
|
|
21611
|
+
class: 'vxe-table--scroll-x-space'
|
|
21612
|
+
})])]) : table_renderEmptyElement($xeTable), virtualScrollBars.y ? h('div', {
|
|
21613
|
+
key: 'vy',
|
|
21614
|
+
ref: 'refScrollYVirtualElem',
|
|
21615
|
+
class: 'vxe-table--scroll-y-virtual'
|
|
21616
|
+
}, [h('div', {
|
|
21617
|
+
ref: 'refScrollYHandleElem',
|
|
21618
|
+
class: 'vxe-table--scroll-y-handle',
|
|
21619
|
+
on: {
|
|
21620
|
+
scroll: $xeTable.scrollYEvent
|
|
21621
|
+
}
|
|
21622
|
+
}, [h('div', {
|
|
21623
|
+
ref: 'refScrollYSpaceElem',
|
|
21624
|
+
class: 'vxe-table--scroll-x-space'
|
|
21625
|
+
})])]) : table_renderEmptyElement($xeTable),
|
|
21327
21626
|
/**
|
|
21328
21627
|
* 空数据
|
|
21329
21628
|
*/
|
|
21330
21629
|
h('div', {
|
|
21630
|
+
key: 'tn',
|
|
21331
21631
|
ref: 'emptyPlaceholder',
|
|
21332
21632
|
class: 'vxe-table--empty-placeholder'
|
|
21333
21633
|
}, [h('div', {
|
|
21334
21634
|
class: 'vxe-table--empty-content'
|
|
21335
|
-
},
|
|
21635
|
+
}, renderEmptyBody(h, this))]),
|
|
21336
21636
|
/**
|
|
21337
21637
|
* 边框线
|
|
21338
21638
|
*/
|
|
21339
21639
|
h('div', {
|
|
21640
|
+
key: 'tl',
|
|
21340
21641
|
class: 'vxe-table--border-line'
|
|
21341
21642
|
}),
|
|
21342
21643
|
/**
|
|
21343
21644
|
* 列宽线
|
|
21344
21645
|
*/
|
|
21345
21646
|
h('div', {
|
|
21647
|
+
key: 'cl',
|
|
21346
21648
|
class: 'vxe-table--resizable-bar',
|
|
21347
21649
|
style: overflowX ? {
|
|
21348
21650
|
'padding-bottom': `${scrollbarHeight}px`
|
|
@@ -21353,6 +21655,7 @@ function handleUupdateResize(_vm) {
|
|
|
21353
21655
|
* 加载中
|
|
21354
21656
|
*/
|
|
21355
21657
|
VxeUILoadingComponent ? h(VxeUILoadingComponent, {
|
|
21658
|
+
key: 'lg',
|
|
21356
21659
|
class: 'vxe-table--loading',
|
|
21357
21660
|
props: {
|
|
21358
21661
|
value: currLoading,
|
|
@@ -21364,6 +21667,7 @@ function handleUupdateResize(_vm) {
|
|
|
21364
21667
|
* 自定义列
|
|
21365
21668
|
*/
|
|
21366
21669
|
initStore.custom ? h(panel, {
|
|
21670
|
+
key: 'cs',
|
|
21367
21671
|
ref: 'customWrapper',
|
|
21368
21672
|
props: {
|
|
21369
21673
|
customStore
|
|
@@ -21373,6 +21677,7 @@ function handleUupdateResize(_vm) {
|
|
|
21373
21677
|
* 筛选
|
|
21374
21678
|
*/
|
|
21375
21679
|
initStore.filter ? h(filter_panel, {
|
|
21680
|
+
key: 'tf',
|
|
21376
21681
|
ref: 'filterWrapper',
|
|
21377
21682
|
props: {
|
|
21378
21683
|
filterStore
|
|
@@ -21382,6 +21687,7 @@ function handleUupdateResize(_vm) {
|
|
|
21382
21687
|
* 导入
|
|
21383
21688
|
*/
|
|
21384
21689
|
initStore.import && this.importConfig ? h(import_panel, {
|
|
21690
|
+
key: 'it',
|
|
21385
21691
|
props: {
|
|
21386
21692
|
defaultOptions: this.importParams,
|
|
21387
21693
|
storeData: this.importStore
|
|
@@ -21391,6 +21697,7 @@ function handleUupdateResize(_vm) {
|
|
|
21391
21697
|
* 导出
|
|
21392
21698
|
*/
|
|
21393
21699
|
initStore.export && (this.exportConfig || this.printConfig) ? h(export_panel, {
|
|
21700
|
+
key: 'et',
|
|
21394
21701
|
props: {
|
|
21395
21702
|
defaultOptions: this.exportParams,
|
|
21396
21703
|
storeData: this.exportStore
|
|
@@ -21400,6 +21707,7 @@ function handleUupdateResize(_vm) {
|
|
|
21400
21707
|
* 快捷菜单
|
|
21401
21708
|
*/
|
|
21402
21709
|
ctxMenuStore.visible && this.isCtxMenu ? h(menu_panel, {
|
|
21710
|
+
key: 'tm',
|
|
21403
21711
|
ref: 'ctxWrapper',
|
|
21404
21712
|
props: {
|
|
21405
21713
|
ctxMenuStore,
|
|
@@ -21410,6 +21718,7 @@ function handleUupdateResize(_vm) {
|
|
|
21410
21718
|
* 通用提示
|
|
21411
21719
|
*/
|
|
21412
21720
|
VxeUITooltipComponent ? h(VxeUITooltipComponent, {
|
|
21721
|
+
key: 'ctp',
|
|
21413
21722
|
ref: 'commTip',
|
|
21414
21723
|
props: {
|
|
21415
21724
|
isArrow: false,
|
|
@@ -21420,6 +21729,7 @@ function handleUupdateResize(_vm) {
|
|
|
21420
21729
|
* 工具提示
|
|
21421
21730
|
*/
|
|
21422
21731
|
VxeUITooltipComponent ? h(VxeUITooltipComponent, {
|
|
21732
|
+
key: 'btp',
|
|
21423
21733
|
ref: 'tooltip',
|
|
21424
21734
|
props: Object.assign({}, this.tipConfig, this.tooltipStore.currOpts)
|
|
21425
21735
|
}) : _e(),
|
|
@@ -21427,6 +21737,7 @@ function handleUupdateResize(_vm) {
|
|
|
21427
21737
|
* 校验提示
|
|
21428
21738
|
*/
|
|
21429
21739
|
VxeUITooltipComponent && this.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip') ? h(VxeUITooltipComponent, {
|
|
21740
|
+
key: 'vtp',
|
|
21430
21741
|
ref: 'validTip',
|
|
21431
21742
|
class: [{
|
|
21432
21743
|
'old-cell-valid': editRules && table_getConfig().cellVaildMode === 'obsolete'
|
|
@@ -21451,7 +21762,7 @@ const {
|
|
|
21451
21762
|
getI18n: toolbar_getI18n,
|
|
21452
21763
|
renderer: toolbar_renderer,
|
|
21453
21764
|
commands: toolbar_commands,
|
|
21454
|
-
createEvent,
|
|
21765
|
+
createEvent: toolbar_createEvent,
|
|
21455
21766
|
globalMixins: toolbar_globalMixins,
|
|
21456
21767
|
renderEmptyElement: toolbar_renderEmptyElement
|
|
21457
21768
|
} = core_.VxeUI;
|
|
@@ -21566,7 +21877,7 @@ const {
|
|
|
21566
21877
|
//
|
|
21567
21878
|
dispatchEvent(type, params, evnt) {
|
|
21568
21879
|
const $xeToolbar = this;
|
|
21569
|
-
$xeToolbar.$emit(type,
|
|
21880
|
+
$xeToolbar.$emit(type, toolbar_createEvent(evnt, {
|
|
21570
21881
|
$toolbar: $xeToolbar
|
|
21571
21882
|
}, params));
|
|
21572
21883
|
},
|
|
@@ -25415,11 +25726,11 @@ const Toolbar = VxeToolbar;
|
|
|
25415
25726
|
clearSort: '清除排序',
|
|
25416
25727
|
sortAsc: '升序',
|
|
25417
25728
|
sortDesc: '降序',
|
|
25418
|
-
fixedColumn: '
|
|
25419
|
-
fixedGroup: '
|
|
25420
|
-
cancelFixed: '
|
|
25421
|
-
fixedLeft: '
|
|
25422
|
-
fixedRight: '
|
|
25729
|
+
fixedColumn: '冻结列',
|
|
25730
|
+
fixedGroup: '冻结分组',
|
|
25731
|
+
cancelFixed: '取消冻结',
|
|
25732
|
+
fixedLeft: '冻结到左侧',
|
|
25733
|
+
fixedRight: '冻结到右侧',
|
|
25423
25734
|
clearFilter: '清除筛选',
|
|
25424
25735
|
textOption: '文本筛选',
|
|
25425
25736
|
numberOption: '数值筛选'
|