vxe-table 3.23.4 → 3.23.6
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/mixin.js +1 -1
- package/es/table/module/filter/mixin.js +71 -56
- package/es/table/module/keyboard/mixin.js +3 -5
- package/es/table/src/body.js +3 -3
- package/es/table/src/footer.js +3 -3
- package/es/table/src/header.js +6 -6
- package/es/table/src/methods.js +128 -68
- package/es/table/src/table.js +10 -2
- package/es/table/src/util.js +6 -5
- package/es/table/style.css +1 -1
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +162 -0
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +1 -1
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +321 -134
- 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/mixin.js +1 -1
- package/lib/table/module/custom/mixin.min.js +1 -1
- package/lib/table/module/filter/mixin.js +69 -58
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +3 -6
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/src/body.js +5 -4
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +5 -4
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +10 -8
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +46 -44
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +10 -2
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +6 -5
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +1 -1
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +167 -0
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +1 -1
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/custom/mixin.ts +1 -2
- package/packages/table/module/filter/mixin.ts +72 -53
- package/packages/table/module/keyboard/mixin.ts +3 -5
- package/packages/table/src/body.ts +3 -3
- package/packages/table/src/footer.ts +3 -3
- package/packages/table/src/header.ts +6 -6
- package/packages/table/src/methods.ts +166 -80
- package/packages/table/src/table.ts +10 -2
- package/packages/table/src/util.ts +9 -6
- package/packages/ui/src/dom.ts +176 -0
- package/styles/components/table-module/filter.scss +1 -1
- package/styles/theme/base.scss +2 -0
- package/styles/theme/dark.scss +4 -4
- package/styles/theme/light.scss +4 -4
- package/styles/variable.scss +4 -4
- /package/es/{iconfont.1788399048088.ttf → iconfont.1788695175944.ttf} +0 -0
- /package/es/{iconfont.1788399048088.woff → iconfont.1788695175944.woff} +0 -0
- /package/es/{iconfont.1788399048088.woff2 → iconfont.1788695175944.woff2} +0 -0
- /package/lib/{iconfont.1788399048088.ttf → iconfont.1788695175944.ttf} +0 -0
- /package/lib/{iconfont.1788399048088.woff → iconfont.1788695175944.woff} +0 -0
- /package/lib/{iconfont.1788399048088.woff2 → iconfont.1788695175944.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -3314,7 +3314,7 @@ function getDefaultConfig(val1, def1) {
|
|
|
3314
3314
|
/* unused harmony import specifier */ var VxeUI;
|
|
3315
3315
|
|
|
3316
3316
|
|
|
3317
|
-
const version = "3.23.
|
|
3317
|
+
const version = "3.23.6";
|
|
3318
3318
|
core_.VxeUI.version = version;
|
|
3319
3319
|
core_.VxeUI.tableVersion = version;
|
|
3320
3320
|
core_.VxeUI.setConfig({
|
|
@@ -4056,6 +4056,18 @@ function hasEventInputTarget(target) {
|
|
|
4056
4056
|
const tagName = target ? target.tagName : '';
|
|
4057
4057
|
return tagName && ['input', 'textarea'].includes(tagName.toLowerCase());
|
|
4058
4058
|
}
|
|
4059
|
+
/**
|
|
4060
|
+
* 判断是否由内部可复用控件触发,输入框带有 vxe-reusekeep-contro
|
|
4061
|
+
*/
|
|
4062
|
+
function hasReusekeepControl(elem) {
|
|
4063
|
+
if (elem) {
|
|
4064
|
+
return hasClass(elem, 'vxe-reusekeep-contro');
|
|
4065
|
+
}
|
|
4066
|
+
return false;
|
|
4067
|
+
}
|
|
4068
|
+
function hasAxternalInputTarget(target) {
|
|
4069
|
+
return hasEventInputTarget(target) ? !hasReusekeepControl(target) : false;
|
|
4070
|
+
}
|
|
4059
4071
|
const scrollIntoViewIfNeeded = 'scrollIntoViewIfNeeded';
|
|
4060
4072
|
const scrollIntoView = 'scrollIntoView';
|
|
4061
4073
|
function scrollToView(elem) {
|
|
@@ -4096,6 +4108,158 @@ function wheelScrollTopTo(diffNum, cb) {
|
|
|
4096
4108
|
wtaFrame = null;
|
|
4097
4109
|
});
|
|
4098
4110
|
}
|
|
4111
|
+
/**
|
|
4112
|
+
* 通用定位计算
|
|
4113
|
+
*/
|
|
4114
|
+
function updatePanelPlacement(targetElem, panelElem, options) {
|
|
4115
|
+
const {
|
|
4116
|
+
defaultTop,
|
|
4117
|
+
defaultLeft,
|
|
4118
|
+
placement,
|
|
4119
|
+
defaultPlacement,
|
|
4120
|
+
teleportTo,
|
|
4121
|
+
marginSize,
|
|
4122
|
+
isMinWidth
|
|
4123
|
+
} = Object.assign({
|
|
4124
|
+
teleportTo: false,
|
|
4125
|
+
marginSize: 18,
|
|
4126
|
+
isMinWidth: true
|
|
4127
|
+
}, options);
|
|
4128
|
+
let panelPlacement = 'bottom';
|
|
4129
|
+
let top = '';
|
|
4130
|
+
let bottom = '';
|
|
4131
|
+
let left = 0;
|
|
4132
|
+
let minWidth = '';
|
|
4133
|
+
let arrowLeft = '';
|
|
4134
|
+
const stys = {};
|
|
4135
|
+
if (panelElem && targetElem) {
|
|
4136
|
+
const bodyEl = document.body;
|
|
4137
|
+
const parentWrapperEl = getPopupWrapperElement(panelElem);
|
|
4138
|
+
if (parentWrapperEl) {
|
|
4139
|
+
const targetWidth = targetElem.offsetWidth;
|
|
4140
|
+
const targetHeight = targetElem.offsetHeight;
|
|
4141
|
+
const panelWidth = panelElem.offsetWidth;
|
|
4142
|
+
const panelHeight = panelElem.offsetHeight;
|
|
4143
|
+
const parentWrapperRect = parentWrapperEl.getBoundingClientRect();
|
|
4144
|
+
const panelRect = panelElem.getBoundingClientRect();
|
|
4145
|
+
const targetRect = targetElem.getBoundingClientRect();
|
|
4146
|
+
const visibleHeight = bodyEl.clientHeight;
|
|
4147
|
+
const visibleWidth = bodyEl.clientWidth;
|
|
4148
|
+
const offsetLeft = parentWrapperRect.left;
|
|
4149
|
+
const offsetTop = parentWrapperRect.top;
|
|
4150
|
+
const targetLeft = targetRect.left;
|
|
4151
|
+
const targetTop = targetRect.top;
|
|
4152
|
+
minWidth = targetElem.offsetWidth;
|
|
4153
|
+
if (teleportTo) {
|
|
4154
|
+
left = defaultLeft || targetLeft - (panelWidth - targetWidth) / 2;
|
|
4155
|
+
top = defaultTop || targetTop + targetHeight;
|
|
4156
|
+
if (placement === 'top') {
|
|
4157
|
+
panelPlacement = 'top';
|
|
4158
|
+
top = targetTop - panelHeight;
|
|
4159
|
+
} else if (!placement) {
|
|
4160
|
+
if (defaultPlacement === 'top') {
|
|
4161
|
+
panelPlacement = 'top';
|
|
4162
|
+
if (!defaultTop) {
|
|
4163
|
+
top = targetTop - panelHeight;
|
|
4164
|
+
}
|
|
4165
|
+
// 如果上面不够放,则向下
|
|
4166
|
+
if (top < marginSize) {
|
|
4167
|
+
panelPlacement = 'bottom';
|
|
4168
|
+
top = targetTop + targetHeight;
|
|
4169
|
+
}
|
|
4170
|
+
// 如果下面不够放,则向上(优先)
|
|
4171
|
+
if (top + panelHeight + marginSize > visibleHeight) {
|
|
4172
|
+
panelPlacement = 'top';
|
|
4173
|
+
top = targetTop - panelHeight;
|
|
4174
|
+
}
|
|
4175
|
+
} else {
|
|
4176
|
+
// 如果下面不够放,则向上
|
|
4177
|
+
if (top + panelHeight + marginSize > visibleHeight) {
|
|
4178
|
+
panelPlacement = 'top';
|
|
4179
|
+
top = targetTop - panelHeight;
|
|
4180
|
+
}
|
|
4181
|
+
// 如果上面不够放,则向下(优先)
|
|
4182
|
+
if (top < marginSize) {
|
|
4183
|
+
panelPlacement = 'bottom';
|
|
4184
|
+
top = targetTop + targetHeight;
|
|
4185
|
+
}
|
|
4186
|
+
}
|
|
4187
|
+
}
|
|
4188
|
+
// 如果溢出右边
|
|
4189
|
+
if (left + panelWidth + marginSize > visibleWidth) {
|
|
4190
|
+
left -= left + panelWidth + marginSize - visibleWidth;
|
|
4191
|
+
}
|
|
4192
|
+
// 如果溢出左边
|
|
4193
|
+
if (left < marginSize) {
|
|
4194
|
+
left = marginSize;
|
|
4195
|
+
}
|
|
4196
|
+
// 偏移
|
|
4197
|
+
top -= offsetTop;
|
|
4198
|
+
left -= offsetLeft;
|
|
4199
|
+
} else {
|
|
4200
|
+
if (placement === 'top') {
|
|
4201
|
+
panelPlacement = 'top';
|
|
4202
|
+
bottom = targetHeight;
|
|
4203
|
+
} else if (!placement) {
|
|
4204
|
+
// 如果下面不够放,则向上
|
|
4205
|
+
top = targetHeight;
|
|
4206
|
+
if (targetTop + targetHeight + panelHeight + marginSize > visibleHeight) {
|
|
4207
|
+
// 如果上面不够放,则向下(优先)
|
|
4208
|
+
if (targetTop - targetHeight - panelHeight > marginSize) {
|
|
4209
|
+
panelPlacement = 'top';
|
|
4210
|
+
top = '';
|
|
4211
|
+
bottom = targetHeight;
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
4214
|
+
}
|
|
4215
|
+
// 是否超出右侧
|
|
4216
|
+
if (panelRect.left + panelRect.width + marginSize > visibleWidth) {
|
|
4217
|
+
left = -(panelRect.left + panelRect.width + marginSize - visibleWidth);
|
|
4218
|
+
}
|
|
4219
|
+
}
|
|
4220
|
+
if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(top)) {
|
|
4221
|
+
stys.top = toCssUnit(top);
|
|
4222
|
+
}
|
|
4223
|
+
if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(bottom)) {
|
|
4224
|
+
stys.bottom = toCssUnit(bottom);
|
|
4225
|
+
}
|
|
4226
|
+
if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(left)) {
|
|
4227
|
+
stys.left = toCssUnit(left);
|
|
4228
|
+
}
|
|
4229
|
+
if (isMinWidth && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(minWidth)) {
|
|
4230
|
+
stys.minWidth = toCssUnit(minWidth);
|
|
4231
|
+
}
|
|
4232
|
+
// 箭头
|
|
4233
|
+
if (left === targetLeft) {
|
|
4234
|
+
if (targetWidth <= panelWidth) {
|
|
4235
|
+
arrowLeft = targetWidth / 2;
|
|
4236
|
+
}
|
|
4237
|
+
} else if (left < targetLeft) {
|
|
4238
|
+
if (left + panelWidth > targetLeft + targetWidth) {
|
|
4239
|
+
arrowLeft = targetLeft - left + targetWidth / 2;
|
|
4240
|
+
} else {
|
|
4241
|
+
arrowLeft = targetLeft - left + (panelWidth - (targetLeft - left)) / 2;
|
|
4242
|
+
}
|
|
4243
|
+
}
|
|
4244
|
+
}
|
|
4245
|
+
}
|
|
4246
|
+
return {
|
|
4247
|
+
top: top || 0,
|
|
4248
|
+
bottom: bottom || 0,
|
|
4249
|
+
left: left || 0,
|
|
4250
|
+
arrowLeft: arrowLeft || 0,
|
|
4251
|
+
style: stys,
|
|
4252
|
+
placement: panelPlacement
|
|
4253
|
+
};
|
|
4254
|
+
}
|
|
4255
|
+
function getPopupWrapperElement(panelElem) {
|
|
4256
|
+
if (!panelElem) {
|
|
4257
|
+
return null;
|
|
4258
|
+
}
|
|
4259
|
+
const bodyEl = document.body;
|
|
4260
|
+
const parentEl = panelElem.parentElement;
|
|
4261
|
+
return (parentEl === bodyEl ? document.documentElement : parentEl) || null;
|
|
4262
|
+
}
|
|
4099
4263
|
function getPopupContainer(appendTo) {
|
|
4100
4264
|
const selectElem = appendTo && XEUtils.isFunction(appendTo) ? appendTo({}) : appendTo;
|
|
4101
4265
|
return selectElem || 'body';
|
|
@@ -4112,7 +4276,7 @@ function getPopupAppendElement(appendTo) {
|
|
|
4112
4276
|
const {
|
|
4113
4277
|
log: log_log
|
|
4114
4278
|
} = core_.VxeUI;
|
|
4115
|
-
const tableVersion = `table v${"3.23.
|
|
4279
|
+
const tableVersion = `table v${"3.23.6"}`;
|
|
4116
4280
|
function createComponentLog(name) {
|
|
4117
4281
|
const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
|
|
4118
4282
|
const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
|
|
@@ -4434,6 +4598,10 @@ function createInternalData() {
|
|
|
4434
4598
|
customMaxHeight: 0,
|
|
4435
4599
|
// 当前 hover 行
|
|
4436
4600
|
hoverRow: null,
|
|
4601
|
+
hoverCol: null,
|
|
4602
|
+
// 当前行
|
|
4603
|
+
currentRow: null,
|
|
4604
|
+
currentCol: null,
|
|
4437
4605
|
// 最后滚动位置
|
|
4438
4606
|
lastScrollLeft: 0,
|
|
4439
4607
|
lastScrollTop: 0,
|
|
@@ -4481,8 +4649,6 @@ function createInternalData() {
|
|
|
4481
4649
|
fullColumnFieldData: {},
|
|
4482
4650
|
fullCellHeightMaps: {},
|
|
4483
4651
|
fullCellStoreMaps: {},
|
|
4484
|
-
// 当前行
|
|
4485
|
-
currentRow: null,
|
|
4486
4652
|
// 合并表头单元格的数据
|
|
4487
4653
|
mergeHeaderList: [],
|
|
4488
4654
|
mergeHeaderMaps: {},
|
|
@@ -4581,8 +4747,6 @@ function createReactData() {
|
|
|
4581
4747
|
isAllSelected: false,
|
|
4582
4748
|
// 复选框属性,有选中且非全选状态
|
|
4583
4749
|
isIndeterminate: false,
|
|
4584
|
-
// 单选框属性,选中列
|
|
4585
|
-
currentColumn: null,
|
|
4586
4750
|
// 单选框属性,选中行
|
|
4587
4751
|
selectRadioRow: null,
|
|
4588
4752
|
// 表尾合计数据
|
|
@@ -4791,7 +4955,8 @@ function createReactData() {
|
|
|
4791
4955
|
dragTipText: '',
|
|
4792
4956
|
isDragResize: false,
|
|
4793
4957
|
isRowLoading: false,
|
|
4794
|
-
isColLoading: false
|
|
4958
|
+
isColLoading: false,
|
|
4959
|
+
currColFlag: 1
|
|
4795
4960
|
};
|
|
4796
4961
|
}
|
|
4797
4962
|
const maxKey = '__max';
|
|
@@ -8121,12 +8286,12 @@ if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scroll
|
|
|
8121
8286
|
* 加载列配置并恢复到初始状态
|
|
8122
8287
|
* 对于表格列需要重载、局部递增场景下可能会用到
|
|
8123
8288
|
* @param {ColumnInfo} columns 列配置
|
|
8124
|
-
*/reloadColumn(columns){return
|
|
8289
|
+
*/reloadColumn(columns){const $xeTable=this;return $xeTable.clearAll().then(()=>{return $xeTable.loadColumn(columns);});},handleInitColumn(collectColumn){const $xeTable=this;return handleInitColumn($xeTable,collectColumn);},/**
|
|
8125
8290
|
* 更新数据行的 Map
|
|
8126
8291
|
*/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};// 存在已删除数据
|
|
8127
8292
|
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;// 更新缓存
|
|
8128
8293
|
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;};// 源数据缓存
|
|
8129
|
-
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
|
|
8294
|
+
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 $xeTable.createData(childRecords).then(rows=>{if(keepSource){const rowid=getRowid($xeTable,row);const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableSourceData,item=>rowid===getRowid($xeTable,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($xeTable,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;});},/**
|
|
8130
8295
|
* 根据 tr 元素获取对应的 row 信息
|
|
8131
8296
|
* @param {Element} tr 元素
|
|
8132
8297
|
*/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;},/**
|
|
@@ -8145,8 +8310,8 @@ if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;ext
|
|
|
8145
8310
|
* 根据 row 获取渲染中的虚拟索引
|
|
8146
8311
|
* @param {Row} row 行对象
|
|
8147
8312
|
*/getVMRowIndex:createGetRowCacheProp('$index'),// 在 v3 中废弃
|
|
8148
|
-
_getRowIndex(row){methods_warnLog('vxe.error.delFunc',['_getRowIndex','getVTRowIndex']);return
|
|
8149
|
-
$getRowIndex(row){methods_warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);return
|
|
8313
|
+
_getRowIndex(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['_getRowIndex','getVTRowIndex']);return $xeTable.getVTRowIndex(row);},// 在 v3 中废弃
|
|
8314
|
+
$getRowIndex(row){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);return $xeTable.getVMRowIndex(row);},/**
|
|
8150
8315
|
* 根据 column 获取相对于 columns 中的索引
|
|
8151
8316
|
* @param {ColumnInfo} column 列配置
|
|
8152
8317
|
*/getColumnIndex:createGetColumnCacheProp('index'),/**
|
|
@@ -8156,8 +8321,8 @@ $getRowIndex(row){methods_warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowI
|
|
|
8156
8321
|
* 根据 column 获取渲染中的虚拟索引
|
|
8157
8322
|
* @param {ColumnInfo} column 列配置
|
|
8158
8323
|
*/getVMColumnIndex:createGetColumnCacheProp('$index'),// 在 v3 中废弃
|
|
8159
|
-
_getColumnIndex(column){methods_warnLog('vxe.error.delFunc',['_getColumnIndex','getVTColumnIndex']);return
|
|
8160
|
-
$getColumnIndex(column){methods_warnLog('vxe.error.delFunc',['$getColumnIndex','getVMColumnIndex']);return
|
|
8324
|
+
_getColumnIndex(column){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['_getColumnIndex','getVTColumnIndex']);return $xeTable.getVTColumnIndex(column);},// 在 v3 中废弃
|
|
8325
|
+
$getColumnIndex(column){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['$getColumnIndex','getVMColumnIndex']);return $xeTable.getVMColumnIndex(column);},/**
|
|
8161
8326
|
* 判断是否为索引列
|
|
8162
8327
|
* @param {ColumnInfo} column 列配置
|
|
8163
8328
|
*/isSeqColumn(column){return column&&column.type==='seq';},/**
|
|
@@ -8207,7 +8372,7 @@ if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid]
|
|
|
8207
8372
|
*/getColumnById(colid){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;return fullColumnIdData[colid]?fullColumnIdData[colid].column:null;},/**
|
|
8208
8373
|
* 根据列的字段名获取列
|
|
8209
8374
|
* @param {String} field 字段名
|
|
8210
|
-
*/getColumnByField(field){const $xeTable=this;const internalData=$xeTable;const{fullColumnFieldData}=internalData;return fullColumnFieldData[field]?fullColumnFieldData[field].column:null;},getParentColumn(fieldOrColumn){const
|
|
8375
|
+
*/getColumnByField(field){const $xeTable=this;const internalData=$xeTable;const{fullColumnFieldData}=internalData;return fullColumnFieldData[field]?fullColumnFieldData[field].column:null;},getParentColumn(fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;const column=handleFieldOrColumn($xeTable,fieldOrColumn);return column&&column.parentId&&fullColumnIdData[column.parentId]?fullColumnIdData[column.parentId].column:null;},/**
|
|
8211
8376
|
* 获取当前表格的列
|
|
8212
8377
|
* 收集到的全量列、全量表头列、处理条件之后的全量表头列、当前渲染中的表头列
|
|
8213
8378
|
*/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)};},/**
|
|
@@ -8224,7 +8389,7 @@ if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid]
|
|
|
8224
8389
|
* 获取表格的全量列
|
|
8225
8390
|
*/getFullColumns(){const $xeTable=this;const internalData=$xeTable;const{collectColumn}=internalData;return collectColumn.slice(0);},/**
|
|
8226
8391
|
* 获取数据,和 data 的行为一致,也可以指定索引获取数据
|
|
8227
|
-
*/getData(rowIndex){const tableSynchData=
|
|
8392
|
+
*/getData(rowIndex){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const tableSynchData=props.data||internalData.tableSynchData;return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(rowIndex)?tableSynchData.slice(0):tableSynchData[rowIndex];},/**
|
|
8228
8393
|
* 用于多选行,获取已选中的数据
|
|
8229
8394
|
*/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;},/**
|
|
8230
8395
|
* 预编译
|
|
@@ -8266,7 +8431,7 @@ if(!targetColumn.fixed&&isMaxFixedColumn){if(core_.VxeUI.modal){core_.VxeUI.moda
|
|
|
8266
8431
|
* 手动重置列的显示隐藏、列宽拖动的状态;
|
|
8267
8432
|
* 如果为 true 则重置所有状态
|
|
8268
8433
|
* 如果已关联工具栏,则会同步更新
|
|
8269
|
-
*/resetColumn(options){methods_warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return
|
|
8434
|
+
*/resetColumn(options){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return $xeTable.resetCustom(options);},/**
|
|
8270
8435
|
* @private
|
|
8271
8436
|
*/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);},/**
|
|
8272
8437
|
* 还原自定义列操作状态
|
|
@@ -8287,9 +8452,9 @@ if(isCustomFixed&&(column.fixed||'')!==(column.defaultFixed||'')){hasFixed=1;fix
|
|
|
8287
8452
|
reactData.isCustomStatus=true;}if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomAlign||isCustomHeaderAlign||isCustomFooterAlign||isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggGroup||isCustomAggFunc||isCustomPager)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return $xeTable.$nextTick();}const storeData=type==='reset'?{pagerData:{},alignData:{},headerAlignData:{},footerAlignData:{},resizableData:{},sortData:[],visibleData:{},fixedData:{},aggGroupData:{},aggFuncData:{}}:$xeTable.getCustomStoreData();if(updateStore){return updateStore({$table:$xeTable,id:tableId,type,storeData});}else{setCustomStorageMap(tableId,type==='reset'?null:storeData);}}return $xeTable.$nextTick();},handleUpdateDataQueue(){const $xeTable=this;const reactData=$xeTable;reactData.upDataFlag++;},handleRefreshColumnQueue(){const $xeTable=this;const reactData=$xeTable;reactData.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;// 复原状态
|
|
8288
8453
|
filterOptions.forEach(option=>{const{_checked,checked}=option;option._checked=checked;if(!checked&&_checked!==checked){if(frMethod){frMethod({option,column,$table:$xeTable});}}});$xeTable.checkFilterOptions();}},/**
|
|
8289
8454
|
* 刷新列配置
|
|
8290
|
-
*/refreshColumn(initSort){const $xeTable=this;if(initSort){handleUpdateColumn($xeTable);}return parseColumns($xeTable,true).then(()=>{return
|
|
8455
|
+
*/refreshColumn(initSort){const $xeTable=this;if(initSort){handleUpdateColumn($xeTable);}return parseColumns($xeTable,true).then(()=>{return $xeTable.refreshScroll();}).then(()=>{return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
8291
8456
|
* 指定列宽的列进行拆分
|
|
8292
|
-
*/analyColumnWidth(){const{
|
|
8457
|
+
*/analyColumnWidth(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{tableFullColumn}=internalData;const columnOpts=$xeTable.computeColumnOpts;const{width:defaultWidth,minWidth:defaultMinWidth}=columnOpts;const resizeList=[];const pxList=[];const pxMinList=[];const autoMinList=[];const scaleList=[];const scaleMinList=[];const autoList=[];const remainList=[];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(reactData.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;// 列之间的最小间距
|
|
8293
8458
|
const maxInterval=getColReMaxWidth(cellParams);// 列之间的最大间距
|
|
8294
8459
|
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;}}}}// 处理拖动事件
|
|
8295
8460
|
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);// 最大宽
|
|
@@ -8339,10 +8504,10 @@ internalData.isActivated=isActivated;}},/**
|
|
|
8339
8504
|
* 全局滚动事件
|
|
8340
8505
|
*/handleGlobalMousewheelEvent(){const $xeTable=this;$xeTable.closeTooltip();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
8341
8506
|
* 表格键盘事件
|
|
8342
|
-
*/keydownEvent(evnt){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{mouseConfig,keyboardConfig}=props;const{filterStore,ctxMenuStore,editStore}=reactData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;const isEsc=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);if(isEsc){
|
|
8343
|
-
|
|
8344
|
-
if(actived.row){const params=actived.args
|
|
8345
|
-
if(mouseConfig&&mouseOpts.selected){
|
|
8507
|
+
*/keydownEvent(evnt){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{mouseConfig,keyboardConfig}=props;const{filterStore,ctxMenuStore,editStore}=reactData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;const isEsc=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);if(isEsc){$xeTable.preventEvent(evnt,'event.keydown',null,()=>{$xeTable.dispatchEvent('keydown-start',{},evnt);if(keyboardConfig&&mouseConfig&&mouseOpts.area&&$xeTable.handleKdClAreaEvent){$xeTable.handleKdClAreaEvent(evnt);}else if(actived.row||filterStore.visible||ctxMenuStore.visible){evnt.stopPropagation();// 如果按下了 Esc 键,关闭快捷菜单、筛选
|
|
8508
|
+
$xeTable.closeFilter();$xeTable.closeMenu();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
|
|
8509
|
+
if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
|
|
8510
|
+
if(mouseConfig&&mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}}$xeTable.dispatchEvent('keydown',{},evnt);$xeTable.dispatchEvent('keydown-end',{},evnt);});}},contextMenuEvent(evnt){const $xeTable=this;$xeTable.dispatchEvent('context-menu',{},evnt);},/**
|
|
8346
8511
|
* 全局键盘事件
|
|
8347
8512
|
*/handleGlobalKeydownEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;// 该行为只对当前激活的表格有效
|
|
8348
8513
|
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 isProcess=methods_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.PROCESS);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 selectRow=selected.row;const selectColumn=selected.column;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
|
|
@@ -8370,7 +8535,7 @@ if(!beforeEditMethod||beforeEditMethod(params)){if(delMethod){delMethod(params);
|
|
|
8370
8535
|
$xeTable.updateFooter();$xeTable.dispatchEvent('cell-delete-value',params,evnt);}}}else if(hasBackspaceKey&&keyboardConfig&&keyboardOpts.isBack&&isEnableConf(editConfig)&&(selectRow||selectColumn)){if(!isEditStatus){const{backMethod}=keyboardOpts;// 如果是删除键
|
|
8371
8536
|
if(keyboardOpts.isDel&&isEnableConf(editConfig)&&(selectRow||selectColumn)){const params={row:selectRow,rowIndex:$xeTable.getRowIndex(selectRow),$rowIndex:$xeTable.getVMRowIndex(selectRow),_rowIndex:$xeTable.getVTRowIndex(selectRow),column:selectColumn,columnIndex:$xeTable.getColumnIndex(selectColumn),$columnIndex:$xeTable.getVMColumnIndex(selectColumn),_columnIndex:$xeTable.getVTColumnIndex(selectColumn),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};// 是否被禁用
|
|
8372
8537
|
if(!beforeEditMethod||beforeEditMethod(params)){if(backMethod){backMethod(params);}else{$xeTable.handleEdit(params,evnt,{isClear:true});}$xeTable.dispatchEvent('cell-backspace-value',params,evnt);}}}}else if(hasBackspaceKey&&keyboardConfig&&treeConfig&&keyboardOpts.isBack&&(rowOpts.isCurrent||highlightCurrentRow)&¤tRow){// 如果树形表格回退键关闭当前行返回父节点
|
|
8373
|
-
const{parent:parentRow}=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(internalData.afterTreeFullData,item=>item===currentRow,{children:childrenField});if(parentRow){evnt.preventDefault();const params={row:parentRow,rowIndex:$xeTable.getRowIndex(parentRow),$rowIndex:$xeTable.getVMRowIndex(parentRow),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};$xeTable.setTreeExpand(parentRow,false).then(()=>$xeTable.scrollToRow(parentRow)).then(()=>$xeTable.triggerCurrentRowEvent(evnt,params));}}else if(keyboardConfig&&keyboardOpts.isUndoRedo&&isControlKey&&(isZ||isY)&&!
|
|
8538
|
+
const{parent:parentRow}=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(internalData.afterTreeFullData,item=>item===currentRow,{children:childrenField});if(parentRow){evnt.preventDefault();const params={row:parentRow,rowIndex:$xeTable.getRowIndex(parentRow),$rowIndex:$xeTable.getVMRowIndex(parentRow),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};$xeTable.setTreeExpand(parentRow,false).then(()=>$xeTable.scrollToRow(parentRow)).then(()=>$xeTable.triggerCurrentRowEvent(evnt,params));}}else if(keyboardConfig&&keyboardOpts.isUndoRedo&&isControlKey&&(isZ||isY)&&!hasAxternalInputTarget(evnt.target)){if(isY||hasShiftKey&&isZ){// 恢复被撤销的操作:Ctrl + Y 或 Ctrl + Shift + Z
|
|
8374
8539
|
evnt.preventDefault();$xeTable.handleRedoStackEvent(evnt);}else if(isZ){// 撤销上一步操作:Ctrl + Z
|
|
8375
8540
|
evnt.preventDefault();$xeTable.handleUndoStackEvent(evnt);}}else if(keyboardConfig&&keyboardOpts.isEdit&&!isControlKey&&(isSpacebar||isProcess||keyCode>=48&&keyCode<=57||keyCode>=65&&keyCode<=90||keyCode>=96&&keyCode<=111||keyCode>=186&&keyCode<=192||keyCode>=219&&keyCode<=222)){const{editMode,editMethod}=keyboardOpts;// 启用编辑后,空格键功能将失效
|
|
8376
8541
|
// if (isSpacebar) {
|
|
@@ -8378,7 +8543,7 @@ evnt.preventDefault();$xeTable.handleUndoStackEvent(evnt);}}else if(keyboardConf
|
|
|
8378
8543
|
// }
|
|
8379
8544
|
// 如果是按下非功能键之外允许直接编辑
|
|
8380
8545
|
if(selectColumn&&selectRow&&isEnableConf(selectColumn.editRender)){const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;const params={row:selectRow,rowIndex:$xeTable.getRowIndex(selectRow),$rowIndex:$xeTable.getVMRowIndex(selectRow),_rowIndex:$xeTable.getVTRowIndex(selectRow),column:selectColumn,columnIndex:$xeTable.getColumnIndex(selectColumn),$columnIndex:$xeTable.getVMColumnIndex(selectColumn),_columnIndex:$xeTable.getVTColumnIndex(selectColumn),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};if(!beforeEditMethod||beforeEditMethod(params)){if(editMethod){editMethod(params);}else{let isClearValue=false;// 追加方式与覆盖式
|
|
8381
|
-
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
|
|
8546
|
+
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;const reactData=$xeTable;const{filterStore}=reactData;if(filterStore.visible){$xeTable.handleFilterStyle();}$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++;},/**
|
|
8382
8547
|
* 处理合并
|
|
8383
8548
|
*/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);}});}},/**
|
|
8384
8549
|
* 触发表头 tooltip 事件
|
|
@@ -8446,20 +8611,20 @@ if(!isSelected&&!halfSelect&&showReserveStatus){halfSelect=!external_root_XEUtil
|
|
|
8446
8611
|
* 获取复选框保留选中的行
|
|
8447
8612
|
*/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);}},/**
|
|
8448
8613
|
* 多选,选中所有事件
|
|
8449
|
-
*/triggerCheckAllEvent(evnt,value){const
|
|
8614
|
+
*/triggerCheckAllEvent(evnt,value){const{checkboxOpts}=this;const{trigger}=checkboxOpts;if(trigger==='manual'){return;}if(evnt){evnt.stopPropagation();}this.handleCheckAllEvent(evnt,value);},/**
|
|
8450
8615
|
* 多选,切换所有行的选中状态
|
|
8451
|
-
*/toggleAllCheckboxRow(){this.handleCheckAllEvent(null,!
|
|
8616
|
+
*/toggleAllCheckboxRow(){const $xeTable=this;const reactData=$xeTable;this.handleCheckAllEvent(null,!reactData.isAllSelected);return $xeTable.$nextTick();},/**
|
|
8452
8617
|
* 用于多选行,手动清空用户的选择
|
|
8453
8618
|
* 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
|
|
8454
8619
|
*/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 仅支持读取
|
|
8455
|
-
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
|
|
8620
|
+
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 $xeTable.$nextTick();},/**
|
|
8456
8621
|
* 单选,行选中事件
|
|
8457
|
-
*/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
|
|
8622
|
+
*/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 internalData=$xeTable;const{currentCol:oldValue}=internalData;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);// 已废弃
|
|
8458
8623
|
$xeTable.dispatchEvent('current-change',{oldValue,newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
8459
8624
|
* 用于当前行,设置某一行为高亮状态
|
|
8460
8625
|
* @param {Row} row 行对象
|
|
8461
|
-
*/setCurrentRow(row){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;const rowOpts=$xeTable.computeRowOpts
|
|
8462
|
-
|
|
8626
|
+
*/setCurrentRow(row){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;const rowOpts=$xeTable.computeRowOpts;$xeTable.clearCurrentRow();// this.clearCurrentColumn()
|
|
8627
|
+
internalData.currentRow=row;if(rowOpts.isCurrent||props.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 $xeTable.$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;},/**
|
|
8463
8628
|
* 用于单选行,设置某一行为选中状态
|
|
8464
8629
|
* @param {Row} row 行对象
|
|
8465
8630
|
*/setRadioRow(row){const $xeTable=this;return handleCheckedRadioRow($xeTable,row,true);},/**
|
|
@@ -8475,13 +8640,15 @@ this.currentRow=row;if(rowOpts.isCurrent||this.highlightCurrentRow){if(el){exter
|
|
|
8475
8640
|
* 用于单选行,获取当已选中的数据
|
|
8476
8641
|
*/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;},/**
|
|
8477
8642
|
* 行 hover 事件
|
|
8478
|
-
*/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(){
|
|
8643
|
+
*/triggerHoverEvent(evnt,{row}){const $xeTable=this;$xeTable.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(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const columnOpts=$xeTable.computeColumnOpts;return columnOpts.isCurrent||props.highlightCurrentColumn?internalData.currentCol:null;},/**
|
|
8479
8644
|
* 用于当前列,设置某列行为高亮状态
|
|
8480
8645
|
* @param {ColumnInfo} fieldOrColumn 列配置
|
|
8481
|
-
*/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();
|
|
8646
|
+
*/setCurrentColumn(fieldOrColumn){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const isMouseSelected=mouseConfig&&mouseOpts.selected;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){$xeTable.clearCurrentColumn();internalData.currentCol=column;reactData.currColFlag++;// 刷新当前列状态
|
|
8647
|
+
}return $xeTable.$nextTick().then(()=>{// 更新状选中态
|
|
8482
8648
|
if(isMouseSelected){$xeTable.addCellSelectedClass();}});},/**
|
|
8483
8649
|
* 用于当前列,手动清空当前高亮的状态
|
|
8484
|
-
*/clearCurrentColumn(){this.
|
|
8650
|
+
*/clearCurrentColumn(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.currentCol=null;reactData.currColFlag++;// 刷新当前列状态
|
|
8651
|
+
return $xeTable.$nextTick();},/**
|
|
8485
8652
|
* 列点击事件
|
|
8486
8653
|
* 如果是单击模式,则激活为编辑状态
|
|
8487
8654
|
* 如果是双击模式,则单击后选中状态
|
|
@@ -8556,29 +8723,29 @@ if(!remote||firstSortColumn&&firstSortColumn.remoteSort){$xeTable.handleTableDat
|
|
|
8556
8723
|
* 如果为空则清空所有列的排序条件
|
|
8557
8724
|
* @param {String} column 列或字段名
|
|
8558
8725
|
*/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 中废弃
|
|
8559
|
-
getSortColumn(){methods_warnLog('vxe.error.delFunc',['getSortColumn','getSortColumns']);return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(
|
|
8726
|
+
getSortColumn(){const $xeTable=this;const internalData=$xeTable;const{tableFullColumn}=internalData;methods_warnLog('vxe.error.delFunc',['getSortColumn','getSortColumns']);return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(tableFullColumn,column=>(column.sortable||column.remoteSort)&&column.order);},isSort(fieldOrColumn){const $xeTable=this;if(fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);return column&&column.sortable&&!!column.order;}return $xeTable.getSortColumns().length>0;},getSortColumns(){const $xeTable=this;const internalData=$xeTable;const sortOpts=$xeTable.computeSortOpts;const{multiple,chronological}=sortOpts;const sortList=[];const{tableFullColumn}=internalData;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();},/**
|
|
8560
8727
|
* 关闭筛选
|
|
8561
8728
|
* @param {Event} evnt 事件
|
|
8562
8729
|
*/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();},/**
|
|
8563
8730
|
* 判断指定列是否为筛选状态,如果为空则判断所有列
|
|
8564
8731
|
* @param {String} fieldOrColumn 字段名
|
|
8565
|
-
*/isActiveFilterByColumn(fieldOrColumn){const column=handleFieldOrColumn(
|
|
8566
|
-
isFilter(fieldOrColumn){return
|
|
8732
|
+
*/isActiveFilterByColumn(fieldOrColumn){const $xeTable=this;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){return column.filters&&column.filters.some(option=>option.checked);}return $xeTable.getCheckedFilters().length>0;},// 已废弃
|
|
8733
|
+
isFilter(fieldOrColumn){const $xeTable=this;return $xeTable.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,// 选项是覅多选
|
|
8567
8734
|
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();},/**
|
|
8568
8735
|
* 判断展开行是否懒加载完成
|
|
8569
8736
|
* @param {Row} row 行对象
|
|
8570
8737
|
*/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();},/**
|
|
8571
8738
|
* 重新懒加载展开行,并展开内容
|
|
8572
8739
|
* @param {Row} row 行对象
|
|
8573
|
-
*/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']);// 即将废弃
|
|
8574
|
-
return
|
|
8740
|
+
*/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){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['reloadExpandContent','reloadRowExpand']);// 即将废弃
|
|
8741
|
+
return $xeTable.reloadRowExpand(row);},/**
|
|
8575
8742
|
* 展开行事件
|
|
8576
8743
|
*/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);}},/**
|
|
8577
8744
|
* 切换展开行
|
|
8578
|
-
*/toggleRowExpand(row){return
|
|
8745
|
+
*/toggleRowExpand(row){const $xeTable=this;return $xeTable.setRowExpand(row,!$xeTable.isRowExpandByRow(row));},/**
|
|
8579
8746
|
* 设置所有行的展开与否
|
|
8580
8747
|
* @param {Boolean} expanded 是否展开
|
|
8581
|
-
*/setAllRowExpand(expanded){const{
|
|
8748
|
+
*/setAllRowExpand(expanded){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const treeOpts=$xeTable.computeTreeOpts;const{tableFullData,tableFullTreeData}=internalData;const childrenField=treeOpts.children||treeOpts.childrenField;let expandedRows=[];if(props.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 $xeTable.setRowExpand(expandedRows,expanded);},/**
|
|
8582
8749
|
* 设置展开行,二个参数设置这一行展开与否
|
|
8583
8750
|
* 支持单行
|
|
8584
8751
|
* 支持多行
|
|
@@ -8588,17 +8755,17 @@ return this.reloadRowExpand(row);},/**
|
|
|
8588
8755
|
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();});},/**
|
|
8589
8756
|
* 判断行是否为展开状态
|
|
8590
8757
|
* @param {Row} row 行对象
|
|
8591
|
-
*/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']);// 即将废弃
|
|
8592
|
-
return
|
|
8758
|
+
*/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){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['isExpandByRow','isRowExpandByRow']);// 即将废弃
|
|
8759
|
+
return $xeTable.isRowExpandByRow(row);},/**
|
|
8593
8760
|
* 手动清空展开行状态,数据会恢复成未展开的状态
|
|
8594
|
-
*/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
|
|
8761
|
+
*/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(){const $xeTable=this;const internalData=$xeTable;internalData.rowExpandedReserveRowMap={};return $xeTable.$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;},/**
|
|
8595
8762
|
* 内部方法、获取树表格状态
|
|
8596
8763
|
* @deprecated
|
|
8597
8764
|
* @private
|
|
8598
|
-
*/getTreeStatus(){if(
|
|
8765
|
+
*/getTreeStatus(){const $xeTable=this;const props=$xeTable;const treeOpts=$xeTable.computeTreeOpts;if(props.treeConfig){return{config:treeOpts,rowExpandeds:$xeTable.getTreeExpandRecords()};}return null;},/**
|
|
8599
8766
|
* 判断树节点是否懒加载完成
|
|
8600
8767
|
* @param {Row} row 行对象
|
|
8601
|
-
*/isTreeExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=
|
|
8768
|
+
*/isTreeExpandLoaded(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;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();},/**
|
|
8602
8769
|
* 重新懒加载树节点,并展开该节点
|
|
8603
8770
|
* @param {Row} row 行对象
|
|
8604
8771
|
*/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']);// 即将废弃
|
|
@@ -8608,7 +8775,7 @@ return $xeTable.reloadTreeExpand(row);},/**
|
|
|
8608
8775
|
* 展开树节点事件
|
|
8609
8776
|
*/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);}},/**
|
|
8610
8777
|
* 切换/展开树节点
|
|
8611
|
-
*/toggleTreeExpand(row){return
|
|
8778
|
+
*/toggleTreeExpand(row){const $xeTable=this;return $xeTable.setTreeExpand(row,!$xeTable.isTreeExpandByRow(row));},/**
|
|
8612
8779
|
* 设置所有树节点的展开与否
|
|
8613
8780
|
* @param {Boolean} expanded 是否展开
|
|
8614
8781
|
*/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();}});},/**
|
|
@@ -8617,13 +8784,13 @@ return $xeTable.reloadTreeExpand(row);},/**
|
|
|
8617
8784
|
* 支持多行
|
|
8618
8785
|
* @param {Array/Row} rows 行数据
|
|
8619
8786
|
* @param {Boolean} expanded 是否展开
|
|
8620
|
-
*/setTreeExpand(rows,expanded){const $xeTable=this;const
|
|
8621
|
-
if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{return handleBaseTreeExpand($xeTable,rows,expanded);}}}return
|
|
8787
|
+
*/setTreeExpand(rows,expanded){const $xeTable=this;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];}if(rows.length){// 如果为虚拟树
|
|
8788
|
+
if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{return handleBaseTreeExpand($xeTable,rows,expanded);}}}return $xeTable.$nextTick();},/**
|
|
8622
8789
|
* 判断行是否为树形节点展开状态
|
|
8623
8790
|
* @param {Row} row 行对象
|
|
8624
8791
|
*/isTreeExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{treeExpandedFlag}=reactData;const{treeExpandedMaps}=internalData;return!!treeExpandedFlag&&!!treeExpandedMaps[getRowid($xeTable,row)];},/**
|
|
8625
8792
|
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
8626
|
-
*/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
|
|
8793
|
+
*/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(){const $xeTable=this;const internalData=$xeTable;internalData.treeExpandedReserveRowMap={};return $xeTable.$nextTick();},/**
|
|
8627
8794
|
* 获取表格的滚动状态
|
|
8628
8795
|
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
8629
8796
|
* 获取表格的滚动数据
|
|
@@ -8674,7 +8841,7 @@ internalData._sToTime=setTimeout(()=>{internalData._sToTime=undefined;if(scrollY
|
|
|
8674
8841
|
* 更新列状态 updateStatus({ row, column }, cellValue)
|
|
8675
8842
|
* 如果组件值 v-model 发生 change 时,调用改函数用于更新某一列编辑状态
|
|
8676
8843
|
* 如果单元格配置了校验规则,则会进行校验
|
|
8677
|
-
*/updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;return
|
|
8844
|
+
*/updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;return $xeTable.$nextTick().then(()=>{const{editRules}=props;const{isActivated}=internalData;if(isActivated&&slotParams&&editRules){return $xeTable.handleCellRuleUpdateStatus('change',slotParams,cellValue);}});},/**
|
|
8678
8845
|
* 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
|
|
8679
8846
|
*/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);});},/**
|
|
8680
8847
|
* 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
@@ -8708,7 +8875,7 @@ emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,para
|
|
|
8708
8875
|
*************************//**
|
|
8709
8876
|
* 已废弃,被 getCellElement 替换
|
|
8710
8877
|
* @deprecated
|
|
8711
|
-
*/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
|
|
8878
|
+
*/getCell(row,column){const $xeTable=this;return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){const $xeTable=this;return row?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(list,item=>$xeTable.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;},/*************************
|
|
8712
8879
|
* Publish methods
|
|
8713
8880
|
*************************/getSetupOptions(){return methods_getConfig();}};const tablePrivateMethods={};const exportMethods=Object.assign({},tableMethods,tablePrivateMethods);// Module methods
|
|
8714
8881
|
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}`]) {
|
|
@@ -8850,7 +9017,6 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
8850
9017
|
dragRow,
|
|
8851
9018
|
overflowX,
|
|
8852
9019
|
overflowY,
|
|
8853
|
-
currentColumn,
|
|
8854
9020
|
scrollXLoad,
|
|
8855
9021
|
scrollYLoad,
|
|
8856
9022
|
mergeBodyFlag,
|
|
@@ -8859,7 +9025,8 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
8859
9025
|
resizeWidthFlag,
|
|
8860
9026
|
editStore,
|
|
8861
9027
|
isAllOverflow,
|
|
8862
|
-
validErrorMaps
|
|
9028
|
+
validErrorMaps,
|
|
9029
|
+
currColFlag
|
|
8863
9030
|
} = tableReactData;
|
|
8864
9031
|
const {
|
|
8865
9032
|
fullAllDataRowIdData,
|
|
@@ -8870,7 +9037,8 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
8870
9037
|
mergeBodyList,
|
|
8871
9038
|
scrollXStore,
|
|
8872
9039
|
scrollYStore,
|
|
8873
|
-
keepUpdateFieldMaps
|
|
9040
|
+
keepUpdateFieldMaps,
|
|
9041
|
+
currentCol
|
|
8874
9042
|
} = tableInternalData;
|
|
8875
9043
|
const cellOpts = $xeTable.computeCellOpts;
|
|
8876
9044
|
const validOpts = $xeTable.computeValidOpts;
|
|
@@ -9247,7 +9415,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
9247
9415
|
'col--active': editConfig && isEdit && actived.row === row && (actived.column === column || editOpts.mode === 'row'),
|
|
9248
9416
|
'col--valid-error': !!errorValidItem,
|
|
9249
9417
|
'show--valid-bg': errorValidItem && validOpts.showErrorBackground,
|
|
9250
|
-
'col--current':
|
|
9418
|
+
'col--current': currColFlag && currentCol === column
|
|
9251
9419
|
}, getClass(compCellClassName, cellParams), getClass(className, cellParams), getClass(allCellClassName, cellParams)],
|
|
9252
9420
|
key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || rowOpts.useKey || columnOpts.drag ? column.id : $columnIndex,
|
|
9253
9421
|
attrs: tdAttrs,
|
|
@@ -9803,19 +9971,20 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIn
|
|
|
9803
9971
|
mouseConfig
|
|
9804
9972
|
} = tableProps;
|
|
9805
9973
|
const {
|
|
9806
|
-
currentColumn,
|
|
9807
9974
|
dragCol,
|
|
9808
9975
|
scrollXLoad,
|
|
9809
9976
|
scrollYLoad,
|
|
9810
9977
|
overflowX,
|
|
9811
9978
|
mergeHeadFlag,
|
|
9812
|
-
tableColumn
|
|
9979
|
+
tableColumn,
|
|
9980
|
+
currColFlag
|
|
9813
9981
|
} = tableReactData;
|
|
9814
9982
|
const {
|
|
9815
9983
|
fullColumnIdData,
|
|
9816
9984
|
scrollXStore,
|
|
9817
9985
|
mergeHeaderList,
|
|
9818
|
-
mergeHeaderCellMaps
|
|
9986
|
+
mergeHeaderCellMaps,
|
|
9987
|
+
currentCol
|
|
9819
9988
|
} = tableInternalData;
|
|
9820
9989
|
const virtualXOpts = $xeTable.computeVirtualXOpts;
|
|
9821
9990
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
@@ -9984,7 +10153,7 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIn
|
|
|
9984
10153
|
'is--filter-active': hasFilter,
|
|
9985
10154
|
'is--drag-active': columnOpts.drag && !column.fixed && !isDisabledDrag && (isCrossDrag || isPeerDrag || !column.parentId),
|
|
9986
10155
|
'is--drag-disabled': columnOpts.drag && isDisabledDrag,
|
|
9987
|
-
'col--current':
|
|
10156
|
+
'col--current': currColFlag && currentCol === column
|
|
9988
10157
|
}, getClass(headerClassName, cellParams), getClass(headerCellClassName, cellParams)],
|
|
9989
10158
|
attrs: thAttrs,
|
|
9990
10159
|
style: headerCellStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : undefined,
|
|
@@ -10032,11 +10201,12 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
10032
10201
|
align: allAlign
|
|
10033
10202
|
} = tableProps;
|
|
10034
10203
|
const {
|
|
10035
|
-
|
|
10036
|
-
|
|
10204
|
+
overflowX,
|
|
10205
|
+
currColFlag
|
|
10037
10206
|
} = tableReactData;
|
|
10038
10207
|
const {
|
|
10039
|
-
fullColumnIdData
|
|
10208
|
+
fullColumnIdData,
|
|
10209
|
+
currentCol
|
|
10040
10210
|
} = tableInternalData;
|
|
10041
10211
|
const headerTooltipOpts = $xeTable.computeHeaderTooltipOpts;
|
|
10042
10212
|
const cellOpts = $xeTable.computeCellOpts;
|
|
@@ -10119,7 +10289,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
10119
10289
|
'fixed--width': !isAutoCellWidth,
|
|
10120
10290
|
'is--padding': isPadding,
|
|
10121
10291
|
'is--sortable': column.sortable,
|
|
10122
|
-
'col--current':
|
|
10292
|
+
'col--current': currColFlag && currentCol === column
|
|
10123
10293
|
}],
|
|
10124
10294
|
key: colid,
|
|
10125
10295
|
attrs: thAttrs
|
|
@@ -10465,14 +10635,15 @@ function footer_renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData,
|
|
|
10465
10635
|
scrollXLoad,
|
|
10466
10636
|
scrollYLoad,
|
|
10467
10637
|
overflowX,
|
|
10468
|
-
|
|
10469
|
-
|
|
10638
|
+
mergeFootFlag,
|
|
10639
|
+
currColFlag
|
|
10470
10640
|
} = tableReactData;
|
|
10471
10641
|
const {
|
|
10472
10642
|
fullColumnIdData,
|
|
10473
10643
|
mergeFooterList,
|
|
10474
10644
|
mergeFooterCellMaps,
|
|
10475
|
-
scrollXStore
|
|
10645
|
+
scrollXStore,
|
|
10646
|
+
currentCol
|
|
10476
10647
|
} = tableInternalData;
|
|
10477
10648
|
const virtualXOpts = $xeTable.computeVirtualXOpts;
|
|
10478
10649
|
const footerTooltipOpts = $xeTable.computeFooterTooltipOpts;
|
|
@@ -10625,7 +10796,7 @@ function footer_renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData,
|
|
|
10625
10796
|
'is--pg-left': isCellPaddingLeft,
|
|
10626
10797
|
'is--pg-right': isCellPaddingRight,
|
|
10627
10798
|
'col--ellipsis': hasEllipsis,
|
|
10628
|
-
'col--current':
|
|
10799
|
+
'col--current': currColFlag && currentCol === column
|
|
10629
10800
|
}, getClass(footerClassName, cellParams), getClass(footerCellClassName, cellParams)],
|
|
10630
10801
|
attrs,
|
|
10631
10802
|
style: footerCellStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(footerCellStyle) ? footerCellStyle(cellParams) : footerCellStyle : undefined,
|
|
@@ -14154,24 +14325,16 @@ function updatePopupStyle($xeTable) {
|
|
|
14154
14325
|
column,
|
|
14155
14326
|
targetEl
|
|
14156
14327
|
} = filterStore;
|
|
14157
|
-
if (!column
|
|
14328
|
+
if (!column) {
|
|
14158
14329
|
return $xeTable.$nextTick();
|
|
14159
14330
|
}
|
|
14160
14331
|
const tableEl = $xeTable.$refs.refElem;
|
|
14161
|
-
const {
|
|
14162
|
-
scrollTop,
|
|
14163
|
-
scrollLeft,
|
|
14164
|
-
visibleHeight,
|
|
14165
|
-
visibleWidth
|
|
14166
|
-
} = getDomNode();
|
|
14167
14332
|
const filterOpts = $xeTable.computeFilterOpts;
|
|
14168
14333
|
const {
|
|
14169
14334
|
maxHeight: customMaxHeight,
|
|
14170
14335
|
transfer,
|
|
14171
14336
|
zIndex
|
|
14172
14337
|
} = filterOpts;
|
|
14173
|
-
const currEl = targetEl;
|
|
14174
|
-
const tableRect = tableEl.getBoundingClientRect();
|
|
14175
14338
|
const filterRender = column ? column.filterRender : null;
|
|
14176
14339
|
const compConf = filterRender && isEnableConf(filterRender) ? mixin_renderer.get(filterRender.name) : null;
|
|
14177
14340
|
const headerScrollElem = getRefElem(elemStore['main-header-scroll']);
|
|
@@ -14183,63 +14346,83 @@ function updatePopupStyle($xeTable) {
|
|
|
14183
14346
|
if (!filterWrapperElem) {
|
|
14184
14347
|
return $xeTable.$nextTick();
|
|
14185
14348
|
}
|
|
14186
|
-
const btnRect = currEl.getBoundingClientRect();
|
|
14187
14349
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
14188
14350
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
14189
|
-
const filterWidth = filterWrapperElem.offsetWidth;
|
|
14190
|
-
const centerWidth = currEl ? filterWidth / 2 : (filterWidth - column.renderWidth) / 2;
|
|
14191
|
-
let left = 0;
|
|
14192
|
-
let top = 0;
|
|
14193
|
-
let maxHeight = 0;
|
|
14194
14351
|
/**
|
|
14195
14352
|
* 是否显示筛选按钮图标
|
|
14196
14353
|
* 如果不存在图标,则相对单元格居中显示
|
|
14197
14354
|
*/
|
|
14198
|
-
|
|
14199
|
-
|
|
14200
|
-
|
|
14201
|
-
|
|
14202
|
-
|
|
14203
|
-
|
|
14204
|
-
|
|
14205
|
-
|
|
14355
|
+
const handleStyle = () => {
|
|
14356
|
+
/**
|
|
14357
|
+
* 是否显示筛选按钮图标
|
|
14358
|
+
* 如果不存在图标,则相对单元格居中显示
|
|
14359
|
+
*/
|
|
14360
|
+
let currEl = targetEl;
|
|
14361
|
+
if (!targetEl) {
|
|
14362
|
+
const headerWrapperElem = getRefElem(elemStore[`${column.fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
|
|
14363
|
+
const colEl = headerWrapperElem ? headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`) : null;
|
|
14364
|
+
if (colEl) {
|
|
14365
|
+
currEl = colEl;
|
|
14366
|
+
}
|
|
14206
14367
|
}
|
|
14207
|
-
|
|
14208
|
-
|
|
14209
|
-
top = btnRect.top - tableRect.top + currEl.clientHeight;
|
|
14210
|
-
maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
14211
|
-
if (left < 1) {
|
|
14212
|
-
left = 1;
|
|
14213
|
-
} else if (left > tableEl.clientWidth - filterWidth - 1) {
|
|
14214
|
-
left = tableEl.clientWidth - filterWidth - 1;
|
|
14368
|
+
if (!currEl) {
|
|
14369
|
+
return $xeTable.$nextTick();
|
|
14215
14370
|
}
|
|
14216
|
-
|
|
14217
|
-
|
|
14218
|
-
|
|
14219
|
-
|
|
14220
|
-
|
|
14371
|
+
const btnRect = currEl.getBoundingClientRect();
|
|
14372
|
+
const tableRect = tableEl.getBoundingClientRect();
|
|
14373
|
+
let left = 0;
|
|
14374
|
+
let top = 0;
|
|
14375
|
+
let maxHeight = 0;
|
|
14376
|
+
let panelStyle = {};
|
|
14377
|
+
if (transfer) {
|
|
14378
|
+
const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
|
|
14379
|
+
defaultPlacement: 'bottom',
|
|
14380
|
+
isMinWidth: false,
|
|
14381
|
+
teleportTo: transfer
|
|
14382
|
+
});
|
|
14383
|
+
panelStyle = ppObj.style;
|
|
14384
|
+
} else {
|
|
14385
|
+
const filterWidth = filterWrapperElem.offsetWidth;
|
|
14386
|
+
const centerWidth = targetEl ? filterWidth / 2 : (filterWidth - column.renderWidth) / 2;
|
|
14387
|
+
maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
14388
|
+
left = btnRect.left - tableRect.left - centerWidth;
|
|
14389
|
+
top = btnRect.top - tableRect.top + currEl.clientHeight;
|
|
14390
|
+
if (left < 1) {
|
|
14391
|
+
left = 1;
|
|
14392
|
+
} else if (left > tableEl.clientWidth - filterWidth - 1) {
|
|
14393
|
+
left = tableEl.clientWidth - filterWidth - 1;
|
|
14221
14394
|
}
|
|
14395
|
+
if ($xeGGWrapper) {
|
|
14396
|
+
const wrapperEl = $xeGGWrapper.$refs.refElem;
|
|
14397
|
+
if (wrapperEl) {
|
|
14398
|
+
const wrapperRect = wrapperEl.getBoundingClientRect();
|
|
14399
|
+
top += tableRect.top - wrapperRect.top;
|
|
14400
|
+
}
|
|
14401
|
+
}
|
|
14402
|
+
panelStyle = {
|
|
14403
|
+
top: toCssUnit(top),
|
|
14404
|
+
left: toCssUnit(left)
|
|
14405
|
+
};
|
|
14222
14406
|
}
|
|
14223
|
-
|
|
14224
|
-
|
|
14225
|
-
top: toCssUnit(top),
|
|
14226
|
-
left: toCssUnit(left)
|
|
14227
|
-
};
|
|
14228
|
-
if (zIndex) {
|
|
14229
|
-
fStys.zIndex = zIndex;
|
|
14230
|
-
}
|
|
14231
|
-
filterStore.style = fStys;
|
|
14232
|
-
// 筛选面板是自适应表格高度
|
|
14233
|
-
if (compConf ? !compConf.tableFilterAutoHeight : false) {
|
|
14234
|
-
maxHeight = 0;
|
|
14235
|
-
} else {
|
|
14236
|
-
if (customMaxHeight) {
|
|
14237
|
-
maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
|
|
14407
|
+
if (zIndex) {
|
|
14408
|
+
panelStyle.zIndex = zIndex;
|
|
14238
14409
|
}
|
|
14239
|
-
|
|
14240
|
-
|
|
14241
|
-
|
|
14242
|
-
|
|
14410
|
+
filterStore.style = panelStyle;
|
|
14411
|
+
// 筛选面板是自适应表格高度
|
|
14412
|
+
if (compConf ? !compConf.tableFilterAutoHeight : false) {
|
|
14413
|
+
maxHeight = 0;
|
|
14414
|
+
} else {
|
|
14415
|
+
if (customMaxHeight) {
|
|
14416
|
+
maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
|
|
14417
|
+
}
|
|
14418
|
+
}
|
|
14419
|
+
// 判断面板不能大于表格高度
|
|
14420
|
+
filterStore.maxHeight = maxHeight;
|
|
14421
|
+
};
|
|
14422
|
+
handleStyle();
|
|
14423
|
+
return $xeTable.$nextTick().then(() => {
|
|
14424
|
+
handleStyle();
|
|
14425
|
+
});
|
|
14243
14426
|
}
|
|
14244
14427
|
/* harmony default export */ var mixin = ({
|
|
14245
14428
|
methods: {
|
|
@@ -14347,14 +14530,13 @@ function updatePopupStyle($xeTable) {
|
|
|
14347
14530
|
if (filterStore.column === column && filterStore.visible) {
|
|
14348
14531
|
filterStore.visible = false;
|
|
14349
14532
|
} else {
|
|
14350
|
-
const currEl = btnEl || colEl;
|
|
14351
14533
|
$xeTable.handleFilterOptions(column);
|
|
14352
14534
|
internalData._currFilterParams = params;
|
|
14353
|
-
filterStore.targetEl =
|
|
14535
|
+
filterStore.targetEl = btnEl;
|
|
14354
14536
|
filterStore.style = null;
|
|
14355
14537
|
filterStore.visible = true;
|
|
14356
14538
|
initStore.filter = true;
|
|
14357
|
-
$xeTable.$nextTick(() => {
|
|
14539
|
+
$xeTable.$nextTick().then(() => {
|
|
14358
14540
|
updatePopupStyle($xeTable);
|
|
14359
14541
|
});
|
|
14360
14542
|
}
|
|
@@ -19460,17 +19642,14 @@ function handleCheckboxRangeEvent($xeTable, evnt, params) {
|
|
|
19460
19642
|
// 处理当前列方向键移动
|
|
19461
19643
|
moveCurrentColumn(isLeftArrow, isRightArrow, evnt) {
|
|
19462
19644
|
const $xeTable = this;
|
|
19463
|
-
const reactData = $xeTable;
|
|
19464
19645
|
const internalData = $xeTable;
|
|
19465
19646
|
const {
|
|
19466
|
-
|
|
19467
|
-
} = reactData;
|
|
19468
|
-
const {
|
|
19647
|
+
currentCol,
|
|
19469
19648
|
visibleColumn
|
|
19470
19649
|
} = internalData;
|
|
19471
19650
|
let targetCol = null;
|
|
19472
|
-
if (
|
|
19473
|
-
const _columnIndex = $xeTable.getVTColumnIndex(
|
|
19651
|
+
if (currentCol) {
|
|
19652
|
+
const _columnIndex = $xeTable.getVTColumnIndex(currentCol);
|
|
19474
19653
|
if (isLeftArrow && _columnIndex > 0) {
|
|
19475
19654
|
targetCol = visibleColumn[_columnIndex - 1];
|
|
19476
19655
|
} else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
|
|
@@ -20904,7 +21083,7 @@ function emitCustomEvent($xeTable, type, evnt) {
|
|
|
20904
21083
|
},
|
|
20905
21084
|
handleCustomStyle() {
|
|
20906
21085
|
const $xeTable = this;
|
|
20907
|
-
const reactData = $xeTable
|
|
21086
|
+
const reactData = $xeTable;
|
|
20908
21087
|
const {
|
|
20909
21088
|
customStore
|
|
20910
21089
|
} = reactData;
|
|
@@ -21808,12 +21987,20 @@ function renderBody(h, $xeTable) {
|
|
|
21808
21987
|
computeHeaderTooltipOpts() {
|
|
21809
21988
|
const $xeTable = this;
|
|
21810
21989
|
const props = $xeTable;
|
|
21811
|
-
|
|
21990
|
+
const tooltipOpts = $xeTable.computeTooltipOpts;
|
|
21991
|
+
return Object.assign({}, table_getConfig().tooltip, {
|
|
21992
|
+
enterable: tooltipOpts.enterable,
|
|
21993
|
+
defaultPlacement: tooltipOpts.defaultPlacement
|
|
21994
|
+
}, table_getConfig().table.headerTooltipConfig, props.headerTooltipConfig);
|
|
21812
21995
|
},
|
|
21813
21996
|
computeFooterTooltipOpts() {
|
|
21814
21997
|
const $xeTable = this;
|
|
21815
21998
|
const props = $xeTable;
|
|
21816
|
-
|
|
21999
|
+
const tooltipOpts = $xeTable.computeTooltipOpts;
|
|
22000
|
+
return Object.assign({}, table_getConfig().tooltip, {
|
|
22001
|
+
enterable: tooltipOpts.enterable,
|
|
22002
|
+
defaultPlacement: tooltipOpts.defaultPlacement
|
|
22003
|
+
}, table_getConfig().table.footerTooltipConfig, props.footerTooltipConfig);
|
|
21817
22004
|
},
|
|
21818
22005
|
computeTableTipConfig() {
|
|
21819
22006
|
const $xeTable = this;
|