vxe-table 3.23.5 → 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/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 +320 -133
- 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/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/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.1788403274136.ttf → iconfont.1788695175944.ttf} +0 -0
- /package/es/{iconfont.1788403274136.woff → iconfont.1788695175944.woff} +0 -0
- /package/es/{iconfont.1788403274136.woff2 → iconfont.1788695175944.woff2} +0 -0
- /package/lib/{iconfont.1788403274136.ttf → iconfont.1788695175944.ttf} +0 -0
- /package/lib/{iconfont.1788403274136.woff → iconfont.1788695175944.woff} +0 -0
- /package/lib/{iconfont.1788403274136.woff2 → iconfont.1788695175944.woff2} +0 -0
package/lib/table/src/methods.js
CHANGED
|
@@ -301,12 +301,12 @@ if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scroll
|
|
|
301
301
|
* 加载列配置并恢复到初始状态
|
|
302
302
|
* 对于表格列需要重载、局部递增场景下可能会用到
|
|
303
303
|
* @param {ColumnInfo} columns 列配置
|
|
304
|
-
*/reloadColumn(columns){return
|
|
304
|
+
*/reloadColumn(columns){const $xeTable=this;return $xeTable.clearAll().then(()=>{return $xeTable.loadColumn(columns);});},handleInitColumn(collectColumn){const $xeTable=this;return handleInitColumn($xeTable,collectColumn);},/**
|
|
305
305
|
* 更新数据行的 Map
|
|
306
306
|
*/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?{}:Object.assign({},fullAllDataRowIdData);// 存在已删除数据
|
|
307
307
|
const fullDataRowIdMaps={};const idMaps={};const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);let rowNum=0;const handleRowCache=(row,index,items,currIndex,parentRow,rowid,level,seq)=>{let rowRest=fullAllDataRowIdMaps[rowid];if(idMaps[rowid]){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;// 更新缓存
|
|
308
308
|
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;_xeUtils.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,(0,_util.toTreePathSeq)(path));},{children:childrenField});}else if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;_xeUtils.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,(0,_util.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=_xeUtils.default.clone(fullData,true);const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const sourceRowIdData={};const handleSourceRow=row=>{const rowid=handleUpdateRowId(row);sourceRowIdData[rowid]=row;};// 源数据缓存
|
|
309
|
-
if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.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[(0,_util.getRowid)($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return
|
|
309
|
+
if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.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[(0,_util.getRowid)($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return $xeTable.createData(childRecords).then(rows=>{if(keepSource){const rowid=(0,_util.getRowid)($xeTable,row);const matchObj=_xeUtils.default.findTree(tableSourceData,item=>rowid===(0,_util.getRowid)($xeTable,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=_xeUtils.default.clone(rows,true);}rows.forEach(childRow=>{const rowid=(0,_util.getRowid)($xeTable,childRow);sourceDataRowIdData[rowid]=_xeUtils.default.clone(childRow,true);});}_xeUtils.default.eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=(0,_util.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]=_xeUtils.default.clone(rows,false);}updateAfterDataIndex($xeTable);return rows;});},/**
|
|
310
310
|
* 根据 tr 元素获取对应的 row 信息
|
|
311
311
|
* @param {Element} tr 元素
|
|
312
312
|
*/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;},/**
|
|
@@ -325,8 +325,8 @@ if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xe
|
|
|
325
325
|
* 根据 row 获取渲染中的虚拟索引
|
|
326
326
|
* @param {Row} row 行对象
|
|
327
327
|
*/getVMRowIndex:createGetRowCacheProp('$index'),// 在 v3 中废弃
|
|
328
|
-
_getRowIndex(row){warnLog('vxe.error.delFunc',['_getRowIndex','getVTRowIndex']);return
|
|
329
|
-
$getRowIndex(row){warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);return
|
|
328
|
+
_getRowIndex(row){const $xeTable=this;warnLog('vxe.error.delFunc',['_getRowIndex','getVTRowIndex']);return $xeTable.getVTRowIndex(row);},// 在 v3 中废弃
|
|
329
|
+
$getRowIndex(row){const $xeTable=this;warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);return $xeTable.getVMRowIndex(row);},/**
|
|
330
330
|
* 根据 column 获取相对于 columns 中的索引
|
|
331
331
|
* @param {ColumnInfo} column 列配置
|
|
332
332
|
*/getColumnIndex:createGetColumnCacheProp('index'),/**
|
|
@@ -336,8 +336,8 @@ $getRowIndex(row){warnLog('vxe.error.delFunc',['$getRowIndex','getVMRowIndex']);
|
|
|
336
336
|
* 根据 column 获取渲染中的虚拟索引
|
|
337
337
|
* @param {ColumnInfo} column 列配置
|
|
338
338
|
*/getVMColumnIndex:createGetColumnCacheProp('$index'),// 在 v3 中废弃
|
|
339
|
-
_getColumnIndex(column){warnLog('vxe.error.delFunc',['_getColumnIndex','getVTColumnIndex']);return
|
|
340
|
-
$getColumnIndex(column){warnLog('vxe.error.delFunc',['$getColumnIndex','getVMColumnIndex']);return
|
|
339
|
+
_getColumnIndex(column){const $xeTable=this;warnLog('vxe.error.delFunc',['_getColumnIndex','getVTColumnIndex']);return $xeTable.getVTColumnIndex(column);},// 在 v3 中废弃
|
|
340
|
+
$getColumnIndex(column){const $xeTable=this;warnLog('vxe.error.delFunc',['$getColumnIndex','getVMColumnIndex']);return $xeTable.getVMColumnIndex(column);},/**
|
|
341
341
|
* 判断是否为索引列
|
|
342
342
|
* @param {ColumnInfo} column 列配置
|
|
343
343
|
*/isSeqColumn(column){return column&&column.type==='seq';},/**
|
|
@@ -387,7 +387,7 @@ if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid]
|
|
|
387
387
|
*/getColumnById(colid){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;return fullColumnIdData[colid]?fullColumnIdData[colid].column:null;},/**
|
|
388
388
|
* 根据列的字段名获取列
|
|
389
389
|
* @param {String} field 字段名
|
|
390
|
-
*/getColumnByField(field){const $xeTable=this;const internalData=$xeTable;const{fullColumnFieldData}=internalData;return fullColumnFieldData[field]?fullColumnFieldData[field].column:null;},getParentColumn(fieldOrColumn){const
|
|
390
|
+
*/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=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);return column&&column.parentId&&fullColumnIdData[column.parentId]?fullColumnIdData[column.parentId].column:null;},/**
|
|
391
391
|
* 获取当前表格的列
|
|
392
392
|
* 收集到的全量列、全量表头列、处理条件之后的全量表头列、当前渲染中的表头列
|
|
393
393
|
*/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)};},/**
|
|
@@ -404,7 +404,7 @@ if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid]
|
|
|
404
404
|
* 获取表格的全量列
|
|
405
405
|
*/getFullColumns(){const $xeTable=this;const internalData=$xeTable;const{collectColumn}=internalData;return collectColumn.slice(0);},/**
|
|
406
406
|
* 获取数据,和 data 的行为一致,也可以指定索引获取数据
|
|
407
|
-
*/getData(rowIndex){const tableSynchData=
|
|
407
|
+
*/getData(rowIndex){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const tableSynchData=props.data||internalData.tableSynchData;return _xeUtils.default.isUndefined(rowIndex)?tableSynchData.slice(0):tableSynchData[rowIndex];},/**
|
|
408
408
|
* 用于多选行,获取已选中的数据
|
|
409
409
|
*/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=_xeUtils.default.filterTree(currTableData,row=>_xeUtils.default.get(row,checkField),{children:transform?mapChildrenField:childrenField});}else{const currTableData=isFull?tableFullData:afterFullData;rowList=currTableData.filter(row=>_xeUtils.default.get(row,checkField));}}else{const currMaps=isFull||treeConfig&&!transform?fullDataRowIdData:afterFullRowMaps;_xeUtils.default.each(selectCheckboxMaps,(row,rowid)=>{if(currMaps[rowid]){rowList.push(fullDataRowIdData[rowid].row);}});}}return rowList;},/**
|
|
410
410
|
* 预编译
|
|
@@ -446,7 +446,7 @@ if(!targetColumn.fixed&&isMaxFixedColumn){if(_ui.VxeUI.modal){_ui.VxeUI.modal.me
|
|
|
446
446
|
* 手动重置列的显示隐藏、列宽拖动的状态;
|
|
447
447
|
* 如果为 true 则重置所有状态
|
|
448
448
|
* 如果已关联工具栏,则会同步更新
|
|
449
|
-
*/resetColumn(options){warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return
|
|
449
|
+
*/resetColumn(options){const $xeTable=this;warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return $xeTable.resetCustom(options);},/**
|
|
450
450
|
* @private
|
|
451
451
|
*/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);},/**
|
|
452
452
|
* 还原自定义列操作状态
|
|
@@ -467,9 +467,9 @@ if(isCustomFixed&&(column.fixed||'')!==(column.defaultFixed||'')){hasFixed=1;fix
|
|
|
467
467
|
reactData.isCustomStatus=true;}if(storage&&(customConfig?(0,_utils.isEnableConf)(customOpts):customOpts.enabled)&&(isCustomAlign||isCustomHeaderAlign||isCustomFooterAlign||isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggGroup||isCustomAggFunc||isCustomPager)){if(!tableId){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=(0,_utils.isEnableConf)(filterRender)?renderer.get(filterRender.name):null;const frMethod=column.filterRecoverMethod||(compConf?compConf.tableFilterRecoverMethod||compConf.filterRecoverMethod:null);filterStore.column=column;// 复原状态
|
|
468
468
|
filterOptions.forEach(option=>{const{_checked,checked}=option;option._checked=checked;if(!checked&&_checked!==checked){if(frMethod){frMethod({option,column,$table:$xeTable});}}});$xeTable.checkFilterOptions();}},/**
|
|
469
469
|
* 刷新列配置
|
|
470
|
-
*/refreshColumn(initSort){const $xeTable=this;if(initSort){handleUpdateColumn($xeTable);}return parseColumns($xeTable,true).then(()=>{return
|
|
470
|
+
*/refreshColumn(initSort){const $xeTable=this;if(initSort){handleUpdateColumn($xeTable);}return parseColumns($xeTable,true).then(()=>{return $xeTable.refreshScroll();}).then(()=>{return handleLazyRecalculate($xeTable,false,true,true);});},/**
|
|
471
471
|
* 指定列宽的列进行拆分
|
|
472
|
-
*/analyColumnWidth(){const{
|
|
472
|
+
*/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((0,_dom.isPx)(column.width)){pxList.push(column);}else if((0,_dom.isScale)(column.width)){scaleList.push(column);}else if((0,_dom.isPx)(column.minWidth)){pxMinList.push(column);}else if(column.minWidth==='auto'){autoMinList.push(column);}else if((0,_dom.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=(0,_util.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=_xeUtils.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=_xeUtils.default.floor(dragBtnWidth/2);const dragPosLeft=dragBtnRect.x-tableRect.x+dragBtnOffsetWidth;const minInterval=(0,_util.getColReMinWidth)(cellParams)-dragBtnOffsetWidth;// 列之间的最小间距
|
|
473
473
|
const maxInterval=(0,_util.getColReMaxWidth)(cellParams);// 列之间的最大间距
|
|
474
474
|
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;}}}}// 处理拖动事件
|
|
475
475
|
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);// 最大宽
|
|
@@ -519,10 +519,10 @@ internalData.isActivated=isActivated;}},/**
|
|
|
519
519
|
* 全局滚动事件
|
|
520
520
|
*/handleGlobalMousewheelEvent(){const $xeTable=this;$xeTable.closeTooltip();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
521
521
|
* 表格键盘事件
|
|
522
|
-
*/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=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);if(isEsc){
|
|
523
|
-
|
|
524
|
-
if(actived.row){const params=actived.args
|
|
525
|
-
if(mouseConfig&&mouseOpts.selected){
|
|
522
|
+
*/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=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 键,关闭快捷菜单、筛选
|
|
523
|
+
$xeTable.closeFilter();$xeTable.closeMenu();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
|
|
524
|
+
if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
|
|
525
|
+
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);},/**
|
|
526
526
|
* 全局键盘事件
|
|
527
527
|
*/handleGlobalKeydownEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;// 该行为只对当前激活的表格有效
|
|
528
528
|
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=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.PROCESS);const isEsc=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);const hasBackspaceKey=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.BACKSPACE);const isTab=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.TAB);const isEnter=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ENTER);const isSpacebar=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.SPACEBAR);const isLeftArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_LEFT);const isUpArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_UP);const isRightArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_RIGHT);const isDwArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_DOWN);const hasDeleteKey=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.DELETE);const isY=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.Y);const isZ=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.Z);const isF2=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.F2);const isContextMenu=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.CONTEXT_MENU);const isControlKey=(0,_dom.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=(0,_utils.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){// 如果配置了右键菜单; 支持方向键操作、回车
|
|
@@ -550,7 +550,7 @@ if(!beforeEditMethod||beforeEditMethod(params)){if(delMethod){delMethod(params);
|
|
|
550
550
|
$xeTable.updateFooter();$xeTable.dispatchEvent('cell-delete-value',params,evnt);}}}else if(hasBackspaceKey&&keyboardConfig&&keyboardOpts.isBack&&(0,_utils.isEnableConf)(editConfig)&&(selectRow||selectColumn)){if(!isEditStatus){const{backMethod}=keyboardOpts;// 如果是删除键
|
|
551
551
|
if(keyboardOpts.isDel&&(0,_utils.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};// 是否被禁用
|
|
552
552
|
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){// 如果树形表格回退键关闭当前行返回父节点
|
|
553
|
-
const{parent:parentRow}=_xeUtils.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)&&!(0,_dom.
|
|
553
|
+
const{parent:parentRow}=_xeUtils.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)&&!(0,_dom.hasAxternalInputTarget)(evnt.target)){if(isY||hasShiftKey&&isZ){// 恢复被撤销的操作:Ctrl + Y 或 Ctrl + Shift + Z
|
|
554
554
|
evnt.preventDefault();$xeTable.handleRedoStackEvent(evnt);}else if(isZ){// 撤销上一步操作:Ctrl + Z
|
|
555
555
|
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;// 启用编辑后,空格键功能将失效
|
|
556
556
|
// if (isSpacebar) {
|
|
@@ -558,7 +558,7 @@ evnt.preventDefault();$xeTable.handleUndoStackEvent(evnt);}}else if(keyboardConf
|
|
|
558
558
|
// }
|
|
559
559
|
// 如果是按下非功能键之外允许直接编辑
|
|
560
560
|
if(selectColumn&&selectRow&&(0,_utils.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;// 追加方式与覆盖式
|
|
561
|
-
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
|
|
561
|
+
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++;},/**
|
|
562
562
|
* 处理合并
|
|
563
563
|
*/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=(0,_utils.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);}});}},/**
|
|
564
564
|
* 触发表头 tooltip 事件
|
|
@@ -626,20 +626,20 @@ if(!isSelected&&!halfSelect&&showReserveStatus){halfSelect=!_xeUtils.default.isE
|
|
|
626
626
|
* 获取复选框保留选中的行
|
|
627
627
|
*/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}=(0,_util.createHandleGetRowId)($xeTable);const afterFullIdMaps={};if(treeConfig){_xeUtils.default.eachTree(afterFullData,row=>{afterFullIdMaps[handleGetRowId(row)]=1;},{children:childrenField});}else{afterFullData.forEach(row=>{afterFullIdMaps[handleGetRowId(row)]=1;});}_xeUtils.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=(0,_util.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);}},/**
|
|
628
628
|
* 多选,选中所有事件
|
|
629
|
-
*/triggerCheckAllEvent(evnt,value){const
|
|
629
|
+
*/triggerCheckAllEvent(evnt,value){const{checkboxOpts}=this;const{trigger}=checkboxOpts;if(trigger==='manual'){return;}if(evnt){evnt.stopPropagation();}this.handleCheckAllEvent(evnt,value);},/**
|
|
630
630
|
* 多选,切换所有行的选中状态
|
|
631
|
-
*/toggleAllCheckboxRow(){this.handleCheckAllEvent(null,!
|
|
631
|
+
*/toggleAllCheckboxRow(){const $xeTable=this;const reactData=$xeTable;this.handleCheckAllEvent(null,!reactData.isAllSelected);return $xeTable.$nextTick();},/**
|
|
632
632
|
* 用于多选行,手动清空用户的选择
|
|
633
633
|
* 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
|
|
634
634
|
*/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 仅支持读取
|
|
635
|
-
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){const handleClearChecked=item=>{if(treeConfig&&indeterminateField){_xeUtils.default.set(item,indeterminateField,false);}_xeUtils.default.set(item,checkField,false);};if(treeConfig){_xeUtils.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
|
|
635
|
+
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){const handleClearChecked=item=>{if(treeConfig&&indeterminateField){_xeUtils.default.set(item,indeterminateField,false);}_xeUtils.default.set(item,checkField,false);};if(treeConfig){_xeUtils.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();},/**
|
|
636
636
|
* 单选,行选中事件
|
|
637
|
-
*/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',Object.assign({oldValue,newValue,selected:!!newValue},params),evnt);}}},triggerCurrentColumnEvent(evnt,params){const $xeTable=this;const
|
|
637
|
+
*/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',Object.assign({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',Object.assign({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',Object.assign({oldValue,newValue,selected:!!newValue},params),evnt);// 已废弃
|
|
638
638
|
$xeTable.dispatchEvent('current-change',Object.assign({oldValue,newValue},params),evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
639
639
|
* 用于当前行,设置某一行为高亮状态
|
|
640
640
|
* @param {Row} row 行对象
|
|
641
|
-
*/setCurrentRow(row){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;const rowOpts=$xeTable.computeRowOpts
|
|
642
|
-
|
|
641
|
+
*/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()
|
|
642
|
+
internalData.currentRow=row;if(rowOpts.isCurrent||props.highlightCurrentRow){if(el){_xeUtils.default.arrayEach(el.querySelectorAll(`[rowid="${(0,_util.getRowid)($xeTable,row)}"]`),elem=>(0,_dom.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===(0,_util.getRowid)($xeTable,selectRadioRow);}return false;},/**
|
|
643
643
|
* 用于单选行,设置某一行为选中状态
|
|
644
644
|
* @param {Row} row 行对象
|
|
645
645
|
*/setRadioRow(row){const $xeTable=this;return handleCheckedRadioRow($xeTable,row,true);},/**
|
|
@@ -655,13 +655,15 @@ this.currentRow=row;if(rowOpts.isCurrent||this.highlightCurrentRow){if(el){_xeUt
|
|
|
655
655
|
* 用于单选行,获取当已选中的数据
|
|
656
656
|
*/getRadioRecord(isFull){const{selectRadioRow,fullDataRowIdData,afterFullRowMaps}=this;if(selectRadioRow){const rowid=(0,_util.getRowid)(this,selectRadioRow);if(isFull){if(fullDataRowIdData[rowid]){return selectRadioRow;}}else{if(afterFullRowMaps[rowid]){return selectRadioRow;}}}return null;},/**
|
|
657
657
|
* 行 hover 事件
|
|
658
|
-
*/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){_xeUtils.default.arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${(0,_util.getRowid)($xeTable,row)}"]`),elem=>(0,_dom.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){_xeUtils.default.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'),elem=>(0,_dom.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=(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=(0,_dom.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(){
|
|
658
|
+
*/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){_xeUtils.default.arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${(0,_util.getRowid)($xeTable,row)}"]`),elem=>(0,_dom.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){_xeUtils.default.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'),elem=>(0,_dom.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=(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=(0,_dom.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;},/**
|
|
659
659
|
* 用于当前列,设置某列行为高亮状态
|
|
660
660
|
* @param {ColumnInfo} fieldOrColumn 列配置
|
|
661
|
-
*/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=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);if(column){$xeTable.clearCurrentColumn();
|
|
661
|
+
*/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=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);if(column){$xeTable.clearCurrentColumn();internalData.currentCol=column;reactData.currColFlag++;// 刷新当前列状态
|
|
662
|
+
}return $xeTable.$nextTick().then(()=>{// 更新状选中态
|
|
662
663
|
if(isMouseSelected){$xeTable.addCellSelectedClass();}});},/**
|
|
663
664
|
* 用于当前列,手动清空当前高亮的状态
|
|
664
|
-
*/clearCurrentColumn(){this.
|
|
665
|
+
*/clearCurrentColumn(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.currentCol=null;reactData.currColFlag++;// 刷新当前列状态
|
|
666
|
+
return $xeTable.$nextTick();},/**
|
|
665
667
|
* 列点击事件
|
|
666
668
|
* 如果是单击模式,则激活为编辑状态
|
|
667
669
|
* 如果是双击模式,则单击后选中状态
|
|
@@ -736,29 +738,29 @@ if(!remote||firstSortColumn&&firstSortColumn.remoteSort){$xeTable.handleTableDat
|
|
|
736
738
|
* 如果为空则清空所有列的排序条件
|
|
737
739
|
* @param {String} column 列或字段名
|
|
738
740
|
*/clearSort(fieldOrColumn){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;if(fieldOrColumn){const column=(0,_util.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=(0,_util.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 中废弃
|
|
739
|
-
getSortColumn(){warnLog('vxe.error.delFunc',['getSortColumn','getSortColumns']);return _xeUtils.default.find(
|
|
741
|
+
getSortColumn(){const $xeTable=this;const internalData=$xeTable;const{tableFullColumn}=internalData;warnLog('vxe.error.delFunc',['getSortColumn','getSortColumns']);return _xeUtils.default.find(tableFullColumn,column=>(column.sortable||column.remoteSort)&&column.order);},isSort(fieldOrColumn){const $xeTable=this;if(fieldOrColumn){const column=(0,_util.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 _xeUtils.default.orderBy(sortList,'sortTime');}return sortList;},setFilterByEvent(evnt,fieldOrColumn,options){const $xeTable=this;const column=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);if(column&&column.filters){column.filters=(0,_util.toFilters)(options||[],column.id);return $xeTable.handleColumnConfirmFilter(column,evnt);}return $xeTable.$nextTick();},/**
|
|
740
742
|
* 关闭筛选
|
|
741
743
|
* @param {Event} evnt 事件
|
|
742
744
|
*/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();},/**
|
|
743
745
|
* 判断指定列是否为筛选状态,如果为空则判断所有列
|
|
744
746
|
* @param {String} fieldOrColumn 字段名
|
|
745
|
-
*/isActiveFilterByColumn(fieldOrColumn){const column=(0,_util.handleFieldOrColumn)(
|
|
746
|
-
isFilter(fieldOrColumn){return
|
|
747
|
+
*/isActiveFilterByColumn(fieldOrColumn){const $xeTable=this;const column=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);if(column){return column.filters&&column.filters.some(option=>option.checked);}return $xeTable.getCheckedFilters().length>0;},// 已废弃
|
|
748
|
+
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=(0,_util.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,// 选项是覅多选
|
|
747
749
|
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();},/**
|
|
748
750
|
* 判断展开行是否懒加载完成
|
|
749
751
|
* @param {Row} row 行对象
|
|
750
752
|
*/isRowExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=this;const rowRest=fullAllDataRowIdData[(0,_util.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=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(lazy&&rowRest){rowRest.expandLoaded=false;delete rowExpandLazyLoadedMaps[rowid];}reactData.rowExpandedFlag++;return $xeTable.$nextTick();},/**
|
|
751
753
|
* 重新懒加载展开行,并展开内容
|
|
752
754
|
* @param {Row} row 行对象
|
|
753
|
-
*/reloadRowExpand(row){const $xeTable=this;const internalData=$xeTable;const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{lazy}=expandOpts;const rowid=(0,_util.getRowid)(this,row);if(lazy&&!rowExpandLazyLoadedMaps[rowid]){$xeTable.clearRowExpandLoaded(row).then(()=>handleAsyncRowExpand($xeTable,row));}return $xeTable.$nextTick();},reloadExpandContent(row){warnLog('vxe.error.delFunc',['reloadExpandContent','reloadRowExpand']);// 即将废弃
|
|
754
|
-
return
|
|
755
|
+
*/reloadRowExpand(row){const $xeTable=this;const internalData=$xeTable;const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const{lazy}=expandOpts;const rowid=(0,_util.getRowid)(this,row);if(lazy&&!rowExpandLazyLoadedMaps[rowid]){$xeTable.clearRowExpandLoaded(row).then(()=>handleAsyncRowExpand($xeTable,row));}return $xeTable.$nextTick();},reloadExpandContent(row){const $xeTable=this;warnLog('vxe.error.delFunc',['reloadExpandContent','reloadRowExpand']);// 即将废弃
|
|
756
|
+
return $xeTable.reloadRowExpand(row);},/**
|
|
755
757
|
* 展开行事件
|
|
756
758
|
*/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=(0,_util.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);}},/**
|
|
757
759
|
* 切换展开行
|
|
758
|
-
*/toggleRowExpand(row){return
|
|
760
|
+
*/toggleRowExpand(row){const $xeTable=this;return $xeTable.setRowExpand(row,!$xeTable.isRowExpandByRow(row));},/**
|
|
759
761
|
* 设置所有行的展开与否
|
|
760
762
|
* @param {Boolean} expanded 是否展开
|
|
761
|
-
*/setAllRowExpand(expanded){const{
|
|
763
|
+
*/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){_xeUtils.default.eachTree(tableFullTreeData,row=>{expandedRows.push(row);},{children:childrenField});}else{expandedRows=tableFullData;}return $xeTable.setRowExpand(expandedRows,expanded);},/**
|
|
762
764
|
* 设置展开行,二个参数设置这一行展开与否
|
|
763
765
|
* 支持单行
|
|
764
766
|
* 支持多行
|
|
@@ -768,17 +770,17 @@ return this.reloadRowExpand(row);},/**
|
|
|
768
770
|
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();});},/**
|
|
769
771
|
* 判断行是否为展开状态
|
|
770
772
|
* @param {Row} row 行对象
|
|
771
|
-
*/isRowExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{rowExpandedFlag}=reactData;const{rowExpandedMaps}=internalData;const rowid=(0,_util.getRowid)(this,row);return!!rowExpandedFlag&&!!rowExpandedMaps[rowid];},isExpandByRow(row){warnLog('vxe.error.delFunc',['isExpandByRow','isRowExpandByRow']);// 即将废弃
|
|
772
|
-
return
|
|
773
|
+
*/isRowExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{rowExpandedFlag}=reactData;const{rowExpandedMaps}=internalData;const rowid=(0,_util.getRowid)(this,row);return!!rowExpandedFlag&&!!rowExpandedMaps[rowid];},isExpandByRow(row){const $xeTable=this;warnLog('vxe.error.delFunc',['isExpandByRow','isRowExpandByRow']);// 即将废弃
|
|
774
|
+
return $xeTable.isRowExpandByRow(row);},/**
|
|
773
775
|
* 手动清空展开行状态,数据会恢复成未展开的状态
|
|
774
|
-
*/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
|
|
776
|
+
*/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=[];_xeUtils.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)){errLog('vxe.error.reqProp',['aggregate-config']);return $xeTable.$nextTick();}const confList=fieldOrColumns?_xeUtils.default.isArray(fieldOrColumns)?fieldOrColumns:[fieldOrColumns]:[];if(maxGroupSize&&confList.length>maxGroupSize){if(_ui.VxeUI.modal){_ui.VxeUI.modal.message({status:'error',content:getI18n('vxe.table.maxGroupCol',[maxGroupSize])});}return $xeTable.$nextTick();}if(confList.length){handleUpdateRowGroup($xeTable,confList.map(fieldOrColumn=>{return _xeUtils.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)){errLog('vxe.error.reqProp',['aggregate-config']);return $xeTable.$nextTick();}handleUpdateRowGroup($xeTable,[]);return loadTableData($xeTable,internalData.tableSynchData,false,true);},isRowGroupRecord(row){const $xeTable=this;warnLog('vxe.error.delFunc',['isRowGroupRecord','isAggregateRecord']);return $xeTable.isAggregateRecord(row);},isRowGroupExpandByRow(row){const $xeTable=this;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[(0,_util.getRowid)($xeTable,row)];},setRowGroupExpand(rows,expanded){const $xeTable=this;if(rows){if(!_xeUtils.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(!_xeUtils.default.isArray(groupFields)){groupFields=[groupFields];}if(isRowGroupStatus){const rows=[];const gfKeys={};groupFields.forEach(groupField=>{gfKeys[groupField]=true;});_xeUtils.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){_xeUtils.default.eachTree(tableFullGroupData,row=>{if(row[mapChildrenField]&&row[mapChildrenField].length){rgExpandedMaps[(0,_util.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=[];_xeUtils.default.each(internalData.treeExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},/**
|
|
775
777
|
* 内部方法、获取树表格状态
|
|
776
778
|
* @deprecated
|
|
777
779
|
* @private
|
|
778
|
-
*/getTreeStatus(){if(
|
|
780
|
+
*/getTreeStatus(){const $xeTable=this;const props=$xeTable;const treeOpts=$xeTable.computeTreeOpts;if(props.treeConfig){return{config:treeOpts,rowExpandeds:$xeTable.getTreeExpandRecords()};}return null;},/**
|
|
779
781
|
* 判断树节点是否懒加载完成
|
|
780
782
|
* @param {Row} row 行对象
|
|
781
|
-
*/isTreeExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=
|
|
783
|
+
*/isTreeExpandLoaded(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const rowRest=fullAllDataRowIdData[(0,_util.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(!_xeUtils.default.isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.treeLoaded=false;if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}}});}else{_xeUtils.default.each(fullAllDataRowIdData,rowRest=>{rowRest.treeLoaded=false;});internalData.treeExpandedMaps={};}if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;return $xeTable.$nextTick();},/**
|
|
782
784
|
* 重新懒加载树节点,并展开该节点
|
|
783
785
|
* @param {Row} row 行对象
|
|
784
786
|
*/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=(0,_util.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;warnLog('vxe.error.delFunc',['reloadTreeChilds','reloadTreeExpand']);// 即将废弃
|
|
@@ -788,7 +790,7 @@ return $xeTable.reloadTreeExpand(row);},/**
|
|
|
788
790
|
* 展开树节点事件
|
|
789
791
|
*/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=(0,_util.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);}},/**
|
|
790
792
|
* 切换/展开树节点
|
|
791
|
-
*/toggleTreeExpand(row){return
|
|
793
|
+
*/toggleTreeExpand(row){const $xeTable=this;return $xeTable.setTreeExpand(row,!$xeTable.isTreeExpandByRow(row));},/**
|
|
792
794
|
* 设置所有树节点的展开与否
|
|
793
795
|
* @param {Boolean} expanded 是否展开
|
|
794
796
|
*/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=[];_xeUtils.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();}});},/**
|
|
@@ -797,13 +799,13 @@ return $xeTable.reloadTreeExpand(row);},/**
|
|
|
797
799
|
* 支持多行
|
|
798
800
|
* @param {Array/Row} rows 行数据
|
|
799
801
|
* @param {Boolean} expanded 是否展开
|
|
800
|
-
*/setTreeExpand(rows,expanded){const $xeTable=this;const
|
|
801
|
-
if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{return handleBaseTreeExpand($xeTable,rows,expanded);}}}return
|
|
802
|
+
*/setTreeExpand(rows,expanded){const $xeTable=this;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;if(rows){if(!_xeUtils.default.isArray(rows)){rows=[rows];}if(rows.length){// 如果为虚拟树
|
|
803
|
+
if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{return handleBaseTreeExpand($xeTable,rows,expanded);}}}return $xeTable.$nextTick();},/**
|
|
802
804
|
* 判断行是否为树形节点展开状态
|
|
803
805
|
* @param {Row} row 行对象
|
|
804
806
|
*/isTreeExpandByRow(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{treeExpandedFlag}=reactData;const{treeExpandedMaps}=internalData;return!!treeExpandedFlag&&!!treeExpandedMaps[(0,_util.getRowid)($xeTable,row)];},/**
|
|
805
807
|
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
806
|
-
*/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){_xeUtils.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
|
|
808
|
+
*/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){_xeUtils.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();},/**
|
|
807
809
|
* 获取表格的滚动状态
|
|
808
810
|
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
809
811
|
* 获取表格的滚动数据
|
|
@@ -854,7 +856,7 @@ internalData._sToTime=setTimeout(()=>{internalData._sToTime=undefined;if(scrollY
|
|
|
854
856
|
* 更新列状态 updateStatus({ row, column }, cellValue)
|
|
855
857
|
* 如果组件值 v-model 发生 change 时,调用改函数用于更新某一列编辑状态
|
|
856
858
|
* 如果单元格配置了校验规则,则会进行校验
|
|
857
|
-
*/updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;return
|
|
859
|
+
*/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);}});},/**
|
|
858
860
|
* 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
|
|
859
861
|
*/setMergeCells(merges){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;if(props.spanMethod){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){warnLog('vxe.error.errConflicts',['type=expand','merge-cells | span-method']);}$xeTable.updateCellAreas();return updateStyle($xeTable);});},/**
|
|
860
862
|
* 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
@@ -888,7 +890,7 @@ emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,para
|
|
|
888
890
|
*************************//**
|
|
889
891
|
* 已废弃,被 getCellElement 替换
|
|
890
892
|
* @deprecated
|
|
891
|
-
*/getCell(row,column){const $xeTable=this;return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){return row?_xeUtils.default.findIndexOf(list,item
|
|
893
|
+
*/getCell(row,column){const $xeTable=this;return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){const $xeTable=this;return row?_xeUtils.default.findIndexOf(list,item=>$xeTable.eqRow(item,row)):-1;},eqRow(row1,row2){const $xeTable=this;if(row1&&row2){if(row1===row2){return true;}return(0,_util.getRowid)($xeTable,row1)===(0,_util.getRowid)($xeTable,row2);}return false;},/*************************
|
|
892
894
|
* Publish methods
|
|
893
895
|
*************************/getSetupOptions(){return getConfig();}};const tablePrivateMethods={};const exportMethods=Object.assign({},tableMethods,tablePrivateMethods);// Module methods
|
|
894
896
|
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}`]) {
|