vxe-table 3.21.7 → 3.21.8

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.
@@ -27,6 +27,7 @@ exports.getFirstChildColumn = getFirstChildColumn;
27
27
  exports.getLastChildColumn = getLastChildColumn;
28
28
  exports.getRefElem = getRefElem;
29
29
  exports.getRootColumn = getRootColumn;
30
+ exports.getRowMaxHeight = getRowMaxHeight;
30
31
  exports.getRowUniqueId = getRowUniqueId;
31
32
  exports.getRowid = getRowid;
32
33
  exports.getRowkey = getRowkey;
@@ -125,6 +126,7 @@ function createInternalData() {
125
126
  sourceDataRowIdData: {},
126
127
  fullColumnIdData: {},
127
128
  fullColumnFieldData: {},
129
+ fullCellHeightMaps: {},
128
130
  // 当前行
129
131
  currentRow: null,
130
132
  // 合并表头单元格的数据
@@ -184,7 +186,8 @@ function createInternalData() {
184
186
  inited: false,
185
187
  tooltipTimeout: null,
186
188
  initStatus: false,
187
- isActivated: false
189
+ isActivated: false,
190
+ rceDelay: 0
188
191
  // _sToTime: null
189
192
  };
190
193
  }
@@ -432,6 +435,21 @@ function createReactData() {
432
435
  isColLoading: false
433
436
  };
434
437
  }
