vxe-table 3.24.4 → 3.25.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/es/grid/src/grid.js +15 -2
  2. package/es/style.css +1 -1
  3. package/es/table/module/custom/panel.js +3 -2
  4. package/es/table/module/edit/mixin.js +5 -4
  5. package/es/table/module/export/mixin.js +6 -4
  6. package/es/table/module/filter/mixin.js +2 -2
  7. package/es/table/module/keyboard/mixin.js +4 -3
  8. package/es/table/module/menu/mixin.js +3 -3
  9. package/es/table/render/index.js +5 -3
  10. package/es/table/src/body.js +4 -4
  11. package/es/table/src/header.js +4 -3
  12. package/es/table/src/methods.js +76 -48
  13. package/es/table/src/table.js +29 -26
  14. package/es/table/src/util.js +6 -3
  15. package/es/ui/index.js +1 -1
  16. package/es/ui/src/log.js +1 -1
  17. package/es/ui/src/utils.js +9 -0
  18. package/lib/grid/src/grid.js +14 -1
  19. package/lib/grid/src/grid.min.js +1 -1
  20. package/lib/index.umd.js +129 -80
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/table/module/custom/panel.js +2 -1
  24. package/lib/table/module/custom/panel.min.js +1 -1
  25. package/lib/table/module/edit/mixin.js +4 -3
  26. package/lib/table/module/edit/mixin.min.js +1 -1
  27. package/lib/table/module/export/mixin.js +9 -3
  28. package/lib/table/module/export/mixin.min.js +1 -1
  29. package/lib/table/module/filter/mixin.js +1 -1
  30. package/lib/table/module/filter/mixin.min.js +1 -1
  31. package/lib/table/module/keyboard/mixin.js +4 -3
  32. package/lib/table/module/keyboard/mixin.min.js +1 -1
  33. package/lib/table/module/menu/mixin.js +2 -2
  34. package/lib/table/module/menu/mixin.min.js +1 -1
  35. package/lib/table/render/index.js +4 -2
  36. package/lib/table/render/index.min.js +1 -1
  37. package/lib/table/src/body.js +3 -3
  38. package/lib/table/src/body.min.js +1 -1
  39. package/lib/table/src/header.js +3 -2
  40. package/lib/table/src/header.min.js +1 -1
  41. package/lib/table/src/methods.js +32 -30
  42. package/lib/table/src/methods.min.js +1 -1
  43. package/lib/table/src/table.js +32 -25
  44. package/lib/table/src/table.min.js +1 -1
  45. package/lib/table/src/util.js +8 -2
  46. package/lib/table/src/util.min.js +1 -1
  47. package/lib/ui/index.js +1 -1
  48. package/lib/ui/index.min.js +1 -1
  49. package/lib/ui/src/log.js +1 -1
  50. package/lib/ui/src/log.min.js +1 -1
  51. package/lib/ui/src/utils.js +10 -0
  52. package/lib/ui/src/utils.min.js +1 -1
  53. package/package.json +2 -2
  54. package/packages/grid/src/grid.ts +16 -2
  55. package/packages/table/module/custom/panel.ts +3 -2
  56. package/packages/table/module/edit/mixin.ts +5 -4
  57. package/packages/table/module/export/mixin.ts +6 -4
  58. package/packages/table/module/filter/mixin.ts +2 -2
  59. package/packages/table/module/keyboard/mixin.ts +4 -3
  60. package/packages/table/module/menu/mixin.ts +3 -3
  61. package/packages/table/render/index.ts +5 -3
  62. package/packages/table/src/body.ts +4 -4
  63. package/packages/table/src/header.ts +4 -3
  64. package/packages/table/src/methods.ts +73 -46
  65. package/packages/table/src/table.ts +29 -26
  66. package/packages/table/src/util.ts +6 -3
  67. package/packages/ui/src/utils.ts +10 -0
  68. /package/es/{iconfont.1791617048832.ttf → iconfont.1791880417274.ttf} +0 -0
  69. /package/es/{iconfont.1791617048832.woff → iconfont.1791880417274.woff} +0 -0
  70. /package/es/{iconfont.1791617048832.woff2 → iconfont.1791880417274.woff2} +0 -0
  71. /package/lib/{iconfont.1791617048832.ttf → iconfont.1791880417274.ttf} +0 -0
  72. /package/lib/{iconfont.1791617048832.woff → iconfont.1791880417274.woff} +0 -0
  73. /package/lib/{iconfont.1791617048832.woff2 → iconfont.1791880417274.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -3266,6 +3266,15 @@ const {
3266
3266
  function isEnableConf(conf) {
3267
3267
  return conf && conf.enabled !== false;
3268
3268
  }
3269
+ /**
3270
+ * 用于开关类型的配置项
3271
+ * 局部启用规则:conf={}
3272
+ * 局部禁用规则:conf={enabled:false}
3273
+ * 全局默认启用规则:conf.enabled=true
3274
+ */
3275
+ function hasEnableConf(conf, opts) {
3276
+ return opts && (conf ? opts.enabled !== false : opts.enabled);
3277
+ }
3269
3278
  function isEmptyValue(cellValue) {
3270
3279
  return cellValue === null || cellValue === undefined || cellValue === '';
3271
3280
  }
@@ -3314,7 +3323,7 @@ function getDefaultConfig(val1, def1) {
3314
3323
  /* unused harmony import specifier */ var VxeUI;
3315
3324
 
3316
3325
 
3317
- const version = "3.24.4";
3326
+ const version = "3.25.0-beta.0";
3318
3327
  core_.VxeUI.version = version;
3319
3328
  core_.VxeUI.tableVersion = version;
3320
3329
  core_.VxeUI.setConfig({
@@ -4276,7 +4285,7 @@ function getPopupAppendElement(appendTo) {
4276
4285
  const {
4277
4286
  log: log_log
4278
4287
  } = core_.VxeUI;
4279
- const tableVersion = `table v${"3.24.4"}`;
4288
+ const tableVersion = `table v${"3.25.0-beta.0"}`;
4280
4289
  function createComponentLog(name) {
4281
4290
  const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
4282
4291
  const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
@@ -5498,15 +5507,21 @@ function getRefElem(refEl) {
5498
5507
  function clearTableDefaultStatus($xeTable) {
5499
5508
  const props = $xeTable;
5500
5509
  const internalData = $xeTable;
5510
+ const {
5511
+ keyboardConfig,
5512
+ mouseConfig
5513
+ } = props;
5514
+ const mouseOpts = $xeTable.computeMouseOpts;
5515
+ const keyboardOpts = $xeTable.computeKeyboardOpts;
5501
5516
  internalData.initStatus = false;
5502
5517
  const actionList = [$xeTable.clearSort(), $xeTable.clearCurrentRow(), $xeTable.clearCurrentColumn(), $xeTable.clearRadioRow(), $xeTable.clearRadioReserve(), $xeTable.clearCheckboxRow(), $xeTable.clearCheckboxReserve(), $xeTable.clearRowExpand(), $xeTable.clearTreeExpand(), $xeTable.clearTreeExpandReserve(), $xeTable.clearPendingRow()];
5503
5518
  if ($xeTable.clearFilter) {
5504
5519
  actionList.push($xeTable.clearFilter());
5505
5520
  }
5506
- if ($xeTable.clearSelected && (props.keyboardConfig || props.mouseConfig)) {
5521
+ if ($xeTable.clearSelected && (hasEnableConf(keyboardConfig, keyboardOpts) || hasEnableConf(mouseConfig, mouseOpts))) {
5507
5522
  actionList.push($xeTable.clearSelected());
5508
5523
  }
5509
- if ($xeTable.clearCellAreas && props.mouseConfig) {
5524
+ if ($xeTable.clearCellAreas && hasEnableConf(mouseConfig, mouseOpts)) {
5510
5525
  actionList.push($xeTable.clearCellAreas(), $xeTable.clearCopyCellArea());
5511
5526
  }
5512
5527
  return Promise.all(actionList).then(() => {
@@ -8107,7 +8122,7 @@ let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(
8107
8122
  if(isOptimizeMode){renderColumnList=fixedColumn||[];}}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isGroup){if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}else{if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}}if(currScrollElem){currScrollElem.style.height=`${tHeaderHeight}px`;}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='body'){if(currScrollElem){currScrollElem.style.maxHeight=customMaxHeight?`${bodyMaxHeight}px`:'';currScrollElem.style.height=customHeight?`${tbHeight}px`:'';currScrollElem.style.minHeight=`${bodyMinHeight}px`;}// 如果是固定列
8108
8123
  if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${tHeaderHeight}px`;}fixedWrapperElem.style.height=`${customHeight>0?customHeight:tableHeight+tHeaderHeight+tFooterHeight+osbHeight}px`;fixedWrapperElem.style.width=`${fixedColumn.reduce((previous,column)=>previous+column.renderWidth,0)}px`;}let renderColumnList=tableColumn;const isOptimizeMode=isBodyRenderOptimize;if(fixedType){renderColumnList=visibleColumn;if(isOptimizeMode){renderColumnList=fixedColumn||[];}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';// 兼容性处理
8109
8124
  tableElem.style.paddingRight=osbWidth&&fixedType&&(browseObj.firefox||browseObj.safari)?`${osbWidth}px`:'';}const emptyBlockElem=getRefElem(elemStore[`${name}-${layout}-emptyBlock`]);if(emptyBlockElem){emptyBlockElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='footer'){let renderColumnList=tableColumn;const isOptimizeMode=isFooterRenderOptimize;if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){if(isOptimizeMode){renderColumnList=fixedColumn||[];}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}if(currScrollElem){currScrollElem.style.height=`${tFooterHeight}px`;// 如果是固定列
8110
- if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${customHeight>0?customHeight-tFooterHeight-osbHeight:tableHeight+tHeaderHeight}px`;}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}});});if(currentRow){$xeTable.setCurrentRow(currentRow);}if(mouseConfig&&mouseOpts.selected&&editStore.selected.row&&editStore.selected.column){$xeTable.addCellSelectedClass();}if($xeGanttView&&$xeGanttView.handleUpdateStyle){$xeGanttView.handleUpdateStyle();}return $xeTable.$nextTick();}function checkValidate($xeTable,type){if($xeTable.triggerValidate){return $xeTable.triggerValidate(type);}return $xeTable.$nextTick();}/**
8125
+ if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${customHeight>0?customHeight-tFooterHeight-osbHeight:tableHeight+tHeaderHeight}px`;}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}});});if(currentRow){$xeTable.setCurrentRow(currentRow);}if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.selected&&editStore.selected.row&&editStore.selected.column){$xeTable.addCellSelectedClass();}if($xeGanttView&&$xeGanttView.handleUpdateStyle){$xeGanttView.handleUpdateStyle();}return $xeTable.$nextTick();}function checkValidate($xeTable,type){if($xeTable.triggerValidate){return $xeTable.triggerValidate(type);}return $xeTable.$nextTick();}/**
8111
8126
  * 当单元格发生改变时
8112
8127
  * 如果存在规则,则校验
8113
8128
  */function handleChangeCell($xeTable,evnt,params){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}function handleDefaultSort($xeTable){const props=$xeTable;const{sortConfig}=props;if(sortConfig){const sortOpts=$xeTable.computeSortOpts;let{defaultSort}=sortOpts;if(defaultSort){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(defaultSort)){defaultSort=[defaultSort];}if(defaultSort.length){(sortConfig.multiple?defaultSort:defaultSort.slice(0,1)).forEach((item,index)=>{const{field,order}=item;if(field&&order){const column=$xeTable.getColumnByField(field);if(column&&column.sortable){column.order=order;column.sortTime=Date.now()+index;}}});if(!sortOpts.remote){$xeTable.handleTableData(true).then(updateStyle);}}}}}/**
@@ -8215,7 +8230,7 @@ if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle
8215
8230
  if(childList.length&&childList[0].isAggregate){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(childList,row=>{if(row.isAggregate){const currAggData=row.aggData[field];if(currAggData){aggVal+=currAggData.value;}}});}else{aggVal=aggCalcMethod?aggCalcMethod(ctParams):aggRow.childCount;}aggDtObj[field]={type:'count',value:aggVal,label:aggVal};});aggRow.aggData=aggDtObj;});}}}function updateGroupData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary($xeTable,aggList);}}function handleGroupData($xeTable,list,rowGroups,isCombinedField){let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{rowField,parentField,separator,childrenField,mapChildrenField}=aggregateOpts;const rowOpts=$xeTable.computeRowOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const groupCombinedMaps={};const aggList=[];const rowkey=getRowkey($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,groupField);let groupValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue)?'':cellValue;if(isCombinedField){const groupVals=[groupValue];rowGroups.slice(1).forEach(ogItem=>{const ogField=ogItem.field;const ogColumn=$xeTable.getColumnByField(ogField);const ocValue=ogColumn?$xeTable.getCellLabel(row,ogColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,ogField);const ogValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(ocValue)?'':ocValue;groupValue+=(separator||' / ')+ogValue;groupVals.push(ogValue);});if(!groupCombinedMaps[groupValue]){groupCombinedMaps[groupValue]=groupVals;}}let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});if(isCombinedField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupCombineds:groupCombinedMaps[groupValue],groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childList,[mapChildrenField]:childList};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData($xeTable,childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupCombineds:[],groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childTreeData,[mapChildrenField]:childTreeData};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});}handleeGroupSummary($xeTable,aggList);}}return{treeData,fullData};}function initGroupData($xeTable,list,rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{mode}=aggregateOpts;const isCombinedField=mode==='combined';const groupRest=handleGroupData($xeTable,list,rowGroups,isCombinedField);return groupRest;}/**
8216
8231
  * 加载表格数据
8217
8232
  * @param {Array} datas 数据
8218
- */function loadTableData($xeTable,datas,isReload,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig,aggregateConfig,rowGroupConfig}=props;const{rowGroupList,scrollYLoad:oldScrollYLoad}=reactData;const{initStatus,scrollYStore,scrollXStore,lastScrollLeft,lastScrollTop}=internalData;const rowOpts=$xeTable.computeRowOpts;const treeOpts=$xeTable.computeTreeOpts;const expandOpts=$xeTable.computeExpandOpts;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;let treeData=[];let fullData=datas?datas.slice(0):[];// 转为响应式数据
8233
+ */function loadTableData($xeTable,datas,isReload,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig,rowGroupConfig,aggregateConfig,mouseConfig}=props;const{rowGroupList,scrollYLoad:oldScrollYLoad}=reactData;const{initStatus,scrollYStore,scrollXStore,lastScrollLeft,lastScrollTop}=internalData;const rowOpts=$xeTable.computeRowOpts;const treeOpts=$xeTable.computeTreeOpts;const expandOpts=$xeTable.computeExpandOpts;const mouseOpts=$xeTable.computeMouseOpts;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;let treeData=[];let fullData=datas?datas.slice(0):[];// 转为响应式数据
8219
8234
  if(fullData.length>supportMaxRow){methods_errLog('vxe.error.errMaxRow',[supportMaxRow]);}if(treeConfig&&rowGroupList.length){methods_errLog('vxe.error.noTree',['aggregate-config']);return $xeTable.$nextTick();}if(rowOpts.drag&&rowGroupList.length){methods_errLog('vxe.error.errConflicts',['row-config.drag','aggregate-config']);return $xeTable.$nextTick();}let isRGroup=false;if(treeConfig){if(transform){// 树结构自动转换
8220
8235
  if(!treeOpts.rowField){methods_errLog('vxe.error.reqProp',['tree-config.rowField']);}if(!treeOpts.parentField){methods_errLog('vxe.error.reqProp',['tree-config.parentField']);}if(!childrenField){methods_errLog('vxe.error.reqProp',['tree-config.childrenField']);}if(!treeOpts.mapChildrenField){methods_errLog('vxe.error.reqProp',['tree-config.mapChildrenField']);}if(childrenField===treeOpts.mapChildrenField){methods_errLog('vxe.error.errConflicts',['tree-config.childrenField','tree-config.mapChildrenField']);}// fullData.forEach(row => {
8221
8236
  // if (row[treeOpts.children] && row[treeOpts.children].length) {
@@ -8226,7 +8241,7 @@ treeData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils
8226
8241
  internalData.tableFullData=fullData;internalData.tableFullTreeData=isRGroup?[]:treeData;internalData.tableFullGroupData=isRGroup?treeData:[];// 缓存数据
8227
8242
  $xeTable.cacheRowMap(isReset);// 原始数据
8228
8243
  internalData.tableSynchData=datas;if(isReset){internalData.isResizeCellHeight=false;}// 克隆原数据,用于显示编辑状态,与编辑值做对比
8229
- if(keepSource){$xeTable.cacheSourceMap(fullData);}if($xeTable.clearCellAreas&&props.mouseConfig){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.clearHistory();$xeTable.handleTableData(true);$xeTable.updateFooter();$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{updateHeight($xeTable);updateStyle($xeTable);}).then(()=>{computeScrollLoad($xeTable);syncGanttScrollYStatus($xeTable);}).then(()=>{const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否启用了虚拟滚动
8244
+ if(keepSource){$xeTable.cacheSourceMap(fullData);}if($xeTable.clearCellAreas&&hasEnableConf(mouseConfig,mouseOpts)){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.clearHistory();$xeTable.handleTableData(true);$xeTable.updateFooter();$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{updateHeight($xeTable);updateStyle($xeTable);}).then(()=>{computeScrollLoad($xeTable);syncGanttScrollYStatus($xeTable);}).then(()=>{const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否启用了虚拟滚动
8230
8245
  if(sYLoad){scrollYStore.endIndex=scrollYStore.visibleSize;}if(sYLoad){if(reactData.expandColumn&&expandOpts.mode!=='fixed'){methods_errLog('vxe.error.notConflictProp',['column.type="expand','expand-config.mode="fixed"']);}if(virtualYOpts.mode==='scroll'&&reactData.expandColumn&&expandOpts.mode==='fixed'){methods_warnLog('vxe.error.notConflictProp',['virtual-y-config.mode=scroll','expand-config.mode=inside']);}// if (showOverflow) {
8231
8246
  // if (!rowOpts.height) {
8232
8247
  // const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
@@ -8294,9 +8309,11 @@ const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapp
8294
8309
  // }
8295
8310
  if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},/**
8296
8311
  * 获取父容器元素
8297
- */getParentElem(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{$el}=this;return $xeGGWrapper?$xeGGWrapper.$el.parentNode:$el.parentNode;},/**
8312
+ */getParentElem(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const el=$xeTable.$refs.refElem;if(!el){return null;}const parentEl=el.parentElement;if(!parentEl){return null;}if($xeGantt&&hasClass(parentEl,'vxe-gantt--table-wrapper')){return $xeGantt.getParentElem();}else if($xeGrid&&hasClass(parentEl,'vxe-grid--table-wrapper')){return $xeGrid.getParentElem();}// 如果是虚拟滚动条
8313
+ if(parentEl&&hasClass(parentEl,'vxe-scrollbar--view-inner')){return parentEl.parentElement;}return parentEl;},/**
8298
8314
  * 获取父容器的高度
8299
- */getParentHeight(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const{height}=props;const el=$xeTable.$refs.refElem;if(el){const parentElem=el.parentNode;const parentPaddingSize=height==='100%'||height==='auto'?getPaddingTopBottomSize(parentElem):0;let parentWrapperHeight=0;if(parentElem){if($xeGantt&&hasClass(parentElem,'vxe-gantt--table-wrapper')){parentWrapperHeight=$xeGantt.getParentHeight();}else if($xeGrid&&hasClass(parentElem,'vxe-grid--table-wrapper')){parentWrapperHeight=$xeGrid.getParentHeight();}else{parentWrapperHeight=parentElem.clientHeight;}}return Math.floor(parentWrapperHeight-parentPaddingSize);}return 0;},/**
8315
+ */getParentHeight(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const props=$xeTable;const{height}=props;const el=$xeTable.$refs.refElem;if(!el){return 0;}let parentEl=el.parentElement;let parentPaddingSize=0;let parentWrapperHeight=0;if(!parentEl){return 0;}if($xeGantt&&hasClass(parentEl,'vxe-gantt--table-wrapper')){parentWrapperHeight=$xeGantt.getParentHeight();}else if($xeGrid&&hasClass(parentEl,'vxe-grid--table-wrapper')){parentWrapperHeight=$xeGrid.getParentHeight();}else{// 如果是虚拟滚动条
8316
+ if(parentEl&&hasClass(parentEl,'vxe-scrollbar--view-inner')){parentEl=parentEl.parentElement;}if(parentEl){parentWrapperHeight=parentEl.clientHeight;parentPaddingSize=height==='100%'||height==='auto'?getPaddingTopBottomSize(parentEl):0;}}return Math.floor(parentWrapperHeight-parentPaddingSize);},/**
8300
8317
  * 获取需要排除的高度
8301
8318
  * 但渲染表格高度时,需要排除工具栏或分页等相关组件的高度
8302
8319
  * 如果存在表尾合计滚动条,则需要排除滚动条高度
@@ -8487,7 +8504,7 @@ if(!targetColumn.fixed&&isMaxFixedColumn){if(core_.VxeUI.modal){core_.VxeUI.moda
8487
8504
  * 如果已关联工具栏,则会同步更新
8488
8505
  */resetColumn(options){const $xeTable=this;methods_warnLog('vxe.error.delFunc',['resetColumn','resetCustom']);return $xeTable.resetCustom(options);},/**
8489
8506
  * @private
8490
- */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);},/**
8507
+ */handleCustom(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}$xeTable.analyColumnWidth();return $xeTable.refreshColumn(true);},/**
8491
8508
  * 还原自定义列操作状态
8492
8509
  */restoreCustomStorage(){const $xeTable=this;const props=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{storage,restoreStore}=customOpts;const{isCustomAlign,isCustomHeaderAlign,isCustomFooterAlign,isCustomResizable,isCustomVisible,isCustomFixed,isCustomSort,isCustomAggGroup,isCustomAggFunc}=handleCustomStoreConfig($xeTable);if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomAlign||isCustomHeaderAlign||isCustomFooterAlign||isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggGroup||isCustomAggFunc)){if(!tableId){methods_errLog('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore($xeTable,storeData);}).catch(e=>e);}else{return handleCustomRestore($xeTable,storeData);}}},/**
8493
8510
  * 用于 custom-config,用于手动恢复自定义列设置信息,恢复表格重置为初始状态
@@ -8532,7 +8549,7 @@ setTimeout(()=>{internalData.intoRunScroll=false;resolve();},10);});},handleResi
8532
8549
  if(!evntList.length&&type==='event.clearEdit'){evntList=methods_interceptor.get('event.clearActived');if(evntList.length){methods_warnLog('vxe.error.delEvent',['event.clearActived','event.clearEdit']);}}// 兼容老版本
8533
8550
  let rest=null;let isStop=false;for(let i=0;i<evntList.length;i++){const func=evntList[i];const fnRest=func(Object.assign({$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt,$event:evnt},args));if(fnRest===false){isStop=true;break;}else if(fnRest&&fnRest.status===false){rest=fnRest.result;isStop=true;break;}}if(!isStop){if(next){rest=next();}}if(end){end();}return rest;},/**
8534
8551
  * 全局按下事件处理
8535
- */handleGlobalMousedownEvent(evnt){const $xeTable=this;const props=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const reactData=$xeTable;const internalData=$xeTable;const{editStore,ctxMenuStore,customStore}=reactData;const{mouseConfig,editRules}=props;const el=$xeTable.$refs.refElem;const editOpts=$xeTable.computeEditOpts;const validOpts=$xeTable.computeValidOpts;const areaOpts=$xeTable.computeAreaOpts;const{actived}=editStore;const tableFilter=$xeTable.$refs.refTableFilter;const tableMenu=$xeTable.$refs.refTableMenu;const tableCustom=$xeTable.$refs.refTableCustom;const validTooltip=$xeTable.$refs.refValidTooltip;// 筛选
8552
+ */handleGlobalMousedownEvent(evnt){const $xeTable=this;const props=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const reactData=$xeTable;const internalData=$xeTable;const{editStore,ctxMenuStore,customStore}=reactData;const{mouseConfig,editRules}=props;const el=$xeTable.$refs.refElem;const editOpts=$xeTable.computeEditOpts;const validOpts=$xeTable.computeValidOpts;const areaOpts=$xeTable.computeAreaOpts;const mouseOpts=$xeTable.computeMouseOpts;const{actived}=editStore;const tableFilter=$xeTable.$refs.refTableFilter;const tableMenu=$xeTable.$refs.refTableMenu;const tableCustom=$xeTable.$refs.refTableCustom;const validTooltip=$xeTable.$refs.refValidTooltip;// 筛选
8536
8553
  if(tableFilter){if(getEventTargetNode(evnt,el,'vxe-cell--filter').flag){// 如果点击了筛选按钮
8537
8554
  }else if(getEventTargetNode(evnt,tableFilter.$el).flag){// 如果点击筛选容器
8538
8555
  }else{if(!getEventTargetNode(evnt,document.body,'vxe-table--ignore-clear').flag){$xeTable.preventEvent(evnt,'event.clearFilter',internalData._currFilterParams,$xeTable.closeFilter);}}}// 自定义列
@@ -8549,7 +8566,7 @@ if(!isClear){isClear=getEventTargetNode(evnt,el,'vxe-header--row').flag;}// 如
8549
8566
  if(!isClear){isClear=getEventTargetNode(evnt,el,'vxe-footer--row').flag;}// 如果固定了高度且点击了行之外的空白处,则清除激活状态
8550
8567
  if(!isClear&&props.height&&!reactData.overflowY){const bodyWrapperElem=evnt.target;if(hasClass(bodyWrapperElem,'vxe-table--body-wrapper')){isClear=evnt.offsetY<bodyWrapperElem.clientHeight;}}if(isClear||// 如果点击了当前表格之外
8551
8568
  !getEventTargetNode(evnt,el).flag){setTimeout(()=>{$xeTable.handleClearEdit(evnt).then(()=>{// 如果存在校验,点击了表格之外则清除
8552
- if(!internalData.isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}});});}});}}}}}else if(mouseConfig){if(!getEventTargetNode(evnt,el).flag&&!($xeGGWrapper&&getEventTargetNode(evnt,$xeGGWrapper.$el).flag)&&!(tableMenu&&getEventTargetNode(evnt,tableMenu.$el).flag)&&!(this.$toolbar&&getEventTargetNode(evnt,this.$toolbar.$el).flag)){if($xeTable.clearSelected){$xeTable.clearSelected();}if(areaOpts.autoClear){if($xeTable.getCellAreas){const cellAreas=$xeTable.getCellAreas();if(cellAreas&&cellAreas.length&&!getEventTargetNode(evnt,document.body,'vxe-table--ignore-areas-clear').flag){$xeTable.preventEvent(evnt,'event.clearAreas',{},()=>{$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();$xeTable.dispatchEvent('clear-cell-area-selection',{cellAreas},evnt);});}}}}}// 如果配置了快捷菜单且,点击了其他地方则关闭
8569
+ if(!internalData.isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}});});}});}}}}}else if(hasEnableConf(mouseConfig,mouseOpts)){if(!getEventTargetNode(evnt,el).flag&&!($xeGGWrapper&&getEventTargetNode(evnt,$xeGGWrapper.$el).flag)&&!(tableMenu&&getEventTargetNode(evnt,tableMenu.$el).flag)&&!(this.$toolbar&&getEventTargetNode(evnt,this.$toolbar.$el).flag)){if($xeTable.clearSelected){$xeTable.clearSelected();}if(areaOpts.autoClear){if($xeTable.getCellAreas){const cellAreas=$xeTable.getCellAreas();if(cellAreas&&cellAreas.length&&!getEventTargetNode(evnt,document.body,'vxe-table--ignore-areas-clear').flag){$xeTable.preventEvent(evnt,'event.clearAreas',{},()=>{$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();$xeTable.dispatchEvent('clear-cell-area-selection',{cellAreas},evnt);});}}}}}// 如果配置了快捷菜单且,点击了其他地方则关闭
8553
8570
  if(ctxMenuStore.visible&&tableMenu&&!getEventTargetNode(evnt,tableMenu.$el).flag){$xeTable.closeMenu();}if(!(actived.row&&getEventTargetNode(evnt,document.body,'vxe-table--ignore-clear').flag)){const isActivated=getEventTargetNode(evnt,($xeGGWrapper||$xeTable).$el).flag;// 如果存在校验,点击了表格之外则清除
8554
8571
  if(!isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}// 最后激活的表格
8555
8572
  internalData.isActivated=isActivated;}},/**
@@ -8558,46 +8575,46 @@ internalData.isActivated=isActivated;}},/**
8558
8575
  * 全局滚动事件
8559
8576
  */handleGlobalMousewheelEvent(){const $xeTable=this;$xeTable.closeTooltip();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
8560
8577
  * 表格键盘事件
8561
- */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 键,关闭快捷菜单、筛选
8562
- $xeTable.closeFilter();$xeTable.closeMenu();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
8578
+ */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(hasEnableConf(keyboardConfig,keyboardOpts)&&hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleKdClAreaEvent){$xeTable.handleKdClAreaEvent(evnt);}else if(actived.row||filterStore.visible||ctxMenuStore.visible){evnt.stopPropagation();// 如果按下了 Esc 键,关闭快捷菜单、筛选
8579
+ $xeTable.closeFilter();$xeTable.closeMenu();if(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
8563
8580
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
8564
- 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);},/**
8581
+ if(hasEnableConf(mouseConfig,mouseOpts)&&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);},/**
8565
8582
  * 全局键盘事件
8566
8583
  */handleGlobalKeydownEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;// 该行为只对当前激活的表格有效
8567
8584
  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){// 如果配置了右键菜单; 支持方向键操作、回车
8568
- evnt.preventDefault();if(ctxMenuStore.showChild&&hasChildrenList(ctxMenuStore.selected)){$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selectChild',isLeftArrow,false,ctxMenuStore.selected.children);}else{$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selected',isRightArrow,true,menuList);}}else if(keyboardConfig&&mouseConfig&&mouseOpts.area&&$xeTable.handleKdClAreaEvent){$xeTable.handleKdClAreaEvent(evnt);}else if(isEsc){// 如果按下了 Esc 键,关闭快捷菜单、筛选
8569
- if($xeTable.closeMenu){$xeTable.closeMenu();}$xeTable.closeFilter();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
8585
+ evnt.preventDefault();if(ctxMenuStore.showChild&&hasChildrenList(ctxMenuStore.selected)){$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selectChild',isLeftArrow,false,ctxMenuStore.selected.children);}else{$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selected',isRightArrow,true,menuList);}}else if(hasEnableConf(keyboardConfig,keyboardOpts)&&hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleKdClAreaEvent){$xeTable.handleKdClAreaEvent(evnt);}else if(isEsc){// 如果按下了 Esc 键,关闭快捷菜单、筛选
8586
+ if($xeTable.closeMenu){$xeTable.closeMenu();}$xeTable.closeFilter();if(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
8570
8587
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
8571
- if(mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}}else if(keyboardConfig&&isSpacebar&&keyboardOpts.isChecked&&selectRow&&selectColumn&&(selectColumn.type==='checkbox'||selectColumn.type==='radio')){// 空格键支持选中复选框
8588
+ if(mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}}else if(hasEnableConf(keyboardConfig,keyboardOpts)&&isSpacebar&&keyboardOpts.isChecked&&selectRow&&selectColumn&&(selectColumn.type==='checkbox'||selectColumn.type==='radio')){// 空格键支持选中复选框
8572
8589
  evnt.preventDefault();if(selectColumn.type==='checkbox'){$xeTable.handleToggleCheckRowEvent(evnt,selected.args);}else{$xeTable.triggerRadioRowEvent(evnt,selected.args);}}else if(isF2&&isEnableConf(editConfig)){if(!isEditStatus){// 如果按下了 F2 键
8573
8590
  if(selectRow&&selectColumn){evnt.preventDefault();$xeTable.handleEdit(selected.args,evnt);}}}else if(isContextMenu){// 如果按下上下文键
8574
- internalData._keyCtx=selectRow&&selectColumn&&bodyMenu.length;clearTimeout(internalData.keyCtxTimeout);internalData.keyCtxTimeout=setTimeout(()=>{internalData._keyCtx=false;},1000);}else if(isEnter&&!hasAltKey&&keyboardConfig&&keyboardOpts.isEnter&&(selectRow||actived.row||treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow)){// 退出选中
8591
+ internalData._keyCtx=selectRow&&selectColumn&&bodyMenu.length;clearTimeout(internalData.keyCtxTimeout);internalData.keyCtxTimeout=setTimeout(()=>{internalData._keyCtx=false;},1000);}else if(isEnter&&!hasAltKey&&hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isEnter&&(selectRow||actived.row||treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow)){// 退出选中
8575
8592
  if(isControlKey){// 如果是激活编辑状态,则取消编辑
8576
8593
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
8577
- if(mouseConfig&&mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}else{// 如果是激活状态,退则出到上一行/下一行
8594
+ if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}else{// 如果是激活状态,退则出到上一行/下一行
8578
8595
  if(selectRow||actived.row){const activeRow=selectRow||actived.row;const activeColumn=selectColumn||actived.column;if(activeColumn){const activeParams=selectRow?selected.args:actived.args;if(hasShiftKey){if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{$xeTable.moveEnterSelected(activeParams,isLeftArrow,true,isRightArrow,false,evnt);}}else{const _rowIndex=$xeTable.getVTRowIndex(activeRow);const _columnIndex=$xeTable.getVTColumnIndex(activeColumn);if(keyboardOpts.enterToTab){const ttrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex,$table:$xeTable};if(!beforeTabMethod||beforeTabMethod(ttrParams)!==false){evnt.preventDefault();// 最后一行按下Tab键,自动追加一行
8579
8596
  if(isLastTabAppendRow){const newColumn=visibleColumn[0];if(_rowIndex>=afterFullData.length-1&&_columnIndex>=visibleColumn.length-1){if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,newColumn);$xeTable.handleSelected({...activeParams,row:newRow,column:newColumn},evnt);});$xeTable.dispatchEvent('tab-append-row',ttrParams,evnt);return;}}if(tabMethod){tabMethod(ttrParams);}else{$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}}}else{const etrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex,$table:$xeTable};if(!beforeEnterMethod||beforeEnterMethod(etrParams)!==false){evnt.preventDefault();// 最后一行按下回车键,自动追加一行
8580
8597
  if(isLastEnterAppendRow){if(_rowIndex>=afterFullData.length-1){$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,selectColumn);$xeTable.handleSelected({...activeParams,row:newRow},evnt);});$xeTable.dispatchEvent('enter-append-row',etrParams,evnt);return;}}if(enterMethod){enterMethod(etrParams);}else{if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.moveEnterSelected(activeParams,isLeftArrow,false,isRightArrow,true,evnt);}}}}}}else if(treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow){// 如果是树形表格当前行回车移动到子节点
8581
- const childrens=currentRow[childrenField];if(childrens&&childrens.length){evnt.preventDefault();const targetRow=childrens[0];const params={$table:$xeTable,row:targetRow,rowIndex:$xeTable.getRowIndex(targetRow),$rowIndex:$xeTable.getVMRowIndex(targetRow)};$xeTable.setTreeExpand(currentRow,true).then(()=>$xeTable.scrollToRow(targetRow)).then(()=>$xeTable.triggerCurrentRowEvent(evnt,params));}}}}else if(operArrow&&keyboardConfig&&keyboardOpts.isArrow){if(!isEditStatus){// 如果按下了方向键
8598
+ const childrens=currentRow[childrenField];if(childrens&&childrens.length){evnt.preventDefault();const targetRow=childrens[0];const params={$table:$xeTable,row:targetRow,rowIndex:$xeTable.getRowIndex(targetRow),$rowIndex:$xeTable.getVMRowIndex(targetRow)};$xeTable.setTreeExpand(currentRow,true).then(()=>$xeTable.scrollToRow(targetRow)).then(()=>$xeTable.triggerCurrentRowEvent(evnt,params));}}}}else if(operArrow&&hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isArrow){if(!isEditStatus){// 如果按下了方向键
8582
8599
  if(mouseOpts.selected&&selectRow&&selectColumn){$xeTable.moveArrowSelected(selected.args,isLeftArrow,isUpArrow,isRightArrow,isDwArrow,evnt);}else{// 当前行按键上下移动
8583
8600
  if((isUpArrow||isDwArrow)&&(rowOpts.isCurrent||highlightCurrentRow)){$xeTable.moveCurrentRow(isUpArrow,isDwArrow,evnt);}// 当前行按键左右移动
8584
- if((isLeftArrow||isRightArrow)&&(columnOpts.isCurrent||highlightCurrentColumn)){$xeTable.moveCurrentColumn(isLeftArrow,isRightArrow,evnt);}}}}else if(isTab&&keyboardConfig&&keyboardOpts.isTab){// 如果按下了 Tab 键切换
8601
+ if((isLeftArrow||isRightArrow)&&(columnOpts.isCurrent||highlightCurrentColumn)){$xeTable.moveCurrentColumn(isLeftArrow,isRightArrow,evnt);}}}}else if(isTab&&hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isTab){// 如果按下了 Tab 键切换
8585
8602
  if(selectRow||actived.row){const activeRow=selectRow||actived.row;const activeColumn=selectColumn||actived.column;if(activeColumn){const activeParams=selectRow?selected.args:actived.args;const _rowIndex=$xeTable.getVTRowIndex(activeRow);const _columnIndex=$xeTable.getVTColumnIndex(activeColumn);const ttrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex,$table:$xeTable};if(!beforeTabMethod||beforeTabMethod(ttrParams)!==false){evnt.preventDefault();// 最后一行按下Tab键,自动追加一行
8586
- if(isLastTabAppendRow){const newColumn=visibleColumn[0];if(_rowIndex>=afterFullData.length-1&&_columnIndex>=visibleColumn.length-1){if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,newColumn);$xeTable.handleSelected({...activeParams,row:newRow,column:newColumn},evnt);});$xeTable.dispatchEvent('tab-append-row',ttrParams,evnt);return;}}if(tabMethod){tabMethod(ttrParams);}else{if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}}}}}else if(keyboardConfig&&keyboardOpts.isDel&&hasDeleteKey&&isEnableConf(editConfig)&&(selectRow||selectColumn)){// 如果是删除键
8603
+ if(isLastTabAppendRow){const newColumn=visibleColumn[0];if(_rowIndex>=afterFullData.length-1&&_columnIndex>=visibleColumn.length-1){if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,newColumn);$xeTable.handleSelected({...activeParams,row:newRow,column:newColumn},evnt);});$xeTable.dispatchEvent('tab-append-row',ttrParams,evnt);return;}}if(tabMethod){tabMethod(ttrParams);}else{if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}}}}}else if(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isDel&&hasDeleteKey&&isEnableConf(editConfig)&&(selectRow||selectColumn)){// 如果是删除键
8587
8604
  if(!isEditStatus){const{delMethod}=keyboardOpts;const params={row:selectRow,rowIndex:$xeTable.getRowIndex(selectRow),column:selectColumn,columnIndex:$xeTable.getColumnIndex(selectColumn),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};// 是否被禁用
8588
8605
  if(!beforeEditMethod||beforeEditMethod(params)){if(delMethod){delMethod(params);}else{const selectCellValue=getCellValue(selectRow,selectColumn);if(selectCellValue!==null){$xeTable.handlePushStack();setCellValue(selectRow,selectColumn,null);}}// 如果按下 del 键,更新表尾数据
8589
- $xeTable.updateFooter();$xeTable.dispatchEvent('cell-delete-value',params,evnt);}}}else if(hasBackspaceKey&&keyboardConfig&&keyboardOpts.isBack&&isEnableConf(editConfig)&&(selectRow||selectColumn)){if(!isEditStatus){const{backMethod}=keyboardOpts;// 如果是删除键
8606
+ $xeTable.updateFooter();$xeTable.dispatchEvent('cell-delete-value',params,evnt);}}}else if(hasBackspaceKey&&hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isBack&&isEnableConf(editConfig)&&(selectRow||selectColumn)){if(!isEditStatus){const{backMethod}=keyboardOpts;// 如果是删除键
8590
8607
  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};// 是否被禁用
8591
- 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)&&currentRow){// 如果树形表格回退键关闭当前行返回父节点
8592
- 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
8608
+ 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&&hasEnableConf(keyboardConfig,keyboardOpts)&&treeConfig&&keyboardOpts.isBack&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow){// 如果树形表格回退键关闭当前行返回父节点
8609
+ 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(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isUndoRedo&&isControlKey&&(isZ||isY)&&!hasAxternalInputTarget(evnt.target)){if(isY||hasShiftKey&&isZ){// 恢复被撤销的操作:Ctrl + Y 或 Ctrl + Shift + Z
8593
8610
  evnt.preventDefault();$xeTable.handleRedoStackEvent(evnt);}else if(isZ){// ‌撤销上一步操作‌:Ctrl + Z
8594
- 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;// 启用编辑后,空格键功能将失效
8611
+ evnt.preventDefault();$xeTable.handleUndoStackEvent(evnt);}}else if(hasEnableConf(keyboardConfig,keyboardOpts)&&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;// 启用编辑后,空格键功能将失效
8595
8612
  // if (isSpacebar) {
8596
8613
  // evnt.preventDefault()
8597
8614
  // }
8598
8615
  // 如果是按下非功能键之外允许直接编辑
8599
8616
  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;// 追加方式与覆盖式
8600
- 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++;},/**
8617
+ 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(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isClip&&hasEnableConf(mouseConfig,mouseOpts)&&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(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isClip&&hasEnableConf(mouseConfig,mouseOpts)&&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(hasEnableConf(keyboardConfig,keyboardOpts)&&keyboardOpts.isClip&&hasEnableConf(mouseConfig,mouseOpts)&&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++;},/**
8601
8618
  * 处理合并
8602
8619
  */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);}});}},/**
8603
8620
  * 触发表头 tooltip 事件
@@ -8697,7 +8714,7 @@ internalData.currentRow=row;if(rowOpts.isCurrent||props.highlightCurrentRow){if(
8697
8714
  */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;},/**
8698
8715
  * 用于当前列,设置某列行为高亮状态
8699
8716
  * @param {ColumnInfo} fieldOrColumn 列配置
8700
- */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++;// 刷新当前列状态
8717
+ */setCurrentColumn(fieldOrColumn){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const isMouseSelected=hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.selected;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column){$xeTable.clearCurrentColumn();internalData.currentCol=column;reactData.currColFlag++;// 刷新当前列状态
8701
8718
  }return $xeTable.$nextTick().then(()=>{// 更新状选中态
8702
8719
  if(isMouseSelected){$xeTable.addCellSelectedClass();}});},/**
8703
8720
  * 用于当前列,手动清空当前高亮的状态
@@ -8720,11 +8737,11 @@ if(keyboardOpts.arrowCursorLock&&evnt&&editOpts.mode==='cell'&&evnt.target&&/^in
8720
8737
  if(isEnableConf(editConfig)&&editOpts.autoClear!==false&&editOpts.trigger==='dblclick'){if(actived.row&&actived.column){if(editOpts.mode==='row'){if(!$xeTable.eqRow(actived.row,row)){$xeTable.handleClearEdit(evnt);}}else if(editOpts.mode==='cell'){if(!$xeTable.eqRow(actived.row,row)||actived.column.id!==column.id){$xeTable.handleClearEdit(evnt);}}}}if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('cell-click',params,evnt);},/**
8721
8738
  * 列双击点击事件
8722
8739
  * 如果是双击模式,则激活为编辑状态
8723
- */triggerCellDblclickEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore,isDragResize}=reactData;if(isDragResize){return;}const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const cell=evnt.currentTarget;params=Object.assign({cell},params);if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(!actived.args||evnt.currentTarget!==actived.args.cell){if(editOpts.mode==='row'){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}else if(editOpts.mode==='cell'){$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);}}}$xeTable.dispatchEvent('cell-dblclick',params,evnt);},triggerFooterCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const cell=evnt.currentTarget;params=Object.assign({cell},params);if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('footer-cell-click',params,evnt);},triggerFooterCellDblclickEvent(evnt,params){const $xeTable=this;const cell=evnt.currentTarget;params=Object.assign({cell},params);$xeTable.dispatchEvent('footer-cell-dblclick',params,evnt);},handleColumnSortEvent(evnt,column){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if(mouseConfig&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){$xeTable.dispatchEvent('clear-sort',params,evnt);}$xeTable.dispatchEvent('sort-change',params,evnt);}},/**
8740
+ */triggerCellDblclickEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore,isDragResize}=reactData;if(isDragResize){return;}const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const cell=evnt.currentTarget;params=Object.assign({cell},params);if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(!actived.args||evnt.currentTarget!==actived.args.cell){if(editOpts.mode==='row'){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}else if(editOpts.mode==='cell'){$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);}}}$xeTable.dispatchEvent('cell-dblclick',params,evnt);},triggerFooterCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const cell=evnt.currentTarget;params=Object.assign({cell},params);if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('footer-cell-click',params,evnt);},triggerFooterCellDblclickEvent(evnt,params){const $xeTable=this;const cell=evnt.currentTarget;params=Object.assign({cell},params);$xeTable.dispatchEvent('footer-cell-dblclick',params,evnt);},handleColumnSortEvent(evnt,column){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){$xeTable.dispatchEvent('clear-sort',params,evnt);}$xeTable.dispatchEvent('sort-change',params,evnt);}},/**
8724
8741
  * 点击排序事件
8725
8742
  */triggerSortEvent(evnt,column,order){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;const{multiple,allowClear}=sortOpts;const{field,sortable}=column;if(sortable||column.remoteSort){if(!order||column.order===order){if(allowClear){$xeTable.clearSort(multiple?column:null);}}else{$xeTable.sort({field,order});}$xeTable.handleColumnSortEvent(evnt,column);}},handleCellRuleUpdateStatus(type,cellParams,cellValue){const $xeTable=this;const reactData=$xeTable;const{validStore}=reactData;const{row,column}=cellParams;if($xeTable.hasCellRules){if($xeTable.hasCellRules(type,row,column)){const cell=$xeTable.getCellElement(row,column);if(cell){const customVal=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);return $xeTable.validCellRules(type,row,column,cellValue).then(()=>{if(customVal&&validStore.visible){setCellValue(row,column,cellValue);}$xeTable.clearValidate(row,column);}).catch(({rule})=>{if(customVal){setCellValue(row,column,cellValue);}$xeTable.showValidTooltip({rule,row,column,cell});});}}}return $xeTable.$nextTick();},/**
8726
8743
  * 表头单元格按下事件
8727
- */triggerHeaderCellMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&mouseConfig&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
8744
+ */triggerHeaderCellMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
8728
8745
  * 单元格按下事件
