vxe-table 4.13.36 → 4.13.37

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.
@@ -1 +1 @@
1
- var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let hooks=_ui.VxeUI.hooks,browseObj=_xeUtils.default.browse();function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!browseObj.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}hooks.add("tableKeyboardModule",{setupTable(k){let{props:M,reactData:y,internalData:O}=k,D=k.getRefMaps().refElem,{computeEditOpts:v,computeCheckboxOpts:a,computeMouseOpts:s,computeTreeOpts:c,computeRowOpts:F,computeColumnOpts:C,computeCellOpts:H,computeDefaultRowHeight:V,computeCurrentRowOpts:w,computeCurrentColumnOpts:p}=k.getComputeMaps();let d=(e,S)=>{var t=O.elemStore,l=(0,_util.getRefElem)(t["main-body-scroll"]),o=(0,_util.getRefElem)(t["left-body-scroll"]),t=(0,_util.getRefElem)(t["right-body-scroll"]),{column:r,cell:n}=S;if("checkbox"===r.type){let _=l;if(o&&"left"===r.fixed?_=o:t&&"right"===r.fixed&&(_=t),_){let t=D.value,i=e.clientX,a=e.clientY,s=_.querySelector(".vxe-table--checkbox-range"),c=n.parentElement,d=k.getCheckboxRecords(),g=[],h=1;l=getTargetOffset(e.target,_);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,v=_.scrollTop,u=c.offsetHeight,C=c.getBoundingClientRect(),w=a-C.y,p=null,x=!1,b=1,R=(e,t)=>{k.dispatchEvent("checkbox-range-"+e,{records:k.getCheckboxRecords(),reserves:k.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-a+(_.scrollTop-v);let o=Math.abs(l),r=Math.abs(t),n=m,u=f;l<h?(n+=l)<h&&(n=h,o=m):o=Math.min(o,_.scrollHeight-m-h),t<h?(u+=t,r>f&&(u=h,r=f)):r=Math.min(r,_.clientWidth-f-h),s.style.height=o+"px",s.style.width=r+"px",s.style.left=u+"px",s.style.top=n+"px",s.style.display="block";t=((e,t,l,o,r)=>{var n=M.showOverflow,{fullAllDataRowIdData:u,isResizeCellHeight:i}=O,a=F.value,s=H.value,c=V.value,e=e.row;let d=0,g=[],h=0;var m=0<r,f=y.scrollYLoad,v=O.afterFullData;if(h=m?o+r:l.height-o+Math.abs(r),f){l=k.getVTRowIndex(e);if(!(i||s.height||a.height)&&n)g=m?v.slice(l,l+Math.ceil(h/c)):v.slice(l-Math.floor(h/c),l+1);else if(m)for(let e=l;e<v.length;e++){var C=v[e],w=u[k.getRowid(C)]||{};if(d+=w.resizeHeight||s.height||a.height||w.height||c,g.push(C),d>h)return g}else for(let e=l;0<=e;e--){var p=v[e],x=u[k.getRowid(p)]||{};if(d+=x.resizeHeight||s.height||a.height||x.height||c,g.push(p),d>h)return g}}else for(var b=m?"next":"previous";t&&d<h;){var R=k.getRowNode(t);R&&(g.push(R.item),d+=t.offsetHeight,t=t[b+"ElementSibling"])}return g})(S,c,C,w,l<h?-o:o);10<o&&t.length!==g.length&&(l=(0,_dom.hasControlKey)(e),g=t,l?t.forEach(e=>{k.handleBatchSelectRows([e],-1===d.indexOf(e))}):(k.setAllCheckboxRow(!1),k.handleCheckedCheckboxRow(t,!0,!1)),R("change",e))},I=()=>{clearTimeout(p),p=null},E=n=>{I(),p=setTimeout(()=>{var e,t,l,o,r;p&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=_,r=Math.ceil(50*b/u),x?t+l<o?(k.scrollTo(e,t+r),E(n),T(n)):I():t?(k.scrollTo(e,t-r),E(n),T(n)):I())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(_).boundingTop;t<l?(x=!1,b=l-t,p||E(e)):t>l+_.clientHeight?(x=!0,b=t-l-_.clientHeight,p||E(e)):p&&I(),T(e)},document.onmouseup=e=>{I(),(0,_dom.removeClass)(t,"drag--range"),s.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,R("end",e)},R("start",e)}}};let g=(e,t,l,o,r,n)=>{var{afterFullData:u,visibleColumn:i}=O;let a=Object.assign({},t);var t=k.getVTRowIndex(a.row),s=k.getVTColumnIndex(a.column);return e.preventDefault(),o&&0<t?(a.rowIndex=t-1,a.row=u[a.rowIndex]):n&&t<u.length-1?(a.rowIndex=t+1,a.row=u[a.rowIndex]):l&&s?(a.columnIndex=s-1,a.column=i[a.columnIndex]):r&&s<i.length-1&&(a.columnIndex=s+1,a.column=i[a.columnIndex]),k.scrollToRow(a.row,a.column).then(()=>{a.cell=k.getCellElement(a.row,a.column),k.handleSelected(a,e)}),a};return{moveTabSelected(e,t,l){var o=M.editConfig,{afterFullData:r,visibleColumn:n}=O,u=v.value,i=F.value,a=w.value,s=C.value,c=p.value;let d,g,h,m=Object.assign({},e);var e=k.getVTRowIndex(m.row),f=k.getVTColumnIndex(m.column),t=(l.preventDefault(),t?f<=0?0<e&&(g=e-1,d=r[g],h=n.length-1):h=f-1:f>=n.length-1?e<r.length-1&&(g=e+1,d=r[g],h=0):h=f+1,n[h]);t&&(d?(m.rowIndex=g,m.row=d):m.rowIndex=e,m.columnIndex=h,m.column=t,m.cell=k.getCellElement(m.row,m.column),i.isCurrent&&a.isFollowSelected&&k.triggerCurrentRowEvent(l,m),s.isCurrent&&c.isFollowSelected&&k.triggerCurrentColumnEvent(l,m),o?"click"!==u.trigger&&"dblclick"!==u.trigger||("row"===u.mode?k.handleEdit(m,l):k.scrollToRow(m.row,m.column).then(()=>{k.handleSelected(m,l)})):k.scrollToRow(m.row,m.column).then(()=>{k.handleSelected(m,l)}))},moveCurrentRow(e,t,l){var o=M.treeConfig;let r=y.currentRow;var n=O.afterFullData,u=c.value,u=u.children||u.childrenField;let i;if(r?o?({index:o,items:u}=_xeUtils.default.findTree(n,e=>e===r,{children:u}),e&&0<o?i=u[o-1]:t&&o<u.length-1&&(i=u[o+1])):(u=k.getVTRowIndex(r),e&&0<u?i=n[u-1]:t&&u<n.length-1&&(i=n[u+1])):i=n[0],i){l.preventDefault();let e={$table:k,row:i,rowIndex:k.getRowIndex(i),$rowIndex:k.getVMRowIndex(i)};k.scrollToRow(i).then(()=>k.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){var o=y.currentColumn,r=O.visibleColumn;let n=null;if(o?(o=k.getVTColumnIndex(o),e&&0<o?n=r[o-1]:t&&o<r.length-1&&(n=r[o+1])):n=r[0],n){l.preventDefault();let e={$table:k,column:n,columnIndex:k.getColumnIndex(n),$columnIndex:k.getVMColumnIndex(n)};k.scrollToColumn(n).then(()=>k.triggerCurrentColumnEvent(l,e))}},moveArrowSelected(e,t,l,o,r,n){var{highlightCurrentRow:u,highlightCurrentColumn:i}=M,a=F.value,s=w.value,c=C.value,d=p.value,e=g(n,e,t,l,o,r);(a.isCurrent||u)&&(s.isFollowSelected?k.triggerCurrentRowEvent(n,e):(l||r)&&(a.isCurrent||u)&&k.moveCurrentRow(l,r,n)),(c.isCurrent||i)&&(d.isFollowSelected?k.triggerCurrentColumnEvent(n,e):(t||o)&&(c.isCurrent||i)&&k.moveCurrentColumn(t,o,n))},moveEnterSelected(e,t,l,o,r,n){var{highlightCurrentRow:u,highlightCurrentColumn:i}=M,a=F.value,s=w.value,c=C.value,d=p.value,e=g(n,e,t,l,o,r);(a.isCurrent||u)&&s.isFollowSelected&&k.triggerCurrentRowEvent(n,e),(c.isCurrent||i)&&d.isFollowSelected&&k.triggerCurrentColumnEvent(n,e)},moveSelected(e,t,l,o,r,n){g(n,e,t,l,o,r)},handleCellMousedownEvent:(e,t)=>{var{editConfig:l,checkboxConfig:o,mouseConfig:r}=M,n=a.value,u=s.value,i=v.value;if(r&&u.area&&k.triggerCellAreaMousedownEvent)return k.triggerCellAreaMousedownEvent(e,t);o&&n.range&&d(e,t),r&&u.selected&&(l&&"cell"!==i.mode||k.handleSelected(t,e))}}}});
1
+ var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let hooks=_ui.VxeUI.hooks,browseObj=_xeUtils.default.browse();function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!browseObj.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}hooks.add("tableKeyboardModule",{setupTable(k){let{props:M,reactData:y,internalData:O}=k,D=k.getRefMaps().refElem,{computeEditOpts:v,computeCheckboxOpts:a,computeMouseOpts:s,computeTreeOpts:c,computeRowOpts:F,computeColumnOpts:C,computeCellOpts:H,computeDefaultRowHeight:V,computeCurrentRowOpts:w,computeCurrentColumnOpts:p}=k.getComputeMaps();let d=(e,S)=>{var t=O.elemStore,l=(0,_util.getRefElem)(t["main-body-scroll"]),o=(0,_util.getRefElem)(t["left-body-scroll"]),t=(0,_util.getRefElem)(t["right-body-scroll"]),{column:r,cell:n}=S;if("checkbox"===r.type){let _=l;if(o&&"left"===r.fixed?_=o:t&&"right"===r.fixed&&(_=t),_){let t=D.value,i=e.clientX,a=e.clientY,s=_.querySelector(".vxe-table--checkbox-range"),c=n.parentElement,d=k.getCheckboxRecords(),g=[],h=1;l=getTargetOffset(e.target,_);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,v=_.scrollTop,u=c.offsetHeight,C=c.getBoundingClientRect(),w=a-C.y,p=null,x=!1,b=1,R=(e,t)=>{k.dispatchEvent("checkbox-range-"+e,{records:()=>k.getCheckboxRecords(),reserves:()=>k.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-a+(_.scrollTop-v);let o=Math.abs(l),r=Math.abs(t),n=m,u=f;l<h?(n+=l)<h&&(n=h,o=m):o=Math.min(o,_.scrollHeight-m-h),t<h?(u+=t,r>f&&(u=h,r=f)):r=Math.min(r,_.clientWidth-f-h),s.style.height=o+"px",s.style.width=r+"px",s.style.left=u+"px",s.style.top=n+"px",s.style.display="block";t=((e,t,l,o,r)=>{var n=M.showOverflow,{fullAllDataRowIdData:u,isResizeCellHeight:i}=O,a=F.value,s=H.value,c=V.value,e=e.row;let d=0,g=[],h=0;var m=0<r,f=y.scrollYLoad,v=O.afterFullData;if(h=m?o+r:l.height-o+Math.abs(r),f){l=k.getVTRowIndex(e);if(!(i||s.height||a.height)&&n)g=m?v.slice(l,l+Math.ceil(h/c)):v.slice(l-Math.floor(h/c),l+1);else if(m)for(let e=l;e<v.length;e++){var C=v[e],w=u[k.getRowid(C)]||{};if(d+=w.resizeHeight||s.height||a.height||w.height||c,g.push(C),d>h)return g}else for(let e=l;0<=e;e--){var p=v[e],x=u[k.getRowid(p)]||{};if(d+=x.resizeHeight||s.height||a.height||x.height||c,g.push(p),d>h)return g}}else for(var b=m?"next":"previous";t&&d<h;){var R=k.getRowNode(t);R&&(g.push(R.item),d+=t.offsetHeight,t=t[b+"ElementSibling"])}return g})(S,c,C,w,l<h?-o:o);10<o&&t.length!==g.length&&(l=(0,_dom.hasControlKey)(e),g=t,l?t.forEach(e=>{k.handleBatchSelectRows([e],-1===d.indexOf(e))}):(k.setAllCheckboxRow(!1),k.handleCheckedCheckboxRow(t,!0,!1)),R("change",e))},I=()=>{clearTimeout(p),p=null},E=n=>{I(),p=setTimeout(()=>{var e,t,l,o,r;p&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=_,r=Math.ceil(50*b/u),x?t+l<o?(k.scrollTo(e,t+r),E(n),T(n)):I():t?(k.scrollTo(e,t-r),E(n),T(n)):I())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(_).boundingTop;t<l?(x=!1,b=l-t,p||E(e)):t>l+_.clientHeight?(x=!0,b=t-l-_.clientHeight,p||E(e)):p&&I(),T(e)},document.onmouseup=e=>{I(),(0,_dom.removeClass)(t,"drag--range"),s.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,R("end",e)},R("start",e)}}};let g=(e,t,l,o,r,n)=>{var{afterFullData:u,visibleColumn:i}=O;let a=Object.assign({},t);var t=k.getVTRowIndex(a.row),s=k.getVTColumnIndex(a.column);return e.preventDefault(),o&&0<t?(a.rowIndex=t-1,a.row=u[a.rowIndex]):n&&t<u.length-1?(a.rowIndex=t+1,a.row=u[a.rowIndex]):l&&s?(a.columnIndex=s-1,a.column=i[a.columnIndex]):r&&s<i.length-1&&(a.columnIndex=s+1,a.column=i[a.columnIndex]),k.scrollToRow(a.row,a.column).then(()=>{a.cell=k.getCellElement(a.row,a.column),k.handleSelected(a,e)}),a};return{moveTabSelected(e,t,l){var o=M.editConfig,{afterFullData:r,visibleColumn:n}=O,u=v.value,i=F.value,a=w.value,s=C.value,c=p.value;let d,g,h,m=Object.assign({},e);var e=k.getVTRowIndex(m.row),f=k.getVTColumnIndex(m.column),t=(l.preventDefault(),t?f<=0?0<e&&(g=e-1,d=r[g],h=n.length-1):h=f-1:f>=n.length-1?e<r.length-1&&(g=e+1,d=r[g],h=0):h=f+1,n[h]);t&&(d?(m.rowIndex=g,m.row=d):m.rowIndex=e,m.columnIndex=h,m.column=t,m.cell=k.getCellElement(m.row,m.column),i.isCurrent&&a.isFollowSelected&&k.triggerCurrentRowEvent(l,m),s.isCurrent&&c.isFollowSelected&&k.triggerCurrentColumnEvent(l,m),o?"click"!==u.trigger&&"dblclick"!==u.trigger||("row"===u.mode?k.handleEdit(m,l):k.scrollToRow(m.row,m.column).then(()=>{k.handleSelected(m,l)})):k.scrollToRow(m.row,m.column).then(()=>{k.handleSelected(m,l)}))},moveCurrentRow(e,t,l){var o=M.treeConfig;let r=y.currentRow;var n=O.afterFullData,u=c.value,u=u.children||u.childrenField;let i;if(r?o?({index:o,items:u}=_xeUtils.default.findTree(n,e=>e===r,{children:u}),e&&0<o?i=u[o-1]:t&&o<u.length-1&&(i=u[o+1])):(u=k.getVTRowIndex(r),e&&0<u?i=n[u-1]:t&&u<n.length-1&&(i=n[u+1])):i=n[0],i){l.preventDefault();let e={$table:k,row:i,rowIndex:k.getRowIndex(i),$rowIndex:k.getVMRowIndex(i)};k.scrollToRow(i).then(()=>k.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){var o=y.currentColumn,r=O.visibleColumn;let n=null;if(o?(o=k.getVTColumnIndex(o),e&&0<o?n=r[o-1]:t&&o<r.length-1&&(n=r[o+1])):n=r[0],n){l.preventDefault();let e={$table:k,column:n,columnIndex:k.getColumnIndex(n),$columnIndex:k.getVMColumnIndex(n)};k.scrollToColumn(n).then(()=>k.triggerCurrentColumnEvent(l,e))}},moveArrowSelected(e,t,l,o,r,n){var{highlightCurrentRow:u,highlightCurrentColumn:i}=M,a=F.value,s=w.value,c=C.value,d=p.value,e=g(n,e,t,l,o,r);(a.isCurrent||u)&&(s.isFollowSelected?k.triggerCurrentRowEvent(n,e):(l||r)&&(a.isCurrent||u)&&k.moveCurrentRow(l,r,n)),(c.isCurrent||i)&&(d.isFollowSelected?k.triggerCurrentColumnEvent(n,e):(t||o)&&(c.isCurrent||i)&&k.moveCurrentColumn(t,o,n))},moveEnterSelected(e,t,l,o,r,n){var{highlightCurrentRow:u,highlightCurrentColumn:i}=M,a=F.value,s=w.value,c=C.value,d=p.value,e=g(n,e,t,l,o,r);(a.isCurrent||u)&&s.isFollowSelected&&k.triggerCurrentRowEvent(n,e),(c.isCurrent||i)&&d.isFollowSelected&&k.triggerCurrentColumnEvent(n,e)},moveSelected(e,t,l,o,r,n){g(n,e,t,l,o,r)},handleCellMousedownEvent:(e,t)=>{var{editConfig:l,checkboxConfig:o,mouseConfig:r}=M,n=a.value,u=s.value,i=v.value;if(r&&u.area&&k.triggerCellAreaMousedownEvent)return k.triggerCellAreaMousedownEvent(e,t);o&&n.range&&d(e,t),r&&u.selected&&(l&&"cell"!==i.mode||k.handleSelected(t,e))}}}});
@@ -241,11 +241,10 @@ if(oldScrollYLoad===sYLoad){(0,_util.restoreScrollLocation)($xeTable,targetScrol
241
241
  */const handleInitDefaults=()=>{handleDefaultSort();};const handleTableColumn=()=>{const{scrollXLoad}=reactData;const{visibleColumn,scrollXStore,fullColumnIdData}=internalData;const tableColumn=scrollXLoad?visibleColumn.slice(scrollXStore.startIndex,scrollXStore.endIndex):visibleColumn.slice(0);tableColumn.forEach((column,$index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.$index=$index;}});reactData.tableColumn=tableColumn;};const handleUpdateColumn=()=>{const columnList=_xeUtils.default.orderBy(internalData.collectColumn,'renderSortNumber');internalData.collectColumn=columnList;const tableFullColumn=getColumnList(columnList);internalData.tableFullColumn=tableFullColumn;cacheColumnMap();};const loadScrollXData=()=>{const{isScrollXBig}=reactData;const{mergeBodyList,mergeFooterList,scrollXStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollXStore;const{toVisibleIndex,visibleSize}=handleVirtualXVisible();const offsetItem={startIndex:Math.max(0,isScrollXBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollXBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+offsetSize+preloadSize};scrollXStore.visibleStartIndex=toVisibleIndex-1;scrollXStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList),offsetItem,'col');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollXStore.startIndex=offsetStartIndex;scrollXStore.endIndex=offsetEndIndex;$xeTable.updateScrollXData();}}$xeTable.closeTooltip();};// 获取所有的列,排除分组
242
242
  const getColumnList=columns=>{const result=[];columns.forEach(column=>{result.push(...(column.children&&column.children.length?getColumnList(column.children):[column]));});return result;};const parseColumns=isReset=>{// const { showOverflow } = props
243
243
  // const rowOpts = computeRowOpts.value
244
- const leftList=[];const centerList=[];const rightList=[];const{isGroup,columnStore}=reactData;const virtualXOpts=computeVirtualXOpts.value;const{collectColumn,tableFullColumn,scrollXStore,fullColumnIdData}=internalData;// 如果是分组表头,如果子列全部被隐藏,则根列也隐藏
244
+ const leftList=[];const centerList=[];const rightList=[];const{isGroup,columnStore}=reactData;const{collectColumn,tableFullColumn,scrollXStore,fullColumnIdData}=internalData;// 如果是分组表头,如果子列全部被隐藏,则根列也隐藏
245
245
  if(isGroup){const leftGroupList=[];const centerGroupList=[];const rightGroupList=[];_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const isColGroup=(0,_utils.hasChildrenList)(column);// 如果是分组,必须按组设置固定列,不允许给子列设置固定
246
246
  if(parentColumn&&parentColumn.fixed){column.fixed=parentColumn.fixed;}if(parentColumn&&column.fixed!==parentColumn.fixed){(0,_log.errLog)('vxe.error.groupFixed');}if(isColGroup){column.visible=!!_xeUtils.default.findTree(column.children,subColumn=>(0,_utils.hasChildrenList)(subColumn)?false:subColumn.visible);}else if(column.visible){if(column.fixed==='left'){leftList.push(column);}else if(column.fixed==='right'){rightList.push(column);}else{centerList.push(column);}}});collectColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){leftGroupList.push(column);}else if(column.fixed==='right'){rightGroupList.push(column);}else{centerGroupList.push(column);}}});reactData.tableGroupColumn=leftGroupList.concat(centerGroupList).concat(rightGroupList);}else{// 重新分配列
247
- tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){leftList.push(column);}else if(column.fixed==='right'){rightList.push(column);}else{centerList.push(column);}}});}const visibleColumn=leftList.concat(centerList).concat(rightList);// 如果gt为0,则总是启用
248
- const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<tableFullColumn.length);reactData.hasFixedColumn=leftList.length>0||rightList.length>0;Object.assign(columnStore,{leftList,centerList,rightList});if(scrollXLoad){// if (showOverflow) {
247
+ tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){leftList.push(column);}else if(column.fixed==='right'){rightList.push(column);}else{centerList.push(column);}}});}const visibleColumn=leftList.concat(centerList).concat(rightList);internalData.visibleColumn=visibleColumn;updateColumnOffsetLeft();const sXLoad=updateScrollXStatus();reactData.hasFixedColumn=leftList.length>0||rightList.length>0;Object.assign(columnStore,{leftList,centerList,rightList});if(sXLoad){// if (showOverflow) {
249
248
  // if (!rowOpts.height) {
250
249
  // const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
251
250
  // if (errColumn) {
@@ -261,7 +260,8 @@ const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt==
261
260
  // }
262
261
  if(props.spanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible();scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
263
262
  // 如果列被设置为固定,则清除合并状态
264
- if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}reactData.scrollXLoad=scrollXLoad;visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});internalData.visibleColumn=visibleColumn;handleTableColumn();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnSort=()=>{const{collectColumn}=internalData;collectColumn.forEach((column,index)=>{const sortIndex=index+1;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;});};const handleColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tableFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tableFullColumn;reactData.isColLoading=true;reactData.isDragColMove=false;initColumnSort();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return(0,_vue.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}reactData.isColLoading=false;return $xeTable.recalculate();});});};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const virtualYOpts=computeVirtualYOpts.value;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
263
+ if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnSort=()=>{const{collectColumn}=internalData;collectColumn.forEach((column,index)=>{const sortIndex=index+1;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;});};const handleColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tableFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tableFullColumn;reactData.isColLoading=true;reactData.isDragColMove=false;initColumnSort();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return(0,_vue.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}reactData.isColLoading=false;return $xeTable.recalculate();});});};const updateScrollXStatus=fullColumn=>{const virtualXOpts=computeVirtualXOpts.value;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
264
+ const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const virtualYOpts=computeVirtualYOpts.value;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
265
265
  const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;return scrollYLoad;};/**
266
266
  * 展开与收起树节点
267
267
  * @param rows
@@ -319,7 +319,8 @@ setTimeout(()=>$xeTable.recalculate(),50);});},/**
319
319
  * 加载列配置
320
320
  * 对于表格列需要重载、局部递增场景下可能会用到
321
321
  * @param {ColumnInfo} columns 列配置
322
- */loadColumn(columns){const collectColumn=_xeUtils.default.mapTree(columns,column=>(0,_vue.reactive)(_cell.default.createColumn($xeTable,column)));return handleColumn(collectColumn);},/**
322
+ */loadColumn(columns){const{lastScrollLeft,lastScrollTop}=internalData;const collectColumn=_xeUtils.default.mapTree(columns,column=>(0,_vue.reactive)(_cell.default.createColumn($xeTable,column)));return handleColumn(collectColumn).then(()=>{let targetScrollLeft=lastScrollLeft;let targetScrollTop=lastScrollTop;const virtualXOpts=computeVirtualXOpts.value;const virtualYOpts=computeVirtualYOpts.value;// 是否在更新数据之后自动滚动重置滚动条
323
+ if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop);});},/**
323
324
  * 加载列配置并恢复到初始状态
324
325
  * 对于表格列需要重载、局部递增场景下可能会用到
325
326
  * @param {ColumnInfo} columns 列配置
@@ -446,7 +447,7 @@ if(!targetColumn.fixed&&isMaxFixedColumn){if(_ui.VxeUI.modal){_ui.VxeUI.modal.me
446
447
  */refreshColumn(initSort){if(initSort){handleUpdateColumn();}return parseColumns(true).then(()=>{return tableMethods.refreshScroll();}).then(()=>{return tableMethods.recalculate();});},setRowHeightConf(heightConf){const{fullAllDataRowIdData}=internalData;let status=false;if(heightConf){_xeUtils.default.each(heightConf,(height,rowid)=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const rHeight=_xeUtils.default.toInteger(height);if(rHeight){rowRest.resizeHeight=rHeight;if(!status){status=true;}}}});if(status){internalData.isResizeCellHeight=true;reactData.resizeHeightFlag++;}}return(0,_vue.nextTick)().then(()=>{updateRowOffsetTop();return{status};});},getRowHeightConf(isFull){const{fullAllDataRowIdData,afterFullData}=internalData;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const rest={};afterFullData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const resizeHeight=rowRest.resizeHeight;if(resizeHeight||isFull){const currCellHeight=resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;rest[rowid]=currCellHeight;}}});return rest;},setRowHeight(rowOrId,height){const{fullAllDataRowIdData}=internalData;let status=false;const rows=_xeUtils.default.isArray(rowOrId)?rowOrId:[rowOrId];let rHeight=_xeUtils.default.toInteger(height);if((0,_dom.isScale)(height)){const tableBody=refTableBody.value;const bodyElem=tableBody?tableBody.$el:null;const bodyHeight=bodyElem?bodyElem.clientHeight-1:0;rHeight=Math.floor(rHeight*bodyHeight);}if(rHeight){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);rows.forEach(row=>{const rowid=_xeUtils.default.isString(row)||_xeUtils.default.isNumber(row)?row:handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.resizeHeight=rHeight;if(!status){status=true;}}});if(status){internalData.isResizeCellHeight=true;reactData.resizeHeightFlag++;}}return(0,_vue.nextTick)().then(()=>{return{status};});},getRowHeight(rowOrId){const{fullAllDataRowIdData}=internalData;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const rowid=_xeUtils.default.isString(rowOrId)||_xeUtils.default.isNumber(rowOrId)?rowOrId:(0,_util.getRowid)($xeTable,rowOrId);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;}return 0;},/**
447
448
  * 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
448
449
  */refreshScroll(){const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;return new Promise(resolve=>{// 还原滚动条位置
449
- if(lastScrollLeft||lastScrollTop){return(0,_util.restoreScrollLocation)($xeTable,lastScrollLeft,lastScrollTop).then().then(()=>{// 存在滚动行为未结束情况
450
+ if(lastScrollLeft||lastScrollTop){return(0,_util.restoreScrollLocation)($xeTable,lastScrollLeft,lastScrollTop).then(()=>{// 存在滚动行为未结束情况
450
451
  setTimeout(resolve,10);});}internalData.intoRunScroll=true;// 重置
451
452
  (0,_dom.setScrollTop)(yHandleEl,lastScrollTop);(0,_dom.setScrollTop)(bodyScrollElem,lastScrollTop);(0,_dom.setScrollTop)(leftScrollElem,lastScrollTop);(0,_dom.setScrollTop)(rightScrollElem,lastScrollTop);(0,_dom.setScrollLeft)(xHandleEl,lastScrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,lastScrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,lastScrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,lastScrollLeft);// 存在滚动行为未结束情况
452
453
  setTimeout(()=>{internalData.intoRunScroll=false;resolve();},10);});},/**
@@ -822,7 +823,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
822
823
  * 已废弃,被 getCellElement 替换
823
824
  * @deprecated
824
825
  */getCell(row,column){return tableMethods.getCellElement(row,column);},findRowIndexOf(list,row){return row?_xeUtils.default.findIndexOf(list,item=>$xeTable.eqRow(item,row)):-1;},eqRow(row1,row2){if(row1&&row2){if(row1===row2){return true;}return(0,_util.getRowid)($xeTable,row1)===(0,_util.getRowid)($xeTable,row2);}return false;}};// 检测对应模块是否安装
825
- 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name=>{$xeTable[name]=function(){(0,_log.errLog)('vxe.error.reqModule',['VxeTableExportModule']);};});'clearValidate,fullValidate,validate'.split(',').forEach(name=>{$xeTable[name]=function(){(0,_log.errLog)('vxe.error.reqModule',['VxeTableValidatorModule']);};});Object.assign($xeTable,tableMethods,tablePrivateMethods);/**
826
+ 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name=>{$xeTable[name]=function(){(0,_log.errLog)('vxe.error.reqModule',['Export']);};});'clearValidate,fullValidate,validate'.split(',').forEach(name=>{$xeTable[name]=function(){(0,_log.errLog)('vxe.error.reqModule',['Validator']);};});Object.assign($xeTable,tableMethods,tablePrivateMethods);/**
826
827
  * 渲染浮固定列
827
828
  * 分别渲染左边固定列和右边固定列
828
829
  * 如果宽度足够情况下,则不需要渲染固定列