438
+ const maxKey = '__max';
439
+ function getRowMaxHeight(chRest, isForce) {
440
+ if (isForce || !chRest[maxKey]) {
441
+ let max = 0;
442
+ for (const key in chRest) {
443
+ const val = chRest[key];
444
+ if (key !== maxKey && _xeUtils.default.isNumber(val) && val > max) {
445
+ max = val;
446
+ }
447
+ }
448
+ chRest[maxKey] = max;
449
+ return max;
450
+ }
451
+ return chRest[maxKey];
452
+ }
435
453
  const getAllConvertColumns = (columns, parentColumn) => {
436
454
  const result = [];
437
455
  columns.forEach(column => {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.convertHeaderToGridRows=convertHeaderToGridRows,exports.createColumn=createColumn,exports.createHandleGetRowId=createHandleGetRowId,exports.createHandleUpdateRowId=createHandleUpdateRowId,exports.createInternalData=createInternalData,exports.createReactData=createReactData,exports.createRowId=createRowId,exports.destroyColumn=destroyColumn,exports.encodeRowid=encodeRowid,exports.getCalcHeight=getCalcHeight,exports.getCellRestHeight=getCellRestHeight,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getColumnList=getColumnList,exports.getFirstChildColumn=getFirstChildColumn,exports.getLastChildColumn=getLastChildColumn,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.handleRowidOrRow=handleRowidOrRow,exports.hasDeepKey=hasDeepKey,exports.isColumnInfo=isColumnInfo,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_log=require("../../ui/src/log"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{tZindex:0,currKeyField:"",isCurrDeepKey:!1,elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},tableWidth:0,tableHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,hoverRow:null,lastScrollLeft:0,lastScrollTop:0,radioReserveRow:null,checkboxReserveRowMap:{},rowExpandedReserveRowMap:{},treeExpandedReserveRowMap:{},treeIndeterminateRowMaps:{},tableFullData:[],afterFullData:[],afterTreeFullData:[],afterGroupFullData:[],afterFullRowMaps:{},tableFullTreeData:[],tableFullGroupData:[],tableSynchData:[],tableSourceData:[],collectColumn:[],tableFullColumn:[],visibleColumn:[],fullAllDataRowIdData:{},fullDataRowIdData:{},visibleDataRowIdData:{},keepUpdateFieldMaps:{},headerFullDataColData:{},footerFullDataRowData:{},sourceDataRowIdData:{},fullColumnIdData:{},fullColumnFieldData:{},currentRow:null,mergeHeaderList:[],mergeHeaderMaps:{},mergeHeaderCellMaps:{},mergeHeaderRowMaps:{},mergeHeaderColMaps:{},mergeBodyList:[],mergeBodyMaps:{},mergeBodyCellMaps:{},mergeBodyRowMaps:{},mergeBodyColMaps:{},mergeFooterList:[],mergeFooterMaps:{},mergeFooterCellMaps:{},mergeFooterRowMaps:{},mergeFooterColMaps:{},rowExpandedMaps:{},rowExpandLazyLoadedMaps:{},rowGroupExpandedMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},selectCheckboxMaps:{},pendingRowMaps:{},insertRowMaps:{},removeRowMaps:{},cvCacheMaps:{},tHeaderHeight:0,tBodyHeight:0,tFooterHeight:0,stackHistoryStore:{undoStacks:[],redoStacks:[]},teleportToWrapperElem:null,popupToWrapperElem:null,customPopupToElem:null,lastSTime:0,inited:!1,tooltipTimeout:null,initStatus:!1,isActivated:!1}}function createReactData(){return{updateColFlag:0,staticColumns:[],tableGroupColumn:[],tableColumn:[],tableData:[],scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!1,scrollbarWidth:0,scrollbarHeight:0,rowHeight:0,parentHeight:0,isGroup:!1,isAllOverflow:!1,isAllSelected:!1,isIndeterminate:!1,currentColumn:null,selectRadioRow:null,footerTableData:[],rowGroupColumn:null,expandColumn:null,checkboxColumn:null,radioColumn:null,treeNodeColumn:null,hasFixedColumn:!1,upDataFlag:0,reColumnFlag:0,initStore:{filter:!1,import:!1,export:!1,custom:!1},customStore:{btnEl:null,isAll:!1,isIndeterminate:!1,activeBtn:!1,activeWrapper:!1,visible:!1,maxHeight:null,popupStyle:{},oldSortMaps:{},oldFixedMaps:{},oldVisibleMaps:{}},customColumnList:[],filterStore:{isAllSelected:!1,isIndeterminate:!1,style:null,column:null,visible:!1,maxHeight:null},columnStore:{leftList:[],centerList:[],rightList:[],resizeList:[],pxList:[],pxMinList:[],autoMinList:[],scaleList:[],scaleMinList:[],autoList:[],remainList:[]},ctxMenuStore:{selected:null,visible:!1,showChild:!1,selectChild:null,list:[],style:null},editStore:{indexs:{columns:[]},titles:{columns:[]},selected:{row:null,column:null},copyed:{cut:!1,rows:[],columns:[]},actived:{row:null,column:null},focused:{row:null,column:null}},tooltipStore:{row:null,column:null,content:"",visible:!1,type:null,currOpts:{}},validStore:{visible:!1},validErrorMaps:{},importStore:{inited:!1,file:null,type:"",modeList:[],typeList:[],filename:"",visible:!1},importParams:{mode:"",types:null,message:!0},exportStore:{inited:!1,name:"",modeList:[],typeList:[],columns:[],isPrint:!1,hasFooter:!1,hasMerge:!1,hasTree:!1,hasRowGroup:!1,hasColgroup:!1,visible:!1},exportParams:{filename:"",sheetName:"",mode:"",type:"",isColgroup:!1,isMerge:!1,isTreeAllExpanded:!1,isRowGroupAllExpanded:!1,useStyle:!1,original:!1,message:!0,isHeader:!1,isTitle:!1,isFooter:!1},visiblwRowsFlag:1,isRowGroupStatus:!1,rowGroupList:[],aggHandleFields:[],aggHandleAggColumns:[],rowGroupExpandedFlag:1,rowExpandedFlag:1,treeExpandedFlag:1,updateCheckboxFlag:1,pendingRowFlag:1,insertRowFlag:1,removeRowFlag:1,mergeHeadFlag:1,mergeBodyFlag:1,mergeFootFlag:1,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36},scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,lazScrollLoading:!1,rowExpandHeightFlag:1,calcCellHeightFlag:1,resizeHeightFlag:1,resizeWidthFlag:1,isCustomStatus:!1,isCustomDragStatus:!0,ctPopupFlag:1,isCrossDragRow:!1,dragRow:null,isCrossDragCol:!1,dragCol:null,dragTipText:"",isDragResize:!1,isRowLoading:!1,isColLoading:!1}}let getAllConvertColumns=(e,t)=>{let l=[];return e.forEach(e=>{e.parentId=t?t.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(l.push(e),l.push(...getAllConvertColumns(e.children,e))):l.push(e))}),l},convertHeaderColumnToRows=e=>{let t=1,o=(l,e)=>{if(e&&(l.level=e.level+1,t<l.level)&&(t=l.level),l.children&&l.children.length&&l.children.some(e=>e.visible)){let t=0;l.children.forEach(e=>{e.visible&&(o(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,o(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)}),l};function convertHeaderToGridRows(t){var l=t.length,i=t[0].reduce((e,t)=>e+t.colSpan,0),n=[],a=[];for(let e=0;e<l;e++){var o=[],r=[];for(let e=0;e<i;e++)o.push(!1),r.push("");n.push(o),a.push(r)}for(let r=0;r<l;r++){let e=0;for(var u of t[r]){var{colSpan:s,rowSpan:d}=u;let o=-1;for(let l=e;l<=i-s;l++){let t=!0;for(let e=0;e<s;e++)if(n[r][l+e]){t=!1;break}if(t){o=l;break}}if(-1===o){for(let l=0;l<=i-s;l++){let t=!0;for(let e=0;e<s;e++)if(n[r][l+e]){t=!1;break}if(t){o=l;break}}if(-1===o)break}for(let t=r;t<r+d;t++)for(let e=o;e<o+s;e++)n[t][e]=!0,a[t][e]=u;e=o+s}}return a}function restoreScrollLocation(e,t,l){var o=e;return t||l?(o.intoRunScroll=!1,o.inVirtualScroll=!1,o.inWheelScroll=!1,o.inHeaderScroll=!1,o.inBodyScroll=!1,o.inFooterScroll=!1,o.scrollRenderType="",e.scrollTo(t,l)):e.clearScroll()}function toTreePathSeq(e){return e.map((e,t)=>t%2==0?Number(e)+1:".").join("")}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function createRowId(e,t,l){e=e.createKeyMethod;return e?""+e({row:t,keyField:l}):getRowUniqueId()}function hasDeepKey(e){return-1<e.indexOf(".")}function getRowkey(e){e=e.currKeyField;return e}function getRowid(e,t){var{isCurrDeepKey:e,currKeyField:l}=e;return t?encodeRowid((e?getDeepRowIdByKey:getFastRowIdByKey)(t,l)):""}function createHandleUpdateRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e,o=e.computeRowOpts,r=t?updateDeepRowKey:updateFastRowKey;return{rowKey:l,handleUpdateRowId(e){return e?r(o,e,l):""}}}function createHandleGetRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e,o=t?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:l,handleGetRowId(e){return e?encodeRowid(o(e,l)):""}}}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getDeepRowIdByKey(e,t){return _xeUtils.default.get(e,t)}function updateDeepRowKey(e,t,l){let o=encodeRowid(getDeepRowIdByKey(t,l));return(0,_utils.eqEmptyValue)(o)&&(e=createRowId(e,t,l),o=""+e,_xeUtils.default.set(t,l,o)),o}function getFastRowIdByKey(e,t){return e[t]}function updateFastRowKey(e,t,l){let o=encodeRowid(getFastRowIdByKey(t,l));return(0,_utils.eqEmptyValue)(o)&&(e=createRowId(e,t,l),o=""+e,t[l]=e),o}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginAndWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function getCalcHeight(e){return"unset"!==e&&e||0}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null}function handleRowidOrRow(e,t){return t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null}function getCellRestHeight(e,t,l,o){return e.resizeHeight||t.height||l.height||e.height||o}function assembleColumn(e){var t=e.$xeTable,l=t.staticColumns,{$el:e,$xeColumn:o,columnConfig:r}=e,i=o?o.columnConfig:null;i?("vxe-table-column"===o.$options._componentTag?(0,_log.errLog)("vxe.error.groupTag",[`<vxe-table-colgroup title=${o.title} ...>`,`<vxe-table-column title=${o.title} ...>`]):"vxe-column"===o.$options._componentTag&&(0,_log.warnLog)("vxe.error.groupTag",[`<vxe-colgroup title=${o.title} ...>`,`<vxe-column title=${o.title} ...>`]),i.children||(i.children=[]),r.defaultParentId=i.id,i.children.splice(_xeUtils.default.arrayIndexOf(o.$el.children,e),0,r)):l.splice(_xeUtils.default.arrayIndexOf(t.$refs.hideColumn.children,e),0,r)}function destroyColumn(e){var t=e.$xeTable.staticColumns;let l=e.columnConfig;e=_xeUtils.default.findTree(t,e=>e===l);e&&e.items.splice(e.index,1)}function getRootColumn(e,t){var l=e.fullColumnIdData;if(!t)return null;let o=t.parentId;for(;l[o];){let e=l[o].column;if(!(o=e.parentId))return e}return t}function toFilters(e,i){return e&&(_xeUtils.default.isArray(e)?e.map(({label:e,value:t,data:l,resetValue:o,checked:r})=>({label:e,value:t,data:l,resetValue:o,checked:!!r,_checked:!!r,_colId:i})):[])}function getColReMaxWidth(e){var{$table:t,column:l,cell:o}=e,r=t.elemStore,i=t.computeResizableOpts.maxWidth,l=l.maxWidth||t.computeColumnOpts.maxWidth;if(i){t=_xeUtils.default.isFunction(i)?i(e):i;if("auto"!==t)return Math.max(1,_xeUtils.default.toNumber(t))}e=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(o).fontSize)||14))+(getPaddingLeftRightSize(o)+getPaddingLeftRightSize((0,_dom.queryElement)(o,".vxe-cell")));if(l){i=getRefElem(r["main-body-scroll"]);if(i){if((0,_dom.isScale)(l))return t=(i.clientWidth-1)/100,Math.max(e,Math.floor(_xeUtils.default.toInteger(l)*t));if((0,_dom.isPx)(l))return Math.max(e,_xeUtils.default.toInteger(l))}}return-1}function getColReMinWidth(e){var{$table:t,column:l,cell:o}=e,r=t,i=t,n=t.computeResizableOpts,t=t.computeColumnOpts,n=n.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var a,u,s,n=i.elemStore,e=r.showHeaderOverflow,i=l.showHeaderOverflow,r=l.minWidth||t.minWidth,l=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?e:i,t="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;let d=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(o).fontSize)||14))+(getPaddingLeftRightSize(o)+getPaddingLeftRightSize((0,_dom.queryElement)(o,".vxe-cell")));if(t&&(e=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--drag-handle")),i=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--checkbox")),l=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--required-icon")),t=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--edit-icon")),a=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell-title-suffix-icon")),s=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--sort")),o=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--filter")),d+=e+i+l+t+a+u+o+s),r){e=getRefElem(n["main-body-scroll"]);if(e){if((0,_dom.isScale)(r))return i=(e.clientWidth-1)/100,Math.max(d,Math.floor(_xeUtils.default.toInteger(r)*i));if((0,_dom.isPx)(r))return Math.max(d,_xeUtils.default.toInteger(r))}}return d}function getFirstChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.first(t)):e}function getLastChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.last(t)):e}function getCellValue(e,t){return t?_xeUtils.default.get(e,t.field):null}function setCellValue(e,t,l){t&&_xeUtils.default.set(e,t.field,l)}function getRefElem(e){return e?e.$el||e:null}function clearTableDefaultStatus(e){var t=e,l=(e.initStatus=!1,[e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow()]);return e.clearFilter&&l.push(e.clearFilter()),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&l.push(e.clearSelected()),e.clearCellAreas&&t.mouseConfig&&l.push(e.clearCellAreas(),e.clearCopyCellArea()),Promise.all(l).then(()=>e.clearScroll())}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function getColumnList(e){let t=[];return e.forEach(e=>{t.push(...e.children&&e.children.length?getColumnList(e.children):[e])}),t}function createColumn(e,t,l){return isColumnInfo(t)?t:new _columnInfo.ColumnInfo(e,t,l)}function rowToVisible(e,t){var{scrollYLoad:l,scrollYTop:o,isAllOverflow:r}=e,{elemStore:i,afterFullData:n,fullAllDataRowIdData:a,isResizeCellHeight:u}=e,s=e.computeRowOpts,d=e.computeCellOpts,c=e.computeDefaultRowHeight,m=e.computeLeftFixedWidth,g=e.computeRightFixedWidth,i=getRefElem(i["main-body-scroll"]),p=getRowid(e,t);if(i){var f=i.clientHeight,h=i.scrollTop,i=i.querySelector(`[rowid="${p}"]`);if(i){var o=i.offsetTop+(l?o:0),i=i.clientHeight;if(o<h||h+f<o)return e.scrollTo(null,o);if(f+h<=o+i)return e.scrollTo(null,h+i)}else if(l)return u||d.height||s.height||!r?(i=(o=a[p]||{}).resizeHeight||d.height||s.height||o.height||c,(l=o.oTop)<h?e.scrollTo(null,l-m-1):e.scrollTo(null,l+i-(f-g-1))):e.scrollTo(null,(e.findRowIndexOf(n,t)-1)*c)}return Promise.resolve()}function colToVisible(l,o,r,t){var{scrollXLoad:i,scrollXLeft:n}=l,{elemStore:a,visibleColumn:u}=l,s=l.computeLeftFixedWidth,d=l.computeRightFixedWidth,a=getRefElem(a["main-body-scroll"]);if(!r.fixed&&a){var c=a.clientWidth,m=a.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=a.querySelector(`[rowid="${t}"] .`+r.id)),e=e||a.querySelector("."+r.id)){t=e.offsetLeft+(i?n:0),a=e.clientWidth;if(o||!(t<=m+s&&m+s<t+a)&&!(m+s<=t&&t<m+c-d)){if(t<m+s)return l.scrollTo(t-s-1);if(c-d<t+a-m)return l.scrollTo(t+a-(c-d-1))}}else if(i){let t=0;n=r.renderWidth;for(let e=0;e<u.length;e++){var g=u[e];if(g===r||g.id===r.id)break;t+=g.renderWidth}if(o||!(t<=m+s&&t+n>m+s)&&!(t>=m+s&&t<m+c-d))return t<m?l.scrollTo(t-s-1):l.scrollTo(t+n-(c-d-1))}}return Promise.resolve()}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.convertHeaderToGridRows=convertHeaderToGridRows,exports.createColumn=createColumn,exports.createHandleGetRowId=createHandleGetRowId,exports.createHandleUpdateRowId=createHandleUpdateRowId,exports.createInternalData=createInternalData,exports.createReactData=createReactData,exports.createRowId=createRowId,exports.destroyColumn=destroyColumn,exports.encodeRowid=encodeRowid,exports.getCalcHeight=getCalcHeight,exports.getCellRestHeight=getCellRestHeight,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getColumnList=getColumnList,exports.getFirstChildColumn=getFirstChildColumn,exports.getLastChildColumn=getLastChildColumn,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowMaxHeight=getRowMaxHeight,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.handleRowidOrRow=handleRowidOrRow,exports.hasDeepKey=hasDeepKey,exports.isColumnInfo=isColumnInfo,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_log=require("../../ui/src/log"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{tZindex:0,currKeyField:"",isCurrDeepKey:!1,elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},tableWidth:0,tableHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,hoverRow:null,lastScrollLeft:0,lastScrollTop:0,radioReserveRow:null,checkboxReserveRowMap:{},rowExpandedReserveRowMap:{},treeExpandedReserveRowMap:{},treeIndeterminateRowMaps:{},tableFullData:[],afterFullData:[],afterTreeFullData:[],afterGroupFullData:[],afterFullRowMaps:{},tableFullTreeData:[],tableFullGroupData:[],tableSynchData:[],tableSourceData:[],collectColumn:[],tableFullColumn:[],visibleColumn:[],fullAllDataRowIdData:{},fullDataRowIdData:{},visibleDataRowIdData:{},keepUpdateFieldMaps:{},headerFullDataColData:{},footerFullDataRowData:{},sourceDataRowIdData:{},fullColumnIdData:{},fullColumnFieldData:{},fullCellHeightMaps:{},currentRow:null,mergeHeaderList:[],mergeHeaderMaps:{},mergeHeaderCellMaps:{},mergeHeaderRowMaps:{},mergeHeaderColMaps:{},mergeBodyList:[],mergeBodyMaps:{},mergeBodyCellMaps:{},mergeBodyRowMaps:{},mergeBodyColMaps:{},mergeFooterList:[],mergeFooterMaps:{},mergeFooterCellMaps:{},mergeFooterRowMaps:{},mergeFooterColMaps:{},rowExpandedMaps:{},rowExpandLazyLoadedMaps:{},rowGroupExpandedMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},selectCheckboxMaps:{},pendingRowMaps:{},insertRowMaps:{},removeRowMaps:{},cvCacheMaps:{},tHeaderHeight:0,tBodyHeight:0,tFooterHeight:0,stackHistoryStore:{undoStacks:[],redoStacks:[]},teleportToWrapperElem:null,popupToWrapperElem:null,customPopupToElem:null,lastSTime:0,inited:!1,tooltipTimeout:null,initStatus:!1,isActivated:!1,rceDelay:0}}function createReactData(){return{updateColFlag:0,staticColumns:[],tableGroupColumn:[],tableColumn:[],tableData:[],scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!1,scrollbarWidth:0,scrollbarHeight:0,rowHeight:0,parentHeight:0,isGroup:!1,isAllOverflow:!1,isAllSelected:!1,isIndeterminate:!1,currentColumn:null,selectRadioRow:null,footerTableData:[],rowGroupColumn:null,expandColumn:null,checkboxColumn:null,radioColumn:null,treeNodeColumn:null,hasFixedColumn:!1,upDataFlag:0,reColumnFlag:0,initStore:{filter:!1,import:!1,export:!1,custom:!1},customStore:{btnEl:null,isAll:!1,isIndeterminate:!1,activeBtn:!1,activeWrapper:!1,visible:!1,maxHeight:null,popupStyle:{},oldSortMaps:{},oldFixedMaps:{},oldVisibleMaps:{}},customColumnList:[],filterStore:{isAllSelected:!1,isIndeterminate:!1,style:null,column:null,visible:!1,maxHeight:null},columnStore:{leftList:[],centerList:[],rightList:[],resizeList:[],pxList:[],pxMinList:[],autoMinList:[],scaleList:[],scaleMinList:[],autoList:[],remainList:[]},ctxMenuStore:{selected:null,visible:!1,showChild:!1,selectChild:null,list:[],style:null},editStore:{indexs:{columns:[]},titles:{columns:[]},selected:{row:null,column:null},copyed:{cut:!1,rows:[],columns:[]},actived:{row:null,column:null},focused:{row:null,column:null}},tooltipStore:{row:null,column:null,content:"",visible:!1,type:null,currOpts:{}},validStore:{visible:!1},validErrorMaps:{},importStore:{inited:!1,file:null,type:"",modeList:[],typeList:[],filename:"",visible:!1},importParams:{mode:"",types:null,message:!0},exportStore:{inited:!1,name:"",modeList:[],typeList:[],columns:[],isPrint:!1,hasFooter:!1,hasMerge:!1,hasTree:!1,hasRowGroup:!1,hasColgroup:!1,visible:!1},exportParams:{filename:"",sheetName:"",mode:"",type:"",isColgroup:!1,isMerge:!1,isTreeAllExpanded:!1,isRowGroupAllExpanded:!1,useStyle:!1,original:!1,message:!0,isHeader:!1,isTitle:!1,isFooter:!1},visiblwRowsFlag:1,isRowGroupStatus:!1,rowGroupList:[],aggHandleFields:[],aggHandleAggColumns:[],rowGroupExpandedFlag:1,rowExpandedFlag:1,treeExpandedFlag:1,updateCheckboxFlag:1,pendingRowFlag:1,insertRowFlag:1,removeRowFlag:1,mergeHeadFlag:1,mergeBodyFlag:1,mergeFootFlag:1,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36},scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,lazScrollLoading:!1,rowExpandHeightFlag:1,calcCellHeightFlag:1,resizeHeightFlag:1,resizeWidthFlag:1,isCustomStatus:!1,isCustomDragStatus:!0,ctPopupFlag:1,isCrossDragRow:!1,dragRow:null,isCrossDragCol:!1,dragCol:null,dragTipText:"",isDragResize:!1,isRowLoading:!1,isColLoading:!1}}let maxKey="__max";function getRowMaxHeight(t,e){if(!e&&t[maxKey])return t[maxKey];{let e=0;for(var l in t){var o=t[l];l!==maxKey&&_xeUtils.default.isNumber(o)&&o>e&&(e=o)}return t[maxKey]=e}}let getAllConvertColumns=(e,t)=>{let l=[];return e.forEach(e=>{e.parentId=t?t.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(l.push(e),l.push(...getAllConvertColumns(e.children,e))):l.push(e))}),l},convertHeaderColumnToRows=e=>{let t=1,o=(l,e)=>{if(e&&(l.level=e.level+1,t<l.level)&&(t=l.level),l.children&&l.children.length&&l.children.some(e=>e.visible)){let t=0;l.children.forEach(e=>{e.visible&&(o(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,o(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)}),l};function convertHeaderToGridRows(t){var l=t.length,i=t[0].reduce((e,t)=>e+t.colSpan,0),n=[],a=[];for(let e=0;e<l;e++){var o=[],r=[];for(let e=0;e<i;e++)o.push(!1),r.push("");n.push(o),a.push(r)}for(let r=0;r<l;r++){let e=0;for(var u of t[r]){var{colSpan:s,rowSpan:d}=u;let o=-1;for(let l=e;l<=i-s;l++){let t=!0;for(let e=0;e<s;e++)if(n[r][l+e]){t=!1;break}if(t){o=l;break}}if(-1===o){for(let l=0;l<=i-s;l++){let t=!0;for(let e=0;e<s;e++)if(n[r][l+e]){t=!1;break}if(t){o=l;break}}if(-1===o)break}for(let t=r;t<r+d;t++)for(let e=o;e<o+s;e++)n[t][e]=!0,a[t][e]=u;e=o+s}}return a}function restoreScrollLocation(e,t,l){var o=e;return t||l?(o.intoRunScroll=!1,o.inVirtualScroll=!1,o.inWheelScroll=!1,o.inHeaderScroll=!1,o.inBodyScroll=!1,o.inFooterScroll=!1,o.scrollRenderType="",e.scrollTo(t,l)):e.clearScroll()}function toTreePathSeq(e){return e.map((e,t)=>t%2==0?Number(e)+1:".").join("")}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function createRowId(e,t,l){e=e.createKeyMethod;return e?""+e({row:t,keyField:l}):getRowUniqueId()}function hasDeepKey(e){return-1<e.indexOf(".")}function getRowkey(e){e=e.currKeyField;return e}function getRowid(e,t){var{isCurrDeepKey:e,currKeyField:l}=e;return t?encodeRowid((e?getDeepRowIdByKey:getFastRowIdByKey)(t,l)):""}function createHandleUpdateRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e,o=e.computeRowOpts,r=t?updateDeepRowKey:updateFastRowKey;return{rowKey:l,handleUpdateRowId(e){return e?r(o,e,l):""}}}function createHandleGetRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e,o=t?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:l,handleGetRowId(e){return e?encodeRowid(o(e,l)):""}}}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getDeepRowIdByKey(e,t){return _xeUtils.default.get(e,t)}function updateDeepRowKey(e,t,l){let o=encodeRowid(getDeepRowIdByKey(t,l));return(0,_utils.eqEmptyValue)(o)&&(e=createRowId(e,t,l),o=""+e,_xeUtils.default.set(t,l,o)),o}function getFastRowIdByKey(e,t){return e[t]}function updateFastRowKey(e,t,l){let o=encodeRowid(getFastRowIdByKey(t,l));return(0,_utils.eqEmptyValue)(o)&&(e=createRowId(e,t,l),o=""+e,t[l]=e),o}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginAndWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function getCalcHeight(e){return"unset"!==e&&e||0}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null}function handleRowidOrRow(e,t){return t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null}function getCellRestHeight(e,t,l,o){return e.resizeHeight||t.height||l.height||e.height||o}function assembleColumn(e){var t=e.$xeTable,l=t.staticColumns,{$el:e,$xeColumn:o,columnConfig:r}=e,i=o?o.columnConfig:null;i?("vxe-table-column"===o.$options._componentTag?(0,_log.errLog)("vxe.error.groupTag",[`<vxe-table-colgroup title=${o.title} ...>`,`<vxe-table-column title=${o.title} ...>`]):"vxe-column"===o.$options._componentTag&&(0,_log.warnLog)("vxe.error.groupTag",[`<vxe-colgroup title=${o.title} ...>`,`<vxe-column title=${o.title} ...>`]),i.children||(i.children=[]),r.defaultParentId=i.id,i.children.splice(_xeUtils.default.arrayIndexOf(o.$el.children,e),0,r)):l.splice(_xeUtils.default.arrayIndexOf(t.$refs.hideColumn.children,e),0,r)}function destroyColumn(e){var t=e.$xeTable.staticColumns;let l=e.columnConfig;e=_xeUtils.default.findTree(t,e=>e===l);e&&e.items.splice(e.index,1)}function getRootColumn(e,t){var l=e.fullColumnIdData;if(!t)return null;let o=t.parentId;for(;l[o];){let e=l[o].column;if(!(o=e.parentId))return e}return t}function toFilters(e,i){return e&&(_xeUtils.default.isArray(e)?e.map(({label:e,value:t,data:l,resetValue:o,checked:r})=>({label:e,value:t,data:l,resetValue:o,checked:!!r,_checked:!!r,_colId:i})):[])}function getColReMaxWidth(e){var{$table:t,column:l,cell:o}=e,r=t.elemStore,i=t.computeResizableOpts.maxWidth,l=l.maxWidth||t.computeColumnOpts.maxWidth;if(i){t=_xeUtils.default.isFunction(i)?i(e):i;if("auto"!==t)return Math.max(1,_xeUtils.default.toNumber(t))}e=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(o).fontSize)||14))+(getPaddingLeftRightSize(o)+getPaddingLeftRightSize((0,_dom.queryElement)(o,".vxe-cell")));if(l){i=getRefElem(r["main-body-scroll"]);if(i){if((0,_dom.isScale)(l))return t=(i.clientWidth-1)/100,Math.max(e,Math.floor(_xeUtils.default.toInteger(l)*t));if((0,_dom.isPx)(l))return Math.max(e,_xeUtils.default.toInteger(l))}}return-1}function getColReMinWidth(e){var{$table:t,column:l,cell:o}=e,r=t,i=t,n=t.computeResizableOpts,t=t.computeColumnOpts,n=n.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var a,u,s,n=i.elemStore,e=r.showHeaderOverflow,i=l.showHeaderOverflow,r=l.minWidth||t.minWidth,l=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?e:i,t="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;let d=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(o).fontSize)||14))+(getPaddingLeftRightSize(o)+getPaddingLeftRightSize((0,_dom.queryElement)(o,".vxe-cell")));if(t&&(e=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--drag-handle")),i=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--checkbox")),l=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--required-icon")),t=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--edit-icon")),a=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell-title-suffix-icon")),s=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--sort")),o=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--filter")),d+=e+i+l+t+a+u+o+s),r){e=getRefElem(n["main-body-scroll"]);if(e){if((0,_dom.isScale)(r))return i=(e.clientWidth-1)/100,Math.max(d,Math.floor(_xeUtils.default.toInteger(r)*i));if((0,_dom.isPx)(r))return Math.max(d,_xeUtils.default.toInteger(r))}}return d}function getFirstChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.first(t)):e}function getLastChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.last(t)):e}function getCellValue(e,t){return t?_xeUtils.default.get(e,t.field):null}function setCellValue(e,t,l){t&&_xeUtils.default.set(e,t.field,l)}function getRefElem(e){return e?e.$el||e:null}function clearTableDefaultStatus(e){var t=e,l=(e.initStatus=!1,[e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow()]);return e.clearFilter&&l.push(e.clearFilter()),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&l.push(e.clearSelected()),e.clearCellAreas&&t.mouseConfig&&l.push(e.clearCellAreas(),e.clearCopyCellArea()),Promise.all(l).then(()=>e.clearScroll())}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function getColumnList(e){let t=[];return e.forEach(e=>{t.push(...e.children&&e.children.length?getColumnList(e.children):[e])}),t}function createColumn(e,t,l){return isColumnInfo(t)?t:new _columnInfo.ColumnInfo(e,t,l)}function rowToVisible(e,t){var{scrollYLoad:l,scrollYTop:o,isAllOverflow:r}=e,{elemStore:i,afterFullData:n,fullAllDataRowIdData:a,isResizeCellHeight:u}=e,s=e.computeRowOpts,d=e.computeCellOpts,c=e.computeDefaultRowHeight,m=e.computeLeftFixedWidth,g=e.computeRightFixedWidth,i=getRefElem(i["main-body-scroll"]),p=getRowid(e,t);if(i){var f=i.clientHeight,h=i.scrollTop,i=i.querySelector(`[rowid="${p}"]`);if(i){var o=i.offsetTop+(l?o:0),i=i.clientHeight;if(o<h||h+f<o)return e.scrollTo(null,o);if(f+h<=o+i)return e.scrollTo(null,h+i)}else if(l)return u||d.height||s.height||!r?(i=(o=a[p]||{}).resizeHeight||d.height||s.height||o.height||c,(l=o.oTop)<h?e.scrollTo(null,l-m-1):e.scrollTo(null,l+i-(f-g-1))):e.scrollTo(null,(e.findRowIndexOf(n,t)-1)*c)}return Promise.resolve()}function colToVisible(l,o,r,t){var{scrollXLoad:i,scrollXLeft:n}=l,{elemStore:a,visibleColumn:u}=l,s=l.computeLeftFixedWidth,d=l.computeRightFixedWidth,a=getRefElem(a["main-body-scroll"]);if(!r.fixed&&a){var c=a.clientWidth,m=a.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=a.querySelector(`[rowid="${t}"] .`+r.id)),e=e||a.querySelector("."+r.id)){t=e.offsetLeft+(i?n:0),a=e.clientWidth;if(o||!(t<=m+s&&m+s<t+a)&&!(m+s<=t&&t<m+c-d)){if(t<m+s)return l.scrollTo(t-s-1);if(c-d<t+a-m)return l.scrollTo(t+a-(c-d-1))}}else if(i){let t=0;n=r.renderWidth;for(let e=0;e<u.length;e++){var g=u[e];if(g===r||g.id===r.id)break;t+=g.renderWidth}if(o||!(t<=m+s&&t+n>m+s)&&!(t>=m+s&&t<m+c-d))return t<m?l.scrollTo(t-s-1):l.scrollTo(t+n-(c-d-1))}}return Promise.resolve()}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;
