vxe-table 3.21.17 → 3.21.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +5 -2
- package/es/table/module/edit/mixin.js +16 -4
- package/es/table/src/columnInfo.js +6 -6
- package/es/table/src/footer.js +5 -5
- package/es/table/src/header.js +10 -8
- package/es/table/src/methods.js +67 -15
- package/es/table/src/table.js +1 -2
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +4 -3
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1003 -972
- 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/custom/panel.js +5 -2
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/mixin.js +18 -4
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/src/columnInfo.js +6 -0
- package/lib/table/src/footer.js +5 -4
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +12 -8
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +6 -4
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +1 -1
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +4 -3
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +3 -3
- package/packages/table/module/custom/panel.ts +5 -2
- package/packages/table/module/edit/mixin.ts +15 -4
- package/packages/table/src/footer.ts +5 -5
- package/packages/table/src/header.ts +10 -8
- package/packages/table/src/methods.ts +64 -15
- package/packages/table/src/table.ts +1 -2
- package/packages/table/src/util.ts +2 -16
- package/packages/ui/src/log.ts +3 -2
- package/styles/theme/dark.scss +1 -1
- package/styles/variable.scss +1 -1
- /package/es/{iconfont.1781876872867.ttf → iconfont.1782286848090.ttf} +0 -0
- /package/es/{iconfont.1781876872867.woff → iconfont.1782286848090.woff} +0 -0
- /package/es/{iconfont.1781876872867.woff2 → iconfont.1782286848090.woff2} +0 -0
- /package/lib/{iconfont.1781876872867.ttf → iconfont.1782286848090.ttf} +0 -0
- /package/lib/{iconfont.1781876872867.woff → iconfont.1782286848090.woff} +0 -0
- /package/lib/{iconfont.1781876872867.woff2 → iconfont.1782286848090.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -3298,8 +3298,8 @@ function getFuncText(content, args) {
|
|
|
3298
3298
|
function formatText(value, placeholder) {
|
|
3299
3299
|
return '' + (isEmptyValue(value) ? placeholder ? getConfig().emptyCell : '' : value);
|
|
3300
3300
|
}
|
|
3301
|
-
/**
|
|
3302
|
-
* 判断值为:'' | null | undefined 时都属于空值
|
|
3301
|
+
/**
|
|
3302
|
+
* 判断值为:'' | null | undefined 时都属于空值
|
|
3303
3303
|
*/
|
|
3304
3304
|
function eqEmptyValue(cellValue) {
|
|
3305
3305
|
return cellValue === '' || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue);
|
|
@@ -3311,7 +3311,7 @@ function getClass(property, params) {
|
|
|
3311
3311
|
/* unused harmony import specifier */ var VxeUI;
|
|
3312
3312
|
|
|
3313
3313
|
|
|
3314
|
-
const version = "3.21.
|
|
3314
|
+
const version = "3.21.19";
|
|
3315
3315
|
core_.VxeUI.version = version;
|
|
3316
3316
|
core_.VxeUI.tableVersion = version;
|
|
3317
3317
|
core_.VxeUI.setConfig({
|
|
@@ -3706,114 +3706,114 @@ const interceptor = core_.VxeUI.interceptor;
|
|
|
3706
3706
|
const clipboard = core_.VxeUI.clipboard;
|
|
3707
3707
|
const log = core_.VxeUI.log;
|
|
3708
3708
|
const use = core_.VxeUI.use;
|
|
3709
|
-
/**
|
|
3710
|
-
* 已废弃
|
|
3711
|
-
* @deprecated
|
|
3709
|
+
/**
|
|
3710
|
+
* 已废弃
|
|
3711
|
+
* @deprecated
|
|
3712
3712
|
*/
|
|
3713
3713
|
const setup = options => {
|
|
3714
3714
|
return core_.VxeUI.setConfig(options);
|
|
3715
3715
|
};
|
|
3716
3716
|
core_.VxeUI.setup = setup;
|
|
3717
|
-
/**
|
|
3718
|
-
* 已废弃
|
|
3719
|
-
* @deprecated
|
|
3717
|
+
/**
|
|
3718
|
+
* 已废弃
|
|
3719
|
+
* @deprecated
|
|
3720
3720
|
*/
|
|
3721
3721
|
const config = options => {
|
|
3722
3722
|
return core_.VxeUI.setConfig(options);
|
|
3723
3723
|
};
|
|
3724
3724
|
core_.VxeUI.config = config;
|
|
3725
|
-
/**
|
|
3726
|
-
* 已废弃
|
|
3727
|
-
* @deprecated
|
|
3725
|
+
/**
|
|
3726
|
+
* 已废弃
|
|
3727
|
+
* @deprecated
|
|
3728
3728
|
*/
|
|
3729
3729
|
const t = (key, args) => {
|
|
3730
3730
|
return core_.VxeUI.getI18n(key, args);
|
|
3731
3731
|
};
|
|
3732
3732
|
core_.VxeUI.t = t;
|
|
3733
|
-
/**
|
|
3734
|
-
* 已废弃
|
|
3735
|
-
* @deprecated
|
|
3733
|
+
/**
|
|
3734
|
+
* 已废弃
|
|
3735
|
+
* @deprecated
|
|
3736
3736
|
*/
|
|
3737
3737
|
const _t = (content, args) => {
|
|
3738
3738
|
return getFuncText(content, args);
|
|
3739
3739
|
};
|
|
3740
3740
|
core_.VxeUI._t = _t;
|
|
3741
|
-
/**
|
|
3742
|
-
* 已废弃,兼容老版本
|
|
3743
|
-
* @deprecated
|
|
3741
|
+
/**
|
|
3742
|
+
* 已废弃,兼容老版本
|
|
3743
|
+
* @deprecated
|
|
3744
3744
|
*/
|
|
3745
3745
|
const VXETable = core_.VxeUI;
|
|
3746
|
-
/**
|
|
3747
|
-
* 已废弃,兼容老版本
|
|
3748
|
-
* @deprecated
|
|
3746
|
+
/**
|
|
3747
|
+
* 已废弃,兼容老版本
|
|
3748
|
+
* @deprecated
|
|
3749
3749
|
*/
|
|
3750
3750
|
const saveFile = options => {
|
|
3751
3751
|
return core_.VxeUI.saveFile(options);
|
|
3752
3752
|
};
|
|
3753
|
-
/**
|
|
3754
|
-
* 已废弃,兼容老版本
|
|
3755
|
-
* @deprecated
|
|
3753
|
+
/**
|
|
3754
|
+
* 已废弃,兼容老版本
|
|
3755
|
+
* @deprecated
|
|
3756
3756
|
*/
|
|
3757
3757
|
const readFile = options => {
|
|
3758
3758
|
return core_.VxeUI.readFile(options);
|
|
3759
3759
|
};
|
|
3760
|
-
/**
|
|
3761
|
-
* 已废弃,兼容老版本
|
|
3762
|
-
* @deprecated
|
|
3760
|
+
/**
|
|
3761
|
+
* 已废弃,兼容老版本
|
|
3762
|
+
* @deprecated
|
|
3763
3763
|
*/
|
|
3764
3764
|
const print = options => {
|
|
3765
3765
|
return core_.VxeUI.print(options);
|
|
3766
3766
|
};
|
|
3767
|
-
/**
|
|
3768
|
-
* 已废弃,兼容老版本
|
|
3769
|
-
* @deprecated
|
|
3767
|
+
/**
|
|
3768
|
+
* 已废弃,兼容老版本
|
|
3769
|
+
* @deprecated
|
|
3770
3770
|
*/
|
|
3771
3771
|
const modal = {
|
|
3772
|
-
/**
|
|
3773
|
-
* 已废弃,兼容老版本
|
|
3774
|
-
* @deprecated
|
|
3772
|
+
/**
|
|
3773
|
+
* 已废弃,兼容老版本
|
|
3774
|
+
* @deprecated
|
|
3775
3775
|
*/
|
|
3776
3776
|
get(id) {
|
|
3777
3777
|
return core_.VxeUI.modal.get(id);
|
|
3778
3778
|
},
|
|
3779
|
-
/**
|
|
3780
|
-
* 已废弃,兼容老版本
|
|
3781
|
-
* @deprecated
|
|
3779
|
+
/**
|
|
3780
|
+
* 已废弃,兼容老版本
|
|
3781
|
+
* @deprecated
|
|
3782
3782
|
*/
|
|
3783
3783
|
close(id) {
|
|
3784
3784
|
return core_.VxeUI.modal.close(id);
|
|
3785
3785
|
},
|
|
3786
|
-
/**
|
|
3787
|
-
* 已废弃,兼容老版本
|
|
3788
|
-
* @deprecated
|
|
3786
|
+
/**
|
|
3787
|
+
* 已废弃,兼容老版本
|
|
3788
|
+
* @deprecated
|
|
3789
3789
|
*/
|
|
3790
3790
|
open(options) {
|
|
3791
3791
|
return core_.VxeUI.modal.open(options);
|
|
3792
3792
|
},
|
|
3793
|
-
/**
|
|
3794
|
-
* 已废弃,兼容老版本
|
|
3795
|
-
* @deprecated
|
|
3793
|
+
/**
|
|
3794
|
+
* 已废弃,兼容老版本
|
|
3795
|
+
* @deprecated
|
|
3796
3796
|
*/
|
|
3797
3797
|
alert(content, title, options) {
|
|
3798
3798
|
return core_.VxeUI.modal.alert(content, title, options);
|
|
3799
3799
|
},
|
|
3800
|
-
/**
|
|
3801
|
-
* 已废弃,兼容老版本
|
|
3802
|
-
* @deprecated
|
|
3800
|
+
/**
|
|
3801
|
+
* 已废弃,兼容老版本
|
|
3802
|
+
* @deprecated
|
|
3803
3803
|
*/
|
|
3804
3804
|
confirm(content, title, options) {
|
|
3805
3805
|
return core_.VxeUI.modal.confirm(content, title, options);
|
|
3806
3806
|
},
|
|
3807
|
-
/**
|
|
3808
|
-
* 已废弃,兼容老版本
|
|
3809
|
-
* @deprecated
|
|
3807
|
+
/**
|
|
3808
|
+
* 已废弃,兼容老版本
|
|
3809
|
+
* @deprecated
|
|
3810
3810
|
*/
|
|
3811
3811
|
message(content, options) {
|
|
3812
3812
|
return core_.VxeUI.modal.message(content, options);
|
|
3813
3813
|
},
|
|
3814
|
-
/**
|
|
3815
|
-
* 已废弃,兼容老版本
|
|
3816
|
-
* @deprecated
|
|
3814
|
+
/**
|
|
3815
|
+
* 已废弃,兼容老版本
|
|
3816
|
+
* @deprecated
|
|
3817
3817
|
*/
|
|
3818
3818
|
notification(content, title, options) {
|
|
3819
3819
|
return core_.VxeUI.modal.notification(content, title, options);
|
|
@@ -3975,8 +3975,8 @@ function checkTargetElement(target, exEls, endEl) {
|
|
|
3975
3975
|
}
|
|
3976
3976
|
return false;
|
|
3977
3977
|
}
|
|
3978
|
-
/**
|
|
3979
|
-
* 检查触发源是否属于目标节点
|
|
3978
|
+
/**
|
|
3979
|
+
* 检查触发源是否属于目标节点
|
|
3980
3980
|
*/
|
|
3981
3981
|
function getEventTargetNode(evnt, container, queryCls, queryMethod) {
|
|
3982
3982
|
let targetElem;
|
|
@@ -3997,8 +3997,8 @@ function getEventTargetNode(evnt, container, queryCls, queryMethod) {
|
|
|
3997
3997
|
flag: false
|
|
3998
3998
|
};
|
|
3999
3999
|
}
|
|
4000
|
-
/**
|
|
4001
|
-
* 获取元素相对于 document 的位置
|
|
4000
|
+
/**
|
|
4001
|
+
* 获取元素相对于 document 的位置
|
|
4002
4002
|
*/
|
|
4003
4003
|
function getOffsetPos(elem, container) {
|
|
4004
4004
|
return getNodeOffset(elem, container, {
|
|
@@ -4074,14 +4074,15 @@ function wheelScrollTopTo(diffNum, cb) {
|
|
|
4074
4074
|
const {
|
|
4075
4075
|
log: log_log
|
|
4076
4076
|
} = core_.VxeUI;
|
|
4077
|
-
const tableVersion = `table v${"3.21.
|
|
4077
|
+
const tableVersion = `table v${"3.21.19"}`;
|
|
4078
4078
|
function createComponentLog(name) {
|
|
4079
4079
|
const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
|
|
4080
4080
|
const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
|
|
4081
4081
|
const designVersion = core_.VxeUI.designVersion ? `design v${core_.VxeUI.designVersion}` : '';
|
|
4082
|
+
const versionInfo = [uiVersion, tableVersion, ganttVersion, designVersion].join(' ');
|
|
4082
4083
|
return {
|
|
4083
|
-
warnLog: log_log.create('warn',
|
|
4084
|
-
errLog: log_log.create('error',
|
|
4084
|
+
warnLog: log_log.create('warn', versionInfo + '] [' + name),
|
|
4085
|
+
errLog: log_log.create('error', versionInfo + '] [' + name)
|
|
4085
4086
|
};
|
|
4086
4087
|
}
|
|
4087
4088
|
const warnLog = log_log.create('warn', tableVersion);
|
|
@@ -4266,10 +4267,14 @@ class ColumnInfo {
|
|
|
4266
4267
|
colSpan: 1,
|
|
4267
4268
|
// 数据排序
|
|
4268
4269
|
order: null,
|
|
4270
|
+
// 用于记录排序类型,升序和倒序
|
|
4269
4271
|
sortTime: 0,
|
|
4272
|
+
// 用于多列的先后顺序
|
|
4270
4273
|
// 列排序
|
|
4271
4274
|
sortNumber: 0,
|
|
4275
|
+
// 用于记录自定义列顺序
|
|
4272
4276
|
renderSortNumber: 0,
|
|
4277
|
+
// 用于记录自定义列顺序
|
|
4273
4278
|
renderAggFn: '',
|
|
4274
4279
|
renderAggDigits: null,
|
|
4275
4280
|
renderAggFormat: null,
|
|
@@ -4280,8 +4285,10 @@ class ColumnInfo {
|
|
|
4280
4285
|
renderResizeWidth: 0,
|
|
4281
4286
|
renderAutoWidth: 0,
|
|
4282
4287
|
resizeWidth: 0,
|
|
4288
|
+
// 手动调整
|
|
4283
4289
|
renderLeft: 0,
|
|
4284
4290
|
renderArgs: [],
|
|
4291
|
+
// 渲染参数可用于扩展
|
|
4285
4292
|
model: {},
|
|
4286
4293
|
renderHeader: renderHeader || colConfs.renderHeader,
|
|
4287
4294
|
renderCell: renderCell || colConfs.renderCell,
|
|
@@ -4892,8 +4899,8 @@ function toTreePathSeq(path) {
|
|
|
4892
4899
|
function getRowUniqueId() {
|
|
4893
4900
|
return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId('row_');
|
|
4894
4901
|
}
|
|
4895
|
-
/**
|
|
4896
|
-
* 生成行的唯一主键
|
|
4902
|
+
/**
|
|
4903
|
+
* 生成行的唯一主键
|
|
4897
4904
|
*/
|
|
4898
4905
|
function createRowId(rowOpts, row, keyField) {
|
|
4899
4906
|
const {
|
|
@@ -5110,8 +5117,8 @@ function toFilters(filters, colid) {
|
|
|
5110
5117
|
}
|
|
5111
5118
|
return filters;
|
|
5112
5119
|
}
|
|
5113
|
-
/**
|
|
5114
|
-
* 列宽拖动最大宽度
|
|
5120
|
+
/**
|
|
5121
|
+
* 列宽拖动最大宽度
|
|
5115
5122
|
*/
|
|
5116
5123
|
function getColReMaxWidth(params) {
|
|
5117
5124
|
const {
|
|
@@ -5154,8 +5161,8 @@ function getColReMaxWidth(params) {
|
|
|
5154
5161
|
}
|
|
5155
5162
|
return -1;
|
|
5156
5163
|
}
|
|
5157
|
-
/**
|
|
5158
|
-
* 列宽拖动最小宽度
|
|
5164
|
+
/**
|
|
5165
|
+
* 列宽拖动最小宽度
|
|
5159
5166
|
*/
|
|
5160
5167
|
function getColReMinWidth(params) {
|
|
5161
5168
|
const {
|
|
@@ -5877,8 +5884,8 @@ const Cell = {
|
|
|
5877
5884
|
}
|
|
5878
5885
|
return createColumn($xeTable, columnOpts, renConfs);
|
|
5879
5886
|
},
|
|
5880
|
-
/**
|
|
5881
|
-
* 列头标题
|
|
5887
|
+
/**
|
|
5888
|
+
* 列头标题
|
|
5882
5889
|
*/
|
|
5883
5890
|
renderHeaderTitle(h, params) {
|
|
5884
5891
|
const {
|
|
@@ -5975,14 +5982,14 @@ const Cell = {
|
|
|
5975
5982
|
childList,
|
|
5976
5983
|
childCount,
|
|
5977
5984
|
aggValue: null,
|
|
5978
|
-
/**
|
|
5979
|
-
* 已废弃
|
|
5980
|
-
* @deprecated
|
|
5985
|
+
/**
|
|
5986
|
+
* 已废弃
|
|
5987
|
+
* @deprecated
|
|
5981
5988
|
*/
|
|
5982
5989
|
children: childList,
|
|
5983
|
-
/**
|
|
5984
|
-
* 已废弃
|
|
5985
|
-
* @deprecated
|
|
5990
|
+
/**
|
|
5991
|
+
* 已废弃
|
|
5992
|
+
* @deprecated
|
|
5986
5993
|
*/
|
|
5987
5994
|
totalValue: childCount
|
|
5988
5995
|
};
|
|
@@ -6063,8 +6070,8 @@ const Cell = {
|
|
|
6063
6070
|
renderDefaultFooter(h, params) {
|
|
6064
6071
|
return getFooterContent(h, params);
|
|
6065
6072
|
},
|
|
6066
|
-
/**
|
|
6067
|
-
* 行分组
|
|
6073
|
+
/**
|
|
6074
|
+
* 行分组
|
|
6068
6075
|
*/
|
|
6069
6076
|
renderRowGroupBtn(h, params, cellVNodes) {
|
|
6070
6077
|
const {
|
|
@@ -6113,8 +6120,8 @@ const Cell = {
|
|
|
6113
6120
|
class: 'vxe-row-group-cell'
|
|
6114
6121
|
}, cellVNodes)]);
|
|
6115
6122
|
},
|
|
6116
|
-
/**
|
|
6117
|
-
* 树
|
|
6123
|
+
/**
|
|
6124
|
+
* 树
|
|
6118
6125
|
*/
|
|
6119
6126
|
renderTreeNodeBtn(h, params, cellVNodes) {
|
|
6120
6127
|
const {
|
|
@@ -6194,9 +6201,9 @@ const Cell = {
|
|
|
6194
6201
|
class: 'vxe-tree-cell'
|
|
6195
6202
|
}, cellVNodes)])];
|
|
6196
6203
|
},
|
|
6197
|
-
/**
|
|
6198
|
-
* 层级节点。
|
|
6199
|
-
* 行分组、树结构
|
|
6204
|
+
/**
|
|
6205
|
+
* 层级节点。
|
|
6206
|
+
* 行分组、树结构
|
|
6200
6207
|
*/
|
|
6201
6208
|
renderDeepNodeBtn(h, params, cellVNodes) {
|
|
6202
6209
|
const {
|
|
@@ -6227,8 +6234,8 @@ const Cell = {
|
|
|
6227
6234
|
}
|
|
6228
6235
|
return [Cell.renderTreeNodeBtn(h, params, cellVNodes)];
|
|
6229
6236
|
},
|
|
6230
|
-
/**
|
|
6231
|
-
* 序号
|
|
6237
|
+
/**
|
|
6238
|
+
* 序号
|
|
6232
6239
|
*/
|
|
6233
6240
|
renderSeqHeader(h, params) {
|
|
6234
6241
|
const {
|
|
@@ -6265,8 +6272,8 @@ const Cell = {
|
|
|
6265
6272
|
renderDeepIndexCell(h, params) {
|
|
6266
6273
|
return Cell.renderDeepNodeBtn(h, params, Cell.renderSeqCell(h, params));
|
|
6267
6274
|
},
|
|
6268
|
-
/**
|
|
6269
|
-
* 单选
|
|
6275
|
+
/**
|
|
6276
|
+
* 单选
|
|
6270
6277
|
*/
|
|
6271
6278
|
renderRadioHeader(h, params) {
|
|
6272
6279
|
const {
|
|
@@ -6359,8 +6366,8 @@ const Cell = {
|
|
|
6359
6366
|
renderDeepRadioCell(h, params) {
|
|
6360
6367
|
return Cell.renderDeepNodeBtn(h, params, Cell.renderRadioCell(h, params));
|
|
6361
6368
|
},
|
|
6362
|
-
/**
|
|
6363
|
-
* 多选
|
|
6369
|
+
/**
|
|
6370
|
+
* 多选
|
|
6364
6371
|
*/
|
|
6365
6372
|
renderCheckboxHeader(h, params) {
|
|
6366
6373
|
const {
|
|
@@ -6635,8 +6642,8 @@ const Cell = {
|
|
|
6635
6642
|
renderDeepSelectionCellByProp(h, params) {
|
|
6636
6643
|
return Cell.renderDeepNodeBtn(h, params, Cell.renderCheckboxCellByProp(h, params));
|
|
6637
6644
|
},
|
|
6638
|
-
/**
|
|
6639
|
-
* 展开行
|
|
6645
|
+
/**
|
|
6646
|
+
* 展开行
|
|
6640
6647
|
*/
|
|
6641
6648
|
renderExpandCell(h, params) {
|
|
6642
6649
|
const {
|
|
@@ -6725,8 +6732,8 @@ const Cell = {
|
|
|
6725
6732
|
}
|
|
6726
6733
|
return [];
|
|
6727
6734
|
},
|
|
6728
|
-
/**
|
|
6729
|
-
* HTML 标签
|
|
6735
|
+
/**
|
|
6736
|
+
* HTML 标签
|
|
6730
6737
|
*/
|
|
6731
6738
|
renderHTMLCell(h, params) {
|
|
6732
6739
|
const {
|
|
@@ -6749,14 +6756,14 @@ const Cell = {
|
|
|
6749
6756
|
renderDeepHTMLCell(h, params) {
|
|
6750
6757
|
return Cell.renderDeepNodeBtn(h, params, Cell.renderHTMLCell(h, params));
|
|
6751
6758
|
},
|
|
6752
|
-
/**
|
|
6753
|
-
* 排序和筛选
|
|
6759
|
+
/**
|
|
6760
|
+
* 排序和筛选
|
|
6754
6761
|
*/
|
|
6755
6762
|
renderSortAndFilterHeader(h, params) {
|
|
6756
6763
|
return renderHeaderCellBaseVNs(h, params, Cell.renderHeaderTitle(h, params).concat(Cell.renderSortIcon(h, params).concat(Cell.renderFilterIcon(h, params))));
|
|
6757
6764
|
},
|
|
6758
|
-
/**
|
|
6759
|
-
* 排序
|
|
6765
|
+
/**
|
|
6766
|
+
* 排序
|
|
6760
6767
|
*/
|
|
6761
6768
|
renderSortHeader(h, params) {
|
|
6762
6769
|
return renderHeaderCellBaseVNs(h, params, Cell.renderHeaderTitle(h, params).concat(Cell.renderSortIcon(h, params)));
|
|
@@ -6815,8 +6822,8 @@ const Cell = {
|
|
|
6815
6822
|
}
|
|
6816
6823
|
return [];
|
|
6817
6824
|
},
|
|
6818
|
-
/**
|
|
6819
|
-
* 筛选
|
|
6825
|
+
/**
|
|
6826
|
+
* 筛选
|
|
6820
6827
|
*/
|
|
6821
6828
|
renderFilterHeader(h, params) {
|
|
6822
6829
|
return renderHeaderCellBaseVNs(h, params, Cell.renderHeaderTitle(h, params).concat(Cell.renderFilterIcon(h, params)));
|
|
@@ -6859,8 +6866,8 @@ const Cell = {
|
|
|
6859
6866
|
}
|
|
6860
6867
|
return [];
|
|
6861
6868
|
},
|
|
6862
|
-
/**
|
|
6863
|
-
* 可编辑
|
|
6869
|
+
/**
|
|
6870
|
+
* 可编辑
|
|
6864
6871
|
*/
|
|
6865
6872
|
renderEditHeader(h, params) {
|
|
6866
6873
|
const {
|
|
@@ -7416,17 +7423,17 @@ const tableProps = {
|
|
|
7416
7423
|
type: Boolean,
|
|
7417
7424
|
default: () => props_getConfig().table.highlightHoverRow
|
|
7418
7425
|
},
|
|
7419
|
-
/**
|
|
7420
|
-
* (即将废弃)是否要高亮当前选中列
|
|
7421
|
-
* @deprecated
|
|
7426
|
+
/**
|
|
7427
|
+
* (即将废弃)是否要高亮当前选中列
|
|
7428
|
+
* @deprecated
|
|
7422
7429
|
*/
|
|
7423
7430
|
highlightCurrentColumn: {
|
|
7424
7431
|
type: Boolean,
|
|
7425
7432
|
default: () => props_getConfig().table.highlightCurrentColumn
|
|
7426
7433
|
},
|
|
7427
|
-
/**
|
|
7428
|
-
* (即将废弃)鼠标移到列是否要高亮显示
|
|
7429
|
-
* @deprecated
|
|
7434
|
+
/**
|
|
7435
|
+
* (即将废弃)鼠标移到列是否要高亮显示
|
|
7436
|
+
* @deprecated
|
|
7430
7437
|
*/
|
|
7431
7438
|
highlightHoverColumn: {
|
|
7432
7439
|
type: Boolean,
|
|
@@ -7496,19 +7503,19 @@ const tableProps = {
|
|
|
7496
7503
|
default: () => props_getConfig().table.showFooterOverflow
|
|
7497
7504
|
},
|
|
7498
7505
|
/** 高级属性 */
|
|
7499
|
-
/**
|
|
7500
|
-
* (即将废弃)columnKey 已废弃,被 column-config.useKey 替换
|
|
7501
|
-
* @deprecated
|
|
7506
|
+
/**
|
|
7507
|
+
* (即将废弃)columnKey 已废弃,被 column-config.useKey 替换
|
|
7508
|
+
* @deprecated
|
|
7502
7509
|
*/
|
|
7503
7510
|
columnKey: Boolean,
|
|
7504
|
-
/**
|
|
7505
|
-
* (即将废弃)rowKey 已废弃,被 row-config.useKey 替换
|
|
7506
|
-
* @deprecated
|
|
7511
|
+
/**
|
|
7512
|
+
* (即将废弃)rowKey 已废弃,被 row-config.useKey 替换
|
|
7513
|
+
* @deprecated
|
|
7507
7514
|
*/
|
|
7508
7515
|
rowKey: Boolean,
|
|
7509
|
-
/**
|
|
7510
|
-
* (即将废弃)rowId 已废弃,被 row-config.keyField 替换
|
|
7511
|
-
* @deprecated
|
|
7516
|
+
/**
|
|
7517
|
+
* (即将废弃)rowId 已废弃,被 row-config.keyField 替换
|
|
7518
|
+
* @deprecated
|
|
7512
7519
|
*/
|
|
7513
7520
|
rowId: {
|
|
7514
7521
|
type: String,
|
|
@@ -7548,16 +7555,16 @@ const tableProps = {
|
|
|
7548
7555
|
aggregateConfig: Object,
|
|
7549
7556
|
// 聚合函数计算精度配置项
|
|
7550
7557
|
aggregateAccuracyConfig: Object,
|
|
7551
|
-
/**
|
|
7552
|
-
* 已废弃,被 aggregateConfig 替换
|
|
7553
|
-
* @deprecated
|
|
7558
|
+
/**
|
|
7559
|
+
* 已废弃,被 aggregateConfig 替换
|
|
7560
|
+
* @deprecated
|
|
7554
7561
|
*/
|
|
7555
7562
|
rowGroupConfig: Object,
|
|
7556
7563
|
// 当前行配置项
|
|
7557
7564
|
currentRowConfig: Object,
|
|
7558
|
-
/**
|
|
7559
|
-
* 已废弃,被 rowDragConfig 替换
|
|
7560
|
-
* @deprecated
|
|
7565
|
+
/**
|
|
7566
|
+
* 已废弃,被 rowDragConfig 替换
|
|
7567
|
+
* @deprecated
|
|
7561
7568
|
*/
|
|
7562
7569
|
dragConfig: Object,
|
|
7563
7570
|
// 行拖拽排序配置项
|
|
@@ -7596,9 +7603,9 @@ const tableProps = {
|
|
|
7596
7603
|
treeConfig: [Boolean, Object],
|
|
7597
7604
|
// 快捷菜单配置项
|
|
7598
7605
|
menuConfig: [Boolean, Object],
|
|
7599
|
-
/**
|
|
7600
|
-
* 在 v4 中废弃 contextMenu
|
|
7601
|
-
* @deprecated
|
|
7606
|
+
/**
|
|
7607
|
+
* 在 v4 中废弃 contextMenu
|
|
7608
|
+
* @deprecated
|
|
7602
7609
|
*/
|
|
7603
7610
|
contextMenu: [Boolean, Object],
|
|
7604
7611
|
// 鼠标配置项
|
|
@@ -7625,14 +7632,14 @@ const tableProps = {
|
|
|
7625
7632
|
emptyRender: [Boolean, Object],
|
|
7626
7633
|
// 自定义列配置项
|
|
7627
7634
|
customConfig: Object,
|
|
7628
|
-
/**
|
|
7629
|
-
* (即将废弃)横向虚拟滚动配置项
|
|
7630
|
-
* @deprecated
|
|
7635
|
+
/**
|
|
7636
|
+
* (即将废弃)横向虚拟滚动配置项
|
|
7637
|
+
* @deprecated
|
|
7631
7638
|
*/
|
|
7632
7639
|
scrollX: Object,
|
|
7633
|
-
/**
|
|
7634
|
-
* (即将废弃)纵向虚拟滚动配置项
|
|
7635
|
-
* @deprecated
|
|
7640
|
+
/**
|
|
7641
|
+
* (即将废弃)纵向虚拟滚动配置项
|
|
7642
|
+
* @deprecated
|
|
7636
7643
|
*/
|
|
7637
7644
|
scrollY: Object,
|
|
7638
7645
|
// 横向虚拟滚动配置项
|
|
@@ -7667,8 +7674,8 @@ var es_iterator_to_array = __webpack_require__(1806);
|
|
|
7667
7674
|
|
|
7668
7675
|
const rowMoveCls = 'row--drag-move';
|
|
7669
7676
|
const colMoveClass = 'col--drag-move';
|
|
7670
|
-
/**
|
|
7671
|
-
* 上下拖拽
|
|
7677
|
+
/**
|
|
7678
|
+
* 上下拖拽
|
|
7672
7679
|
*/
|
|
7673
7680
|
function moveRowAnimateToTb(elemList, offsetTop) {
|
|
7674
7681
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(elemList, trEl => {
|
|
@@ -7688,8 +7695,8 @@ function clearRowAnimate(elem, clss) {
|
|
|
7688
7695
|
}
|
|
7689
7696
|
}, 500);
|
|
7690
7697
|
}
|
|
7691
|
-
/**
|
|
7692
|
-
* 左右拖拽
|
|
7698
|
+
/**
|
|
7699
|
+
* 左右拖拽
|
|
7693
7700
|
*/
|
|
7694
7701
|
function moveColAnimateToLr(elemList, offsetLeft) {
|
|
7695
7702
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(elemList, trEl => {
|
|
@@ -7719,54 +7726,54 @@ function getCrossTableDragRowInfo($xeTable) {
|
|
|
7719
7726
|
return crossTableDragRowInfo;
|
|
7720
7727
|
}
|
|
7721
7728
|
;// ./packages/table/src/methods.ts
|
|
7722
|
-
const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const browseObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().browse();const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(
|
|
7729
|
+
const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const browseObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().browse();const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(newRow,oldRow,field){const val1=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(newRow,field);const val2=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oldRow,field);let result=false;if(eqEmptyValue(val1)&&eqEmptyValue(val2)){result=true;}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val1)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(val1)){result=''+val1===''+val2;}else{result=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function hangleStorageDefaultValue(value,isAll){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(value)?value:isAll;}function getNextSortOrder($xeTable,column){const sortOpts=$xeTable.computeSortOpts;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];}const getCustomStorageMap=id=>{const version=methods_getConfig().version;const rest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=methods_getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};function handleReserveRow($xeTable,reserveRowMap){const internalData=$xeTable;const{fullDataRowIdData}=internalData;const reserveList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&reserveList.indexOf(fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;}function handleVirtualXVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function handleCustomRestore($xeTable,storeData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const customOpts=$xeTable.computeCustomOpts;const{storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);let{resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData}=storeData;// 处理还原
|
|
7723
7730
|
if(isCustomResizable&&resizableData||isCustomSort&&sortData||isCustomVisible&&visibleData||isCustomFixed&&fixedData||isCustomAggGroup&&aggGroupData||isCustomAggFunc&&aggFuncData){const sortColMaps={};if(isCustomSort&&sortData){// 转换兼容老版本数据,即将废弃兼容
|
|
7724
7731
|
if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortData)){const sortRests=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(sortData,(index,colKey)=>{sortRests.push({key:colKey,index});});sortData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortRests,{field:'index',order:'asc'}).map(item=>({k:item.key}));}let colNum=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sortData,(sObj,index,sOjs,path,pSObj)=>{sortColMaps[sObj.k]={key:sObj.k,sNum:colNum++,pKey:pSObj?pSObj.k:null};},{children:'c'});}const colKeyMaps={};const allCols=[];const aggGroupConfs=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();// 支持一级
|
|
7725
7732
|
if(!parentColumn){if(isCustomFixed&&fixedData&&fixedData[colKey]!==undefined){column.fixed=fixedData[colKey];}}if(isCustomResizable&&resizableData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(resizableData[colKey])){column.resizeWidth=resizableData[colKey];}if(isCustomVisible&&visibleData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(visibleData[colKey])){column.visible=visibleData[colKey];}if(isCustomAggFunc&&aggFuncData&&(aggregateConfig||rowGroupConfig)&&aggFuncData[colKey]){column.aggFunc=aggFuncData[colKey];}if(isCustomAggGroup&&aggGroupData&&aggGroupData[colKey]){aggGroupConfs.push({field:column.field});}colKeyMaps[colKey]=column;allCols.push(column);});if((aggregateConfig||rowGroupConfig)&&aggGroupConfs.length){const groupRest=handleGroupData($xeTable,internalData.tableFullData,aggGroupConfs);internalData.tableFullTreeData=[];internalData.tableFullGroupData=groupRest.treeData;reactData.isRowGroupStatus=true;reactData.rowGroupList=aggGroupConfs;$xeTable.cacheRowMap(false);}// 如果自定义了顺序
|
|
7726
|
-
if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey();const scItem=sortColMaps[colKey];if(scItem){const parentColumn=scItem.pKey?colKeyMaps[scItem.pKey]:null;column.parentId=parentColumn?parentColumn.id:null;column.renderSortNumber=scItem.sNum;}});const newCollectCols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(allCols,'renderSortNumber'),{key:'id',parentKey:'parentId',children:'children'});internalData.collectColumn=newCollectCols;internalData.tableFullColumn=getColumnList(newCollectCols);reactData.updateColFlag++;}reactData.isCustomStatus=true;}else{reactData.isCustomStatus=false;}}/**
|
|
7727
|
-
* 还原自定义列操作状态
|
|
7728
|
-
*/function restoreCustomStorage($xeTable){const props=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{storage,restoreStore,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggFunc)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore($xeTable,storeData);}).catch(e=>e);}else{return handleCustomRestore($xeTable,storeData);}}}/**
|
|
7729
|
-
* 更新数据列的 Map
|
|
7730
|
-
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
7733
|
+
if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey();const scItem=sortColMaps[colKey];if(scItem){const parentColumn=scItem.pKey?colKeyMaps[scItem.pKey]:null;column.parentId=parentColumn?parentColumn.id:null;column.renderSortNumber=scItem.sNum;}});const newCollectCols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(allCols,'renderSortNumber'),{key:'id',parentKey:'parentId',children:'children'});internalData.collectColumn=newCollectCols;internalData.tableFullColumn=getColumnList(newCollectCols);reactData.updateColFlag++;}reactData.isCustomStatus=true;}else{reactData.isCustomStatus=false;}}/**
|
|
7734
|
+
* 还原自定义列操作状态
|
|
7735
|
+
*/function restoreCustomStorage($xeTable){const props=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{storage,restoreStore,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggFunc)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore($xeTable,storeData);}).catch(e=>e);}else{return handleCustomRestore($xeTable,storeData);}}}/**
|
|
7736
|
+
* 更新数据列的 Map
|
|
7737
|
+
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
7731
7738
|
*/function cacheColumnMap($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig,showOverflow}=props;const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=$xeTable.computeMouseOpts;const expandOpts=$xeTable.computeExpandOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=$xeTable.computeCustomOpts;const treeOpts=$xeTable.computeTreeOpts;const{storage}=customOpts;const rowOpts=$xeTable.computeRowOpts;const isGroup=collectColumn.some(hasChildrenList);let isAllOverflow=!!showOverflow;let rowGroupColumn;let expandColumn;let treeNodeColumn;let checkboxColumn;let radioColumn;let htmlColumn;let hasFixed;const handleFunc=(column,index,items,path,parentColumn)=>{const{id:colid,field,fixed,type,treeNode,rowGroupNode}=column;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};if(field){if(fullColFieldData[field]){methods_errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}else{if(storage&&!type){methods_errLog('vxe.error.reqSupportProp',['storage',`[${type?`type=${type}`:`title=${column.getTitle()}`}]field=?`]);}if(columnOpts.drag&&(isCrossDrag||isSelfToChildDrag)){methods_errLog('vxe.error.reqSupportProp',['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag',`${column.getTitle()||type||''} -> field=?`]);}}if(!hasFixed&&fixed){hasFixed=fixed;}if(!htmlColumn&&type==='html'){htmlColumn=column;}if(treeNode){if(treeNodeColumn){methods_warnLog('vxe.error.colRepet',['tree-node',treeNode]);}if(!treeNodeColumn){treeNodeColumn=column;}}if(rowGroupNode){if(treeNodeColumn){methods_warnLog('vxe.error.colRepet',['row-group-node',rowGroupNode]);}if(!rowGroupColumn){rowGroupColumn=column;}}if(type==='expand'){if(expandColumn){methods_warnLog('vxe.error.colRepet',['type',type]);}if(!expandColumn){expandColumn=column;}}if(type==='checkbox'){if(checkboxColumn){methods_warnLog('vxe.error.colRepet',['type',type]);}if(!checkboxColumn){checkboxColumn=column;}}else if(type==='radio'){if(radioColumn){methods_warnLog('vxe.error.colRepet',['type',type]);}if(!radioColumn){radioColumn=column;}}if(isAllOverflow&&column.showOverflow===false){isAllOverflow=false;}if(fullColIdData[colid]){methods_errLog('vxe.error.colRepet',['colId',colid]);}fullColIdData[colid]=rest;};if(isGroup){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn,nodes)=>{column.level=nodes.length;handleFunc(column,index,items,path,parentColumn);});}else{tableFullColumn.forEach(handleFunc);}if(expandColumn){if(expandOpts.mode!=='fixed'&&virtualYOpts.enabled){methods_warnLog('vxe.error.notConflictProp',['column.type="expand','virtual-y-config.enabled=false']);}if(expandOpts.mode!=='fixed'&&mouseOpts.area){methods_errLog('vxe.error.errConflicts',['mouse-config.area','column.type=expand']);}if(expandOpts.mode!=='inside'&&treeConfig&&!treeOpts.transform){methods_errLog('vxe.error.notConflictProp',['tree-config.transform=false','expand-config.mode=inside']);}// if (props.spanMethod) {
|
|
7732
7739
|
// warnLog('vxe.error.notSupportProp', ['column.type=expand', 'span-method', 'span-method=null'])
|
|
7733
7740
|
// }
|
|
7734
7741
|
}if(htmlColumn){if(!columnOpts.useKey){methods_errLog('vxe.error.notSupportProp',['column.type=html','column-config.useKey=false','column-config.useKey=true']);}if(!rowOpts.useKey){methods_errLog('vxe.error.notSupportProp',['column.type=html','row-config.useKey=false','row-config.useKey=true']);}}reactData.isGroup=isGroup;reactData.rowGroupColumn=rowGroupColumn;reactData.treeNodeColumn=treeNodeColumn;reactData.expandColumn=expandColumn;reactData.checkboxColumn=checkboxColumn;reactData.radioColumn=radioColumn;reactData.isAllOverflow=isAllOverflow;}function updateScrollXStatus($xeTable,fullColumn){const reactData=$xeTable;const internalData=$xeTable;const virtualXOpts=$xeTable.computeVirtualXOpts;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
|
|
7735
7742
|
const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;}function syncGanttScrollYStatus($xeTable){const reactData=$xeTable;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;if($xeGanttView&&$xeGanttView.handleUpdateSYStatus){$xeGanttView.handleUpdateSYStatus(reactData.scrollYLoad);}}function updateScrollYStatus($xeTable,fullData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const virtualYOpts=$xeTable.computeVirtualYOpts;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
|
|
7736
|
-
let scrollYLoad=!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);if(scrollYLoad&&treeConfig&&!transform){methods_errLog('vxe.error.notSupportProp',['[table] virtual-y-config.enabled=true','tree-config.transform=false','tree-config.transform=true']);scrollYLoad=false;}reactData.scrollYLoad=scrollYLoad;syncGanttScrollYStatus($xeTable);return scrollYLoad;}/**
|
|
7737
|
-
* 展开与收起树节点
|
|
7738
|
-
* @param rows
|
|
7739
|
-
* @param expanded
|
|
7740
|
-
* @returns
|
|
7743
|
+
let scrollYLoad=!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);if(scrollYLoad&&treeConfig&&!transform){methods_errLog('vxe.error.notSupportProp',['[table] virtual-y-config.enabled=true','tree-config.transform=false','tree-config.transform=true']);scrollYLoad=false;}reactData.scrollYLoad=scrollYLoad;syncGanttScrollYStatus($xeTable);return scrollYLoad;}/**
|
|
7744
|
+
* 展开与收起树节点
|
|
7745
|
+
* @param rows
|
|
7746
|
+
* @param expanded
|
|
7747
|
+
* @returns
|
|
7741
7748
|
*/function handleBaseTreeExpand($xeTable,rows,expanded){const reactData=$xeTable;const internalData=$xeTable;const{treeNodeColumn}=reactData;const{fullAllDataRowIdData,tableFullTreeData,treeExpandedMaps,treeExpandLazyLoadedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{reserve,lazy,accordion,toggleMethod}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const result=[];const columnIndex=$xeTable.getColumnIndex(treeNodeColumn);const $columnIndex=$xeTable.getVMColumnIndex(treeNodeColumn);const{handleGetRowId}=createHandleGetRowId($xeTable);let validRows=toggleMethod?rows.filter(row=>toggleMethod({$table:$xeTable,expanded,column:treeNodeColumn,columnIndex,$columnIndex,row})):rows;if(accordion){validRows=validRows.length?[validRows[validRows.length-1]]:[];// 同一级只能展开一个
|
|
7742
7749
|
const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData,item=>item===validRows[0],{children:childrenField});if(matchObj){matchObj.items.forEach(item=>{const rowid=handleGetRowId(item);if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}});}}if(expanded){validRows.forEach(row=>{const rowid=handleGetRowId(row);if(!treeExpandedMaps[rowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const isLoad=lazy&&row[hasChildField]&&!rowRest.treeLoaded&&!treeExpandLazyLoadedMaps[rowid];// 是否使用懒加载
|
|
7743
|
-
if(isLoad){result.push(handleAsyncTreeExpandChilds($xeTable,row));}else{if(row[childrenField]&&row[childrenField].length){treeExpandedMaps[rowid]=row;}}}}});}else{validRows.forEach(item=>{const rowid=handleGetRowId(item);if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}});}if(reserve){validRows.forEach(row=>handleTreeExpandReserve($xeTable,row,expanded));}reactData.treeExpandedFlag++;return Promise.all(result).then(()=>{updateTreeLineStyle($xeTable);return $xeTable.recalculate();});}/**
|
|
7744
|
-
* 虚拟树的展开与收起
|
|
7745
|
-
* @param rows
|
|
7746
|
-
* @param expanded
|
|
7747
|
-
* @returns
|
|
7748
|
-
*/function handleVirtualTreeExpand($xeTable,rows,expanded){const reactData=$xeTable;return handleBaseTreeExpand($xeTable,rows,expanded).then(()=>{handleVirtualTreeToList($xeTable);$xeTable.handleTableData();reactData.treeExpandedFlag++;updateAfterDataIndex($xeTable);return $xeTable.$nextTick();}).then(()=>{return handleRecalculateStyle($xeTable,true,true,true);}).then(()=>{updateTreeLineStyle($xeTable);setTimeout(()=>{$xeTable.updateCellAreas();},30);});}/**
|
|
7749
|
-
* 展开与收起行分组节点
|
|
7750
|
-
* @param rows
|
|
7751
|
-
* @param expanded
|
|
7752
|
-
* @returns
|
|
7750
|
+
if(isLoad){result.push(handleAsyncTreeExpandChilds($xeTable,row));}else{if(row[childrenField]&&row[childrenField].length){treeExpandedMaps[rowid]=row;}}}}});}else{validRows.forEach(item=>{const rowid=handleGetRowId(item);if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}});}if(reserve){validRows.forEach(row=>handleTreeExpandReserve($xeTable,row,expanded));}reactData.treeExpandedFlag++;return Promise.all(result).then(()=>{updateTreeLineStyle($xeTable);return $xeTable.recalculate();});}/**
|
|
7751
|
+
* 虚拟树的展开与收起
|
|
7752
|
+
* @param rows
|
|
7753
|
+
* @param expanded
|
|
7754
|
+
* @returns
|
|
7755
|
+
*/function handleVirtualTreeExpand($xeTable,rows,expanded){const reactData=$xeTable;return handleBaseTreeExpand($xeTable,rows,expanded).then(()=>{handleVirtualTreeToList($xeTable);$xeTable.handleTableData();reactData.treeExpandedFlag++;updateAfterDataIndex($xeTable);return $xeTable.$nextTick();}).then(()=>{return handleRecalculateStyle($xeTable,true,true,true);}).then(()=>{updateTreeLineStyle($xeTable);setTimeout(()=>{$xeTable.updateCellAreas();},30);});}/**
|
|
7756
|
+
* 展开与收起行分组节点
|
|
7757
|
+
* @param rows
|
|
7758
|
+
* @param expanded
|
|
7759
|
+
* @returns
|
|
7753
7760
|
*/function handleRowGroupBaseExpand($xeTable,rows,expanded){const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData,tableFullGroupData,rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField,accordion}=aggregateOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);let validRows=rows;if(mapChildrenField){if(accordion){validRows=validRows.length?[validRows[validRows.length-1]]:[];// 同一级只能展开一个
|
|
7754
|
-
const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullGroupData,item=>getRowid($xeTable,item)===getRowid($xeTable,validRows[0]),{children:mapChildrenField});if(matchObj){matchObj.items.forEach(item=>{const rowid=handleGetRowId(item);if(rowGroupExpandedMaps[rowid]){delete rowGroupExpandedMaps[rowid];}});}}if(expanded){validRows.forEach(row=>{const rowid=handleGetRowId(row);if(!rowGroupExpandedMaps[rowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){if(row[mapChildrenField]&&row[mapChildrenField].length){rowGroupExpandedMaps[rowid]=row;}}}});}else{validRows.forEach(item=>{const rowid=handleGetRowId(item);if(rowGroupExpandedMaps[rowid]){delete rowGroupExpandedMaps[rowid];}});}}reactData.rowGroupExpandedFlag++;return $xeTable.recalculate();}/**
|
|
7755
|
-
* 行分组的展开与收起
|
|
7756
|
-
* @param rows
|
|
7757
|
-
* @param expanded
|
|
7758
|
-
* @returns
|
|
7759
|
-
*/function handleRowGroupVirtualExpand($xeTable,rows,expanded){const reactData=$xeTable;return handleRowGroupBaseExpand($xeTable,rows,expanded).then(()=>{handleVirtualTreeToList($xeTable);$xeTable.handleTableData();reactData.rowGroupExpandedFlag++;updateAfterDataIndex($xeTable);return $xeTable.$nextTick();}).then(()=>{return handleLazyRecalculate($xeTable,true,true,true);}).then(()=>{setTimeout(()=>{$xeTable.updateCellAreas();},30);});}/**
|
|
7760
|
-
* 处理默认展开分组行
|
|
7761
|
-
*/function handleDefaultRowGroupExpand($xeTable){const reactData=$xeTable;const{isRowGroupStatus}=reactData;if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{expandAll,expandGroupFields}=aggregateOpts;if(expandAll){$xeTable.setAllRowGroupExpand(true);}else if(expandGroupFields&&expandGroupFields.length){$xeTable.setRowGroupExpandByField(expandGroupFields,true);}}}function updateAfterTreeIndex($xeTable){const internalData=$xeTable;const{fullDataRowIdData,fullAllDataRowIdData,afterFullData,afterTreeFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const fullMaps={};let rowNum=0;const{handleGetRowId}=createHandleGetRowId($xeTable);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,(row,index,items,path)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=path.map((num,i)=>i%2===0?Number(num)+1:'.').join('');if(rowRest){rowRest.seq=seq;rowRest._seq=rowNum;rowRest.treeIndex=index;rowRest._tIndex=rowNum;}else{const rest={row,rowid,_seq:rowNum,seq,index:-1,$index:-1,_index:-1,treeIndex:-1,_tIndex:rowNum,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}rowNum++;fullMaps[rowid]=row;},{children:transform?mapChildrenField:childrenField});if(transform){afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=index;}});}internalData.afterFullRowMaps=fullMaps;}function updateAfterListIndex($xeTable){const internalData=$xeTable;const{afterFullData,fullDataRowIdData,fullAllDataRowIdData}=internalData;const{handleGetRowId}=createHandleGetRowId($xeTable);const fullMaps={};let rowNum=0;afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){rowRest.seq=seq;rowRest._seq=rowNum;rowRest._index=index;}else{const rest={row,rowid,_seq:rowNum,seq,index:-1,$index:-1,_index:index,treeIndex:-1,_tIndex:-1,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}rowNum++;fullMaps[rowid]=row;});internalData.afterFullRowMaps=fullMaps;}/**
|
|
7762
|
-
* 预编译
|
|
7763
|
-
* 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
|
|
7764
|
-
*/function updateAfterDataIndex($xeTable){const props=$xeTable;const{treeConfig}=props;if(treeConfig){updateAfterTreeIndex($xeTable);}else{updateAfterListIndex($xeTable);}}/**
|
|
7765
|
-
* 如果为虚拟树、行分组、则将树结构拍平
|
|
7766
|
-
* @returns
|
|
7767
|
-
*/function handleVirtualTreeToList($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{fullAllDataRowIdData,treeExpandedMaps,rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);const fullData=[];const expandMaps={};if(treeConfig&&treeOpts.transform){const childrenField=treeOpts.children||treeOpts.childrenField;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterTreeFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&treeExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}else if(isRowGroupStatus){const{childrenField}=aggregateOpts;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterGroupFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&rowGroupExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}return internalData.afterFullData;}/**
|
|
7768
|
-
* 编译处理后全量的表格数据
|
|
7769
|
-
* 如果存在筛选条件,继续处理
|
|
7761
|
+
const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullGroupData,item=>getRowid($xeTable,item)===getRowid($xeTable,validRows[0]),{children:mapChildrenField});if(matchObj){matchObj.items.forEach(item=>{const rowid=handleGetRowId(item);if(rowGroupExpandedMaps[rowid]){delete rowGroupExpandedMaps[rowid];}});}}if(expanded){validRows.forEach(row=>{const rowid=handleGetRowId(row);if(!rowGroupExpandedMaps[rowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){if(row[mapChildrenField]&&row[mapChildrenField].length){rowGroupExpandedMaps[rowid]=row;}}}});}else{validRows.forEach(item=>{const rowid=handleGetRowId(item);if(rowGroupExpandedMaps[rowid]){delete rowGroupExpandedMaps[rowid];}});}}reactData.rowGroupExpandedFlag++;return $xeTable.recalculate();}/**
|
|
7762
|
+
* 行分组的展开与收起
|
|
7763
|
+
* @param rows
|
|
7764
|
+
* @param expanded
|
|
7765
|
+
* @returns
|
|
7766
|
+
*/function handleRowGroupVirtualExpand($xeTable,rows,expanded){const reactData=$xeTable;return handleRowGroupBaseExpand($xeTable,rows,expanded).then(()=>{handleVirtualTreeToList($xeTable);$xeTable.handleTableData();reactData.rowGroupExpandedFlag++;updateAfterDataIndex($xeTable);return $xeTable.$nextTick();}).then(()=>{return handleLazyRecalculate($xeTable,true,true,true);}).then(()=>{setTimeout(()=>{$xeTable.updateCellAreas();},30);});}/**
|
|
7767
|
+
* 处理默认展开分组行
|
|
7768
|
+
*/function handleDefaultRowGroupExpand($xeTable){const reactData=$xeTable;const{isRowGroupStatus}=reactData;if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{expandAll,expandGroupFields}=aggregateOpts;if(expandAll){$xeTable.setAllRowGroupExpand(true);}else if(expandGroupFields&&expandGroupFields.length){$xeTable.setRowGroupExpandByField(expandGroupFields,true);}}}function updateAfterTreeIndex($xeTable){const internalData=$xeTable;const{fullDataRowIdData,fullAllDataRowIdData,afterFullData,afterTreeFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const fullMaps={};let rowNum=0;const{handleGetRowId}=createHandleGetRowId($xeTable);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,(row,index,items,path)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=path.map((num,i)=>i%2===0?Number(num)+1:'.').join('');if(rowRest){rowRest.seq=seq;rowRest._seq=rowNum;rowRest.treeIndex=index;rowRest._tIndex=rowNum;}else{const rest={row,rowid,_seq:rowNum,seq,index:-1,$index:-1,_index:-1,treeIndex:-1,_tIndex:rowNum,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}rowNum++;fullMaps[rowid]=row;},{children:transform?mapChildrenField:childrenField});if(transform){afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=index;}});}internalData.afterFullRowMaps=fullMaps;}function updateAfterListIndex($xeTable){const internalData=$xeTable;const{afterFullData,fullDataRowIdData,fullAllDataRowIdData}=internalData;const{handleGetRowId}=createHandleGetRowId($xeTable);const fullMaps={};let rowNum=0;afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){rowRest.seq=seq;rowRest._seq=rowNum;rowRest._index=index;}else{const rest={row,rowid,_seq:rowNum,seq,index:-1,$index:-1,_index:index,treeIndex:-1,_tIndex:-1,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}rowNum++;fullMaps[rowid]=row;});internalData.afterFullRowMaps=fullMaps;}/**
|
|
7769
|
+
* 预编译
|
|
7770
|
+
* 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
|
|
7771
|
+
*/function updateAfterDataIndex($xeTable){const props=$xeTable;const{treeConfig}=props;if(treeConfig){updateAfterTreeIndex($xeTable);}else{updateAfterListIndex($xeTable);}}/**
|
|
7772
|
+
* 如果为虚拟树、行分组、则将树结构拍平
|
|
7773
|
+
* @returns
|
|
7774
|
+
*/function handleVirtualTreeToList($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{fullAllDataRowIdData,treeExpandedMaps,rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);const fullData=[];const expandMaps={};if(treeConfig&&treeOpts.transform){const childrenField=treeOpts.children||treeOpts.childrenField;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterTreeFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&treeExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}else if(isRowGroupStatus){const{childrenField}=aggregateOpts;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterGroupFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&rowGroupExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}return internalData.afterFullData;}/**
|
|
7775
|
+
* 编译处理后全量的表格数据
|
|
7776
|
+
* 如果存在筛选条件,继续处理
|
|
7770
7777
|
*/function updateAfterFullData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullColumn,tableFullData,tableFullTreeData,tableFullGroupData}=internalData;const filterOpts=$xeTable.computeFilterOpts;const sortOpts=$xeTable.computeSortOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{transform,rowField,parentField,mapChildrenField}=treeOpts;const{isEvery,remote:allRemoteFilter,filterMethod:allFilterMethod,isDeep:isFilterDeep}=filterOpts;const{remote:allRemoteSort,sortMethod:allSortMethod,multiple:sortMultiple,chronological,isDeep:isSortDeep}=sortOpts;let tableData=[];let tableTree=[];// 处理数据
|
|
7771
7778
|
if(!allRemoteFilter||!allRemoteSort){const filterColumns=[];let orderColumns=[];tableFullColumn.forEach(column=>{const{field,sortable,order,filters}=column;if(!allRemoteFilter&&filters&&filters.length){const valueList=[];const itemList=[];filters.forEach(item=>{if(item.checked){itemList.push(item);valueList.push(item.value);}});if(itemList.length){filterColumns.push({column,valueList,itemList});}}if(!allRemoteSort&&sortable&&order){orderColumns.push({column,field,property:field,order:order,sortTime:column.sortTime});}});if(sortMultiple&&chronological&&orderColumns.length>1){orderColumns=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(orderColumns,'sortTime');}// 处理筛选
|
|
7772
7779
|
// 支持单列、多列、组合筛选
|
|
@@ -7789,44 +7796,44 @@ let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(
|
|
|
7789
7796
|
if(isOptimizeMode){renderColumnList=fixedColumn||[];}}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isGroup){if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}else{if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}}if(currScrollElem){currScrollElem.style.height=`${tHeaderHeight}px`;}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='body'){if(currScrollElem){currScrollElem.style.maxHeight=customMaxHeight?`${bodyMaxHeight}px`:'';currScrollElem.style.height=customHeight?`${tbHeight}px`:'';currScrollElem.style.minHeight=`${bodyMinHeight}px`;}// 如果是固定列
|
|
7790
7797
|
if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${tHeaderHeight}px`;}fixedWrapperElem.style.height=`${customHeight>0?customHeight:tableHeight+tHeaderHeight+tFooterHeight+osbHeight}px`;fixedWrapperElem.style.width=`${fixedColumn.reduce((previous,column)=>previous+column.renderWidth,0)}px`;}let renderColumnList=tableColumn;const isOptimizeMode=isBodyRenderOptimize;if(fixedType){renderColumnList=visibleColumn;if(isOptimizeMode){renderColumnList=fixedColumn||[];}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';// 兼容性处理
|
|
7791
7798
|
tableElem.style.paddingRight=osbWidth&&fixedType&&(browseObj.firefox||browseObj.safari)?`${osbWidth}px`:'';}const emptyBlockElem=getRefElem(elemStore[`${name}-${layout}-emptyBlock`]);if(emptyBlockElem){emptyBlockElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='footer'){let renderColumnList=tableColumn;const isOptimizeMode=isFooterRenderOptimize;if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){if(isOptimizeMode){renderColumnList=fixedColumn||[];}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}if(currScrollElem){currScrollElem.style.height=`${tFooterHeight}px`;// 如果是固定列
|
|
7792
|
-
if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${customHeight>0?customHeight-tFooterHeight-osbHeight:tableHeight+tHeaderHeight}px`;}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}});});if(currentRow){$xeTable.setCurrentRow(currentRow);}if(mouseConfig&&mouseOpts.selected&&editStore.selected.row&&editStore.selected.column){$xeTable.addCellSelectedClass();}if($xeGanttView&&$xeGanttView.handleUpdateStyle){$xeGanttView.handleUpdateStyle();}return $xeTable.$nextTick();}function checkValidate($xeTable,type){if($xeTable.triggerValidate){return $xeTable.triggerValidate(type);}return $xeTable.$nextTick();}/**
|
|
7793
|
-
* 当单元格发生改变时
|
|
7794
|
-
* 如果存在规则,则校验
|
|
7795
|
-
*/function handleChangeCell($xeTable,evnt,params){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}function handleDefaultSort($xeTable){const props=$xeTable;const{sortConfig}=props;if(sortConfig){const sortOpts=$xeTable.computeSortOpts;let{defaultSort}=sortOpts;if(defaultSort){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(defaultSort)){defaultSort=[defaultSort];}if(defaultSort.length){(sortConfig.multiple?defaultSort:defaultSort.slice(0,1)).forEach((item,index)=>{const{field,order}=item;if(field&&order){const column=$xeTable.getColumnByField(field);if(column&&column.sortable){column.order=order;column.sortTime=Date.now()+index;}}});if(!sortOpts.remote){$xeTable.handleTableData(true).then(updateStyle);}}}}}/**
|
|
7796
|
-
* 处理默认勾选
|
|
7797
|
-
*/function handleDefaultSelectionChecked($xeTable){const props=$xeTable;const internalData=$xeTable;const{checkboxConfig}=props;if(checkboxConfig){const{fullDataRowIdData}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkAll,checkRowKeys}=checkboxOpts;if(checkAll){handleCheckedAllCheckboxRow($xeTable,true,true);}else if(checkRowKeys){const defSelection=[];checkRowKeys.forEach(rowid=>{if(fullDataRowIdData[rowid]){defSelection.push(fullDataRowIdData[rowid].row);}});handleCheckedCheckboxRow($xeTable,defSelection,true,true);}}}/**
|
|
7798
|
-
* 处理单选框默认勾选
|
|
7799
|
-
*/function handleDefaultRadioChecked($xeTable){const props=$xeTable;const internalData=$xeTable;const{radioConfig}=props;if(radioConfig){const{fullDataRowIdData}=internalData;const radioOpts=$xeTable.computeRadioOpts;const{checkRowKey:rowid,reserve}=radioOpts;if(rowid){if(fullDataRowIdData[rowid]){handleCheckedRadioRow($xeTable,fullDataRowIdData[rowid].row,true);}if(reserve){const rowkey=getRowkey($xeTable);internalData.radioReserveRow={[rowkey]:rowid};}}}}/**
|
|
7800
|
-
* 处理默认展开行
|
|
7799
|
+
if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${customHeight>0?customHeight-tFooterHeight-osbHeight:tableHeight+tHeaderHeight}px`;}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}});});if(currentRow){$xeTable.setCurrentRow(currentRow);}if(mouseConfig&&mouseOpts.selected&&editStore.selected.row&&editStore.selected.column){$xeTable.addCellSelectedClass();}if($xeGanttView&&$xeGanttView.handleUpdateStyle){$xeGanttView.handleUpdateStyle();}return $xeTable.$nextTick();}function checkValidate($xeTable,type){if($xeTable.triggerValidate){return $xeTable.triggerValidate(type);}return $xeTable.$nextTick();}/**
|
|
7800
|
+
* 当单元格发生改变时
|
|
7801
|
+
* 如果存在规则,则校验
|
|
7802
|
+
*/function handleChangeCell($xeTable,evnt,params){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}function handleDefaultSort($xeTable){const props=$xeTable;const{sortConfig}=props;if(sortConfig){const sortOpts=$xeTable.computeSortOpts;let{defaultSort}=sortOpts;if(defaultSort){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(defaultSort)){defaultSort=[defaultSort];}if(defaultSort.length){(sortConfig.multiple?defaultSort:defaultSort.slice(0,1)).forEach((item,index)=>{const{field,order}=item;if(field&&order){const column=$xeTable.getColumnByField(field);if(column&&column.sortable){column.order=order;column.sortTime=Date.now()+index;}}});if(!sortOpts.remote){$xeTable.handleTableData(true).then(updateStyle);}}}}}/**
|
|
7803
|
+
* 处理默认勾选
|
|
7804
|
+
*/function handleDefaultSelectionChecked($xeTable){const props=$xeTable;const internalData=$xeTable;const{checkboxConfig}=props;if(checkboxConfig){const{fullDataRowIdData}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkAll,checkRowKeys}=checkboxOpts;if(checkAll){handleCheckedAllCheckboxRow($xeTable,true,true);}else if(checkRowKeys){const defSelection=[];checkRowKeys.forEach(rowid=>{if(fullDataRowIdData[rowid]){defSelection.push(fullDataRowIdData[rowid].row);}});handleCheckedCheckboxRow($xeTable,defSelection,true,true);}}}/**
|
|
7805
|
+
* 处理单选框默认勾选
|
|
7806
|
+
*/function handleDefaultRadioChecked($xeTable){const props=$xeTable;const internalData=$xeTable;const{radioConfig}=props;if(radioConfig){const{fullDataRowIdData}=internalData;const radioOpts=$xeTable.computeRadioOpts;const{checkRowKey:rowid,reserve}=radioOpts;if(rowid){if(fullDataRowIdData[rowid]){handleCheckedRadioRow($xeTable,fullDataRowIdData[rowid].row,true);}if(reserve){const rowkey=getRowkey($xeTable);internalData.radioReserveRow={[rowkey]:rowid};}}}}/**
|
|
7807
|
+
* 处理默认展开行
|
|
7801
7808
|
*/function handleDefaultRowExpand($xeTable){const props=$xeTable;const internalData=$xeTable;const{expandConfig}=props;if(expandConfig){const{fullDataRowIdData}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{expandAll,expandRowKeys}=expandOpts;if(expandAll){$xeTable.setAllRowExpand(true);}else if(expandRowKeys){const defExpandeds=[];expandRowKeys.forEach(rowid=>{if(fullDataRowIdData[rowid]){defExpandeds.push(fullDataRowIdData[rowid].row);}});$xeTable.setRowExpand(defExpandeds,true);}}}function handleRadioReserveRow($xeTable,row){const internalData=$xeTable;const radioOpts=$xeTable.computeRadioOpts;if(radioOpts.reserve){internalData.radioReserveRow=row;}}function handleCheckboxReserveRow($xeTable,row,checked){const internalData=$xeTable;const{checkboxReserveRowMap}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;if(checkboxOpts.reserve){const rowid=getRowid($xeTable,row);if(checked){checkboxReserveRowMap[rowid]=row;}else if(checkboxReserveRowMap[rowid]){delete checkboxReserveRowMap[rowid];}}}function handleCheckedRadioRow($xeTable,row,isForce){const reactData=$xeTable;const radioOpts=$xeTable.computeRadioOpts;const{checkMethod}=radioOpts;if(row&&(isForce||!checkMethod||checkMethod({$table:$xeTable,row}))){reactData.selectRadioRow=row;handleRadioReserveRow($xeTable,row);}return $xeTable.$nextTick();}function handleCheckedCheckboxRow($xeTable,rows,value,isForce){if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}$xeTable.handleBatchSelectRows(rows,!!value,isForce);$xeTable.checkSelectionStatus();return $xeTable.$nextTick();}function handleCheckedAllCheckboxRow($xeTable,checked,isForce){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{afterFullData,afterTreeFullData,afterGroupFullData,checkboxReserveRowMap,selectCheckboxMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,reserve,checkMethod}=checkboxOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);// indeterminateField 仅支持读取
|
|
7802
|
-
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const selectRowMaps={};/**
|
|
7803
|
-
* 绑定属性方式(有污染)
|
|
7804
|
-
* 必须在行数据存在对应的属性,否则将不响应
|
|
7809
|
+
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const selectRowMaps={};/**
|
|
7810
|
+
* 绑定属性方式(有污染)
|
|
7811
|
+
* 必须在行数据存在对应的属性,否则将不响应
|
|
7805
7812
|
*/if(checkField){const checkValFn=row=>{if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){if(checked){selectRowMaps[handleGetRowId(row)]=row;}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,checkField,checked);}if((treeConfig||isRowGroupStatus)&&indeterminateField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,indeterminateField,false);}};// 如果存在选中方法
|
|
7806
7813
|
// 如果方法成立,则更新值,否则忽略该数据
|
|
7807
|
-
if(treeConfig||isRowGroupStatus){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData,checkValFn,{children:childrenField});}else{afterFullData.forEach(checkValFn);}}else{/**
|
|
7808
|
-
* 默认方式(无污染)
|
|
7809
|
-
* 无需任何属性,直接绑定
|
|
7810
|
-
*/if(isRowGroupStatus){if(checked){/**
|
|
7811
|
-
* 如果是行分组勾选
|
|
7812
|
-
* 如果方法成立,则添加到临时集合中
|
|
7813
|
-
*/external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData,row=>{if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){const rowid=handleGetRowId(row);selectRowMaps[rowid]=row;}},{children:aggregateOpts.mapChildrenField});}else{/**
|
|
7814
|
-
* 如果是树取消
|
|
7815
|
-
* 如果方法成立,则不添加到临时集合中
|
|
7816
|
-
*/if(!isForce&&checkMethod){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData,row=>{const rowid=handleGetRowId(row);if(checkMethod({$table:$xeTable,row})?false:selectCheckboxMaps[rowid]){selectRowMaps[rowid]=row;}},{children:aggregateOpts.mapChildrenField});}}}else if(treeConfig){if(checked){/**
|
|
7817
|
-
* 如果是树勾选
|
|
7818
|
-
* 如果方法成立,则添加到临时集合中
|
|
7819
|
-
*/external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,row=>{if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){const rowid=handleGetRowId(row);selectRowMaps[rowid]=row;}},{children:childrenField});}else{/**
|
|
7820
|
-
* 如果是树取消
|
|
7821
|
-
* 如果方法成立,则不添加到临时集合中
|
|
7822
|
-
*/if(!isForce&&checkMethod){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,row=>{const rowid=handleGetRowId(row);if(checkMethod({$table:$xeTable,row})?false:selectCheckboxMaps[rowid]){selectRowMaps[rowid]=row;}},{children:childrenField});}}}else{if(checked){/**
|
|
7823
|
-
* 如果是行勾选
|
|
7824
|
-
* 如果存在选中方法且成立或者本身已勾选,则添加到临时集合中
|
|
7825
|
-
* 如果不存在选中方法,则添加所有数据到临时集合中
|
|
7826
|
-
*/if(!isForce&&checkMethod){afterFullData.forEach(row=>{const rowid=handleGetRowId(row);if(selectCheckboxMaps[rowid]||checkMethod({$table:$xeTable,row})){selectRowMaps[rowid]=row;}});}else{afterFullData.forEach(row=>{const rowid=handleGetRowId(row);selectRowMaps[rowid]=row;});}}else{/**
|
|
7827
|
-
* 如果是行取消
|
|
7828
|
-
* 如果方法成立,则不添加到临时集合中;如果方法不成立则判断当前是否已勾选,如果已被勾选则添加到新集合中
|
|
7829
|
-
* 如果不存在选中方法,无需处理,临时集合默认为空
|
|
7814
|
+
if(treeConfig||isRowGroupStatus){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData,checkValFn,{children:childrenField});}else{afterFullData.forEach(checkValFn);}}else{/**
|
|
7815
|
+
* 默认方式(无污染)
|
|
7816
|
+
* 无需任何属性,直接绑定
|
|
7817
|
+
*/if(isRowGroupStatus){if(checked){/**
|
|
7818
|
+
* 如果是行分组勾选
|
|
7819
|
+
* 如果方法成立,则添加到临时集合中
|
|
7820
|
+
*/external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData,row=>{if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){const rowid=handleGetRowId(row);selectRowMaps[rowid]=row;}},{children:aggregateOpts.mapChildrenField});}else{/**
|
|
7821
|
+
* 如果是树取消
|
|
7822
|
+
* 如果方法成立,则不添加到临时集合中
|
|
7823
|
+
*/if(!isForce&&checkMethod){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData,row=>{const rowid=handleGetRowId(row);if(checkMethod({$table:$xeTable,row})?false:selectCheckboxMaps[rowid]){selectRowMaps[rowid]=row;}},{children:aggregateOpts.mapChildrenField});}}}else if(treeConfig){if(checked){/**
|
|
7824
|
+
* 如果是树勾选
|
|
7825
|
+
* 如果方法成立,则添加到临时集合中
|
|
7826
|
+
*/external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,row=>{if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){const rowid=handleGetRowId(row);selectRowMaps[rowid]=row;}},{children:childrenField});}else{/**
|
|
7827
|
+
* 如果是树取消
|
|
7828
|
+
* 如果方法成立,则不添加到临时集合中
|
|
7829
|
+
*/if(!isForce&&checkMethod){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,row=>{const rowid=handleGetRowId(row);if(checkMethod({$table:$xeTable,row})?false:selectCheckboxMaps[rowid]){selectRowMaps[rowid]=row;}},{children:childrenField});}}}else{if(checked){/**
|
|
7830
|
+
* 如果是行勾选
|
|
7831
|
+
* 如果存在选中方法且成立或者本身已勾选,则添加到临时集合中
|
|
7832
|
+
* 如果不存在选中方法,则添加所有数据到临时集合中
|
|
7833
|
+
*/if(!isForce&&checkMethod){afterFullData.forEach(row=>{const rowid=handleGetRowId(row);if(selectCheckboxMaps[rowid]||checkMethod({$table:$xeTable,row})){selectRowMaps[rowid]=row;}});}else{afterFullData.forEach(row=>{const rowid=handleGetRowId(row);selectRowMaps[rowid]=row;});}}else{/**
|
|
7834
|
+
* 如果是行取消
|
|
7835
|
+
* 如果方法成立,则不添加到临时集合中;如果方法不成立则判断当前是否已勾选,如果已被勾选则添加到新集合中
|
|
7836
|
+
* 如果不存在选中方法,无需处理,临时集合默认为空
|
|
7830
7837
|
*/if(!isForce&&checkMethod){afterFullData.forEach(row=>{const rowid=handleGetRowId(row);if(checkMethod({$table:$xeTable,row})?false:selectCheckboxMaps[rowid]){selectRowMaps[rowid]=row;}});}}}}if(reserve){if(checked){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectRowMaps,(row,rowid)=>{checkboxReserveRowMap[rowid]=row;});}else{afterFullData.forEach(row=>handleCheckboxReserveRow($xeTable,row,false));}}reactData.updateCheckboxFlag++;internalData.selectCheckboxMaps=checkField?{}:selectRowMaps;reactData.isAllSelected=checked;reactData.isIndeterminate=false;internalData.treeIndeterminateRowMaps={};$xeTable.checkSelectionStatus();return $xeTable.$nextTick();}// 还原展开、选中等相关状态
|
|
7831
7838
|
function handleReserveStatus($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{expandColumn,selectRadioRow}=reactData;const{fullDataRowIdData,fullAllDataRowIdData,radioReserveRow,selectCheckboxMaps,treeExpandedMaps,rowExpandedMaps,currentRow}=internalData;const expandOpts=$xeTable.computeExpandOpts;const treeOpts=$xeTable.computeTreeOpts;const radioOpts=$xeTable.computeRadioOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;// 单选框
|
|
7832
7839
|
if(selectRadioRow&&!fullAllDataRowIdData[getRowid($xeTable,selectRadioRow)]){reactData.selectRadioRow=null;// 刷新单选行状态
|
|
@@ -7840,19 +7847,19 @@ internalData.rowExpandedMaps=expandColumn?getRecoverRowMaps($xeTable,rowExpanded
|
|
|
7840
7847
|
reactData.rowExpandedFlag++;// 还原保留状态
|
|
7841
7848
|
if(expandColumn&&expandOpts.reserve){$xeTable.setRowExpand(handleReserveRow($xeTable,internalData.rowExpandedReserveRowMap),true);}// 树展开
|
|
7842
7849
|
internalData.treeExpandedMaps=treeConfig?getRecoverRowMaps($xeTable,treeExpandedMaps):{};// 刷新树展开状态
|
|
7843
|
-
reactData.treeExpandedFlag++;if(treeConfig&&treeOpts.reserve){$xeTable.setTreeExpand(handleReserveRow($xeTable,internalData.treeExpandedReserveRowMap),true);}}/**
|
|
7844
|
-
* 处理默认展开树节点
|
|
7850
|
+
reactData.treeExpandedFlag++;if(treeConfig&&treeOpts.reserve){$xeTable.setTreeExpand(handleReserveRow($xeTable,internalData.treeExpandedReserveRowMap),true);}}/**
|
|
7851
|
+
* 处理默认展开树节点
|
|
7845
7852
|
*/const handleDefaultTreeExpand=$xeTable=>{const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;if(treeConfig){const{fullAllDataRowIdData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{expandAll,expandRowKeys}=treeOpts;if(expandAll){$xeTable.setAllTreeExpand(true);}else if(expandRowKeys){const defExpandeds=[];expandRowKeys.forEach(rowid=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){defExpandeds.push(rowRest.row);}});$xeTable.setTreeExpand(defExpandeds,true);}}};const handleAsyncTreeExpandChilds=($xeTable,row)=>{const reactData=$xeTable;const internalData=$xeTable;const treeOpts=$xeTable.computeTreeOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{transform,loadMethod}=treeOpts;const{checkStrictly}=checkboxOpts;return new Promise(resolve=>{if(loadMethod){const{fullAllDataRowIdData,treeExpandLazyLoadedMaps}=internalData;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];treeExpandLazyLoadedMaps[rowid]=row;Promise.resolve(loadMethod({$table:$xeTable,row})).then(childRecords=>{if(rowRest){rowRest.treeLoaded=true;}if(treeExpandLazyLoadedMaps[rowid]){delete treeExpandLazyLoadedMaps[rowid];}if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(childRecords)){childRecords=[];}if(childRecords){return $xeTable.loadTreeChildren(row,childRecords).then(childRows=>{const{treeExpandedMaps}=internalData;if(childRows.length&&!treeExpandedMaps[rowid]){treeExpandedMaps[rowid]=row;}reactData.treeExpandedFlag++;// 如果当前节点已选中,则展开后子节点也被选中
|
|
7846
7853
|
if(!checkStrictly&&$xeTable.isCheckedByCheckboxRow(row)){handleCheckedCheckboxRow($xeTable,childRows,true);}return $xeTable.$nextTick().then(()=>{if(transform){$xeTable.handleTableData();updateAfterDataIndex($xeTable);return $xeTable.$nextTick();}});});}}).catch(()=>{const{treeExpandLazyLoadedMaps}=internalData;if(rowRest){rowRest.treeLoaded=false;}if(treeExpandLazyLoadedMaps[rowid]){delete treeExpandLazyLoadedMaps[rowid];}}).finally(()=>{reactData.treeExpandedFlag++;$xeTable.$nextTick().then(()=>$xeTable.recalculate()).then(()=>resolve());});}else{resolve();}});};const handleTreeExpandReserve=($xeTable,row,expanded)=>{const internalData=$xeTable;const{treeExpandedReserveRowMap}=internalData;const treeOpts=$xeTable.computeTreeOpts;if(treeOpts.reserve){const rowid=getRowid($xeTable,row);if(expanded){treeExpandedReserveRowMap[rowid]=row;}else if(treeExpandedReserveRowMap[rowid]){delete treeExpandedReserveRowMap[rowid];}}};const handleAsyncRowExpand=($xeTable,row)=>{const reactData=$xeTable;const internalData=$xeTable;return new Promise(resolve=>{const expandOpts=$xeTable.computeExpandOpts;const{loadMethod}=expandOpts;if(loadMethod){const{fullAllDataRowIdData,rowExpandLazyLoadedMaps}=internalData;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];rowExpandLazyLoadedMaps[rowid]=row;loadMethod({$table:$xeTable,row,rowIndex:$xeTable.getRowIndex(row),$rowIndex:$xeTable.getVMRowIndex(row)}).then(()=>{const{rowExpandedMaps}=internalData;if(rowRest){rowRest.expandLoaded=true;}rowExpandedMaps[rowid]=row;reactData.rowExpandedFlag++;}).catch(()=>{if(rowRest){rowRest.expandLoaded=false;}}).finally(()=>{const{rowExpandLazyLoadedMaps}=internalData;if(rowExpandLazyLoadedMaps[rowid]){delete rowExpandLazyLoadedMaps[rowid];}reactData.rowExpandedFlag++;$xeTable.$nextTick().then(()=>$xeTable.recalculate()).then(()=>$xeTable.updateCellAreas()).then(()=>resolve());});}else{resolve();}});};function calcVarRowHeightConfig($xeTable,sizeKey,sizeEl){const reactData=$xeTable;const{rowHeightStore}=reactData;if(sizeEl&&sizeEl.clientHeight){rowHeightStore[sizeKey]=sizeEl.clientHeight;}}function computeRowHeight($xeTable){const reactData=$xeTable;const{isAllOverflow}=reactData;const tableHeader=$xeTable.$refs.refTableHeader;const tableBody=$xeTable.$refs.refTableBody;const tableBodyElem=tableBody?tableBody.$el:null;const defaultRowHeight=$xeTable.computeDefaultRowHeight;let rowHeight=0;if(isAllOverflow){if(tableBodyElem){const tableHeaderElem=tableHeader?tableHeader.$el:null;let firstTrElem;firstTrElem=tableBodyElem.querySelector('tr');if(!firstTrElem&&tableHeaderElem){firstTrElem=tableHeaderElem.querySelector('tr');}if(firstTrElem){rowHeight=firstTrElem.clientHeight;}}if(!rowHeight){rowHeight=defaultRowHeight;}}else{rowHeight=defaultRowHeight;}// 最低支持 18px 行高
|
|
7847
7854
|
return Math.max(18,rowHeight);}function handleVirtualYVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,expandColumn,isScrollYBig,scrollYHeight}=reactData;const{elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData}=internalData;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientHeight=bodyScrollElem.clientHeight;let scrollTop=bodyScrollElem.scrollTop;if(isScrollYBig){scrollTop=Math.ceil((scrollYHeight-clientHeight)*Math.min(1,scrollTop/(maxYHeight-clientHeight)));}const startTop=scrollTop;const endTop=scrollTop+clientHeight;let toVisibleIndex=-1;let visibleSize=0;const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){toVisibleIndex=Math.floor(startTop/defaultRowHeight)-1;visibleSize=Math.ceil(clientHeight/defaultRowHeight)+1;}else{const{handleGetRowId}=createHandleGetRowId($xeTable);let leftIndex=0;let rightIndex=afterFullData.length;while(leftIndex<rightIndex){const rIndex=Math.floor((leftIndex+rightIndex)/2);const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};if(rowRest.oTop<=startTop){leftIndex=rIndex+1;}else{rightIndex=rIndex;}}toVisibleIndex=leftIndex===afterFullData.length?leftIndex:Math.max(0,leftIndex<afterFullData.length?leftIndex-2:0);for(let rIndex=toVisibleIndex,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};visibleSize++;if(rowRest.oTop>endTop||visibleSize>=100){break;}}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function calculateMergerOffsetIndex(list,mergeMaps,offsetItem,type){const mKey=`${offsetItem.startIndex}:${offsetItem.endIndex}`;const mObj=mergeMaps[mKey];// 缓存
|
|
7848
7855
|
if(mObj){offsetItem.startIndex=mObj.startIndex;offsetItem.endIndex=mObj.endIndex;}else{for(let mcIndex=0,len=list.length;mcIndex<len;mcIndex++){const mergeItem=list[mcIndex];const{startIndex,endIndex}=offsetItem;const mergeStartIndex=mergeItem[type];const mergeSpanNumber=mergeItem[type+'span'];const mergeEndIndex=mergeStartIndex+mergeSpanNumber;if(mergeStartIndex<startIndex&&startIndex<mergeEndIndex){offsetItem.startIndex=mergeStartIndex;}if(mergeStartIndex<endIndex&&endIndex<mergeEndIndex){offsetItem.endIndex=mergeEndIndex;}if(offsetItem.startIndex!==startIndex||offsetItem.endIndex!==endIndex){mcIndex=-1;}}mergeMaps[mKey]=offsetItem;}}function buildMergeData(mergeConfigs){const mergeMaps={};const mergeRowMaps={};const mergeColMaps={};if(mergeConfigs&&mergeConfigs.length){for(let mIndex=0;mIndex<mergeConfigs.length;mIndex++){const{row:_rowIndex,col:_columnIndex,rowspan:mergeRowspan,colspan:mergeColspan}=mergeConfigs[mIndex];for(let i=0;i<mergeRowspan;i++){const currRIndex=_rowIndex+i;for(let j=0;j<mergeColspan;j++){const currCIndex=_columnIndex+j;mergeMaps[`${currRIndex}:${currCIndex}`]=!i&&!j?{rowspan:mergeRowspan,colspan:mergeColspan}:{rowspan:0,colspan:0};}}}}return{mergeMaps,mergeRowMaps,mergeColMaps};}function handleBodyMerge($xeTable,merges){const internalData=$xeTable;const{fullAllDataRowIdData,fullColumnIdData,visibleColumn,afterFullData,mergeBodyList,mergeBodyMaps}=internalData;if(merges){const{handleGetRowId}=createHandleGetRowId($xeTable);if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row,col,rowspan,colspan}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)){mergeRowIndex=row;}else{const rowid=row?handleGetRowId(row):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(col)){mergeColumnIndex=col;}else{const colid=col?col.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(rowspan)||1;colspan=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=afterFullData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeBodyList.push(mergeItem);}}}});}}function removeBodyMerges($xeTable,merges){const internalData=$xeTable;const{mergeBodyList,fullColumnIdData,fullAllDataRowIdData,mergeBodyMaps}=internalData;const rest=[];if(merges){const{handleGetRowId}=createHandleGetRowId($xeTable);if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(mergeBodyList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeBodyList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(rItems[0]);if(mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;}function handleHeaderMerge($xeTable,merges){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{showCustomHeader}=props;const{footerTableData}=reactData;const{mergeHeaderList,mergeHeaderMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(rowspan)||1;colspan=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(colspan)||1;if(!showCustomHeader&&rowspan>1){methods_errLog('vxe.error.notSupportProp',['[table] show-custom-header=false',`rowspan=${rowspan}`,'rowspan=1']);return;}if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeHeaderList.push(mergeItem);}}}});}}function removeHeaderMerges($xeTable,merges){const internalData=$xeTable;const{mergeHeaderList,fullColumnIdData,mergeHeaderMaps}=internalData;const rest=[];if(merges){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(mergeHeaderList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeHeaderList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;}function handleFooterMerge($xeTable,merges){const reactData=$xeTable;const internalData=$xeTable;const{footerTableData}=reactData;const{mergeFooterList,mergeFooterMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(rowspan)||1;colspan=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeFooterList.push(mergeItem);}}}});}}function removeFooterMerges($xeTable,merges){const internalData=$xeTable;const{mergeFooterList,fullColumnIdData,mergeFooterMaps}=internalData;const rest=[];if(merges){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(mergeFooterList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeFooterList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;}function handleSortEvent($xeTable,evnt,sortConfs,isUpdate){const internalData=$xeTable;const{tableFullColumn}=internalData;const sortOpts=$xeTable.computeSortOpts;const{multiple,remote,orders}=sortOpts;if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortConfs)){sortConfs=[sortConfs];}if(sortConfs&&sortConfs.length){const orderActiveMaps={};if(!multiple){sortConfs=[sortConfs[0]];tableFullColumn.forEach(column=>{if(column.order){orderActiveMaps[column.id]=column;}});}const sortColMpps={};let firstColumn=null;sortConfs.forEach((confs,index)=>{let{field,order}=confs;let column=field;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(field)){column=$xeTable.getColumnByField(field);}if(!firstColumn){firstColumn=column;}if(column&&column.sortable){if(orders&&orders.indexOf(order)===-1){order=getNextSortOrder($xeTable,column);}if(column.order!==order){column.order=order;}column.sortTime=Date.now()+index;sortColMpps[column.id]=column;}});if(!multiple){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(orderActiveMaps,(oaCol,oaId)=>{if(!sortColMpps[oaId]){oaCol.order=null;}});}if(isUpdate){if(!remote){$xeTable.handleTableData(true);}}if(evnt){$xeTable.handleColumnSortEvent(evnt,firstColumn);}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);$xeTable.updateCellAreas();return updateStyle($xeTable);});}return $xeTable.$nextTick();}function clearAllSort($xeTable){const internalData=$xeTable;const{tableFullColumn}=internalData;tableFullColumn.forEach(column=>{column.order=null;});}function calcTableHeight($xeTable,key){const props=$xeTable;const reactData=$xeTable;const{editConfig,editRules}=props;const{parentHeight,tableColumn}=reactData;let val=props[key];if(key==='minHeight'){const defMinHeight=methods_getConfig().table.minHeight;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(val)){if(eqEmptyValue(defMinHeight)){if(!tableColumn.length){// 如果全部列被隐藏
|
|
7849
7856
|
val=40;}else if(editRules&&isEnableConf(editConfig)){// 编辑模式默认最小高度
|
|
7850
|
-
val=144;}}else{val=defMinHeight;}}}let num=0;if(val){if(val==='100%'||val==='auto'){num=parentHeight;}else{const excludeHeight=$xeTable.getExcludeHeight();if(isScale(val)){num=Math.floor((external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(val)||1)/100*parentHeight);}else{num=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(val);}num=Math.max(40,num-excludeHeight);}}return num;}/**
|
|
7851
|
-
* 列宽算法,计算单元格列宽,动态分配可用剩余空间
|
|
7852
|
-
* 支持 px、%、固定 混合分配
|
|
7853
|
-
* 支持动态列表调整分配
|
|
7854
|
-
* 支持自动分配偏移量
|
|
7855
|
-
* 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
|
|
7857
|
+
val=144;}}else{val=defMinHeight;}}}let num=0;if(val){if(val==='100%'||val==='auto'){num=parentHeight;}else{const excludeHeight=$xeTable.getExcludeHeight();if(isScale(val)){num=Math.floor((external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(val)||1)/100*parentHeight);}else{num=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(val);}num=Math.max(40,num-excludeHeight);}}return num;}/**
|
|
7858
|
+
* 列宽算法,计算单元格列宽,动态分配可用剩余空间
|
|
7859
|
+
* 支持 px、%、固定 混合分配
|
|
7860
|
+
* 支持动态列表调整分配
|
|
7861
|
+
* 支持自动分配偏移量
|
|
7862
|
+
* 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
|
|
7856
7863
|
*/function autoCellWidth($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const yHandleEl=$xeTable.$refs.refScrollYHandleElem;if(!yHandleEl){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;if(!xHandleEl){return;}const columnOpts=$xeTable.computeColumnOpts;let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
|
|
7857
7864
|
const bodyWidth=bodyWrapperElem.clientWidth;let remainWidth=bodyWidth;let meanWidth=remainWidth/100;const{fit}=props;const{columnStore}=reactData;const{resizeList,pxMinList,autoMinList,pxList,scaleList,scaleMinList,autoList,remainList}=columnStore;const parseColumnMaxWidth=column=>{const maxWidth=column.maxWidth||columnOpts.maxWidth;if(maxWidth&&maxWidth!=='auto'){if(isScale(maxWidth)){return Math.floor(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(maxWidth)*meanWidth);}return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(maxWidth);}return 0;};// 最小宽
|
|
7858
7865
|
pxMinList.forEach(column=>{let miWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.minWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){miWidth=Math.min(miWidth,mxWidth);}tWidth+=miWidth;column.renderWidth=miWidth;});// 最小自适应
|
|
@@ -7862,18 +7869,18 @@ scaleList.forEach(column=>{let sfWidth=Math.floor(external_root_XEUtils_commonjs
|
|
|
7862
7869
|
pxList.forEach(column=>{let pWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.width);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){pWidth=Math.min(pWidth,mxWidth);}tWidth+=pWidth;column.renderWidth=pWidth;});// 自适应宽
|
|
7863
7870
|
autoList.forEach(column=>{let aWidth=Math.max(60,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.renderAutoWidth));const mxWidth=parseColumnMaxWidth(column);if(mxWidth){aWidth=Math.min(aWidth,mxWidth);}tWidth+=aWidth;column.renderWidth=aWidth;});// 调整了列宽
|
|
7864
7871
|
resizeList.forEach(column=>{const width=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.resizeWidth);tWidth+=width;column.renderWidth=width;});const zoomColumnList=scaleMinList.concat(pxMinList).concat(autoMinList).filter(column=>!parseColumnMaxWidth(column));remainWidth-=tWidth;meanWidth=remainWidth>0?Math.floor(remainWidth/(zoomColumnList.length+remainList.length)):0;if(fit){if(remainWidth>0){zoomColumnList.forEach(column=>{tWidth+=meanWidth;column.renderWidth+=meanWidth;});}}else{meanWidth=minCellWidth;}// 剩余均分
|
|
7865
|
-
remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.renderWidth=width;tWidth+=width;});if(fit){/**
|
|
7866
|
-
* 偏移量算法
|
|
7867
|
-
* 如果所有列足够放的情况下,从最后动态列开始分配
|
|
7868
|
-
* 排除已设置 max-width
|
|
7869
|
-
*/const dynamicList=scaleList.concat(scaleMinList).concat(pxMinList).concat(autoMinList).concat(remainList).filter(column=>!parseColumnMaxWidth(column));let dynamicSize=dynamicList.length-1;if(dynamicSize>0){let i=bodyWidth-tWidth;if(i>0){while(i>0&&dynamicSize>=0){i--;dynamicList[dynamicSize--].renderWidth++;}tWidth=bodyWidth;}}}reactData.scrollXWidth=tWidth;reactData.resizeWidthFlag++;updateColumnOffsetLeft($xeTable);updateHeight($xeTable);}/**
|
|
7870
|
-
* 计算自适应行高
|
|
7871
|
-
*/const calcCellAutoHeight=($xeTable,rowid,rowRest,wrapperEl)=>{const internalData=$xeTable;const{fullCellHeightMaps}=internalData;let chRest=fullCellHeightMaps[rowid];if(!chRest){chRest={};fullCellHeightMaps[rowid]=chRest;}const wrapperElemList=wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);let firstCellStyle=null;let topBottomPadding=0;let changeCH=false;for(let i=0;i<wrapperElemList.length;i++){const wrapperElem=wrapperElemList[i];const cellElem=wrapperElem.parentElement;const cellStyle=cellElem.style;const orHeight=cellStyle.height;const colid=wrapperElem.getAttribute('colid')||'';cellStyle.height='';if(!firstCellStyle){firstCellStyle=getComputedStyle(cellElem);topBottomPadding=firstCellStyle?Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(firstCellStyle.paddingTop)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(firstCellStyle.paddingBottom)):0;}const cellHeight=wrapperElem?wrapperElem.clientHeight:0;const colHeight=Math.ceil(cellHeight+topBottomPadding);if(chRest[colid]!==colHeight){changeCH=true;chRest[colid]=colHeight;}cellStyle.height=orHeight;}const cellMaxHeight=getRowMaxHeight(chRest,changeCH);return cellMaxHeight;};/**
|
|
7872
|
-
* 自适应行高
|
|
7873
|
-
*/const calcCellHeight=$xeTable=>{const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableData,isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const treeOpts=$xeTable.computeTreeOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;if(!isAllOverflow&&(scrollYLoad||scrollXLoad||treeConfig&&treeOpts.showLine)){const{handleGetRowId}=createHandleGetRowId($xeTable);el.setAttribute('data-calc-row','Y');tableData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const height=calcCellAutoHeight($xeTable,rowid,rowRest,el);rowRest.height=Math.max(defaultRowHeight,height);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}};function getOrderField($xeTable,column){const reactData=$xeTable;const{isRowGroupStatus}=reactData;const{sortBy,sortType,aggFunc}=column;return isRowGroupStatus&&aggFunc?row=>{if(row.isAggregate){const aggData=row.aggData;const currAggData=aggData?aggData[column.field]:null;return currAggData?currAggData.value:null;}let cellValue;if(sortBy){cellValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(sortBy)?sortBy({row,column}):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='number'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='string'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(cellValue);}return cellValue;}:row=>{let cellValue;if(sortBy){cellValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(sortBy)?sortBy({row,column}):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='number'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='string'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(cellValue);}return cellValue;};}function handleTargetEnterEvent($xeTable,isClear){const internalData=$xeTable;const $tooltip=$xeTable.$refs.refTooltip;clearTimeout(internalData.tooltipTimeout);if(isClear){$xeTable.closeTooltip();}else{if($tooltip&&$tooltip.setActived){$tooltip.setActived(true);}}}function clearCrossTableDragStatus($xeTable){const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);crossTableDragRowObj=null;crossTableDragRowInfo.row=null;}function clearDragStatus($xeTable){const reactData=$xeTable;const{dragRow,dragCol}=reactData;if(dragRow||dragCol){clearColDropOrigin($xeTable);clearRowDropOrigin($xeTable);hideDropTip($xeTable);clearCrossTableDragStatus($xeTable);reactData.dragRow=null;reactData.dragCol=null;}}function handleRowDragEndClearStatus($xeTable){clearRowDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,false,true,true);}function handleColDragEndClearStatus($xeTable){clearColDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,true,true,true);}function clearRowDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='row--drag-origin';external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;removeClass(elem,clss);});}}function updateRowDropOrigin($xeTable,row){const el=$xeTable.$el;if(el){const clss='row--drag-origin';const rowid=getRowid($xeTable,row);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`),elem=>{addClass(elem,clss);});}}function updateRowDropTipContent($xeTable,tdEl){const reactData=$xeTable;const props=$xeTable;const{dragConfig}=props;const{dragRow}=reactData;const rowDragOpts=$xeTable.computeRowDragOpts;const{tooltipMethod}=rowDragOpts;const rTooltipMethod=tooltipMethod||(dragConfig?dragConfig.rowTooltipMethod:null);let tipContent='';if(rTooltipMethod){const rtParams={$table:$xeTable,row:dragRow};tipContent=`${rTooltipMethod(rtParams)||''}`;}else{tipContent=methods_getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function updateColDropOrigin($xeTable,column){const el=$xeTable.$el;if(el){const colQuerys=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column],item=>{colQuerys.push(`[colid="${item.id}"]`);});const clss='col--drag-origin';external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(colQuerys.join(',')),elem=>{addClass(elem,clss);});}}function clearColDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='col--drag-origin';external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;removeClass(elem,clss);});}}function updateColDropTipContent($xeTable,tdEl){const reactData=$xeTable;const{dragCol}=reactData;const columnDragOpts=$xeTable.computeColumnDragOpts;const{tooltipMethod}=columnDragOpts;let tipContent='';if(tooltipMethod){const dtParams={$table:$xeTable,column:dragCol};tipContent=`${tooltipMethod(dtParams)||''}`;}else{tipContent=methods_getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function showDropTip($xeTable,evnt,trEl,thEl,showLine,dragPos){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;if($xeGantt&&trEl){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}if(!wrapperEl){return;}const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{prevDragToChild}=internalData;const wrapperRect=wrapperEl.getBoundingClientRect();const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const tableWrapperWidth=wrapperEl.clientWidth;const tableWrapperHeight=wrapperEl.clientHeight;if(trEl){const rdLineEl=$xeTable.$refs.refDragRowLineElem;if(rdLineEl){if(showLine){const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;const trRect=trEl.getBoundingClientRect();let trHeight=trEl.clientHeight;const offsetTop=Math.max(1,trRect.y-wrapperRect.y);if(offsetTop+trHeight>tableWrapperHeight-osbHeight){trHeight=tableWrapperHeight-offsetTop-osbHeight;}rdLineEl.style.display='block';rdLineEl.style.left=`${scrollbarYToLeft?osbWidth:0}px`;rdLineEl.style.top=`${offsetTop}px`;rdLineEl.style.height=`${trHeight}px`;rdLineEl.style.width=`${tableWrapperWidth-osbWidth}px`;rdLineEl.setAttribute('drag-pos',dragPos);rdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{rdLineEl.style.display='';}}}else if(thEl){const cdLineEl=$xeTable.$refs.refDragColLineElem;if(cdLineEl){if(showLine){const scrollbarXToTop=$xeTable.computeScrollbarXToTop;const leftContainerElem=$xeTable.$refs.refLeftContainer;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=$xeTable.$refs.refRightContainer;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const thRect=thEl.getBoundingClientRect();let thWidth=thEl.clientWidth;const offsetTop=Math.max(0,thRect.y-wrapperRect.y);const startX=leftContainerWidth;let offsetLeft=thRect.x-wrapperRect.x;if(offsetLeft<startX){thWidth-=startX-offsetLeft;offsetLeft=startX;}const endX=tableWrapperWidth-rightContainerWidth-(rightContainerWidth?0:osbWidth);if(offsetLeft+thWidth>endX){thWidth=endX-offsetLeft;}cdLineEl.style.display='block';cdLineEl.style.top=`${offsetTop}px`;cdLineEl.style.left=`${offsetLeft}px`;cdLineEl.style.width=`${thWidth}px`;if(prevDragToChild){cdLineEl.style.height=`${thRect.height}px`;}else{cdLineEl.style.height=`${tableWrapperHeight-offsetTop-(scrollbarXToTop?0:osbHeight)}px`;}cdLineEl.setAttribute('drag-pos',dragPos);cdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{cdLineEl.style.display='';}}}const rdTipEl=$xeTable.$refs.refDragTipElem;if(rdTipEl){rdTipEl.style.display='block';rdTipEl.style.top=`${Math.min(wrapperEl.clientHeight-wrapperEl.scrollTop-rdTipEl.clientHeight,evnt.clientY-wrapperRect.y)}px`;rdTipEl.style.left=`${Math.min(wrapperEl.clientWidth-wrapperEl.scrollLeft-rdTipEl.clientWidth-16,evnt.clientX-wrapperRect.x)}px`;rdTipEl.setAttribute('drag-status',showLine?prevDragToChild?'sub':'normal':'disabled');}}function hideDropTip($xeTable){const rdTipEl=$xeTable.$refs.refDragTipElem;const rdLineEl=$xeTable.$refs.refDragRowLineElem;const cdLineEl=$xeTable.$refs.refDragColLineElem;if(rdTipEl){rdTipEl.style.display='';}if(rdLineEl){rdLineEl.style.display='';}if(cdLineEl){cdLineEl.style.display='';}}function clearRowDragData($xeTable){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;const dtClss=['.vxe-body--row'];if($xeGantt){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}dtClss.push('.vxe-gantt-view--body-row','.vxe-gantt-view--chart-row');}hideDropTip($xeTable);clearRowDropOrigin($xeTable);clearRowAnimate(wrapperEl,dtClss);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}function clearColDragData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const el=$xeTable.$refs.refElem;hideDropTip($xeTable);clearColDropOrigin($xeTable);clearColAnimate(el,['.vxe-table--column']);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}/**
|
|
7874
|
-
* 处理显示 tooltip
|
|
7875
|
-
* @param {Event} evnt 事件
|
|
7876
|
-
* @param {Row} row 行对象
|
|
7872
|
+
remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.renderWidth=width;tWidth+=width;});if(fit){/**
|
|
7873
|
+
* 偏移量算法
|
|
7874
|
+
* 如果所有列足够放的情况下,从最后动态列开始分配
|
|
7875
|
+
* 排除已设置 max-width
|
|
7876
|
+
*/const dynamicList=scaleList.concat(scaleMinList).concat(pxMinList).concat(autoMinList).concat(remainList).filter(column=>!parseColumnMaxWidth(column));let dynamicSize=dynamicList.length-1;if(dynamicSize>0){let i=bodyWidth-tWidth;if(i>0){while(i>0&&dynamicSize>=0){i--;dynamicList[dynamicSize--].renderWidth++;}tWidth=bodyWidth;}}}reactData.scrollXWidth=tWidth;reactData.resizeWidthFlag++;updateColumnOffsetLeft($xeTable);updateHeight($xeTable);}/**
|
|
7877
|
+
* 计算自适应行高
|
|
7878
|
+
*/const calcCellAutoHeight=($xeTable,rowid,rowRest,wrapperEl)=>{const internalData=$xeTable;const{fullCellHeightMaps}=internalData;let chRest=fullCellHeightMaps[rowid];if(!chRest){chRest={};fullCellHeightMaps[rowid]=chRest;}const wrapperElemList=wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);let firstCellStyle=null;let topBottomPadding=0;let changeCH=false;for(let i=0;i<wrapperElemList.length;i++){const wrapperElem=wrapperElemList[i];const cellElem=wrapperElem.parentElement;const cellStyle=cellElem.style;const orHeight=cellStyle.height;const colid=wrapperElem.getAttribute('colid')||'';cellStyle.height='';if(!firstCellStyle){firstCellStyle=getComputedStyle(cellElem);topBottomPadding=firstCellStyle?Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(firstCellStyle.paddingTop)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(firstCellStyle.paddingBottom)):0;}const cellHeight=wrapperElem?wrapperElem.clientHeight:0;const colHeight=Math.ceil(cellHeight+topBottomPadding);if(chRest[colid]!==colHeight){changeCH=true;chRest[colid]=colHeight;}cellStyle.height=orHeight;}const cellMaxHeight=getRowMaxHeight(chRest,changeCH);return cellMaxHeight;};/**
|
|
7879
|
+
* 自适应行高
|
|
7880
|
+
*/const calcCellHeight=$xeTable=>{const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableData,isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const treeOpts=$xeTable.computeTreeOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;if(!isAllOverflow&&(scrollYLoad||scrollXLoad||treeConfig&&treeOpts.showLine)){const{handleGetRowId}=createHandleGetRowId($xeTable);el.setAttribute('data-calc-row','Y');tableData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const height=calcCellAutoHeight($xeTable,rowid,rowRest,el);rowRest.height=Math.max(defaultRowHeight,height);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}};function getOrderField($xeTable,column){const reactData=$xeTable;const{isRowGroupStatus}=reactData;const{sortBy,sortType,aggFunc}=column;return isRowGroupStatus&&aggFunc?row=>{if(row.isAggregate){const aggData=row.aggData;const currAggData=aggData?aggData[column.field]:null;return currAggData?currAggData.value:null;}let cellValue;if(sortBy){cellValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(sortBy)?sortBy({row,column}):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='number'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='string'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(cellValue);}return cellValue;}:row=>{let cellValue;if(sortBy){cellValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(sortBy)?sortBy({row,column}):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='number'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellValue);}else if(sortType==='string'){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(cellValue);}return cellValue;};}function handleTargetEnterEvent($xeTable,isClear){const internalData=$xeTable;const $tooltip=$xeTable.$refs.refTooltip;clearTimeout(internalData.tooltipTimeout);if(isClear){$xeTable.closeTooltip();}else{if($tooltip&&$tooltip.setActived){$tooltip.setActived(true);}}}function clearCrossTableDragStatus($xeTable){const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);crossTableDragRowObj=null;crossTableDragRowInfo.row=null;}function clearDragStatus($xeTable){const reactData=$xeTable;const{dragRow,dragCol}=reactData;if(dragRow||dragCol){clearColDropOrigin($xeTable);clearRowDropOrigin($xeTable);hideDropTip($xeTable);clearCrossTableDragStatus($xeTable);reactData.dragRow=null;reactData.dragCol=null;}}function handleRowDragEndClearStatus($xeTable){clearRowDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,false,true,true);}function handleColDragEndClearStatus($xeTable){clearColDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,true,true,true);}function clearRowDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='row--drag-origin';external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;removeClass(elem,clss);});}}function updateRowDropOrigin($xeTable,row){const el=$xeTable.$el;if(el){const clss='row--drag-origin';const rowid=getRowid($xeTable,row);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`),elem=>{addClass(elem,clss);});}}function updateRowDropTipContent($xeTable,tdEl){const reactData=$xeTable;const props=$xeTable;const{dragConfig}=props;const{dragRow}=reactData;const rowDragOpts=$xeTable.computeRowDragOpts;const{tooltipMethod}=rowDragOpts;const rTooltipMethod=tooltipMethod||(dragConfig?dragConfig.rowTooltipMethod:null);let tipContent='';if(rTooltipMethod){const rtParams={$table:$xeTable,row:dragRow};tipContent=`${rTooltipMethod(rtParams)||''}`;}else{tipContent=methods_getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function updateColDropOrigin($xeTable,column){const el=$xeTable.$el;if(el){const colQuerys=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column],item=>{colQuerys.push(`[colid="${item.id}"]`);});const clss='col--drag-origin';external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(colQuerys.join(',')),elem=>{addClass(elem,clss);});}}function clearColDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='col--drag-origin';external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;removeClass(elem,clss);});}}function updateColDropTipContent($xeTable,tdEl){const reactData=$xeTable;const{dragCol}=reactData;const columnDragOpts=$xeTable.computeColumnDragOpts;const{tooltipMethod}=columnDragOpts;let tipContent='';if(tooltipMethod){const dtParams={$table:$xeTable,column:dragCol};tipContent=`${tooltipMethod(dtParams)||''}`;}else{tipContent=methods_getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function showDropTip($xeTable,evnt,trEl,thEl,showLine,dragPos){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;if($xeGantt&&trEl){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}if(!wrapperEl){return;}const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{prevDragToChild}=internalData;const wrapperRect=wrapperEl.getBoundingClientRect();const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const tableWrapperWidth=wrapperEl.clientWidth;const tableWrapperHeight=wrapperEl.clientHeight;if(trEl){const rdLineEl=$xeTable.$refs.refDragRowLineElem;if(rdLineEl){if(showLine){const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;const trRect=trEl.getBoundingClientRect();let trHeight=trEl.clientHeight;const offsetTop=Math.max(1,trRect.y-wrapperRect.y);if(offsetTop+trHeight>tableWrapperHeight-osbHeight){trHeight=tableWrapperHeight-offsetTop-osbHeight;}rdLineEl.style.display='block';rdLineEl.style.left=`${scrollbarYToLeft?osbWidth:0}px`;rdLineEl.style.top=`${offsetTop}px`;rdLineEl.style.height=`${trHeight}px`;rdLineEl.style.width=`${tableWrapperWidth-osbWidth}px`;rdLineEl.setAttribute('drag-pos',dragPos);rdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{rdLineEl.style.display='';}}}else if(thEl){const cdLineEl=$xeTable.$refs.refDragColLineElem;if(cdLineEl){if(showLine){const scrollbarXToTop=$xeTable.computeScrollbarXToTop;const leftContainerElem=$xeTable.$refs.refLeftContainer;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=$xeTable.$refs.refRightContainer;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const thRect=thEl.getBoundingClientRect();let thWidth=thEl.clientWidth;const offsetTop=Math.max(0,thRect.y-wrapperRect.y);const startX=leftContainerWidth;let offsetLeft=thRect.x-wrapperRect.x;if(offsetLeft<startX){thWidth-=startX-offsetLeft;offsetLeft=startX;}const endX=tableWrapperWidth-rightContainerWidth-(rightContainerWidth?0:osbWidth);if(offsetLeft+thWidth>endX){thWidth=endX-offsetLeft;}cdLineEl.style.display='block';cdLineEl.style.top=`${offsetTop}px`;cdLineEl.style.left=`${offsetLeft}px`;cdLineEl.style.width=`${thWidth}px`;if(prevDragToChild){cdLineEl.style.height=`${thRect.height}px`;}else{cdLineEl.style.height=`${tableWrapperHeight-offsetTop-(scrollbarXToTop?0:osbHeight)}px`;}cdLineEl.setAttribute('drag-pos',dragPos);cdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{cdLineEl.style.display='';}}}const rdTipEl=$xeTable.$refs.refDragTipElem;if(rdTipEl){rdTipEl.style.display='block';rdTipEl.style.top=`${Math.min(wrapperEl.clientHeight-wrapperEl.scrollTop-rdTipEl.clientHeight,evnt.clientY-wrapperRect.y)}px`;rdTipEl.style.left=`${Math.min(wrapperEl.clientWidth-wrapperEl.scrollLeft-rdTipEl.clientWidth-16,evnt.clientX-wrapperRect.x)}px`;rdTipEl.setAttribute('drag-status',showLine?prevDragToChild?'sub':'normal':'disabled');}}function hideDropTip($xeTable){const rdTipEl=$xeTable.$refs.refDragTipElem;const rdLineEl=$xeTable.$refs.refDragRowLineElem;const cdLineEl=$xeTable.$refs.refDragColLineElem;if(rdTipEl){rdTipEl.style.display='';}if(rdLineEl){rdLineEl.style.display='';}if(cdLineEl){cdLineEl.style.display='';}}function clearRowDragData($xeTable){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;const dtClss=['.vxe-body--row'];if($xeGantt){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}dtClss.push('.vxe-gantt-view--body-row','.vxe-gantt-view--chart-row');}hideDropTip($xeTable);clearRowDropOrigin($xeTable);clearRowAnimate(wrapperEl,dtClss);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}function clearColDragData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const el=$xeTable.$refs.refElem;hideDropTip($xeTable);clearColDropOrigin($xeTable);clearColAnimate(el,['.vxe-table--column']);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}/**
|
|
7881
|
+
* 处理显示 tooltip
|
|
7882
|
+
* @param {Event} evnt 事件
|
|
7883
|
+
* @param {Row} row 行对象
|
|
7877
7884
|
*/function handleTooltip($xeTable,evnt,tipOpts,type,tdEl,overflowElem,tipElem,params){const reactData=$xeTable;const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return $xeTable.$nextTick();}params.cell=tdEl;const{tooltipStore}=reactData;const{column,row}=params;const{showAll,contentMethod}=tipOpts;const cellText=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type==='html'?tipOverEl.innerText:tipOverEl.textContent).trim();const isOver=tipOverEl.scrollWidth>tipOverEl.clientWidth;let isShow=false;let customContent=null;let content='';if(contentMethod){customContent=contentMethod(params);}// 是否全部展示
|
|
7878
7885
|
if(showAll){// 如果为 null 默认显示
|
|
7879
7886
|
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent)){isShow=true;content=cellText;}else if(customContent!==''&&customContent!==false){// 如果为 '' | false 则不显示
|
|
@@ -7886,16 +7893,16 @@ const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;//
|
|
|
7886
7893
|
reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible($xeTable);if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData($xeTable);});}else{$xeTable.updateScrollYSpace();}});}function calcScrollbar($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const scrollbarOpts=$xeTable.computeScrollbarOpts;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const headerTableElem=getRefElem(elemStore['main-header-table']);const footerTableElem=getRefElem(elemStore['main-footer-table']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;let overflowY=false;let overflowX=false;if(bodyWrapperElem){overflowY=scrollYHeight>bodyWrapperElem.clientHeight;if(yHandleEl){reactData.scrollbarWidth=scrollbarOpts.width||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;if(xHandleEl){reactData.scrollbarHeight=scrollbarOpts.height||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}reactData.overflowX=overflowX;const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}}function handleRecalculateStyle($xeTable,reFull,reWidth,reHeight){const internalData=$xeTable;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return $xeTable.$nextTick();}const varEl=$xeTable.$refs.refVarElem;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig($xeTable,'default',defEl);calcVarRowHeightConfig($xeTable,'medium',mediumEl);calcVarRowHeightConfig($xeTable,'small',smallEl);calcVarRowHeightConfig($xeTable,'mini',miniEl);}if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}calcScrollbar($xeTable);updateStyle($xeTable);updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();return computeScrollLoad($xeTable).then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
7887
7894
|
if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHeight){calcCellHeight($xeTable);}updateStyle($xeTable);calcScrollbar($xeTable);if(reFull){updateRowOffsetTop($xeTable);}updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad($xeTable);}});}const defaultMinRunDelay=50;function handleLazyRecalculate($xeTable,reFull,reWidth,reHeight,options){const reactData=$xeTable;const internalData=$xeTable;const minRunDelay=(options?options.minRunDelay:defaultMinRunDelay)||defaultMinRunDelay;return new Promise(resolve=>{const{customStore}=reactData;const{rceTimeout,rceRunTime}=internalData;const $xeGanttView=internalData.xeGanttView;const resizeOpts=$xeTable.computeResizeOpts;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
|
|
7888
7895
|
if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay+=50;}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=$xeTable.$refs.refElem;if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
|
|
7889
|
-
if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}else{$xeTable.$nextTick(()=>{resolve();});}}else{resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceTimeout=undefined;handleRecalculateStyle($xeTable,reFull,reWidth,reHeight);},reDelay);});}function handleResizeEvent($xeTable){const internalData=$xeTable;if(internalData.rsePending){return;}internalData.rsePending=true;handleLazyRecalculate($xeTable,true,true,true,{minRunDelay:200}).then(()=>{internalData.rsePending=false;}).catch(()=>{internalData.rsePending=false;});}function handleUpdateAggValues($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;}function handleUpdateRowGroup($xeTable,groupFields){const reactData=$xeTable;const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues($xeTable);}function handleeGroupSummary($xeTable,aggList){const internalData=$xeTable;const{fullColumnFieldData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const aggFuncColumns=$xeTable.computeAggFuncColumns;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{let count=0;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
|
|
7890
|
-
* 已废弃
|
|
7891
|
-
* @deprecated
|
|
7892
|
-
*/children:childList,/**
|
|
7893
|
-
* 已废弃
|
|
7894
|
-
* @deprecated
|
|
7896
|
+
if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}else{$xeTable.$nextTick(()=>{resolve();});}}else{resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceTimeout=undefined;handleRecalculateStyle($xeTable,reFull,reWidth,reHeight);},reDelay);});}function handleResizeEvent($xeTable){const internalData=$xeTable;if(internalData.rsePending){return;}internalData.rsePending=true;handleLazyRecalculate($xeTable,true,true,true,{minRunDelay:200}).then(()=>{internalData.rsePending=false;}).catch(()=>{internalData.rsePending=false;});}function handleUpdateAggValues($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;}function handleUpdateRowGroup($xeTable,groupFields){const reactData=$xeTable;const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues($xeTable);}function handleeGroupSummary($xeTable,aggList){const internalData=$xeTable;const{fullColumnFieldData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const aggFuncColumns=$xeTable.computeAggFuncColumns;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{let count=0;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
|
|
7897
|
+
* 已废弃
|
|
7898
|
+
* @deprecated
|
|
7899
|
+
*/children:childList,/**
|
|
7900
|
+
* 已废弃
|
|
7901
|
+
* @deprecated
|
|
7895
7902
|
*/totalValue:childCount};let aggVal=0;// 如果下层同时也是分组
|
|
7896
|
-
if(childList.length&&childList[0].isAggregate){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(childList,row=>{if(row.isAggregate){const currAggData=row.aggData[field];if(currAggData){aggVal+=currAggData.value;}}});}else{aggVal=aggCalcMethod?aggCalcMethod(ctParams):aggRow.childCount;}aggDtObj[field]={type:'count',value:aggVal,label:aggVal};});aggRow.aggData=aggDtObj;});}}}function updateGroupData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary($xeTable,aggList);}}function handleGroupData($xeTable,list,rowGroups,isCombinedField){let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{rowField,parentField,separator,childrenField,mapChildrenField}=aggregateOpts;const rowOpts=$xeTable.computeRowOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const groupCombinedMaps={};const aggList=[];const rowkey=getRowkey($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,groupField);let groupValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue)?'':cellValue;if(isCombinedField){const groupVals=[groupValue];rowGroups.slice(1).forEach(ogItem=>{const ogField=ogItem.field;const ogColumn=$xeTable.getColumnByField(ogField);const ocValue=ogColumn?$xeTable.getCellLabel(row,ogColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,ogField);const ogValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(ocValue)?'':ocValue;groupValue+=(separator||' / ')+ogValue;groupVals.push(ogValue);});if(!groupCombinedMaps[groupValue]){groupCombinedMaps[groupValue]=groupVals;}}let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});if(isCombinedField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupCombineds:groupCombinedMaps[groupValue],groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childList,[mapChildrenField]:childList};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData($xeTable,childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupCombineds:[],groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childTreeData,[mapChildrenField]:childTreeData};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});}handleeGroupSummary($xeTable,aggList);}}return{treeData,fullData};}function initGroupData($xeTable,list,rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{mode}=aggregateOpts;const isCombinedField=mode==='combined';const groupRest=handleGroupData($xeTable,list,rowGroups,isCombinedField);return groupRest;}/**
|
|
7897
|
-
* 加载表格数据
|
|
7898
|
-
* @param {Array} datas 数据
|
|
7903
|
+
if(childList.length&&childList[0].isAggregate){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(childList,row=>{if(row.isAggregate){const currAggData=row.aggData[field];if(currAggData){aggVal+=currAggData.value;}}});}else{aggVal=aggCalcMethod?aggCalcMethod(ctParams):aggRow.childCount;}aggDtObj[field]={type:'count',value:aggVal,label:aggVal};});aggRow.aggData=aggDtObj;});}}}function updateGroupData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary($xeTable,aggList);}}function handleGroupData($xeTable,list,rowGroups,isCombinedField){let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{rowField,parentField,separator,childrenField,mapChildrenField}=aggregateOpts;const rowOpts=$xeTable.computeRowOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const groupCombinedMaps={};const aggList=[];const rowkey=getRowkey($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,groupField);let groupValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue)?'':cellValue;if(isCombinedField){const groupVals=[groupValue];rowGroups.slice(1).forEach(ogItem=>{const ogField=ogItem.field;const ogColumn=$xeTable.getColumnByField(ogField);const ocValue=ogColumn?$xeTable.getCellLabel(row,ogColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,ogField);const ogValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(ocValue)?'':ocValue;groupValue+=(separator||' / ')+ogValue;groupVals.push(ogValue);});if(!groupCombinedMaps[groupValue]){groupCombinedMaps[groupValue]=groupVals;}}let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});if(isCombinedField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupCombineds:groupCombinedMaps[groupValue],groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childList,[mapChildrenField]:childList};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData($xeTable,childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupCombineds:[],groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childTreeData,[mapChildrenField]:childTreeData};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});}handleeGroupSummary($xeTable,aggList);}}return{treeData,fullData};}function initGroupData($xeTable,list,rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{mode}=aggregateOpts;const isCombinedField=mode==='combined';const groupRest=handleGroupData($xeTable,list,rowGroups,isCombinedField);return groupRest;}/**
|
|
7904
|
+
* 加载表格数据
|
|
7905
|
+
* @param {Array} datas 数据
|
|
7899
7906
|
*/function loadTableData($xeTable,datas,isReload,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig,aggregateConfig,rowGroupConfig}=props;const{rowGroupList,scrollYLoad:oldScrollYLoad}=reactData;const{initStatus,scrollYStore,scrollXStore,lastScrollLeft,lastScrollTop}=internalData;const rowOpts=$xeTable.computeRowOpts;const treeOpts=$xeTable.computeTreeOpts;const expandOpts=$xeTable.computeExpandOpts;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;let treeData=[];let fullData=datas?datas.slice(0):[];// 转为响应式数据
|
|
7900
7907
|
if(fullData.length>supportMaxRow){methods_errLog('vxe.error.errMaxRow',[supportMaxRow]);}if(treeConfig&&rowGroupList.length){methods_errLog('vxe.error.noTree',['aggregate-config']);return $xeTable.$nextTick();}if(rowOpts.drag&&rowGroupList.length){methods_errLog('vxe.error.errConflicts',['row-config.drag','aggregate-config']);return $xeTable.$nextTick();}let isRGroup=false;if(treeConfig){if(transform){// 树结构自动转换
|
|
7901
7908
|
if(!treeOpts.rowField){methods_errLog('vxe.error.reqProp',['tree-config.rowField']);}if(!treeOpts.parentField){methods_errLog('vxe.error.reqProp',['tree-config.parentField']);}if(!childrenField){methods_errLog('vxe.error.reqProp',['tree-config.childrenField']);}if(!treeOpts.mapChildrenField){methods_errLog('vxe.error.reqProp',['tree-config.mapChildrenField']);}if(childrenField===treeOpts.mapChildrenField){methods_errLog('vxe.error.errConflicts',['tree-config.childrenField','tree-config.mapChildrenField']);}// fullData.forEach(row => {
|
|
@@ -7925,12 +7932,12 @@ if(!(props.height||props.maxHeight)){methods_errLog('vxe.error.reqSupportProp',[
|
|
|
7925
7932
|
}handleReserveStatus($xeTable);$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('data-change',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);return new Promise(resolve=>{$xeTable.$nextTick().then(()=>handleRecalculateStyle($xeTable,false,false,false)).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);}).then(()=>{let targetScrollLeft=lastScrollLeft;let targetScrollTop=lastScrollTop;const virtualXOpts=$xeTable.computeVirtualXOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否在更新数据之后自动滚动重置滚动条
|
|
7926
7933
|
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle($xeTable,false,false,false);updateTreeLineStyle($xeTable);syncGanttScrollYStatus($xeTable);// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
7927
7934
|
if(!props.showOverflow){setTimeout(()=>{handleLazyRecalculate($xeTable,false,true,true);setTimeout(()=>handleLazyRecalculate($xeTable,false,true,true),3000);},2000);}// 是否变更虚拟滚动
|
|
7928
|
-
if(oldScrollYLoad===sYLoad){restoreScrollLocation($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);updateTreeLineStyle($xeTable);$xeTable.$nextTick(()=>resolve());});}else{setTimeout(()=>{restoreScrollLocation($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);updateTreeLineStyle($xeTable);$xeTable.$nextTick(()=>resolve());});});}});}).then(()=>{if(initStatus){$xeTable.dispatchEvent('data-rendered',{isReload,visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}else{$xeTable.dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}});});}/**
|
|
7929
|
-
* 处理数据加载默认行为
|
|
7930
|
-
* 默认执行一次,除非被重置
|
|
7931
|
-
*/function handleLoadDefaults($xeTable){handleDefaultSelectionChecked($xeTable);handleDefaultRadioChecked($xeTable);handleDefaultRowExpand($xeTable);handleDefaultTreeExpand($xeTable);handleDefaultRowGroupExpand($xeTable);handleDefaultMergeCells($xeTable);handleDefaultMergeHeaderItems($xeTable);handleDefaultMergeFooterItems($xeTable);$xeTable.$nextTick(()=>{const internalData=$xeTable;$xeTable.dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);setTimeout(()=>$xeTable.recalculate());});}/**
|
|
7932
|
-
* 处理初始化的默认行为
|
|
7933
|
-
* 只会执行一次
|
|
7935
|
+
if(oldScrollYLoad===sYLoad){restoreScrollLocation($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);updateTreeLineStyle($xeTable);$xeTable.$nextTick(()=>resolve());});}else{setTimeout(()=>{restoreScrollLocation($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);updateTreeLineStyle($xeTable);$xeTable.$nextTick(()=>resolve());});});}});}).then(()=>{if(initStatus){$xeTable.dispatchEvent('data-rendered',{isReload,visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}else{$xeTable.dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}});});}/**
|
|
7936
|
+
* 处理数据加载默认行为
|
|
7937
|
+
* 默认执行一次,除非被重置
|
|
7938
|
+
*/function handleLoadDefaults($xeTable){handleDefaultSelectionChecked($xeTable);handleDefaultRadioChecked($xeTable);handleDefaultRowExpand($xeTable);handleDefaultTreeExpand($xeTable);handleDefaultRowGroupExpand($xeTable);handleDefaultMergeCells($xeTable);handleDefaultMergeHeaderItems($xeTable);handleDefaultMergeFooterItems($xeTable);$xeTable.$nextTick(()=>{const internalData=$xeTable;$xeTable.dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);setTimeout(()=>$xeTable.recalculate());});}/**
|
|
7939
|
+
* 处理初始化的默认行为
|
|
7940
|
+
* 只会执行一次
|
|
7934
7941
|
*/function handleInitDefaults($xeTable){handleDefaultSort($xeTable);}function handleTableColumn($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{visibleColumn,scrollXStore,fullColumnIdData}=internalData;const tableColumn=scrollXLoad?visibleColumn.slice(scrollXStore.startIndex,scrollXStore.endIndex):visibleColumn.slice(0);tableColumn.forEach((column,$index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.$index=$index;}});reactData.tableColumn=tableColumn;}function handleUpdateColumn($xeTable){const reactData=$xeTable;const internalData=$xeTable;const columnList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(internalData.collectColumn,'renderSortNumber');internalData.collectColumn=columnList;const tFullColumn=getColumnList(columnList);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;cacheColumnMap($xeTable);}function loadScrollXData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig}=reactData;const{mergeBodyList,mergeFooterList,mergeBodyColMaps,scrollXStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollXStore;const{toVisibleIndex,visibleSize}=handleVirtualXVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollXBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollXBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+offsetSize+preloadSize};scrollXStore.visibleStartIndex=toVisibleIndex-1;scrollXStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList),mergeBodyColMaps,offsetItem,'col');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollXStore.startIndex=offsetStartIndex;scrollXStore.endIndex=offsetEndIndex;$xeTable.updateScrollXData();}}$xeTable.closeTooltip();}function parseColumns($xeTable,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;// const { showOverflow } = props
|
|
7935
7942
|
// const rowOpts = $xeTable.computeRowOpts
|
|
7936
7943
|
const leftList=[];const centerList=[];const rightList=[];const{isGroup,columnStore}=reactData;const{collectColumn,tableFullColumn,scrollXStore,fullColumnIdData}=internalData;// 如果是分组表头,如果子列全部被隐藏,则根列也隐藏
|
|
@@ -7952,265 +7959,266 @@ tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){le
|
|
|
7952
7959
|
// }
|
|
7953
7960
|
if(props.spanMethod){methods_warnLog('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){methods_warnLog('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible($xeTable);scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
|
|
7954
7961
|
// 如果列被设置为固定,则清除合并状态
|
|
7955
|
-
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn($xeTable);handleUpdateAggValues($xeTable);if(isReset){return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();}function initColumnHierarchy($xeTable){const internalData=$xeTable;const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){methods_errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;}function buildColumnInfo($xeTable){const props=$xeTable;const $xeToolbar=$xeTable.$refs.$xeToolbar;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const expandOpts=$xeTable.computeExpandOpts;cacheColumnMap($xeTable);parseColumns($xeTable,true).then(()=>{if(reactData.scrollXLoad){loadScrollXData($xeTable);}});$xeTable.clearHeaderFormatterCache();$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){methods_warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.$nextTick().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=$xeTable.computeColumnOpts;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){methods_warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate($xeTable,false,true,true);});}function handleInitColumn($xeTable,collectColumn){const reactData=$xeTable;const internalData=$xeTable;internalData.collectColumn=collectColumn;const tFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(restoreCustomStorage($xeTable)).then(()=>{return buildColumnInfo($xeTable);});}/**
|
|
7956
|
-
* 纵向 Y 可视渲染处理
|
|
7962
|
+
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn($xeTable);handleUpdateAggValues($xeTable);if(isReset){return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();}function initColumnHierarchy($xeTable){const internalData=$xeTable;const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){methods_errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;}function buildColumnInfo($xeTable){const props=$xeTable;const $xeToolbar=$xeTable.$refs.$xeToolbar;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const expandOpts=$xeTable.computeExpandOpts;cacheColumnMap($xeTable);parseColumns($xeTable,true).then(()=>{if(reactData.scrollXLoad){loadScrollXData($xeTable);}});$xeTable.clearHeaderFormatterCache();$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){methods_warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.$nextTick().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=$xeTable.computeColumnOpts;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){methods_warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate($xeTable,false,true,true);});}function handleInitColumn($xeTable,collectColumn){const reactData=$xeTable;const internalData=$xeTable;internalData.collectColumn=collectColumn;const tFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(restoreCustomStorage($xeTable)).then(()=>{return buildColumnInfo($xeTable);});}/**
|
|
7963
|
+
* 纵向 Y 可视渲染处理
|
|
7957
7964
|
*/function loadScrollYData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,mergeBodyRowMaps,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,mergeBodyRowMaps,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}}const createGetRowCacheProp=prop=>{return function(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(row){const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};function lazyScrollXData($xeTable){const internalData=$xeTable;const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData($xeTable);}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData($xeTable);},fpsTime);}function lazyScrollYData($xeTable){const internalData=$xeTable;const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData($xeTable);}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData($xeTable);},fpsTime);}function handleSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';let xRest=null;let yRest=null;if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}if(isRollX&&scrollXLoad){xRest=$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){yRest=$xeTable.updateScrollYData().then(()=>{if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}return $xeTable.updateScrollYSpace();});}updateRowExpandStyle($xeTable);return Promise.all([xRest,yRest,scrollXLoad||scrollYLoad?$xeTable.updateCellAreas():null]);}function checkLastSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{handleSyncScroll($xeTable,isRollX,isRollY).then(()=>{if(reactData.scrollXLoad||reactData.scrollYLoad){$xeTable.$nextTick(()=>{updateRowExpandStyle($xeTable);if(!internalData.lcsTimeout){handleSyncScroll($xeTable,isRollX,isRollY);}});}});},240);}const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const syncGanttScrollTop=($xeTable,scrollTop)=>{const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;const{elemStore:ganttElemStore}=ganttInternalData;const ganttBodyScrollElem=getRefElem(ganttElemStore['main-body-scroll']);if(ganttBodyScrollElem){ganttBodyScrollElem.scrollTop=scrollTop;}}};function updateHeight($xeTable){const reactData=$xeTable;const internalData=$xeTable;internalData.customHeight=calcTableHeight($xeTable,'height');internalData.customMinHeight=calcTableHeight($xeTable,'minHeight');internalData.customMaxHeight=calcTableHeight($xeTable,'maxHeight');// 如果启用虚拟滚动,纠正高度
|
|
7958
|
-
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight||internalData.customMaxHeight)){internalData.customHeight=300;}}/**
|
|
7959
|
-
* 计算自适应列宽
|
|
7960
|
-
*/function calcColumnAutoWidth($xeTable,column,wrapperEl){const reactData=$xeTable;const{scrollYLoad}=reactData;const columnOpts=$xeTable.computeColumnOpts;const{autoOptions}=columnOpts;const{isCalcHeader,isCalcBody,isCalcFooter}=autoOptions||{};const querySelections=[];if(isCalcHeader){querySelections.push(`.vxe-header-cell--wrapper[colid="${column.id}"]`);}if(isCalcBody){querySelections.push(`.vxe-body-cell--wrapper[colid="${column.id}"]`);}if(isCalcFooter){querySelections.push(`.vxe-footer-cell--wrapper[colid="${column.id}"]`);}const cellElemList=querySelections.length?wrapperEl.querySelectorAll(querySelections.join(',')):[];let leftRightPadding=0;const firstCellEl=cellElemList[0];if(firstCellEl&&firstCellEl.parentElement){const cellStyle=getComputedStyle(firstCellEl.parentElement);leftRightPadding=Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingLeft)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingRight));}let colWidth=(scrollYLoad?column.renderAutoWidth:0)-leftRightPadding;for(let i=0;i<cellElemList.length;i++){const celEl=cellElemList[i];colWidth=Math.max(colWidth,celEl?Math.ceil(celEl.scrollWidth)+4:0);}return colWidth+leftRightPadding;}/**
|
|
7961
|
-
* 自适应列宽
|
|
7965
|
+
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight||internalData.customMaxHeight)){internalData.customHeight=300;}}/**
|
|
7966
|
+
* 计算自适应列宽
|
|
7967
|
+
*/function calcColumnAutoWidth($xeTable,column,wrapperEl){const reactData=$xeTable;const{scrollYLoad}=reactData;const columnOpts=$xeTable.computeColumnOpts;const{autoOptions}=columnOpts;const{isCalcHeader,isCalcBody,isCalcFooter}=autoOptions||{};const querySelections=[];if(isCalcHeader){querySelections.push(`.vxe-header-cell--wrapper[colid="${column.id}"]`);}if(isCalcBody){querySelections.push(`.vxe-body-cell--wrapper[colid="${column.id}"]`);}if(isCalcFooter){querySelections.push(`.vxe-footer-cell--wrapper[colid="${column.id}"]`);}const cellElemList=querySelections.length?wrapperEl.querySelectorAll(querySelections.join(',')):[];let leftRightPadding=0;const firstCellEl=cellElemList[0];if(firstCellEl&&firstCellEl.parentElement){const cellStyle=getComputedStyle(firstCellEl.parentElement);leftRightPadding=Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingLeft)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingRight));}let colWidth=(scrollYLoad?column.renderAutoWidth:0)-leftRightPadding;for(let i=0;i<cellElemList.length;i++){const celEl=cellElemList[i];colWidth=Math.max(colWidth,celEl?Math.ceil(celEl.scrollWidth)+4:0);}return colWidth+leftRightPadding;}/**
|
|
7968
|
+
* 自适应列宽
|
|
7962
7969
|
*/function calcCellWidth($xeTable){const internalData=$xeTable;const autoWidthColumnList=$xeTable.computeAutoWidthColumnList;const{fullColumnIdData}=internalData;const el=$xeTable.$refs.refElem;if(el){el.setAttribute('data-calc-col','Y');autoWidthColumnList.forEach(column=>{const colid=column.id;const colRest=fullColumnIdData[colid];const colWidth=calcColumnAutoWidth($xeTable,column,el);if(colRest){colRest.width=Math.max(colWidth,colRest.width);}column.renderAutoWidth=colWidth;});$xeTable.analyColumnWidth();el.removeAttribute('data-calc-col');}}function handleUpdateColResize($xeTable,evnt,params){$xeTable.analyColumnWidth();$xeTable.recalculate().then(()=>{$xeTable.saveCustomStore('update:width');$xeTable.refreshScroll().then(()=>{$xeTable.updateCellAreas();});$xeTable.dispatchEvent('column-resizable-change',params,evnt);// 已废弃 resizable-change
|
|
7963
7970
|
$xeTable.dispatchEvent('resizable-change',params,evnt);setTimeout(()=>$xeTable.recalculate(true),300);});}function handleUpdateRowResize($xeTable,evnt,params){const reactData=$xeTable;reactData.resizeHeightFlag++;$xeTable.recalculate().then(()=>{$xeTable.refreshScroll().then(()=>{$xeTable.updateCellAreas();});$xeTable.dispatchEvent('row-resizable-change',params,evnt);setTimeout(()=>$xeTable.recalculate(true),300);});}function updateColumnOffsetLeft($xeTable){const internalData=$xeTable;const{visibleColumn,fullColumnIdData}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}let offsetLeft=0;for(let cIndex=0,rLen=visibleColumn.length;cIndex<rLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.oLeft=offsetLeft;}offsetLeft+=column.renderWidth;}}function updateRowOffsetTop($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{expandColumn}=reactData;const{afterFullData,fullAllDataRowIdData,rowExpandedMaps}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{handleGetRowId}=createHandleGetRowId($xeTable);let offsetTop=0;for(let rIndex=0,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};rowRest.oTop=offsetTop;offsetTop+=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;// 是否展开行
|
|
7964
|
-
if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expandOpts.height||0;}}}/**
|
|
7965
|
-
* 更新展开行样式
|
|
7966
|
-
*/function updateRowExpandStyle($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{expandColumn,scrollYLoad,scrollYTop,isScrollYBig}=reactData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{mode}=expandOpts;if(expandColumn&&mode==='fixed'){const{elemStore,fullAllDataRowIdData}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){let isUpdateHeight=false;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(rowExpandEl.children,reEl=>{const expandEl=reEl;const rowid=expandEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const expandHeight=expandEl.offsetHeight;const trEl=bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);let offsetTop=0;if(scrollYLoad){if(isScrollYBig&&trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}else{offsetTop=rowRest.oTop+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);}}else{if(trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}}if(isScrollYBig){offsetTop+=scrollYTop;}expandEl.style.top=toCssUnit(offsetTop);if(!isUpdateHeight){if(rowRest.expandHeight!==expandHeight){isUpdateHeight=true;}}rowRest.expandHeight=expandHeight;}});if(isUpdateHeight){reactData.rowExpandHeightFlag++;$xeTable.$nextTick(()=>{updateRowOffsetTop($xeTable);});}}}}/**
|
|
7967
|
-
* 更新树连接线样式
|
|
7968
|
-
*/function updateTreeLineStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;if(!treeConfig){return;}const{tableData}=reactData;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const cellOpts=$xeTable.computeCellOpts;const rowOpts=$xeTable.computeRowOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{handleGetRowId}=createHandleGetRowId($xeTable);const expParentList=[];const handleNodeRow=(row,rIndex,rows)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};const childList=row[transform?mapChildrenField:childrenField];const prevRow=rows[rIndex-1]||null;const nextRow=rows[rIndex+1]||null;if(childList&&childList.length&&treeExpandedMaps[rowid]){expParentList.push({row,prevRow,nextRow});childList.forEach((childRow,crIndex)=>{const childRowid=handleGetRowId(childRow);if(treeExpandedMaps[childRowid]){handleNodeRow(childRow,crIndex,childList);}});}else{if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=getCellRestHeight(nextRowRest,cellOpts,rowOpts,defaultRowHeight);rowRest.oHeight=currCellHeight;rowRest.lineHeight=Math.floor(currCellHeight/2+nextCellHeight/2);}else{rowRest.oHeight=0;rowRest.lineHeight=0;}}};tableData.forEach((row,rIndex)=>{handleNodeRow(row,rIndex,tableData);});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastArrayEach(expParentList,({row,nextRow})=>{const rowid=handleGetRowId(row);const childList=row[transform?mapChildrenField:childrenField];const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);let countOffsetHeight=currCellHeight;let countLineHeight=0;childList.forEach(childRow=>{const childRowid=handleGetRowId(childRow);const childRowRest=fullAllDataRowIdData[childRowid]||{};const childList=childRow[transform?mapChildrenField:childrenField];if(treeExpandedMaps[childRowid]&&childList&&childList.length){countOffsetHeight+=childRowRest.oHeight||0;countLineHeight+=childRowRest.oHeight||0;}else{const cellHeight=getCellRestHeight(childRowRest,cellOpts,rowOpts,defaultRowHeight);childRowRest.oHeight=cellHeight;childRowRest.lineHeight=cellHeight;countOffsetHeight+=cellHeight;countLineHeight+=cellHeight;}});if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=getCellRestHeight(nextRowRest,cellOpts,rowOpts,defaultRowHeight);countOffsetHeight+=currCellHeight;countLineHeight+=Math.floor(currCellHeight/2+nextCellHeight/2);}rowRest.lineHeight=countLineHeight;rowRest.oHeight=countOffsetHeight;}});}function handleRowExpandScroll($xeTable){const internalData=$xeTable;const{elemStore}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){rowExpandEl.scrollTop=bodyScrollElem.scrollTop;}}function handleColumnVisible(visible){return function(fieldOrColumn){const $xeTable=this;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);if(column){if(column.children&&column.children.length){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column],item=>{item.visible=visible;item.renderVisible=visible;});}else{column.visible=visible;column.renderVisible=visible;}if(!status){status=true;}}});if(status){return $xeTable.handleCustom();}return $xeTable.$nextTick();};}function reUpdateCustomStyleEvent($xeTable,evnt){const reactData=$xeTable;const{customStore}=reactData;const customOpts=$xeTable.computeCustomOpts;const{popupOptions}=customOpts;const{transfer}=popupOptions||{};if(transfer&&customStore.visible){const tableCustom=$xeTable.$refs.refTableCustom;if(tableCustom&&$xeTable.handleCustomStyle&&!checkTargetElement(evnt.target,[tableCustom.$el],evnt.currentTarget)){$xeTable.handleCustomStyle().then(()=>{$xeTable.handleCustomStyle();});}}}function truncateStackHistory($xeTable){const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks}=stackHistoryStore;const undoRedoHistoryOpts=$xeTable.computeUndoRedoHistoryOpts;const{stackSize}=undoRedoHistoryOpts;if(undoStacks.length>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(stackSize)){undoStacks.shift();}}/**
|
|
7969
|
-
* 生成快照数据
|
|
7970
|
-
*/function getSnapshotStackData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{editStore}=reactData;const{afterFullData,elemStore,insertRowMaps,removeRowMaps}=internalData;const{selected,actived}=editStore;const{row:selectRow,column:selectColumn}=selected;const{row:editRow,column:editColumn}=actived;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const stackObj={selectActiveInfo:selectRow&&selectColumn?{rowid:getRowid($xeTable,selectRow),colid:selectColumn.id}:undefined,editActiveInfo:editRow&&editColumn?{rowid:getRowid($xeTable,editRow),colid:editColumn.id}:undefined,scrollInfo:{top:bodyScrollElem?bodyScrollElem.scrollTop:0,left:bodyScrollElem?bodyScrollElem.scrollLeft:0},insertData:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(insertRowMaps),true),removeData:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(removeRowMaps),true),visibleData:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(afterFullData,true),visibleTreeData:[],visibleColumn:[]};return $xeTable.getCellAreaPushStackObj?$xeTable.getCellAreaPushStackObj(stackObj):stackObj;}/**
|
|
7971
|
-
* 刷新栈视图
|
|
7971
|
+
if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expandOpts.height||0;}}}/**
|
|
7972
|
+
* 更新展开行样式
|
|
7973
|
+
*/function updateRowExpandStyle($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{expandColumn,scrollYLoad,scrollYTop,isScrollYBig}=reactData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{mode}=expandOpts;if(expandColumn&&mode==='fixed'){const{elemStore,fullAllDataRowIdData}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){let isUpdateHeight=false;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(rowExpandEl.children,reEl=>{const expandEl=reEl;const rowid=expandEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const expandHeight=expandEl.offsetHeight;const trEl=bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);let offsetTop=0;if(scrollYLoad){if(isScrollYBig&&trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}else{offsetTop=rowRest.oTop+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);}}else{if(trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}}if(isScrollYBig){offsetTop+=scrollYTop;}expandEl.style.top=toCssUnit(offsetTop);if(!isUpdateHeight){if(rowRest.expandHeight!==expandHeight){isUpdateHeight=true;}}rowRest.expandHeight=expandHeight;}});if(isUpdateHeight){reactData.rowExpandHeightFlag++;$xeTable.$nextTick(()=>{updateRowOffsetTop($xeTable);});}}}}/**
|
|
7974
|
+
* 更新树连接线样式
|
|
7975
|
+
*/function updateTreeLineStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;if(!treeConfig){return;}const{tableData}=reactData;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const cellOpts=$xeTable.computeCellOpts;const rowOpts=$xeTable.computeRowOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{handleGetRowId}=createHandleGetRowId($xeTable);const expParentList=[];const handleNodeRow=(row,rIndex,rows)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};const childList=row[transform?mapChildrenField:childrenField];const prevRow=rows[rIndex-1]||null;const nextRow=rows[rIndex+1]||null;if(childList&&childList.length&&treeExpandedMaps[rowid]){expParentList.push({row,prevRow,nextRow});childList.forEach((childRow,crIndex)=>{const childRowid=handleGetRowId(childRow);if(treeExpandedMaps[childRowid]){handleNodeRow(childRow,crIndex,childList);}});}else{if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=getCellRestHeight(nextRowRest,cellOpts,rowOpts,defaultRowHeight);rowRest.oHeight=currCellHeight;rowRest.lineHeight=Math.floor(currCellHeight/2+nextCellHeight/2);}else{rowRest.oHeight=0;rowRest.lineHeight=0;}}};tableData.forEach((row,rIndex)=>{handleNodeRow(row,rIndex,tableData);});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastArrayEach(expParentList,({row,nextRow})=>{const rowid=handleGetRowId(row);const childList=row[transform?mapChildrenField:childrenField];const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);let countOffsetHeight=currCellHeight;let countLineHeight=0;childList.forEach(childRow=>{const childRowid=handleGetRowId(childRow);const childRowRest=fullAllDataRowIdData[childRowid]||{};const childList=childRow[transform?mapChildrenField:childrenField];if(treeExpandedMaps[childRowid]&&childList&&childList.length){countOffsetHeight+=childRowRest.oHeight||0;countLineHeight+=childRowRest.oHeight||0;}else{const cellHeight=getCellRestHeight(childRowRest,cellOpts,rowOpts,defaultRowHeight);childRowRest.oHeight=cellHeight;childRowRest.lineHeight=cellHeight;countOffsetHeight+=cellHeight;countLineHeight+=cellHeight;}});if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=getCellRestHeight(nextRowRest,cellOpts,rowOpts,defaultRowHeight);countOffsetHeight+=currCellHeight;countLineHeight+=Math.floor(currCellHeight/2+nextCellHeight/2);}rowRest.lineHeight=countLineHeight;rowRest.oHeight=countOffsetHeight;}});}function handleRowExpandScroll($xeTable){const internalData=$xeTable;const{elemStore}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){rowExpandEl.scrollTop=bodyScrollElem.scrollTop;}}function handleColumnVisible(visible){return function(fieldOrColumn){const $xeTable=this;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);if(column){if(column.children&&column.children.length){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column],item=>{item.visible=visible;item.renderVisible=visible;});}else{column.visible=visible;column.renderVisible=visible;}if(!status){status=true;}}});if(status){return $xeTable.handleCustom();}return $xeTable.$nextTick();};}function reUpdateCustomStyleEvent($xeTable,evnt){const reactData=$xeTable;const{customStore}=reactData;const customOpts=$xeTable.computeCustomOpts;const{popupOptions}=customOpts;const{transfer}=popupOptions||{};if(transfer&&customStore.visible){const tableCustom=$xeTable.$refs.refTableCustom;if(tableCustom&&$xeTable.handleCustomStyle&&!checkTargetElement(evnt.target,[tableCustom.$el],evnt.currentTarget)){$xeTable.handleCustomStyle().then(()=>{$xeTable.handleCustomStyle();});}}}function truncateStackHistory($xeTable){const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks}=stackHistoryStore;const undoRedoHistoryOpts=$xeTable.computeUndoRedoHistoryOpts;const{stackSize}=undoRedoHistoryOpts;if(undoStacks.length>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(stackSize)){undoStacks.shift();}}/**
|
|
7976
|
+
* 生成快照数据
|
|
7977
|
+
*/function getSnapshotStackData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{editStore}=reactData;const{afterFullData,elemStore,insertRowMaps,removeRowMaps}=internalData;const{selected,actived}=editStore;const{row:selectRow,column:selectColumn}=selected;const{row:editRow,column:editColumn}=actived;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const stackObj={selectActiveInfo:selectRow&&selectColumn?{rowid:getRowid($xeTable,selectRow),colid:selectColumn.id}:undefined,editActiveInfo:editRow&&editColumn?{rowid:getRowid($xeTable,editRow),colid:editColumn.id}:undefined,scrollInfo:{top:bodyScrollElem?bodyScrollElem.scrollTop:0,left:bodyScrollElem?bodyScrollElem.scrollLeft:0},insertData:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(insertRowMaps),true),removeData:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(removeRowMaps),true),visibleData:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(afterFullData,true),visibleTreeData:[],visibleColumn:[]};return $xeTable.getCellAreaPushStackObj?$xeTable.getCellAreaPushStackObj(stackObj):stackObj;}/**
|
|
7978
|
+
* 刷新栈视图
|
|
7972
7979
|
*/function handleUpdateSnapshotStackData($xeTable,stackObj){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{editStore}=reactData;const{fullAllDataRowIdData,fullColumnIdData}=internalData;if(!stackObj){return;}const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const{visibleData,editActiveInfo,selectActiveInfo,scrollInfo,insertData,removeData}=stackObj;const iRowMaps={};insertData.forEach(item=>{const rowid=getRowid($xeTable,item);const rest=fullAllDataRowIdData[rowid];let row=item;if(rest){row=rest.row;Object.assign(row,item);}iRowMaps[rowid]=row;});const rRowMaps={};removeData.forEach(item=>{const rowid=getRowid($xeTable,item);const rest=fullAllDataRowIdData[rowid];let row=item;if(rest){row=rest.row;Object.assign(row,item);}rRowMaps[rowid]=row;});const afterFullList=visibleData.map(item=>{const rowid=getRowid($xeTable,item);const rest=fullAllDataRowIdData[rowid];let row=item;if(rest){row=rest.row;Object.assign(row,item);}return row;});internalData.insertRowMaps=iRowMaps;internalData.removeRowMaps=rRowMaps;internalData.afterFullData=afterFullList;$xeTable.cacheRowMap(false);$xeTable.handleTableData(treeConfig&&transform);$xeTable.updateFooter();$xeTable.handleUpdateBodyMerge();if(!(treeConfig&&transform)){$xeTable.updateAfterDataIndex();}$xeTable.checkSelectionStatus();if(reactData.scrollYLoad){$xeTable.updateScrollYSpace();}if($xeTable.handleCellAreaSnapshotStackData){$xeTable.handleCellAreaSnapshotStackData(stackObj);}else{const{selected}=editStore;const mouseOpts=$xeTable.computeMouseOpts;let selectRowid='';let selectColid='';if(editActiveInfo){selectRowid=editActiveInfo.rowid;selectColid=editActiveInfo.colid;}else if(selectActiveInfo){selectRowid=selectActiveInfo.rowid;selectColid=selectActiveInfo.colid;}if(selectRowid&&selectColid&&mouseOpts.selected){const editRow=fullAllDataRowIdData[selectRowid]?fullAllDataRowIdData[selectRowid].row:null;const editColumn=fullColumnIdData[selectColid]?fullColumnIdData[selectColid].column:null;if(editRow&&editColumn){const params={row:editRow,column:editColumn};selected.row=editRow;selected.column=editColumn;selected.args=params;$xeTable.$nextTick(()=>{$xeTable.addCellSelectedClass();$xeTable.scrollTo(scrollInfo);});}}}}const tableMethods={callSlot(slotFunc,params,h,vNodes){const $xeTable=this;// const slots = $xeTable.$scopedSlots
|
|
7973
7980
|
const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;if(slotFunc){if($xeGGWrapper){return $xeGGWrapper.callSlot(slotFunc,params,h);}// if (XEUtils.isString(slotFunc)) {
|
|
7974
7981
|
// slotFunc = slots[slotFunc] || null
|
|
7975
7982
|
// }
|
|
7976
|
-
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},/**
|
|
7977
|
-
* 获取父容器元素
|
|
7978
|
-
*/getParentElem(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{$el}=this;return $xeGGWrapper?$xeGGWrapper.$el.parentNode:$el.parentNode;},/**
|
|
7979
|
-
* 获取父容器的高度
|
|
7980
|
-
*/getParentHeight(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const{height}=props;const el=$xeTable.$refs.refElem;if(el){const parentElem=el.parentNode;const parentPaddingSize=height==='100%'||height==='auto'?getPaddingTopBottomSize(parentElem):0;let parentWrapperHeight=0;if(parentElem){if($xeGantt&&hasClass(parentElem,'vxe-gantt--table-wrapper')){parentWrapperHeight=$xeGantt.getParentHeight();}else if($xeGrid&&hasClass(parentElem,'vxe-grid--table-wrapper')){parentWrapperHeight=$xeGrid.getParentHeight();}else{parentWrapperHeight=parentElem.clientHeight;}}return Math.floor(parentWrapperHeight-parentPaddingSize);}return 0;},/**
|
|
7981
|
-
* 获取需要排除的高度
|
|
7982
|
-
* 但渲染表格高度时,需要排除工具栏或分页等相关组件的高度
|
|
7983
|
-
* 如果存在表尾合计滚动条,则需要排除滚动条高度
|
|
7984
|
-
*/getExcludeHeight(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;return $xeGGWrapper?$xeGGWrapper.getExcludeHeight():0;},/**
|
|
7985
|
-
* 重置表格的一切数据状态
|
|
7986
|
-
*/clearAll(){const $xeTable=this;return clearTableAllStatus($xeTable);},handleUpdateRowGroup(groupFields){const $xeTable=this;handleUpdateRowGroup($xeTable,groupFields);},/**
|
|
7987
|
-
* 同步 data 数据(即将废弃)
|
|
7988
|
-
* 如果用了该方法,那么组件将不再记录增删改的状态,只能自行实现对应逻辑
|
|
7989
|
-
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
|
|
7990
|
-
*/syncData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;methods_errLog('vxe.error.delFunc',['syncData','getData']);return $xeTable.$nextTick().then(()=>{reactData.tableData=[];return $xeTable.$nextTick().then(()=>loadTableData($xeTable,internalData.tableFullData,true,true));});},/**
|
|
7991
|
-
* 手动处理数据,用于手动排序与筛选
|
|
7992
|
-
* 对于手动更改了排序、筛选...等条件后需要重新处理数据时可能会用到
|
|
7983
|
+
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},/**
|
|
7984
|
+
* 获取父容器元素
|
|
7985
|
+
*/getParentElem(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{$el}=this;return $xeGGWrapper?$xeGGWrapper.$el.parentNode:$el.parentNode;},/**
|
|
7986
|
+
* 获取父容器的高度
|
|
7987
|
+
*/getParentHeight(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const{height}=props;const el=$xeTable.$refs.refElem;if(el){const parentElem=el.parentNode;const parentPaddingSize=height==='100%'||height==='auto'?getPaddingTopBottomSize(parentElem):0;let parentWrapperHeight=0;if(parentElem){if($xeGantt&&hasClass(parentElem,'vxe-gantt--table-wrapper')){parentWrapperHeight=$xeGantt.getParentHeight();}else if($xeGrid&&hasClass(parentElem,'vxe-grid--table-wrapper')){parentWrapperHeight=$xeGrid.getParentHeight();}else{parentWrapperHeight=parentElem.clientHeight;}}return Math.floor(parentWrapperHeight-parentPaddingSize);}return 0;},/**
|
|
7988
|
+
* 获取需要排除的高度
|
|
7989
|
+
* 但渲染表格高度时,需要排除工具栏或分页等相关组件的高度
|
|
7990
|
+
* 如果存在表尾合计滚动条,则需要排除滚动条高度
|
|
7991
|
+
*/getExcludeHeight(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;return $xeGGWrapper?$xeGGWrapper.getExcludeHeight():0;},/**
|
|
7992
|
+
* 重置表格的一切数据状态
|
|
7993
|
+
*/clearAll(){const $xeTable=this;return clearTableAllStatus($xeTable);},handleUpdateRowGroup(groupFields){const $xeTable=this;handleUpdateRowGroup($xeTable,groupFields);},/**
|
|
7994
|
+
* 同步 data 数据(即将废弃)
|
|
7995
|
+
* 如果用了该方法,那么组件将不再记录增删改的状态,只能自行实现对应逻辑
|
|
7996
|
+
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
|
|
7997
|
+
*/syncData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;methods_errLog('vxe.error.delFunc',['syncData','getData']);return $xeTable.$nextTick().then(()=>{reactData.tableData=[];return $xeTable.$nextTick().then(()=>loadTableData($xeTable,internalData.tableFullData,true,true));});},/**
|
|
7998
|
+
* 手动处理数据,用于手动排序与筛选
|
|
7999
|
+
* 对于手动更改了排序、筛选...等条件后需要重新处理数据时可能会用到
|
|
7993
8000
|
*/updateData(){const $xeTable=this;const reactData=$xeTable;const{scrollXLoad,scrollYLoad}=reactData;return $xeTable.handleTableData(true).then(()=>{$xeTable.updateFooter();if(scrollXLoad||scrollYLoad){if(scrollXLoad){$xeTable.updateScrollXSpace();}if(scrollYLoad){$xeTable.updateScrollYSpace();}return $xeTable.refreshScroll();}}).then(()=>{$xeTable.updateCellAreas();return handleLazyRecalculate($xeTable,true,true,true);}).then(()=>{// 存在滚动行为未结束情况
|
|
7994
8001
|
setTimeout(()=>handleLazyRecalculate($xeTable,false,true,true),50);});},handleTableData(force){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad}=reactData;const{scrollYStore,fullDataRowIdData}=internalData;const $xeGanttView=internalData.xeGanttView;let fullList=internalData.afterFullData;// 是否进行数据处理
|
|
7995
8002
|
if(force){// 更新数据,处理筛选和排序
|
|
7996
8003
|
updateAfterFullData($xeTable);// 如果为虚拟树,将树结构拍平
|
|
7997
8004
|
fullList=handleVirtualTreeToList($xeTable);// 更新数据后清除合并缓存,涉及分组、筛选、排序等
|
|
7998
|
-
internalData.mergeHeaderRowMaps={};internalData.mergeHeaderColMaps={};internalData.mergeBodyRowMaps={};internalData.mergeBodyColMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};}const tableData=scrollYLoad?fullList.slice(scrollYStore.startIndex,scrollYStore.endIndex):fullList.slice(0);const visibleDataRowIdMaps={};tableData.forEach((row,$index)=>{const rowid=getRowid($xeTable,row);const rest=fullDataRowIdData[rowid];if(rest){rest.$index=$index;}visibleDataRowIdMaps[rowid]=row;});reactData.tableData=tableData;internalData.visibleDataRowIdData=visibleDataRowIdMaps;if($xeGanttView&&$xeGanttView.updateViewData){$xeGanttView.updateViewData(force);}return $xeTable.$nextTick();},initData(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{data}=props;loadTableData($xeTable,data||[],true,true).then(()=>{if(data&&data.length){internalData.inited=true;internalData.initStatus=true;handleLoadDefaults($xeTable);}handleInitDefaults($xeTable);updateStyle($xeTable);if(!reactData.isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}});$xeTable.$nextTick().then(()=>{$xeTable.dispatchEvent('ready',{},null);});},/**
|
|
7999
|
-
* 加载表格数据
|
|
8000
|
-
* @param {Array} datas 数据
|
|
8001
|
-
*/loadTableData(datas,isReload,isReset){const $xeTable=this;return loadTableData($xeTable,datas,isReload,isReset);},/**
|
|
8002
|
-
* 重新加载数据,不会清空表格状态
|
|
8003
|
-
* @param {Array} datas 数据
|
|
8004
|
-
*/loadData(datas){const $xeTable=this;const internalData=$xeTable;const{initStatus}=internalData;return loadTableData($xeTable,datas,false,false).then(()=>{internalData.inited=true;internalData.initStatus=true;if(initStatus){handleLoadDefaults($xeTable);}return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8005
|
-
* 重新加载数据,会清空表格状态
|
|
8006
|
-
* @param {Array} datas 数据
|
|
8007
|
-
*/reloadData(datas){const $xeTable=this;const internalData=$xeTable;return $xeTable.clearAll().then(()=>{internalData.inited=true;internalData.initStatus=true;return loadTableData($xeTable,datas,true,true);}).then(()=>{handleLoadDefaults($xeTable);return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8008
|
-
* 修改行数据
|
|
8009
|
-
*/setRow(rows,record){const $xeTable=this;if(record){let rest=rows;if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rest=[rows];}rest.forEach(item=>Object.assign(item,record));}return $xeTable.$nextTick();},/**
|
|
8010
|
-
* 局部加载行数据并恢复到初始状态
|
|
8011
|
-
* 对于行数据需要局部更改的场景中可能会用到
|
|
8012
|
-
* @param {Row} row 行对象
|
|
8013
|
-
* @param {Object} record 新数据
|
|
8014
|
-
* @param {String} field 字段名
|
|
8015
|
-
*/reloadRow(row,record,field){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableData}=reactData;const{sourceDataRowIdData}=internalData;if(keepSource){if($xeTable.isAggregateRecord(row)){return $xeTable.$nextTick();}const rowkey=getRowkey($xeTable);const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,rowkey);const oRow=sourceDataRowIdData[rowid];if(oRow&&row){if(field){const newValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record||row,field),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,newValue);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(oRow,field,newValue);}else{const newRecord=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(Object.assign({},record),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(newRecord,rowkey,rowid);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{methods_errLog('vxe.error.reqProp',['keep-source']);}return $xeTable.$nextTick();},/**
|
|
8016
|
-
* 加载列配置
|
|
8017
|
-
* 对于表格列需要重载、局部递增场景下可能会用到
|
|
8018
|
-
* @param {ColumnInfo} columns 列配置
|
|
8005
|
+
internalData.mergeHeaderRowMaps={};internalData.mergeHeaderColMaps={};internalData.mergeBodyRowMaps={};internalData.mergeBodyColMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};}const tableData=scrollYLoad?fullList.slice(scrollYStore.startIndex,scrollYStore.endIndex):fullList.slice(0);const visibleDataRowIdMaps={};tableData.forEach((row,$index)=>{const rowid=getRowid($xeTable,row);const rest=fullDataRowIdData[rowid];if(rest){rest.$index=$index;}visibleDataRowIdMaps[rowid]=row;});reactData.tableData=tableData;internalData.visibleDataRowIdData=visibleDataRowIdMaps;if($xeGanttView&&$xeGanttView.updateViewData){$xeGanttView.updateViewData(force);}return $xeTable.$nextTick();},initData(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{data}=props;loadTableData($xeTable,data||[],true,true).then(()=>{if(data&&data.length){internalData.inited=true;internalData.initStatus=true;handleLoadDefaults($xeTable);}handleInitDefaults($xeTable);updateStyle($xeTable);if(!reactData.isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}});$xeTable.$nextTick().then(()=>{$xeTable.dispatchEvent('ready',{},null);});},/**
|
|
8006
|
+
* 加载表格数据
|
|
8007
|
+
* @param {Array} datas 数据
|
|
8008
|
+
*/loadTableData(datas,isReload,isReset){const $xeTable=this;return loadTableData($xeTable,datas,isReload,isReset);},/**
|
|
8009
|
+
* 重新加载数据,不会清空表格状态
|
|
8010
|
+
* @param {Array} datas 数据
|
|
8011
|
+
*/loadData(datas){const $xeTable=this;const internalData=$xeTable;const{initStatus}=internalData;return loadTableData($xeTable,datas,false,false).then(()=>{internalData.inited=true;internalData.initStatus=true;if(initStatus){handleLoadDefaults($xeTable);}return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8012
|
+
* 重新加载数据,会清空表格状态
|
|
8013
|
+
* @param {Array} datas 数据
|
|
8014
|
+
*/reloadData(datas){const $xeTable=this;const internalData=$xeTable;return $xeTable.clearAll().then(()=>{internalData.inited=true;internalData.initStatus=true;return loadTableData($xeTable,datas,true,true);}).then(()=>{handleLoadDefaults($xeTable);return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8015
|
+
* 修改行数据
|
|
8016
|
+
*/setRow(rows,record){const $xeTable=this;if(record){let rest=rows;if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rest=[rows];}rest.forEach(item=>Object.assign(item,record));}return $xeTable.$nextTick();},/**
|
|
8017
|
+
* 局部加载行数据并恢复到初始状态
|
|
8018
|
+
* 对于行数据需要局部更改的场景中可能会用到
|
|
8019
|
+
* @param {Row} row 行对象
|
|
8020
|
+
* @param {Object} record 新数据
|
|
8021
|
+
* @param {String} field 字段名
|
|
8022
|
+
*/reloadRow(row,record,field){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableData}=reactData;const{sourceDataRowIdData}=internalData;if(keepSource){if($xeTable.isAggregateRecord(row)){return $xeTable.$nextTick();}const rowkey=getRowkey($xeTable);const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,rowkey);const oRow=sourceDataRowIdData[rowid];if(oRow&&row){if(field){const newValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record||row,field),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,newValue);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(oRow,field,newValue);}else{const newRecord=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(Object.assign({},record),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(newRecord,rowkey,rowid);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{methods_errLog('vxe.error.reqProp',['keep-source']);}return $xeTable.$nextTick();},/**
|
|
8023
|
+
* 加载列配置
|
|
8024
|
+
* 对于表格列需要重载、局部递增场景下可能会用到
|
|
8025
|
+
* @param {ColumnInfo} columns 列配置
|
|
8019
8026
|
*/loadColumn(columns){const $xeTable=this;const internalData=$xeTable;const{lastScrollLeft,lastScrollTop}=internalData;const collectColumn=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().mapTree(columns,column=>cell.createColumn($xeTable,column),{children:'children'});return handleInitColumn($xeTable,collectColumn).then(()=>{let targetScrollLeft=lastScrollLeft;let targetScrollTop=lastScrollTop;const virtualXOpts=$xeTable.computeVirtualXOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否在更新数据之后自动滚动重置滚动条
|
|
8020
|
-
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}restoreScrollLocation($xeTable,targetScrollLeft,targetScrollTop);});},/**
|
|
8021
|
-
* 加载列配置并恢复到初始状态
|
|
8022
|
-
* 对于表格列需要重载、局部递增场景下可能会用到
|
|
8023
|
-
* @param {ColumnInfo} columns 列配置
|
|
8024
|
-
*/reloadColumn(columns){return this.clearAll().then(()=>{return this.loadColumn(columns);});},handleInitColumn(collectColumn){const $xeTable=this;return handleInitColumn($xeTable,collectColumn);},/**
|
|
8025
|
-
* 更新数据行的 Map
|
|
8027
|
+
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}restoreScrollLocation($xeTable,targetScrollLeft,targetScrollTop);});},/**
|
|
8028
|
+
* 加载列配置并恢复到初始状态
|
|
8029
|
+
* 对于表格列需要重载、局部递增场景下可能会用到
|
|
8030
|
+
* @param {ColumnInfo} columns 列配置
|
|
8031
|
+
*/reloadColumn(columns){return this.clearAll().then(()=>{return this.loadColumn(columns);});},handleInitColumn(collectColumn){const $xeTable=this;return handleInitColumn($xeTable,collectColumn);},/**
|
|
8032
|
+
* 更新数据行的 Map
|
|
8026
8033
|
*/cacheRowMap(isReset){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{currKeyField,fullAllDataRowIdData,tableFullData,tableFullTreeData,tableFullGroupData,treeExpandedMaps,rowExpandedMaps,selectCheckboxMaps}=internalData;const fullAllDataRowIdMaps=isReset?{}:{...fullAllDataRowIdData};// 存在已删除数据
|
|
8027
8034
|
const fullDataRowIdMaps={};const idMaps={};const{handleUpdateRowId}=createHandleUpdateRowId($xeTable);let rowNum=0;const handleRowCache=(row,index,items,currIndex,parentRow,rowid,level,seq)=>{let rowRest=fullAllDataRowIdMaps[rowid];if(idMaps[rowid]){methods_errLog('vxe.error.repeatKey',[currKeyField,rowid]);}if(!rowRest){rowRest={row,rowid,_seq:-1,seq,index:-1,_index:-1,$index:-1,treeIndex:index,_tIndex:-1,items,parent:parentRow,level,height:0,resizeHeight:0,oTop:0,expandHeight:0};}rowRest.treeLoaded=false;rowRest.expandLoaded=false;rowRest._seq=rowNum++;rowRest.row=row;rowRest.items=items;rowRest.parent=parentRow;rowRest.level=level;rowRest.index=currIndex;rowRest.treeIndex=index;// 更新缓存
|
|
8028
8035
|
if(selectCheckboxMaps[rowid]){selectCheckboxMaps[rowid]=row;}if(rowExpandedMaps[rowid]){rowExpandedMaps[rowid]=row;}idMaps[rowid]=true;fullDataRowIdMaps[rowid]=rowRest;fullAllDataRowIdMaps[rowid]=rowRest;};if(treeConfig){const treeOpts=$xeTable.computeTreeOpts;const{lazy}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);if(lazy){if(row[hasChildField]&&row[childrenField]===undefined){row[childrenField]=null;}if(treeExpandedMaps[rowid]){if(!row[childrenField]||!row[childrenField].length){delete treeExpandedMaps[rowid];}}}handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,toTreePathSeq(path));},{children:childrenField});}else if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,toTreePathSeq(path));},{children:mapChildrenField});}else{tableFullData.forEach((row,index,items)=>{handleRowCache(row,index,items,index,null,handleUpdateRowId(row),0,index+1);});}internalData.fullDataRowIdData=fullDataRowIdMaps;internalData.fullAllDataRowIdData=fullAllDataRowIdMaps;reactData.treeExpandedFlag++;},cacheSourceMap(fullData){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const treeOpts=$xeTable.computeTreeOpts;const sourceData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(fullData,true);const{handleUpdateRowId}=createHandleUpdateRowId($xeTable);const sourceRowIdData={};const handleSourceRow=row=>{const rowid=handleUpdateRowId(row);sourceRowIdData[rowid]=row;};// 源数据缓存
|
|
8029
|
-
if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sourceData,handleSourceRow,{children:treeOpts.transform?treeOpts.mapChildrenField:childrenField});}else{sourceData.forEach(handleSourceRow);}internalData.sourceDataRowIdData=sourceRowIdData;internalData.tableSourceData=sourceData;},getParams(){const $xeTable=this;const props=$xeTable;return props.params;},loadTreeChildren(row,childRecords){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableSourceData,fullDataRowIdData,fullAllDataRowIdData,sourceDataRowIdData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const parentRest=fullAllDataRowIdData[getRowid($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return this.createData(childRecords).then(rows=>{if(keepSource){const rowid=getRowid(this,row);const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableSourceData,item=>rowid===getRowid(this,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,true);}rows.forEach(childRow=>{const rowid=getRowid(this,childRow);sourceDataRowIdData[rowid]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(childRow,true);});}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=getRowid($xeTable,childRow);const parentRow=parentItem||parentRest.row;const rest={row:childRow,rowid,_seq:-1,seq:-1,index,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items,parent:parentRow,level:parentLevel+nodes.length,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdData[rowid]=rest;fullAllDataRowIdData[rowid]=rest;},{children:childrenField});row[childrenField]=rows;if(transform){row[mapChildrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,false);}updateAfterDataIndex($xeTable);return rows;});},/**
|
|
8030
|
-
* 根据 tr 元素获取对应的 row 信息
|
|
8031
|
-
* @param {Element} tr 元素
|
|
8032
|
-
*/getRowNode(tr){const $xeTable=this;const internalData=$xeTable;if(tr){const{fullAllDataRowIdData}=internalData;const rowid=tr.getAttribute('rowid');if(rowid){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return{rowid:rowRest.rowid,item:rowRest.row,index:rowRest.index,items:rowRest.items,parent:rowRest.parent};}}}return null;},/**
|
|
8033
|
-
* 根据 th/td 元素获取对应的 column 信息
|
|
8034
|
-
* @param {Element} cell 元素
|
|
8035
|
-
*/getColumnNode(cell){const $xeTable=this;const internalData=$xeTable;if(cell){const{fullColumnIdData}=internalData;const colid=cell.getAttribute('colid');if(colid){const colRest=fullColumnIdData[colid];if(colRest){return{colid:colRest.colid,item:colRest.column,index:colRest.index,items:colRest.items,parent:colRest.parent};}}}return null;},/**
|
|
8036
|
-
* 根据 row 获取序号
|
|
8037
|
-
* @param {Row} row 行对象
|
|
8038
|
-
*/getRowSeq:createGetRowCacheProp('seq'),/**
|
|
8039
|
-
* 根据 row 获取相对于 data 中的索引
|
|
8040
|
-
* @param {Row} row 行对象
|
|
8041
|
-
*/getRowIndex:createGetRowCacheProp('index'),/**
|
|
8042
|
-
* 根据 row 获取相对于当前数据中的索引
|
|
8043
|
-
* @param {Row} row 行对象
|
|
8044
|
-
*/getVTRowIndex:createGetRowCacheProp('_index'),/**
|
|
8045
|
-
* 根据 row 获取渲染中的虚拟索引
|
|
8046
|
-
* @param {Row} row 行对象
|
|
8036
|
+
if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sourceData,handleSourceRow,{children:treeOpts.transform?treeOpts.mapChildrenField:childrenField});}else{sourceData.forEach(handleSourceRow);}internalData.sourceDataRowIdData=sourceRowIdData;internalData.tableSourceData=sourceData;},getParams(){const $xeTable=this;const props=$xeTable;return props.params;},loadTreeChildren(row,childRecords){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableSourceData,fullDataRowIdData,fullAllDataRowIdData,sourceDataRowIdData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const parentRest=fullAllDataRowIdData[getRowid($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return this.createData(childRecords).then(rows=>{if(keepSource){const rowid=getRowid(this,row);const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableSourceData,item=>rowid===getRowid(this,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,true);}rows.forEach(childRow=>{const rowid=getRowid(this,childRow);sourceDataRowIdData[rowid]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(childRow,true);});}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=getRowid($xeTable,childRow);const parentRow=parentItem||parentRest.row;const rest={row:childRow,rowid,_seq:-1,seq:-1,index,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items,parent:parentRow,level:parentLevel+nodes.length,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdData[rowid]=rest;fullAllDataRowIdData[rowid]=rest;},{children:childrenField});row[childrenField]=rows;if(transform){row[mapChildrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,false);}updateAfterDataIndex($xeTable);return rows;});},/**
|
|
8037
|
+
* 根据 tr 元素获取对应的 row 信息
|
|
8038
|
+
* @param {Element} tr 元素
|
|
8039
|
+
*/getRowNode(tr){const $xeTable=this;const internalData=$xeTable;if(tr){const{fullAllDataRowIdData}=internalData;const rowid=tr.getAttribute('rowid');if(rowid){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return{rowid:rowRest.rowid,item:rowRest.row,index:rowRest.index,items:rowRest.items,parent:rowRest.parent};}}}return null;},/**
|
|
8040
|
+
* 根据 th/td 元素获取对应的 column 信息
|
|
8041
|
+
* @param {Element} cell 元素
|
|
8042
|
+
*/getColumnNode(cell){const $xeTable=this;const internalData=$xeTable;if(cell){const{fullColumnIdData}=internalData;const colid=cell.getAttribute('colid');if(colid){const colRest=fullColumnIdData[colid];if(colRest){return{colid:colRest.colid,item:colRest.column,index:colRest.index,items:colRest.items,parent:colRest.parent};}}}return null;},/**
|
|
8043
|
+
* 根据 row 获取序号
|
|
8044
|
+
* @param {Row} row 行对象
|
|
8045
|
+
*/getRowSeq:createGetRowCacheProp('seq'),/**
|
|
8046
|
+
* 根据 row 获取相对于 data 中的索引
|
|
8047
|
+
* @param {Row} row 行对象
|
|
8048
|
+
*/getRowIndex:createGetRowCacheProp('index'),/**
|
|
8049
|
+
* 根据 row 获取相对于当前数据中的索引
|
|
8050
|
+
* @param {Row} row 行对象
|
|
8051
|
+
*/getVTRowIndex:createGetRowCacheProp('_index'),/**
|
|
8052
|
+
* 根据 row 获取渲染中的虚拟索引
|
|
8053
|
+
* @param {Row} row 行对象
|
|
8047
8054
|
*/getVMRowIndex:createGetRowCacheProp('$index'),// 在 v3 中废弃
|
|
8048
8055
|
_getRowIndex(row){methods_warnLog('vxe.error.delFunc',['_getRowIndex','getVTRowIndex']);return this.getVTRowIndex(row);},// 在 v3 中废弃
|
|
8049
|
-
$getRowIndex(row){methods_warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);return this.getVMRowIndex(row);},/**
|
|
8050
|
-
* 根据 column 获取相对于 columns 中的索引
|
|
8051
|
-
* @param {ColumnInfo} column 列配置
|
|
8052
|
-
*/getColumnIndex:createGetColumnCacheProp('index'),/**
|
|
8053
|
-
* 根据 column 获取相对于当前表格列中的索引
|
|
8054
|
-
* @param {ColumnInfo} column 列配置
|
|
8055
|
-
*/getVTColumnIndex:createGetColumnCacheProp('_index'),/**
|
|
8056
|
-
* 根据 column 获取渲染中的虚拟索引
|
|
8057
|
-
* @param {ColumnInfo} column 列配置
|
|
8056
|
+
$getRowIndex(row){methods_warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);return this.getVMRowIndex(row);},/**
|
|
8057
|
+
* 根据 column 获取相对于 columns 中的索引
|
|
8058
|
+
* @param {ColumnInfo} column 列配置
|
|
8059
|
+
*/getColumnIndex:createGetColumnCacheProp('index'),/**
|
|
8060
|
+
* 根据 column 获取相对于当前表格列中的索引
|
|
8061
|
+
* @param {ColumnInfo} column 列配置
|
|
8062
|
+
*/getVTColumnIndex:createGetColumnCacheProp('_index'),/**
|
|
8063
|
+
* 根据 column 获取渲染中的虚拟索引
|
|
8064
|
+
* @param {ColumnInfo} column 列配置
|
|
8058
8065
|
*/getVMColumnIndex:createGetColumnCacheProp('$index'),// 在 v3 中废弃
|
|
8059
8066
|
_getColumnIndex(column){methods_warnLog('vxe.error.delFunc',['_getColumnIndex','getVTColumnIndex']);return this.getVTColumnIndex(column);},// 在 v3 中废弃
|
|
8060
|
-
$getColumnIndex(column){methods_warnLog('vxe.error.delFunc',['$getColumnIndex','getVMColumnIndex']);return this.getVMColumnIndex(column);},/**
|
|
8061
|
-
* 判断是否为索引列
|
|
8062
|
-
* @param {ColumnInfo} column 列配置
|
|
8063
|
-
*/isSeqColumn(column){return column&&column.type==='seq';},/**
|
|
8064
|
-
* 定义行数据中的列属性,如果不存在则定义
|
|
8065
|
-
* @param {Row} records 行数据
|
|
8067
|
+
$getColumnIndex(column){methods_warnLog('vxe.error.delFunc',['$getColumnIndex','getVMColumnIndex']);return this.getVMColumnIndex(column);},/**
|
|
8068
|
+
* 判断是否为索引列
|
|
8069
|
+
* @param {ColumnInfo} column 列配置
|
|
8070
|
+
*/isSeqColumn(column){return column&&column.type==='seq';},/**
|
|
8071
|
+
* 定义行数据中的列属性,如果不存在则定义
|
|
8072
|
+
* @param {Row} records 行数据
|
|
8066
8073
|
*/defineField(records){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const expandOpts=$xeTable.computeExpandOpts;const treeOpts=$xeTable.computeTreeOpts;const radioOpts=$xeTable.computeRadioOpts;const rowOpts=$xeTable.computeRowOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const rowkey=getRowkey($xeTable);if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)){records=[records||{}];}return records.map(record=>{internalData.tableFullColumn.forEach(column=>{const{field,editRender}=column;if(field&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().has(record,field)){let cellValue=null;if(editRender){const{defaultValue}=editRender;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(defaultValue)){cellValue=defaultValue({column});}else if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(defaultValue)){cellValue=defaultValue;}}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,field,cellValue);}});const otherFields=[radioOpts.labelField,checkboxOpts.checkField,checkboxOpts.labelField,expandOpts.labelField];otherFields.forEach(key=>{if(key&&eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,key))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,key,null);}});if(treeConfig&&treeOpts.lazy&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(record[childrenField])){record[childrenField]=null;}// 必须有行数据的唯一主键,可以自行设置;也可以默认生成一个随机数
|
|
8067
|
-
if(eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,rowkey))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,rowkey,createRowId(rowOpts,record,rowkey));}return record;});},/**
|
|
8068
|
-
* 创建 data 对象
|
|
8069
|
-
* 对于某些特殊场景可能会用到,会自动对数据的字段名进行检测,如果不存在就自动定义
|
|
8070
|
-
* @param {Array} records 新数据
|
|
8071
|
-
*/createData(records){const $xeTable=this;return $xeTable.$nextTick().then(()=>{return $xeTable.defineField(records);});},/**
|
|
8072
|
-
* 创建 Row|Rows 对象
|
|
8073
|
-
* 对于某些特殊场景需要对数据进行手动插入时可能会用到
|
|
8074
|
-
* @param {Array/Object} records 新数据
|
|
8075
|
-
*/createRow(records){const $xeTable=this;const isArr=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records);if(!isArr){records=[records];}return $xeTable.createData(records).then(rows=>isArr?rows:rows[0]);},/**
|
|
8076
|
-
* 还原数据
|
|
8077
|
-
* 如果不传任何参数,则还原整个表格
|
|
8078
|
-
* 如果传 row 则还原一行
|
|
8079
|
-
* 如果传 rows 则还原多行
|
|
8080
|
-
* 如果还额外传了 field 则还原指定的单元格数据
|
|
8081
|
-
*/revertData(rows,field){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig}=props;const{fullAllDataRowIdData,fullDataRowIdData,tableSourceData,sourceDataRowIdData,tableFullData,afterFullData,removeRowMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);if(!keepSource){methods_errLog('vxe.error.reqProp',['keep-source']);return $xeTable.$nextTick();}let targetRows=rows;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){targetRows=[rows];}}else{targetRows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArray($xeTable.getUpdateRecords());}let reDelFlag=false;if(targetRows.length){targetRows.forEach(item=>{const rowid=handleGetRowId(item);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const row=rowRest.row;if(!$xeTable.isInsertByRow(row)){const oRow=sourceDataRowIdData[rowid];if(oRow&&row){if(field){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oRow,field),true));}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(row,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(oRow,true));}if(!fullDataRowIdData[rowid]&&$xeTable.isRemoveByRow(row)){if(removeRowMaps[rowid]){delete removeRowMaps[rowid];}tableFullData.unshift(row);afterFullData.unshift(row);reDelFlag=true;}}}}});}if(rows){if(reDelFlag){reactData.removeRowFlag++;$xeTable.updateFooter();$xeTable.cacheRowMap(false);$xeTable.handleTableData(treeConfig&&transform);if(!(treeConfig&&transform)){$xeTable.updateAfterDataIndex();}$xeTable.checkSelectionStatus();if(reactData.scrollYLoad){$xeTable.updateScrollYSpace();}}return $xeTable.$nextTick().then(()=>{$xeTable.updateCellAreas();return handleLazyRecalculate($xeTable,false,true,true);});}return $xeTable.reloadData(tableSourceData);},/**
|
|
8082
|
-
* 清空单元格内容
|
|
8083
|
-
* 如果不创参数,则清空整个表格内容
|
|
8084
|
-
* 如果传 row 则清空一行内容
|
|
8085
|
-
* 如果传 rows 则清空多行内容
|
|
8086
|
-
* 如果还额外传了 field 则清空指定单元格内容
|
|
8087
|
-
* @param {Array/Row} rows 行数据
|
|
8088
|
-
* @param {String} field 字段名
|
|
8074
|
+
if(eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,rowkey))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,rowkey,createRowId(rowOpts,record,rowkey));}return record;});},/**
|
|
8075
|
+
* 创建 data 对象
|
|
8076
|
+
* 对于某些特殊场景可能会用到,会自动对数据的字段名进行检测,如果不存在就自动定义
|
|
8077
|
+
* @param {Array} records 新数据
|
|
8078
|
+
*/createData(records){const $xeTable=this;return $xeTable.$nextTick().then(()=>{return $xeTable.defineField(records);});},/**
|
|
8079
|
+
* 创建 Row|Rows 对象
|
|
8080
|
+
* 对于某些特殊场景需要对数据进行手动插入时可能会用到
|
|
8081
|
+
* @param {Array/Object} records 新数据
|
|
8082
|
+
*/createRow(records){const $xeTable=this;const isArr=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records);if(!isArr){records=[records];}return $xeTable.createData(records).then(rows=>isArr?rows:rows[0]);},/**
|
|
8083
|
+
* 还原数据
|
|
8084
|
+
* 如果不传任何参数,则还原整个表格
|
|
8085
|
+
* 如果传 row 则还原一行
|
|
8086
|
+
* 如果传 rows 则还原多行
|
|
8087
|
+
* 如果还额外传了 field 则还原指定的单元格数据
|
|
8088
|
+
*/revertData(rows,field){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig}=props;const{fullAllDataRowIdData,fullDataRowIdData,tableSourceData,sourceDataRowIdData,tableFullData,afterFullData,removeRowMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);if(!keepSource){methods_errLog('vxe.error.reqProp',['keep-source']);return $xeTable.$nextTick();}let targetRows=rows;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){targetRows=[rows];}}else{targetRows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArray($xeTable.getUpdateRecords());}let reDelFlag=false;if(targetRows.length){targetRows.forEach(item=>{const rowid=handleGetRowId(item);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const row=rowRest.row;if(!$xeTable.isInsertByRow(row)){const oRow=sourceDataRowIdData[rowid];if(oRow&&row){if(field){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oRow,field),true));}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(row,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(oRow,true));}if(!fullDataRowIdData[rowid]&&$xeTable.isRemoveByRow(row)){if(removeRowMaps[rowid]){delete removeRowMaps[rowid];}tableFullData.unshift(row);afterFullData.unshift(row);reDelFlag=true;}}}}});}if(rows){if(reDelFlag){reactData.removeRowFlag++;$xeTable.updateFooter();$xeTable.cacheRowMap(false);$xeTable.handleTableData(treeConfig&&transform);if(!(treeConfig&&transform)){$xeTable.updateAfterDataIndex();}$xeTable.checkSelectionStatus();if(reactData.scrollYLoad){$xeTable.updateScrollYSpace();}}return $xeTable.$nextTick().then(()=>{$xeTable.updateCellAreas();return handleLazyRecalculate($xeTable,false,true,true);});}return $xeTable.reloadData(tableSourceData);},/**
|
|
8089
|
+
* 清空单元格内容
|
|
8090
|
+
* 如果不创参数,则清空整个表格内容
|
|
8091
|
+
* 如果传 row 则清空一行内容
|
|
8092
|
+
* 如果传 rows 则清空多行内容
|
|
8093
|
+
* 如果还额外传了 field 则清空指定单元格内容
|
|
8094
|
+
* @param {Array/Row} rows 行数据
|
|
8095
|
+
* @param {String} field 字段名
|
|
8089
8096
|
*/clearData(rows,field){const $xeTable=this;const internalData=$xeTable;const{tableFullData,visibleColumn}=internalData;if(!arguments.length){rows=tableFullData;}else if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}if(field){rows.forEach(row=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,null));}else{rows.forEach(row=>{visibleColumn.forEach(column=>{if(column.field){setCellValue(row,column,null);}});});}return $xeTable.$nextTick();},effectCellData(row,column,options){const $xeTable=this;const internalData=$xeTable;const{fullCellStoreMaps}=internalData;const editOpts=$xeTable.computeEditOpts;const{key,isChanged,setValue,getResult}=options;const rowid=getRowid($xeTable,row);const colid=column.id;let rowStore=fullCellStoreMaps[rowid];const cellValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,column.field);const restParams={$table:$xeTable,row,rowid,column,colid,cellValue,oldValue:null};if(editOpts.cache===false&&key==='render_table_cell'){const rest=restParams;rest.cellResult=getResult?getResult(restParams):cellValue;return rest;}if(!rowStore){rowStore={};fullCellStoreMaps[rowid]=rowStore;}let cellStore=rowStore[colid];if(!cellStore){cellStore={value:undefined,result:{}};rowStore[colid]=cellStore;}const restData=rowStore[colid];const oldValue=restData.value;restParams.oldValue=oldValue;if(isChanged?!isChanged(restParams):oldValue!==cellValue){restData.value=setValue?setValue(restParams):cellValue;restData.result={};}const storeData=restData.result;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(storeData[key])){storeData[key]=getResult?getResult(restParams):cellValue;}const cellResult=storeData[key];const rest=restParams;rest.cellResult=cellResult;return rest;},getCellElement(row,fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const{elemStore}=internalData;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const rowid=getRowid($xeTable,row);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);let bodyElem;if(column){if(column.fixed){if(column.fixed==='left'){if(leftScrollElem){bodyElem=leftScrollElem;}}else{if(rightScrollElem){bodyElem=rightScrollElem;}}}if(!bodyElem){bodyElem=bodyScrollElem;}if(bodyElem){return bodyElem.querySelector(`.vxe-body--row[rowid="${rowid}"] .${column.id}`);}}return null;},getCellLabel(row,fieldOrColumn){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{editConfig}=props;const{formatter,editRender,cellRender}=column;// formatter > tableCellFormatter
|
|
8090
8097
|
const renderOpts=formatter?null:editConfig&&isEnableConf(editRender)?editRender:isEnableConf(cellRender)?cellRender:null;const compConf=renderOpts?methods_renderer.get(renderOpts.name):null;const tcFormatter=compConf?compConf.tableCellFormatter:null;const cellValue=getCellValue(row,column);let cellLabel=cellValue;if(formatter||tcFormatter){let formatData;const{fullAllDataRowIdData}=internalData;const rowid=getRowid($xeTable,row);const colid=column.id;const rowRest=fullAllDataRowIdData[rowid];if(rowRest){formatData=rowRest.formatData;if(!formatData){formatData=fullAllDataRowIdData[rowid].formatData={};}if(rowRest&&formatData[colid]){if(formatData[colid].value===cellValue){return formatData[colid].label;}}}const formatParams={$table:$xeTable,cellValue,row,rowIndex:$xeTable.getRowIndex(row),column,columnIndex:$xeTable.getColumnIndex(column)};if(formatter){if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(formatter)){const gFormatOpts=methods_formats.get(formatter);const tcFormatMethod=gFormatOpts?gFormatOpts.tableCellFormatMethod||gFormatOpts.cellFormatMethod:null;cellLabel=tcFormatMethod?tcFormatMethod(formatParams):'';}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(formatter)){const gFormatOpts=methods_formats.get(formatter[0]);const tcFormatMethod=gFormatOpts?gFormatOpts.tableCellFormatMethod||gFormatOpts.cellFormatMethod:null;cellLabel=tcFormatMethod?tcFormatMethod(formatParams,...formatter.slice(1)):'';}else{cellLabel=formatter(formatParams);}}else if(renderOpts&&tcFormatter){cellLabel=tcFormatter(renderOpts,formatParams);}if(formatData){formatData[colid]={value:cellValue,label:cellLabel};}}return cellLabel;},updateCellLabel(row,fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{fullAllDataRowIdData}=internalData;const rowid=getRowid($xeTable,row);if(rowid){const colid=column.id;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const formatData=rowRest.formatData;if(formatData){delete formatData[colid];}}}return $xeTable.getFooterCellLabel(row,column);},clearFormatterCache(isUpdate){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableData,tableColumn}=reactData;const{fullAllDataRowIdData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{if(rowRest.formatData){rowRest.formatData=undefined;}});if(isUpdate){tableData.forEach(row=>{tableColumn.forEach(column=>{$xeTable.getCellLabel(row,column);});});}return $xeTable.$nextTick();},getHeaderCellLabel(fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{headerFormatter}=column;const _columnIndex=$xeTable.getVTColumnIndex(column);let cellLabel=column.getTitle();if(headerFormatter){let formatData;const{headerFullDataColData}=internalData;const colid=column.id;let colRest=headerFullDataColData[colid];if(!colRest){colRest=headerFullDataColData[colid]={};}const formatObj=colRest.formatObj;if(formatObj&&formatObj.value===cellLabel){return formatObj.label;}const headFormatParams={$table:$xeTable,cellTitle:cellLabel,cellValue:cellLabel,column,_columnIndex,columnIndex:$xeTable.getColumnIndex(column)};if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(headerFormatter)){const gFormatOpts=methods_formats.get(headerFormatter);const fcFormatMethod=gFormatOpts?gFormatOpts.tableHeaderCellFormatMethod:null;cellLabel=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(fcFormatMethod?fcFormatMethod(headFormatParams):'');}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(headerFormatter)){const gFormatOpts=methods_formats.get(headerFormatter[0]);const fcFormatMethod=gFormatOpts?gFormatOpts.tableHeaderCellFormatMethod:null;cellLabel=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(fcFormatMethod?fcFormatMethod(headFormatParams,...headerFormatter.slice(1)):'');}else{cellLabel=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(headerFormatter(headFormatParams));}if(formatData){colRest.formatObj={value:cellLabel,label:cellLabel};}}return cellLabel;},updateHeaderCellLabel(fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return'';}const{headerFullDataColData}=internalData;const colid=column.id;const colRest=headerFullDataColData[colid];if(colRest){colRest.formatObj=undefined;}return $xeTable.getHeaderCellLabel(column);},clearHeaderFormatterCache(isUpdate){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableColumn}=reactData;const{headerFullDataColData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(headerFullDataColData,colRest=>{if(colRest.formatObj){colRest.formatObj=undefined;}});if(isUpdate){tableColumn.forEach(column=>{$xeTable.getHeaderCellLabel(column);});}return $xeTable.$nextTick();},getFooterCellLabel(row,fieldOrColumn){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{footerFormatter}=column;const _columnIndex=$xeTable.getVTColumnIndex(column);let itemValue='';// 兼容老模式
|
|
8091
|
-
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(row)){itemValue=row[_columnIndex];}else{itemValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,column.field);}let cellLabel=itemValue;if(footerFormatter){let formatData;const{footerTableData}=reactData;const{footerFullDataRowData}=internalData;const colid=column.id;const $rowIndex=footerTableData.indexOf(row);let rowRest=null;if($rowIndex>-1){rowRest=footerFullDataRowData[$rowIndex];if(!rowRest){rowRest=footerFullDataRowData[$rowIndex]={};}formatData=rowRest.formatData;if(!formatData){formatData=footerFullDataRowData[$rowIndex].formatData={};}if(rowRest&&formatData[colid]){if(formatData[colid].value===itemValue){return formatData[colid].label;}}}const footerFormatParams={$table:$xeTable,cellValue:itemValue,itemValue,row,items:row,$rowIndex,column,_columnIndex,columnIndex:$xeTable.getColumnIndex(column)};if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(footerFormatter)){const gFormatOpts=methods_formats.get(footerFormatter);const fcFormatMethod=gFormatOpts?gFormatOpts.tableFooterCellFormatMethod:null;cellLabel=fcFormatMethod?fcFormatMethod(footerFormatParams):'';}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(footerFormatter)){const gFormatOpts=methods_formats.get(footerFormatter[0]);const fcFormatMethod=gFormatOpts?gFormatOpts.tableFooterCellFormatMethod:null;cellLabel=fcFormatMethod?fcFormatMethod(footerFormatParams,...footerFormatter.slice(1)):'';}else{cellLabel=footerFormatter(footerFormatParams);}if(formatData){formatData[colid]={value:itemValue,label:cellLabel};}}return cellLabel;},updateFooterCellLabel(row,fieldOrColumn){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{footerTableData}=reactData;const{footerFullDataRowData}=internalData;const colid=column.id;const $rowIndex=footerTableData.indexOf(row);const rowRest=footerFullDataRowData[$rowIndex];if(rowRest){const formatData=rowRest.formatData;if(formatData){delete formatData[colid];}}return $xeTable.getFooterCellLabel(row,column);},clearFooterFormatterCache(isUpdate){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableData,tableColumn}=reactData;const{footerFullDataRowData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(footerFullDataRowData,rowRest=>{if(rowRest.formatData){rowRest.formatData=undefined;}});if(isUpdate){tableData.forEach(row=>{tableColumn.forEach(column=>{$xeTable.getFooterCellLabel(row,column);});});}return $xeTable.$nextTick();},/**
|
|
8092
|
-
* 检查是否为临时行数据
|
|
8093
|
-
*/isInsertByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const rowid=getRowid($xeTable,row);return!!reactData.insertRowFlag&&!!internalData.insertRowMaps[rowid];},isRemoveByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const rowid=getRowid($xeTable,row);return!!reactData.removeRowFlag&&!!internalData.removeRowMaps[rowid];},/**
|
|
8094
|
-
* 删除所有新增的临时数据
|
|
8095
|
-
*/removeInsertRow(){const $xeTable=this;const internalData=$xeTable;const{insertRowMaps}=internalData;return $xeTable.remove(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(insertRowMaps));},/**
|
|
8096
|
-
* 检查行或列数据是否发生改变
|
|
8098
|
+
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(row)){itemValue=row[_columnIndex];}else{itemValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,column.field);}let cellLabel=itemValue;if(footerFormatter){let formatData;const{footerTableData}=reactData;const{footerFullDataRowData}=internalData;const colid=column.id;const $rowIndex=footerTableData.indexOf(row);let rowRest=null;if($rowIndex>-1){rowRest=footerFullDataRowData[$rowIndex];if(!rowRest){rowRest=footerFullDataRowData[$rowIndex]={};}formatData=rowRest.formatData;if(!formatData){formatData=footerFullDataRowData[$rowIndex].formatData={};}if(rowRest&&formatData[colid]){if(formatData[colid].value===itemValue){return formatData[colid].label;}}}const footerFormatParams={$table:$xeTable,cellValue:itemValue,itemValue,row,items:row,$rowIndex,column,_columnIndex,columnIndex:$xeTable.getColumnIndex(column)};if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(footerFormatter)){const gFormatOpts=methods_formats.get(footerFormatter);const fcFormatMethod=gFormatOpts?gFormatOpts.tableFooterCellFormatMethod:null;cellLabel=fcFormatMethod?fcFormatMethod(footerFormatParams):'';}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(footerFormatter)){const gFormatOpts=methods_formats.get(footerFormatter[0]);const fcFormatMethod=gFormatOpts?gFormatOpts.tableFooterCellFormatMethod:null;cellLabel=fcFormatMethod?fcFormatMethod(footerFormatParams,...footerFormatter.slice(1)):'';}else{cellLabel=footerFormatter(footerFormatParams);}if(formatData){formatData[colid]={value:itemValue,label:cellLabel};}}return cellLabel;},updateFooterCellLabel(row,fieldOrColumn){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{footerTableData}=reactData;const{footerFullDataRowData}=internalData;const colid=column.id;const $rowIndex=footerTableData.indexOf(row);const rowRest=footerFullDataRowData[$rowIndex];if(rowRest){const formatData=rowRest.formatData;if(formatData){delete formatData[colid];}}return $xeTable.getFooterCellLabel(row,column);},clearFooterFormatterCache(isUpdate){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableData,tableColumn}=reactData;const{footerFullDataRowData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(footerFullDataRowData,rowRest=>{if(rowRest.formatData){rowRest.formatData=undefined;}});if(isUpdate){tableData.forEach(row=>{tableColumn.forEach(column=>{$xeTable.getFooterCellLabel(row,column);});});}return $xeTable.$nextTick();},/**
|
|
8099
|
+
* 检查是否为临时行数据
|
|
8100
|
+
*/isInsertByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const rowid=getRowid($xeTable,row);return!!reactData.insertRowFlag&&!!internalData.insertRowMaps[rowid];},isRemoveByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const rowid=getRowid($xeTable,row);return!!reactData.removeRowFlag&&!!internalData.removeRowMaps[rowid];},/**
|
|
8101
|
+
* 删除所有新增的临时数据
|
|
8102
|
+
*/removeInsertRow(){const $xeTable=this;const internalData=$xeTable;const{insertRowMaps}=internalData;return $xeTable.remove(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(insertRowMaps));},/**
|
|
8103
|
+
* 检查行或列数据是否发生改变
|
|
8097
8104
|
*/isUpdateByRow(rowOrId,field){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource,editConfig}=props;const{fullDataRowIdData,sourceDataRowIdData}=internalData;const keepFields=$xeTable.computeKeepFields;if(keepSource&&editConfig){const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrId)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrId)?rowOrId:getRowid($xeTable,rowOrId);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
|
|
8098
|
-
if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(oRow){if(arguments.length>1){return!eqCellValue(oRow,row,field);}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i])){return true;}}}
|
|
8099
|
-
|
|
8100
|
-
*
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
*
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
*
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
*
|
|
8112
|
-
|
|
8113
|
-
|
|
8114
|
-
*
|
|
8115
|
-
* @param
|
|
8116
|
-
* @param
|
|
8117
|
-
|
|
8118
|
-
|
|
8119
|
-
*
|
|
8120
|
-
* @param
|
|
8121
|
-
* @param
|
|
8122
|
-
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8130
|
-
*
|
|
8131
|
-
|
|
8132
|
-
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
|
|
8138
|
-
|
|
8139
|
-
*
|
|
8140
|
-
|
|
8141
|
-
|
|
8142
|
-
*
|
|
8143
|
-
|
|
8144
|
-
|
|
8145
|
-
*
|
|
8146
|
-
*
|
|
8147
|
-
|
|
8148
|
-
|
|
8149
|
-
|
|
8150
|
-
|
|
8151
|
-
*
|
|
8152
|
-
|
|
8153
|
-
|
|
8154
|
-
*
|
|
8155
|
-
|
|
8156
|
-
|
|
8105
|
+
if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(!oRow){return false;}if(arguments.length>1){return!eqCellValue(oRow,row,field).result;}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i]).result){return true;}}}return false;},getUpdateCells(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig}=props;const{tableFullData,tableFullTreeData,fullDataRowIdData,sourceDataRowIdData,fullColumnFieldData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const keepFields=$xeTable.computeKeepFields;const cellList=[];if(keepSource){const{handleGetRowId}=createHandleGetRowId($xeTable);const handleCell=item=>{const rowid=handleGetRowId(item);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
|
|
8106
|
+
if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(!oRow){return;}for(let i=0;i<keepFields.length;i++){const field=keepFields[i];const{result,newValue,oldValue}=eqCellValue(oRow,row,field);if(!result){const column=fullColumnFieldData[field]?fullColumnFieldData[field].column:null;cellList.push({row,rowid,column,field,newValue,oldValue});}}};if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,handleCell,treeOpts);}else{tableFullData.forEach(handleCell);}}return cellList;},/**
|
|
8107
|
+
* 获取表格的可视列,也可以指定索引获取列
|
|
8108
|
+
* @param {Number} columnIndex 索引
|
|
8109
|
+
*/getColumns(columnIndex){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(columnIndex)?visibleColumn.slice(0):visibleColumn[columnIndex];},/**
|
|
8110
|
+
* 根据列获取列的唯一主键
|
|
8111
|
+
*/getColid(fieldOrColumn){const $xeTable=this;const column=handleFieldOrColumn($xeTable,fieldOrColumn);return column?column.id:null;},/**
|
|
8112
|
+
* 根据列的唯一主键获取列
|
|
8113
|
+
* @param {String} colid 列主键
|
|
8114
|
+
*/getColumnById(colid){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;return fullColumnIdData[colid]?fullColumnIdData[colid].column:null;},/**
|
|
8115
|
+
* 根据列的字段名获取列
|
|
8116
|
+
* @param {String} field 字段名
|
|
8117
|
+
*/getColumnByField(field){const $xeTable=this;const internalData=$xeTable;const{fullColumnFieldData}=internalData;return fullColumnFieldData[field]?fullColumnFieldData[field].column:null;},getParentColumn(fieldOrColumn){const fullColumnIdData=this.fullColumnIdData;const column=handleFieldOrColumn(this,fieldOrColumn);return column&&column.parentId&&fullColumnIdData[column.parentId]?fullColumnIdData[column.parentId].column:null;},/**
|
|
8118
|
+
* 获取当前表格的列
|
|
8119
|
+
* 收集到的全量列、全量表头列、处理条件之后的全量表头列、当前渲染中的表头列
|
|
8120
|
+
*/getTableColumn(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;return{collectColumn:internalData.collectColumn.slice(0),fullColumn:internalData.tableFullColumn.slice(0),visibleColumn:internalData.visibleColumn.slice(0),tableColumn:reactData.tableColumn.slice(0)};},/**
|
|
8121
|
+
* 移动列到指定列的位置
|
|
8122
|
+
* @param fieldOrColumn
|
|
8123
|
+
* @param targetFieldOrColumn
|
|
8124
|
+
* @param options
|
|
8125
|
+
*/moveColumnTo(fieldOrColumn,targetFieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData,visibleColumn}=internalData;const{dragToChild,dragPos,isCrossDrag}=Object.assign({},options);const dragCol=handleFieldOrColumn($xeTable,fieldOrColumn);let prevDragCol=null;const colRest=dragCol?fullColumnIdData[dragCol.id]:null;let defPos='left';if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(targetFieldOrColumn)){if(colRest&&targetFieldOrColumn){let currList=colRest.items;let offsetIndex=colRest._index+targetFieldOrColumn;if(isCrossDrag){currList=visibleColumn;offsetIndex=colRest._index+targetFieldOrColumn;}if(offsetIndex>0&&offsetIndex<currList.length-1){prevDragCol=currList[offsetIndex];}if(targetFieldOrColumn>0){defPos='right';}}}else{prevDragCol=handleFieldOrColumn($xeTable,targetFieldOrColumn);const targetColRest=prevDragCol?fullColumnIdData[prevDragCol.id]:null;if(colRest&&targetColRest){if(targetColRest._index>colRest._index){defPos='right';}}}return $xeTable.handleColDragSwapEvent(null,true,dragCol,prevDragCol,dragPos||defPos,dragToChild===true);},/**
|
|
8126
|
+
* 移动行到指定行的位置
|
|
8127
|
+
* @param rowidOrRow
|
|
8128
|
+
* @param targetRowidOrRow
|
|
8129
|
+
* @param options
|
|
8130
|
+
*/moveRowTo(rowidOrRow,targetRowidOrRow,options){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData,afterFullData}=internalData;const{dragToChild,dragPos,isCrossDrag}=Object.assign({},options);const treeOpts=$xeTable.computeTreeOpts;const dragRow=handleRowidOrRow($xeTable,rowidOrRow);let prevDragRow=null;let defPos='top';const rowRest=dragRow?fullAllDataRowIdData[getRowid($xeTable,dragRow)]:null;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(targetRowidOrRow)){if(rowRest&&targetRowidOrRow){let currList=afterFullData;let offsetIndex=rowRest._index+targetRowidOrRow;if(treeConfig){currList=rowRest.items;if(treeOpts.transform){offsetIndex=rowRest.treeIndex+targetRowidOrRow;if(isCrossDrag){currList=afterFullData;offsetIndex=rowRest._index+targetRowidOrRow;}}}if(offsetIndex>=0&&offsetIndex<=currList.length-1){prevDragRow=currList[offsetIndex];}if(targetRowidOrRow>0){defPos='bottom';}}}else{prevDragRow=handleRowidOrRow($xeTable,targetRowidOrRow);const targetRowRest=prevDragRow?fullAllDataRowIdData[getRowid($xeTable,prevDragRow)]:null;if(rowRest&&targetRowRest){if(targetRowRest._index>rowRest._index){defPos='bottom';}}}const rest=$xeTable.handleRowDragSwapEvent(null,true,dragRow,prevDragRow,dragPos||defPos,dragToChild===true);return rest;},/**
|
|
8131
|
+
* 获取表格的全量列
|
|
8132
|
+
*/getFullColumns(){const $xeTable=this;const internalData=$xeTable;const{collectColumn}=internalData;return collectColumn.slice(0);},/**
|
|
8133
|
+
* 获取数据,和 data 的行为一致,也可以指定索引获取数据
|
|
8134
|
+
*/getData(rowIndex){const tableSynchData=this.data||this.tableSynchData;return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(rowIndex)?tableSynchData.slice(0):tableSynchData[rowIndex];},/**
|
|
8135
|
+
* 用于多选行,获取已选中的数据
|
|
8136
|
+
*/getCheckboxRecords(isFull){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{updateCheckboxFlag}=reactData;const{tableFullData,afterFullData,tableFullTreeData,fullDataRowIdData,afterFullRowMaps,selectCheckboxMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{transform,mapChildrenField}=treeOpts;const{checkField}=checkboxOpts;const childrenField=treeOpts.children||treeOpts.childrenField;let rowList=[];if(updateCheckboxFlag){if(checkField){if(treeConfig){const currTableData=isFull?transform?tableFullTreeData:tableFullData:transform?tableFullTreeData:afterFullData;rowList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().filterTree(currTableData,row=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField),{children:transform?mapChildrenField:childrenField});}else{const currTableData=isFull?tableFullData:afterFullData;rowList=currTableData.filter(row=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField));}}else{const currMaps=isFull||treeConfig&&!transform?fullDataRowIdData:afterFullRowMaps;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps,(row,rowid)=>{if(currMaps[rowid]){rowList.push(fullDataRowIdData[rowid].row);}});}}return rowList;},/**
|
|
8137
|
+
* 预编译
|
|
8138
|
+
* 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
|
|
8139
|
+
*/updateAfterDataIndex(){const $xeTable=this;updateAfterDataIndex($xeTable);},/**
|
|
8140
|
+
* 只对 tree-config 有效,获取行的子级
|
|
8141
|
+
*/getTreeRowChildren(rowOrRowid){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;if(rowOrRowid&&treeConfig){let rowid;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrRowid)){rowid=rowOrRowid;}else{rowid=getRowid($xeTable,rowOrRowid);}if(rowid){const rest=fullAllDataRowIdData[rowid];const row=rest?rest.row:null;if(row){return row[transform?mapChildrenField:childrenField]||[];}}}return[];},/**
|
|
8142
|
+
* 只对 tree-config 有效,用于树形结构,获取指定行的层级
|
|
8143
|
+
*/getTreeRowLevel(rowOrRowid){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;if(rowOrRowid&&treeConfig){let rowid;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrRowid)){rowid=rowOrRowid;}else{rowid=getRowid($xeTable,rowOrRowid);}if(rowid){const rest=fullAllDataRowIdData[rowid];if(rest){return rest.level;}}}return-1;},/**
|
|
8144
|
+
* 只对 tree-config 有效,获取行的父级
|
|
8145
|
+
*/getTreeParentRow(rowOrRowid){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;if(rowOrRowid&&treeConfig){let rowid;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrRowid)){rowid=rowOrRowid;}else{rowid=getRowid($xeTable,rowOrRowid);}if(rowid){const rest=fullAllDataRowIdData[rowid];if(rest){return rest.parent;}}}return null;},getParentRow(rowOrRowid){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['getParentRow','getTreeParentRow']);return $xeTable.getTreeParentRow(rowOrRowid);},/**
|
|
8146
|
+
* 根据行的唯一主键获取行
|
|
8147
|
+
* @param {String/Number} rowid 行主键
|
|
8148
|
+
*/getRowById(cellValue){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue)?'':encodeURIComponent(cellValue);return fullAllDataRowIdData[rowid]?fullAllDataRowIdData[rowid].row:null;},/**
|
|
8149
|
+
* 根据行获取行的唯一主键
|
|
8150
|
+
* @param {Row} row 行对象
|
|
8151
|
+
*/getRowid(row){const $xeTable=this;return getRowid($xeTable,row);},/**
|
|
8152
|
+
* 获取处理后的表格数据
|
|
8153
|
+
* 如果存在筛选条件,继续处理
|
|
8154
|
+
* 如果存在排序,继续处理
|
|
8155
|
+
*/getTableData(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{tableData,footerTableData}=reactData;const{tableFullData,afterFullData,tableFullTreeData}=internalData;return{fullData:props.treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0),visibleData:afterFullData.slice(0),tableData:tableData.slice(0),footerData:footerTableData.slice(0)};},/**
|
|
8156
|
+
* 获取表格的全量数据,如果是 tree-config 则返回带层级的树结构
|
|
8157
|
+
*/getFullData(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableFullData,tableFullTreeData}=internalData;if(treeConfig){return tableFullTreeData.slice(0);}return tableFullData.slice(0);},/**
|
|
8158
|
+
* 处理数据加载默认行为
|
|
8159
|
+
* 默认执行一次,除非被重置
|
|
8160
|
+
*/handleLoadDefaults(){const $xeTable=this;handleLoadDefaults($xeTable);},/**
|
|
8161
|
+
* 处理初始化的默认行为
|
|
8162
|
+
* 只会执行一次
|
|
8163
|
+
*/handleInitDefaults(){const $xeTable=this;handleInitDefaults($xeTable);},/**
|
|
8164
|
+
* 设置为固定列
|
|
8157
8165
|
*/setColumnFixed(fieldOrColumn,fixed){const $xeTable=this;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];const columnOpts=$xeTable.computeColumnOpts;const isMaxFixedColumn=$xeTable.computeIsMaxFixedColumn;for(let i=0;i<cols.length;i++){const item=cols[i];const column=handleFieldOrColumn($xeTable,item);const targetColumn=getRootColumn($xeTable,column);if(targetColumn&&targetColumn.fixed!==fixed){// 是否超过最大固定列数量
|
|
8158
|
-
if(!targetColumn.fixed&&isMaxFixedColumn){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.table.maxFixedCol',[columnOpts.maxFixedSize])});}return $xeTable.$nextTick();}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([targetColumn],column=>{column.fixed=fixed;column.renderFixed=fixed;});$xeTable.saveCustomStore('update:fixed');if(!status){status=true;}}}if(status){return $xeTable.refreshColumn();}return $xeTable.$nextTick();},/**
|
|
8159
|
-
* 取消指定固定列
|
|
8160
|
-
*/clearColumnFixed(fieldOrColumn){const $xeTable=this;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);const targetColumn=getRootColumn($xeTable,column);if(targetColumn&&targetColumn.fixed){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([targetColumn],column=>{column.fixed=null;column.renderFixed=null;});$xeTable.saveCustomStore('update:fixed');if(!status){status=true;}}});if(status){return $xeTable.refreshColumn();}return $xeTable.$nextTick();},/**
|
|
8161
|
-
* 隐藏指定列
|
|
8162
|
-
*/hideColumn:handleColumnVisible(false),/**
|
|
8163
|
-
* 显示指定列
|
|
8164
|
-
*/showColumn:handleColumnVisible(true),setColumnWidth(fieldOrColumn,width){const $xeTable=this;const internalData=$xeTable;const{elemStore}=internalData;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];let cWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(width);if(isScale(width)){const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const bodyWidth=bodyScrollElem?bodyScrollElem.clientWidth-1:0;cWidth=Math.floor(cWidth*bodyWidth);}if(cWidth){cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);if(column){column.resizeWidth=cWidth;if(!status){status=true;}}});if(status){return $xeTable.refreshColumn().then(()=>{return{status};});}}return $xeTable.$nextTick().then(()=>{return{status};});},getColumnWidth(fieldOrColumn){const column=handleFieldOrColumn(this,fieldOrColumn);if(column){return column.renderWidth;}return 0;},/**
|
|
8165
|
-
* 手动重置列的显示隐藏、列宽拖动的状态;
|
|
8166
|
-
* 如果为 true 则重置所有状态
|
|
8167
|
-
* 如果已关联工具栏,则会同步更新
|
|
8168
|
-
*/resetColumn(options){methods_warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return this.resetCustom(options);},/**
|
|
8169
|
-
* @private
|
|
8170
|
-
*/handleCustom(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;if(mouseConfig){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}$xeTable.analyColumnWidth();return $xeTable.refreshColumn(true);},/**
|
|
8171
|
-
* 还原自定义列操作状态
|
|
8172
|
-
*/restoreCustomStorage(){const $xeTable=this;const props=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{storage,restoreStore,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomAggGroup||isCustomSort)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore($xeTable,storeData);}).catch(e=>e);}else{return handleCustomRestore($xeTable,storeData);}}},/**
|
|
8173
|
-
* 用于 custom-config,用于手动恢复自定义列设置信息,恢复表格重置为初始状态
|
|
8174
|
-
* @param storeData
|
|
8175
|
-
* @returns
|
|
8166
|
+
if(!targetColumn.fixed&&isMaxFixedColumn){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.table.maxFixedCol',[columnOpts.maxFixedSize])});}return $xeTable.$nextTick();}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([targetColumn],column=>{column.fixed=fixed;column.renderFixed=fixed;});$xeTable.saveCustomStore('update:fixed');if(!status){status=true;}}}if(status){return $xeTable.refreshColumn();}return $xeTable.$nextTick();},/**
|
|
8167
|
+
* 取消指定固定列
|
|
8168
|
+
*/clearColumnFixed(fieldOrColumn){const $xeTable=this;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);const targetColumn=getRootColumn($xeTable,column);if(targetColumn&&targetColumn.fixed){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([targetColumn],column=>{column.fixed=null;column.renderFixed=null;});$xeTable.saveCustomStore('update:fixed');if(!status){status=true;}}});if(status){return $xeTable.refreshColumn();}return $xeTable.$nextTick();},/**
|
|
8169
|
+
* 隐藏指定列
|
|
8170
|
+
*/hideColumn:handleColumnVisible(false),/**
|
|
8171
|
+
* 显示指定列
|
|
8172
|
+
*/showColumn:handleColumnVisible(true),setColumnWidth(fieldOrColumn,width){const $xeTable=this;const internalData=$xeTable;const{elemStore}=internalData;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];let cWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(width);if(isScale(width)){const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const bodyWidth=bodyScrollElem?bodyScrollElem.clientWidth-1:0;cWidth=Math.floor(cWidth*bodyWidth);}if(cWidth){cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);if(column){column.resizeWidth=cWidth;if(!status){status=true;}}});if(status){return $xeTable.refreshColumn().then(()=>{return{status};});}}return $xeTable.$nextTick().then(()=>{return{status};});},getColumnWidth(fieldOrColumn){const column=handleFieldOrColumn(this,fieldOrColumn);if(column){return column.renderWidth;}return 0;},/**
|
|
8173
|
+
* 手动重置列的显示隐藏、列宽拖动的状态;
|
|
8174
|
+
* 如果为 true 则重置所有状态
|
|
8175
|
+
* 如果已关联工具栏,则会同步更新
|
|
8176
|
+
*/resetColumn(options){methods_warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return this.resetCustom(options);},/**
|
|
8177
|
+
* @private
|
|
8178
|
+
*/handleCustom(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;if(mouseConfig){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}$xeTable.analyColumnWidth();return $xeTable.refreshColumn(true);},/**
|
|
8179
|
+
* 还原自定义列操作状态
|
|
8180
|
+
*/restoreCustomStorage(){const $xeTable=this;const props=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{storage,restoreStore,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomAggGroup||isCustomSort)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore($xeTable,storeData);}).catch(e=>e);}else{return handleCustomRestore($xeTable,storeData);}}},/**
|
|
8181
|
+
* 用于 custom-config,用于手动恢复自定义列设置信息,恢复表格重置为初始状态
|
|
8182
|
+
* @param storeData
|
|
8183
|
+
* @returns
|
|
8176
8184
|
*/setCustomStoreData(storeData){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;if(!storeData){return $xeTable.$nextTick();}const customOpts=$xeTable.computeCustomOpts;const{checkMethod}=customOpts;// 重置状态
|
|
8177
8185
|
clearTableAllStatus($xeTable);// 恢复列
|
|
8178
8186
|
const allCols=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.collectColumn,column=>{column.resizeWidth=0;column.fixed=column.defaultFixed;column.renderSortNumber=column.sortNumber;column.parentId=column.defaultParentId;if(!checkMethod||checkMethod({$table:$xeTable,column})){column.visible=column.defaultVisible;}column.aggFunc=column.defaultAggFunc;column.renderAggFn=column.defaultAggFunc;column.renderResizeWidth=column.renderWidth;allCols.push(column);});const newCollectCols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(allCols,'renderSortNumber'),{key:'id',parentKey:'parentId',children:'children'});internalData.collectColumn=newCollectCols;internalData.tableFullColumn=getColumnList(newCollectCols);reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(handleCustomRestore($xeTable,storeData)).then(()=>{return buildColumnInfo($xeTable);}).then(()=>{// 恢复数据聚合分组
|
|
8179
|
-
const{isRowGroupStatus,rowGroupList}=reactData;if(isRowGroupStatus&&!!$xeTable.handlePivotTableAggData){const rowGroupFields=$xeTable.computeRowGroupFields;if(rowGroupFields?rowGroupFields.length:rowGroupList.length){if(rowGroupFields&&rowGroupFields.length){$xeTable.setRowGroups(rowGroupFields);}else{$xeTable.clearRowGroups();}}else{$xeTable.handleUpdateAggData();}}});},/**
|
|
8180
|
-
* 用于 custom-config,用于获取自定义列设置信息,用于自定义保持
|
|
8181
|
-
* @returns
|
|
8187
|
+
const{isRowGroupStatus,rowGroupList}=reactData;if(isRowGroupStatus&&!!$xeTable.handlePivotTableAggData){const rowGroupFields=$xeTable.computeRowGroupFields;if(rowGroupFields?rowGroupFields.length:rowGroupList.length){if(rowGroupFields&&rowGroupFields.length){$xeTable.setRowGroups(rowGroupFields);}else{$xeTable.clearRowGroups();}}else{$xeTable.handleUpdateAggData();}}});},/**
|
|
8188
|
+
* 用于 custom-config,用于获取自定义列设置信息,用于自定义保持
|
|
8189
|
+
* @returns
|
|
8182
8190
|
*/getCustomStoreData(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{id}=props;const customOpts=$xeTable.computeCustomOpts;const{isRowGroupStatus,rowGroupList}=reactData;const{fullColumnFieldData,collectColumn}=internalData;const{storage,checkMethod,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);const resizableData={};const sortData=[];const visibleData={};const fixedData={};const aggGroupData={};const aggFuncData={};const storeData={resizableData:undefined,sortData:undefined,visibleData:undefined,fixedData:undefined,aggGroupData:undefined,aggFuncData:undefined};if(!id){if(storage){methods_errLog('vxe.error.reqProp',['id']);}return storeData;}let hasResizable=0;let hasSort=0;let hasFixed=0;let hasVisible=0;let hasAggFunc=0;const sortMaps={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();if(!colKey){methods_errLog('vxe.error.reqProp',[`${column.getTitle()||column.type||''} -> column.field=?`]);return;}if(parentColumn){if(isCustomSort){const pColKey=parentColumn.getKey();const psObj=sortMaps[pColKey];hasSort=1;if(psObj){const sObj={k:colKey};sortMaps[colKey]=sObj;if(!psObj.c){psObj.c=[];}psObj.c.push(sObj);}}}else{if(isCustomSort){hasSort=1;const sObj={k:colKey};sortMaps[colKey]=sObj;sortData.push(sObj);}// 只支持一级
|
|
8183
|
-
if(isCustomFixed&&(column.fixed||'')!==(column.defaultFixed||'')){hasFixed=1;fixedData[colKey]=column.fixed;}}if(isCustomResizable&&column.resizeWidth){hasResizable=1;resizableData[colKey]=column.renderWidth;}if(isCustomVisible&&(!checkMethod||checkMethod({$table:$xeTable,column}))){if(!column.visible&&column.defaultVisible){hasVisible=1;visibleData[colKey]=false;}else if(column.visible&&!column.defaultVisible){hasVisible=1;visibleData[colKey]=true;}}if(isCustomAggFunc&&(column.aggFunc||'')!==(column.defaultAggFunc||'')){hasAggFunc=1;aggFuncData[colKey]=column.aggFunc;}});if(hasResizable){storeData.resizableData=resizableData;}if(hasSort){storeData.sortData=sortData;}if(hasFixed){storeData.fixedData=fixedData;}if(hasVisible){storeData.visibleData=visibleData;}if(isCustomAggGroup&&isRowGroupStatus){rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){aggGroupData[colRest.column.getKey()]=true;}});storeData.aggGroupData=aggGroupData;}if(hasAggFunc){storeData.aggFuncData=aggFuncData;}return storeData;},/**
|
|
8184
|
-
* @private
|
|
8191
|
+
if(isCustomFixed&&(column.fixed||'')!==(column.defaultFixed||'')){hasFixed=1;fixedData[colKey]=column.fixed;}}if(isCustomResizable&&column.resizeWidth){hasResizable=1;resizableData[colKey]=column.renderWidth;}if(isCustomVisible&&(!checkMethod||checkMethod({$table:$xeTable,column}))){if(!column.visible&&column.defaultVisible){hasVisible=1;visibleData[colKey]=false;}else if(column.visible&&!column.defaultVisible){hasVisible=1;visibleData[colKey]=true;}}if(isCustomAggFunc&&(column.aggFunc||'')!==(column.defaultAggFunc||'')){hasAggFunc=1;aggFuncData[colKey]=column.aggFunc;}});if(hasResizable){storeData.resizableData=resizableData;}if(hasSort){storeData.sortData=sortData;}if(hasFixed){storeData.fixedData=fixedData;}if(hasVisible){storeData.visibleData=visibleData;}if(isCustomAggGroup&&isRowGroupStatus){rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){aggGroupData[colRest.column.getKey()]=true;}});storeData.aggGroupData=aggGroupData;}if(hasAggFunc){storeData.aggFuncData=aggFuncData;}return storeData;},/**
|
|
8192
|
+
* @private
|
|
8185
8193
|
*/saveCustomStore(type){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{updateStore,storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(type!=='reset'){reactData.isCustomStatus=true;}if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggGroup||isCustomAggFunc)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return this.$nextTick();}const storeData=type==='reset'?{resizableData:{},sortData:{},visibleData:{},fixedData:{},aggGroupData:{},aggFuncData:{}}:this.getCustomStoreData();if(updateStore){return updateStore({$table:$xeTable,id:tableId,type,storeData});}else{setCustomStorageMap(tableId,type==='reset'?null:storeData);}}return this.$nextTick();},handleUpdateDataQueue(){this.upDataFlag++;},handleRefreshColumnQueue(){this.reColumnFlag++;},handleFilterOptions(column){const $xeTable=this;const reactData=$xeTable;if(column){const{filterStore}=reactData;const{filterRender,filters}=column;const filterOptions=filters||[];const compConf=isEnableConf(filterRender)?methods_renderer.get(filterRender.name):null;const frMethod=column.filterRecoverMethod||(compConf?compConf.tableFilterRecoverMethod||compConf.filterRecoverMethod:null);filterStore.column=column;// 复原状态
|
|
8186
|
-
filterOptions.forEach(option=>{const{_checked,checked}=option;option._checked=checked;if(!checked&&_checked!==checked){if(frMethod){frMethod({option,column,$table:$xeTable});}}});$xeTable.checkFilterOptions();}},/**
|
|
8187
|
-
* 刷新列配置
|
|
8188
|
-
*/refreshColumn(initSort){const $xeTable=this;if(initSort){handleUpdateColumn($xeTable);}return parseColumns($xeTable,true).then(()=>{return this.refreshScroll();}).then(()=>{return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8189
|
-
* 指定列宽的列进行拆分
|
|
8194
|
+
filterOptions.forEach(option=>{const{_checked,checked}=option;option._checked=checked;if(!checked&&_checked!==checked){if(frMethod){frMethod({option,column,$table:$xeTable});}}});$xeTable.checkFilterOptions();}},/**
|
|
8195
|
+
* 刷新列配置
|
|
8196
|
+
*/refreshColumn(initSort){const $xeTable=this;if(initSort){handleUpdateColumn($xeTable);}return parseColumns($xeTable,true).then(()=>{return this.refreshScroll();}).then(()=>{return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8197
|
+
* 指定列宽的列进行拆分
|
|
8190
8198
|
*/analyColumnWidth(){const{columnOpts}=this;const{width:defaultWidth,minWidth:defaultMinWidth}=columnOpts;const resizeList=[];const pxList=[];const pxMinList=[];const autoMinList=[];const scaleList=[];const scaleMinList=[];const autoList=[];const remainList=[];this.tableFullColumn.forEach(column=>{if(defaultWidth&&!column.width){column.width=defaultWidth;}if(defaultMinWidth&&!column.minWidth){column.minWidth=defaultMinWidth;}if(column.visible){if(column.resizeWidth){resizeList.push(column);}else if(column.width==='auto'){autoList.push(column);}else if(isPx(column.width)){pxList.push(column);}else if(isScale(column.width)){scaleList.push(column);}else if(isPx(column.minWidth)){pxMinList.push(column);}else if(column.minWidth==='auto'){autoMinList.push(column);}else if(isScale(column.minWidth)){scaleMinList.push(column);}else{remainList.push(column);}}});Object.assign(this.columnStore,{resizeList,pxList,pxMinList,autoMinList,scaleList,scaleMinList,autoList,remainList});},handleColResizeMousedownEvent(evnt,fixedType,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const isLeftBtn=evnt.button===0;if(!isLeftBtn){return;}evnt.stopPropagation();evnt.preventDefault();const{column}=params;const{columnStore,overflowX,scrollbarHeight}=reactData;const{visibleColumn}=internalData;const{leftList,rightList}=columnStore;const resizableOpts=$xeTable.computeResizableOpts;const osbHeight=overflowX?scrollbarHeight:0;const tableEl=$xeTable.$refs.refElem;const leftContainerElem=$xeTable.$refs.refLeftContainer;const rightContainerElem=$xeTable.$refs.refRightContainer;const resizeBarElem=$xeTable.$refs.refColResizeBar;if(!resizeBarElem){return;}const isLeftFixed=fixedType==='left';const isRightFixed=fixedType==='right';const resizeTipElem=resizeBarElem.firstElementChild;const scrollbarXToTop=$xeTable.computeScrollbarXToTop;const{clientX:dragClientX}=evnt;const dragBtnElem=evnt.target;let cell=dragBtnElem.parentElement;let resizeColumn=column;const isDragGroupCol=column.children&&column.children.length;if(isDragGroupCol){resizeColumn=getLastChildColumn(column);if(isDragGroupCol){const trEl=cell?cell.parentElement:null;const theadEl=trEl?trEl.parentElement:null;cell=theadEl?theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`):null;}}if(!cell){return;}const cellParams=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(params,{cell,$table:$xeTable});let dragLeft=0;const tableRect=tableEl.getBoundingClientRect();const rightContainerRect=rightContainerElem?rightContainerElem.getBoundingClientRect():null;const cellRect=cell.getBoundingClientRect();const dragBtnRect=dragBtnElem.getBoundingClientRect();const dragBtnWidth=dragBtnElem.clientWidth;const dragBtnOffsetWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().floor(dragBtnWidth/2);const dragPosLeft=dragBtnRect.x-tableRect.x+dragBtnOffsetWidth;const minInterval=getColReMinWidth(cellParams)-dragBtnOffsetWidth;// 列之间的最小间距
|
|
8191
8199
|
const maxInterval=getColReMaxWidth(cellParams);// 列之间的最大间距
|
|
8192
8200
|
const dragMinLeft=isRightFixed?0:cellRect.x-tableRect.x+dragBtnWidth+minInterval;const dragMaxLeft=cellRect.x-tableRect.x+cell.clientWidth-minInterval;let fixedLeftRemainWidth=0;let fixedRightRemainWidth=0;if(isLeftFixed||isRightFixed){let isMach=false;const fixedColumn=isLeftFixed?leftList:rightList;for(let i=0;i<fixedColumn.length;i++){const item=fixedColumn[i];if(isMach){fixedLeftRemainWidth+=item.renderWidth;}else{isMach=item.id===resizeColumn.id;if(!isMach){fixedRightRemainWidth+=item.renderWidth;}}}}// 处理拖动事件
|
|
8193
8201
|
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const tableHeight=tableEl.clientHeight;const offsetX=evnt.clientX-dragClientX;let left=dragPosLeft+offsetX;if(isLeftFixed){if(rightContainerRect){left=Math.min(left,rightContainerRect.x-tableRect.x-fixedLeftRemainWidth-minInterval);}}else if(isRightFixed){if(leftContainerElem){left=Math.max(left,leftContainerElem.clientWidth+fixedRightRemainWidth+minInterval);}left=Math.min(left,dragMaxLeft);}dragLeft=Math.max(left,dragMinLeft);// 最大宽
|
|
8194
|
-
if(maxInterval>1){dragLeft=Math.min(dragLeft,maxInterval+dragMinLeft-minInterval);}const resizeBarLeft=Math.max(1,dragLeft);resizeBarElem.style.left=`${resizeBarLeft}px`;resizeBarElem.style.top=`${scrollbarXToTop?osbHeight:0}px`;resizeBarElem.style.height=`${scrollbarXToTop?tableHeight-osbHeight:tableHeight}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=methods_getI18n('vxe.table.resizeColTip',[Math.floor(resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft))]);const tableWrapperWidth=tableEl.clientWidth;const resizeBarWidth=resizeBarElem.clientWidth;const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeTipLeft=-resizeTipWidth;if(resizeBarLeft<resizeTipWidth+resizeBarWidth){resizeTipLeft=0;}else if(resizeBarLeft>tableWrapperWidth){resizeTipLeft+=tableWrapperWidth-resizeBarLeft;}resizeTipElem.style.left=`${resizeTipLeft}px`;resizeTipElem.style.top=`${Math.min(tableHeight-resizeTipHeight,Math.max(0,evnt.clientY-tableRect.y-resizeTipHeight/2))}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;addClass(tableEl,'col-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);const resizeWidth=resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft);const resizeParams={...params,resizeWidth,resizeColumn};if(resizableOpts.dragMode==='fixed'){visibleColumn.forEach(item=>{if(item.id!==resizeColumn.id){if(!item.resizeWidth){item.resizeWidth=item.renderWidth;}}});}if($xeTable.handleColResizeCellAreaEvent){$xeTable.handleColResizeCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize($xeTable,evnt,resizeParams);}removeClass(tableEl,'col-drag--resize');};updateEvent(evnt);if($xeTable.closeMenu){$xeTable.closeMenu();}},handleColResizeDblclickEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const resizableOpts=$xeTable.computeResizableOpts;const{isDblclickAutoWidth}=resizableOpts;const el=$xeTable.$refs.refElem;if(isDblclickAutoWidth&&el){evnt.stopPropagation();evnt.preventDefault();const{fullColumnIdData}=internalData;const{column}=params;let resizeColumn=column;if(column.children&&column.children.length){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(column.children,childColumn=>{resizeColumn=childColumn;});}const colid=resizeColumn.id;const colRest=fullColumnIdData[colid];const dragBtnElem=evnt.target;const cell=dragBtnElem.parentNode;const cellParams=Object.assign(params,{cell,$table:$xeTable});const colMinWidth=getColReMinWidth(cellParams);const colMaxWidth=getColReMaxWidth(cellParams);el.setAttribute('data-calc-col','Y');let resizeWidth=calcColumnAutoWidth($xeTable,resizeColumn,el);el.removeAttribute('data-calc-col');if(colRest){resizeWidth=Math.max(resizeWidth,colRest.width);}resizeWidth=Math.max(colMinWidth,resizeWidth);if(colMaxWidth>1){resizeWidth=Math.min(colMaxWidth,resizeWidth);}const resizeParams={...params,resizeWidth,resizeColumn};reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleColResizeDblclickCellAreaEvent){$xeTable.handleColResizeDblclickCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize($xeTable,evnt,resizeParams);}}},/**
|
|
8195
|
-
* @private
|
|
8202
|
+
if(maxInterval>1){dragLeft=Math.min(dragLeft,maxInterval+dragMinLeft-minInterval);}const resizeBarLeft=Math.max(1,dragLeft);resizeBarElem.style.left=`${resizeBarLeft}px`;resizeBarElem.style.top=`${scrollbarXToTop?osbHeight:0}px`;resizeBarElem.style.height=`${scrollbarXToTop?tableHeight-osbHeight:tableHeight}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=methods_getI18n('vxe.table.resizeColTip',[Math.floor(resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft))]);const tableWrapperWidth=tableEl.clientWidth;const resizeBarWidth=resizeBarElem.clientWidth;const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeTipLeft=-resizeTipWidth;if(resizeBarLeft<resizeTipWidth+resizeBarWidth){resizeTipLeft=0;}else if(resizeBarLeft>tableWrapperWidth){resizeTipLeft+=tableWrapperWidth-resizeBarLeft;}resizeTipElem.style.left=`${resizeTipLeft}px`;resizeTipElem.style.top=`${Math.min(tableHeight-resizeTipHeight,Math.max(0,evnt.clientY-tableRect.y-resizeTipHeight/2))}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;addClass(tableEl,'col-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);const resizeWidth=resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft);const resizeParams={...params,resizeWidth,resizeColumn};if(resizableOpts.dragMode==='fixed'){visibleColumn.forEach(item=>{if(item.id!==resizeColumn.id){if(!item.resizeWidth){item.resizeWidth=item.renderWidth;}}});}if($xeTable.handleColResizeCellAreaEvent){$xeTable.handleColResizeCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize($xeTable,evnt,resizeParams);}removeClass(tableEl,'col-drag--resize');};updateEvent(evnt);if($xeTable.closeMenu){$xeTable.closeMenu();}},handleColResizeDblclickEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const resizableOpts=$xeTable.computeResizableOpts;const{isDblclickAutoWidth}=resizableOpts;const el=$xeTable.$refs.refElem;if(isDblclickAutoWidth&&el){evnt.stopPropagation();evnt.preventDefault();const{fullColumnIdData}=internalData;const{column}=params;let resizeColumn=column;if(column.children&&column.children.length){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(column.children,childColumn=>{resizeColumn=childColumn;});}const colid=resizeColumn.id;const colRest=fullColumnIdData[colid];const dragBtnElem=evnt.target;const cell=dragBtnElem.parentNode;const cellParams=Object.assign(params,{cell,$table:$xeTable});const colMinWidth=getColReMinWidth(cellParams);const colMaxWidth=getColReMaxWidth(cellParams);el.setAttribute('data-calc-col','Y');let resizeWidth=calcColumnAutoWidth($xeTable,resizeColumn,el);el.removeAttribute('data-calc-col');if(colRest){resizeWidth=Math.max(resizeWidth,colRest.width);}resizeWidth=Math.max(colMinWidth,resizeWidth);if(colMaxWidth>1){resizeWidth=Math.min(colMaxWidth,resizeWidth);}const resizeParams={...params,resizeWidth,resizeColumn};reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleColResizeDblclickCellAreaEvent){$xeTable.handleColResizeDblclickCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize($xeTable,evnt,resizeParams);}}},/**
|
|
8203
|
+
* @private
|
|
8196
8204
|
*/handleRowResizeMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;evnt.stopPropagation();evnt.preventDefault();const $xeGantt=$xeTable.$xeGantt;const{row}=params;const{showOverflow}=props;const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{elemStore,fullAllDataRowIdData}=internalData;const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;const resizableOpts=$xeTable.computeResizableOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;let tableEl=$xeTable.$refs.refElem;if($xeGantt){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){tableEl=ganttContainerElem;}}const resizeBarElem=$xeTable.$refs.refRowResizeBar;if(!resizeBarElem){return;}const{clientY:dragClientY}=evnt;const resizeTipElem=resizeBarElem.firstElementChild;const dragBtnElem=evnt.currentTarget;const tdEl=dragBtnElem.parentNode;const trEl=tdEl.parentNode;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const defaultRowHeight=$xeTable.computeDefaultRowHeight;let currCellHeight=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;if(!showOverflow){currCellHeight=tdEl.clientHeight;}const tableRect=tableEl.getBoundingClientRect();const trRect=trEl.getBoundingClientRect();const targetOffsetY=dragClientY-trRect.y-trEl.clientHeight;let resizeHeight=currCellHeight;const cellEl=tdEl.querySelector('.vxe-cell');let cellMinHeight=0;if(cellEl){const cellStyle=getComputedStyle(cellEl);cellMinHeight=Math.max(1,Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingTop)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingBottom)));}const minTop=trRect.y-tableRect.y+cellMinHeight;// 处理拖动事件
|
|
8197
|
-
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const rtWidth=tableEl.clientWidth-osbWidth;const tableHeight=tableEl.clientHeight-osbHeight;let dragTop=evnt.clientY-tableRect.y-targetOffsetY;if(dragTop<minTop){dragTop=minTop;}else{resizeHeight=Math.max(cellMinHeight,currCellHeight+evnt.clientY-dragClientY);}resizeBarElem.style.left=`${scrollbarYToLeft?osbWidth:0}px`;resizeBarElem.style.top=`${dragTop}px`;resizeBarElem.style.width=`${rtWidth}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=methods_getI18n('vxe.table.resizeRowTip',[resizeHeight]);const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeBarLeft=Math.max(2,evnt.clientX-tableRect.x);let resizeBarTop=0;if(resizeBarLeft+resizeTipWidth>=rtWidth-2){resizeBarLeft=rtWidth-resizeTipWidth-2;}if(dragTop+resizeTipHeight>=tableHeight){resizeBarTop=tableHeight-(dragTop+resizeTipHeight);}resizeTipElem.style.left=`${resizeBarLeft}px`;resizeTipElem.style.top=`${resizeBarTop}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;addClass(tableEl,'row-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);if(resizeHeight!==currCellHeight){const resizeParams={...params,resizeHeight,resizeRow:row};internalData.isResizeCellHeight=true;if($xeTable.handleRowResizeCellAreaEvent){$xeTable.handleRowResizeCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize($xeTable,evnt,resizeParams);updateRowOffsetTop($xeTable);}}removeClass(tableEl,'row-drag--resize');};updateEvent(evnt);},/**
|
|
8198
|
-
* @private
|
|
8199
|
-
*/handleRowResizeDblclickEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const resizableOpts=$xeTable.computeResizableOpts;const{isDblclickAutoHeight}=resizableOpts;const el=$xeTable.$refs.refElem;if(isDblclickAutoHeight&&el){evnt.stopPropagation();evnt.preventDefault();const{editStore}=reactData;const{fullAllDataRowIdData}=internalData;const{actived}=editStore;const{row}=params;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const handleRsHeight=()=>{el.setAttribute('data-calc-row','Y');const resizeHeight=calcCellAutoHeight($xeTable,rowid,rowRest,el);el.removeAttribute('data-calc-row');const resizeParams={...params,resizeHeight,resizeRow:row};reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleRowResizeDblclickCellAreaEvent){$xeTable.handleRowResizeDblclickCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize($xeTable,evnt,resizeParams);}};if(actived.row||actived.column){$xeTable.clearEdit().then(handleRsHeight);}else{handleRsHeight();}}},setRowHeightConf(heightConf){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;let status=false;if(heightConf){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(heightConf,(height,rowid)=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const rHeight=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(height);if(rHeight){rowRest.resizeHeight=rHeight;if(!status){status=true;}}}});if(status){internalData.isResizeCellHeight=true;reactData.resizeHeightFlag++;}}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);return{status};});},getRowHeightConf(isFull){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData,afterFullData}=internalData;const{handleGetRowId}=createHandleGetRowId($xeTable);const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const rest={};afterFullData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const resizeHeight=rowRest.resizeHeight;if(resizeHeight||isFull){const currCellHeight=resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;rest[rowid]=currCellHeight;}}});return rest;},recalcRowHeight(rowOrId){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rowOrId)?rowOrId:[rowOrId];const el=$xeTable.$refs.refElem;if(el){const{handleGetRowId}=createHandleGetRowId($xeTable);el.setAttribute('data-calc-row','Y');rows.forEach(row=>{const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(row)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)?row:handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.resizeHeight=calcCellAutoHeight($xeTable,rowid,rowRest,el);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}return $xeTable.$nextTick();},setRowHeight(rowOrId,height){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;let status=false;const rows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rowOrId)?rowOrId:[rowOrId];let rHeight=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(height);if(isScale(height)){const tableBody=$xeTable.$refs.refTableBody;const bodyElem=tableBody?tableBody.$el:null;const bodyHeight=bodyElem?bodyElem.clientHeight-1:0;rHeight=Math.floor(rHeight*bodyHeight);}if(rHeight){const{handleGetRowId}=createHandleGetRowId($xeTable);rows.forEach(row=>{const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(row)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)?row:handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.resizeHeight=rHeight;if(!status){status=true;}}});if(status){internalData.isResizeCellHeight=true;reactData.resizeHeightFlag++;}}return $xeTable.$nextTick();},getRowHeight(rowOrId){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrId)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrId)?rowOrId:getRowid($xeTable,rowOrId);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;}return 0;},/**
|
|
8200
|
-
* 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
|
|
8205
|
+
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const rtWidth=tableEl.clientWidth-osbWidth;const tableHeight=tableEl.clientHeight-osbHeight;let dragTop=evnt.clientY-tableRect.y-targetOffsetY;if(dragTop<minTop){dragTop=minTop;}else{resizeHeight=Math.max(cellMinHeight,currCellHeight+evnt.clientY-dragClientY);}resizeBarElem.style.left=`${scrollbarYToLeft?osbWidth:0}px`;resizeBarElem.style.top=`${dragTop}px`;resizeBarElem.style.width=`${rtWidth}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=methods_getI18n('vxe.table.resizeRowTip',[resizeHeight]);const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeBarLeft=Math.max(2,evnt.clientX-tableRect.x);let resizeBarTop=0;if(resizeBarLeft+resizeTipWidth>=rtWidth-2){resizeBarLeft=rtWidth-resizeTipWidth-2;}if(dragTop+resizeTipHeight>=tableHeight){resizeBarTop=tableHeight-(dragTop+resizeTipHeight);}resizeTipElem.style.left=`${resizeBarLeft}px`;resizeTipElem.style.top=`${resizeBarTop}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;addClass(tableEl,'row-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);if(resizeHeight!==currCellHeight){const resizeParams={...params,resizeHeight,resizeRow:row};internalData.isResizeCellHeight=true;if($xeTable.handleRowResizeCellAreaEvent){$xeTable.handleRowResizeCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize($xeTable,evnt,resizeParams);updateRowOffsetTop($xeTable);}}removeClass(tableEl,'row-drag--resize');};updateEvent(evnt);},/**
|
|
8206
|
+
* @private
|
|
8207
|
+
*/handleRowResizeDblclickEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const resizableOpts=$xeTable.computeResizableOpts;const{isDblclickAutoHeight}=resizableOpts;const el=$xeTable.$refs.refElem;if(isDblclickAutoHeight&&el){evnt.stopPropagation();evnt.preventDefault();const{editStore}=reactData;const{fullAllDataRowIdData}=internalData;const{actived}=editStore;const{row}=params;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const handleRsHeight=()=>{el.setAttribute('data-calc-row','Y');const resizeHeight=calcCellAutoHeight($xeTable,rowid,rowRest,el);el.removeAttribute('data-calc-row');const resizeParams={...params,resizeHeight,resizeRow:row};reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleRowResizeDblclickCellAreaEvent){$xeTable.handleRowResizeDblclickCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize($xeTable,evnt,resizeParams);}};if(actived.row||actived.column){$xeTable.clearEdit().then(handleRsHeight);}else{handleRsHeight();}}},setRowHeightConf(heightConf){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;let status=false;if(heightConf){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(heightConf,(height,rowid)=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const rHeight=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(height);if(rHeight){rowRest.resizeHeight=rHeight;if(!status){status=true;}}}});if(status){internalData.isResizeCellHeight=true;reactData.resizeHeightFlag++;}}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);return{status};});},getRowHeightConf(isFull){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData,afterFullData}=internalData;const{handleGetRowId}=createHandleGetRowId($xeTable);const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const rest={};afterFullData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const resizeHeight=rowRest.resizeHeight;if(resizeHeight||isFull){const currCellHeight=resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;rest[rowid]=currCellHeight;}}});return rest;},recalcRowHeight(rowOrId){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rowOrId)?rowOrId:[rowOrId];const el=$xeTable.$refs.refElem;if(el){const{handleGetRowId}=createHandleGetRowId($xeTable);el.setAttribute('data-calc-row','Y');rows.forEach(row=>{const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(row)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)?row:handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.resizeHeight=calcCellAutoHeight($xeTable,rowid,rowRest,el);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}return $xeTable.$nextTick();},setRowHeight(rowOrId,height){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;let status=false;const rows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rowOrId)?rowOrId:[rowOrId];let rHeight=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(height);if(isScale(height)){const tableBody=$xeTable.$refs.refTableBody;const bodyElem=tableBody?tableBody.$el:null;const bodyHeight=bodyElem?bodyElem.clientHeight-1:0;rHeight=Math.floor(rHeight*bodyHeight);}if(rHeight){const{handleGetRowId}=createHandleGetRowId($xeTable);rows.forEach(row=>{const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(row)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)?row:handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.resizeHeight=rHeight;if(!status){status=true;}}});if(status){internalData.isResizeCellHeight=true;reactData.resizeHeightFlag++;}}return $xeTable.$nextTick();},getRowHeight(rowOrId){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrId)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrId)?rowOrId:getRowid($xeTable,rowOrId);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;}return 0;},/**
|
|
8208
|
+
* 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
|
|
8201
8209
|
*/refreshScroll(){const $xeTable=this;const internalData=$xeTable;const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;return new Promise(resolve=>{// 还原滚动条位置
|
|
8202
8210
|
if(lastScrollLeft||lastScrollTop){return restoreScrollLocation($xeTable,lastScrollLeft,lastScrollTop).then(()=>{// 存在滚动行为未结束情况
|
|
8203
8211
|
setTimeout(resolve,10);});}internalData.intoRunScroll=true;// 重置
|
|
8204
8212
|
setScrollTop(yHandleEl,lastScrollTop);setScrollTop(bodyScrollElem,lastScrollTop);setScrollTop(leftScrollElem,lastScrollTop);setScrollTop(rightScrollElem,lastScrollTop);setScrollLeft(xHandleEl,lastScrollLeft);setScrollLeft(bodyScrollElem,lastScrollLeft);setScrollLeft(headerScrollElem,lastScrollLeft);setScrollLeft(footerScrollElem,lastScrollLeft);// 存在滚动行为未结束情况
|
|
8205
|
-
setTimeout(()=>{internalData.intoRunScroll=false;resolve();},10);});},handleResizeEvent(){const $xeTable=this;handleResizeEvent($xeTable);},/**
|
|
8206
|
-
* 重新渲染布局
|
|
8207
|
-
* 刷新布局
|
|
8208
|
-
*/recalculate(reFull){const $xeTable=this;const isForce=!!reFull;return handleLazyRecalculate($xeTable,isForce,isForce,isForce);},updateStyle(){const $xeTable=this;return updateStyle($xeTable);},/**
|
|
8209
|
-
* 处理固定列的显示状态
|
|
8213
|
+
setTimeout(()=>{internalData.intoRunScroll=false;resolve();},10);});},handleResizeEvent(){const $xeTable=this;handleResizeEvent($xeTable);},/**
|
|
8214
|
+
* 重新渲染布局
|
|
8215
|
+
* 刷新布局
|
|
8216
|
+
*/recalculate(reFull){const $xeTable=this;const isForce=!!reFull;return handleLazyRecalculate($xeTable,isForce,isForce,isForce);},updateStyle(){const $xeTable=this;return updateStyle($xeTable);},/**
|
|
8217
|
+
* 处理固定列的显示状态
|
|
8210
8218
|
*/checkScrolling(){const $xeTable=this;const internalData=$xeTable;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const leftContainerElem=$xeTable.$refs.refLeftContainer;const rightContainerElem=$xeTable.$refs.refRightContainer;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const bodtTargetEl=xHandleEl||bodyScrollElem;if(bodtTargetEl){if(leftContainerElem){if(bodtTargetEl.scrollLeft>0){addClass(leftContainerElem,'scrolling--middle');}else{removeClass(leftContainerElem,'scrolling--middle');}}if(rightContainerElem){if(bodtTargetEl.clientWidth<bodtTargetEl.scrollWidth-Math.ceil(bodtTargetEl.scrollLeft)){addClass(rightContainerElem,'scrolling--middle');}else{removeClass(rightContainerElem,'scrolling--middle');}}}},preventEvent(evnt,type,args,next,end){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;let evntList=methods_interceptor.get(type);// 兼容老版本
|
|
8211
8219
|
if(!evntList.length&&type==='event.clearEdit'){evntList=methods_interceptor.get('event.clearActived');if(evntList.length){methods_warnLog('vxe.error.delEvent',['event.clearActived','event.clearEdit']);}}// 兼容老版本
|
|
8212
|
-
let rest=null;let isStop=false;for(let i=0;i<evntList.length;i++){const func=evntList[i];const fnRest=func(Object.assign({$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt,$event:evnt},args));if(fnRest===false){isStop=true;break;}else if(fnRest&&fnRest.status===false){rest=fnRest.result;isStop=true;break;}}if(!isStop){if(next){rest=next();}}if(end){end();}return rest;},/**
|
|
8213
|
-
* 全局按下事件处理
|
|
8220
|
+
let rest=null;let isStop=false;for(let i=0;i<evntList.length;i++){const func=evntList[i];const fnRest=func(Object.assign({$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt,$event:evnt},args));if(fnRest===false){isStop=true;break;}else if(fnRest&&fnRest.status===false){rest=fnRest.result;isStop=true;break;}}if(!isStop){if(next){rest=next();}}if(end){end();}return rest;},/**
|
|
8221
|
+
* 全局按下事件处理
|
|
8214
8222
|
*/handleGlobalMousedownEvent(evnt){const $xeTable=this;const props=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const reactData=$xeTable;const internalData=$xeTable;const{editStore,ctxMenuStore,customStore}=reactData;const{mouseConfig,editRules}=props;const el=$xeTable.$refs.refElem;const editOpts=$xeTable.computeEditOpts;const validOpts=$xeTable.computeValidOpts;const areaOpts=$xeTable.computeAreaOpts;const{actived}=editStore;const tableFilter=$xeTable.$refs.refTableFilter;const tableMenu=$xeTable.$refs.refTableMenu;const tableCustom=$xeTable.$refs.refTableCustom;const validTooltip=$xeTable.$refs.refValidTooltip;// 筛选
|
|
8215
8223
|
if(tableFilter){if(getEventTargetNode(evnt,el,'vxe-cell--filter').flag){// 如果点击了筛选按钮
|
|
8216
8224
|
}else if(getEventTargetNode(evnt,tableFilter.$el).flag){// 如果点击筛选容器
|
|
@@ -8231,17 +8239,17 @@ if(!isClear&&props.height&&!reactData.overflowY){const bodyWrapperElem=evnt.targ
|
|
|
8231
8239
|
if(!internalData.isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}});});}});}}}}}else if(mouseConfig){if(!getEventTargetNode(evnt,el).flag&&!($xeGGWrapper&&getEventTargetNode(evnt,$xeGGWrapper.$el).flag)&&!(tableMenu&&getEventTargetNode(evnt,tableMenu.$el).flag)&&!(this.$toolbar&&getEventTargetNode(evnt,this.$toolbar.$el).flag)){if($xeTable.clearSelected){$xeTable.clearSelected();}if(areaOpts.autoClear){if($xeTable.getCellAreas){const cellAreas=$xeTable.getCellAreas();if(cellAreas&&cellAreas.length&&!getEventTargetNode(evnt,document.body,'vxe-table--ignore-areas-clear').flag){$xeTable.preventEvent(evnt,'event.clearAreas',{},()=>{$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();$xeTable.dispatchEvent('clear-cell-area-selection',{cellAreas},evnt);});}}}}}// 如果配置了快捷菜单且,点击了其他地方则关闭
|
|
8232
8240
|
if(ctxMenuStore.visible&&tableMenu&&!getEventTargetNode(evnt,tableMenu.$el).flag){$xeTable.closeMenu();}if(!(actived.row&&getEventTargetNode(evnt,document.body,'vxe-table--ignore-clear').flag)){const isActivated=getEventTargetNode(evnt,($xeGGWrapper||$xeTable).$el).flag;// 如果存在校验,点击了表格之外则清除
|
|
8233
8241
|
if(!isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}// 最后激活的表格
|
|
8234
|
-
internalData.isActivated=isActivated;}},/**
|
|
8235
|
-
* 窗口失焦事件处理
|
|
8236
|
-
*/handleGlobalBlurEvent(){const $xeTable=this;$xeTable.closeFilter();$xeTable.closeMenu();},handleGlobalScrollEvent(evnt){const $xeTable=this;reUpdateCustomStyleEvent($xeTable,evnt);},/**
|
|
8237
|
-
* 全局滚动事件
|
|
8238
|
-
*/handleGlobalMousewheelEvent(){const $xeTable=this;$xeTable.closeTooltip();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
8239
|
-
* 表格键盘事件
|
|
8242
|
+
internalData.isActivated=isActivated;}},/**
|
|
8243
|
+
* 窗口失焦事件处理
|
|
8244
|
+
*/handleGlobalBlurEvent(){const $xeTable=this;$xeTable.closeFilter();$xeTable.closeMenu();},handleGlobalScrollEvent(evnt){const $xeTable=this;reUpdateCustomStyleEvent($xeTable,evnt);},/**
|
|
8245
|
+
* 全局滚动事件
|
|
8246
|
+
*/handleGlobalMousewheelEvent(){const $xeTable=this;$xeTable.closeTooltip();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
8247
|
+
* 表格键盘事件
|
|
8240
8248
|
*/keydownEvent(evnt){const $xeTable=this;const{filterStore,ctxMenuStore,editStore,keyboardConfig,mouseConfig,mouseOpts,keyboardOpts}=this;const{actived}=editStore;const{keyCode}=evnt;const isEsc=keyCode===27;if(isEsc){this.preventEvent(evnt,'event.keydown',null,()=>{$xeTable.dispatchEvent('keydown-start',{},evnt);if(keyboardConfig&&mouseConfig&&mouseOpts.area&&this.handleKeyboardCellAreaEvent){this.handleKeyboardCellAreaEvent(evnt);}else if(actived.row||filterStore.visible||ctxMenuStore.visible){evnt.stopPropagation();// 如果按下了 Esc 键,关闭快捷菜单、筛选
|
|
8241
8249
|
this.closeFilter();this.closeMenu();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
|
|
8242
8250
|
if(actived.row){const params=actived.args;this.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
|
|
8243
|
-
if(mouseConfig&&mouseOpts.selected){this.$nextTick(()=>this.handleSelected(params,evnt));}}}}$xeTable.dispatchEvent('keydown',{},evnt);$xeTable.dispatchEvent('keydown-end',{},evnt);});}},contextMenuEvent(evnt){const $xeTable=this;$xeTable.dispatchEvent('context-menu',{},evnt);},/**
|
|
8244
|
-
* 全局键盘事件
|
|
8251
|
+
if(mouseConfig&&mouseOpts.selected){this.$nextTick(()=>this.handleSelected(params,evnt));}}}}$xeTable.dispatchEvent('keydown',{},evnt);$xeTable.dispatchEvent('keydown-end',{},evnt);});}},contextMenuEvent(evnt){const $xeTable=this;$xeTable.dispatchEvent('context-menu',{},evnt);},/**
|
|
8252
|
+
* 全局键盘事件
|
|
8245
8253
|
*/handleGlobalKeydownEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;// 该行为只对当前激活的表格有效
|
|
8246
8254
|
if(internalData.isActivated){$xeTable.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{ctxMenuStore,editStore}=reactData;const{afterFullData,visibleColumn,currentRow}=internalData;const isContentMenu=$xeTable.computeIsContentMenu;const bodyMenu=$xeTable.computeBodyMenu;const keyboardOpts=$xeTable.computeKeyboardOpts;const mouseOpts=$xeTable.computeMouseOpts;const editOpts=$xeTable.computeEditOpts;const treeOpts=$xeTable.computeTreeOpts;const menuList=$xeTable.computeMenuList;const rowOpts=$xeTable.computeRowOpts;const columnOpts=$xeTable.computeColumnOpts;const{isLastEnterAppendRow,beforeEnterMethod,enterMethod,isLastTabAppendRow,beforeTabMethod,tabMethod}=keyboardOpts;const{selected,actived}=editStore;const{keyCode}=evnt;const isEsc=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);const hasBackspaceKey=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.BACKSPACE);const isTab=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.TAB);const isEnter=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ENTER);const isSpacebar=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.SPACEBAR);const isLeftArrow=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_LEFT);const isUpArrow=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_UP);const isRightArrow=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_RIGHT);const isDwArrow=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_DOWN);const hasDeleteKey=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.DELETE);const isY=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.Y);const isZ=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.Z);const isF2=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.F2);const isContextMenu=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.CONTEXT_MENU);const isControlKey=hasControlKey(evnt);const hasShiftKey=evnt.shiftKey;const hasAltKey=evnt.altKey;const operArrow=isLeftArrow||isUpArrow||isRightArrow||isDwArrow;const operCtxMenu=isContentMenu&&ctxMenuStore.visible&&(isEnter||isSpacebar||operArrow);const isEditStatus=isEnableConf(editConfig)&&actived.column&&actived.row;const childrenField=treeOpts.children||treeOpts.childrenField;const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;const selectColumn=selected.column;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
|
|
8247
8255
|
evnt.preventDefault();if(ctxMenuStore.showChild&&hasChildrenList(ctxMenuStore.selected)){$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selectChild',isLeftArrow,false,ctxMenuStore.selected.children);}else{$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selected',isRightArrow,true,menuList);}}else if(keyboardConfig&&mouseConfig&&mouseOpts.area&&$xeTable.handleKeyboardCellAreaEvent){$xeTable.handleKeyboardCellAreaEvent(evnt);}else if(isEsc){// 如果按下了 Esc 键,关闭快捷菜单、筛选
|
|
@@ -8276,32 +8284,32 @@ evnt.preventDefault();$xeTable.handleUndoStackEvent(evnt);}}else if(keyboardConf
|
|
|
8276
8284
|
// }
|
|
8277
8285
|
// 如果是按下非功能键之外允许直接编辑
|
|
8278
8286
|
if(selectColumn&&selected.row&&isEnableConf(selectColumn.editRender)){const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;const params={row:selected.row,rowIndex:$xeTable.getRowIndex(selected.row),column:selectColumn,columnIndex:$xeTable.getColumnIndex(selectColumn),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};if(!beforeEditMethod||beforeEditMethod(params)){if(editMethod){editMethod(params);}else{let isClearValue=false;// 追加方式与覆盖式
|
|
8279
|
-
if(editMode!=='insert'){isClearValue=true;}$xeTable.handleEdit(params,evnt,{isClear:isClearValue});}}}}$xeTable.dispatchEvent('keydown',{},evnt);});}},handleGlobalPasteEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handlePeClAreaEvent){$xeTable.handlePeClAreaEvent(evnt);}}$xeTable.dispatchEvent('paste',{},evnt);}},handleGlobalCopyEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handleCyClAreaEvent){$xeTable.handleCyClAreaEvent(evnt);}}$xeTable.dispatchEvent('copy',{},evnt);}},handleGlobalCutEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handleCutCellAreaEvent){$xeTable.handleCutCellAreaEvent(evnt);}}$xeTable.dispatchEvent('cut',{},evnt);}},handleGlobalResizeEvent(){const $xeTable=this;$xeTable.closeMenu();$xeTable.updateCellAreas();handleResizeEvent($xeTable);$xeTable.updateCellAreas();},handleUpdateHeaderMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeHeaderList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeHeaderList);internalData.mergeHeaderCellMaps=mergeMaps;internalData.mergeHeaderRowMaps=mergeRowMaps;internalData.mergeHeaderColMaps=mergeColMaps;reactData.mergeHeadFlag++;},/**
|
|
8280
|
-
* 处理合并
|
|
8281
|
-
*/handleUpdateBodyMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeBodyList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeBodyList);internalData.mergeBodyCellMaps=mergeMaps;internalData.mergeBodyRowMaps=mergeRowMaps;internalData.mergeBodyColMaps=mergeColMaps;reactData.mergeBodyFlag++;},handleUpdateFooterMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeFooterList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeFooterList);internalData.mergeFooterCellMaps=mergeMaps;internalData.mergeFooterRowMaps=mergeRowMaps;internalData.mergeFooterColMaps=mergeColMaps;reactData.mergeFootFlag++;},handleAggregateSummaryData(){const $xeTable=this;return $xeTable.refreshAggregateCalcValues();},handleTargetLeaveEvent(){const $xeTable=this;const internalData=$xeTable;const tooltipOpts=$xeTable.computeTooltipOpts;let $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.setActived){$tooltip.setActived(false);}if(tooltipOpts.enterable){internalData.tooltipTimeout=setTimeout(()=>{$tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.isActived&&!$tooltip.isActived()){$xeTable.closeTooltip();}},tooltipOpts.leaveDelay);}else{$xeTable.closeTooltip();}},triggerHeaderTitleEvent(evnt,iconParams,params){const $xeTable=this;const reactData=$xeTable;const tipContent=iconParams.content||iconParams.message;if(tipContent){const{tooltipStore}=reactData;const{column}=params;const content=getFuncText(tipContent);handleTargetEnterEvent($xeTable,true);tooltipStore.row=null;tooltipStore.column=column;tooltipStore.visible=true;tooltipStore.currOpts=iconParams;$xeTable.$nextTick(()=>{const $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.open){$tooltip.open(evnt.currentTarget,content);}});}},/**
|
|
8282
|
-
* 触发表头 tooltip 事件
|
|
8283
|
-
*/triggerHeaderTooltipEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{tooltipStore}=reactData;const headerTooltipOpts=$xeTable.computeHeaderTooltipOpts;const{column}=params;handleTargetEnterEvent($xeTable,true);const titleElem=evnt.currentTarget;if(!titleElem){return;}const cWrapperEl=titleElem.parentElement;if(!cWrapperEl){return;}const cellEl=cWrapperEl.parentElement;if(!cellEl){return;}const thEl=cellEl.parentElement;if(!thEl){return;}if(tooltipStore.column!==column||!tooltipStore.visible){const ctEl=thEl.querySelector('.vxe-cell--title');handleTooltip($xeTable,evnt,headerTooltipOpts,'header',thEl,(hasClass(thEl,'col--ellipsis')?ctEl:cWrapperEl)||cWrapperEl,ctEl||cellEl,params);}},/**
|
|
8284
|
-
* 触发单元格 tooltip 事件
|
|
8287
|
+
if(editMode!=='insert'){isClearValue=true;}$xeTable.handleEdit(params,evnt,{isClear:isClearValue});}}}}$xeTable.dispatchEvent('keydown',{},evnt);});}},handleGlobalPasteEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handlePeClAreaEvent){$xeTable.handlePeClAreaEvent(evnt);}}$xeTable.dispatchEvent('paste',{},evnt);}},handleGlobalCopyEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handleCyClAreaEvent){$xeTable.handleCyClAreaEvent(evnt);}}$xeTable.dispatchEvent('copy',{},evnt);}},handleGlobalCutEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handleCutCellAreaEvent){$xeTable.handleCutCellAreaEvent(evnt);}}$xeTable.dispatchEvent('cut',{},evnt);}},handleGlobalResizeEvent(){const $xeTable=this;$xeTable.closeMenu();$xeTable.updateCellAreas();handleResizeEvent($xeTable);$xeTable.updateCellAreas();},handleUpdateHeaderMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeHeaderList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeHeaderList);internalData.mergeHeaderCellMaps=mergeMaps;internalData.mergeHeaderRowMaps=mergeRowMaps;internalData.mergeHeaderColMaps=mergeColMaps;reactData.mergeHeadFlag++;},/**
|
|
8288
|
+
* 处理合并
|
|
8289
|
+
*/handleUpdateBodyMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeBodyList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeBodyList);internalData.mergeBodyCellMaps=mergeMaps;internalData.mergeBodyRowMaps=mergeRowMaps;internalData.mergeBodyColMaps=mergeColMaps;reactData.mergeBodyFlag++;},handleUpdateFooterMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeFooterList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeFooterList);internalData.mergeFooterCellMaps=mergeMaps;internalData.mergeFooterRowMaps=mergeRowMaps;internalData.mergeFooterColMaps=mergeColMaps;reactData.mergeFootFlag++;},handleAggregateSummaryData(){const $xeTable=this;return $xeTable.refreshAggregateCalcValues();},handleTargetLeaveEvent(){const $xeTable=this;const internalData=$xeTable;const tooltipOpts=$xeTable.computeTooltipOpts;let $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.setActived){$tooltip.setActived(false);}if(tooltipOpts.enterable){internalData.tooltipTimeout=setTimeout(()=>{$tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.isActived&&!$tooltip.isActived()){$xeTable.closeTooltip();}},tooltipOpts.leaveDelay);}else{$xeTable.closeTooltip();}},triggerHeaderTitleEvent(evnt,iconParams,params){const $xeTable=this;const reactData=$xeTable;const tipContent=iconParams.content||iconParams.message;if(tipContent){const{tooltipStore}=reactData;const{column}=params;const content=getFuncText(tipContent);handleTargetEnterEvent($xeTable,true);tooltipStore.row=null;tooltipStore.column=column;tooltipStore.visible=true;tooltipStore.currOpts=iconParams;$xeTable.$nextTick(()=>{const $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.open){$tooltip.open(evnt.currentTarget,content);}});}},/**
|
|
8290
|
+
* 触发表头 tooltip 事件
|
|
8291
|
+
*/triggerHeaderTooltipEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{tooltipStore}=reactData;const headerTooltipOpts=$xeTable.computeHeaderTooltipOpts;const{column}=params;handleTargetEnterEvent($xeTable,true);const titleElem=evnt.currentTarget;if(!titleElem){return;}const cWrapperEl=titleElem.parentElement;if(!cWrapperEl){return;}const cellEl=cWrapperEl.parentElement;if(!cellEl){return;}const thEl=cellEl.parentElement;if(!thEl){return;}if(tooltipStore.column!==column||!tooltipStore.visible){const ctEl=thEl.querySelector('.vxe-cell--title');handleTooltip($xeTable,evnt,headerTooltipOpts,'header',thEl,(hasClass(thEl,'col--ellipsis')?ctEl:cWrapperEl)||cWrapperEl,ctEl||cellEl,params);}},/**
|
|
8292
|
+
* 触发单元格 tooltip 事件
|
|
8285
8293
|
*/triggerBodyTooltipEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore}=reactData;const{tooltipStore}=reactData;const tooltipOpts=$xeTable.computeTooltipOpts;const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const{row,column}=params;const tdEl=evnt.currentTarget;handleTargetEnterEvent($xeTable,tooltipStore.column!==column||tooltipStore.row!==row);// 单元格处于编辑状态时不触发提示框
|
|
8286
8294
|
if(column.editRender&&isEnableConf(editConfig)){// 如果是行编辑模式
|
|
8287
8295
|
if(editOpts.mode==='row'&&actived.row===row){return;}// 如果是单元格编辑模式
|
|
8288
|
-
if(actived.row===row&&actived.column===column){return;}}if(tooltipStore.column!==column||tooltipStore.row!==row||!tooltipStore.visible){const ctEl=tdEl.querySelector('.vxe-cell--wrapper');let ovEl=null;let tipEl=tdEl.querySelector(column.type==='html'?'.vxe-cell--html':'.vxe-cell--label');if(column.treeNode){ovEl=tdEl.querySelector('.vxe-tree-cell');}if(!tipEl){tipEl=ctEl;}handleTooltip($xeTable,evnt,tooltipOpts,'body',tdEl,ovEl||ctEl,tipEl,params);}},/**
|
|
8289
|
-
* 触发表尾 tooltip 事件
|
|
8290
|
-
*/triggerFooterTooltipEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{column}=params;const{tooltipStore}=reactData;const footerTooltipOpts=$xeTable.computeFooterTooltipOpts;const tdEl=evnt.currentTarget;handleTargetEnterEvent($xeTable,tooltipStore.column!==column||!!tooltipStore.row);if(tooltipStore.column!==column||!tooltipStore.visible){const ctEl=tdEl.querySelector('.vxe-cell--wrapper');let ovEl=null;let tipEl=tdEl.querySelector(column.type==='html'?'.vxe-cell--html':'.vxe-cell--label');if(column.type==='html'){ovEl=tdEl.querySelector('.vxe-cell--html');}if(!tipEl){tipEl=ctEl;}handleTooltip($xeTable,evnt,footerTooltipOpts,'footer',tdEl,ovEl||ctEl,tipEl,params);}},openTooltip(target,content){const $xeTable=this;const commTip=$xeTable.$refs.refCommTooltip;if(commTip){return commTip.open(target,content);}return $xeTable.$nextTick();},/**
|
|
8291
|
-
* 关闭 tooltip
|
|
8292
|
-
*/closeTooltip(){const $xeTable=this;const reactData=$xeTable;const{tooltipStore}=reactData;const tooltip=$xeTable.$refs.refTooltip;const commTip=$xeTable.$refs.refCommTooltip;if(tooltipStore.visible){Object.assign(tooltipStore,{row:null,column:null,content:null,visible:false,type:null,currOpts:{}});if(tooltip){tooltip.close();}}if(commTip){commTip.close();}return $xeTable.$nextTick();},/**
|
|
8293
|
-
* 判断列头复选框是否被选中
|
|
8294
|
-
*/isAllCheckboxChecked(){const $xeTable=this;const reactData=$xeTable;return reactData.isAllSelected;},/**
|
|
8295
|
-
* 判断列头复选框是否被半选
|
|
8296
|
-
*/isAllCheckboxIndeterminate(){const $xeTable=this;const reactData=$xeTable;return!reactData.isAllSelected&&reactData.isIndeterminate;},isCheckboxIndeterminate(){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isCheckboxIndeterminate','isAllCheckboxIndeterminate']);return $xeTable.isAllCheckboxIndeterminate();},/**
|
|
8297
|
-
* 获取复选框半选状态的行数据
|
|
8298
|
-
*/getCheckboxIndeterminateRecords(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullDataRowIdData,treeIndeterminateRowMaps}=internalData;if(treeConfig){const fullRest=[];const defRest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(treeIndeterminateRowMaps,(item,rowid)=>{if(item){fullRest.push(item);if(fullDataRowIdData[rowid]){defRest.push(item);}}});if(isFull){return fullRest;}return defRest;}return[];},handleCheckedCheckboxRow(rows,value,isForce){const $xeTable=this;return handleCheckedCheckboxRow($xeTable,rows,value,isForce);},/**
|
|
8299
|
-
* 用于多选行,设置行为选中状态,第二个参数为选中与否
|
|
8300
|
-
* @param {Array/Row} rows 行数据
|
|
8301
|
-
* @param {Boolean} value 是否选中
|
|
8302
|
-
*/setCheckboxRow(rows,checked){const $xeTable=this;if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}return handleCheckedCheckboxRow($xeTable,rows,checked,true);},setCheckboxRowKey(keys,checked){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(keys&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(keys)){keys=[keys];}const rows=[];keys.forEach(rowid=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rows.push(rowRest.row);}});return handleCheckedCheckboxRow($xeTable,rows,checked,true);},isCheckedByCheckboxRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{updateCheckboxFlag}=reactData;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;if(checkField){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField);}return!!updateCheckboxFlag&&!!selectCheckboxMaps[getRowid($xeTable,row)];},isCheckedByCheckboxRowKey(rowid){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{updateCheckboxFlag}=reactData;const{fullAllDataRowIdData,selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;if(checkField){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rowRest.row,checkField);}return false;}return!!updateCheckboxFlag&&!!selectCheckboxMaps[rowid];},isIndeterminateByCheckboxRow(row){const $xeTable=this;const internalData=$xeTable;const{treeIndeterminateRowMaps}=internalData;return!!treeIndeterminateRowMaps[getRowid($xeTable,row)]&&!$xeTable.isCheckedByCheckboxRow(row);},isIndeterminateByCheckboxRowKey(rowid){const $xeTable=this;const internalData=$xeTable;const{treeIndeterminateRowMaps}=internalData;return!!treeIndeterminateRowMaps[rowid]&&!$xeTable.isCheckedByCheckboxRowKey(rowid);},/**
|
|
8303
|
-
* 切换选中
|
|
8304
|
-
* 多选,行选中事件
|
|
8296
|
+
if(actived.row===row&&actived.column===column){return;}}if(tooltipStore.column!==column||tooltipStore.row!==row||!tooltipStore.visible){const ctEl=tdEl.querySelector('.vxe-cell--wrapper');let ovEl=null;let tipEl=tdEl.querySelector(column.type==='html'?'.vxe-cell--html':'.vxe-cell--label');if(column.treeNode){ovEl=tdEl.querySelector('.vxe-tree-cell');}if(!tipEl){tipEl=ctEl;}handleTooltip($xeTable,evnt,tooltipOpts,'body',tdEl,ovEl||ctEl,tipEl,params);}},/**
|
|
8297
|
+
* 触发表尾 tooltip 事件
|
|
8298
|
+
*/triggerFooterTooltipEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{column}=params;const{tooltipStore}=reactData;const footerTooltipOpts=$xeTable.computeFooterTooltipOpts;const tdEl=evnt.currentTarget;handleTargetEnterEvent($xeTable,tooltipStore.column!==column||!!tooltipStore.row);if(tooltipStore.column!==column||!tooltipStore.visible){const ctEl=tdEl.querySelector('.vxe-cell--wrapper');let ovEl=null;let tipEl=tdEl.querySelector(column.type==='html'?'.vxe-cell--html':'.vxe-cell--label');if(column.type==='html'){ovEl=tdEl.querySelector('.vxe-cell--html');}if(!tipEl){tipEl=ctEl;}handleTooltip($xeTable,evnt,footerTooltipOpts,'footer',tdEl,ovEl||ctEl,tipEl,params);}},openTooltip(target,content){const $xeTable=this;const commTip=$xeTable.$refs.refCommTooltip;if(commTip){return commTip.open(target,content);}return $xeTable.$nextTick();},/**
|
|
8299
|
+
* 关闭 tooltip
|
|
8300
|
+
*/closeTooltip(){const $xeTable=this;const reactData=$xeTable;const{tooltipStore}=reactData;const tooltip=$xeTable.$refs.refTooltip;const commTip=$xeTable.$refs.refCommTooltip;if(tooltipStore.visible){Object.assign(tooltipStore,{row:null,column:null,content:null,visible:false,type:null,currOpts:{}});if(tooltip){tooltip.close();}}if(commTip){commTip.close();}return $xeTable.$nextTick();},/**
|
|
8301
|
+
* 判断列头复选框是否被选中
|
|
8302
|
+
*/isAllCheckboxChecked(){const $xeTable=this;const reactData=$xeTable;return reactData.isAllSelected;},/**
|
|
8303
|
+
* 判断列头复选框是否被半选
|
|
8304
|
+
*/isAllCheckboxIndeterminate(){const $xeTable=this;const reactData=$xeTable;return!reactData.isAllSelected&&reactData.isIndeterminate;},isCheckboxIndeterminate(){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isCheckboxIndeterminate','isAllCheckboxIndeterminate']);return $xeTable.isAllCheckboxIndeterminate();},/**
|
|
8305
|
+
* 获取复选框半选状态的行数据
|
|
8306
|
+
*/getCheckboxIndeterminateRecords(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullDataRowIdData,treeIndeterminateRowMaps}=internalData;if(treeConfig){const fullRest=[];const defRest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(treeIndeterminateRowMaps,(item,rowid)=>{if(item){fullRest.push(item);if(fullDataRowIdData[rowid]){defRest.push(item);}}});if(isFull){return fullRest;}return defRest;}return[];},handleCheckedCheckboxRow(rows,value,isForce){const $xeTable=this;return handleCheckedCheckboxRow($xeTable,rows,value,isForce);},/**
|
|
8307
|
+
* 用于多选行,设置行为选中状态,第二个参数为选中与否
|
|
8308
|
+
* @param {Array/Row} rows 行数据
|
|
8309
|
+
* @param {Boolean} value 是否选中
|
|
8310
|
+
*/setCheckboxRow(rows,checked){const $xeTable=this;if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}return handleCheckedCheckboxRow($xeTable,rows,checked,true);},setCheckboxRowKey(keys,checked){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(keys&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(keys)){keys=[keys];}const rows=[];keys.forEach(rowid=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rows.push(rowRest.row);}});return handleCheckedCheckboxRow($xeTable,rows,checked,true);},isCheckedByCheckboxRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{updateCheckboxFlag}=reactData;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;if(checkField){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField);}return!!updateCheckboxFlag&&!!selectCheckboxMaps[getRowid($xeTable,row)];},isCheckedByCheckboxRowKey(rowid){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{updateCheckboxFlag}=reactData;const{fullAllDataRowIdData,selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;if(checkField){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rowRest.row,checkField);}return false;}return!!updateCheckboxFlag&&!!selectCheckboxMaps[rowid];},isIndeterminateByCheckboxRow(row){const $xeTable=this;const internalData=$xeTable;const{treeIndeterminateRowMaps}=internalData;return!!treeIndeterminateRowMaps[getRowid($xeTable,row)]&&!$xeTable.isCheckedByCheckboxRow(row);},isIndeterminateByCheckboxRowKey(rowid){const $xeTable=this;const internalData=$xeTable;const{treeIndeterminateRowMaps}=internalData;return!!treeIndeterminateRowMaps[rowid]&&!$xeTable.isCheckedByCheckboxRowKey(rowid);},/**
|
|
8311
|
+
* 切换选中
|
|
8312
|
+
* 多选,行选中事件
|
|
8305
8313
|
*/handleBatchSelectRows(rows,checked,isForce){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{selectCheckboxMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,checkStrictly,checkMethod}=checkboxOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);// indeterminateField 仅支持读取
|
|
8306
8314
|
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){// 树结构
|
|
8307
8315
|
if((treeConfig||isRowGroupStatus)&&!checkStrictly){// 更新子节点状态
|
|
@@ -8310,20 +8318,20 @@ rows.forEach(row=>{if(isForce||!checkMethod||checkMethod({$table:$xeTable,row}))
|
|
|
8310
8318
|
if(!checkStrictly){if(isRowGroupStatus){// 更新行分组节点状态
|
|
8311
8319
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows,row=>{const rowid=handleGetRowId(row);if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){if(checked){selectCheckboxMaps[rowid]=row;}else{if(selectCheckboxMaps[rowid]){delete selectCheckboxMaps[rowid];}}handleCheckboxReserveRow($xeTable,row,checked);}},{children:aggregateOpts.mapChildrenField});reactData.updateCheckboxFlag++;return;}else if(treeConfig){// 更新子节点状态
|
|
8312
8320
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows,row=>{const rowid=handleGetRowId(row);if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){if(checked){selectCheckboxMaps[rowid]=row;}else{if(selectCheckboxMaps[rowid]){delete selectCheckboxMaps[rowid];}}handleCheckboxReserveRow($xeTable,row,checked);}},{children:transform?mapChildrenField:childrenField});reactData.updateCheckboxFlag++;return;}}// 列表
|
|
8313
|
-
rows.forEach(row=>{const rowid=handleGetRowId(row);if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){if(checked){if(!selectCheckboxMaps[rowid]){selectCheckboxMaps[rowid]=row;}}else{if(selectCheckboxMaps[rowid]){delete selectCheckboxMaps[rowid];}}handleCheckboxReserveRow($xeTable,row,checked);reactData.updateCheckboxFlag++;}});},/**
|
|
8314
|
-
* 即将移除
|
|
8315
|
-
* @deprecated
|
|
8321
|
+
rows.forEach(row=>{const rowid=handleGetRowId(row);if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){if(checked){if(!selectCheckboxMaps[rowid]){selectCheckboxMaps[rowid]=row;}}else{if(selectCheckboxMaps[rowid]){delete selectCheckboxMaps[rowid];}}handleCheckboxReserveRow($xeTable,row,checked);reactData.updateCheckboxFlag++;}});},/**
|
|
8322
|
+
* 即将移除
|
|
8323
|
+
* @deprecated
|
|
8316
8324
|
*/handleSelectRow({row},checked,isForce){const $xeTable=this;$xeTable.handleBatchSelectRows([row],checked,isForce);},handleToggleCheckRowEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,trigger}=checkboxOpts;const{row}=params;if(trigger==='manual'){return;}let checked=false;if(checkField){checked=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField);}else{checked=!selectCheckboxMaps[getRowid($xeTable,row)];}if(evnt){$xeTable.triggerCheckRowEvent(evnt,params,checked);}else{$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();}},triggerCheckRowEvent(evnt,params,checked){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{row}=params;const{isRowGroupStatus}=reactData;const{fullAllDataRowIdData,afterFullData,afterTreeFullData,afterGroupFullData}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{checkMethod,trigger,checkStrictly}=checkboxOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(checkboxOpts.isShiftKey&&evnt.shiftKey){const{handleGetRowId}=createHandleGetRowId($xeTable);const checkboxRecords=$xeTable.getCheckboxRecords();let currSeq=-1;let currRow=null;const currRowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[currRowid];if(rowRest){currRow=rowRest.row;currSeq=rowRest._seq;}if(currRow&&checkboxRecords.length){let rangeRows=[];let firstSeq=-1;let firstRow=null;let firstRowid='';let lastSeq=-1;let lastRow=null;let lastRowid='';// 根据序号取出范围最小/最大的行
|
|
8317
8325
|
const selectMaps={};checkboxRecords.forEach(item=>{const rowid=handleGetRowId(item);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){if(!firstRow||firstSeq>rowRest._seq){firstRowid=rowRest.rowid;firstRow=rowRest.row;firstSeq=rowRest._seq;}if(!lastRow||lastSeq<rowRest._seq){lastRowid=rowRest.rowid;lastRow=rowRest.row;lastSeq=rowRest._seq;}}selectMaps[rowid]=item;});// 如果已选只有一条并选择当前则跳过
|
|
8318
8326
|
if(firstRow&&lastRow&&(checkboxRecords.length>1||currRowid!==firstRowid)&&(Math.abs(firstSeq-lastSeq)>1||Math.abs(currSeq-firstSeq)>1||Math.abs(currSeq-lastSeq)>1)){// 树与分组
|
|
8319
8327
|
if(treeConfig||isRowGroupStatus){const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const iteratorChildField=treeConfig?transform?treeOpts.mapChildrenField:childrenField:aggregateOpts.mapChildrenField;let isMatchFirst=false;let matchStartRowid='';let matchEndRowid='';const handleGetChildRowid=(rowid,isLast)=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const item=rowRest.row;const childList=item[iteratorChildField];if(childList&&childList.length){const targetRow=isLast?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(childList):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().first(childList);return handleGetChildRowid(handleGetRowId(targetRow),isLast);}}return rowid;};const handleGetSelectParentRowid=rowid=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const parentItem=rowRest.parent;if(parentItem){const parentRowid=handleGetRowId(parentItem);if(selectMaps[parentRowid]){return handleGetSelectParentRowid(parentRowid);}}}return rowid;};const handleGetRootRow=row=>{const rowid=handleGetRowId(row);if(rowid){const rest=fullAllDataRowIdData[rowid];if(rest){return rest.parent?handleGetRootRow(rest.parent):rest;}}return null;};if(currSeq<firstSeq){matchStartRowid=handleGetChildRowid(currRowid,0);matchEndRowid=handleGetChildRowid(firstRowid,1);}else{if(currSeq>lastSeq){matchStartRowid=handleGetSelectParentRowid(lastRowid);}else{matchStartRowid=handleGetChildRowid(firstRowid,0);}matchEndRowid=handleGetChildRowid(currRowid,1);}const handleRangeRow=item=>{const rowid=handleGetRowId(item);const childList=item[iteratorChildField];if(!isMatchFirst&&rowid===matchStartRowid){isMatchFirst=true;}// 如果是父子关联,则排除父节点
|
|
8320
8328
|
if(isMatchFirst&&(checkStrictly||!childList||!childList.length)){rangeRows.push(item);}// break
|
|
8321
8329
|
return rowid===matchEndRowid;};if(treeConfig){const matchStartRowRest=fullAllDataRowIdData[matchStartRowid];const firstRootRowRest=matchStartRowRest?handleGetRootRow(matchStartRowRest.row):null;if(firstRootRowRest){// 优化查找复杂度
|
|
8322
|
-
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterTreeFullData.slice(firstRootRowRest.treeIndex),handleRangeRow,{children:iteratorChildField});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterTreeFullData,handleRangeRow,{children:iteratorChildField});}}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterGroupFullData,handleRangeRow,{children:iteratorChildField});}}else{const _currRowIndex=$xeTable.getVTRowIndex(currRow);const _firstRowIndex=$xeTable.getVTRowIndex(firstRow);const _lastRowIndex=$xeTable.getVTRowIndex(lastRow);if(_currRowIndex<_firstRowIndex){rangeRows=afterFullData.slice(_currRowIndex,_firstRowIndex+1);}else if(_currRowIndex>_lastRowIndex){rangeRows=afterFullData.slice(_lastRowIndex,_currRowIndex+1);}else{rangeRows=afterFullData.slice(_firstRowIndex,_currRowIndex+1);}}$xeTable.setAllCheckboxRow(false);$xeTable.$nextTick(()=>{handleCheckedCheckboxRow($xeTable,rangeRows,true,false);});$xeTable.dispatchEvent('checkbox-range-select',Object.assign({rangeRecords:rangeRows},params),evnt);}}}if(!checkMethod||checkMethod({$table:$xeTable,row})){$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('checkbox-change',Object.assign({records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked},params),evnt);}},/**
|
|
8323
|
-
* 多选,切换某一行的选中状态
|
|
8324
|
-
*/toggleCheckboxRow(row){const $xeTable=this;const internalData=$xeTable;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const checked=checkField?!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField):!selectCheckboxMaps[getRowid($xeTable,row)];$xeTable.handleBatchSelectRows([row],checked,true);$xeTable.checkSelectionStatus();return $xeTable.$nextTick();},/**
|
|
8325
|
-
* 用于多选行,设置所有行的选中状态
|
|
8326
|
-
* @param {Boolean} value 是否选中
|
|
8330
|
+
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterTreeFullData.slice(firstRootRowRest.treeIndex),handleRangeRow,{children:iteratorChildField});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterTreeFullData,handleRangeRow,{children:iteratorChildField});}}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterGroupFullData,handleRangeRow,{children:iteratorChildField});}}else{const _currRowIndex=$xeTable.getVTRowIndex(currRow);const _firstRowIndex=$xeTable.getVTRowIndex(firstRow);const _lastRowIndex=$xeTable.getVTRowIndex(lastRow);if(_currRowIndex<_firstRowIndex){rangeRows=afterFullData.slice(_currRowIndex,_firstRowIndex+1);}else if(_currRowIndex>_lastRowIndex){rangeRows=afterFullData.slice(_lastRowIndex,_currRowIndex+1);}else{rangeRows=afterFullData.slice(_firstRowIndex,_currRowIndex+1);}}$xeTable.setAllCheckboxRow(false);$xeTable.$nextTick(()=>{handleCheckedCheckboxRow($xeTable,rangeRows,true,false);});$xeTable.dispatchEvent('checkbox-range-select',Object.assign({rangeRecords:rangeRows},params),evnt);}}}if(!checkMethod||checkMethod({$table:$xeTable,row})){$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('checkbox-change',Object.assign({records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked},params),evnt);}},/**
|
|
8331
|
+
* 多选,切换某一行的选中状态
|
|
8332
|
+
*/toggleCheckboxRow(row){const $xeTable=this;const internalData=$xeTable;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const checked=checkField?!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField):!selectCheckboxMaps[getRowid($xeTable,row)];$xeTable.handleBatchSelectRows([row],checked,true);$xeTable.checkSelectionStatus();return $xeTable.$nextTick();},/**
|
|
8333
|
+
* 用于多选行,设置所有行的选中状态
|
|
8334
|
+
* @param {Boolean} value 是否选中
|
|
8327
8335
|
*/setAllCheckboxRow(value){const $xeTable=this;return handleCheckedAllCheckboxRow($xeTable,value,true);},updateCheckboxStatus(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{afterTreeFullData,afterGroupFullData,selectCheckboxMaps,treeIndeterminateRowMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,indeterminateField,checkStrictly,checkMethod}=checkboxOpts;if(checkStrictly){return;}if(isRowGroupStatus||treeConfig){const{handleGetRowId}=createHandleGetRowId($xeTable);const childRowMaps={};const childRowList=[];if(isRowGroupStatus){// 行分组
|
|
8328
8336
|
const mapChildrenField=aggregateOpts.mapChildrenField;if(mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData,row=>{const rowid=handleGetRowId(row);const childList=row[mapChildrenField];if(childList&&childList.length&&!childRowMaps[rowid]){childRowMaps[rowid]=1;childRowList.unshift([row,rowid,childList]);}},{children:mapChildrenField});}}else if(treeConfig){// 树结构
|
|
8329
8337
|
const{transform,mapChildrenField}=treeOpts;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,row=>{const rowid=handleGetRowId(row);const childList=row[transform?mapChildrenField:childrenField];if(childList&&childList.length&&!childRowMaps[rowid]){childRowMaps[rowid]=1;childRowList.unshift([row,rowid,childList]);}else{if(indeterminateField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,indeterminateField,false);}}},{children:transform?mapChildrenField:childrenField});}childRowList.forEach(vals=>{const row=vals[0];const rowid=vals[1];const childList=vals[2];let sLen=0;// 已选
|
|
@@ -8338,51 +8346,51 @@ let hLen=0;// 半选
|
|
|
8338
8346
|
let dhLen=0;// 禁用的半选
|
|
8339
8347
|
let vLen=0;// 有效行
|
|
8340
8348
|
const rootList=treeConfig?afterTreeFullData:isRowGroupStatus?afterGroupFullData:afterFullData;rootList.forEach(checkMethod?row=>{const childRowid=handleGetRowId(row);const selected=checkField?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField):selectCheckboxMaps[childRowid];if(isRowGroupStatus&&$xeTable.isAggregateRecord(row)){const childList=row[mapChildrenField||''];if(selected){vLen++;sLen++;}else if(treeIndeterminateRowMaps[childRowid]){vLen++;hLen++;}else if(childList&&childList.length&&childList.some(item=>checkMethod({$table:$xeTable,row:item}))){vLen++;}}else if(checkMethod({$table:$xeTable,row})){if(selected){sLen++;}else if(treeIndeterminateRowMaps[childRowid]){hLen++;}vLen++;}else{if(selected){dsLen++;}else if(treeIndeterminateRowMaps[childRowid]){dhLen++;}}}:row=>{const childRowid=handleGetRowId(row);const selected=checkField?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,checkField):selectCheckboxMaps[childRowid];if(selected){sLen++;}else if(treeIndeterminateRowMaps[childRowid]){hLen++;}vLen++;});const isSelected=rootList.length>0?vLen>0?sLen>=vLen:sLen>=rootList.length:false;let halfSelect=!isSelected&&(sLen>0||hLen>0||dsLen>0||dhLen>0);// 如果复选框启用保留记录,当保留数据存在时显示半选
|
|
8341
|
-
if(!isSelected&&!halfSelect&&showReserveStatus){halfSelect=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEmpty(checkboxReserveRowMap);}reactData.isAllSelected=isSelected;reactData.isIndeterminate=halfSelect;},checkSelectionStatus(){const $xeTable=this;$xeTable.updateCheckboxStatus();$xeTable.updateAllCheckboxStatus();},/**
|
|
8342
|
-
* 获取单选框保留选中的行
|
|
8343
|
-
*/getRadioReserveRecord(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullDataRowIdData,radioReserveRow,afterFullData}=internalData;const radioOpts=$xeTable.computeRadioOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;if(radioOpts.reserve&&radioReserveRow){const rowid=getRowid($xeTable,radioReserveRow);if(isFull){if(!fullDataRowIdData[rowid]){return radioReserveRow;}}else{const rowkey=getRowkey($xeTable);if(treeConfig){const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData,row=>rowid===external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,rowkey),{children:childrenField});if(matchObj){return radioReserveRow;}}else{if(!afterFullData.some(row=>rowid===external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,rowkey))){return radioReserveRow;}}}}return null;},clearRadioReserve(){const $xeTable=this;const internalData=$xeTable;internalData.radioReserveRow=null;return $xeTable.$nextTick();},/**
|
|
8344
|
-
* 获取复选框保留选中的行
|
|
8345
|
-
*/getCheckboxReserveRecords(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{afterFullData,fullDataRowIdData,checkboxReserveRowMap}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const reserveSelection=[];if(checkboxOpts.reserve){const{handleGetRowId}=createHandleGetRowId($xeTable);const afterFullIdMaps={};if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData,row=>{afterFullIdMaps[handleGetRowId(row)]=1;},{children:childrenField});}else{afterFullData.forEach(row=>{afterFullIdMaps[handleGetRowId(row)]=1;});}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(checkboxReserveRowMap,(oldRow,oldRowid)=>{if(oldRow){if(isFull){if(!fullDataRowIdData[oldRowid]){reserveSelection.push(oldRow);}}else{if(!afterFullIdMaps[oldRowid]){reserveSelection.push(oldRow);}}}});}return reserveSelection;},clearCheckboxReserve(){const $xeTable=this;const internalData=$xeTable;internalData.checkboxReserveRowMap={};return $xeTable.$nextTick();},handleCheckboxReserveRow(row,checked){const $xeTable=this;const internalData=$xeTable;const{checkboxReserveRowMap}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;if(checkboxOpts.reserve){const rowid=getRowid($xeTable,row);if(checked){checkboxReserveRowMap[rowid]=row;}else if(checkboxReserveRowMap[rowid]){delete checkboxReserveRowMap[rowid];}}},handleCheckAllEvent(evnt,value){const $xeTable=this;handleCheckedAllCheckboxRow($xeTable,value);if(evnt){$xeTable.dispatchEvent('checkbox-all',{records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked:value},evnt);}},/**
|
|
8346
|
-
* 多选,选中所有事件
|
|
8347
|
-
*/triggerCheckAllEvent(evnt,value){const $xeTable=this;const{checkboxOpts}=this;const{trigger}=checkboxOpts;if(trigger==='manual'){return;}if(evnt){evnt.stopPropagation();}$xeTable.handleCheckAllEvent(evnt,value);},/**
|
|
8348
|
-
* 多选,切换所有行的选中状态
|
|
8349
|
-
*/toggleAllCheckboxRow(){this.handleCheckAllEvent(null,!this.isAllSelected);return this.$nextTick();},/**
|
|
8350
|
-
* 用于多选行,手动清空用户的选择
|
|
8351
|
-
* 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
|
|
8349
|
+
if(!isSelected&&!halfSelect&&showReserveStatus){halfSelect=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEmpty(checkboxReserveRowMap);}reactData.isAllSelected=isSelected;reactData.isIndeterminate=halfSelect;},checkSelectionStatus(){const $xeTable=this;$xeTable.updateCheckboxStatus();$xeTable.updateAllCheckboxStatus();},/**
|
|
8350
|
+
* 获取单选框保留选中的行
|
|
8351
|
+
*/getRadioReserveRecord(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullDataRowIdData,radioReserveRow,afterFullData}=internalData;const radioOpts=$xeTable.computeRadioOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;if(radioOpts.reserve&&radioReserveRow){const rowid=getRowid($xeTable,radioReserveRow);if(isFull){if(!fullDataRowIdData[rowid]){return radioReserveRow;}}else{const rowkey=getRowkey($xeTable);if(treeConfig){const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData,row=>rowid===external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,rowkey),{children:childrenField});if(matchObj){return radioReserveRow;}}else{if(!afterFullData.some(row=>rowid===external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,rowkey))){return radioReserveRow;}}}}return null;},clearRadioReserve(){const $xeTable=this;const internalData=$xeTable;internalData.radioReserveRow=null;return $xeTable.$nextTick();},/**
|
|
8352
|
+
* 获取复选框保留选中的行
|
|
8353
|
+
*/getCheckboxReserveRecords(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{afterFullData,fullDataRowIdData,checkboxReserveRowMap}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const reserveSelection=[];if(checkboxOpts.reserve){const{handleGetRowId}=createHandleGetRowId($xeTable);const afterFullIdMaps={};if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData,row=>{afterFullIdMaps[handleGetRowId(row)]=1;},{children:childrenField});}else{afterFullData.forEach(row=>{afterFullIdMaps[handleGetRowId(row)]=1;});}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(checkboxReserveRowMap,(oldRow,oldRowid)=>{if(oldRow){if(isFull){if(!fullDataRowIdData[oldRowid]){reserveSelection.push(oldRow);}}else{if(!afterFullIdMaps[oldRowid]){reserveSelection.push(oldRow);}}}});}return reserveSelection;},clearCheckboxReserve(){const $xeTable=this;const internalData=$xeTable;internalData.checkboxReserveRowMap={};return $xeTable.$nextTick();},handleCheckboxReserveRow(row,checked){const $xeTable=this;const internalData=$xeTable;const{checkboxReserveRowMap}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;if(checkboxOpts.reserve){const rowid=getRowid($xeTable,row);if(checked){checkboxReserveRowMap[rowid]=row;}else if(checkboxReserveRowMap[rowid]){delete checkboxReserveRowMap[rowid];}}},handleCheckAllEvent(evnt,value){const $xeTable=this;handleCheckedAllCheckboxRow($xeTable,value);if(evnt){$xeTable.dispatchEvent('checkbox-all',{records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked:value},evnt);}},/**
|
|
8354
|
+
* 多选,选中所有事件
|
|
8355
|
+
*/triggerCheckAllEvent(evnt,value){const $xeTable=this;const{checkboxOpts}=this;const{trigger}=checkboxOpts;if(trigger==='manual'){return;}if(evnt){evnt.stopPropagation();}$xeTable.handleCheckAllEvent(evnt,value);},/**
|
|
8356
|
+
* 多选,切换所有行的选中状态
|
|
8357
|
+
*/toggleAllCheckboxRow(){this.handleCheckAllEvent(null,!this.isAllSelected);return this.$nextTick();},/**
|
|
8358
|
+
* 用于多选行,手动清空用户的选择
|
|
8359
|
+
* 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
|
|
8352
8360
|
*/clearCheckboxRow(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,reserve}=checkboxOpts;// indeterminateField 仅支持读取
|
|
8353
|
-
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){const handleClearChecked=item=>{if(treeConfig&&indeterminateField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item,indeterminateField,false);}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item,checkField,false);};if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData,handleClearChecked,{children:childrenField});}else{tableFullData.forEach(handleClearChecked);}}if(reserve){tableFullData.forEach(row=>this.handleCheckboxReserveRow(row,false));}reactData.isAllSelected=false;reactData.isIndeterminate=false;internalData.selectCheckboxMaps={};internalData.treeIndeterminateRowMaps={};reactData.updateCheckboxFlag++;return this.$nextTick();},/**
|
|
8354
|
-
* 单选,行选中事件
|
|
8361
|
+
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){const handleClearChecked=item=>{if(treeConfig&&indeterminateField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item,indeterminateField,false);}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item,checkField,false);};if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData,handleClearChecked,{children:childrenField});}else{tableFullData.forEach(handleClearChecked);}}if(reserve){tableFullData.forEach(row=>this.handleCheckboxReserveRow(row,false));}reactData.isAllSelected=false;reactData.isIndeterminate=false;internalData.selectCheckboxMaps={};internalData.treeIndeterminateRowMaps={};reactData.updateCheckboxFlag++;return this.$nextTick();},/**
|
|
8362
|
+
* 单选,行选中事件
|
|
8355
8363
|
*/triggerRadioRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=$xeTable.computeRadioOpts;const{trigger,strict,checkMethod}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(!checkMethod||checkMethod({$table:$xeTable,row})){let newValue=row;let isChange=oldValue!==newValue;if(strict){handleCheckedRadioRow($xeTable,newValue,false);}else{if(oldValue===newValue){newValue=null;}isChange=oldValue!==newValue;if(isChange&&newValue){handleCheckedRadioRow($xeTable,newValue,false);}else{newValue=null;$xeTable.clearRadioRow();}}if(isChange){$xeTable.dispatchEvent('radio-change',{oldValue,newValue,selected:!!newValue,...params},evnt);}}},triggerCurrentColumnEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentColumn:oldValue}=reactData;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const beforeRowMethod=currentColumnOpts.beforeSelectMethod||columnOpts.currentMethod;let newValue=params.column;const{trigger,strict}=currentColumnOpts;if(trigger==='manual'){return;}let isChange=oldValue!==newValue;if(!beforeRowMethod||beforeRowMethod({column:newValue,$table:$xeTable})){if(strict){$xeTable.setCurrentColumn(newValue);}else{if(oldValue===newValue){newValue=null;}isChange=oldValue!==newValue;if(isChange&&newValue){$xeTable.setCurrentColumn(newValue);}else{newValue=null;$xeTable.clearCurrentColumn();}}if(isChange){$xeTable.dispatchEvent('current-column-change',{oldValue,newValue,selected:!!newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-column-disabled',params,evnt);}},triggerCurrentRowEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{currentRow:oldValue}=internalData;const rowOpts=$xeTable.computeRowOpts;const currentRowOpts=$xeTable.computeCurrentRowOpts;const beforeRowMethod=currentRowOpts.beforeSelectMethod||rowOpts.currentMethod;let{row:newValue}=params;const{trigger,strict}=currentRowOpts;if(trigger==='manual'){return;}let isChange=oldValue!==newValue;if(!beforeRowMethod||beforeRowMethod({row:newValue,$table:$xeTable})){if(strict){$xeTable.setCurrentRow(newValue);}else{if(oldValue===newValue){newValue=null;}isChange=oldValue!==newValue;if(isChange&&newValue){$xeTable.setCurrentRow(newValue);}else{newValue=null;$xeTable.clearCurrentRow();}}if(isChange){$xeTable.dispatchEvent('current-row-change',{oldValue,newValue,selected:!!newValue,...params},evnt);// 已废弃
|
|
8356
|
-
$xeTable.dispatchEvent('current-change',{oldValue,newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
8357
|
-
* 用于当前行,设置某一行为高亮状态
|
|
8358
|
-
* @param {Row} row 行对象
|
|
8364
|
+
$xeTable.dispatchEvent('current-change',{oldValue,newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
8365
|
+
* 用于当前行,设置某一行为高亮状态
|
|
8366
|
+
* @param {Row} row 行对象
|
|
8359
8367
|
*/setCurrentRow(row){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;const rowOpts=$xeTable.computeRowOpts;this.clearCurrentRow();// this.clearCurrentColumn()
|
|
8360
|
-
this.currentRow=row;if(rowOpts.isCurrent||this.highlightCurrentRow){if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`[rowid="${getRowid($xeTable,row)}"]`),elem=>addClass(elem,'row--current'));}}if($xeGanttView&&$xeGanttView.handleUpdateCurrentRow){$xeGanttView.handleUpdateCurrentRow(row);}return this.$nextTick();},isCheckedByRadioRow(row){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow}=reactData;if(row&&selectRadioRow){return $xeTable.eqRow(selectRadioRow,row);}return false;},isCheckedByRadioRowKey(key){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow}=reactData;if(selectRadioRow){return key===getRowid($xeTable,selectRadioRow);}return false;},/**
|
|
8361
|
-
* 用于单选行,设置某一行为选中状态
|
|
8362
|
-
* @param {Row} row 行对象
|
|
8363
|
-
*/setRadioRow(row){const $xeTable=this;return handleCheckedRadioRow($xeTable,row,true);},/**
|
|
8364
|
-
* 用于单选行,设置某一行为选中状态
|
|
8365
|
-
* @param key 行主键
|
|
8366
|
-
*/setRadioRowKey(rowid){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return handleCheckedRadioRow($xeTable,rowRest.row,true);}return $xeTable.$nextTick();},/**
|
|
8367
|
-
* 用于当前行,手动清空当前高亮的状态
|
|
8368
|
-
*/clearCurrentRow(){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;internalData.currentRow=null;internalData.hoverRow=null;if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll('.row--current'),elem=>removeClass(elem,'row--current'));}if($xeGanttView&&$xeGanttView.handleUpdateCurrentRow){$xeGanttView.handleUpdateCurrentRow();}return $xeTable.$nextTick();},/**
|
|
8369
|
-
* 用于单选行,手动清空用户的选择
|
|
8370
|
-
*/clearRadioRow(){this.selectRadioRow=null;return this.$nextTick();},/**
|
|
8371
|
-
* 用于当前行,获取当前行的数据
|
|
8372
|
-
*/getCurrentRecord(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{fullDataRowIdData,afterFullRowMaps,currentRow}=internalData;const rowOpts=$xeTable.computeRowOpts;if(rowOpts.isCurrent||props.highlightCurrentRow){const rowid=getRowid($xeTable,currentRow);if(isFull){if(fullDataRowIdData[rowid]){return currentRow;}}else{if(afterFullRowMaps[rowid]){return currentRow;}}}return null;},/**
|
|
8373
|
-
* 用于单选行,获取当已选中的数据
|
|
8374
|
-
*/getRadioRecord(isFull){const{selectRadioRow,fullDataRowIdData,afterFullRowMaps}=this;if(selectRadioRow){const rowid=getRowid(this,selectRadioRow);if(isFull){if(fullDataRowIdData[rowid]){return selectRadioRow;}}else{if(afterFullRowMaps[rowid]){return selectRadioRow;}}}return null;},/**
|
|
8375
|
-
* 行 hover 事件
|
|
8376
|
-
*/triggerHoverEvent(evnt,{row}){this.setHoverRow(row);},setHoverRow(row){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;$xeTable.clearHoverRow();if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${getRowid($xeTable,row)}"]`),elem=>addClass(elem,'row--hover'));}internalData.hoverRow=row;if($xeGanttView&&$xeGanttView.handleUpdateHoverRow){$xeGanttView.handleUpdateHoverRow(row);}},clearHoverRow(){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'),elem=>removeClass(elem,'row--hover'));}internalData.hoverRow=null;if($xeGanttView&&$xeGanttView.handleUpdateHoverRow){$xeGanttView.handleUpdateHoverRow();}},triggerHeaderCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const internalData=$xeTable;const{_lastResizeTime}=internalData;const sortOpts=$xeTable.computeSortOpts;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const{column}=params;const cell=evnt.currentTarget;const triggerResizable=_lastResizeTime&&_lastResizeTime>Date.now()-300;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;if(sortOpts.trigger==='cell'&&!(triggerResizable||triggerSort||triggerFilter)){$xeTable.triggerSortEvent(evnt,column,getNextSortOrder($xeTable,column));}if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('header-cell-click',Object.assign({triggerResizable,triggerSort,triggerFilter,cell},params),evnt);if((columnOpts.isCurrent||props.highlightCurrentColumn)&&(!currentColumnOpts.trigger||['header','default'].includes(currentColumnOpts.trigger))){$xeTable.triggerCurrentColumnEvent(evnt,params);}return $xeTable.$nextTick();},triggerHeaderCellDblclickEvent(evnt,params){const $xeTable=this;$xeTable.dispatchEvent('header-cell-dblclick',Object.assign({cell:evnt.currentTarget},params),evnt);},getCurrentColumn(){return this.columnOpts.isCurrent||this.highlightCurrentColumn?this.currentColumn:null;},/**
|
|
8377
|
-
* 用于当前列,设置某列行为高亮状态
|
|
8378
|
-
* @param {ColumnInfo} fieldOrColumn 列配置
|
|
8368
|
+
this.currentRow=row;if(rowOpts.isCurrent||this.highlightCurrentRow){if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`[rowid="${getRowid($xeTable,row)}"]`),elem=>addClass(elem,'row--current'));}}if($xeGanttView&&$xeGanttView.handleUpdateCurrentRow){$xeGanttView.handleUpdateCurrentRow(row);}return this.$nextTick();},isCheckedByRadioRow(row){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow}=reactData;if(row&&selectRadioRow){return $xeTable.eqRow(selectRadioRow,row);}return false;},isCheckedByRadioRowKey(key){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow}=reactData;if(selectRadioRow){return key===getRowid($xeTable,selectRadioRow);}return false;},/**
|
|
8369
|
+
* 用于单选行,设置某一行为选中状态
|
|
8370
|
+
* @param {Row} row 行对象
|
|
8371
|
+
*/setRadioRow(row){const $xeTable=this;return handleCheckedRadioRow($xeTable,row,true);},/**
|
|
8372
|
+
* 用于单选行,设置某一行为选中状态
|
|
8373
|
+
* @param key 行主键
|
|
8374
|
+
*/setRadioRowKey(rowid){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return handleCheckedRadioRow($xeTable,rowRest.row,true);}return $xeTable.$nextTick();},/**
|
|
8375
|
+
* 用于当前行,手动清空当前高亮的状态
|
|
8376
|
+
*/clearCurrentRow(){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;internalData.currentRow=null;internalData.hoverRow=null;if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll('.row--current'),elem=>removeClass(elem,'row--current'));}if($xeGanttView&&$xeGanttView.handleUpdateCurrentRow){$xeGanttView.handleUpdateCurrentRow();}return $xeTable.$nextTick();},/**
|
|
8377
|
+
* 用于单选行,手动清空用户的选择
|
|
8378
|
+
*/clearRadioRow(){this.selectRadioRow=null;return this.$nextTick();},/**
|
|
8379
|
+
* 用于当前行,获取当前行的数据
|
|
8380
|
+
*/getCurrentRecord(isFull){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{fullDataRowIdData,afterFullRowMaps,currentRow}=internalData;const rowOpts=$xeTable.computeRowOpts;if(rowOpts.isCurrent||props.highlightCurrentRow){const rowid=getRowid($xeTable,currentRow);if(isFull){if(fullDataRowIdData[rowid]){return currentRow;}}else{if(afterFullRowMaps[rowid]){return currentRow;}}}return null;},/**
|
|
8381
|
+
* 用于单选行,获取当已选中的数据
|
|
8382
|
+
*/getRadioRecord(isFull){const{selectRadioRow,fullDataRowIdData,afterFullRowMaps}=this;if(selectRadioRow){const rowid=getRowid(this,selectRadioRow);if(isFull){if(fullDataRowIdData[rowid]){return selectRadioRow;}}else{if(afterFullRowMaps[rowid]){return selectRadioRow;}}}return null;},/**
|
|
8383
|
+
* 行 hover 事件
|
|
8384
|
+
*/triggerHoverEvent(evnt,{row}){this.setHoverRow(row);},setHoverRow(row){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;$xeTable.clearHoverRow();if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${getRowid($xeTable,row)}"]`),elem=>addClass(elem,'row--hover'));}internalData.hoverRow=row;if($xeGanttView&&$xeGanttView.handleUpdateHoverRow){$xeGanttView.handleUpdateHoverRow(row);}},clearHoverRow(){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(el){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'),elem=>removeClass(elem,'row--hover'));}internalData.hoverRow=null;if($xeGanttView&&$xeGanttView.handleUpdateHoverRow){$xeGanttView.handleUpdateHoverRow();}},triggerHeaderCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const internalData=$xeTable;const{_lastResizeTime}=internalData;const sortOpts=$xeTable.computeSortOpts;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const{column}=params;const cell=evnt.currentTarget;const triggerResizable=_lastResizeTime&&_lastResizeTime>Date.now()-300;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;if(sortOpts.trigger==='cell'&&!(triggerResizable||triggerSort||triggerFilter)){$xeTable.triggerSortEvent(evnt,column,getNextSortOrder($xeTable,column));}if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('header-cell-click',Object.assign({triggerResizable,triggerSort,triggerFilter,cell},params),evnt);if((columnOpts.isCurrent||props.highlightCurrentColumn)&&(!currentColumnOpts.trigger||['header','default'].includes(currentColumnOpts.trigger))){$xeTable.triggerCurrentColumnEvent(evnt,params);}return $xeTable.$nextTick();},triggerHeaderCellDblclickEvent(evnt,params){const $xeTable=this;$xeTable.dispatchEvent('header-cell-dblclick',Object.assign({cell:evnt.currentTarget},params),evnt);},getCurrentColumn(){return this.columnOpts.isCurrent||this.highlightCurrentColumn?this.currentColumn:null;},/**
|
|
8385
|
+
* 用于当前列,设置某列行为高亮状态
|
|
8386
|
+
* @param {ColumnInfo} fieldOrColumn 列配置
|
|
8379
8387
|
*/setCurrentColumn(fieldOrColumn){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const isMouseSelected=mouseConfig&&mouseOpts.selected;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){$xeTable.clearCurrentColumn();reactData.currentColumn=column;}return $xeTable.$nextTick().then(()=>{// 更新状选中态
|
|
8380
|
-
if(isMouseSelected){$xeTable.addCellSelectedClass();}});},/**
|
|
8381
|
-
* 用于当前列,手动清空当前高亮的状态
|
|
8382
|
-
*/clearCurrentColumn(){this.currentColumn=null;return this.$nextTick();},/**
|
|
8383
|
-
* 列点击事件
|
|
8384
|
-
* 如果是单击模式,则激活为编辑状态
|
|
8385
|
-
* 如果是双击模式,则单击后选中状态
|
|
8388
|
+
if(isMouseSelected){$xeTable.addCellSelectedClass();}});},/**
|
|
8389
|
+
* 用于当前列,手动清空当前高亮的状态
|
|
8390
|
+
*/clearCurrentColumn(){this.currentColumn=null;return this.$nextTick();},/**
|
|
8391
|
+
* 列点击事件
|
|
8392
|
+
* 如果是单击模式,则激活为编辑状态
|
|
8393
|
+
* 如果是双击模式,则单击后选中状态
|
|
8386
8394
|
*/triggerCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const reactData=$xeTable;const{treeConfig,highlightCurrentRow,highlightCurrentColumn,editConfig,aggregateConfig,rowGroupConfig}=props;const{editStore,isDragResize,expandColumn,checkboxColumn,radioColumn}=reactData;if(isDragResize){return;}const expandOpts=$xeTable.computeExpandOpts;const editOpts=$xeTable.computeEditOpts;const treeOpts=$xeTable.computeTreeOpts;const radioOpts=$xeTable.computeRadioOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const rowOpts=$xeTable.computeRowOpts;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const{actived,focused}=editStore;const{row,column}=params;const{type,treeNode,rowGroupNode}=column;const isRadioType=type==='radio';const isCheckboxType=type==='checkbox';const isExpandType=type==='expand';const cell=evnt.currentTarget;const triggerRadio=isRadioType&&getEventTargetNode(evnt,cell,'vxe-cell--radio').flag;const triggerCheckbox=isCheckboxType&&getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerTreeNode=treeNode&&getEventTargetNode(evnt,cell,'vxe-cell--tree-btn').flag;const triggerExpandNode=isExpandType&&getEventTargetNode(evnt,cell,'vxe-table--expanded').flag;const triggerRowGroupNode=isExpandType&&getEventTargetNode(evnt,cell,'vxe-row-group--node-btn').flag;params=Object.assign({cell,triggerRadio,triggerCheckbox,triggerTreeNode,triggerExpandNode},params);if(!triggerCheckbox&&!triggerRadio){// 如果是展开行
|
|
8387
8395
|
if(!triggerExpandNode&&(expandColumn&&expandOpts.trigger==='row'||isExpandType&&expandOpts.trigger==='cell')){$xeTable.triggerRowExpandEvent(evnt,params);}// 如果是树形表格
|
|
8388
8396
|
if(treeConfig&&(treeOpts.trigger==='row'||treeNode&&treeOpts.trigger==='cell')){$xeTable.triggerTreeExpandEvent(evnt,params);}// 如果是行分组
|
|
@@ -8393,18 +8401,18 @@ if((columnOpts.isCurrent||highlightCurrentColumn)&&(!currentColumnOpts.trigger||
|
|
|
8393
8401
|
if(!triggerRadio&&(radioColumn&&radioOpts.trigger==='row'||isRadioType&&radioOpts.trigger==='cell')){$xeTable.triggerRadioRowEvent(evnt,params);}// 如果是复选框
|
|
8394
8402
|
if(!triggerCheckbox&&(checkboxColumn&&checkboxOpts.trigger==='row'||isCheckboxType&&checkboxOpts.trigger==='cell')){$xeTable.handleToggleCheckRowEvent(evnt,params);}}// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
8395
8403
|
if(isEnableConf(editConfig)){// 记录点击输入框聚焦状态
|
|
8396
|
-
if(keyboardOpts.arrowCursorLock&&evnt&&editOpts.mode==='cell'&&evnt.target&&/^input|textarea$/i.test(evnt.target.tagName)){focused.column=column;focused.row=row;}if(editOpts.trigger==='manual'){if(actived.args&&actived.row===row&&column!==actived.column){handleChangeCell($xeTable,evnt,params);}}else if(!actived.args||row!==actived.row||column!==actived.column){if(editOpts.trigger==='click'){handleChangeCell($xeTable,evnt,params);}else if(editOpts.trigger==='dblclick'){if(editOpts.mode==='row'&&actived.row===row){handleChangeCell($xeTable,evnt,params);}}}}}// 如果是双击编辑模式
|
|
8397
|
-
if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(actived.row&&actived.column){if(editOpts.mode==='row'){if(!$xeTable.eqRow(actived.row,row)){$xeTable.handleClearEdit(evnt);}}else if(editOpts.mode==='cell'){if(!$xeTable.eqRow(actived.row,row)||actived.column.id!==column.id){$xeTable.handleClearEdit(evnt);}}}}if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('cell-click',params,evnt);},/**
|
|
8398
|
-
* 列双击点击事件
|
|
8399
|
-
* 如果是双击模式,则激活为编辑状态
|
|
8400
|
-
*/triggerCellDblclickEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore,isDragResize}=reactData;if(isDragResize){return;}const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const cell=evnt.currentTarget;params=Object.assign({cell},params);if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(!actived.args||evnt.currentTarget!==actived.args.cell){if(editOpts.mode==='row'){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}else if(editOpts.mode==='cell'){$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);}}}$xeTable.dispatchEvent('cell-dblclick',params,evnt);},triggerFooterCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const cell=evnt.currentTarget;params=Object.assign({cell},params);if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('footer-cell-click',params,evnt);},triggerFooterCellDblclickEvent(evnt,params){const $xeTable=this;const cell=evnt.currentTarget;params=Object.assign({cell},params);$xeTable.dispatchEvent('footer-cell-dblclick',params,evnt);},handleColumnSortEvent(evnt,column){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if(mouseConfig&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){$xeTable.dispatchEvent('clear-sort',params,evnt);}$xeTable.dispatchEvent('sort-change',params,evnt);}},/**
|
|
8401
|
-
* 点击排序事件
|
|
8402
|
-
*/triggerSortEvent(evnt,column,order){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;const{multiple,allowClear}=sortOpts;const{field,sortable}=column;if(sortable||column.remoteSort){if(!order||column.order===order){if(allowClear){$xeTable.clearSort(multiple?column:null);}}else{$xeTable.sort({field,order});}$xeTable.handleColumnSortEvent(evnt,column);}},handleCellRuleUpdateStatus(type,cellParams,cellValue){const $xeTable=this;const reactData=$xeTable;const{validStore}=reactData;const{row,column}=cellParams;if($xeTable.hasCellRules){if($xeTable.hasCellRules(type,row,column)){const cell=$xeTable.getCellElement(row,column);if(cell){const customVal=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);return $xeTable.validCellRules(type,row,column,cellValue).then(()=>{if(customVal&&validStore.visible){setCellValue(row,column,cellValue);}$xeTable.clearValidate(row,column);}).catch(({rule})=>{if(customVal){setCellValue(row,column,cellValue);}$xeTable.showValidTooltip({rule,row,column,cell});});}}}return $xeTable.$nextTick();},/**
|
|
8403
|
-
* 表头单元格按下事件
|
|
8404
|
-
*/triggerHeaderCellMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&mouseConfig&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
8405
|
-
* 单元格按下事件
|
|
8406
|
-
*/triggerCellMousedownEvent(evnt,params){const $xeTable=this;const{column}=params;const{type,treeNode}=column;const isRadioType=type==='radio';const isCheckboxType=type==='checkbox';const isExpandType=type==='expand';const rowOpts=$xeTable.computeRowOpts;const rowDragOpts=$xeTable.computeRowDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=rowDragOpts;const cell=evnt.currentTarget;params.cell=cell;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerRadio=isRadioType&&getEventTargetNode(evnt,cell,'vxe-cell--radio').flag;const triggerCheckbox=isCheckboxType&&getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerTreeNode=treeNode&&getEventTargetNode(evnt,cell,'vxe-cell--tree-btn').flag;const triggerExpandNode=isExpandType&&getEventTargetNode(evnt,cell,'vxe-table--expanded').flag;let isColDragCell=false;if(rowOpts.drag){isColDragCell=trigger==='row'||column.dragSort&&trigger==='cell';}let triggerDrag=false;if(!(triggerInput||triggerRadio||triggerCheckbox||triggerTreeNode||triggerExpandNode)){if(isColDragCell&&(isCrossDrag||isPeerDrag||!params.level)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&$xeTable.handleCellMousedownEvent){$xeTable.handleCellMousedownEvent(evnt,params);}$xeTable.focus();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}},triggerCellMouseupEvent(){const $xeTable=this;clearDragStatus($xeTable);},/**
|
|
8407
|
-
* 行拖拽
|
|
8404
|
+
if(keyboardOpts.arrowCursorLock&&evnt&&editOpts.mode==='cell'&&evnt.target&&/^input|textarea$/i.test(evnt.target.tagName)){focused.column=column;focused.row=row;}if(editOpts.trigger==='manual'){if(actived.args&&actived.row===row&&column!==actived.column){if(editOpts.mode==='row'){handleChangeCell($xeTable,evnt,params);}else{checkValidate($xeTable,'blur').catch(e=>e);}}}else if(!actived.args||row!==actived.row||column!==actived.column){if(editOpts.trigger==='click'){handleChangeCell($xeTable,evnt,params);}else if(editOpts.trigger==='dblclick'){if(editOpts.mode==='row'&&actived.row===row){handleChangeCell($xeTable,evnt,params);}}}}}// 如果是双击编辑模式
|
|
8405
|
+
if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(actived.row&&actived.column){if(editOpts.mode==='row'){if(!$xeTable.eqRow(actived.row,row)){$xeTable.handleClearEdit(evnt);}}else if(editOpts.mode==='cell'){if(!$xeTable.eqRow(actived.row,row)||actived.column.id!==column.id){$xeTable.handleClearEdit(evnt);}}}}if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('cell-click',params,evnt);},/**
|
|
8406
|
+
* 列双击点击事件
|
|
8407
|
+
* 如果是双击模式,则激活为编辑状态
|
|
8408
|
+
*/triggerCellDblclickEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore,isDragResize}=reactData;if(isDragResize){return;}const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const cell=evnt.currentTarget;params=Object.assign({cell},params);if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(!actived.args||evnt.currentTarget!==actived.args.cell){if(editOpts.mode==='row'){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}else if(editOpts.mode==='cell'){$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);}}}$xeTable.dispatchEvent('cell-dblclick',params,evnt);},triggerFooterCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const cell=evnt.currentTarget;params=Object.assign({cell},params);if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('footer-cell-click',params,evnt);},triggerFooterCellDblclickEvent(evnt,params){const $xeTable=this;const cell=evnt.currentTarget;params=Object.assign({cell},params);$xeTable.dispatchEvent('footer-cell-dblclick',params,evnt);},handleColumnSortEvent(evnt,column){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if(mouseConfig&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){$xeTable.dispatchEvent('clear-sort',params,evnt);}$xeTable.dispatchEvent('sort-change',params,evnt);}},/**
|
|
8409
|
+
* 点击排序事件
|
|
8410
|
+
*/triggerSortEvent(evnt,column,order){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;const{multiple,allowClear}=sortOpts;const{field,sortable}=column;if(sortable||column.remoteSort){if(!order||column.order===order){if(allowClear){$xeTable.clearSort(multiple?column:null);}}else{$xeTable.sort({field,order});}$xeTable.handleColumnSortEvent(evnt,column);}},handleCellRuleUpdateStatus(type,cellParams,cellValue){const $xeTable=this;const reactData=$xeTable;const{validStore}=reactData;const{row,column}=cellParams;if($xeTable.hasCellRules){if($xeTable.hasCellRules(type,row,column)){const cell=$xeTable.getCellElement(row,column);if(cell){const customVal=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);return $xeTable.validCellRules(type,row,column,cellValue).then(()=>{if(customVal&&validStore.visible){setCellValue(row,column,cellValue);}$xeTable.clearValidate(row,column);}).catch(({rule})=>{if(customVal){setCellValue(row,column,cellValue);}$xeTable.showValidTooltip({rule,row,column,cell});});}}}return $xeTable.$nextTick();},/**
|
|
8411
|
+
* 表头单元格按下事件
|
|
8412
|
+
*/triggerHeaderCellMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&mouseConfig&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
8413
|
+
* 单元格按下事件
|
|
8414
|
+
*/triggerCellMousedownEvent(evnt,params){const $xeTable=this;const{column}=params;const{type,treeNode}=column;const isRadioType=type==='radio';const isCheckboxType=type==='checkbox';const isExpandType=type==='expand';const rowOpts=$xeTable.computeRowOpts;const rowDragOpts=$xeTable.computeRowDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=rowDragOpts;const cell=evnt.currentTarget;params.cell=cell;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerRadio=isRadioType&&getEventTargetNode(evnt,cell,'vxe-cell--radio').flag;const triggerCheckbox=isCheckboxType&&getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerTreeNode=treeNode&&getEventTargetNode(evnt,cell,'vxe-cell--tree-btn').flag;const triggerExpandNode=isExpandType&&getEventTargetNode(evnt,cell,'vxe-table--expanded').flag;let isColDragCell=false;if(rowOpts.drag){isColDragCell=trigger==='row'||column.dragSort&&trigger==='cell';}let triggerDrag=false;if(!(triggerInput||triggerRadio||triggerCheckbox||triggerTreeNode||triggerExpandNode)){if(isColDragCell&&(isCrossDrag||isPeerDrag||!params.level)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&$xeTable.handleCellMousedownEvent){$xeTable.handleCellMousedownEvent(evnt,params);}$xeTable.focus();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}},triggerCellMouseupEvent(){const $xeTable=this;clearDragStatus($xeTable);},/**
|
|
8415
|
+
* 行拖拽
|
|
8408
8416
|
*/handleRowDragDragstartEvent(evnt){if(evnt.dataTransfer){evnt.dataTransfer.setDragImage(getTpImg(),0,0);}},handleRowDragSwapEvent(evnt,isSyncRow,dragRow,prevDragRow,prevDragPos,prevDragToChild){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig,dragConfig}=props;const rowDragOpts=$xeTable.computeRowDragOpts;const{afterFullData,tableFullData,fullAllDataRowIdData}=internalData;const{animation,isPeerDrag,isCrossDrag,isSelfToChildDrag,dragEndMethod,dragToChildMethod}=rowDragOpts;const treeOpts=$xeTable.computeTreeOpts;const cellOpts=$xeTable.computeCellOpts;const rowOpts=$xeTable.computeRowOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{transform,rowField,mapChildrenField,parentField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const dEndMethod=dragEndMethod||(dragConfig?dragConfig.dragEndMethod:null);const dragOffsetIndex=prevDragPos==='bottom'?1:0;const el=$xeTable.$refs.refElem;const errRest={status:false};if(!(el&&prevDragRow&&dragRow)){return Promise.resolve(errRest);}// 判断是否有拖动
|
|
8409
8417
|
if(prevDragRow!==dragRow){const dragParams={oldRow:dragRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};const dragRowid=getRowid($xeTable,dragRow);const dragRowRest=fullAllDataRowIdData[dragRowid]||{};const _dragRowIndex=dragRowRest._index;let dragRowHeight=0;let dragOffsetTop=-1;if(animation){dragRowHeight=getCellRestHeight(dragRowRest,cellOpts,rowOpts,defaultRowHeight);const oldTrEl=el.querySelector(`.vxe-body--row[rowid="${dragRowid}"]`);if(oldTrEl){dragOffsetTop=oldTrEl.offsetTop;}}let oafIndex=-1;let nafIndex=-1;const oldRest=dragRowRest;const newRowid=getRowid($xeTable,prevDragRow);const newRest=fullAllDataRowIdData[newRowid];const oldAllMaps={};let isSelfToChildStatus=false;// 如果为树结构
|
|
8410
8418
|
if(treeConfig){if(transform){if(oldRest&&newRest){const{level:oldLevel}=oldRest;const{level:newLevel}=newRest;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragRow],item=>{oldAllMaps[getRowid($xeTable,item)]=item;},{children:mapChildrenField});if(oldLevel&&newLevel){// 子到子
|
|
@@ -8423,18 +8431,18 @@ const pafIndex=$xeTable.findRowIndexOf(afterFullData,prevDragRow);const ptfIndex
|
|
|
8423
8431
|
rsIndex=0;reIndex=_newRowIndex-_firstRowIndex;}else if(_dragRowIndex>_lastRowIndex){// 从下往上虚拟拖拽
|
|
8424
8432
|
const $newRowIndex=dragRowRest.$index;rsIndex=$newRowIndex+1;reIndex=tableData.length;offsetRate=-1;}else{if(_newRowIndex>_dragRowIndex){// 从上往下拖拽
|
|
8425
8433
|
rsIndex=_dragRowIndex-_firstRowIndex;reIndex=rsIndex+_newRowIndex-_dragRowIndex;}else{// 从下往上拖拽
|
|
8426
|
-
rsIndex=_newRowIndex-_firstRowIndex;reIndex=rsIndex+_dragRowIndex-_newRowIndex+1;offsetRate=-1;}}const dragRangeList=tableData.slice(rsIndex,reIndex);if(dragRangeList.length){const dtClss=[];dragRangeList.forEach(row=>{const rowid=getRowid($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));moveRowAnimateToTb(dtTrList,offsetRate*dragRowHeight);}}const drClss=[`.vxe-body--row[rowid="${dragRowid}"]`];if($xeGantt){drClss.push(`.vxe-gantt-view--body-row[rowid="${dragRowid}"]`,`.vxe-gantt-view--chart-row[rowid="${dragRowid}"]`);}const newDtTrList=wrapperEl.querySelectorAll(drClss.join(','));const newTrEl=newDtTrList[0];if(dragOffsetTop>-1&&newTrEl){moveRowAnimateToTb(newDtTrList,dragOffsetTop-newTrEl.offsetTop);}}updateRowOffsetTop($xeTable);updateRowExpandStyle($xeTable);$xeTable.updateCellAreas();$xeTable.recalculate();}).then(()=>{return{status:true};});}).catch(()=>{return errRest;}).then(rest=>{handleRowDragEndClearStatus($xeTable);return rest;});}handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);},handleCrossTableRowDragCancelEvent(){const $xeTable=this;handleRowDragEndClearStatus($xeTable);},/**
|
|
8427
|
-
* 处理跨表拖拽完成
|
|
8428
|
-
*/handleCrossTableRowDragFinishEvent(evnt){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);const{tableData}=reactData;const{fullAllDataRowIdData}=internalData;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const rowDragOpts=$xeTable.computeRowDragOpts;const{animation,isCrossTableDrag}=rowDragOpts;const treeOpts=$xeTable.computeTreeOpts;const{mapChildrenField}=treeOpts;const el=$xeTable.$refs.refElem;if(isCrossTableDrag&&crossTableDragRowObj&&crossTableDragRowInfo){const{row:dragRow}=crossTableDragRowInfo;if(dragRow){const dragRowid=getRowid($xeTable,dragRow);const dragRowRest=fullAllDataRowIdData[dragRowid];let dragRowHeight=0;let rsIndex=-1;if(dragRowRest){if(animation){dragRowHeight=getCellRestHeight(dragRowRest,cellOpts,rowOpts,defaultRowHeight);}rsIndex=dragRowRest.$index;}const dragRangeList=rsIndex>-1&&rsIndex<tableData.length-1?tableData.slice(rsIndex+1):[];const dragList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray([dragRow],{updated:true,children:mapChildrenField});$xeTable.remove(dragList).then(()=>{if(animation&&dragRowHeight&&dragRangeList.length){const $xeGanttView=internalData.xeGanttView;let wrapperEl=el;if($xeGantt&&$xeGanttView){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}const dtClss=[];dragRangeList.forEach(row=>{const rowid=getRowid($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));moveRowAnimateToTb(dtTrList,dragRowHeight);}});$xeTable.dispatchEvent('row-remove-dragend',{row:dragRow},evnt);handleRowDragEndClearStatus($xeTable);}}},/**
|
|
8429
|
-
* 处理跨表拖至新的空表
|
|
8430
|
-
*/handleCrossTableRowDragoverEmptyEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableData}=reactData;const rowDragOpts=$xeTable.computeRowDragOpts;const{isCrossTableDrag}=rowDragOpts;if(isCrossTableDrag&&crossTableDragRowObj&&!tableData.length){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable;if($oldTable.xID!==$xeTable.xID){if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}evnt.preventDefault();$oldTable.hideCrossTableRowDropClearStatus();crossTableDragRowObj.$newTable=$xeTable;internalData.prevDragRow=null;reactData.dragTipText=oldTableReactData.dragTipText;showDropTip($xeTable,evnt,evnt.currentTarget,null,true,'');}}}},/**
|
|
8431
|
-
* 处理跨表拖插入
|
|
8434
|
+
rsIndex=_newRowIndex-_firstRowIndex;reIndex=rsIndex+_dragRowIndex-_newRowIndex+1;offsetRate=-1;}}const dragRangeList=tableData.slice(rsIndex,reIndex);if(dragRangeList.length){const dtClss=[];dragRangeList.forEach(row=>{const rowid=getRowid($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));moveRowAnimateToTb(dtTrList,offsetRate*dragRowHeight);}}const drClss=[`.vxe-body--row[rowid="${dragRowid}"]`];if($xeGantt){drClss.push(`.vxe-gantt-view--body-row[rowid="${dragRowid}"]`,`.vxe-gantt-view--chart-row[rowid="${dragRowid}"]`);}const newDtTrList=wrapperEl.querySelectorAll(drClss.join(','));const newTrEl=newDtTrList[0];if(dragOffsetTop>-1&&newTrEl){moveRowAnimateToTb(newDtTrList,dragOffsetTop-newTrEl.offsetTop);}}updateRowOffsetTop($xeTable);updateRowExpandStyle($xeTable);$xeTable.updateCellAreas();$xeTable.recalculate();}).then(()=>{return{status:true};});}).catch(()=>{return errRest;}).then(rest=>{handleRowDragEndClearStatus($xeTable);return rest;});}handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);},handleCrossTableRowDragCancelEvent(){const $xeTable=this;handleRowDragEndClearStatus($xeTable);},/**
|
|
8435
|
+
* 处理跨表拖拽完成
|
|
8436
|
+
*/handleCrossTableRowDragFinishEvent(evnt){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);const{tableData}=reactData;const{fullAllDataRowIdData}=internalData;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const rowDragOpts=$xeTable.computeRowDragOpts;const{animation,isCrossTableDrag}=rowDragOpts;const treeOpts=$xeTable.computeTreeOpts;const{mapChildrenField}=treeOpts;const el=$xeTable.$refs.refElem;if(isCrossTableDrag&&crossTableDragRowObj&&crossTableDragRowInfo){const{row:dragRow}=crossTableDragRowInfo;if(dragRow){const dragRowid=getRowid($xeTable,dragRow);const dragRowRest=fullAllDataRowIdData[dragRowid];let dragRowHeight=0;let rsIndex=-1;if(dragRowRest){if(animation){dragRowHeight=getCellRestHeight(dragRowRest,cellOpts,rowOpts,defaultRowHeight);}rsIndex=dragRowRest.$index;}const dragRangeList=rsIndex>-1&&rsIndex<tableData.length-1?tableData.slice(rsIndex+1):[];const dragList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray([dragRow],{updated:true,children:mapChildrenField});$xeTable.remove(dragList).then(()=>{if(animation&&dragRowHeight&&dragRangeList.length){const $xeGanttView=internalData.xeGanttView;let wrapperEl=el;if($xeGantt&&$xeGanttView){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}const dtClss=[];dragRangeList.forEach(row=>{const rowid=getRowid($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));moveRowAnimateToTb(dtTrList,dragRowHeight);}});$xeTable.dispatchEvent('row-remove-dragend',{row:dragRow},evnt);handleRowDragEndClearStatus($xeTable);}}},/**
|
|
8437
|
+
* 处理跨表拖至新的空表
|
|
8438
|
+
*/handleCrossTableRowDragoverEmptyEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableData}=reactData;const rowDragOpts=$xeTable.computeRowDragOpts;const{isCrossTableDrag}=rowDragOpts;if(isCrossTableDrag&&crossTableDragRowObj&&!tableData.length){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable;if($oldTable.xID!==$xeTable.xID){if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}evnt.preventDefault();$oldTable.hideCrossTableRowDropClearStatus();crossTableDragRowObj.$newTable=$xeTable;internalData.prevDragRow=null;reactData.dragTipText=oldTableReactData.dragTipText;showDropTip($xeTable,evnt,evnt.currentTarget,null,true,'');}}}},/**
|
|
8439
|
+
* 处理跨表拖插入
|
|
8432
8440
|
*/handleCrossTableRowDragInsertEvent(evnt){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);const{treeConfig}=props;const{prevDragRow,prevDragPos,prevDragToChild}=internalData;const rowDragOpts=$xeTable.computeRowDragOpts;const{animation,isSelfToChildDrag,isCrossTableDrag,dragEndMethod,dragToChildMethod}=rowDragOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const treeOpts=$xeTable.computeTreeOpts;const{parentField,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;// 跨表拖拽
|
|
8433
8441
|
if(isCrossTableDrag&&crossTableDragRowObj&&crossTableDragRowInfo){const{row:oldRow}=crossTableDragRowInfo;const{$oldTable}=crossTableDragRowObj;const el=$xeTable.$refs.refElem;if($oldTable&&oldRow){const dragRow=oldRow;let dragOffsetIndex=-1;if(prevDragRow){dragOffsetIndex=prevDragPos==='bottom'?1:0;}const dragParams={oldRow:dragRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;const errRest={status:false};Promise.resolve(dragEndMethod?dragEndMethod(dragParams):true).then(status=>{if(!status){if($oldTable){if($oldTable.xID!==$xeTable.xID){$oldTable.handleCrossTableRowDragCancelEvent(evnt);}}handleRowDragEndClearStatus($xeTable);return errRest;}let insertRest=Promise.resolve();if(treeConfig){const dragList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray([dragRow],{updated:true,children:mapChildrenField});$oldTable.handleCrossTableRowDragFinishEvent(evnt);if(prevDragRow){dragRow[parentField]=prevDragRow[parentField];}else{dragRow[parentField]=null;}dragList.forEach(row=>{row[childrenField]=undefined;row[mapChildrenField]=undefined;});if(prevDragRow){if(prevDragPos==='bottom'){insertRest=$xeTable.insertNextAt(dragList,prevDragRow);}else{insertRest=$xeTable.insertAt(dragList,prevDragRow);}}else{insertRest=$xeTable.insert(dragList);}}else{$oldTable.handleCrossTableRowDragFinishEvent(evnt);if(prevDragRow){if(prevDragPos==='bottom'){insertRest=$xeTable.insertNextAt(dragRow,prevDragRow);}else{insertRest=$xeTable.insertAt(dragRow,prevDragRow);}}else{insertRest=$xeTable.insert(dragRow);}}$xeTable.dispatchEvent('row-insert-dragend',{oldRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:isDragToChildFlag,offsetIndex:dragOffsetIndex},evnt);clearRowDragData($xeTable);insertRest.then(()=>{const{tableData}=reactData;const{fullAllDataRowIdData}=internalData;const oldRowid=getRowid($xeTable,dragRow);const oldRowRest=fullAllDataRowIdData[oldRowid];let dragRowHeight=0;let rsIndex=-1;if(oldRowRest){if(animation){dragRowHeight=getCellRestHeight(oldRowRest,cellOpts,rowOpts,defaultRowHeight);}rsIndex=oldRowRest.$index;}const dragRangeList=rsIndex>-1?tableData.slice(rsIndex):[];if(animation&&dragRowHeight&&dragRangeList.length){const $xeGanttView=internalData.xeGanttView;let wrapperEl=el;if($xeGantt&&$xeGanttView){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}const dtClss=[];dragRangeList.forEach(row=>{const rowid=getRowid($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));moveRowAnimateToTb(dtTrList,-dragRowHeight);}});});}}},hideCrossTableRowDropClearStatus(){const $xeTable=this;hideDropTip($xeTable);},handleRowDragDragendEvent(evnt){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData,prevDragToChild}=internalData;const{dragRow}=reactData;const treeOpts=$xeTable.computeTreeOpts;const{lazy}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const{prevDragRow,prevDragPos}=internalData;const rowDragOpts=$xeTable.computeRowDragOpts;const{isCrossTableDrag,isCrossDrag}=rowDragOpts;// 跨表拖拽
|
|
8434
8442
|
if(isCrossTableDrag&&crossTableDragRowObj){const{$newTable}=crossTableDragRowObj;if($newTable&&$newTable.xID!==$xeTable.xID){if(!treeConfig||isCrossDrag){$newTable.handleCrossTableRowDragInsertEvent(evnt);}return;}}if(treeConfig&&lazy&&prevDragToChild){// 懒加载
|
|
8435
8443
|
const newRowid=getRowid($xeTable,prevDragRow);const rowRest=fullAllDataRowIdData[newRowid];if(prevDragRow[hasChildField]){if(rowRest&&rowRest.treeLoaded){$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}}else{$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}}else{$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}},handleRowDragDragoverEvent(evnt){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;const{dragRow}=reactData;const treeOpts=$xeTable.computeTreeOpts;const{lazy,transform,parentField}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const rowDragOpts=$xeTable.computeRowDragOpts;const{isPeerDrag,isCrossDrag,isToChildDrag,isCrossTableDrag}=rowDragOpts;if(!dragRow&&!(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj)){evnt.preventDefault();return;}const isControlKey=hasControlKey(evnt);const trEl=evnt.currentTarget;const rowid=trEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){evnt.preventDefault();const row=rowRest.row;const offsetY=evnt.clientY-trEl.getBoundingClientRect().y;const dragPos=offsetY<trEl.clientHeight/2?'top':'bottom';internalData.prevDragToChild=!!(treeConfig&&transform&&isCrossDrag&&isToChildDrag&&isControlKey);internalData.prevDragRow=row;internalData.prevDragPos=dragPos;// 跨表拖拽
|
|
8436
|
-
if(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable;if($oldTable.xID===$xeTable.xID){if($newTable){$newTable.hideCrossTableRowDropClearStatus();}reactData.isCrossDragRow=false;oldTableReactData.isCrossDragRow=false;crossTableDragRowObj.$newTable=null;}else if(!treeConfig||isCrossDrag){if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}$oldTable.hideCrossTableRowDropClearStatus();oldTableReactData.isCrossDragRow=true;reactData.dragTipText=oldTableReactData.dragTipText;crossTableDragRowObj.$newTable=$xeTable;showDropTip($xeTable,evnt,trEl,null,true,dragPos);return;}}}if($xeTable.eqRow(dragRow,row)||isControlKey&&treeConfig&&lazy&&row[hasChildField]&&rowRest&&!rowRest.treeLoaded||!isCrossDrag&&treeConfig&&transform&&(isPeerDrag?dragRow[parentField]!==row[parentField]:rowRest.level)){showDropTip($xeTable,evnt,trEl,null,false,dragPos);return;}showDropTip($xeTable,evnt,trEl,null,true,dragPos);$xeTable.dispatchEvent('row-dragover',{oldRow:dragRow,targetRow:row,dragPos},evnt);}},handleCellDragMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);evnt.stopPropagation();const{dragConfig}=props;const rowDragOpts=$xeTable.computeRowDragOpts;const{isCrossTableDrag,trigger,dragStartMethod}=rowDragOpts;const{row}=params;const dragEl=evnt.currentTarget;const tdEl=trigger==='cell'||trigger==='row'?dragEl:dragEl.parentElement?.parentElement;const trEl=tdEl.parentElement;const dStartMethod=dragStartMethod||(dragConfig?dragConfig.dragStartMethod:null);clearRowDropOrigin($xeTable);if(dStartMethod&&!dStartMethod(params)){trEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;clearCrossTableDragStatus($xeTable);hideDropTip($xeTable);return;}if(isCrossTableDrag){crossTableDragRowInfo.row=row;crossTableDragRowObj={$oldTable:$xeTable,$newTable:null};}reactData.dragRow=row;reactData.isCrossDragRow=false;reactData.dragCol=null;trEl.draggable=true;updateRowDropOrigin($xeTable,row);updateRowDropTipContent($xeTable,tdEl);$xeTable.dispatchEvent('row-dragstart',params,evnt);},handleCellDragMouseupEvent(){const $xeTable=this;clearDragStatus($xeTable);},/**
|
|
8437
|
-
* 列拖拽
|
|
8444
|
+
if(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable;if($oldTable.xID===$xeTable.xID){if($newTable){$newTable.hideCrossTableRowDropClearStatus();}reactData.isCrossDragRow=false;oldTableReactData.isCrossDragRow=false;crossTableDragRowObj.$newTable=null;}else if(!treeConfig||isCrossDrag){if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}$oldTable.hideCrossTableRowDropClearStatus();oldTableReactData.isCrossDragRow=true;reactData.dragTipText=oldTableReactData.dragTipText;crossTableDragRowObj.$newTable=$xeTable;showDropTip($xeTable,evnt,trEl,null,true,dragPos);return;}}}if($xeTable.eqRow(dragRow,row)||isControlKey&&treeConfig&&lazy&&row[hasChildField]&&rowRest&&!rowRest.treeLoaded||!isCrossDrag&&treeConfig&&transform&&(isPeerDrag?dragRow[parentField]!==row[parentField]:rowRest.level)){showDropTip($xeTable,evnt,trEl,null,false,dragPos);return;}showDropTip($xeTable,evnt,trEl,null,true,dragPos);$xeTable.dispatchEvent('row-dragover',{oldRow:dragRow,targetRow:row,dragPos},evnt);}},handleCellDragMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);evnt.stopPropagation();const{dragConfig}=props;const rowDragOpts=$xeTable.computeRowDragOpts;const{isCrossTableDrag,trigger,dragStartMethod}=rowDragOpts;const{row}=params;const dragEl=evnt.currentTarget;const tdEl=trigger==='cell'||trigger==='row'?dragEl:dragEl.parentElement?.parentElement;const trEl=tdEl.parentElement;const dStartMethod=dragStartMethod||(dragConfig?dragConfig.dragStartMethod:null);clearRowDropOrigin($xeTable);if(dStartMethod&&!dStartMethod(params)){trEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;clearCrossTableDragStatus($xeTable);hideDropTip($xeTable);return;}if(isCrossTableDrag){crossTableDragRowInfo.row=row;crossTableDragRowObj={$oldTable:$xeTable,$newTable:null};}reactData.dragRow=row;reactData.isCrossDragRow=false;reactData.dragCol=null;trEl.draggable=true;updateRowDropOrigin($xeTable,row);updateRowDropTipContent($xeTable,tdEl);$xeTable.dispatchEvent('row-dragstart',params,evnt);},handleCellDragMouseupEvent(){const $xeTable=this;clearDragStatus($xeTable);},/**
|
|
8445
|
+
* 列拖拽
|
|
8438
8446
|
*/handleHeaderCellDragDragstartEvent(evnt){if(evnt.dataTransfer){evnt.dataTransfer.setDragImage(getTpImg(),0,0);}},handleColDragSwapColumn(){const $xeTable=this;handleUpdateColumn($xeTable);return parseColumns($xeTable,false).then(()=>{$xeTable.updateCellAreas();$xeTable.saveCustomStore('update:sort');});},handleColDragSwapEvent(evnt,isSyncColumn,dragCol,prevDragCol,prevDragPos,prevDragToChild){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{mouseConfig}=props;const columnDragOpts=$xeTable.computeColumnDragOpts;const{animation,isPeerDrag,isCrossDrag,isSelfToChildDrag,isToChildDrag,dragEndMethod,dragToChildMethod}=columnDragOpts;const{collectColumn,fullColumnIdData}=internalData;const el=$xeTable.$refs.refElem;const dragOffsetIndex=prevDragPos==='right'?1:0;const errRest={status:false};if(!(el&&prevDragCol&&dragCol)){return Promise.resolve(errRest);}// 判断是否有拖动
|
|
8439
8447
|
if(prevDragCol!==dragCol){const dragColumn=dragCol;const newColumn=prevDragCol;const dragParams={oldColumn:dragColumn,newColumn,dragColumn,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};let dragTargetColumn=null;const dragAllTargetCols=[];let dragColWidth=0;if(animation){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragColumn],column=>{if(!dragTargetColumn&&(!column.children||!column.children.length)){dragTargetColumn=column;dragColWidth+=column.renderWidth;}dragAllTargetCols.push(column);});}if(!dragTargetColumn){dragTargetColumn=dragColumn;}const dragColRest=fullColumnIdData[dragTargetColumn.id]||{};const _dragColIndex=dragColRest._index;let dragOffsetLeft=-1;if(animation){const oldTrEl=el.querySelector(`.vxe-table--column[colid="${dragTargetColumn.id}"]`);if(oldTrEl){dragOffsetLeft=oldTrEl.offsetLeft;}}let oafIndex=-1;let nafIndex=-1;const oldAllMaps={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragColumn],column=>{oldAllMaps[column.id]=column;});let isSelfToChildStatus=false;if(dragColumn.parentId&&newColumn.parentId){// 子到子
|
|
8440
8448
|
if(isPeerDrag&&!isCrossDrag){if(dragColumn.parentId!==newColumn.parentId){// 非同级
|
|
@@ -8449,85 +8457,86 @@ const $newRowIndex=dragColRest.$index;csIndex=$newRowIndex+1;ceIndex=tableColumn
|
|
|
8449
8457
|
csIndex=_dragColIndex-_firstColIndex;ceIndex=csIndex+_newColIndex-_dragColIndex;}else{// 从右往左拖拽
|
|
8450
8458
|
csIndex=_newColIndex-_firstColIndex+1;ceIndex=csIndex+_dragColIndex-_newColIndex;offsetRate=-1;}}const dragRangeList=[];const dragRangeMaps={};for(let i=csIndex;i<ceIndex;i++){const column=tableColumn[i];if(!dragRangeMaps[column.id]&&!dragNewColMaps[column.id]){dragRangeMaps[column.id]=column;dragRangeList.push(column);}}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([newColumn],column=>{if(!dragRangeMaps[column.id]){dragRangeMaps[column.id]=column;dragRangeList.push(column);}});if(dragRangeList.length){const dtTrList=el.querySelectorAll(dragRangeList.map(column=>`.vxe-table--column[colid="${column.id}"]`).join(','));moveColAnimateToLr(dtTrList,offsetRate*dragColWidth);}}const newTrList=el.querySelectorAll(dragAllTargetCols.map(column=>`.vxe-table--column[colid="${column.id}"]`).join(','));const newTdEl=newTrList[0];if(dragOffsetLeft>-1&&newTdEl){moveColAnimateToLr(newTrList,dragOffsetLeft-newTdEl.offsetLeft);}}}updateColumnOffsetLeft($xeTable);loadScrollXData($xeTable);$xeTable.updateCellAreas();return{status:true};});}).catch(()=>{return errRest;}).then(rest=>{handleColDragEndClearStatus($xeTable);return rest;});}handleColDragEndClearStatus($xeTable);return Promise.resolve(errRest);},handleHeaderCellDragDragendEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{dragCol}=reactData;const{prevDragCol,prevDragPos,prevDragToChild}=internalData;$xeTable.handleColDragSwapEvent(evnt,true,dragCol,prevDragCol,prevDragPos,prevDragToChild);},handleHeaderCellDragDragoverEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{dragCol}=reactData;const columnDragOpts=$xeTable.computeColumnDragOpts;const{isToChildDrag,isPeerDrag,isCrossDrag}=columnDragOpts;if(!dragCol){evnt.preventDefault();return;}const isControlKey=hasControlKey(evnt);const thEl=evnt.currentTarget;const colid=thEl.getAttribute('colid');const column=$xeTable.getColumnById(colid);if(column){evnt.preventDefault();const{clientX}=evnt;const offsetX=clientX-thEl.getBoundingClientRect().x;const dragPos=offsetX<thEl.clientWidth/2?'left':'right';internalData.prevDragToChild=!!(isCrossDrag&&isToChildDrag&&isControlKey);internalData.prevDragCol=column;internalData.prevDragPos=dragPos;if(column.fixed||dragCol&&dragCol.id===column.id||!isCrossDrag&&(isPeerDrag?dragCol.parentId!==column.parentId:column.parentId)){showDropTip($xeTable,evnt,null,thEl,false,dragPos);return;}showDropTip($xeTable,evnt,null,thEl,true,dragPos);$xeTable.dispatchEvent('column-dragover',{oldColumn:dragCol,targetColumn:column,dragPos},evnt);// 边缘滚动
|
|
8451
8459
|
const el=$xeTable.$refs.refElem;if(!el){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const refTableBody=$xeTable.$refs.refTableBody;const tableBodyElem=refTableBody?refTableBody.$el:null;const scrollTargetEl=xHandleEl||tableBodyElem;if(scrollTargetEl){const wrapperRect=el.getBoundingClientRect();const tableWrapperWidth=el.clientWidth;const leftContainerElem=$xeTable.$refs.refLeftContainer;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=$xeTable.$refs.refRightContainer;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const srartX=wrapperRect.x+leftContainerWidth;const endX=wrapperRect.x+tableWrapperWidth-rightContainerWidth;const distSize=28;const startDistSize=clientX-srartX;const endDistSize=endX-clientX;if(startDistSize>0&&startDistSize<=distSize){const scrollRatio=Math.floor(tableWrapperWidth/(startDistSize>distSize/2?240:120));scrollTargetEl.scrollLeft-=scrollRatio*(distSize-startDistSize);}else if(endDistSize>0&&endDistSize<=distSize){const scrollRatio=Math.floor(tableWrapperWidth/(endDistSize>distSize/2?240:120));scrollTargetEl.scrollLeft+=scrollRatio*(distSize-endDistSize);}}}},handleHeaderCellDragMousedownEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;evnt.stopPropagation();const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,dragStartMethod}=columnDragOpts;const{column}=params;const dragEl=evnt.currentTarget;const thEl=trigger==='cell'?dragEl:dragEl.parentElement?.parentElement;clearColDropOrigin($xeTable);if(dragStartMethod&&!dragStartMethod(params)){thEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;hideDropTip($xeTable);clearCrossTableDragStatus($xeTable);return;}reactData.dragCol=column;reactData.dragRow=null;thEl.draggable=true;clearCrossTableDragStatus($xeTable);updateColDropOrigin($xeTable,column);updateColDropTipContent($xeTable,thEl);$xeTable.dispatchEvent('column-dragstart',params,evnt);},handleHeaderCellDragMouseupEvent(){const $xeTable=this;const reactData=$xeTable;clearColDropOrigin($xeTable);hideDropTip($xeTable);clearCrossTableDragStatus($xeTable);reactData.dragRow=null;reactData.dragCol=null;},setPendingRow(rows,status){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{handleGetRowId}=createHandleGetRowId($xeTable);const{pendingRowMaps}=internalData;if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}if(status){rows.forEach(row=>{const rowid=handleGetRowId(row);if(rowid&&!pendingRowMaps[rowid]){pendingRowMaps[rowid]=row;}});}else{rows.forEach(row=>{const rowid=handleGetRowId(row);if(rowid&&pendingRowMaps[rowid]){delete pendingRowMaps[rowid];}});}reactData.pendingRowFlag++;return $xeTable.$nextTick();},togglePendingRow(rows){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{handleGetRowId}=createHandleGetRowId($xeTable);const{pendingRowMaps}=internalData;if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=handleGetRowId(row);if(rowid){if(pendingRowMaps[rowid]){delete pendingRowMaps[rowid];}else{pendingRowMaps[rowid]=row;}}});reactData.pendingRowFlag++;return $xeTable.$nextTick();},hasPendingByRow(row){const $xeTable=this;return $xeTable.isPendingByRow(row);},isPendingByRow(row){const $xeTable=this;const reactData=$xeTable;const{pendingRowMaps}=reactData;const rowid=getRowid($xeTable,row);return!!pendingRowMaps[rowid];},getPendingRecords(){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData,pendingRowMaps}=internalData;const insertRecords=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(pendingRowMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){insertRecords.push(row);}});return insertRecords;},clearPendingRow(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.pendingRowMaps={};reactData.pendingRowFlag++;return $xeTable.$nextTick();},sort(sortConfs,sortOrder){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;const{multiple,remote,orders}=sortOpts;if(sortConfs){if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(sortConfs)){sortConfs=[{field:sortConfs,order:sortOrder}];}}if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortConfs)){sortConfs=[sortConfs];}if(sortConfs.length){let firstSortColumn;if(!multiple){clearAllSort($xeTable);}(multiple?sortConfs:[sortConfs[0]]).forEach((confs,index)=>{let{field,order}=confs;let column=field;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(field)){column=$xeTable.getColumnByField(field);}if(column&&(column.sortable||column.remoteSort)){if(!firstSortColumn){firstSortColumn=column;}if(orders&&orders.indexOf(order)===-1){order=getNextSortOrder($xeTable,column);}if(column.order!==order){column.order=order;}column.sortTime=Date.now()+index;}});// 如果是服务端排序,则跳过本地排序处理
|
|
8452
|
-
if(!remote||firstSortColumn&&firstSortColumn.remoteSort){$xeTable.handleTableData(true);}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);$xeTable.updateCellAreas();return updateStyle($xeTable);});}return $xeTable.$nextTick();},setSort(sortConfs,isUpdate){const $xeTable=this;return handleSortEvent($xeTable,null,sortConfs,isUpdate);},setSortByEvent(evnt,sortConfs){const $xeTable=this;return handleSortEvent($xeTable,evnt,sortConfs,true);},/**
|
|
8453
|
-
* 清空指定列的排序条件
|
|
8454
|
-
* 如果为空则清空所有列的排序条件
|
|
8455
|
-
* @param {String} column 列或字段名
|
|
8460
|
+
if(!remote||firstSortColumn&&firstSortColumn.remoteSort){$xeTable.handleTableData(true);}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);$xeTable.updateCellAreas();return updateStyle($xeTable);});}return $xeTable.$nextTick();},setSort(sortConfs,isUpdate){const $xeTable=this;return handleSortEvent($xeTable,null,sortConfs,isUpdate);},setSortByEvent(evnt,sortConfs){const $xeTable=this;return handleSortEvent($xeTable,evnt,sortConfs,true);},/**
|
|
8461
|
+
* 清空指定列的排序条件
|
|
8462
|
+
* 如果为空则清空所有列的排序条件
|
|
8463
|
+
* @param {String} column 列或字段名
|
|
8456
8464
|
*/clearSort(fieldOrColumn){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;if(fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){column.order=null;}}else{clearAllSort($xeTable);}if(!sortOpts.remote){$xeTable.handleTableData(true);}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);return updateStyle($xeTable);});},clearSortByEvent(evnt,fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const{tableFullColumn}=internalData;const sortOpts=$xeTable.computeSortOpts;const{multiple}=sortOpts;const sortCols=[];let column=null;if(evnt){if(fieldOrColumn){column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){column.order=null;}}else{tableFullColumn.forEach(column=>{if(column.order){column.order=null;sortCols.push(column);}});}if(!sortOpts.remote){$xeTable.handleTableData(true);}if(!multiple){column=sortCols[0];}if(column){$xeTable.handleColumnSortEvent(evnt,column);}if(multiple&&sortCols.length){const params={$table:$xeTable,$event:evnt,cols:sortCols,sortList:[]};$xeTable.dispatchEvent('clear-all-sort',params,evnt);}}return $xeTable.$nextTick().then(()=>{updateRowOffsetTop($xeTable);return updateStyle($xeTable);});},// 在 v3 中废弃
|
|
8457
|
-
getSortColumn(){methods_warnLog('vxe.error.delFunc',['getSortColumn','getSortColumns']);return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(this.tableFullColumn,column=>(column.sortable||column.remoteSort)&&column.order);},isSort(fieldOrColumn){if(fieldOrColumn){const column=handleFieldOrColumn(this,fieldOrColumn);return column&&column.sortable&&!!column.order;}return this.getSortColumns().length>0;},getSortColumns(){const{multiple,chronological}=this.sortOpts;const sortList=[];this.tableFullColumn.forEach(column=>{const{field,order}=column;if((column.sortable||column.remoteSort)&&order){sortList.push({column,field,property:field,order,sortTime:column.sortTime});}});if(multiple&&chronological&&sortList.length>1){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortList,'sortTime');}return sortList;},setFilterByEvent(evnt,fieldOrColumn,options){const $xeTable=this;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column&&column.filters){column.filters=toFilters(options||[],column.id);return $xeTable.handleColumnConfirmFilter(column,evnt);}return $xeTable.$nextTick();},/**
|
|
8458
|
-
* 关闭筛选
|
|
8459
|
-
* @param {Event} evnt 事件
|
|
8460
|
-
*/closeFilter(){const $xeTable=this;const reactData=$xeTable;const{filterStore}=reactData;const{column,visible}=filterStore;filterStore.isAllSelected=false;filterStore.isIndeterminate=false;filterStore.visible=false;if(visible){const field=column?column.field:null;$xeTable.dispatchEvent('filter-visible',{column,property:field,field,filterList:()=>$xeTable.getCheckedFilters(),visible:false},null);}return $xeTable.$nextTick();},/**
|
|
8461
|
-
* 判断指定列是否为筛选状态,如果为空则判断所有列
|
|
8462
|
-
* @param {String} fieldOrColumn 字段名
|
|
8465
|
+
getSortColumn(){methods_warnLog('vxe.error.delFunc',['getSortColumn','getSortColumns']);return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(this.tableFullColumn,column=>(column.sortable||column.remoteSort)&&column.order);},isSort(fieldOrColumn){if(fieldOrColumn){const column=handleFieldOrColumn(this,fieldOrColumn);return column&&column.sortable&&!!column.order;}return this.getSortColumns().length>0;},getSortColumns(){const{multiple,chronological}=this.sortOpts;const sortList=[];this.tableFullColumn.forEach(column=>{const{field,order}=column;if((column.sortable||column.remoteSort)&&order){sortList.push({column,field,property:field,order,sortTime:column.sortTime});}});if(multiple&&chronological&&sortList.length>1){return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortList,'sortTime');}return sortList;},setFilterByEvent(evnt,fieldOrColumn,options){const $xeTable=this;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column&&column.filters){column.filters=toFilters(options||[],column.id);return $xeTable.handleColumnConfirmFilter(column,evnt);}return $xeTable.$nextTick();},/**
|
|
8466
|
+
* 关闭筛选
|
|
8467
|
+
* @param {Event} evnt 事件
|
|
8468
|
+
*/closeFilter(){const $xeTable=this;const reactData=$xeTable;const{filterStore}=reactData;const{column,visible}=filterStore;filterStore.isAllSelected=false;filterStore.isIndeterminate=false;filterStore.visible=false;if(visible){const field=column?column.field:null;$xeTable.dispatchEvent('filter-visible',{column,property:field,field,filterList:()=>$xeTable.getCheckedFilters(),visible:false},null);}return $xeTable.$nextTick();},/**
|
|
8469
|
+
* 判断指定列是否为筛选状态,如果为空则判断所有列
|
|
8470
|
+
* @param {String} fieldOrColumn 字段名
|
|
8463
8471
|
*/isActiveFilterByColumn(fieldOrColumn){const column=handleFieldOrColumn(this,fieldOrColumn);if(column){return column.filters&&column.filters.some(option=>option.checked);}return this.getCheckedFilters().length>0;},// 已废弃
|
|
8464
|
-
isFilter(fieldOrColumn){return this.isActiveFilterByColumn(fieldOrColumn);},clearFilterByEvent(evnt,fieldOrColumn){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{filterStore}=reactData;const{tableFullColumn}=internalData;const filterOpts=$xeTable.computeFilterOpts;const{multiple}=filterOpts;const filterCols=[];let column=null;if(fieldOrColumn){column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){$xeTable.handleClearFilter(column);}}else{tableFullColumn.forEach(column=>{if(column.filters){filterCols.push(column);$xeTable.handleClearFilter(column);}});}if(!fieldOrColumn||column!==filterStore.column){Object.assign(filterStore,{isAllSelected:false,isIndeterminate:false,style:null,options:[],column:null,multiple:false
|
|
8465
|
-
|
|
8466
|
-
*
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
*
|
|
8472
|
+
isFilter(fieldOrColumn){return this.isActiveFilterByColumn(fieldOrColumn);},clearFilterByEvent(evnt,fieldOrColumn){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{filterStore}=reactData;const{tableFullColumn}=internalData;const filterOpts=$xeTable.computeFilterOpts;const{multiple}=filterOpts;const filterCols=[];let column=null;if(fieldOrColumn){column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){$xeTable.handleClearFilter(column);}}else{tableFullColumn.forEach(column=>{if(column.filters){filterCols.push(column);$xeTable.handleClearFilter(column);}});}if(!fieldOrColumn||column!==filterStore.column){Object.assign(filterStore,{isAllSelected:false,isIndeterminate:false,style:null,options:[],column:null,multiple:false,// 选项是覅多选
|
|
8473
|
+
visible:false});}if(!filterOpts.remote){$xeTable.updateData();}if(!multiple){column=filterCols[0];}if(column){const filterList=()=>$xeTable.getCheckedFilters();const values=[];const datas=[];column.filters.forEach(item=>{if(item.checked){values.push(item.value);datas.push(item.data);}});const params={$table:$xeTable,$event:evnt,column,field:column.field,property:column.field,values,datas,filters:filterList,filterList};$xeTable.dispatchEvent('filter-change',params,evnt);$xeTable.dispatchEvent('clear-filter',params,evnt);}if(multiple&&filterCols.length){const params={$table:$xeTable,$event:evnt,cols:filterCols,filterList:[]};$xeTable.dispatchEvent('clear-all-filter',params,evnt);}return $xeTable.$nextTick();},/**
|
|
8474
|
+
* 判断展开行是否懒加载完成
|
|
8475
|
+
* @param {Row} row 行对象
|
|
8476
|
+
*/isRowExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=this;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.expandLoaded;},clearRowExpandLoaded(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData,rowExpandLazyLoadedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{lazy}=expandOpts;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(lazy&&rowRest){rowRest.expandLoaded=false;delete rowExpandLazyLoadedMaps[rowid];}reactData.rowExpandedFlag++;return $xeTable.$nextTick();},/**
|
|
8477
|
+
* 重新懒加载展开行,并展开内容
|
|
8478
|
+
* @param {Row} row 行对象
|
|
8470
8479
|
*/reloadRowExpand(row){const $xeTable=this;const internalData=$xeTable;const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{lazy}=expandOpts;const rowid=getRowid(this,row);if(lazy&&!rowExpandLazyLoadedMaps[rowid]){$xeTable.clearRowExpandLoaded(row).then(()=>handleAsyncRowExpand($xeTable,row));}return $xeTable.$nextTick();},reloadExpandContent(row){methods_warnLog('vxe.error.delFunc',['reloadExpandContent','reloadRowExpand']);// 即将废弃
|
|
8471
|
-
return this.reloadRowExpand(row);},/**
|
|
8472
|
-
* 展开行事件
|
|
8473
|
-
*/triggerRowExpandEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{expandColumn}=reactData;const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{row}=params;const{lazy,trigger}=expandOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid($xeTable,row);if(!lazy||!rowExpandLazyLoadedMaps[rowid]){const expanded=!$xeTable.isRowExpandByRow(row);const columnIndex=expandColumn?$xeTable.getColumnIndex(expandColumn):-1;const $columnIndex=expandColumn?$xeTable.getVMColumnIndex(expandColumn):-1;$xeTable.setRowExpand(row,expanded);$xeTable.dispatchEvent('toggle-row-expand',{expanded,column:expandColumn,columnIndex,$columnIndex,row,rowIndex:$xeTable.getRowIndex(row),$rowIndex:$xeTable.getVMRowIndex(row)},evnt);}},/**
|
|
8474
|
-
* 切换展开行
|
|
8475
|
-
*/toggleRowExpand(row){return this.setRowExpand(row,!this.isRowExpandByRow(row));},/**
|
|
8476
|
-
* 设置所有行的展开与否
|
|
8477
|
-
* @param {Boolean} expanded 是否展开
|
|
8478
|
-
*/setAllRowExpand(expanded){const{treeConfig,treeOpts,tableFullData,tableFullTreeData}=this;const childrenField=treeOpts.children||treeOpts.childrenField;let expandedRows=[];if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,row=>{expandedRows.push(row);},{children:childrenField});}else{expandedRows=tableFullData;}return this.setRowExpand(expandedRows,expanded);},/**
|
|
8479
|
-
* 设置展开行,二个参数设置这一行展开与否
|
|
8480
|
-
* 支持单行
|
|
8481
|
-
* 支持多行
|
|
8482
|
-
* @param {Array/Row} rows 行数据
|
|
8483
|
-
* @param {Boolean} expanded 是否展开
|
|
8480
|
+
return this.reloadRowExpand(row);},/**
|
|
8481
|
+
* 展开行事件
|
|
8482
|
+
*/triggerRowExpandEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{expandColumn}=reactData;const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{row}=params;const{lazy,trigger}=expandOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid($xeTable,row);if(!lazy||!rowExpandLazyLoadedMaps[rowid]){const expanded=!$xeTable.isRowExpandByRow(row);const columnIndex=expandColumn?$xeTable.getColumnIndex(expandColumn):-1;const $columnIndex=expandColumn?$xeTable.getVMColumnIndex(expandColumn):-1;$xeTable.setRowExpand(row,expanded);$xeTable.dispatchEvent('toggle-row-expand',{expanded,column:expandColumn,columnIndex,$columnIndex,row,rowIndex:$xeTable.getRowIndex(row),$rowIndex:$xeTable.getVMRowIndex(row)},evnt);}},/**
|
|
8483
|
+
* 切换展开行
|
|
8484
|
+
*/toggleRowExpand(row){return this.setRowExpand(row,!this.isRowExpandByRow(row));},/**
|
|
8485
|
+
* 设置所有行的展开与否
|
|
8486
|
+
* @param {Boolean} expanded 是否展开
|
|
8487
|
+
*/setAllRowExpand(expanded){const{treeConfig,treeOpts,tableFullData,tableFullTreeData}=this;const childrenField=treeOpts.children||treeOpts.childrenField;let expandedRows=[];if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,row=>{expandedRows.push(row);},{children:childrenField});}else{expandedRows=tableFullData;}return this.setRowExpand(expandedRows,expanded);},/**
|
|
8488
|
+
* 设置展开行,二个参数设置这一行展开与否
|
|
8489
|
+
* 支持单行
|
|
8490
|
+
* 支持多行
|
|
8491
|
+
* @param {Array/Row} rows 行数据
|
|
8492
|
+
* @param {Boolean} expanded 是否展开
|
|
8484
8493
|
*/setRowExpand(rows,expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{expandColumn}=reactData;let{fullAllDataRowIdData,rowExpandedMaps,rowExpandLazyLoadedMaps}=internalData;const{handleGetRowId}=createHandleGetRowId($xeTable);const expandOpts=$xeTable.computeExpandOpts;const{reserve,lazy,accordion,toggleMethod}=expandOpts;const lazyRests=[];const columnIndex=expandColumn?$xeTable.getColumnIndex(expandColumn):-1;const $columnIndex=expandColumn?$xeTable.getVMColumnIndex(expandColumn):-1;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}if(accordion){// 只能同时展开一个
|
|
8485
|
-
rowExpandedMaps={};internalData.rowExpandedMaps=rowExpandedMaps;rows=rows.slice(rows.length-1,rows.length);}const validRows=toggleMethod?rows.filter(row=>toggleMethod({$table:$xeTable,expanded,column:expandColumn,columnIndex,$columnIndex,row,rowIndex:$xeTable.getRowIndex(row),$rowIndex:$xeTable.getVMRowIndex(row)})):rows;if(expanded){validRows.forEach(row=>{const rowid=handleGetRowId(row);if(!rowExpandedMaps[rowid]){const rowRest=fullAllDataRowIdData[rowid];const isLoad=lazy&&!rowRest.expandLoaded&&!rowExpandLazyLoadedMaps[rowid];if(isLoad){lazyRests.push(handleAsyncRowExpand($xeTable,row));}else{rowExpandedMaps[rowid]=row;}}});}else{validRows.forEach(item=>{const rowid=handleGetRowId(item);if(rowExpandedMaps[rowid]){delete rowExpandedMaps[rowid];}});}if(reserve){validRows.forEach(row=>handleRowExpandReserve($xeTable,row,expanded));}}reactData.rowExpandedFlag++;return Promise.all(lazyRests).then(()=>$xeTable.$nextTick()).then(()=>handleLazyRecalculate($xeTable,true,true,true)).then(()=>{updateRowOffsetTop($xeTable);updateRowExpandStyle($xeTable);handleRowExpandScroll($xeTable);return $xeTable.updateCellAreas();});},/**
|
|
8486
|
-
* 判断行是否为展开状态
|
|
8487
|
-
* @param {Row} row 行对象
|
|
8494
|
+
rowExpandedMaps={};internalData.rowExpandedMaps=rowExpandedMaps;rows=rows.slice(rows.length-1,rows.length);}const validRows=toggleMethod?rows.filter(row=>toggleMethod({$table:$xeTable,expanded,column:expandColumn,columnIndex,$columnIndex,row,rowIndex:$xeTable.getRowIndex(row),$rowIndex:$xeTable.getVMRowIndex(row)})):rows;if(expanded){validRows.forEach(row=>{const rowid=handleGetRowId(row);if(!rowExpandedMaps[rowid]){const rowRest=fullAllDataRowIdData[rowid];const isLoad=lazy&&!rowRest.expandLoaded&&!rowExpandLazyLoadedMaps[rowid];if(isLoad){lazyRests.push(handleAsyncRowExpand($xeTable,row));}else{rowExpandedMaps[rowid]=row;}}});}else{validRows.forEach(item=>{const rowid=handleGetRowId(item);if(rowExpandedMaps[rowid]){delete rowExpandedMaps[rowid];}});}if(reserve){validRows.forEach(row=>handleRowExpandReserve($xeTable,row,expanded));}}reactData.rowExpandedFlag++;return Promise.all(lazyRests).then(()=>$xeTable.$nextTick()).then(()=>handleLazyRecalculate($xeTable,true,true,true)).then(()=>{updateRowOffsetTop($xeTable);updateRowExpandStyle($xeTable);handleRowExpandScroll($xeTable);return $xeTable.updateCellAreas();});},/**
|
|
8495
|
+
* 判断行是否为展开状态
|
|
8496
|
+
* @param {Row} row 行对象
|
|
8488
8497
|
*/isRowExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{rowExpandedFlag}=reactData;const{rowExpandedMaps}=internalData;const rowid=getRowid(this,row);return!!rowExpandedFlag&&!!rowExpandedMaps[rowid];},isExpandByRow(row){methods_warnLog('vxe.error.delFunc',['isExpandByRow','isRowExpandByRow']);// 即将废弃
|
|
8489
|
-
return this.isRowExpandByRow(row);},/**
|
|
8490
|
-
* 手动清空展开行状态,数据会恢复成未展开的状态
|
|
8491
|
-
*/clearRowExpand(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullData,scrollYStore}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{reserve}=expandOpts;const expList=$xeTable.getRowExpandRecords();internalData.rowExpandedMaps={};if(reserve){tableFullData.forEach(row=>handleRowExpandReserve($xeTable,row,false));}reactData.rowExpandedFlag++;scrollYStore.startIndex=0;scrollYStore.endIndex=1;return $xeTable.$nextTick().then(()=>{if(expList.length){return handleLazyRecalculate($xeTable,true,true,true);}}).then(()=>{updateRowOffsetTop($xeTable);updateRowExpandStyle($xeTable);handleRowExpandScroll($xeTable);return $xeTable.updateCellAreas();});},clearRowExpandReserve(){this.rowExpandedReserveRowMap={};return this.$nextTick();},getRowExpandRecords(){const $xeTable=this;const internalData=$xeTable;const rest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(internalData.rowExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},setRowGroups(fieldOrColumns){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const aggregateOpts=$xeTable.computeAggregateOpts;const{maxGroupSize}=aggregateOpts;if(!(aggregateConfig||rowGroupConfig)){methods_errLog('vxe.error.reqProp',['aggregate-config']);return $xeTable.$nextTick();}const confList=fieldOrColumns?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumns)?fieldOrColumns:[fieldOrColumns]:[];if(maxGroupSize&&confList.length>maxGroupSize){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.table.maxGroupCol',[maxGroupSize])});}return $xeTable.$nextTick();}if(confList.length){handleUpdateRowGroup($xeTable,confList.map(fieldOrColumn=>{return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(fieldOrColumn)?fieldOrColumn:fieldOrColumn.field;}));return loadTableData($xeTable,internalData.tableSynchData,false,true);}return $xeTable.$nextTick();},getRowGroups(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{fullColumnFieldData}=internalData;if(aggregateConfig||rowGroupConfig){const{rowGroupList}=reactData;return rowGroupList.map(({field})=>{const colRet=fullColumnFieldData[field];if(colRet){return colRet.column;}return{field};});}return[];},getRowGroupFields(){const $xeTable=this;return $xeTable.getRowGroups().map(item=>item.field);},clearRowGroups(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;if(!(aggregateConfig||rowGroupConfig)){methods_errLog('vxe.error.reqProp',['aggregate-config']);return $xeTable.$nextTick();}handleUpdateRowGroup($xeTable,[]);return loadTableData($xeTable,internalData.tableSynchData,false,true);},isRowGroupRecord(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isRowGroupRecord','isAggregateRecord']);return $xeTable.isAggregateRecord(row);},isRowGroupExpandByRow(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isRowGroupExpandByRow','isAggregateExpandByRow']);return $xeTable.isAggregateExpandByRow(row);},isAggregateRecord(row){const $xeTable=this;const reactData=$xeTable;const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row.isAggregate;},getAggregateContentByRow(row){const $xeTable=this;const reactData=$xeTable;const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row&&row.isAggregate?row.groupContent:'';},getAggregateRowChildren(row){const $xeTable=this;const reactData=$xeTable;const aggregateOpts=$xeTable.computeAggregateOpts;const{childrenField,mapChildrenField}=aggregateOpts;const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row&&row.isAggregate&&childrenField&&mapChildrenField?row[mapChildrenField]||[]:[];},refreshAggregateCalcValues(){const $xeTable=this;updateGroupData($xeTable);return $xeTable.$nextTick();},isAggregateExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{rowGroupExpandedFlag}=reactData;const{rowGroupExpandedMaps}=internalData;return!!rowGroupExpandedFlag&&!!rowGroupExpandedMaps[getRowid($xeTable,row)];},setRowGroupExpand(rows,expanded){const $xeTable=this;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}return handleRowGroupVirtualExpand($xeTable,rows,expanded);}return $xeTable.$nextTick();},setRowGroupExpandByField(groupFields,expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{isRowGroupStatus}=reactData;const aggregateOpts=$xeTable.computeAggregateOpts;const{childrenField}=aggregateOpts;if(groupFields){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(groupFields)){groupFields=[groupFields];}if(isRowGroupStatus){const rows=[];const gfKeys={};groupFields.forEach(groupField=>{gfKeys[groupField]=true;});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterGroupFullData,row=>{if(row.isAggregate&&gfKeys[row.groupField]){rows.push(row);}},{children:childrenField});if(rows.length){return handleRowGroupVirtualExpand($xeTable,rows,expanded);}}}return $xeTable.$nextTick();},setAllRowGroupExpand(expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;const rgExpandedMaps={};if(expanded&&mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row[mapChildrenField]&&row[mapChildrenField].length){rgExpandedMaps[getRowid($xeTable,row)]=row;}},{children:mapChildrenField});}internalData.rowGroupExpandedMaps=rgExpandedMaps;handleVirtualTreeToList($xeTable);$xeTable.handleTableData();updateAfterDataIndex($xeTable);reactData.rowGroupExpandedFlag++;return handleLazyRecalculate($xeTable,true,true,true);},clearRowGroupExpand(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.rowGroupExpandedMaps={};handleVirtualTreeToList($xeTable);$xeTable.handleTableData();updateAfterDataIndex($xeTable);reactData.rowGroupExpandedFlag++;return handleLazyRecalculate($xeTable,true,true,true);},getTreeExpandRecords(){const $xeTable=this;const internalData=$xeTable;const rest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(internalData.treeExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},/**
|
|
8492
|
-
* 内部方法、获取树表格状态
|
|
8493
|
-
* @deprecated
|
|
8494
|
-
* @private
|
|
8495
|
-
*/getTreeStatus(){if(this.treeConfig){return{config:this.treeOpts,rowExpandeds:this.getTreeExpandRecords()};}return null;},/**
|
|
8496
|
-
* 判断树节点是否懒加载完成
|
|
8497
|
-
* @param {Row} row 行对象
|
|
8498
|
-
*/isTreeExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=this;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.treeLoaded;},clearTreeExpandLoaded(rows){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.treeLoaded=false;if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}}});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{rowRest.treeLoaded=false;});internalData.treeExpandedMaps={};}if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;return $xeTable.$nextTick();},/**
|
|
8499
|
-
* 重新懒加载树节点,并展开该节点
|
|
8500
|
-
* @param {Row} row 行对象
|
|
8498
|
+
return this.isRowExpandByRow(row);},/**
|
|
8499
|
+
* 手动清空展开行状态,数据会恢复成未展开的状态
|
|
8500
|
+
*/clearRowExpand(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullData,scrollYStore}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{reserve}=expandOpts;const expList=$xeTable.getRowExpandRecords();internalData.rowExpandedMaps={};if(reserve){tableFullData.forEach(row=>handleRowExpandReserve($xeTable,row,false));}reactData.rowExpandedFlag++;scrollYStore.startIndex=0;scrollYStore.endIndex=1;return $xeTable.$nextTick().then(()=>{if(expList.length){return handleLazyRecalculate($xeTable,true,true,true);}}).then(()=>{updateRowOffsetTop($xeTable);updateRowExpandStyle($xeTable);handleRowExpandScroll($xeTable);return $xeTable.updateCellAreas();});},clearRowExpandReserve(){this.rowExpandedReserveRowMap={};return this.$nextTick();},getRowExpandRecords(){const $xeTable=this;const internalData=$xeTable;const rest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(internalData.rowExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},setRowGroups(fieldOrColumns){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const aggregateOpts=$xeTable.computeAggregateOpts;const{maxGroupSize}=aggregateOpts;if(!(aggregateConfig||rowGroupConfig)){methods_errLog('vxe.error.reqProp',['aggregate-config']);return $xeTable.$nextTick();}const confList=fieldOrColumns?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumns)?fieldOrColumns:[fieldOrColumns]:[];if(maxGroupSize&&confList.length>maxGroupSize){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.table.maxGroupCol',[maxGroupSize])});}return $xeTable.$nextTick();}if(confList.length){handleUpdateRowGroup($xeTable,confList.map(fieldOrColumn=>{return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(fieldOrColumn)?fieldOrColumn:fieldOrColumn.field;}));return loadTableData($xeTable,internalData.tableSynchData,false,true);}return $xeTable.$nextTick();},getRowGroups(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{fullColumnFieldData}=internalData;if(aggregateConfig||rowGroupConfig){const{rowGroupList}=reactData;return rowGroupList.map(({field})=>{const colRet=fullColumnFieldData[field];if(colRet){return colRet.column;}return{field};});}return[];},getRowGroupFields(){const $xeTable=this;return $xeTable.getRowGroups().map(item=>item.field);},clearRowGroups(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;if(!(aggregateConfig||rowGroupConfig)){methods_errLog('vxe.error.reqProp',['aggregate-config']);return $xeTable.$nextTick();}handleUpdateRowGroup($xeTable,[]);return loadTableData($xeTable,internalData.tableSynchData,false,true);},isRowGroupRecord(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isRowGroupRecord','isAggregateRecord']);return $xeTable.isAggregateRecord(row);},isRowGroupExpandByRow(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isRowGroupExpandByRow','isAggregateExpandByRow']);return $xeTable.isAggregateExpandByRow(row);},isAggregateRecord(row){const $xeTable=this;const reactData=$xeTable;const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row.isAggregate;},getAggregateContentByRow(row){const $xeTable=this;const reactData=$xeTable;const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row&&row.isAggregate?row.groupContent:'';},getAggregateRowChildren(row){const $xeTable=this;const reactData=$xeTable;const aggregateOpts=$xeTable.computeAggregateOpts;const{childrenField,mapChildrenField}=aggregateOpts;const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row&&row.isAggregate&&childrenField&&mapChildrenField?row[mapChildrenField]||[]:[];},refreshAggregateCalcValues(){const $xeTable=this;updateGroupData($xeTable);return $xeTable.$nextTick();},isAggregateExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{rowGroupExpandedFlag}=reactData;const{rowGroupExpandedMaps}=internalData;return!!rowGroupExpandedFlag&&!!rowGroupExpandedMaps[getRowid($xeTable,row)];},setRowGroupExpand(rows,expanded){const $xeTable=this;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}return handleRowGroupVirtualExpand($xeTable,rows,expanded);}return $xeTable.$nextTick();},setRowGroupExpandByField(groupFields,expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{isRowGroupStatus}=reactData;const aggregateOpts=$xeTable.computeAggregateOpts;const{childrenField}=aggregateOpts;if(groupFields){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(groupFields)){groupFields=[groupFields];}if(isRowGroupStatus){const rows=[];const gfKeys={};groupFields.forEach(groupField=>{gfKeys[groupField]=true;});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterGroupFullData,row=>{if(row.isAggregate&&gfKeys[row.groupField]){rows.push(row);}},{children:childrenField});if(rows.length){return handleRowGroupVirtualExpand($xeTable,rows,expanded);}}}return $xeTable.$nextTick();},setAllRowGroupExpand(expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;const rgExpandedMaps={};if(expanded&&mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row[mapChildrenField]&&row[mapChildrenField].length){rgExpandedMaps[getRowid($xeTable,row)]=row;}},{children:mapChildrenField});}internalData.rowGroupExpandedMaps=rgExpandedMaps;handleVirtualTreeToList($xeTable);$xeTable.handleTableData();updateAfterDataIndex($xeTable);reactData.rowGroupExpandedFlag++;return handleLazyRecalculate($xeTable,true,true,true);},clearRowGroupExpand(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.rowGroupExpandedMaps={};handleVirtualTreeToList($xeTable);$xeTable.handleTableData();updateAfterDataIndex($xeTable);reactData.rowGroupExpandedFlag++;return handleLazyRecalculate($xeTable,true,true,true);},getTreeExpandRecords(){const $xeTable=this;const internalData=$xeTable;const rest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(internalData.treeExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},/**
|
|
8501
|
+
* 内部方法、获取树表格状态
|
|
8502
|
+
* @deprecated
|
|
8503
|
+
* @private
|
|
8504
|
+
*/getTreeStatus(){if(this.treeConfig){return{config:this.treeOpts,rowExpandeds:this.getTreeExpandRecords()};}return null;},/**
|
|
8505
|
+
* 判断树节点是否懒加载完成
|
|
8506
|
+
* @param {Row} row 行对象
|
|
8507
|
+
*/isTreeExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=this;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.treeLoaded;},clearTreeExpandLoaded(rows){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.treeLoaded=false;if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}}});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{rowRest.treeLoaded=false;});internalData.treeExpandedMaps={};}if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;return $xeTable.$nextTick();},/**
|
|
8508
|
+
* 重新懒加载树节点,并展开该节点
|
|
8509
|
+
* @param {Row} row 行对象
|
|
8501
8510
|
*/reloadTreeExpand(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{treeExpandLazyLoadedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,lazy}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const rowid=getRowid($xeTable,row);if(lazy&&row[hasChildField]&&!treeExpandLazyLoadedMaps[rowid]){return $xeTable.clearTreeExpandLoaded(row).then(()=>{return handleAsyncTreeExpandChilds($xeTable,row);}).then(()=>{if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;}).then(()=>{return $xeTable.recalculate();});}return $xeTable.$nextTick();},reloadTreeChilds(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['reloadTreeChilds','reloadTreeExpand']);// 即将废弃
|
|
8502
|
-
return $xeTable.reloadTreeExpand(row);},/**
|
|
8503
|
-
* 行分组事件
|
|
8504
|
-
*/triggerRowGroupExpandEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{row,column}=params;const{trigger}=aggregateOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid($xeTable,row);const expanded=!rowGroupExpandedMaps[rowid];const columnIndex=$xeTable.getColumnIndex(column);const $columnIndex=$xeTable.getVMColumnIndex(column);$xeTable.setRowGroupExpand(row,expanded);$xeTable.dispatchEvent('toggle-row-group-expand',{expanded,column,columnIndex,$columnIndex,row},evnt);},/**
|
|
8505
|
-
* 展开树节点事件
|
|
8506
|
-
*/triggerTreeExpandEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{treeExpandLazyLoadedMaps,treeEATime}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{row,column}=params;const{lazy,trigger,accordion}=treeOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid(this,row);if(!lazy||!treeExpandLazyLoadedMaps[rowid]){const expanded=!$xeTable.isTreeExpandByRow(row);const columnIndex=$xeTable.getColumnIndex(column);const $columnIndex=$xeTable.getVMColumnIndex(column);if(treeEATime){clearTimeout(treeEATime);}$xeTable.setTreeExpand(row,expanded).then(()=>{if(accordion){internalData.treeEATime=setTimeout(()=>{internalData.treeEATime=undefined;$xeTable.scrollToRow(row);},30);}});$xeTable.dispatchEvent('toggle-tree-expand',{expanded,column,columnIndex,$columnIndex,row},evnt);}},/**
|
|
8507
|
-
* 切换/展开树节点
|
|
8508
|
-
*/toggleTreeExpand(row){return this.setTreeExpand(row,!this.isTreeExpandByRow(row));},/**
|
|
8509
|
-
* 设置所有树节点的展开与否
|
|
8510
|
-
* @param {Boolean} expanded 是否展开
|
|
8511
|
-
*/setAllTreeExpand(expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullTreeData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,lazy}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const expandeds=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,row=>{const rowChildren=row[childrenField];if(lazy||rowChildren&&rowChildren.length){expandeds.push(row);}},{children:childrenField});return $xeTable.setTreeExpand(expandeds,expanded).then(()=>{if(transform){handleVirtualTreeToList($xeTable);reactData.treeExpandedFlag++;return $xeTable.recalculate();}});},/**
|
|
8512
|
-
* 设置展开树形节点,二个参数设置这一行展开与否
|
|
8513
|
-
* 支持单行
|
|
8514
|
-
* 支持多行
|
|
8515
|
-
* @param {Array/Row} rows 行数据
|
|
8516
|
-
* @param {Boolean} expanded 是否展开
|
|
8511
|
+
return $xeTable.reloadTreeExpand(row);},/**
|
|
8512
|
+
* 行分组事件
|
|
8513
|
+
*/triggerRowGroupExpandEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{row,column}=params;const{trigger}=aggregateOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid($xeTable,row);const expanded=!rowGroupExpandedMaps[rowid];const columnIndex=$xeTable.getColumnIndex(column);const $columnIndex=$xeTable.getVMColumnIndex(column);$xeTable.setRowGroupExpand(row,expanded);$xeTable.dispatchEvent('toggle-row-group-expand',{expanded,column,columnIndex,$columnIndex,row},evnt);},/**
|
|
8514
|
+
* 展开树节点事件
|
|
8515
|
+
*/triggerTreeExpandEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{treeExpandLazyLoadedMaps,treeEATime}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{row,column}=params;const{lazy,trigger,accordion}=treeOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid(this,row);if(!lazy||!treeExpandLazyLoadedMaps[rowid]){const expanded=!$xeTable.isTreeExpandByRow(row);const columnIndex=$xeTable.getColumnIndex(column);const $columnIndex=$xeTable.getVMColumnIndex(column);if(treeEATime){clearTimeout(treeEATime);}$xeTable.setTreeExpand(row,expanded).then(()=>{if(accordion){internalData.treeEATime=setTimeout(()=>{internalData.treeEATime=undefined;$xeTable.scrollToRow(row);},30);}});$xeTable.dispatchEvent('toggle-tree-expand',{expanded,column,columnIndex,$columnIndex,row},evnt);}},/**
|
|
8516
|
+
* 切换/展开树节点
|
|
8517
|
+
*/toggleTreeExpand(row){return this.setTreeExpand(row,!this.isTreeExpandByRow(row));},/**
|
|
8518
|
+
* 设置所有树节点的展开与否
|
|
8519
|
+
* @param {Boolean} expanded 是否展开
|
|
8520
|
+
*/setAllTreeExpand(expanded){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullTreeData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,lazy}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const expandeds=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,row=>{const rowChildren=row[childrenField];if(lazy||rowChildren&&rowChildren.length){expandeds.push(row);}},{children:childrenField});return $xeTable.setTreeExpand(expandeds,expanded).then(()=>{if(transform){handleVirtualTreeToList($xeTable);reactData.treeExpandedFlag++;return $xeTable.recalculate();}});},/**
|
|
8521
|
+
* 设置展开树形节点,二个参数设置这一行展开与否
|
|
8522
|
+
* 支持单行
|
|
8523
|
+
* 支持多行
|
|
8524
|
+
* @param {Array/Row} rows 行数据
|
|
8525
|
+
* @param {Boolean} expanded 是否展开
|
|
8517
8526
|
*/setTreeExpand(rows,expanded){const $xeTable=this;const{treeOpts}=this;const{transform}=treeOpts;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}if(rows.length){// 如果为虚拟树
|
|
8518
|
-
if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{return handleBaseTreeExpand($xeTable,rows,expanded);}}}return this.$nextTick();},/**
|
|
8519
|
-
* 判断行是否为树形节点展开状态
|
|
8520
|
-
* @param {Row} row 行对象
|
|
8521
|
-
*/isTreeExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{treeExpandedFlag}=reactData;const{treeExpandedMaps}=internalData;return!!treeExpandedFlag&&!!treeExpandedMaps[getRowid($xeTable,row)];},/**
|
|
8522
|
-
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
8523
|
-
*/clearTreeExpand(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullTreeData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{transform,reserve}=treeOpts;const expList=$xeTable.getTreeExpandRecords();internalData.treeExpandedMaps={};if(reserve){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,row=>handleTreeExpandReserve($xeTable,row,false),{children:childrenField});}return $xeTable.handleTableData().then(()=>{if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;}).then(()=>{updateTreeLineStyle($xeTable);if(expList.length){$xeTable.recalculate();}});},clearTreeExpandReserve(){this.treeExpandedReserveRowMap={};return this.$nextTick();},/**
|
|
8524
|
-
* 获取表格的滚动状态
|
|
8525
|
-
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
8526
|
-
* 获取表格的滚动数据
|
|
8527
|
-
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{lastScrollLeft,lastScrollTop}=internalData;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;if(!xHandleEl||!yHandleEl){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=yHandleEl.clientHeight;const bodyWidth=xHandleEl.clientWidth;const scrollHeight=yHandleEl.scrollHeight;const scrollWidth=xHandleEl.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params};updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
|
|
8528
|
-
* 横向 X 可视渲染事件处理
|
|
8529
|
-
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
8530
|
-
* 纵向 Y 可视渲染事件处理
|
|
8527
|
+
if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{return handleBaseTreeExpand($xeTable,rows,expanded);}}}return this.$nextTick();},/**
|
|
8528
|
+
* 判断行是否为树形节点展开状态
|
|
8529
|
+
* @param {Row} row 行对象
|
|
8530
|
+
*/isTreeExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{treeExpandedFlag}=reactData;const{treeExpandedMaps}=internalData;return!!treeExpandedFlag&&!!treeExpandedMaps[getRowid($xeTable,row)];},/**
|
|
8531
|
+
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
8532
|
+
*/clearTreeExpand(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullTreeData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{transform,reserve}=treeOpts;const expList=$xeTable.getTreeExpandRecords();internalData.treeExpandedMaps={};if(reserve){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData,row=>handleTreeExpandReserve($xeTable,row,false),{children:childrenField});}return $xeTable.handleTableData().then(()=>{if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;}).then(()=>{updateTreeLineStyle($xeTable);if(expList.length){$xeTable.recalculate();}});},clearTreeExpandReserve(){this.treeExpandedReserveRowMap={};return this.$nextTick();},/**
|
|
8533
|
+
* 获取表格的滚动状态
|
|
8534
|
+
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
8535
|
+
* 获取表格的滚动数据
|
|
8536
|
+
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{lastScrollLeft,lastScrollTop}=internalData;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;if(!xHandleEl||!yHandleEl){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=yHandleEl.clientHeight;const bodyWidth=xHandleEl.clientWidth;const scrollHeight=yHandleEl.scrollHeight;const scrollWidth=xHandleEl.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params};updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
|
|
8537
|
+
* 横向 X 可视渲染事件处理
|
|
8538
|
+
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
8539
|
+
* 纵向 Y 可视渲染事件处理
|
|
8531
8540
|
*/triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=yHandleEl.scrollTop;let scrollLeft=xHandleEl.scrollLeft;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}else if(fixedType==='right'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);}else{setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}setScrollTop(yHandleEl,scrollTop);setScrollTop(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}if(intoRunScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const $xeTable=this;const $xeParentTable=$xeTable.$xeParentTable;const tableProps=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}// 如果滚轮未移动或者触摸板未变化位置
|
|
8532
8541
|
if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=tableProps;const{scrollXLoad,scrollYLoad,overflowX,overflowY,expandColumn}=reactData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=$xeTable.computeRowOpts;const scrollbarXOpts=$xeTable.computeScrollbarXOpts;const scrollbarYOpts=$xeTable.computeScrollbarYOpts;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(internalData.lastSTime);const deltaTop=shiftKey?0:deltaY*wheelSpeed;const deltaLeft=(shiftKey?deltaX||deltaY:deltaX)*wheelSpeed;const currScrollTop=bodyScrollElem.scrollTop;const currScrollLeft=bodyScrollElem.scrollLeft;const scrollTop=Math.max(0,currScrollTop+deltaTop);const scrollLeft=Math.max(0,currScrollLeft+deltaLeft);const isRollX=overflowX&&scrollLeft!==lastScrollLeft;const isRollY=overflowY&&scrollTop!==lastScrollTop;if(isRollX){// 如果禁用滚动
|
|
8533
8542
|
if(scrollbarXOpts.visible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
|
|
@@ -8543,70 +8552,70 @@ updateScrollYSpace(){const $xeTable=this;const reactData=$xeTable;const internal
|
|
|
8543
8552
|
if(rHeight){sYHeight=(rowRest.oTop||0)+rHeight;// 是否展开行
|
|
8544
8553
|
if(expandColumn&&rowExpandedMaps[rowid]){sYHeight+=rowRest.expandHeight||expandOpts.height||0;}}}if(sYHeight>maxYHeight){isScrollYBig=true;}}else{sYHeight=bodyTableElem?bodyTableElem.clientHeight:0;}}}else{if(bodyTableElem){sYHeight=bodyTableElem.clientHeight;}}let clientHeight=0;if(bodyScrollElem){clientHeight=bodyScrollElem.clientHeight;}// 虚拟渲染
|
|
8545
8554
|
let ySpaceHeight=sYHeight;let scrollYTop=ySpaceTop;if(isScrollYBig){// 触底
|
|
8546
|
-
if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(methods_getConfig().scrollMarginStyle){if(leftBodyTableElem){leftBodyTableElem.style.marginTop=`${scrollYTop}px`;}if(bodyTableElem){bodyTableElem.style.marginTop=`${scrollYTop}px`;}if(rightbodyTableElem){rightbodyTableElem.style.marginTop=`${scrollYTop}px`;}}else{if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=getRefElem(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=$xeTable.$refs.refScrollYSpaceElem;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=$xeTable.$refs.refRowExpandYSpaceElem;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=isScrollYBig?sYHeight:ySpaceHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar($xeTable);if(isScrollYBig&&mouseOpts.area){methods_errLog('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSYSpace){$xeGanttView.handleUpdateSYSpace();}return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},updateScrollYStatus(fullData){const $xeTable=this;return updateScrollYStatus($xeTable,fullData);},/**
|
|
8547
|
-
* 如果有滚动条,则滚动到对应的位置
|
|
8548
|
-
*/scrollTo(scrollLeft,scrollTop){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;if(scrollLeft){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollLeft)){scrollTop=scrollLeft.top;scrollLeft=scrollLeft.left;}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollLeft)){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(reactData.scrollXLoad){loadScrollXData($xeTable);}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollTop)){setScrollTop(yHandleEl,scrollTop);setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);if(reactData.scrollYLoad){loadScrollYData($xeTable);}}return new Promise(resolve=>{setTimeout(()=>{$xeTable.$nextTick(()=>{internalData.intoRunScroll=false;resolve();});},reactData.scrollXLoad||reactData.scrollYLoad?30:0);});},/**
|
|
8549
|
-
* 如果有滚动条,则滚动到对应的行
|
|
8555
|
+
if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(methods_getConfig().scrollMarginStyle){if(leftBodyTableElem){leftBodyTableElem.style.marginTop=`${scrollYTop}px`;}if(bodyTableElem){bodyTableElem.style.marginTop=`${scrollYTop}px`;}if(rightbodyTableElem){rightbodyTableElem.style.marginTop=`${scrollYTop}px`;}}else{if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=getRefElem(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=$xeTable.$refs.refScrollYSpaceElem;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=$xeTable.$refs.refRowExpandYSpaceElem;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=isScrollYBig?sYHeight:ySpaceHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar($xeTable);if(isScrollYBig&&mouseOpts.area){methods_errLog('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSYSpace){$xeGanttView.handleUpdateSYSpace();}return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},updateScrollYStatus(fullData){const $xeTable=this;return updateScrollYStatus($xeTable,fullData);},/**
|
|
8556
|
+
* 如果有滚动条,则滚动到对应的位置
|
|
8557
|
+
*/scrollTo(scrollLeft,scrollTop){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;if(scrollLeft){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollLeft)){scrollTop=scrollLeft.top;scrollLeft=scrollLeft.left;}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollLeft)){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(reactData.scrollXLoad){loadScrollXData($xeTable);}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollTop)){setScrollTop(yHandleEl,scrollTop);setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);if(reactData.scrollYLoad){loadScrollYData($xeTable);}}return new Promise(resolve=>{setTimeout(()=>{$xeTable.$nextTick(()=>{internalData.intoRunScroll=false;resolve();});},reactData.scrollXLoad||reactData.scrollYLoad?30:0);});},/**
|
|
8558
|
+
* 如果有滚动条,则滚动到对应的行
|
|
8550
8559
|
*/scrollToRow(rowOrRowid,fieldOrColumn,options){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData,_sToTime}=internalData;const rest=[];let row;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrRowid)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrRowid)){const rowid=rowOrRowid;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){row=rowRest.row;}}else{row=rowOrRowid;}if(row){if(props.treeConfig){rest.push($xeTable.scrollToTreeRow(row));}else{rest.push(rowToVisible($xeTable,row));}}if(fieldOrColumn){rest.push(handleScrollToRowColumn($xeTable,fieldOrColumn,row,options));}if(_sToTime){clearTimeout(_sToTime);}return Promise.all(rest).then(()=>{if(row){if(!isAllOverflow&&(scrollYLoad||scrollXLoad)){calcCellHeight($xeTable);calcCellWidth($xeTable);// 可视区被渲染后位置被偏移
|
|
8551
|
-
internalData._sToTime=setTimeout(()=>{internalData._sToTime=undefined;if(scrollYLoad){if(props.treeConfig){$xeTable.scrollToTreeRow(row);}else{rowToVisible($xeTable,row);}}if(scrollXLoad&&fieldOrColumn){handleScrollToRowColumn($xeTable,fieldOrColumn,row,options);}},350);}return $xeTable.$nextTick();}});},/**
|
|
8552
|
-
* 如果有滚动条,则滚动到第一行
|
|
8553
|
-
*/scrollToStartRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[0],fieldOrColumn,options);},/**
|
|
8554
|
-
* 如果有滚动条,则滚动到最后一行
|
|
8555
|
-
*/scrollToEndRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[afterFullData.length-1],fieldOrColumn,options);},/**
|
|
8556
|
-
* 如果有滚动条,则滚动到对应的列
|
|
8557
|
-
* @param {ColumnInfo} column 列配置
|
|
8558
|
-
*/scrollToColumn(fieldOrColumn,options){const $xeTable=this;return handleScrollToRowColumn($xeTable,null,fieldOrColumn,options);},/**
|
|
8559
|
-
* 如果有滚动条,则滚动到第一列
|
|
8560
|
-
*/scrollToStartColumn(options){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[0],options);},/**
|
|
8561
|
-
* 如果有滚动条,则滚动到最后一列
|
|
8562
|
-
*/scrollToEndColumn(options){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[visibleColumn.length-1],options);},/**
|
|
8563
|
-
* 对于树形结构中,可以直接滚动到指定深层节点中
|
|
8564
|
-
* 对于某些特定的场景可能会用到,比如定位到某一节点
|
|
8565
|
-
* @param {Row} row 行对象
|
|
8566
|
-
*/scrollToTreeRow(row){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullData}=internalData;const rests=[];if(treeConfig||isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullData,item=>$xeTable.eqRow(item,row),{children:isRowGroupStatus?aggregateOpts.mapChildrenField:childrenField});if(matchObj){const nodes=matchObj.nodes;nodes.forEach((row,index)=>{if(index<nodes.length-1&&!$xeTable.isTreeExpandByRow(row)){rests.push($xeTable.setTreeExpand(row,true));}});}}return Promise.all(rests).then(()=>rowToVisible($xeTable,row));},/**
|
|
8567
|
-
* 手动清除滚动相关信息,还原到初始状态
|
|
8568
|
-
*/clearScroll(){const $xeTable=this;const internalData=$xeTable;const{elemStore,scrollXStore,scrollYStore}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;setScrollLeft(xHandleEl,0);setScrollLeft(bodyScrollElem,0);setScrollLeft(headerScrollElem,0);setScrollLeft(footerScrollElem,0);setScrollTop(yHandleEl,0);setScrollTop(bodyScrollElem,0);setScrollTop(leftScrollElem,0);setScrollTop(rightScrollElem,0);scrollXStore.startIndex=0;scrollXStore.visibleStartIndex=0;scrollXStore.endIndex=scrollXStore.visibleSize;scrollXStore.visibleEndIndex=scrollXStore.visibleSize;scrollYStore.startIndex=0;scrollYStore.visibleStartIndex=0;scrollYStore.endIndex=scrollYStore.visibleSize;scrollYStore.visibleEndIndex=scrollYStore.visibleSize;return $xeTable.$nextTick().then(()=>{internalData.lastScrollLeft=0;internalData.lastScrollTop=0;internalData.intoRunScroll=false;});},/**
|
|
8569
|
-
* 更新表尾合计
|
|
8570
|
-
*/updateFooter(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const{showFooter,footerData,footerMethod}=props;const{visibleColumn,afterFullData}=internalData;let footData=[];if(showFooter&&footerData&&footerData.length){footData=footerData.slice(0);}else if(showFooter&&footerMethod){footData=visibleColumn.length?footerMethod({columns:visibleColumn,data:afterFullData,$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt}):[];}reactData.footerTableData=footData;$xeTable.clearFooterFormatterCache();$xeTable.handleUpdateFooterMerge();$xeTable.dispatchEvent('footer-data-change',{visibleColumn:internalData.visibleColumn,footData},null);return $xeTable.$nextTick();},/**
|
|
8571
|
-
* 更新列状态 updateStatus({ row, column }, cellValue)
|
|
8572
|
-
* 如果组件值 v-model 发生 change 时,调用改函数用于更新某一列编辑状态
|
|
8573
|
-
* 如果单元格配置了校验规则,则会进行校验
|
|
8574
|
-
*/updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;return this.$nextTick().then(()=>{const{editRules}=props;const{isActivated}=internalData;if(isActivated&&slotParams&&editRules){return $xeTable.handleCellRuleUpdateStatus('change',slotParams,cellValue);}});},/**
|
|
8575
|
-
* 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
|
|
8576
|
-
*/setMergeCells(merges){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;if(props.spanMethod){methods_errLog('vxe.error.errConflicts',['merge-cells','span-method']);}handleBodyMerge($xeTable,merges);$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{const{expandColumn}=reactData;const{mergeBodyList}=internalData;if(expandColumn&&mergeBodyList.length){methods_warnLog('vxe.error.errConflicts',['type=expand','merge-cells | span-method']);}$xeTable.updateCellAreas();return updateStyle($xeTable);});},/**
|
|
8577
|
-
* 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
8578
|
-
*/removeMergeCells(merges){const $xeTable=this;const props=$xeTable;if(props.spanMethod){methods_errLog('vxe.error.errConflicts',['merge-cells','span-method']);}const rest=removeBodyMerges($xeTable,merges);$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{$xeTable.updateCellAreas();updateStyle($xeTable);return rest;});},/**
|
|
8579
|
-
* 获取所有被合并的单元格
|
|
8580
|
-
*/getMergeCells(){const $xeTable=this;const internalData=$xeTable;return internalData.mergeBodyList.slice(0);},/**
|
|
8581
|
-
* 清除所有单元格合并
|
|
8582
|
-
*/clearMergeCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeBodyList=[];internalData.mergeBodyMaps={};internalData.mergeBodyCellMaps={};internalData.mergeBodyRowMaps={};internalData.mergeBodyColMaps={};reactData.mergeBodyFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},setMergeHeaderCells(merges){const $xeTable=this;handleHeaderMerge($xeTable,merges);$xeTable.handleUpdateHeaderMerge();return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},/**
|
|
8583
|
-
* 移除表头单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
8584
|
-
*/removeMergeHeaderCells(merges){const $xeTable=this;const rest=removeHeaderMerges($xeTable,merges);$xeTable.handleUpdateHeaderMerge();return $xeTable.$nextTick().then(()=>{updateStyle($xeTable);return rest;});},/**
|
|
8585
|
-
* 获取所有被合并的表头单元格
|
|
8586
|
-
*/getMergeHeaderCells(){const $xeTable=this;const internalData=$xeTable;return internalData.mergeHeaderList.slice(0);},/**
|
|
8587
|
-
* 清除所有表头单元格合并
|
|
8560
|
+
internalData._sToTime=setTimeout(()=>{internalData._sToTime=undefined;if(scrollYLoad){if(props.treeConfig){$xeTable.scrollToTreeRow(row);}else{rowToVisible($xeTable,row);}}if(scrollXLoad&&fieldOrColumn){handleScrollToRowColumn($xeTable,fieldOrColumn,row,options);}},350);}return $xeTable.$nextTick();}});},/**
|
|
8561
|
+
* 如果有滚动条,则滚动到第一行
|
|
8562
|
+
*/scrollToStartRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[0],fieldOrColumn,options);},/**
|
|
8563
|
+
* 如果有滚动条,则滚动到最后一行
|
|
8564
|
+
*/scrollToEndRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[afterFullData.length-1],fieldOrColumn,options);},/**
|
|
8565
|
+
* 如果有滚动条,则滚动到对应的列
|
|
8566
|
+
* @param {ColumnInfo} column 列配置
|
|
8567
|
+
*/scrollToColumn(fieldOrColumn,options){const $xeTable=this;return handleScrollToRowColumn($xeTable,null,fieldOrColumn,options);},/**
|
|
8568
|
+
* 如果有滚动条,则滚动到第一列
|
|
8569
|
+
*/scrollToStartColumn(options){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[0],options);},/**
|
|
8570
|
+
* 如果有滚动条,则滚动到最后一列
|
|
8571
|
+
*/scrollToEndColumn(options){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[visibleColumn.length-1],options);},/**
|
|
8572
|
+
* 对于树形结构中,可以直接滚动到指定深层节点中
|
|
8573
|
+
* 对于某些特定的场景可能会用到,比如定位到某一节点
|
|
8574
|
+
* @param {Row} row 行对象
|
|
8575
|
+
*/scrollToTreeRow(row){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullData}=internalData;const rests=[];if(treeConfig||isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullData,item=>$xeTable.eqRow(item,row),{children:isRowGroupStatus?aggregateOpts.mapChildrenField:childrenField});if(matchObj){const nodes=matchObj.nodes;nodes.forEach((row,index)=>{if(index<nodes.length-1&&!$xeTable.isTreeExpandByRow(row)){rests.push($xeTable.setTreeExpand(row,true));}});}}return Promise.all(rests).then(()=>rowToVisible($xeTable,row));},/**
|
|
8576
|
+
* 手动清除滚动相关信息,还原到初始状态
|
|
8577
|
+
*/clearScroll(){const $xeTable=this;const internalData=$xeTable;const{elemStore,scrollXStore,scrollYStore}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;setScrollLeft(xHandleEl,0);setScrollLeft(bodyScrollElem,0);setScrollLeft(headerScrollElem,0);setScrollLeft(footerScrollElem,0);setScrollTop(yHandleEl,0);setScrollTop(bodyScrollElem,0);setScrollTop(leftScrollElem,0);setScrollTop(rightScrollElem,0);scrollXStore.startIndex=0;scrollXStore.visibleStartIndex=0;scrollXStore.endIndex=scrollXStore.visibleSize;scrollXStore.visibleEndIndex=scrollXStore.visibleSize;scrollYStore.startIndex=0;scrollYStore.visibleStartIndex=0;scrollYStore.endIndex=scrollYStore.visibleSize;scrollYStore.visibleEndIndex=scrollYStore.visibleSize;return $xeTable.$nextTick().then(()=>{internalData.lastScrollLeft=0;internalData.lastScrollTop=0;internalData.intoRunScroll=false;});},/**
|
|
8578
|
+
* 更新表尾合计
|
|
8579
|
+
*/updateFooter(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const{showFooter,footerData,footerMethod}=props;const{visibleColumn,afterFullData}=internalData;let footData=[];if(showFooter&&footerData&&footerData.length){footData=footerData.slice(0);}else if(showFooter&&footerMethod){footData=visibleColumn.length?footerMethod({columns:visibleColumn,data:afterFullData,$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt}):[];}reactData.footerTableData=footData;$xeTable.clearFooterFormatterCache();$xeTable.handleUpdateFooterMerge();$xeTable.dispatchEvent('footer-data-change',{visibleColumn:internalData.visibleColumn,footData},null);return $xeTable.$nextTick();},/**
|
|
8580
|
+
* 更新列状态 updateStatus({ row, column }, cellValue)
|
|
8581
|
+
* 如果组件值 v-model 发生 change 时,调用改函数用于更新某一列编辑状态
|
|
8582
|
+
* 如果单元格配置了校验规则,则会进行校验
|
|
8583
|
+
*/updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;return this.$nextTick().then(()=>{const{editRules}=props;const{isActivated}=internalData;if(isActivated&&slotParams&&editRules){return $xeTable.handleCellRuleUpdateStatus('change',slotParams,cellValue);}});},/**
|
|
8584
|
+
* 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
|
|
8585
|
+
*/setMergeCells(merges){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;if(props.spanMethod){methods_errLog('vxe.error.errConflicts',['merge-cells','span-method']);}handleBodyMerge($xeTable,merges);$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{const{expandColumn}=reactData;const{mergeBodyList}=internalData;if(expandColumn&&mergeBodyList.length){methods_warnLog('vxe.error.errConflicts',['type=expand','merge-cells | span-method']);}$xeTable.updateCellAreas();return updateStyle($xeTable);});},/**
|
|
8586
|
+
* 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
8587
|
+
*/removeMergeCells(merges){const $xeTable=this;const props=$xeTable;if(props.spanMethod){methods_errLog('vxe.error.errConflicts',['merge-cells','span-method']);}const rest=removeBodyMerges($xeTable,merges);$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{$xeTable.updateCellAreas();updateStyle($xeTable);return rest;});},/**
|
|
8588
|
+
* 获取所有被合并的单元格
|
|
8589
|
+
*/getMergeCells(){const $xeTable=this;const internalData=$xeTable;return internalData.mergeBodyList.slice(0);},/**
|
|
8590
|
+
* 清除所有单元格合并
|
|
8591
|
+
*/clearMergeCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeBodyList=[];internalData.mergeBodyMaps={};internalData.mergeBodyCellMaps={};internalData.mergeBodyRowMaps={};internalData.mergeBodyColMaps={};reactData.mergeBodyFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},setMergeHeaderCells(merges){const $xeTable=this;handleHeaderMerge($xeTable,merges);$xeTable.handleUpdateHeaderMerge();return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},/**
|
|
8592
|
+
* 移除表头单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
8593
|
+
*/removeMergeHeaderCells(merges){const $xeTable=this;const rest=removeHeaderMerges($xeTable,merges);$xeTable.handleUpdateHeaderMerge();return $xeTable.$nextTick().then(()=>{updateStyle($xeTable);return rest;});},/**
|
|
8594
|
+
* 获取所有被合并的表头单元格
|
|
8595
|
+
*/getMergeHeaderCells(){const $xeTable=this;const internalData=$xeTable;return internalData.mergeHeaderList.slice(0);},/**
|
|
8596
|
+
* 清除所有表头单元格合并
|
|
8588
8597
|
*/clearMergeHeaderCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeHeaderList=[];internalData.mergeHeaderMaps={};internalData.mergeHeaderCellMaps={};internalData.mergeHeaderRowMaps={};internalData.mergeBodyColMaps={};reactData.mergeHeadFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},setMergeFooterCells(merges){const $xeTable=this;const props=$xeTable;if(props.footerSpanMethod){methods_errLog('vxe.error.errConflicts',['merge-footer-cells | merge-footer-items','footer-span-method']);}handleFooterMerge($xeTable,merges);$xeTable.handleUpdateFooterMerge();return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},setMergeFooterItems(merges){const $xeTable=this;// errLog('vxe.error.delFunc', ['setMergeFooterItems', 'setMergeFooterCells'])
|
|
8589
8598
|
return $xeTable.setMergeFooterCells(merges);},removeMergeFooterCells(merges){const $xeTable=this;const props=$xeTable;if(props.footerSpanMethod){methods_errLog('vxe.error.errConflicts',['merge-footer-cells | merge-footer-items','footer-span-method']);}const rest=removeFooterMerges($xeTable,merges);$xeTable.handleUpdateFooterMerge();return $xeTable.$nextTick().then(()=>{updateStyle($xeTable);return rest;});},removeMergeFooterItems(merges){const $xeTable=this;// errLog('vxe.error.delFunc', ['removeMergeFooterItems', 'removeMergeFooterCells'])
|
|
8590
|
-
return $xeTable.removeMergeFooterCells(merges);},/**
|
|
8591
|
-
* 获取所有被合并的表尾
|
|
8599
|
+
return $xeTable.removeMergeFooterCells(merges);},/**
|
|
8600
|
+
* 获取所有被合并的表尾
|
|
8592
8601
|
*/getMergeFooterCells(){const $xeTable=this;const internalData=$xeTable;return internalData.mergeFooterList.slice(0);},getMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['getMergeFooterItems', 'getMergeFooterCells'])
|
|
8593
|
-
return $xeTable.getMergeFooterCells();},/**
|
|
8594
|
-
* 清除所有表尾合并
|
|
8602
|
+
return $xeTable.getMergeFooterCells();},/**
|
|
8603
|
+
* 清除所有表尾合并
|
|
8595
8604
|
*/clearMergeFooterCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};reactData.mergeFootFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},clearMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
|
|
8596
8605
|
return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(mouseConfig&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
|
|
8597
|
-
emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
|
|
8598
|
-
* 已废弃,被 connectToolbar 替换
|
|
8599
|
-
* @deprecated
|
|
8600
|
-
*/connect($toolbar){const $xeTable=this;return $xeTable.connectToolbar($toolbar);},/**
|
|
8601
|
-
* 连接工具栏
|
|
8602
|
-
* @param $toolbar
|
|
8603
|
-
*/connectToolbar($toolbar){const $xeTable=this;const internalData=$xeTable;if($toolbar&&$toolbar.syncUpdate){$toolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});this.$toolbar=$toolbar;}else{methods_errLog('vxe.error.barUnableLink');}return $xeTable.$nextTick();},handleConnectGanttView($ganttView){const $xeTable=this;const internalData=$xeTable;if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return $xeTable.$nextTick();},/*************************
|
|
8604
|
-
* Publish methods
|
|
8605
|
-
*************************//**
|
|
8606
|
-
* 已废弃,被 getCellElement 替换
|
|
8607
|
-
* @deprecated
|
|
8608
|
-
*/getCell(row,column){const $xeTable=this;return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){return row?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(list,item=>this.eqRow(item,row)):-1;},eqRow(row1,row2){const $xeTable=this;if(row1&&row2){if(row1===row2){return true;}return getRowid($xeTable,row1)===getRowid($xeTable,row2);}return false;},/*************************
|
|
8609
|
-
* Publish methods
|
|
8606
|
+
emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
|
|
8607
|
+
* 已废弃,被 connectToolbar 替换
|
|
8608
|
+
* @deprecated
|
|
8609
|
+
*/connect($toolbar){const $xeTable=this;return $xeTable.connectToolbar($toolbar);},/**
|
|
8610
|
+
* 连接工具栏
|
|
8611
|
+
* @param $toolbar
|
|
8612
|
+
*/connectToolbar($toolbar){const $xeTable=this;const internalData=$xeTable;if($toolbar&&$toolbar.syncUpdate){$toolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});this.$toolbar=$toolbar;}else{methods_errLog('vxe.error.barUnableLink');}return $xeTable.$nextTick();},handleConnectGanttView($ganttView){const $xeTable=this;const internalData=$xeTable;if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return $xeTable.$nextTick();},/*************************
|
|
8613
|
+
* Publish methods
|
|
8614
|
+
*************************//**
|
|
8615
|
+
* 已废弃,被 getCellElement 替换
|
|
8616
|
+
* @deprecated
|
|
8617
|
+
*/getCell(row,column){const $xeTable=this;return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){return row?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(list,item=>this.eqRow(item,row)):-1;},eqRow(row1,row2){const $xeTable=this;if(row1&&row2){if(row1===row2){return true;}return getRowid($xeTable,row1)===getRowid($xeTable,row2);}return false;},/*************************
|
|
8618
|
+
* Publish methods
|
|
8610
8619
|
*************************/getSetupOptions(){return methods_getConfig();}};const tablePrivateMethods={};const exportMethods=Object.assign({},tableMethods,tablePrivateMethods);// Module methods
|
|
8611
8620
|
const funcs='setFilter,openFilter,clearFilter,saveFilter,saveFilterByEvent,resetFilter,resetFilterByEvent,saveFilterPanel,saveFilterPanelByEvent,resetFilterPanel,resetFilterPanelByEvent,getCheckedFilters,updateFilterOptionStatus,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFNR,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,insertChild,insertChildAt,insertChildNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getEditCell,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,fullValidateField,validateField,openExport,closeExport,openPrint,closePrint,getPrintHtml,exportData,openImport,closeImport,importData,saveFile,readFile,importByFile,print,getCustomVisible,openCustom,closeCustom,toggleCustom,saveCustom,cancelCustom,resetCustom,toggleCustomAllCheckbox,setCustomAllCheckbox'.split(',');funcs.forEach(name=>{exportMethods[name]=function(...args){// if (!this[`_${name}`]) {
|
|
8612
8621
|
// if ('openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').includes(name)) {
|
|
@@ -8715,8 +8724,8 @@ function renderLine(h, $xeTable, rowid, params, cellHeight) {
|
|
|
8715
8724
|
}
|
|
8716
8725
|
return [];
|
|
8717
8726
|
}
|
|
8718
|
-
/**
|
|
8719
|
-
* 渲染列
|
|
8727
|
+
/**
|
|
8728
|
+
* 渲染列
|
|
8720
8729
|
*/
|
|
8721
8730
|
function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
|
|
8722
8731
|
const tableProps = $xeTable;
|
|
@@ -9582,8 +9591,8 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
|
|
|
9582
9591
|
xvm: isOptimizeMode ? '1' : null
|
|
9583
9592
|
}
|
|
9584
9593
|
}, [
|
|
9585
|
-
/**
|
|
9586
|
-
* 列宽
|
|
9594
|
+
/**
|
|
9595
|
+
* 列宽
|
|
9587
9596
|
*/
|
|
9588
9597
|
h('colgroup', {
|
|
9589
9598
|
ref: 'refBodyColgroup'
|
|
@@ -9598,8 +9607,8 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
|
|
|
9598
9607
|
}
|
|
9599
9608
|
});
|
|
9600
9609
|
})),
|
|
9601
|
-
/**
|
|
9602
|
-
* 内容
|
|
9610
|
+
/**
|
|
9611
|
+
* 内容
|
|
9603
9612
|
*/
|
|
9604
9613
|
h('tbody', {
|
|
9605
9614
|
ref: 'refBodyTBody'
|
|
@@ -9660,7 +9669,7 @@ const {
|
|
|
9660
9669
|
} = core_.VxeUI;
|
|
9661
9670
|
const header_sourceType = 'table';
|
|
9662
9671
|
const header_renderType = 'header';
|
|
9663
|
-
function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups,
|
|
9672
|
+
function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIndex, cols) {
|
|
9664
9673
|
const props = _vm;
|
|
9665
9674
|
const $xeTable = _vm.$parent;
|
|
9666
9675
|
const $xeGrid = $xeTable.$xeGrid;
|
|
@@ -9709,7 +9718,7 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIn
|
|
|
9709
9718
|
isCrossDrag,
|
|
9710
9719
|
isPeerDrag
|
|
9711
9720
|
} = columnDragOpts;
|
|
9712
|
-
const isLastRow =
|
|
9721
|
+
const isLastRow = _rowIndex === headerGroups.length - 1;
|
|
9713
9722
|
return cols.map((column, $columnIndex) => {
|
|
9714
9723
|
const {
|
|
9715
9724
|
type,
|
|
@@ -9747,7 +9756,9 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIn
|
|
|
9747
9756
|
$table: $xeTable,
|
|
9748
9757
|
$grid: $xeGrid,
|
|
9749
9758
|
$gantt: $xeGantt,
|
|
9750
|
-
|
|
9759
|
+
rowIndex: _rowIndex,
|
|
9760
|
+
_rowIndex,
|
|
9761
|
+
$rowIndex: _rowIndex,
|
|
9751
9762
|
column,
|
|
9752
9763
|
columnIndex,
|
|
9753
9764
|
$columnIndex,
|
|
@@ -9769,7 +9780,7 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIn
|
|
|
9769
9780
|
thAttrs.rowspan = column.rowSpan > 1 ? column.rowSpan : null;
|
|
9770
9781
|
}
|
|
9771
9782
|
if (mergeHeadFlag && mergeHeaderList.length && (showCustomHeader || isLastRow)) {
|
|
9772
|
-
const spanRest = mergeHeaderCellMaps[`${
|
|
9783
|
+
const spanRest = mergeHeaderCellMaps[`${_rowIndex}:${showCustomHeader ? $columnIndex : _columnIndex}`];
|
|
9773
9784
|
if (spanRest) {
|
|
9774
9785
|
const {
|
|
9775
9786
|
rowspan,
|
|
@@ -9872,8 +9883,8 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIn
|
|
|
9872
9883
|
},
|
|
9873
9884
|
class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
|
|
9874
9885
|
}, column.renderHeader(h, cellParams))]),
|
|
9875
|
-
/**
|
|
9876
|
-
* 列宽拖动
|
|
9886
|
+
/**
|
|
9887
|
+
* 列宽拖动
|
|
9877
9888
|
*/
|
|
9878
9889
|
!fixedHiddenColumn && showResizable && (!showCustomHeader || isLastRow) ? h('div', {
|
|
9879
9890
|
class: 'vxe-cell--col-resizable',
|
|
@@ -10018,18 +10029,20 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups, renderColumn
|
|
|
10018
10029
|
headerRowStyle
|
|
10019
10030
|
} = tableProps;
|
|
10020
10031
|
const floatingFilterOpts = $xeTable.computeFloatingFilterOpts;
|
|
10021
|
-
const rowVNs = headerGroups.map((cols,
|
|
10032
|
+
const rowVNs = headerGroups.map((cols, _rowIndex) => {
|
|
10022
10033
|
const params = {
|
|
10023
10034
|
$table: $xeTable,
|
|
10024
|
-
|
|
10035
|
+
rowIndex: _rowIndex,
|
|
10036
|
+
_rowIndex,
|
|
10037
|
+
$rowIndex: _rowIndex,
|
|
10025
10038
|
fixed: fixedType,
|
|
10026
10039
|
type: header_renderType
|
|
10027
10040
|
};
|
|
10028
10041
|
return h('tr', {
|
|
10029
|
-
key:
|
|
10042
|
+
key: _rowIndex,
|
|
10030
10043
|
class: ['vxe-header--row', headerRowClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
|
|
10031
10044
|
style: headerRowStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : undefined
|
|
10032
|
-
}, header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups,
|
|
10045
|
+
}, header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIndex, cols));
|
|
10033
10046
|
});
|
|
10034
10047
|
if (floatingFilterOpts.enabled) {
|
|
10035
10048
|
rowVNs.push(h('tr', {
|
|
@@ -10212,8 +10225,8 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups, renderColumn
|
|
|
10212
10225
|
xvm: isOptimizeMode ? '1' : null
|
|
10213
10226
|
}
|
|
10214
10227
|
}, [
|
|
10215
|
-
/**
|
|
10216
|
-
* 列宽
|
|
10228
|
+
/**
|
|
10229
|
+
* 列宽
|
|
10217
10230
|
*/
|
|
10218
10231
|
h('colgroup', {
|
|
10219
10232
|
ref: 'refHeaderColgroup'
|
|
@@ -10228,8 +10241,8 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups, renderColumn
|
|
|
10228
10241
|
}
|
|
10229
10242
|
});
|
|
10230
10243
|
})),
|
|
10231
|
-
/**
|
|
10232
|
-
* 头部
|
|
10244
|
+
/**
|
|
10245
|
+
* 头部
|
|
10233
10246
|
*/
|
|
10234
10247
|
h('thead', {
|
|
10235
10248
|
ref: 'refHeaderTHead'
|
|
@@ -10502,8 +10515,8 @@ function footer_renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData,
|
|
|
10502
10515
|
},
|
|
10503
10516
|
class: 'vxe-cell--wrapper vxe-footer-cell--wrapper'
|
|
10504
10517
|
}, column.renderFooter(h, cellParams))]),
|
|
10505
|
-
/**
|
|
10506
|
-
* 列宽拖动
|
|
10518
|
+
/**
|
|
10519
|
+
* 列宽拖动
|
|
10507
10520
|
*/
|
|
10508
10521
|
!fixedHiddenColumn && showResizable && isAllColumnDrag ? h('div', {
|
|
10509
10522
|
class: ['vxe-cell--col-resizable', {
|
|
@@ -10528,21 +10541,22 @@ function footer_renderHeads(h, _vm, isOptimizeMode, renderColumnList) {
|
|
|
10528
10541
|
footerRowClassName,
|
|
10529
10542
|
footerRowStyle
|
|
10530
10543
|
} = tableProps;
|
|
10531
|
-
return footerTableData.map((row,
|
|
10532
|
-
const
|
|
10544
|
+
return footerTableData.map((row, _rowIndex) => {
|
|
10545
|
+
const $rowIndex = _rowIndex;
|
|
10533
10546
|
const rowParams = {
|
|
10534
10547
|
$table: $xeTable,
|
|
10535
10548
|
row,
|
|
10549
|
+
rowIndex: _rowIndex,
|
|
10536
10550
|
_rowIndex,
|
|
10537
10551
|
$rowIndex,
|
|
10538
10552
|
fixed: fixedType,
|
|
10539
10553
|
type: footer_renderType
|
|
10540
10554
|
};
|
|
10541
10555
|
return h('tr', {
|
|
10542
|
-
key:
|
|
10556
|
+
key: _rowIndex,
|
|
10543
10557
|
class: ['vxe-footer--row', footerRowClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
|
|
10544
10558
|
style: footerRowStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : undefined
|
|
10545
|
-
}, footer_renderRows(h, _vm, isOptimizeMode, renderColumnList, footerTableData, row,
|
|
10559
|
+
}, footer_renderRows(h, _vm, isOptimizeMode, renderColumnList, footerTableData, row, _rowIndex, _rowIndex));
|
|
10546
10560
|
});
|
|
10547
10561
|
}
|
|
10548
10562
|
/* harmony default export */ var footer = (/* define-vxe-component start */defineVxeComponent({
|
|
@@ -10691,8 +10705,8 @@ function footer_renderHeads(h, _vm, isOptimizeMode, renderColumnList) {
|
|
|
10691
10705
|
xvm: isOptimizeMode ? '1' : null
|
|
10692
10706
|
}
|
|
10693
10707
|
}, [
|
|
10694
|
-
/**
|
|
10695
|
-
* 列宽
|
|
10708
|
+
/**
|
|
10709
|
+
* 列宽
|
|
10696
10710
|
*/
|
|
10697
10711
|
h('colgroup', {
|
|
10698
10712
|
ref: 'refFooterColgroup'
|
|
@@ -10707,8 +10721,8 @@ function footer_renderHeads(h, _vm, isOptimizeMode, renderColumnList) {
|
|
|
10707
10721
|
}
|
|
10708
10722
|
});
|
|
10709
10723
|
})),
|
|
10710
|
-
/**
|
|
10711
|
-
* 底部
|
|
10724
|
+
/**
|
|
10725
|
+
* 底部
|
|
10712
10726
|
*/
|
|
10713
10727
|
h('tfoot', {
|
|
10714
10728
|
ref: 'refFooterTFoot'
|
|
@@ -11969,8 +11983,11 @@ function panel_hideDropTip($xeTableCustomPanel) {
|
|
|
11969
11983
|
const resizeParams = {
|
|
11970
11984
|
$table: $xeTable,
|
|
11971
11985
|
column,
|
|
11972
|
-
columnIndex:
|
|
11973
|
-
$columnIndex:
|
|
11986
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
11987
|
+
$columnIndex: $xeTable.getVMColumnIndex(column),
|
|
11988
|
+
_columnIndex: $xeTable.getVTColumnIndex(column),
|
|
11989
|
+
rowIndex: -1,
|
|
11990
|
+
_rowIndex: -1,
|
|
11974
11991
|
$rowIndex: -1
|
|
11975
11992
|
};
|
|
11976
11993
|
if (reMinWidth) {
|
|
@@ -12405,8 +12422,8 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
|
|
|
12405
12422
|
}
|
|
12406
12423
|
},
|
|
12407
12424
|
methods: {
|
|
12408
|
-
/*************************
|
|
12409
|
-
* Publish methods
|
|
12425
|
+
/*************************
|
|
12426
|
+
* Publish methods
|
|
12410
12427
|
*************************/
|
|
12411
12428
|
// (单选)筛选发生改变
|
|
12412
12429
|
changeRadioOption(evnt, checked, item) {
|
|
@@ -12465,8 +12482,8 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
|
|
|
12465
12482
|
} = props;
|
|
12466
12483
|
$xeTable.handleFilterResetFilter(evnt, filterStore.column || null);
|
|
12467
12484
|
},
|
|
12468
|
-
/*************************
|
|
12469
|
-
* Publish methods
|
|
12485
|
+
/*************************
|
|
12486
|
+
* Publish methods
|
|
12470
12487
|
*************************/
|
|
12471
12488
|
renderOptions(h, filterRender, compConf) {
|
|
12472
12489
|
const $xeFilterPanel = this;
|
|
@@ -13723,9 +13740,9 @@ const {
|
|
|
13723
13740
|
const mixin_sourceType = 'table';
|
|
13724
13741
|
/* harmony default export */ var mixin = ({
|
|
13725
13742
|
methods: {
|
|
13726
|
-
/**
|
|
13727
|
-
* 手动弹出筛选面板
|
|
13728
|
-
* @param column
|
|
13743
|
+
/**
|
|
13744
|
+
* 手动弹出筛选面板
|
|
13745
|
+
* @param column
|
|
13729
13746
|
*/
|
|
13730
13747
|
_openFilter(fieldOrColumn) {
|
|
13731
13748
|
const $xeTable = this;
|
|
@@ -13777,10 +13794,10 @@ const mixin_sourceType = 'table';
|
|
|
13777
13794
|
}
|
|
13778
13795
|
return $xeTable.$nextTick();
|
|
13779
13796
|
},
|
|
13780
|
-
/**
|
|
13781
|
-
* 修改筛选条件列表
|
|
13782
|
-
* @param {ColumnInfo} fieldOrColumn 列
|
|
13783
|
-
* @param {Array} options 选项
|
|
13797
|
+
/**
|
|
13798
|
+
* 修改筛选条件列表
|
|
13799
|
+
* @param {ColumnInfo} fieldOrColumn 列
|
|
13800
|
+
* @param {Array} options 选项
|
|
13784
13801
|
*/
|
|
13785
13802
|
_setFilter(fieldOrColumn, options, isUpdate) {
|
|
13786
13803
|
const $xeTable = this;
|
|
@@ -13927,14 +13944,14 @@ const mixin_sourceType = 'table';
|
|
|
13927
13944
|
visible: filterStore.visible
|
|
13928
13945
|
}, evnt);
|
|
13929
13946
|
},
|
|
13930
|
-
/**
|
|
13931
|
-
* 点击筛选事件
|
|
13932
|
-
* 当筛选图标被点击时触发
|
|
13933
|
-
* 更新选项是否全部状态
|
|
13934
|
-
* 打开筛选面板
|
|
13935
|
-
* @param {Event} evnt 事件
|
|
13936
|
-
* @param {ColumnInfo} column 列配置
|
|
13937
|
-
* @param {Object} params 参数
|
|
13947
|
+
/**
|
|
13948
|
+
* 点击筛选事件
|
|
13949
|
+
* 当筛选图标被点击时触发
|
|
13950
|
+
* 更新选项是否全部状态
|
|
13951
|
+
* 打开筛选面板
|
|
13952
|
+
* @param {Event} evnt 事件
|
|
13953
|
+
* @param {ColumnInfo} column 列配置
|
|
13954
|
+
* @param {Object} params 参数
|
|
13938
13955
|
*/
|
|
13939
13956
|
triggerFilterEvent(evnt, column, params) {
|
|
13940
13957
|
const $xeTable = this;
|
|
@@ -14189,9 +14206,9 @@ const mixin_sourceType = 'table';
|
|
|
14189
14206
|
setTimeout(() => $xeTable.recalculate(), 50);
|
|
14190
14207
|
});
|
|
14191
14208
|
},
|
|
14192
|
-
/**
|
|
14193
|
-
* 确认筛选
|
|
14194
|
-
* 当筛选面板中的确定按钮被按下时触发
|
|
14209
|
+
/**
|
|
14210
|
+
* 确认筛选
|
|
14211
|
+
* 当筛选面板中的确定按钮被按下时触发
|
|
14195
14212
|
*/
|
|
14196
14213
|
confirmFilterEvent(evnt, column) {
|
|
14197
14214
|
const $xeTable = this;
|
|
@@ -14226,10 +14243,10 @@ const mixin_sourceType = 'table';
|
|
|
14226
14243
|
}
|
|
14227
14244
|
}
|
|
14228
14245
|
},
|
|
14229
|
-
/**
|
|
14230
|
-
* 重置筛选
|
|
14231
|
-
* 当筛选面板中的重置按钮被按下时触发
|
|
14232
|
-
* @param {Event} evnt 事件
|
|
14246
|
+
/**
|
|
14247
|
+
* 重置筛选
|
|
14248
|
+
* 当筛选面板中的重置按钮被按下时触发
|
|
14249
|
+
* @param {Event} evnt 事件
|
|
14233
14250
|
*/
|
|
14234
14251
|
handleFilterResetFilter(evnt, column) {
|
|
14235
14252
|
const $xeTable = this;
|
|
@@ -14243,10 +14260,10 @@ const mixin_sourceType = 'table';
|
|
|
14243
14260
|
}
|
|
14244
14261
|
}
|
|
14245
14262
|
},
|
|
14246
|
-
/**
|
|
14247
|
-
* 清空指定列的筛选条件
|
|
14248
|
-
* 如果为空则清空所有列的筛选条件
|
|
14249
|
-
* @param {String} fieldOrColumn 列
|
|
14263
|
+
/**
|
|
14264
|
+
* 清空指定列的筛选条件
|
|
14265
|
+
* 如果为空则清空所有列的筛选条件
|
|
14266
|
+
* @param {String} fieldOrColumn 列
|
|
14250
14267
|
*/
|
|
14251
14268
|
_clearFilter(fieldOrColumn) {
|
|
14252
14269
|
const $xeTable = this;
|
|
@@ -14304,8 +14321,8 @@ const {
|
|
|
14304
14321
|
} = core_.VxeUI;
|
|
14305
14322
|
/* harmony default export */ var menu_mixin = ({
|
|
14306
14323
|
methods: {
|
|
14307
|
-
/**
|
|
14308
|
-
* 关闭快捷菜单
|
|
14324
|
+
/**
|
|
14325
|
+
* 关闭快捷菜单
|
|
14309
14326
|
*/
|
|
14310
14327
|
_closeMenu() {
|
|
14311
14328
|
const $xeTable = this;
|
|
@@ -14350,8 +14367,8 @@ const {
|
|
|
14350
14367
|
$xeTable.ctxMenuLinkEvent(evnt, ctxMenuStore[property]);
|
|
14351
14368
|
}
|
|
14352
14369
|
},
|
|
14353
|
-
/**
|
|
14354
|
-
* 快捷菜单事件处理
|
|
14370
|
+
/**
|
|
14371
|
+
* 快捷菜单事件处理
|
|
14355
14372
|
*/
|
|
14356
14373
|
handleGlobalContextmenuEvent(evnt) {
|
|
14357
14374
|
const $xeTable = this;
|
|
@@ -14481,8 +14498,8 @@ const {
|
|
|
14481
14498
|
}
|
|
14482
14499
|
$xeTable.closeMenu();
|
|
14483
14500
|
},
|
|
14484
|
-
/**
|
|
14485
|
-
* 显示快捷菜单
|
|
14501
|
+
/**
|
|
14502
|
+
* 显示快捷菜单
|
|
14486
14503
|
*/
|
|
14487
14504
|
handleOpenMenuEvent(evnt, type, params) {
|
|
14488
14505
|
const $xeTable = this;
|
|
@@ -14650,8 +14667,8 @@ const {
|
|
|
14650
14667
|
}
|
|
14651
14668
|
ctxMenuStore.selectChild = null;
|
|
14652
14669
|
},
|
|
14653
|
-
/**
|
|
14654
|
-
* 快捷菜单点击事件
|
|
14670
|
+
/**
|
|
14671
|
+
* 快捷菜单点击事件
|
|
14655
14672
|
*/
|
|
14656
14673
|
ctxMenuLinkEvent(evnt, menu) {
|
|
14657
14674
|
const $xeTable = this;
|
|
@@ -15416,20 +15433,20 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15416
15433
|
}
|
|
15417
15434
|
/* harmony default export */ var edit_mixin = ({
|
|
15418
15435
|
methods: {
|
|
15419
|
-
/**
|
|
15420
|
-
* 往表格中插入临时数据
|
|
15421
|
-
*
|
|
15422
|
-
* @param {*} records
|
|
15436
|
+
/**
|
|
15437
|
+
* 往表格中插入临时数据
|
|
15438
|
+
*
|
|
15439
|
+
* @param {*} records
|
|
15423
15440
|
*/
|
|
15424
15441
|
_insert(records) {
|
|
15425
15442
|
return handleInsertRowAt(this, records, null);
|
|
15426
15443
|
},
|
|
15427
|
-
/**
|
|
15428
|
-
* 往表格指定行中插入临时数据
|
|
15429
|
-
* 如果 row 为空则从插入到顶部
|
|
15430
|
-
* 如果 row 为 -1 则从插入到底部
|
|
15431
|
-
* 如果 row 为有效行则插入到该行的位置
|
|
15432
|
-
* @returns
|
|
15444
|
+
/**
|
|
15445
|
+
* 往表格指定行中插入临时数据
|
|
15446
|
+
* 如果 row 为空则从插入到顶部
|
|
15447
|
+
* 如果 row 为 -1 则从插入到底部
|
|
15448
|
+
* 如果 row 为有效行则插入到该行的位置
|
|
15449
|
+
* @returns
|
|
15433
15450
|
*/
|
|
15434
15451
|
_insertAt(records, targetRowOrRowid) {
|
|
15435
15452
|
return handleInsertRowAt(this, records, targetRowOrRowid);
|
|
@@ -15446,11 +15463,11 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15446
15463
|
_insertChildNextAt(records, parentRowOrParentId, targetRowOrRowid) {
|
|
15447
15464
|
return handleInsertChildRowAt(this, records, parentRowOrParentId, targetRowOrRowid, true);
|
|
15448
15465
|
},
|
|
15449
|
-
/**
|
|
15450
|
-
* 删除指定行数据
|
|
15451
|
-
* 如果传 row 则删除一行
|
|
15452
|
-
* 如果传 rows 则删除多行
|
|
15453
|
-
* 如果为空则删除所有
|
|
15466
|
+
/**
|
|
15467
|
+
* 删除指定行数据
|
|
15468
|
+
* 如果传 row 则删除一行
|
|
15469
|
+
* 如果传 rows 则删除多行
|
|
15470
|
+
* 如果为空则删除所有
|
|
15454
15471
|
*/
|
|
15455
15472
|
_remove(rows) {
|
|
15456
15473
|
const $xeTable = this;
|
|
@@ -15613,8 +15630,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15613
15630
|
};
|
|
15614
15631
|
});
|
|
15615
15632
|
},
|
|
15616
|
-
/**
|
|
15617
|
-
* 删除复选框选中的数据
|
|
15633
|
+
/**
|
|
15634
|
+
* 删除复选框选中的数据
|
|
15618
15635
|
*/
|
|
15619
15636
|
_removeCheckboxRow() {
|
|
15620
15637
|
const $xeTable = this;
|
|
@@ -15623,8 +15640,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15623
15640
|
return params;
|
|
15624
15641
|
});
|
|
15625
15642
|
},
|
|
15626
|
-
/**
|
|
15627
|
-
* 删除单选框选中的数据
|
|
15643
|
+
/**
|
|
15644
|
+
* 删除单选框选中的数据
|
|
15628
15645
|
*/
|
|
15629
15646
|
_removeRadioRow() {
|
|
15630
15647
|
const $xeTable = this;
|
|
@@ -15634,8 +15651,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15634
15651
|
return params;
|
|
15635
15652
|
});
|
|
15636
15653
|
},
|
|
15637
|
-
/**
|
|
15638
|
-
* 删除当前行选中的数据
|
|
15654
|
+
/**
|
|
15655
|
+
* 删除当前行选中的数据
|
|
15639
15656
|
*/
|
|
15640
15657
|
_removeCurrentRow() {
|
|
15641
15658
|
const $xeTable = this;
|
|
@@ -15645,8 +15662,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15645
15662
|
return params;
|
|
15646
15663
|
});
|
|
15647
15664
|
},
|
|
15648
|
-
/**
|
|
15649
|
-
* 获取表格数据集,包含新增、删除、修改
|
|
15665
|
+
/**
|
|
15666
|
+
* 获取表格数据集,包含新增、删除、修改
|
|
15650
15667
|
*/
|
|
15651
15668
|
_getRecordset() {
|
|
15652
15669
|
const $xeTable = this;
|
|
@@ -15664,8 +15681,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15664
15681
|
pendingRecords
|
|
15665
15682
|
};
|
|
15666
15683
|
},
|
|
15667
|
-
/**
|
|
15668
|
-
* 获取新增的临时数据
|
|
15684
|
+
/**
|
|
15685
|
+
* 获取新增的临时数据
|
|
15669
15686
|
*/
|
|
15670
15687
|
_getInsertRecords() {
|
|
15671
15688
|
const $xeTable = this;
|
|
@@ -15682,8 +15699,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15682
15699
|
});
|
|
15683
15700
|
return insertRecords;
|
|
15684
15701
|
},
|
|
15685
|
-
/**
|
|
15686
|
-
* 获取已删除的数据
|
|
15702
|
+
/**
|
|
15703
|
+
* 获取已删除的数据
|
|
15687
15704
|
*/
|
|
15688
15705
|
_getRemoveRecords() {
|
|
15689
15706
|
const $xeTable = this;
|
|
@@ -15697,10 +15714,10 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15697
15714
|
});
|
|
15698
15715
|
return removeRecords;
|
|
15699
15716
|
},
|
|
15700
|
-
/**
|
|
15701
|
-
* 获取更新数据
|
|
15702
|
-
* 只精准匹配 row 的更改
|
|
15703
|
-
* 如果是树表格,子节点更改状态不会影响父节点的更新状态
|
|
15717
|
+
/**
|
|
15718
|
+
* 获取更新数据
|
|
15719
|
+
* 只精准匹配 row 的更改
|
|
15720
|
+
* 如果是树表格,子节点更改状态不会影响父节点的更新状态
|
|
15704
15721
|
*/
|
|
15705
15722
|
_getUpdateRecords() {
|
|
15706
15723
|
const $xeTable = this;
|
|
@@ -15711,20 +15728,34 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15711
15728
|
treeConfig
|
|
15712
15729
|
} = props;
|
|
15713
15730
|
const {
|
|
15714
|
-
tableFullData
|
|
15731
|
+
tableFullData,
|
|
15732
|
+
tableFullTreeData
|
|
15715
15733
|
} = internalData;
|
|
15716
15734
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
15735
|
+
const updateRecords = [];
|
|
15717
15736
|
if (keepSource) {
|
|
15718
15737
|
syncActivedCell($xeTable);
|
|
15719
15738
|
if (treeConfig) {
|
|
15720
|
-
|
|
15739
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
15740
|
+
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData, row => {
|
|
15741
|
+
if ($xeTable.isUpdateByRow(row)) {
|
|
15742
|
+
updateRecords.push(row);
|
|
15743
|
+
}
|
|
15744
|
+
}, {
|
|
15745
|
+
children: childrenField
|
|
15746
|
+
});
|
|
15747
|
+
} else {
|
|
15748
|
+
tableFullData.forEach(row => {
|
|
15749
|
+
if ($xeTable.isUpdateByRow(row)) {
|
|
15750
|
+
updateRecords.push(row);
|
|
15751
|
+
}
|
|
15752
|
+
});
|
|
15721
15753
|
}
|
|
15722
|
-
return tableFullData.filter(row => $xeTable.isUpdateByRow(row));
|
|
15723
15754
|
}
|
|
15724
|
-
return
|
|
15755
|
+
return updateRecords;
|
|
15725
15756
|
},
|
|
15726
|
-
/**
|
|
15727
|
-
* 处理激活编辑
|
|
15757
|
+
/**
|
|
15758
|
+
* 处理激活编辑
|
|
15728
15759
|
*/
|
|
15729
15760
|
handleEdit(params, evnt, options) {
|
|
15730
15761
|
const $xeTable = this;
|
|
@@ -15733,8 +15764,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15733
15764
|
isPos: true
|
|
15734
15765
|
}, options));
|
|
15735
15766
|
},
|
|
15736
|
-
/**
|
|
15737
|
-
* @deprecated
|
|
15767
|
+
/**
|
|
15768
|
+
* @deprecated
|
|
15738
15769
|
*/
|
|
15739
15770
|
handleActived(params, evnt) {
|
|
15740
15771
|
const $xeTable = this;
|
|
@@ -15756,15 +15787,15 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15756
15787
|
// 即将废弃
|
|
15757
15788
|
return $xeTable.clearEdit(row);
|
|
15758
15789
|
},
|
|
15759
|
-
/**
|
|
15760
|
-
* 清除激活的编辑
|
|
15790
|
+
/**
|
|
15791
|
+
* 清除激活的编辑
|
|
15761
15792
|
*/
|
|
15762
15793
|
_clearEdit(row) {
|
|
15763
15794
|
const $xeTable = this;
|
|
15764
15795
|
return handleClearEdit($xeTable, null, row);
|
|
15765
15796
|
},
|
|
15766
|
-
/**
|
|
15767
|
-
* 取消编辑
|
|
15797
|
+
/**
|
|
15798
|
+
* 取消编辑
|
|
15768
15799
|
*/
|
|
15769
15800
|
handleClearEdit(evnt, targetRow) {
|
|
15770
15801
|
const $xeTable = this;
|
|
@@ -15840,9 +15871,9 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15840
15871
|
// 即将废弃
|
|
15841
15872
|
return $xeTable.isEditByRow(row);
|
|
15842
15873
|
},
|
|
15843
|
-
/**
|
|
15844
|
-
* 判断行是否为激活编辑状态
|
|
15845
|
-
* @param {Row} row 行对象
|
|
15874
|
+
/**
|
|
15875
|
+
* 判断行是否为激活编辑状态
|
|
15876
|
+
* @param {Row} row 行对象
|
|
15846
15877
|
*/
|
|
15847
15878
|
_isEditByRow(row) {
|
|
15848
15879
|
const $xeTable = this;
|
|
@@ -15852,8 +15883,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15852
15883
|
} = reactData;
|
|
15853
15884
|
return editStore.actived.row === row;
|
|
15854
15885
|
},
|
|
15855
|
-
/**
|
|
15856
|
-
* 处理聚焦
|
|
15886
|
+
/**
|
|
15887
|
+
* 处理聚焦
|
|
15857
15888
|
*/
|
|
15858
15889
|
handleFocus(params) {
|
|
15859
15890
|
const $xeTable = this;
|
|
@@ -15922,8 +15953,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15922
15953
|
// 即将废弃
|
|
15923
15954
|
return $xeTable.setEditRow(row);
|
|
15924
15955
|
},
|
|
15925
|
-
/**
|
|
15926
|
-
* 激活行编辑
|
|
15956
|
+
/**
|
|
15957
|
+
* 激活行编辑
|
|
15927
15958
|
*/
|
|
15928
15959
|
_setEditRow(row, fieldOrColumn, options) {
|
|
15929
15960
|
const $xeTable = this;
|
|
@@ -15950,8 +15981,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15950
15981
|
// 即将废弃
|
|
15951
15982
|
return $xeTable.setEditCell(row, fieldOrColumn);
|
|
15952
15983
|
},
|
|
15953
|
-
/**
|
|
15954
|
-
* 激活单元格编辑
|
|
15984
|
+
/**
|
|
15985
|
+
* 激活单元格编辑
|
|
15955
15986
|
*/
|
|
15956
15987
|
_setEditCell(row, fieldOrColumn, options) {
|
|
15957
15988
|
const $xeTable = this;
|
|
@@ -15960,8 +15991,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15960
15991
|
isPos: true
|
|
15961
15992
|
}, options));
|
|
15962
15993
|
},
|
|
15963
|
-
/**
|
|
15964
|
-
* 只对 trigger=dblclick 有效,选中单元格
|
|
15994
|
+
/**
|
|
15995
|
+
* 只对 trigger=dblclick 有效,选中单元格
|
|
15965
15996
|
*/
|
|
15966
15997
|
_setSelectCell(row, fieldOrColumn) {
|
|
15967
15998
|
const $xeTable = this;
|
|
@@ -15987,8 +16018,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
15987
16018
|
}
|
|
15988
16019
|
return $xeTable.$nextTick();
|
|
15989
16020
|
},
|
|
15990
|
-
/**
|
|
15991
|
-
* 处理选中源
|
|
16021
|
+
/**
|
|
16022
|
+
* 处理选中源
|
|
15992
16023
|
*/
|
|
15993
16024
|
handleSelected(params, evnt) {
|
|
15994
16025
|
const $xeTable = this;
|
|
@@ -16036,8 +16067,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
16036
16067
|
};
|
|
16037
16068
|
return selectMethod();
|
|
16038
16069
|
},
|
|
16039
|
-
/**
|
|
16040
|
-
* 获取选中的单元格
|
|
16070
|
+
/**
|
|
16071
|
+
* 获取选中的单元格
|
|
16041
16072
|
*/
|
|
16042
16073
|
_getSelectedCell() {
|
|
16043
16074
|
const $xeTable = this;
|
|
@@ -16057,8 +16088,8 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
|
|
|
16057
16088
|
}
|
|
16058
16089
|
return null;
|
|
16059
16090
|
},
|
|
16060
|
-
/**
|
|
16061
|
-
* 清除所选中源状态
|
|
16091
|
+
/**
|
|
16092
|
+
* 清除所选中源状态
|
|
16062
16093
|
*/
|
|
16063
16094
|
_clearSelected() {
|
|
16064
16095
|
const $xeTable = this;
|
|
@@ -16319,14 +16350,14 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
|
|
|
16319
16350
|
childList,
|
|
16320
16351
|
childCount,
|
|
16321
16352
|
aggValue: null,
|
|
16322
|
-
/**
|
|
16323
|
-
* 已废弃
|
|
16324
|
-
* @deprecated
|
|
16353
|
+
/**
|
|
16354
|
+
* 已废弃
|
|
16355
|
+
* @deprecated
|
|
16325
16356
|
*/
|
|
16326
16357
|
children: childList,
|
|
16327
|
-
/**
|
|
16328
|
-
* 已废弃
|
|
16329
|
-
* @deprecated
|
|
16358
|
+
/**
|
|
16359
|
+
* 已废弃
|
|
16360
|
+
* @deprecated
|
|
16330
16361
|
*/
|
|
16331
16362
|
totalValue: childCount
|
|
16332
16363
|
};
|
|
@@ -17642,11 +17673,11 @@ const convertToRows = originColumns => {
|
|
|
17642
17673
|
};
|
|
17643
17674
|
/* harmony default export */ var export_mixin = ({
|
|
17644
17675
|
methods: {
|
|
17645
|
-
/**
|
|
17646
|
-
* 导出文件,支持 csv/html/xml/txt
|
|
17647
|
-
* 如果是树表格,则默认是导出所有节点
|
|
17648
|
-
* 如果是启用了虚拟滚动,则只能导出数据源,可以配合 dataFilterMethod 函数转换数据
|
|
17649
|
-
* @param {Object} options 参数
|
|
17676
|
+
/**
|
|
17677
|
+
* 导出文件,支持 csv/html/xml/txt
|
|
17678
|
+
* 如果是树表格,则默认是导出所有节点
|
|
17679
|
+
* 如果是启用了虚拟滚动,则只能导出数据源,可以配合 dataFilterMethod 函数转换数据
|
|
17680
|
+
* @param {Object} options 参数
|
|
17650
17681
|
*/
|
|
17651
17682
|
_exportData(options) {
|
|
17652
17683
|
const $xeTable = this;
|
|
@@ -18867,8 +18898,8 @@ const {
|
|
|
18867
18898
|
getConfig: validator_mixin_getConfig,
|
|
18868
18899
|
validators: mixin_validators
|
|
18869
18900
|
} = core_.VxeUI;
|
|
18870
|
-
/**
|
|
18871
|
-
* 校验规则
|
|
18901
|
+
/**
|
|
18902
|
+
* 校验规则
|
|
18872
18903
|
*/
|
|
18873
18904
|
class Rule {
|
|
18874
18905
|
constructor(rule) {
|
|
@@ -18885,9 +18916,9 @@ class Rule {
|
|
|
18885
18916
|
maxWidth: rule.maxWidth
|
|
18886
18917
|
});
|
|
18887
18918
|
}
|
|
18888
|
-
/**
|
|
18889
|
-
* 获取校验不通过的消息
|
|
18890
|
-
* 支持国际化翻译
|
|
18919
|
+
/**
|
|
18920
|
+
* 获取校验不通过的消息
|
|
18921
|
+
* 支持国际化翻译
|
|
18891
18922
|
*/
|
|
18892
18923
|
get content() {
|
|
18893
18924
|
return getFuncText(this.$options.content || this.$options.message);
|
|
@@ -19000,8 +19031,8 @@ function checkRuleStatus(rule, row, val) {
|
|
|
19000
19031
|
}
|
|
19001
19032
|
return true;
|
|
19002
19033
|
}
|
|
19003
|
-
/**
|
|
19004
|
-
* 聚焦到校验通过的单元格并弹出校验错误提示
|
|
19034
|
+
/**
|
|
19035
|
+
* 聚焦到校验通过的单元格并弹出校验错误提示
|
|
19005
19036
|
*/
|
|
19006
19037
|
function handleValidError($xeTable, params) {
|
|
19007
19038
|
return new Promise(resolve => {
|
|
@@ -19034,14 +19065,14 @@ function handleErrMsgMode($xeTable, validErrMaps) {
|
|
|
19034
19065
|
}
|
|
19035
19066
|
return validErrMaps;
|
|
19036
19067
|
}
|
|
19037
|
-
/**
|
|
19038
|
-
* 对表格数据进行校验
|
|
19039
|
-
* 如果不指定数据,则默认只校验临时变动的数据,例如新增或修改
|
|
19040
|
-
* 如果传 true 则校验当前表格数据
|
|
19041
|
-
* 如果传 row 指定行记录,则只验证传入的行
|
|
19042
|
-
* 如果传 rows 为多行记录,则只验证传入的行
|
|
19043
|
-
* 如果只传 callback 否则默认验证整个表格数据
|
|
19044
|
-
* 返回 Promise 对象,或者使用回调方式
|
|
19068
|
+
/**
|
|
19069
|
+
* 对表格数据进行校验
|
|
19070
|
+
* 如果不指定数据,则默认只校验临时变动的数据,例如新增或修改
|
|
19071
|
+
* 如果传 true 则校验当前表格数据
|
|
19072
|
+
* 如果传 row 指定行记录,则只验证传入的行
|
|
19073
|
+
* 如果传 rows 为多行记录,则只验证传入的行
|
|
19074
|
+
* 如果只传 callback 否则默认验证整个表格数据
|
|
19075
|
+
* 返回 Promise 对象,或者使用回调方式
|
|
19045
19076
|
*/
|
|
19046
19077
|
function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
19047
19078
|
const props = $xeTable;
|
|
@@ -19180,10 +19211,10 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19180
19211
|
scrollToView(firstErrParams.cell);
|
|
19181
19212
|
handleValidError($xeTable, firstErrParams).then(finish);
|
|
19182
19213
|
};
|
|
19183
|
-
/**
|
|
19184
|
-
* 当校验不通过时
|
|
19185
|
-
* 将表格滚动到可视区
|
|
19186
|
-
* 由于提示信息至少需要占一行,定位向上偏移一行
|
|
19214
|
+
/**
|
|
19215
|
+
* 当校验不通过时
|
|
19216
|
+
* 将表格滚动到可视区
|
|
19217
|
+
* 由于提示信息至少需要占一行,定位向上偏移一行
|
|
19187
19218
|
*/
|
|
19188
19219
|
if (validOpts.autoPos === false) {
|
|
19189
19220
|
finish();
|
|
@@ -19205,8 +19236,8 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19205
19236
|
}
|
|
19206
19237
|
/* harmony default export */ var validator_mixin = ({
|
|
19207
19238
|
methods: {
|
|
19208
|
-
/**
|
|
19209
|
-
* 完整校验,和 validate 的区别就是会给有效数据中的每一行进行校验
|
|
19239
|
+
/**
|
|
19240
|
+
* 完整校验,和 validate 的区别就是会给有效数据中的每一行进行校验
|
|
19210
19241
|
*/
|
|
19211
19242
|
_fullValidate(rows, cb) {
|
|
19212
19243
|
const $xeTable = this;
|
|
@@ -19215,8 +19246,8 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19215
19246
|
}
|
|
19216
19247
|
return beginValidate($xeTable, rows, null, cb, true);
|
|
19217
19248
|
},
|
|
19218
|
-
/**
|
|
19219
|
-
* 快速校验,如果存在记录不通过的记录,则返回不再继续校验(异步校验除外)
|
|
19249
|
+
/**
|
|
19250
|
+
* 快速校验,如果存在记录不通过的记录,则返回不再继续校验(异步校验除外)
|
|
19220
19251
|
*/
|
|
19221
19252
|
_validate(rows, cb) {
|
|
19222
19253
|
const $xeTable = this;
|
|
@@ -19225,8 +19256,8 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19225
19256
|
}
|
|
19226
19257
|
return beginValidate($xeTable, rows, null, cb);
|
|
19227
19258
|
},
|
|
19228
|
-
/**
|
|
19229
|
-
* 完整校验单元格,和 validateField 的区别就是会给有效数据中的每一行进行校验
|
|
19259
|
+
/**
|
|
19260
|
+
* 完整校验单元格,和 validateField 的区别就是会给有效数据中的每一行进行校验
|
|
19230
19261
|
*/
|
|
19231
19262
|
_fullValidateField(rows, fieldOrColumn) {
|
|
19232
19263
|
const $xeTable = this;
|
|
@@ -19236,8 +19267,8 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19236
19267
|
}
|
|
19237
19268
|
return $xeTable.$nextTick();
|
|
19238
19269
|
},
|
|
19239
|
-
/**
|
|
19240
|
-
* 快速校验单元格,如果存在记录不通过的记录,则返回不再继续校验(异步校验除外)
|
|
19270
|
+
/**
|
|
19271
|
+
* 快速校验单元格,如果存在记录不通过的记录,则返回不再继续校验(异步校验除外)
|
|
19241
19272
|
*/
|
|
19242
19273
|
_validateField(rows, fieldOrColumn) {
|
|
19243
19274
|
const $xeTable = this;
|
|
@@ -19260,19 +19291,19 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19260
19291
|
}
|
|
19261
19292
|
return false;
|
|
19262
19293
|
},
|
|
19263
|
-
/**
|
|
19264
|
-
* 校验数据
|
|
19265
|
-
* 按表格行、列顺序依次校验(同步或异步)
|
|
19266
|
-
* 校验规则根据索引顺序依次校验,如果是异步则会等待校验完成才会继续校验下一列
|
|
19267
|
-
* 如果校验失败则,触发回调或者Promise<不通过列的错误消息>
|
|
19268
|
-
* 如果是传回调方式这返回一个校验不通过列的错误消息
|
|
19269
|
-
*
|
|
19270
|
-
* rule 配置:
|
|
19271
|
-
* required=Boolean 是否必填
|
|
19272
|
-
* min=Number 最小长度
|
|
19273
|
-
* max=Number 最大长度
|
|
19274
|
-
* validator=Function({ cellValue, rule, rules, row, column, rowIndex, columnIndex }) 自定义校验,接收一个 Promise
|
|
19275
|
-
* trigger=blur|change 触发方式(除非特殊场景,否则默认为空就行)
|
|
19294
|
+
/**
|
|
19295
|
+
* 校验数据
|
|
19296
|
+
* 按表格行、列顺序依次校验(同步或异步)
|
|
19297
|
+
* 校验规则根据索引顺序依次校验,如果是异步则会等待校验完成才会继续校验下一列
|
|
19298
|
+
* 如果校验失败则,触发回调或者Promise<不通过列的错误消息>
|
|
19299
|
+
* 如果是传回调方式这返回一个校验不通过列的错误消息
|
|
19300
|
+
*
|
|
19301
|
+
* rule 配置:
|
|
19302
|
+
* required=Boolean 是否必填
|
|
19303
|
+
* min=Number 最小长度
|
|
19304
|
+
* max=Number 最大长度
|
|
19305
|
+
* validator=Function({ cellValue, rule, rules, row, column, rowIndex, columnIndex }) 自定义校验,接收一个 Promise
|
|
19306
|
+
* trigger=blur|change 触发方式(除非特殊场景,否则默认为空就行)
|
|
19276
19307
|
*/
|
|
19277
19308
|
validCellRules(validType, row, column, val) {
|
|
19278
19309
|
const $xeTable = this;
|
|
@@ -19413,8 +19444,8 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19413
19444
|
reactData.validErrorMaps = validErrMaps;
|
|
19414
19445
|
return $xeTable.$nextTick();
|
|
19415
19446
|
},
|
|
19416
|
-
/**
|
|
19417
|
-
* 触发校验
|
|
19447
|
+
/**
|
|
19448
|
+
* 触发校验
|
|
19418
19449
|
*/
|
|
19419
19450
|
triggerValidate(type) {
|
|
19420
19451
|
const $xeTable = this;
|
|
@@ -19468,8 +19499,8 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
|
|
|
19468
19499
|
}
|
|
19469
19500
|
return Promise.resolve();
|
|
19470
19501
|
},
|
|
19471
|
-
/**
|
|
19472
|
-
* 弹出校验错误提示
|
|
19502
|
+
/**
|
|
19503
|
+
* 弹出校验错误提示
|
|
19473
19504
|
*/
|
|
19474
19505
|
showValidTooltip(params) {
|
|
19475
19506
|
const $xeTable = this;
|
|
@@ -20161,10 +20192,10 @@ function updateColumnAllOverflow($xeTable) {
|
|
|
20161
20192
|
});
|
|
20162
20193
|
reactData.isAllOverflow = isAllOverflow;
|
|
20163
20194
|
}
|
|
20164
|
-
/**
|
|
20165
|
-
* 渲染浮固定列
|
|
20166
|
-
* 分别渲染左边固定列和右边固定列
|
|
20167
|
-
* 如果宽度足够情况下,则不需要渲染固定列
|
|
20195
|
+
/**
|
|
20196
|
+
* 渲染浮固定列
|
|
20197
|
+
* 分别渲染左边固定列和右边固定列
|
|
20198
|
+
* 如果宽度足够情况下,则不需要渲染固定列
|
|
20168
20199
|
*/
|
|
20169
20200
|
function renderViewFixed(h, $xeTable, fixedType) {
|
|
20170
20201
|
const props = $xeTable;
|
|
@@ -20547,8 +20578,8 @@ function renderViewport(h, $xeTable) {
|
|
|
20547
20578
|
}, [h('div', {
|
|
20548
20579
|
class: ['vxe-table--main-wrapper', `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`]
|
|
20549
20580
|
}, [
|
|
20550
|
-
/**
|
|
20551
|
-
* 表头
|
|
20581
|
+
/**
|
|
20582
|
+
* 表头
|
|
20552
20583
|
*/
|
|
20553
20584
|
showHeader ? h(header, {
|
|
20554
20585
|
ref: 'refTableHeader',
|
|
@@ -20558,8 +20589,8 @@ function renderViewport(h, $xeTable) {
|
|
|
20558
20589
|
tableGroupColumn
|
|
20559
20590
|
}
|
|
20560
20591
|
}) : table_renderEmptyElement($xeTable),
|
|
20561
|
-
/**
|
|
20562
|
-
* 表体
|
|
20592
|
+
/**
|
|
20593
|
+
* 表体
|
|
20563
20594
|
*/
|
|
20564
20595
|
h(body, {
|
|
20565
20596
|
ref: 'refTableBody',
|
|
@@ -20568,8 +20599,8 @@ function renderViewport(h, $xeTable) {
|
|
|
20568
20599
|
tableColumn
|
|
20569
20600
|
}
|
|
20570
20601
|
}),
|
|
20571
|
-
/**
|
|
20572
|
-
* 表尾
|
|
20602
|
+
/**
|
|
20603
|
+
* 表尾
|
|
20573
20604
|
*/
|
|
20574
20605
|
showFooter ? h(footer, {
|
|
20575
20606
|
ref: 'refTableFooter',
|
|
@@ -21480,8 +21511,8 @@ function renderBody(h, $xeTable) {
|
|
|
21480
21511
|
}
|
|
21481
21512
|
return 'default';
|
|
21482
21513
|
},
|
|
21483
|
-
/**
|
|
21484
|
-
* 判断列全选的复选框是否禁用
|
|
21514
|
+
/**
|
|
21515
|
+
* 判断列全选的复选框是否禁用
|
|
21485
21516
|
*/
|
|
21486
21517
|
computeIsAllCheckboxDisabled() {
|
|
21487
21518
|
const $xeTable = this;
|
|
@@ -22154,7 +22185,7 @@ function renderBody(h, $xeTable) {
|
|
|
22154
22185
|
table_errLog('vxe.error.reqComp', ['vxe-loading']);
|
|
22155
22186
|
}
|
|
22156
22187
|
}
|
|
22157
|
-
if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip'
|
|
22188
|
+
if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') {
|
|
22158
22189
|
if (!VxeUITooltipComponent) {
|
|
22159
22190
|
if (props.showOverflow === true) {
|
|
22160
22191
|
table_errLog('vxe.error.errProp', ['show-overflow=true', 'show-overflow=title']);
|
|
@@ -22392,8 +22423,8 @@ function renderBody(h, $xeTable) {
|
|
|
22392
22423
|
},
|
|
22393
22424
|
on: tbOns
|
|
22394
22425
|
}, [
|
|
22395
|
-
/**
|
|
22396
|
-
* 隐藏列
|
|
22426
|
+
/**
|
|
22427
|
+
* 隐藏列
|
|
22397
22428
|
*/
|
|
22398
22429
|
h('div', {
|
|
22399
22430
|
class: 'vxe-table-slots',
|
|
@@ -22413,8 +22444,8 @@ function renderBody(h, $xeTable) {
|
|
|
22413
22444
|
key: 'tw',
|
|
22414
22445
|
class: 'vxe-table--render-wrapper'
|
|
22415
22446
|
}, scrollbarXToTop ? [renderScrollX(h, $xeTable), renderBody(h, $xeTable)] : [renderBody(h, $xeTable), renderScrollX(h, $xeTable)]),
|
|
22416
|
-
/**
|
|
22417
|
-
* 空数据
|
|
22447
|
+
/**
|
|
22448
|
+
* 空数据
|
|
22418
22449
|
*/
|
|
22419
22450
|
h('div', {
|
|
22420
22451
|
key: 'tn',
|
|
@@ -22428,15 +22459,15 @@ function renderBody(h, $xeTable) {
|
|
|
22428
22459
|
}, [h('div', {
|
|
22429
22460
|
class: 'vxe-table--empty-content'
|
|
22430
22461
|
}, renderEmptyBody(h, $xeTable))])]),
|
|
22431
|
-
/**
|
|
22432
|
-
* 边框线
|
|
22462
|
+
/**
|
|
22463
|
+
* 边框线
|
|
22433
22464
|
*/
|
|
22434
22465
|
h('div', {
|
|
22435
22466
|
key: 'tl',
|
|
22436
22467
|
class: 'vxe-table--border-line'
|
|
22437
22468
|
}),
|
|
22438
|
-
/**
|
|
22439
|
-
* 列宽线
|
|
22469
|
+
/**
|
|
22470
|
+
* 列宽线
|
|
22440
22471
|
*/
|
|
22441
22472
|
h('div', {
|
|
22442
22473
|
key: 'tcl',
|
|
@@ -22450,8 +22481,8 @@ function renderBody(h, $xeTable) {
|
|
|
22450
22481
|
}, [h('div', {
|
|
22451
22482
|
ref: 'refTeleportWrapper'
|
|
22452
22483
|
}, [
|
|
22453
|
-
/**
|
|
22454
|
-
* 行高线
|
|
22484
|
+
/**
|
|
22485
|
+
* 行高线
|
|
22455
22486
|
*/
|
|
22456
22487
|
h('div', {
|
|
22457
22488
|
key: 'trl',
|
|
@@ -22460,8 +22491,8 @@ function renderBody(h, $xeTable) {
|
|
|
22460
22491
|
}, resizableOpts.showDragTip ? [h('div', {
|
|
22461
22492
|
class: 'vxe-table--resizable-number-tip'
|
|
22462
22493
|
})] : []),
|
|
22463
|
-
/**
|
|
22464
|
-
* 加载中
|
|
22494
|
+
/**
|
|
22495
|
+
* 加载中
|
|
22465
22496
|
*/
|
|
22466
22497
|
VxeUILoadingComponent ? h(VxeUILoadingComponent, {
|
|
22467
22498
|
key: 'lg',
|
|
@@ -22489,8 +22520,8 @@ function renderBody(h, $xeTable) {
|
|
|
22489
22520
|
$gantt: $xeGantt,
|
|
22490
22521
|
loading: currLoading
|
|
22491
22522
|
}, h)) : table_renderEmptyElement($xeTable),
|
|
22492
|
-
/**
|
|
22493
|
-
* 拖拽提示
|
|
22523
|
+
/**
|
|
22524
|
+
* 拖拽提示
|
|
22494
22525
|
*/
|
|
22495
22526
|
renderDragTip(h, this)])]), h('div', {
|
|
22496
22527
|
key: 'fpw',
|
|
@@ -22498,8 +22529,8 @@ function renderBody(h, $xeTable) {
|
|
|
22498
22529
|
}, [h('div', {
|
|
22499
22530
|
ref: 'refCustomPopupToElem'
|
|
22500
22531
|
}, [
|
|
22501
|
-
/**
|
|
22502
|
-
* 自定义列
|
|
22532
|
+
/**
|
|
22533
|
+
* 自定义列
|
|
22503
22534
|
*/
|
|
22504
22535
|
initStore.custom ? h(panel, {
|
|
22505
22536
|
key: 'cs',
|
|
@@ -22512,8 +22543,8 @@ function renderBody(h, $xeTable) {
|
|
|
22512
22543
|
}, [h('div', {
|
|
22513
22544
|
ref: 'refPopupWrapperElem'
|
|
22514
22545
|
}, [
|
|
22515
|
-
/**
|
|
22516
|
-
* 筛选
|
|
22546
|
+
/**
|
|
22547
|
+
* 筛选
|
|
22517
22548
|
*/
|
|
22518
22549
|
initStore.filter ? h(filter_panel, {
|
|
22519
22550
|
key: 'tf',
|
|
@@ -22522,15 +22553,15 @@ function renderBody(h, $xeTable) {
|
|
|
22522
22553
|
filterStore
|
|
22523
22554
|
}
|
|
22524
22555
|
}) : table_renderEmptyElement($xeTable),
|
|
22525
|
-
/**
|
|
22526
|
-
* 快捷菜单
|
|
22556
|
+
/**
|
|
22557
|
+
* 快捷菜单
|
|
22527
22558
|
*/
|
|
22528
22559
|
isContentMenu ? h(menu_panel, {
|
|
22529
22560
|
key: 'tm',
|
|
22530
22561
|
ref: 'refTableMenu'
|
|
22531
22562
|
}) : table_renderEmptyElement($xeTable)])]),
|
|
22532
|
-
/**
|
|
22533
|
-
* 导入
|
|
22563
|
+
/**
|
|
22564
|
+
* 导入
|
|
22534
22565
|
*/
|
|
22535
22566
|
initStore.import && this.importConfig ? h(import_panel, {
|
|
22536
22567
|
key: 'it',
|
|
@@ -22539,8 +22570,8 @@ function renderBody(h, $xeTable) {
|
|
|
22539
22570
|
storeData: this.importStore
|
|
22540
22571
|
}
|
|
22541
22572
|
}) : table_renderEmptyElement($xeTable),
|
|
22542
|
-
/**
|
|
22543
|
-
* 导出
|
|
22573
|
+
/**
|
|
22574
|
+
* 导出
|
|
22544
22575
|
*/
|
|
22545
22576
|
initStore.export && (this.exportConfig || this.printConfig) ? h(export_panel, {
|
|
22546
22577
|
key: 'et',
|
|
@@ -22549,8 +22580,8 @@ function renderBody(h, $xeTable) {
|
|
|
22549
22580
|
storeData: this.exportStore
|
|
22550
22581
|
}
|
|
22551
22582
|
}) : table_renderEmptyElement($xeTable), h('div', {}, [
|
|
22552
|
-
/**
|
|
22553
|
-
* 提示相关
|
|
22583
|
+
/**
|
|
22584
|
+
* 提示相关
|
|
22554
22585
|
*/
|
|
22555
22586
|
VxeUITooltipComponent ? h(VxeUITooltipComponent, {
|
|
22556
22587
|
key: 'ctp',
|
|
@@ -22560,8 +22591,8 @@ function renderBody(h, $xeTable) {
|
|
|
22560
22591
|
enterable: false
|
|
22561
22592
|
}
|
|
22562
22593
|
}) : table_renderEmptyElement($xeTable),
|
|
22563
|
-
/**
|
|
22564
|
-
* 工具提示
|
|
22594
|
+
/**
|
|
22595
|
+
* 工具提示
|
|
22565
22596
|
*/
|
|
22566
22597
|
VxeUITooltipComponent ? h(VxeUITooltipComponent, {
|
|
22567
22598
|
key: 'btp',
|
|
@@ -22633,8 +22664,8 @@ function renderBody(h, $xeTable) {
|
|
|
22633
22664
|
}
|
|
22634
22665
|
} : {}
|
|
22635
22666
|
}) : table_renderEmptyElement($xeTable),
|
|
22636
|
-
/**
|
|
22637
|
-
* 校验提示
|
|
22667
|
+
/**
|
|
22668
|
+
* 校验提示
|
|
22638
22669
|
*/
|
|
22639
22670
|
VxeUITooltipComponent && this.editRules && validOpts.showErrorMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip') ? h(VxeUITooltipComponent, {
|
|
22640
22671
|
key: 'vtp',
|
|
@@ -23159,8 +23190,8 @@ function toolbar_createInternalData() {
|
|
|
23159
23190
|
}
|
|
23160
23191
|
return downVNs;
|
|
23161
23192
|
},
|
|
23162
|
-
/**
|
|
23163
|
-
* 渲染按钮
|
|
23193
|
+
/**
|
|
23194
|
+
* 渲染按钮
|
|
23164
23195
|
*/
|
|
23165
23196
|
renderLeftBtns(h) {
|
|
23166
23197
|
// 使用已安装的组件,如果未安装则不渲染
|
|
@@ -23243,8 +23274,8 @@ function toolbar_createInternalData() {
|
|
|
23243
23274
|
$table: $table
|
|
23244
23275
|
})) : [])];
|
|
23245
23276
|
},
|
|
23246
|
-
/**
|
|
23247
|
-
* 渲染右侧工具
|
|
23277
|
+
/**
|
|
23278
|
+
* 渲染右侧工具
|
|
23248
23279
|
*/
|
|
23249
23280
|
renderRightTools(h) {
|
|
23250
23281
|
// 使用已安装的组件,如果未安装则不渲染
|
|
@@ -23989,8 +24020,8 @@ function grid_createInternalData() {
|
|
|
23989
24020
|
const $xeGrid = this;
|
|
23990
24021
|
return $xeGrid.$refs.refElem;
|
|
23991
24022
|
},
|
|
23992
|
-
/**
|
|
23993
|
-
* 获取需要排除的高度
|
|
24023
|
+
/**
|
|
24024
|
+
* 获取需要排除的高度
|
|
23994
24025
|
*/
|
|
23995
24026
|
getExcludeHeight() {
|
|
23996
24027
|
const $xeGrid = this;
|
|
@@ -24201,18 +24232,18 @@ function grid_createInternalData() {
|
|
|
24201
24232
|
}
|
|
24202
24233
|
}
|
|
24203
24234
|
},
|
|
24204
|
-
/**
|
|
24205
|
-
* 提交指令,支持 code 或 button
|
|
24206
|
-
* @param {String/Object} code 字符串或对象
|
|
24235
|
+
/**
|
|
24236
|
+
* 提交指令,支持 code 或 button
|
|
24237
|
+
* @param {String/Object} code 字符串或对象
|
|
24207
24238
|
*/
|
|
24208
24239
|
commitProxy(proxyTarget, ...args) {
|
|
24209
24240
|
const $xeGrid = this;
|
|
24210
24241
|
const props = $xeGrid;
|
|
24211
24242
|
const reactData = $xeGrid.reactData;
|
|
24212
24243
|
const internalData = $xeGrid.internalData;
|
|
24213
|
-
/**
|
|
24214
|
-
* 已废弃
|
|
24215
|
-
* @deprecated
|
|
24244
|
+
/**
|
|
24245
|
+
* 已废弃
|
|
24246
|
+
* @deprecated
|
|
24216
24247
|
*/
|
|
24217
24248
|
const toolbar = props.toolbar;
|
|
24218
24249
|
const {
|
|
@@ -25670,16 +25701,16 @@ function getFormatDate(value, props, defaultFormat) {
|
|
|
25670
25701
|
function getLabelFormatDate(value, props) {
|
|
25671
25702
|
return getFormatDate(value, props, render_getI18n(`vxe.input.date.labelFormat.${props.type || 'date'}`));
|
|
25672
25703
|
}
|
|
25673
|
-
/**
|
|
25674
|
-
* 已废弃
|
|
25675
|
-
* @deprecated
|
|
25704
|
+
/**
|
|
25705
|
+
* 已废弃
|
|
25706
|
+
* @deprecated
|
|
25676
25707
|
*/
|
|
25677
25708
|
function getOldComponentName(name) {
|
|
25678
25709
|
return `vxe-${name.replace('$', '')}`;
|
|
25679
25710
|
}
|
|
25680
|
-
/**
|
|
25681
|
-
* 已废弃
|
|
25682
|
-
* @deprecated
|
|
25711
|
+
/**
|
|
25712
|
+
* 已废弃
|
|
25713
|
+
* @deprecated
|
|
25683
25714
|
*/
|
|
25684
25715
|
function getOldComponent({
|
|
25685
25716
|
name
|
|
@@ -25761,12 +25792,12 @@ function getCellLabelVNs(h, renderOpts, params, cellLabel, opts) {
|
|
|
25761
25792
|
class: 'vxe-cell--placeholder'
|
|
25762
25793
|
}, formatText(getFuncText(placeholder), 1))] : formatText(cellLabel, 1))];
|
|
25763
25794
|
}
|
|
25764
|
-
/**
|
|
25765
|
-
* 原生事件处理
|
|
25766
|
-
* @param renderOpts
|
|
25767
|
-
* @param params
|
|
25768
|
-
* @param modelFunc
|
|
25769
|
-
* @param changeFunc
|
|
25795
|
+
/**
|
|
25796
|
+
* 原生事件处理
|
|
25797
|
+
* @param renderOpts
|
|
25798
|
+
* @param params
|
|
25799
|
+
* @param modelFunc
|
|
25800
|
+
* @param changeFunc
|
|
25770
25801
|
*/
|
|
25771
25802
|
function getNativeElementOns(renderOpts, params, eFns) {
|
|
25772
25803
|
const {
|
|
@@ -25819,12 +25850,12 @@ function getNativeElementOns(renderOpts, params, eFns) {
|
|
|
25819
25850
|
}
|
|
25820
25851
|
const blurEvent = 'blur';
|
|
25821
25852
|
const clearEvent = 'clear';
|
|
25822
|
-
/**
|
|
25823
|
-
* 组件事件处理
|
|
25824
|
-
* @param renderOpts
|
|
25825
|
-
* @param params
|
|
25826
|
-
* @param modelFunc
|
|
25827
|
-
* @param changeFunc
|
|
25853
|
+
/**
|
|
25854
|
+
* 组件事件处理
|
|
25855
|
+
* @param renderOpts
|
|
25856
|
+
* @param params
|
|
25857
|
+
* @param modelFunc
|
|
25858
|
+
* @param changeFunc
|
|
25828
25859
|
*/
|
|
25829
25860
|
function getComponentOns(renderOpts, params, eFns, eventOns) {
|
|
25830
25861
|
const {
|
|
@@ -26041,9 +26072,9 @@ function getNativeFilterOns(renderOpts, params, option) {
|
|
|
26041
26072
|
}
|
|
26042
26073
|
});
|
|
26043
26074
|
}
|
|
26044
|
-
/**
|
|
26045
|
-
* 单元格可编辑渲染-原生的标签
|
|
26046
|
-
* input、textarea、select
|
|
26075
|
+
/**
|
|
26076
|
+
* 单元格可编辑渲染-原生的标签
|
|
26077
|
+
* input、textarea、select
|
|
26047
26078
|
*/
|
|
26048
26079
|
function nativeEditRender(h, renderOpts, params) {
|
|
26049
26080
|
const {
|
|
@@ -26108,9 +26139,9 @@ function radioAndCheckboxGroupEditRender(h, renderOpts, params) {
|
|
|
26108
26139
|
on: getEditOns(renderOpts, params)
|
|
26109
26140
|
})];
|
|
26110
26141
|
}
|
|
26111
|
-
/**
|
|
26112
|
-
* 已废弃
|
|
26113
|
-
* @deprecated
|
|
26142
|
+
/**
|
|
26143
|
+
* 已废弃
|
|
26144
|
+
* @deprecated
|
|
26114
26145
|
*/
|
|
26115
26146
|
function oldEditRender(h, renderOpts, params) {
|
|
26116
26147
|
const {
|
|
@@ -26123,9 +26154,9 @@ function oldEditRender(h, renderOpts, params) {
|
|
|
26123
26154
|
on: getEditOns(renderOpts, params)
|
|
26124
26155
|
})];
|
|
26125
26156
|
}
|
|
26126
|
-
/**
|
|
26127
|
-
* 已废弃
|
|
26128
|
-
* @deprecated
|
|
26157
|
+
/**
|
|
26158
|
+
* 已废弃
|
|
26159
|
+
* @deprecated
|
|
26129
26160
|
*/
|
|
26130
26161
|
function oldButtonEditRender(h, renderOpts, params) {
|
|
26131
26162
|
return [h('vxe-button', {
|
|
@@ -26133,9 +26164,9 @@ function oldButtonEditRender(h, renderOpts, params) {
|
|
|
26133
26164
|
on: getComponentOns(renderOpts, params)
|
|
26134
26165
|
})];
|
|
26135
26166
|
}
|
|
26136
|
-
/**
|
|
26137
|
-
* 已废弃
|
|
26138
|
-
* @deprecated
|
|
26167
|
+
/**
|
|
26168
|
+
* 已废弃
|
|
26169
|
+
* @deprecated
|
|
26139
26170
|
*/
|
|
26140
26171
|
function oldButtonsEditRender(h, renderOpts, params) {
|
|
26141
26172
|
const {
|
|
@@ -26162,8 +26193,8 @@ function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
|
|
|
26162
26193
|
}
|
|
26163
26194
|
return [];
|
|
26164
26195
|
}
|
|
26165
|
-
/**
|
|
26166
|
-
* 渲染原生的 option 标签
|
|
26196
|
+
/**
|
|
26197
|
+
* 渲染原生的 option 标签
|
|
26167
26198
|
*/
|
|
26168
26199
|
function renderNativeOptions(h, options, renderOpts, params) {
|
|
26169
26200
|
const {
|
|
@@ -26242,9 +26273,9 @@ function defaultFilterOptions() {
|
|
|
26242
26273
|
data: null
|
|
26243
26274
|
}];
|
|
26244
26275
|
}
|
|
26245
|
-
/**
|
|
26246
|
-
* 已废弃
|
|
26247
|
-
* @deprecated
|
|
26276
|
+
/**
|
|
26277
|
+
* 已废弃
|
|
26278
|
+
* @deprecated
|
|
26248
26279
|
*/
|
|
26249
26280
|
function oldFilterRender(h, renderOpts, params) {
|
|
26250
26281
|
const {
|
|
@@ -26330,9 +26361,9 @@ function defaultTableOrTreeSelectEditRender(h, renderOpts, params) {
|
|
|
26330
26361
|
on: getEditOns(renderOpts, params)
|
|
26331
26362
|
})];
|
|
26332
26363
|
}
|
|
26333
|
-
/**
|
|
26334
|
-
* 已废弃
|
|
26335
|
-
* @deprecated
|
|
26364
|
+
/**
|
|
26365
|
+
* 已废弃
|
|
26366
|
+
* @deprecated
|
|
26336
26367
|
*/
|
|
26337
26368
|
function oldSelectEditRender(h, renderOpts, params) {
|
|
26338
26369
|
const {
|
|
@@ -26634,8 +26665,8 @@ function handleSetTreeSelectValue(renderOpts, params) {
|
|
|
26634
26665
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, field, cellValue);
|
|
26635
26666
|
}
|
|
26636
26667
|
}
|
|
26637
|
-
/**
|
|
26638
|
-
* 表格 - 渲染器
|
|
26668
|
+
/**
|
|
26669
|
+
* 表格 - 渲染器
|
|
26639
26670
|
*/
|
|
26640
26671
|
render_renderer.mixin({
|
|
26641
26672
|
input: {
|
|
@@ -27134,9 +27165,9 @@ render_renderer.mixin({
|
|
|
27134
27165
|
})];
|
|
27135
27166
|
}
|
|
27136
27167
|
},
|
|
27137
|
-
/**
|
|
27138
|
-
* 已废弃,被 FormatSelect 替换
|
|
27139
|
-
* @deprecated
|
|
27168
|
+
/**
|
|
27169
|
+
* 已废弃,被 FormatSelect 替换
|
|
27170
|
+
* @deprecated
|
|
27140
27171
|
*/
|
|
27141
27172
|
formatOption: {
|
|
27142
27173
|
renderTableDefault(h, renderOpts, params) {
|
|
@@ -27230,9 +27261,9 @@ render_renderer.mixin({
|
|
|
27230
27261
|
tableCellPasteMethod: handleSetTreeSelectValue,
|
|
27231
27262
|
tableExportMethod: handleExportTreeSelectMethod
|
|
27232
27263
|
},
|
|
27233
|
-
/**
|
|
27234
|
-
* 已废弃,被 FormatTreeSelect 替换
|
|
27235
|
-
* @deprecated
|
|
27264
|
+
/**
|
|
27265
|
+
* 已废弃,被 FormatTreeSelect 替换
|
|
27266
|
+
* @deprecated
|
|
27236
27267
|
*/
|
|
27237
27268
|
formatTree: {
|
|
27238
27269
|
renderTableDefault(h, renderOpts, params) {
|