8729
8746
  */triggerCellMousedownEvent(evnt,params){const $xeTable=this;const{column}=params;const{type,treeNode}=column;const isRadioType=type==='radio';const isCheckboxType=type==='checkbox';const isExpandType=type==='expand';const rowOpts=$xeTable.computeRowOpts;const rowDragOpts=$xeTable.computeRowDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=rowDragOpts;const cell=evnt.currentTarget;params.cell=cell;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerRadio=isRadioType&&getEventTargetNode(evnt,cell,'vxe-cell--radio').flag;const triggerCheckbox=isCheckboxType&&getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerTreeNode=treeNode&&getEventTargetNode(evnt,cell,'vxe-cell--tree-btn').flag;const triggerExpandNode=isExpandType&&getEventTargetNode(evnt,cell,'vxe-table--expanded').flag;let isColDragCell=false;if(rowOpts.drag){isColDragCell=trigger==='row'||column.dragSort&&trigger==='cell';}let triggerDrag=false;if(!(triggerInput||triggerRadio||triggerCheckbox||triggerTreeNode||triggerExpandNode)){if(isColDragCell&&(isCrossDrag||isPeerDrag||!params.level)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&$xeTable.handleCellMousedownEvent){$xeTable.handleCellMousedownEvent(evnt,params);}$xeTable.focus();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}},triggerCellMouseupEvent(){const $xeTable=this;clearDragStatus($xeTable);},/**
8730
8747
  * 行拖拽
@@ -8758,7 +8775,7 @@ if(isCrossTableDrag&&crossTableDragRowObj){const{$newTable}=crossTableDragRowObj
8758
8775
  const newRowid=getRowid($xeTable,prevDragRow);const rowRest=fullAllDataRowIdData[newRowid];if(prevDragRow[hasChildField]){if(rowRest&&rowRest.treeLoaded){$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}}else{$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}}else{$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}},handleRowDragDragoverEvent(evnt){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;const{dragRow}=reactData;const treeOpts=$xeTable.computeTreeOpts;const{lazy,transform,parentField}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const rowDragOpts=$xeTable.computeRowDragOpts;const{isPeerDrag,isCrossDrag,isToChildDrag,isCrossTableDrag}=rowDragOpts;if(!dragRow&&!(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj)){evnt.preventDefault();return;}const isControlKey=hasControlKey(evnt);const trEl=evnt.currentTarget;const rowid=trEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){evnt.preventDefault();const row=rowRest.row;const offsetY=evnt.clientY-trEl.getBoundingClientRect().y;const dragPos=offsetY<trEl.clientHeight/2?'top':'bottom';internalData.prevDragToChild=!!(treeConfig&&transform&&isCrossDrag&&isToChildDrag&&isControlKey);internalData.prevDragRow=row;internalData.prevDragPos=dragPos;// 跨表拖拽
8759
8776
  if(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable;if($oldTable.xID===$xeTable.xID){if($newTable){$newTable.hideCrossTableRowDropClearStatus();}reactData.isCrossDragRow=false;oldTableReactData.isCrossDragRow=false;crossTableDragRowObj.$newTable=null;}else if(!treeConfig||isCrossDrag){if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}$oldTable.hideCrossTableRowDropClearStatus();oldTableReactData.isCrossDragRow=true;reactData.dragTipText=oldTableReactData.dragTipText;crossTableDragRowObj.$newTable=$xeTable;showDropTip($xeTable,evnt,trEl,null,true,dragPos);return;}}}if($xeTable.eqRow(dragRow,row)||isControlKey&&treeConfig&&lazy&&row[hasChildField]&&rowRest&&!rowRest.treeLoaded||!isCrossDrag&&treeConfig&&transform&&(isPeerDrag?dragRow[parentField]!==row[parentField]:rowRest.level)){showDropTip($xeTable,evnt,trEl,null,false,dragPos);return;}showDropTip($xeTable,evnt,trEl,null,true,dragPos);$xeTable.dispatchEvent('row-dragover',{oldRow:dragRow,targetRow:row,dragPos},evnt);}},handleCellDragMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const crossTableDragRowInfo=getCrossTableDragRowInfo($xeTable);evnt.stopPropagation();const{dragConfig}=props;const rowDragOpts=$xeTable.computeRowDragOpts;const{isCrossTableDrag,trigger,dragStartMethod}=rowDragOpts;const{row}=params;const dragEl=evnt.currentTarget;const tdEl=trigger==='cell'||trigger==='row'?dragEl:dragEl.parentElement?.parentElement;const trEl=tdEl.parentElement;const dStartMethod=dragStartMethod||(dragConfig?dragConfig.dragStartMethod:null);clearRowDropOrigin($xeTable);if(dStartMethod&&!dStartMethod(params)){trEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;clearCrossTableDragStatus($xeTable);hideDropTip($xeTable);return;}if(isCrossTableDrag){crossTableDragRowInfo.row=row;crossTableDragRowObj={$oldTable:$xeTable,$newTable:null};}reactData.dragRow=row;reactData.isCrossDragRow=false;reactData.dragCol=null;trEl.draggable=true;updateRowDropOrigin($xeTable,row);updateRowDropTipContent($xeTable,tdEl);$xeTable.dispatchEvent('row-dragstart',params,evnt);},handleCellDragMouseupEvent(){const $xeTable=this;clearDragStatus($xeTable);},/**
8760
8777
  * 列拖拽
8761
- */handleHeaderCellDragDragstartEvent(evnt){const $xeTable=this;if(evnt.dataTransfer){evnt.dataTransfer.setDragImage(getTpImg(),0,0);}$xeTable.closeTooltip();},handleColDragSwapColumn(){const $xeTable=this;handleUpdateColumn($xeTable);return parseColumns($xeTable,false).then(()=>{$xeTable.updateCellAreas();$xeTable.saveCustomStore('update:sort');});},handleColDragSwapEvent(evnt,isSyncColumn,dragCol,prevDragCol,prevDragPos,prevDragToChild){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{mouseConfig}=props;const columnDragOpts=$xeTable.computeColumnDragOpts;const{animation,isPeerDrag,isCrossDrag,isSelfToChildDrag,isToChildDrag,dragEndMethod,dragToChildMethod}=columnDragOpts;const{collectColumn,fullColumnIdData}=internalData;const el=$xeTable.$refs.refElem;const dragOffsetIndex=prevDragPos==='right'?1:0;const errRest={status:false};if(!(el&&prevDragCol&&dragCol)){return Promise.resolve(errRest);}// 判断是否有拖动
8778
+ */handleHeaderCellDragDragstartEvent(evnt){const $xeTable=this;if(evnt.dataTransfer){evnt.dataTransfer.setDragImage(getTpImg(),0,0);}$xeTable.closeTooltip();},handleColDragSwapColumn(){const $xeTable=this;handleUpdateColumn($xeTable);return parseColumns($xeTable,false).then(()=>{$xeTable.updateCellAreas();$xeTable.saveCustomStore('update:sort');});},handleColDragSwapEvent(evnt,isSyncColumn,dragCol,prevDragCol,prevDragPos,prevDragToChild){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{mouseConfig}=props;const columnDragOpts=$xeTable.computeColumnDragOpts;const mouseOpts=$xeTable.computeMouseOpts;const{animation,isPeerDrag,isCrossDrag,isSelfToChildDrag,isToChildDrag,dragEndMethod,dragToChildMethod}=columnDragOpts;const{collectColumn,fullColumnIdData}=internalData;const el=$xeTable.$refs.refElem;const dragOffsetIndex=prevDragPos==='right'?1:0;const errRest={status:false};if(!(el&&prevDragCol&&dragCol)){return Promise.resolve(errRest);}// 判断是否有拖动
8762
8779
  if(prevDragCol!==dragCol){const dragColumn=dragCol;const newColumn=prevDragCol;const dragParams={oldColumn:dragColumn,newColumn,dragColumn,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};let dragTargetColumn=null;const dragAllTargetCols=[];let dragColWidth=0;if(animation){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragColumn],column=>{if(!dragTargetColumn&&(!column.children||!column.children.length)){dragTargetColumn=column;dragColWidth+=column.renderWidth;}dragAllTargetCols.push(column);});}if(!dragTargetColumn){dragTargetColumn=dragColumn;}const dragColRest=fullColumnIdData[dragTargetColumn.id]||{};const _dragColIndex=dragColRest._index;let dragOffsetLeft=-1;if(animation){const oldTrEl=el.querySelector(`.vxe-table--column[colid="${dragTargetColumn.id}"]`);if(oldTrEl){dragOffsetLeft=oldTrEl.offsetLeft;}}let oafIndex=-1;let nafIndex=-1;const oldAllMaps={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragColumn],column=>{oldAllMaps[column.id]=column;});let isSelfToChildStatus=false;if(dragColumn.parentId&&newColumn.parentId){// 子到子
8763
8780
  if(isPeerDrag&&!isCrossDrag){if(dragColumn.parentId!==newColumn.parentId){// 非同级
8764
8781
  handleColDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}else{if(!isCrossDrag){handleColDragEndClearStatus($xeTable);return Promise.resolve(errRest);}if(oldAllMaps[newColumn.id]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.error.treeDragChild')});}handleColDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}}}else if(dragColumn.parentId){// 子到根
@@ -8766,7 +8783,7 @@ if(!isCrossDrag){handleColDragEndClearStatus($xeTable);return Promise.resolve(er
8766
8783
  if(!isCrossDrag){handleColDragEndClearStatus($xeTable);return Promise.resolve(errRest);}if(oldAllMaps[newColumn.id]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.error.treeDragChild')});}handleColDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}}else{// 根到根
8767
8784
  }const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;return Promise.resolve(dragEndMethod?dragEndMethod(dragParams):true).then(status=>{if(!status){return errRest;}const oldewMatchRest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(collectColumn,item=>item.id===dragColumn.id);// 改变层级
8768
8785
  if(isSelfToChildStatus&&isCrossDrag&&isSelfToChildDrag){if(oldewMatchRest){const{items:oCols,index:oIndex}=oldewMatchRest;const childList=dragColumn.children||[];childList.forEach(column=>{column.parentId=dragColumn.parentId;});oCols.splice(oIndex,1,...childList);dragColumn.children=[];}}else{if(oldewMatchRest){const{items:oCols,index:oIndex,parent:oParent}=oldewMatchRest;oCols.splice(oIndex,1);if(!oParent){oafIndex=oIndex;}}}const newMatchRest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(collectColumn,item=>item.id===newColumn.id);if(newMatchRest){const{items:nCols,index:nIndex,parent:nParent}=newMatchRest;// 转子级
8769
- if(isCrossDrag&&isToChildDrag&&isDragToChildFlag){dragColumn.parentId=newColumn.id;newColumn.children=(newColumn.children||[]).concat([dragColumn]);}else{dragColumn.parentId=newColumn.parentId;nCols.splice(nIndex+dragOffsetIndex,0,dragColumn);}if(!nParent){nafIndex=nIndex;}}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{if(!parentColumn){const sortIndex=index+1;column.renderSortNumber=sortIndex;}});$xeTable.handleClearStack();if(mouseConfig){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}if(evnt){$xeTable.dispatchEvent('column-dragend',{oldColumn:dragColumn,newColumn,dragColumn,dragPos:prevDragPos,dragToChild:isDragToChildFlag,offsetIndex:dragOffsetIndex,_index:{newIndex:nafIndex,oldIndex:oafIndex}},evnt);}return $xeTable.$nextTick().then(()=>{if(isSyncColumn){return $xeTable.handleColDragSwapColumn();}}).then(()=>{if(animation){const{tableColumn}=reactData;const{visibleColumn,fullColumnIdData}=internalData;let dragNewColumn=null;const dragNewColMaps={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragColumn],column=>{if(!dragNewColumn&&(!column.children||!column.children.length)){dragNewColumn=column;}dragNewColMaps[column.id]=column;});if(!dragNewColumn){dragNewColumn=dragColumn;}if(dragColWidth&&dragAllTargetCols.length){const _newColIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(visibleColumn,column=>!!dragNewColumn&&column.id===dragNewColumn.id);const firstCol=tableColumn[0];const firstColRest=fullColumnIdData[firstCol.id];if(firstColRest){const _firstColIndex=firstColRest._index;const _lastColIndex=_firstColIndex+tableColumn.length;let csIndex=-1;let ceIndex=-1;let offsetRate=1;if(_dragColIndex<_firstColIndex){// 从左往右虚拟拖拽
8786
+ if(isCrossDrag&&isToChildDrag&&isDragToChildFlag){dragColumn.parentId=newColumn.id;newColumn.children=(newColumn.children||[]).concat([dragColumn]);}else{dragColumn.parentId=newColumn.parentId;nCols.splice(nIndex+dragOffsetIndex,0,dragColumn);}if(!nParent){nafIndex=nIndex;}}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{if(!parentColumn){const sortIndex=index+1;column.renderSortNumber=sortIndex;}});$xeTable.handleClearStack();if(hasEnableConf(mouseConfig,mouseOpts)){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}if(evnt){$xeTable.dispatchEvent('column-dragend',{oldColumn:dragColumn,newColumn,dragColumn,dragPos:prevDragPos,dragToChild:isDragToChildFlag,offsetIndex:dragOffsetIndex,_index:{newIndex:nafIndex,oldIndex:oafIndex}},evnt);}return $xeTable.$nextTick().then(()=>{if(isSyncColumn){return $xeTable.handleColDragSwapColumn();}}).then(()=>{if(animation){const{tableColumn}=reactData;const{visibleColumn,fullColumnIdData}=internalData;let dragNewColumn=null;const dragNewColMaps={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragColumn],column=>{if(!dragNewColumn&&(!column.children||!column.children.length)){dragNewColumn=column;}dragNewColMaps[column.id]=column;});if(!dragNewColumn){dragNewColumn=dragColumn;}if(dragColWidth&&dragAllTargetCols.length){const _newColIndex=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(visibleColumn,column=>!!dragNewColumn&&column.id===dragNewColumn.id);const firstCol=tableColumn[0];const firstColRest=fullColumnIdData[firstCol.id];if(firstColRest){const _firstColIndex=firstColRest._index;const _lastColIndex=_firstColIndex+tableColumn.length;let csIndex=-1;let ceIndex=-1;let offsetRate=1;if(_dragColIndex<_firstColIndex){// 从左往右虚拟拖拽
8770
8787
  csIndex=0;ceIndex=_newColIndex-_firstColIndex;}else if(_dragColIndex>_lastColIndex){// 从右往左虚拟拖拽
8771
8788
  const $newRowIndex=dragColRest.$index;csIndex=$newRowIndex+1;ceIndex=tableColumn.length;offsetRate=-1;}else{if(_newColIndex>_dragColIndex){// 从左往右拖拽
8772
8789
  csIndex=_dragColIndex-_firstColIndex;ceIndex=csIndex+_newColIndex-_dragColIndex;}else{// 从右往左拖拽
@@ -8917,7 +8934,7 @@ return $xeTable.removeMergeFooterCells(merges);},/**
8917
8934
  return $xeTable.getMergeFooterCells();},/**
8918
8935
  * 清除所有表尾合并
8919
8936
  */clearMergeFooterCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};reactData.mergeFootFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},clearMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
8920
- return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(mouseConfig&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
8937
+ return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
8921
8938
  emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
8922
8939
  * 已废弃,被 connectToolbar 替换
8923
8940
  * @deprecated
@@ -9242,7 +9259,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
9242
9259
  };
9243
9260
  }
9244
9261
  // 按下事件处理
9245
- if (isRowDragCell || checkboxOpts.range || mouseConfig) {
9262
+ if (isRowDragCell || checkboxOpts.range || hasEnableConf(mouseConfig, mouseOpts)) {
9246
9263
  tdOns.mousedown = evnt => {
9247
9264
  $xeTable.triggerCellMousedownEvent(evnt, cellParams);
9248
9265
  };
@@ -9421,7 +9438,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
9421
9438
  }
9422
9439
  }
9423
9440
  let showAreaRowStatus = false;
9424
- if (mouseConfig && mouseOpts.area && !_columnIndex && selectCellToRow) {
9441
+ if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area && !_columnIndex && selectCellToRow) {
9425
9442
  showAreaRowStatus = true;
9426
9443
  }
9427
9444
  if (!fixedHiddenColumn && showResizable && isAllColumnDrag) {
@@ -9949,7 +9966,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
9949
9966
  ref: 'refBodyTBody'
9950
9967
  }, renderRows(h, this, fixedType, isOptimizeMode, renderDataList, renderColumnList))]), h('div', {
9951
9968
  class: 'vxe-table--checkbox-range'
9952
- }), mouseConfig && mouseOpts.area ? h('div', {
9969
+ }), hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area ? h('div', {
9953
9970
  class: 'vxe-table--cell-area',
9954
9971
  attrs: {
9955
9972
  xid: xID
@@ -10050,6 +10067,7 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIn
10050
10067
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
10051
10068
  const headerCellOpts = $xeTable.computeHeaderCellOpts;
10052
10069
  const rendererOpts = $xeTable.computeRendererOpts;
10070
+ const mouseOpts = $xeTable.computeMouseOpts;
10053
10071
  const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight;
10054
10072
  const {
10055
10073
  disabledMethod: dragDisabledMethod,
@@ -10152,7 +10170,7 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIn
10152
10170
  isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(cellParams));
10153
10171
  }
10154
10172
  // 按下事件处理
10155
- if (mouseConfig || isColDragCell) {
10173
+ if (hasEnableConf(mouseConfig, mouseOpts) || isColDragCell) {
10156
10174
  thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, cellParams);
10157
10175
  }
10158
10176
  // 拖拽列事件
@@ -10595,7 +10613,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups, renderColumn
10595
10613
  */
10596
10614
  h('thead', {
10597
10615
  ref: 'refHeaderTHead'
10598
- }, renderHeads(h, _vm, isGroup, isOptimizeMode, renderHeaderList, renderColumnList))]), mouseConfig && mouseOpts.area ? h('div', {
10616
+ }, renderHeads(h, _vm, isGroup, isOptimizeMode, renderHeaderList, renderColumnList))]), hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area ? h('div', {
10599
10617
  class: 'vxe-table--cell-area',
10600
10618
  attrs: {
10601
10619
  xid: xID
@@ -11556,6 +11574,7 @@ function panel_hideDropTip($xeTableCustomPanel) {
11556
11574
  collectColumn
11557
11575
  } = tableInternalData;
11558
11576
  const customOpts = $xeTable.computeCustomOpts;
11577
+ const mouseOpts = $xeTable.computeMouseOpts;
11559
11578
  const {
11560
11579
  immediate
11561
11580
  } = customOpts;
@@ -11716,7 +11735,7 @@ function panel_hideDropTip($xeTableCustomPanel) {
11716
11735
  nafIndex = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(customColumnList, item => item.id === newColumn.id);
11717
11736
  customColumnList.splice(nafIndex + dragOffsetIndex, 0, dragColumn);
11718
11737
  }
11719
- if (mouseConfig) {
11738
+ if (hasEnableConf(mouseConfig, mouseOpts)) {
11720
11739
  if ($xeTable.clearSelected) {
11721
11740
  $xeTable.clearSelected();
11722
11741
  }
@@ -14843,7 +14862,7 @@ function updatePopupStyle($xeTable) {
14843
14862
  $xeTable.handleTableData(true);
14844
14863
  $xeTable.checkSelectionStatus();
14845
14864
  }
14846
- if (mouseConfig && mouseOpts.area && $xeTable.handleFilterEvent) {
14865
+ if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area && $xeTable.handleFilterEvent) {
14847
14866
  $xeTable.handleFilterEvent(evnt, params);
14848
14867
  }
14849
14868
  if (evnt) {
@@ -15096,7 +15115,7 @@ const {
15096
15115
  $event: evnt
15097
15116
  };
15098
15117
  // 如果开启单元格区域
15099
- if (mouseConfig && mouseOpts.area) {
15118
+ if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area) {
15100
15119
  const activeArea = $xeTable.getActiveCellArea();
15101
15120
  if (activeArea && activeArea.row && activeArea.column) {
15102
15121
  params.row = activeArea.row;
@@ -15104,7 +15123,7 @@ const {
15104
15123
  $xeTable.handleOpenMenuEvent(evnt, type, params);
15105
15124
  return;
15106
15125
  }
15107
- } else if (mouseConfig && mouseOpts.selected) {
15126
+ } else if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.selected) {
15108
15127
  // 如果启用键盘导航且已选中单元格
15109
15128
  if (selected.row && selected.column) {
15110
15129
  params.row = selected.row;
@@ -15956,6 +15975,7 @@ function handleEditActive($xeTable, params, evnt, options) {
15956
15975
  tableColumn
15957
15976
  } = reactData;
15958
15977
  const editOpts = $xeTable.computeEditOpts;
15978
+ const mouseOpts = $xeTable.computeMouseOpts;
15959
15979
  const {
15960
15980
  mode
15961
15981
  } = editOpts;
@@ -15993,7 +16013,7 @@ function handleEditActive($xeTable, params, evnt, options) {
15993
16013
  $grid: $xeGrid,
15994
16014
  $gantt: $xeGantt
15995
16015
  })) {
15996
- if (mouseConfig) {
16016
+ if (hasEnableConf(mouseConfig, mouseOpts)) {
15997
16017
  $xeTable.clearSelected();
15998
16018
  if ($xeTable.clearCellAreas) {
15999
16019
  $xeTable.clearCellAreas();
@@ -16056,7 +16076,7 @@ function handleEditActive($xeTable, params, evnt, options) {
16056
16076
  const {
16057
16077
  column: oldColumn
16058
16078
  } = actived;
16059
- if (mouseConfig) {
16079
+ if (hasEnableConf(mouseConfig, mouseOpts)) {
16060
16080
  $xeTable.clearSelected();
16061
16081
  if ($xeTable.clearCellAreas) {
16062
16082
  $xeTable.clearCellAreas();
@@ -16768,7 +16788,7 @@ function handleEditCell($xeTable, row, fieldOrColumn, options) {
16768
16788
  row,
16769
16789
  column
16770
16790
  } = params;
16771
- const isMouseSelected = mouseConfig && mouseOpts.selected;
16791
+ const isMouseSelected = hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.selected;
16772
16792
  const selectMethod = () => {
16773
16793
  if (isMouseSelected && (selected.row !== row || selected.column !== column)) {
16774
16794
  if (actived.row !== row || (editOpts.mode === 'cell' ? actived.column !== column : false)) {
@@ -19206,7 +19226,7 @@ const convertToRows = originColumns => {
19206
19226
  }
19207
19227
  return;
19208
19228
  }
19209
- if (!importConfig) {
19229
+ if (!hasEnableConf(importConfig, importOpts)) {
19210
19230
  export_mixin_errLog('vxe.error.reqProp', ['import-config']);
19211
19231
  }
19212
19232
  // 处理类型
@@ -19246,12 +19266,15 @@ const convertToRows = originColumns => {
19246
19266
  _openExport(options) {
19247
19267
  const $xeTable = this;
19248
19268
  const props = $xeTable;
19269
+ const {
19270
+ exportConfig
19271
+ } = props;
19249
19272
  const exportOpts = $xeTable.computeExportOpts;
19250
19273
  const defOpts = Object.assign({
19251
19274
  message: true,
19252
19275
  types: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps)
19253
19276
  }, exportOpts, options);
19254
- if (!props.exportConfig) {
19277
+ if (!hasEnableConf(exportConfig, exportOpts)) {
19255
19278
  export_mixin_errLog('vxe.error.reqProp', ['export-config']);
19256
19279
  }
19257
19280
  return handleExportAndPrint($xeTable, defOpts);
@@ -19260,11 +19283,14 @@ const convertToRows = originColumns => {
19260
19283
  _openPrint(options) {
19261
19284
  const $xeTable = this;
19262
19285
  const props = $xeTable;
19286
+ const {
19287
+ printConfig
19288
+ } = props;
19263
19289
  const printOpts = $xeTable.computePrintOpts;
19264
19290
  const defOpts = Object.assign({
19265
19291
  message: true
19266
19292
  }, printOpts, options);
19267
- if (!props.printConfig) {
19293
+ if (!hasEnableConf(printConfig, printOpts)) {
19268
19294
  export_mixin_errLog('vxe.error.reqProp', ['print-config']);
19269
19295
  }
19270
19296
  return handleExportAndPrint($xeTable, defOpts, true);
@@ -19278,6 +19304,7 @@ const convertToRows = originColumns => {
19278
19304
 
19279
19305
 
19280
19306
 
19307
+
19281
19308
  function getCheckboxRangeRows($xeTable, evnt, params, targetTrElem, trRect, offsetClientTop, moveRange) {
19282
19309
  const props = $xeTable;
19283
19310
  const reactData = $xeTable;
@@ -19813,13 +19840,13 @@ function handleCheckboxRangeEvent($xeTable, evnt, params) {
19813
19840
  const checkboxOpts = $xeTable.computeCheckboxOpts;
19814
19841
  const mouseOpts = $xeTable.computeMouseOpts;
19815
19842
  const editOpts = $xeTable.computeEditOpts;
19816
- if (mouseConfig && mouseOpts.area && $xeTable.triggerClAreaMnEvent) {
19817
- return $xeTable.triggerClAreaMnEvent(evnt, params);
19843
+ if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area && $xeTable.triggerClAaMnEvent) {
19844
+ return $xeTable.triggerClAaMnEvent(evnt, params);
19818
19845
  } else {
19819
19846
  if (checkboxConfig && checkboxOpts.range) {
19820
19847
  handleCheckboxRangeEvent($xeTable, evnt, params);
19821
19848
  }
19822
- if (mouseConfig && mouseOpts.selected) {
19849
+ if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.selected) {
19823
19850
  if (!editConfig || editOpts.mode === 'cell') {
19824
19851
  $xeTable.handleSelected(params, evnt);
19825
19852
  }
@@ -22946,7 +22973,8 @@ function renderBody(h, $xeTable) {
22946
22973
  importConfig,
22947
22974
  treeConfig,
22948
22975
  minHeight,
22949
- keepSource
22976
+ keepSource,
22977
+ areaConfig
22950
22978
  } = props;
22951
22979
  const {
22952
22980
  scrollXStore,
@@ -23051,13 +23079,13 @@ function renderBody(h, $xeTable) {
23051
23079
  // warnLog('vxe.error.delProp', ['scroll-x', 'virtual-x-config'])
23052
23080
  // }
23053
23081
  // 检查导入导出类型,如果自定义导入导出方法,则不校验类型
23054
- if (importConfig && importOpts.types && !importOpts.importMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps), importOpts.types)) {
23082
+ if (hasEnableConf(importConfig, importOpts) && importOpts.types && !importOpts.importMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps), importOpts.types)) {
23055
23083
  table_warnLog('vxe.error.errProp', [`export-config.types=${importOpts.types.join(',')}`, importOpts.types.filter(type => external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps), type)).join(',') || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps).join(',')]);
23056
23084
  }
23057
- if (exportConfig && exportOpts.types && !exportOpts.exportMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps), exportOpts.types)) {
23085
+ if (hasEnableConf(exportConfig, exportOpts) && exportOpts.types && !exportOpts.exportMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps), exportOpts.types)) {
23058
23086
  table_warnLog('vxe.error.errProp', [`export-config.types=${exportOpts.types.join(',')}`, exportOpts.types.filter(type => external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps), type)).join(',') || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps).join(',')]);
23059
23087
  }
23060
- if (exportConfig && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(exportOpts.isAllExpand)) {
23088
+ if (hasEnableConf(exportConfig, exportOpts) && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(exportOpts.isAllExpand)) {
23061
23089
  table_warnLog('vxe.error.delProp', ['isAllExpand', 'isTreeAllExpanded']);
23062
23090
  }
23063
23091
  if (!props.id) {
@@ -23071,8 +23099,8 @@ function renderBody(h, $xeTable) {
23071
23099
  if (rowOpts.height && !this.showOverflow) {
23072
23100
  table_warnLog('vxe.error.notProp', ['table.show-overflow']);
23073
23101
  }
23074
- if (!$xeTable.triggerClAreaMnEvent) {
23075
- if (props.areaConfig) {
23102
+ if (!$xeTable.triggerClAaMnEvent) {
23103
+ if (hasEnableConf(areaConfig, areaOpts)) {
23076
23104
  table_warnLog('vxe.error.notProp', ['area-config']);
23077
23105
  }
23078
23106
  if (props.clipConfig) {
@@ -23189,10 +23217,10 @@ function renderBody(h, $xeTable) {
23189
23217
  if (columnOpts.currentMethod) {
23190
23218
  table_warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-column-config.beforeSelectMethod']);
23191
23219
  }
23192
- // if ((rowOpts.isCurrent || highlightCurrentRow) && props.keyboardConfig && keyboardOpts.isArrow && !XEUtils.isBoolean(currentRowOpts.isFollowSelected)) {
23220
+ // if ((rowOpts.isCurrent || highlightCurrentRow) && hasEnableConf(keyboardConfig, keyboardOpts) && keyboardOpts.isArrow && !XEUtils.isBoolean(currentRowOpts.isFollowSelected)) {
23193
23221
  // warnLog('vxe.error.notConflictProp', ['row-config.isCurrent & keyboard-config.isArrow', 'current-row-config.isFollowSelected'])
23194
23222
  // }
23195
- // if ((columnOpts.isCurrent || highlightCurrentColumn) && props.keyboardConfig && keyboardOpts.isArrow && !XEUtils.isBoolean(currentColumnOpts.isFollowSelected)) {
23223
+ // if ((columnOpts.isCurrent || highlightCurrentColumn) && hasEnableConf(keyboardConfig, keyboardOpts) && keyboardOpts.isArrow && !XEUtils.isBoolean(currentColumnOpts.isFollowSelected)) {
23196
23224
  // warnLog('vxe.error.notConflictProp', ['column-config.isCurrent & keyboard-config.isArrow', 'current-column-config.isFollowSelected'])
23197
23225
  // }
23198
23226
  // 如果不支持虚拟滚动
@@ -23210,18 +23238,18 @@ function renderBody(h, $xeTable) {
23210
23238
  // }
23211
23239
  // }
23212
23240
  // 检查是否有安装需要的模块
23213
- if (props.editConfig && !$xeTable.insert) {
23214
- table_errLog('vxe.error.reqModule', ['Edit']);
23215
- }
23216
- if (props.editRules && !$xeTable.validate) {
23217
- table_errLog('vxe.error.reqModule', ['Validator']);
23218
- }
23219
- if ((checkboxOpts.range || props.keyboardConfig || props.mouseConfig) && !$xeTable.handleCellMousedownEvent) {
23220
- table_errLog('vxe.error.reqModule', ['Keyboard']);
23221
- }
23222
- if ((props.printConfig || props.importConfig || props.exportConfig) && !$xeTable.exportData) {
23223
- table_errLog('vxe.error.reqModule', ['Export']);
23224
- }
23241
+ // if (props.editConfig && !$xeTable.insert) {
23242
+ // errLog('vxe.error.reqModule', ['Edit'])
23243
+ // }
23244
+ // if (props.editRules && !$xeTable.validate) {
23245
+ // errLog('vxe.error.reqModule', ['Validator'])
23246
+ // }
23247
+ // if ((checkboxOpts.range || hasEnableConf(keyboardConfig, keyboardOpts) || hasEnableConf(mouseConfig, mouseOpts)) && !$xeTable.handleCellMousedownEvent) {
23248
+ // errLog('vxe.error.reqModule', ['Keyboard'])
23249
+ // }
23250
+ // if ((hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
23251
+ // errLog('vxe.error.reqModule', ['Export'])
23252
+ // }
23225
23253
  Object.assign(scrollYStore, {
23226
23254
  startIndex: 0,
23227
23255
  endIndex: 1,
@@ -23451,7 +23479,10 @@ function renderBody(h, $xeTable) {
23451
23479
  highlightHoverRow,
23452
23480
  highlightHoverColumn,
23453
23481
  editConfig,
23454
- editRules
23482
+ editRules,
23483
+ importConfig,
23484
+ exportConfig,
23485
+ printConfig
23455
23486
  } = props;
23456
23487
  const {
23457
23488
  isGroup,
@@ -23495,10 +23526,13 @@ function renderBody(h, $xeTable) {
23495
23526
  const isContentMenu = $xeTable.computeIsContentMenu;
23496
23527
  const currLoading = reactData.isColLoading || reactData.isRowLoading || loading;
23497
23528
  const resizableOpts = $xeTable.computeResizableOpts;
23498
- const isArea = mouseConfig && mouseOpts.area;
23529
+ const isArea = hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area;
23499
23530
  const columnDragOpts = $xeTable.computeColumnDragOpts;
23500
23531
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
23501
23532
  const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
23533
+ const exportOpts = $xeTable.computeExportOpts;
23534
+ const importOpts = $xeTable.computeImportOpts;
23535
+ const printOpts = $xeTable.computePrintOpts;
23502
23536
  const {
23503
23537
  isCrossTableDrag
23504
23538
  } = rowDragOpts;
@@ -23517,7 +23551,7 @@ function renderBody(h, $xeTable) {
23517
23551
  'vxe-editable': !!editConfig,
23518
23552
  'old-cell-valid': editRules && table_getConfig().cellVaildMode === 'obsolete',
23519
23553
  'cell--highlight': highlightCell,
23520
- 'cell--selected': mouseConfig && mouseOpts.selected,
23554
+ 'cell--selected': hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.selected,
23521
23555
  'cell--area': isArea,
23522
23556
  'header-cell--area': isArea && areaOpts.selectCellByHeader,
23523
23557
  'body-cell--area': isArea && areaOpts.selectCellByBody,
@@ -23692,7 +23726,7 @@ function renderBody(h, $xeTable) {
23692
23726
  /**
23693
23727
  * 导入
23694
23728
  */
23695
- initStore.import && this.importConfig ? h(import_panel, {
23729
+ initStore.import && hasEnableConf(importConfig, importOpts) ? h(import_panel, {
23696
23730
  key: 'it',
23697
23731
  props: {
23698
23732
  defaultOptions: this.importParams,
@@ -23702,7 +23736,7 @@ function renderBody(h, $xeTable) {
23702
23736
  /**
23703
23737
  * 导出
23704
23738
  */
23705
- initStore.export && (this.exportConfig || this.printConfig) ? h(export_panel, {
23739
+ initStore.export && (hasEnableConf(exportConfig, exportOpts) || hasEnableConf(printConfig, printOpts)) ? h(export_panel, {
23706
23740
  key: 'et',
23707
23741
  props: {
23708
23742
  defaultOptions: this.exportParams,
@@ -24848,9 +24882,10 @@ function getNativeInputRenderCellVNs(h, cellValue, labelVNs, renderOpts, renderP
24848
24882
  editConfig,
24849
24883
  mouseConfig
24850
24884
  } = tableProps;
24885
+ const mouseOpts = $table.computeMouseOpts;
24851
24886
  let isColSelected = false;
24852
24887
  let isActiveCellArea = false;
24853
- if (editConfig && mouseConfig) {
24888
+ if (editConfig && hasEnableConf(mouseConfig, mouseOpts)) {
24854
24889
  const tableReactData = $table;
24855
24890
  const {
24856
24891
  editStore
@@ -24891,9 +24926,10 @@ function getInputRenderCellVNs(h, cellValue, labelVNs, renderOpts, renderParams)
24891
24926
  editConfig,
24892
24927
  mouseConfig
24893
24928
  } = tableProps;
24929
+ const mouseOpts = $table.computeMouseOpts;
24894
24930
  let isColSelected = false;
24895
24931
  let isActiveCellArea = false;
24896
- if (editConfig && mouseConfig) {
24932
+ if (editConfig && hasEnableConf(mouseConfig, mouseOpts)) {
24897
24933
  const tableReactData = $table;
24898
24934
  const {
24899
24935
  editStore
@@ -27400,12 +27436,25 @@ function grid_createInternalData() {
27400
27436
  }
27401
27437
  return 0;
27402
27438
  },
27439
+ getParentElem() {
27440
+ const $xeGrid = this;
27441
+ const el = $xeGrid.$refs.refElem;
27442
+ if (!el) {
27443
+ return null;
27444
+ }
27445
+ let parentEl = el.parentElement;
27446
+ // 如果是虚拟滚动条
27447
+ if (parentEl && hasClass(parentEl, 'vxe-scrollbar--view-inner')) {
27448
+ parentEl = parentEl.parentElement;
27449
+ }
27450
+ return parentEl;
27451
+ },
27403
27452
  getParentHeight() {
27404
27453
  const $xeGrid = this;
27405
27454
  const reactData = $xeGrid.reactData;
27406
27455
  const el = $xeGrid.$refs.refElem;
27407
27456
  if (el) {
27408
- const parentEl = el.parentElement;
27457
+ const parentEl = $xeGrid.getParentElem();
27409
27458
  return (reactData.isZMax ? getDomNode().visibleHeight : parentEl ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getComputedStyle(parentEl).height) : 0) - $xeGrid.getExcludeHeight();
27410
27459
  }
27411
27460
  return 0;