package/lib/ui/index.js CHANGED
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
13
13
  exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
14
14
  var _core = require("@vxe-ui/core");
15
15
  var _utils = require("./src/utils");
16
- const version = exports.version = "3.21.7";
16
+ const version = exports.version = "3.21.8";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="3.21.7",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!0,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},currentRowConfig:{strict:!0},currentColumnConfig:{strict:!0},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0,defaultPlacement:"top"},headerTooltipConfig:{enterable:!0},footerTooltipConfig:{enterable:!0},validConfig:{showErrorMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},menuConfig:{destroyOnClose:!0},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showSortDragButton:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{destroyOnClose:!0,multiple:!0,showIcon:!0,maxHeight:280},floatingFilterConfig:{},aggregateConfig:{padding:!0,placement:"left",rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0,showRootLine:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:0,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{x:{visible:!0},y:{visible:!0}},undoRedoHistoryConfig:{stackSize:50}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:"list",result:"result",total:"page.total",footerData:"footerData",message:"message"}}},toolbar:{},gantt:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_MENU_OPTION_LOADING:iconPrefix+"repeat roll",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="3.21.8",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!0,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},currentRowConfig:{strict:!0},currentColumnConfig:{strict:!0},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0,defaultPlacement:"top"},headerTooltipConfig:{enterable:!0},footerTooltipConfig:{enterable:!0},validConfig:{showErrorMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},menuConfig:{destroyOnClose:!0},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showSortDragButton:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{destroyOnClose:!0,multiple:!0,showIcon:!0,maxHeight:280},floatingFilterConfig:{},aggregateConfig:{padding:!0,placement:"left",rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0,showRootLine:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:0,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{x:{visible:!0},y:{visible:!0}},undoRedoHistoryConfig:{stackSize:50}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:"list",result:"result",total:"page.total",footerData:"footerData",message:"message"}}},toolbar:{},gantt:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_MENU_OPTION_LOADING:iconPrefix+"repeat roll",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
package/lib/ui/src/log.js CHANGED
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
8
8
  const {
9
9
  log
10
10
  } = _core.VxeUI;
11
- const version = `table v${"3.21.7"}`;
11
+ const version = `table v${"3.21.8"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v3.21.7",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v3.21.8",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "3.21.7",
3
+ "version": "3.21.8",
4
4
  "description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -3,7 +3,7 @@ import { getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollLe
3
3
  import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
4
4
  import { VxeUI } from '../../ui'
5
5
  import Cell from './cell'
6
- import { getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn } from './util'
6
+ import { getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn, getRowMaxHeight } from './util'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
9
9
  import { warnLog, errLog } from '../../ui/src/log'
@@ -2562,36 +2562,40 @@ function autoCellWidth ($xeTable: VxeTableConstructor & VxeTablePrivateMethods)
2562
2562
  /**
2563
2563
  * 计算自适应行高
2564
2564
  */
2565
- const calcCellAutoHeight = ($xeTable: VxeTableConstructor, rowRest: VxeTableDefines.RowCacheItem, wrapperEl: HTMLDivElement) => {
2566
- const reactData = $xeTable as unknown as TableReactData
2565
+ const calcCellAutoHeight = ($xeTable: VxeTableConstructor, rowid: string | number, rowRest: VxeTableDefines.RowCacheItem, wrapperEl: HTMLDivElement) => {
2566
+ const internalData = $xeTable as unknown as TableInternalData
2567
2567
 
2568
- const { scrollXLoad } = reactData
2568
+ const { fullCellHeightMaps } = internalData
2569
+ let chRest = fullCellHeightMaps[rowid]
2570
+ if (!chRest) {
2571
+ chRest = {}
2572
+ fullCellHeightMaps[rowid] = chRest
2573
+ }
2569
2574
  const wrapperElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`)
2570
- let colHeight = 0
2571
2575
  let firstCellStyle: CSSStyleDeclaration | null = null
2572
2576
  let topBottomPadding = 0
2577
+ let changeCH = false
2573
2578
  for (let i = 0; i < wrapperElemList.length; i++) {
2574
2579
  const wrapperElem = wrapperElemList[i] as HTMLElement
2575
2580
  const cellElem = wrapperElem.parentElement as HTMLTableCellElement
2576
2581
  const cellStyle = cellElem.style
2577
2582
  const orHeight = cellStyle.height
2578
- if (!scrollXLoad) {
2579
- cellStyle.height = ''
2580
- }
2583
+ const colid = wrapperElem.getAttribute('colid') || ''
2584
+ cellStyle.height = ''
2581
2585
  if (!firstCellStyle) {
2582
2586
  firstCellStyle = getComputedStyle(cellElem)
2583
2587
  topBottomPadding = firstCellStyle ? Math.ceil(XEUtils.toNumber(firstCellStyle.paddingTop) + XEUtils.toNumber(firstCellStyle.paddingBottom)) : 0
2584
2588
  }
2585
- if (!scrollXLoad) {
2586
- cellStyle.height = orHeight
2587
- }
2588
2589
  const cellHeight = wrapperElem ? wrapperElem.clientHeight : 0
2589
- colHeight = Math.max(colHeight, Math.ceil(cellHeight + topBottomPadding))
2590
- }
2591
- if (scrollXLoad) {
2592
- colHeight = Math.max(colHeight, rowRest.height)
2590
+ const colHeight = Math.ceil(cellHeight + topBottomPadding)
2591
+ if (chRest[colid] !== colHeight) {
2592
+ changeCH = true
2593
+ chRest[colid] = colHeight
2594
+ }
2595
+ cellStyle.height = orHeight
2593
2596
  }
2594
- return colHeight
2597
+ const cellMaxHeight = getRowMaxHeight(chRest, changeCH)
2598
+ return cellMaxHeight
2595
2599
  }
2596
2600
 
2597
2601
  /**
@@ -2618,7 +2622,7 @@ const calcCellHeight = ($xeTable: VxeTableConstructor) => {
2618
2622
  const rowid = handleGetRowId(row)
2619
2623
  const rowRest = fullAllDataRowIdData[rowid]
2620
2624
  if (rowRest) {
2621
- const height = calcCellAutoHeight($xeTable, rowRest, el)
2625
+ const height = calcCellAutoHeight($xeTable, rowid, rowRest, el)
2622
2626
  rowRest.height = Math.max(defaultRowHeight, height)
2623
2627
  }
2624
2628
  el.removeAttribute('data-calc-row')
@@ -3140,7 +3144,6 @@ function handleRecalculateStyle ($xeTable: VxeTableConstructor & VxeTablePrivate
3140
3144
  const internalData = $xeTable as unknown as TableInternalData
3141
3145
 
3142
3146
  const el = $xeTable.$refs.refElem as HTMLDivElement
3143
- internalData.rceRunTime = Date.now()
3144
3147
  if (!el || !el.clientWidth) {
3145
3148
  return $xeTable.$nextTick()
3146
3149
  }
@@ -3164,6 +3167,7 @@ function handleRecalculateStyle ($xeTable: VxeTableConstructor & VxeTablePrivate
3164
3167
  if (reFull) {
3165
3168
  updateTreeLineStyle($xeTable)
3166
3169
  }
3170
+ internalData.rceRunTime = Date.now()
3167
3171
  return computeScrollLoad($xeTable).then(() => {
3168
3172
  // 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
3169
3173
  if (reWidth) {
@@ -3184,12 +3188,15 @@ function handleRecalculateStyle ($xeTable: VxeTableConstructor & VxeTablePrivate
3184
3188
  if (reFull) {
3185
3189
  updateTreeLineStyle($xeTable)
3186
3190
  }
3191
+ internalData.rceRunTime = Date.now()
3187
3192
  if (reFull) {
3188
3193
  return computeScrollLoad($xeTable)
3189
3194
  }
3190
3195
  })
3191
3196
  }
3192
3197
 
3198
+ const minRunDelay = 50
3199
+
3193
3200
  function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, reFull: boolean, reWidth: boolean, reHeight: boolean) {
3194
3201
  const reactData = $xeTable as unknown as TableReactData
3195
3202
  const internalData = $xeTable as unknown as TableInternalData
@@ -3199,7 +3206,16 @@ function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateM
3199
3206
  const { rceTimeout, rceRunTime } = internalData
3200
3207
  const $xeGanttView = internalData.xeGanttView
3201
3208
  const resizeOpts = $xeTable.computeResizeOpts
3202
- const refreshDelay = resizeOpts.refreshDelay || 20
3209
+ let rceDelay = internalData.rceDelay
3210
+ // 如果在500毫秒内频繁执行,则执行次数减缓
3211
+ if (rceRunTime && rceRunTime > Date.now() - 500) {
3212
+ rceDelay += 50
3213
+ } else {
3214
+ rceDelay = 0
3215
+ }
3216
+ internalData.rceDelay = rceDelay
3217
+ const refreshDelay = resizeOpts.refreshDelay || 30
3218
+ const reDelay = rceDelay + refreshDelay
3203
3219
  const el = $xeTable.$refs.refElem as HTMLElement
3204
3220
  if (el && el.clientWidth) {
3205
3221
  autoCellWidth($xeTable)
@@ -3210,7 +3226,7 @@ function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateM
3210
3226
  }
3211
3227
  if (rceTimeout) {
3212
3228
  clearTimeout(rceTimeout)
3213
- if (rceRunTime && rceRunTime + (refreshDelay - 5) < Date.now()) {
3229
+ if (rceRunTime && rceRunTime + minRunDelay < Date.now()) {
3214
3230
  resolve(
3215
3231
  handleRecalculateStyle($xeTable, reFull, reWidth, reHeight)
3216
3232
  )
@@ -3230,7 +3246,7 @@ function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateM
3230
3246
  internalData.rceTimeout = setTimeout(() => {
3231
3247
  internalData.rceTimeout = undefined
3232
3248
  handleRecalculateStyle($xeTable, reFull, reWidth, reHeight)
3233
- }, refreshDelay)
3249
+ }, reDelay)
3234
3250
  })
3235
3251
  }
3236
3252
 
@@ -3579,6 +3595,7 @@ function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
3579
3595
  reactData.insertRowFlag++
3580
3596
  internalData.removeRowMaps = {}
3581
3597
  reactData.removeRowFlag++
3598
+ internalData.fullCellHeightMaps = {}
3582
3599
  const sYLoad = updateScrollYStatus($xeTable, fullData)
3583
3600
  // 全量数据
3584
3601
  internalData.tableFullData = fullData
@@ -3959,13 +3976,53 @@ function initColumnHierarchy ($xeTable: VxeTableConstructor & VxeTablePrivateMet
3959
3976
  internalData.fullColumnFieldData = fullColFieldData
3960
3977
  }
3961
3978
 
3962
- function handleInitColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, collectColumn: VxeTableDefines.ColumnInfo[]) {
3979
+ function buildColumnInfo ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
3963
3980
  const props = $xeTable
3964
3981
  const $xeToolbar = $xeTable.$refs.$xeToolbar as VxeToolbarConstructor
3965
3982
  const reactData = $xeTable as unknown as TableReactData
3966
3983
  const internalData = $xeTable as unknown as TableInternalData
3967
3984
 
3985
+ const { scrollXLoad, scrollYLoad, expandColumn } = reactData
3968
3986
  const expandOpts = $xeTable.computeExpandOpts
3987
+ cacheColumnMap($xeTable)
3988
+ parseColumns($xeTable, true).then(() => {
3989
+ if (reactData.scrollXLoad) {
3990
+ loadScrollXData($xeTable)
3991
+ }
3992
+ })
3993
+ $xeTable.clearHeaderFormatterCache()
3994
+ $xeTable.clearMergeCells()
3995
+ $xeTable.clearMergeFooterItems()
3996
+ $xeTable.handleTableData(true)
3997
+ $xeTable.handleAggregateSummaryData()
3998
+
3999
+ if ((scrollXLoad || scrollYLoad) && (expandColumn && expandOpts.mode !== 'fixed')) {
4000
+ warnLog('vxe.error.scrollErrProp', ['column.type=expand'])
4001
+ }
4002
+
4003
+ return $xeTable.$nextTick().then(() => {
4004
+ if ($xeToolbar) {
4005
+ $xeToolbar.syncUpdate({
4006
+ collectColumn: internalData.collectColumn,
4007
+ $table: $xeTable
4008
+ })
4009
+ }
4010
+ if ($xeTable.handleUpdateCustomColumn) {
4011
+ $xeTable.handleUpdateCustomColumn()
4012
+ }
4013
+ const columnOpts = $xeTable.computeColumnOpts
4014
+ if (props.showCustomHeader && reactData.isGroup && (columnOpts.resizable || props.resizable)) {
4015
+ warnLog('vxe.error.notConflictProp', ['show-custom-header & colgroup', 'column-config.resizable=false'])
4016
+ }
4017
+ reactData.isColLoading = false
4018
+ return handleLazyRecalculate($xeTable, false, true, true)
4019
+ })
4020
+ }
4021
+
4022
+ function handleInitColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, collectColumn: VxeTableDefines.ColumnInfo[]) {
4023
+ const reactData = $xeTable as unknown as TableReactData
4024
+ const internalData = $xeTable as unknown as TableInternalData
4025
+
3969
4026
  internalData.collectColumn = collectColumn
3970
4027
  const tFullColumn = getColumnList(collectColumn)
3971
4028
  internalData.tableFullColumn = tFullColumn
@@ -3975,40 +4032,7 @@ function handleInitColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
3975
4032
  return Promise.resolve(
3976
4033
  restoreCustomStorage($xeTable)
3977
4034
  ).then(() => {
3978
- const { scrollXLoad, scrollYLoad, expandColumn } = reactData
3979
- cacheColumnMap($xeTable)
3980
- parseColumns($xeTable, true).then(() => {
3981
- if (reactData.scrollXLoad) {
3982
- loadScrollXData($xeTable)
3983
- }
3984
- })
3985
- $xeTable.clearHeaderFormatterCache()
3986
- $xeTable.clearMergeCells()
3987
- $xeTable.clearMergeFooterItems()
3988
- $xeTable.handleTableData(true)
3989
- $xeTable.handleAggregateSummaryData()
3990
-
3991
- if ((scrollXLoad || scrollYLoad) && (expandColumn && expandOpts.mode !== 'fixed')) {
3992
- warnLog('vxe.error.scrollErrProp', ['column.type=expand'])
3993
- }
3994
-
3995
- return $xeTable.$nextTick().then(() => {
3996
- if ($xeToolbar) {
3997
- $xeToolbar.syncUpdate({
3998
- collectColumn: internalData.collectColumn,
3999
- $table: $xeTable
4000
- })
4001
- }
4002
- if ($xeTable.handleUpdateCustomColumn) {
4003
- $xeTable.handleUpdateCustomColumn()
4004
- }
4005
- const columnOpts = $xeTable.computeColumnOpts
4006
- if (props.showCustomHeader && reactData.isGroup && (columnOpts.resizable || props.resizable)) {
4007
- warnLog('vxe.error.notConflictProp', ['show-custom-header & colgroup', 'column-config.resizable=false'])
4008
- }
4009
- reactData.isColLoading = false
4010
- return handleLazyRecalculate($xeTable, false, true, true)
4011
- })
4035
+ return buildColumnInfo($xeTable)
4012
4036
  })
4013
4037
  }
4014
4038
 
@@ -6455,6 +6479,9 @@ const tableMethods: any = {
6455
6479
  warnLog('vxe.error.delFunc', ['resetColumn', 'resetCustom'])
6456
6480
  return this.resetCustom(options)
6457
6481
  },
6482
+ /**
6483
+ * @private
6484
+ */
6458
6485
  handleCustom () {
6459
6486
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6460
6487
  const props = $xeTable
@@ -6510,6 +6537,70 @@ const tableMethods: any = {
6510
6537
  }
6511
6538
  }
6512
6539
  },
6540
+ /**
6541
+ * 用于 custom-config,用于手动恢复自定义列设置信息,恢复表格重置为初始状态
6542
+ * @param storeData
6543
+ * @returns
6544
+ */
6545
+ setCustomStoreData (storeData: VxeTableDefines.CustomStoreData | null) {
6546
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6547
+ const reactData = $xeTable as unknown as TableReactData
6548
+ const internalData = $xeTable as unknown as TableInternalData
6549
+
6550
+ if (!storeData) {
6551
+ return $xeTable.$nextTick()
6552
+ }
6553
+ const customOpts = $xeTable.computeCustomOpts
6554
+ const { checkMethod } = customOpts
6555
+ // 重置状态
6556
+ clearTableAllStatus($xeTable)
6557
+ // 恢复列
6558
+ const allCols: VxeTableDefines.ColumnInfo[] = []
6559
+ XEUtils.eachTree(internalData.collectColumn, (column) => {
6560
+ column.resizeWidth = 0
6561
+ column.fixed = column.defaultFixed
6562
+ column.renderSortNumber = column.sortNumber
6563
+ column.parentId = column.defaultParentId
6564
+ if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
6565
+ column.visible = column.defaultVisible
6566
+ }
6567
+ column.aggFunc = column.defaultAggFunc
6568
+ column.renderAggFn = column.defaultAggFunc
6569
+ column.renderResizeWidth = column.renderWidth
6570
+ allCols.push(column)
6571
+ })
6572
+ const newCollectCols = XEUtils.toArrayTree(XEUtils.orderBy(allCols, 'renderSortNumber'), { key: 'id', parentKey: 'parentId', children: 'children' })
6573
+ internalData.collectColumn = newCollectCols
6574
+ internalData.tableFullColumn = getColumnList(newCollectCols)
6575
+
6576
+ reactData.updateColFlag++
6577
+ reactData.isColLoading = true
6578
+ initColumnHierarchy($xeTable)
6579
+ return Promise.resolve(
6580
+ handleCustomRestore($xeTable, storeData)
6581
+ ).then(() => {
6582
+ return buildColumnInfo($xeTable)
6583
+ }).then(() => {
6584
+ // 恢复数据聚合分组
6585
+ const { isRowGroupStatus, rowGroupList } = reactData
6586
+ if (isRowGroupStatus && !!$xeTable.handlePivotTableAggData) {
6587
+ const rowGroupFields = $xeTable.computeRowGroupFields
6588
+ if (rowGroupFields ? rowGroupFields.length : rowGroupList.length) {
6589
+ if (rowGroupFields && rowGroupFields.length) {
6590
+ $xeTable.setRowGroups(rowGroupFields)
6591
+ } else {
6592
+ $xeTable.clearRowGroups()
6593
+ }
6594
+ } else {
6595
+ $xeTable.handleUpdateAggData()
6596
+ }
6597
+ }
6598
+ })
6599
+ },
6600
+ /**
6601
+ * 用于 custom-config,用于获取自定义列设置信息,用于自定义保持
6602
+ * @returns
6603
+ */
6513
6604
  getCustomStoreData () {
6514
6605
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6515
6606
  const props = $xeTable
@@ -6632,6 +6723,9 @@ const tableMethods: any = {
6632
6723
  }
6633
6724
  return storeData
6634
6725
  },
6726
+ /**
6727
+ * @private
6728
+ */
6635
6729
  saveCustomStore (type: any) {
6636
6730
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6637
6731
  const props = $xeTable
@@ -6981,6 +7075,9 @@ const tableMethods: any = {
6981
7075
  }
6982
7076
  }
6983
7077
  },
7078
+ /**
7079
+ * @private
7080
+ */
6984
7081
  handleRowResizeMousedownEvent (evnt: MouseEvent, params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }) {
6985
7082
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6986
7083
  const props = $xeTable
@@ -7103,6 +7200,9 @@ const tableMethods: any = {
7103
7200
  }
7104
7201
  updateEvent(evnt)
7105
7202
  },
7203
+ /**
7204
+ * @private
7205
+ */
7106
7206
  handleRowResizeDblclickEvent (evnt: MouseEvent, params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }) {
7107
7207
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
7108
7208
  const reactData = $xeTable as unknown as TableReactData
@@ -7125,7 +7225,7 @@ const tableMethods: any = {
7125
7225
  }
7126
7226
  const handleRsHeight = () => {
7127
7227
  el.setAttribute('data-calc-row', 'Y')
7128
- const resizeHeight = calcCellAutoHeight($xeTable, rowRest, el)
7228
+ const resizeHeight = calcCellAutoHeight($xeTable, rowid, rowRest, el)
7129
7229
  el.removeAttribute('data-calc-row')
7130
7230
  const resizeParams = { ...params, resizeHeight, resizeRow: row }
7131
7231
  reactData.isDragResize = false
@@ -7212,7 +7312,7 @@ const tableMethods: any = {
7212
7312
  const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row)
7213
7313
  const rowRest = fullAllDataRowIdData[rowid]
7214
7314
  if (rowRest) {
7215
- rowRest.resizeHeight = calcCellAutoHeight($xeTable, rowRest, el)
7315
+ rowRest.resizeHeight = calcCellAutoHeight($xeTable, rowid, rowRest, el)
7216
7316
  }
7217
7317
  el.removeAttribute('data-calc-row')
7218
7318
  })
@@ -90,6 +90,7 @@ export function createInternalData (): TableInternalData {
90
90
  sourceDataRowIdData: {},
91
91
  fullColumnIdData: {},
92
92
  fullColumnFieldData: {},
93
+ fullCellHeightMaps: {},
93
94
 
94
95
  // 当前行
95
96
  currentRow: null,
@@ -158,7 +159,9 @@ export function createInternalData (): TableInternalData {
158
159
  inited: false,
159
160
  tooltipTimeout: null,
160
161
  initStatus: false,
161
- isActivated: false
162
+ isActivated: false,
163
+
164
+ rceDelay: 0
162
165
 
163
166
  // _sToTime: null
164
167
  }
@@ -420,6 +423,23 @@ export function createReactData (): TableReactData {
420
423
  }
421
424
  }
422
425
 
426
+ const maxKey = '__max'
427
+
428
+ export function getRowMaxHeight (chRest: Record<string, number>, isForce: boolean) {
429
+ if (isForce || !chRest[maxKey]) {
430
+ let max = 0
431
+ for (const key in chRest) {
432
+ const val = chRest[key]
433
+ if (key !== maxKey && XEUtils.isNumber(val) && val > max) {
434
+ max = val
435
+ }
436
+ }
437
+ chRest[maxKey] = max
438
+ return max
439
+ }
440
+ return chRest[maxKey]
441
+ }
442
+
423
443
  const getAllConvertColumns = (columns: any, parentColumn?: any) => {
424
444
  const result: any[] = []
425
445
  columns.forEach((column: any) => {