vxe-table 4.15.7 → 4.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/es/components.js +1 -1
  2. package/es/locale/lang/ar-EG.js +3 -1
  3. package/es/locale/lang/de-DE.js +3 -1
  4. package/es/locale/lang/en-US.js +3 -1
  5. package/es/locale/lang/es-ES.js +3 -1
  6. package/es/locale/lang/fr-FR.js +3 -1
  7. package/es/locale/lang/hu-HU.js +3 -1
  8. package/es/locale/lang/hy-AM.js +3 -1
  9. package/es/locale/lang/id-ID.js +3 -1
  10. package/es/locale/lang/it-IT.js +3 -1
  11. package/es/locale/lang/ja-JP.js +3 -1
  12. package/es/locale/lang/ko-KR.js +3 -1
  13. package/es/locale/lang/ms-MY.js +3 -1
  14. package/es/locale/lang/nb-NO.js +3 -1
  15. package/es/locale/lang/pt-BR.js +3 -1
  16. package/es/locale/lang/ru-RU.js +3 -1
  17. package/es/locale/lang/th-TH.js +3 -1
  18. package/es/locale/lang/ug-CN.js +3 -1
  19. package/es/locale/lang/uk-UA.js +3 -1
  20. package/es/locale/lang/uz-UZ.js +3 -1
  21. package/es/locale/lang/vi-VN.js +3 -1
  22. package/es/locale/lang/zh-CHT.js +3 -1
  23. package/es/locale/lang/zh-CN.js +3 -1
  24. package/es/style.css +1 -1
  25. package/es/table/src/body.js +3 -3
  26. package/es/table/src/footer.js +1 -1
  27. package/es/table/src/header.js +2 -2
  28. package/es/table/src/table.js +23 -34
  29. package/es/ui/index.js +1 -1
  30. package/es/ui/src/log.js +1 -1
  31. package/lib/components.js +17 -18
  32. package/lib/components.min.js +1 -1
  33. package/lib/index.common.js +1 -2
  34. package/lib/index.umd.js +1936 -1832
  35. package/lib/index.umd.min.js +1 -1
  36. package/lib/locale/lang/ar-EG.js +3 -1
  37. package/lib/locale/lang/ar-EG.min.js +1 -1
  38. package/lib/locale/lang/ar-EG.umd.js +3 -1
  39. package/lib/locale/lang/de-DE.js +3 -1
  40. package/lib/locale/lang/de-DE.min.js +1 -1
  41. package/lib/locale/lang/de-DE.umd.js +3 -1
  42. package/lib/locale/lang/en-US.js +3 -1
  43. package/lib/locale/lang/en-US.min.js +1 -1
  44. package/lib/locale/lang/en-US.umd.js +3 -1
  45. package/lib/locale/lang/es-ES.js +3 -1
  46. package/lib/locale/lang/es-ES.min.js +1 -1
  47. package/lib/locale/lang/es-ES.umd.js +3 -1
  48. package/lib/locale/lang/fr-FR.js +3 -1
  49. package/lib/locale/lang/fr-FR.min.js +1 -1
  50. package/lib/locale/lang/fr-FR.umd.js +3 -1
  51. package/lib/locale/lang/hu-HU.js +3 -1
  52. package/lib/locale/lang/hu-HU.min.js +1 -1
  53. package/lib/locale/lang/hu-HU.umd.js +3 -1
  54. package/lib/locale/lang/hy-AM.js +3 -1
  55. package/lib/locale/lang/hy-AM.min.js +1 -1
  56. package/lib/locale/lang/hy-AM.umd.js +3 -1
  57. package/lib/locale/lang/id-ID.js +3 -1
  58. package/lib/locale/lang/id-ID.min.js +1 -1
  59. package/lib/locale/lang/id-ID.umd.js +3 -1
  60. package/lib/locale/lang/it-IT.js +3 -1
  61. package/lib/locale/lang/it-IT.min.js +1 -1
  62. package/lib/locale/lang/it-IT.umd.js +3 -1
  63. package/lib/locale/lang/ja-JP.js +3 -1
  64. package/lib/locale/lang/ja-JP.min.js +1 -1
  65. package/lib/locale/lang/ja-JP.umd.js +3 -1
  66. package/lib/locale/lang/ko-KR.js +3 -1
  67. package/lib/locale/lang/ko-KR.min.js +1 -1
  68. package/lib/locale/lang/ko-KR.umd.js +3 -1
  69. package/lib/locale/lang/ms-MY.js +3 -1
  70. package/lib/locale/lang/ms-MY.min.js +1 -1
  71. package/lib/locale/lang/ms-MY.umd.js +3 -1
  72. package/lib/locale/lang/nb-NO.js +3 -1
  73. package/lib/locale/lang/nb-NO.min.js +1 -1
  74. package/lib/locale/lang/nb-NO.umd.js +3 -1
  75. package/lib/locale/lang/pt-BR.js +3 -1
  76. package/lib/locale/lang/pt-BR.min.js +1 -1
  77. package/lib/locale/lang/pt-BR.umd.js +3 -1
  78. package/lib/locale/lang/ru-RU.js +3 -1
  79. package/lib/locale/lang/ru-RU.min.js +1 -1
  80. package/lib/locale/lang/ru-RU.umd.js +3 -1
  81. package/lib/locale/lang/th-TH.js +3 -1
  82. package/lib/locale/lang/th-TH.min.js +1 -1
  83. package/lib/locale/lang/th-TH.umd.js +3 -1
  84. package/lib/locale/lang/ug-CN.js +3 -1
  85. package/lib/locale/lang/ug-CN.min.js +1 -1
  86. package/lib/locale/lang/ug-CN.umd.js +3 -1
  87. package/lib/locale/lang/uk-UA.js +3 -1
  88. package/lib/locale/lang/uk-UA.min.js +1 -1
  89. package/lib/locale/lang/uk-UA.umd.js +3 -1
  90. package/lib/locale/lang/uz-UZ.js +3 -1
  91. package/lib/locale/lang/uz-UZ.min.js +1 -1
  92. package/lib/locale/lang/uz-UZ.umd.js +3 -1
  93. package/lib/locale/lang/vi-VN.js +3 -1
  94. package/lib/locale/lang/vi-VN.min.js +1 -1
  95. package/lib/locale/lang/vi-VN.umd.js +3 -1
  96. package/lib/locale/lang/zh-CHT.js +3 -1
  97. package/lib/locale/lang/zh-CHT.min.js +1 -1
  98. package/lib/locale/lang/zh-CHT.umd.js +3 -1
  99. package/lib/locale/lang/zh-CN.js +3 -1
  100. package/lib/locale/lang/zh-CN.min.js +1 -1
  101. package/lib/locale/lang/zh-CN.umd.js +3 -1
  102. package/lib/style.css +1 -1
  103. package/lib/table/src/body.js +3 -2
  104. package/lib/table/src/body.min.js +1 -1
  105. package/lib/table/src/footer.js +1 -1
  106. package/lib/table/src/footer.min.js +1 -1
  107. package/lib/table/src/header.js +3 -2
  108. package/lib/table/src/header.min.js +1 -1
  109. package/lib/table/src/table.js +13 -11
  110. package/lib/table/src/table.min.js +1 -1
  111. package/lib/ui/index.js +1 -1
  112. package/lib/ui/index.min.js +1 -1
  113. package/lib/ui/src/log.js +1 -1
  114. package/lib/ui/src/log.min.js +1 -1
  115. package/lib/v-x-e-table/index.js +1 -2
  116. package/lib/v-x-e-table/index.min.js +1 -1
  117. package/lib/vxe-colgroup/index.js +1 -2
  118. package/lib/vxe-colgroup/index.min.js +1 -1
  119. package/lib/vxe-column/index.js +1 -2
  120. package/lib/vxe-column/index.min.js +1 -1
  121. package/lib/vxe-grid/index.js +1 -2
  122. package/lib/vxe-grid/index.min.js +1 -1
  123. package/lib/vxe-table/index.js +1 -2
  124. package/lib/vxe-table/index.min.js +1 -1
  125. package/lib/vxe-toolbar/index.js +1 -2
  126. package/lib/vxe-toolbar/index.min.js +1 -1
  127. package/lib/vxe-ui/index.js +1 -2
  128. package/lib/vxe-ui/index.min.js +1 -1
  129. package/lib/vxe-v-x-e-table/index.js +1 -2
  130. package/lib/vxe-v-x-e-table/index.min.js +1 -1
  131. package/package.json +1 -1
  132. package/packages/components.ts +1 -1
  133. package/packages/grid/src/grid.ts +2 -2
  134. package/packages/locale/lang/ar-EG.ts +3 -1
  135. package/packages/locale/lang/de-DE.ts +3 -1
  136. package/packages/locale/lang/en-US.ts +3 -1
  137. package/packages/locale/lang/es-ES.ts +3 -1
  138. package/packages/locale/lang/fr-FR.ts +3 -1
  139. package/packages/locale/lang/hu-HU.ts +3 -1
  140. package/packages/locale/lang/hy-AM.ts +3 -1
  141. package/packages/locale/lang/id-ID.ts +3 -1
  142. package/packages/locale/lang/it-IT.ts +3 -1
  143. package/packages/locale/lang/ja-JP.ts +3 -1
  144. package/packages/locale/lang/ko-KR.ts +3 -1
  145. package/packages/locale/lang/ms-MY.ts +3 -1
  146. package/packages/locale/lang/nb-NO.ts +3 -1
  147. package/packages/locale/lang/pt-BR.ts +3 -1
  148. package/packages/locale/lang/ru-RU.ts +3 -1
  149. package/packages/locale/lang/th-TH.ts +3 -1
  150. package/packages/locale/lang/ug-CN.ts +3 -1
  151. package/packages/locale/lang/uk-UA.ts +3 -1
  152. package/packages/locale/lang/uz-UZ.ts +3 -1
  153. package/packages/locale/lang/vi-VN.ts +3 -1
  154. package/packages/locale/lang/zh-CHT.ts +3 -1
  155. package/packages/locale/lang/zh-CN.ts +3 -1
  156. package/packages/table/src/body.ts +3 -3
  157. package/packages/table/src/footer.ts +1 -1
  158. package/packages/table/src/header.ts +2 -2
  159. package/packages/table/src/table.ts +22 -35
  160. /package/es/{iconfont.1755066378525.ttf → iconfont.1755430044836.ttf} +0 -0
  161. /package/es/{iconfont.1755066378525.woff → iconfont.1755430044836.woff} +0 -0
  162. /package/es/{iconfont.1755066378525.woff2 → iconfont.1755430044836.woff2} +0 -0
  163. /package/lib/{iconfont.1755066378525.ttf → iconfont.1755430044836.ttf} +0 -0
  164. /package/lib/{iconfont.1755066378525.woff → iconfont.1755430044836.woff} +0 -0
  165. /package/lib/{iconfont.1755066378525.woff2 → iconfont.1755430044836.woff2} +0 -0
@@ -146,6 +146,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
146
146
  } = tableProps;
147
147
  const {
148
148
  tableData,
149
+ tableColumn,
149
150
  dragRow,
150
151
  overflowX,
151
152
  overflowY,
@@ -389,9 +390,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
389
390
  let isVNPreEmptyStatus = false;
390
391
  if (!isMergeCell) {
391
392
  if (!dragRow || (0, _util.getRowid)($xeTable, dragRow) !== rowid) {
392
- if (overflowY && scrollYLoad && !treeConfig && !virtualYOpts.immediate && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
393
+ if (overflowY && scrollYLoad && tableData.length > 16 && !treeConfig && !virtualYOpts.immediate && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
393
394
  isVNPreEmptyStatus = true;
394
- } else if (overflowX && scrollXLoad && !virtualXOpts.immediate && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
395
+ } else if (overflowX && scrollXLoad && tableColumn.length > 10 && !virtualXOpts.immediate && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
395
396
  isVNPreEmptyStatus = true;
396
397
  }
397
398
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(O){let Ye=(0,_vue.inject)("$xeTable",{}),{xID:S,props:Ke,context:M,reactData:Je,internalData:Qe}=Ye,{computeEditOpts:Ze,computeMouseOpts:el,computeCellOffsetWidth:ll,computeAreaOpts:tl,computeDefaultRowHeight:al,computeEmptyOpts:T,computeTooltipOpts:rl,computeRadioOpts:e,computeExpandOpts:te,computeTreeOpts:c,computeCheckboxOpts:ol,computeCellOpts:il,computeValidOpts:sl,computeRowOpts:nl,computeColumnOpts:dl,computeRowDragOpts:ul,computeResizableOpts:cl,computeVirtualXOpts:pl,computeVirtualYOpts:vl}=Ye.getComputeMaps(),k=(0,_vue.ref)(),z=(0,_vue.ref)(),$=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),gl=()=>{var e=Ke.delayHover,{lastScrollTime:l,isDragResize:t}=Je;return!!(t||l&&Date.now()<l+e)},xl=(e,l,t)=>{var a=l.column,r=Qe.afterFullData,o=Ke.treeConfig,i=c.value,{slots:a,treeNode:s}=a,n=Qe.fullAllDataRowIdData;if(a&&a.line)return Ye.callSlot(a.line,l);a=n[e];let d=0,u=null;return a&&(d=a.level,u=a.items[a.treeIndex-1]),o&&s&&(i.showLine||i.line)?[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${(0,_util.getRowid)(Ye,r[0])===e?1:(0,_util.calcTreeLine)(l,u)}px`,bottom:`-${Math.floor(t/2)}px`,left:d*i.indent+(d?2-(0,_util.getOffsetSize)(Ye):0)+16+"px"}})])]:[]},re=(e,l,t,A,H,a,F,j,r,o,L,N,U)=>{var i=Ye.xeGrid,{columnKey:B,resizable:s,showOverflow:n,border:W,height:d,treeConfig:V,cellClassName:G,cellStyle:P,align:u,spanMethod:X,mouseConfig:Y,editConfig:K,editRules:c,tooltipConfig:p,padding:v}=Ke,{tableData:g,dragRow:J,overflowX:Q,overflowY:Z,currentColumn:ee,scrollXLoad:le,scrollYLoad:te,mergeBodyFlag:ae,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:re,editStore:oe,isAllOverflow:ie,validErrorMaps:se}=Je,{fullAllDataRowIdData:ne,fullColumnIdData:m,mergeBodyCellMaps:de,visibleColumn:ue,afterFullData:ce,mergeBodyList:pe,scrollXStore:ve,scrollYStore:ge}=Qe,w=il.value,_=sl.value,f=ol.value,xe=Ze.value,b=rl.value,he=cl.value,me=pl.value,we=vl.value,{isAllColumnDrag:he,isAllRowDrag:_e}=he,y=nl.value,C=ul.value,fe=al.value,x=x?w.height||y.height:0,{disabledMethod:E,isCrossDrag:be,isPeerDrag:ye}=C,Ce=dl.value,Ee=el.value,Re=tl.value,De=ll.value,Re=Re.selectCellToRow,{type:Ie,cellRender:Oe,editRender:Se,align:Me,showOverflow:R,className:Te,treeNode:ke,rowResize:ze,padding:D,verticalAlign:I,slots:$e}=o,qe=w.verticalAlign,oe=oe.actived,Ae=ne[l]||{},O=o.id,m=m[O]||{},S=Se||Oe,S=S?renderer.get(S.name):null,He=S?S.tableCellClassName||S.cellClassName:null,Fe=S?S.tableCellStyle||S.cellStyle:"";let je=b.showAll;var Le=m.index,b=m._index,m=(0,_utils.isEnableConf)(Se),h=h?Ae.resizeHeight:0;let M=Q&&(t?o.fixed!==t:!!o.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(R)?n:R,n="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;R=ie||T||k||n,D=_xeUtils.default.isBoolean(o.resizable)?o.resizable:Ce.resizable||s,s=!!x,x=0<h;let Ne;h={},Me=Me||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?qe:I,u=se[l+":"+O],qe=c&&_.showMessage&&("default"===_.message?d||1<g.length:"inline"===_.message),I={colid:O};let z={$table:Ye,$grid:i,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:F,$rowIndex:j,_rowIndex:r,column:o,columnIndex:Le,$columnIndex:L,_columnIndex:b,fixed:t,type:renderType,isHidden:!!M,level:H,visibleData:ce,data:g,items:U},$=!1,Ue=!1,q=(($=y.drag?"row"===C.trigger||o.dragSort&&"cell"===C.trigger:$)&&(Ue=!(!E||!E(z))),(T||k||je||p)&&(h.onMouseenter=e=>{gl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,o):(k||je)&&Ye.triggerBodyTooltipEvent(e,z),Ye.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},z),e))}),(k||je||p)&&(h.onMouseleave=e=>{gl()||((k||je)&&Ye.handleTargetLeaveEvent(e),Ye.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},z),e))}),($||f.range||Y)&&(h.onMousedown=e=>{Ye.triggerCellMousedownEvent(e,z)}),$&&(h.onMouseup=Ye.triggerCellMouseupEvent),h.onClick=e=>{Ye.triggerCellClickEvent(e,z)},!(h.onDblclick=e=>{Ye.triggerCellDblclickEvent(e,z)})),Be=1,We=1;if(ae&&pe.length){se=de[r+":"+b];if(se){var{rowspan:c,colspan:d}=se;if(!c||!d)return renderEmptyElement(Ye);1<c&&(q=!0,We=c,I.rowspan=c),1<d&&(q=!0,Be=d,I.colspan=d)}}else if(X){var{rowspan:i=1,colspan:e=1}=X(z)||{};if(!i||!e)return renderEmptyElement(Ye);1<i&&(q=!0,We=i,I.rowspan=i),1<e&&(q=!0,Be=e,I.colspan=e)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&K&&(Se||Oe)&&(xe.showStatus||xe.showUpdateStatus)&&(Ne=Ye.isUpdateByRow(a,o.field));F=!R&&(te||le);let Ve=(0,_util.getCellRestHeight)(Ae,w,y,fe);j=L===N.length-1,g=!o.resizeWidth&&("auto"===o.minWidth||"auto"===o.width);let Ge=!1;q||J&&(0,_util.getRowid)(Ye,J)===l||(Z&&te&&!V&&!we.immediate&&(r<ge.visibleStartIndex-ge.preloadSize||r>ge.visibleEndIndex+ge.preloadSize)||Q&&le&&!me.immediate&&!o.fixed&&(b<ve.visibleStartIndex-ve.preloadSize||b>ve.visibleEndIndex+ve.preloadSize))&&(Ge=!0),1<We&&(U=ce[r+We-1])&&(C=ne[(0,_util.getRowid)(Ye,U)])&&(Ve+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,fe)-Ae.oTop-(0,_util.getCellRestHeight)(Ae,w,y,fe));E={};if(R&&re){let l=0;if(1<Be)for(let e=1;e<Be;e++){var Pe=ue[Le+e];Pe&&(l+=Pe.renderWidth)}E.width=o.renderWidth+l-De+"px"}te||le||R||s||x?E.height=Ve+"px":E.minHeight=Ve+"px";p=[];M&&ie?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":n}],style:E})):(V&&p.push(...xl(l,z,Ve)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":n}],style:E,title:T?Ye.getCellLabel(a,o):null},Ge?[]:[(0,_vue.h)("div",{colid:O,rowid:l,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},o.renderCell(z))])),qe&&u&&(f=u.rule,ae=$e?$e.valid:null,pe=Object.assign(Object.assign(Object.assign({},z),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,pe)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[ae?Ye.callSlot(ae,pe):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Xe=!1;return Y&&Ee.area&&!b&&Re&&(Xe=!0),!M&&D&&he&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Ye.handleColResizeMousedownEvent(e,t,z),onDblclick:e=>Ye.handleColResizeDblclickEvent(e,z)})),(ze||_e)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Ye.handleRowResizeMousedownEvent(e,z),onDblclick:e=>Ye.handleRowResizeDblclickEvent(e,z)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",Me?"col--"+Me:"",Ie?"col--"+Ie:"",{"col--last":j,"col--tree-node":ke,"col--edit":m,"col--ellipsis":R,"col--cs-height":s,"col--rs-height":x,"col--to-row":Xe,"col--auto-height":F,"fixed--width":!g,"fixed--hidden":M,"is--padding":v,"is--progress":M&&ie||Ge,"is--drag-cell":$&&(be||ye||!H),"is--drag-disabled":Ue,"col--dirty":Ne,"col--active":K&&m&&oe.row===a&&(oe.column===o||"row"===xe.mode),"col--valid-error":!!u,"col--current":ee===o},(0,_dom.getPropClass)(He,z),(0,_dom.getPropClass)(Te,z),(0,_dom.getPropClass)(G,z)],key:B||le||te||Ce.useKey||y.useKey||Ce.drag?O:L},I),{style:Object.assign({},_xeUtils.default.isFunction(Fe)?Fe(z):Fe,_xeUtils.default.isFunction(P)?P(z):P)}),h),A&&M?[]:p)},ae=(h,m,w,_)=>{let f=Ye.xeGrid,{stripe:b,rowKey:y,highlightHoverRow:C,rowClassName:E,rowStyle:R,editConfig:D,treeConfig:I}=Ke,{hasFixedColumn:O,treeExpandedFlag:S,scrollXLoad:M,scrollYLoad:T,isAllOverflow:k,rowExpandedFlag:z,expandColumn:$,selectRadioRow:q,pendingRowFlag:A,rowExpandHeightFlag:H,isRowGroupStatus:F}=Je,{fullAllDataRowIdData:j,fullColumnIdData:L,treeExpandedMaps:N,pendingRowMaps:U,rowExpandedMaps:B}=Qe,W=ol.value,V=e.value,G=c.value,P=Ze.value,X=nl.value,Q=dl.value,{transform:Y,seqMode:K}=G,Z=G.children||G.childrenField,J=[],ee=(0,_util.createHandleGetRowId)(Ye).handleGetRowId,le=I||F;return w.forEach((a,r)=>{let o=ee(a);var i=j[o]||{};let s=r,n=0,d=-1,u=-1;var c=F&&a.isAggregate,p={},v=((X.isHover||C)&&(p.onMouseenter=e=>{gl()||Ye.triggerHoverEvent(e,{row:a,rowIndex:s})},p.onMouseleave=()=>{gl()||Ye.clearHoverRow()}),i&&(s=i.index,u=i._index,n=i.level,d=i.seq,c||I&&Y&&"increasing"===K?d=i._index+1:I&&"fixed"===K&&(d=i._tIndex+1)),{$table:Ye,seq:d,rowid:o,fixed:h,type:renderType,level:n,row:a,rowIndex:s,$rowIndex:r,_rowIndex:u}),g=$&&!!z&&!!B[o];let e=!1,l=[],t=!1;D&&(t=Ye.isInsertByRow(a)),!I||T||Y||(l=a[Z],e=!!S&&l&&0<l.length&&!!N[o]),!X.drag||F||I&&!Y||(p.onDragstart=Ye.handleRowDragDragstartEvent,p.onDragend=Ye.handleRowDragDragendEvent,p.onDragover=Ye.handleRowDragDragoverEvent);var c=["vxe-body--row",le?"row--level-"+n:"",{"row--stripe":b&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":V.highlight&&Ye.eqRow(q,a),"row--checked":W.highlight&&Ye.isCheckedByCheckboxRow(a),"row--pending":!!A&&!!U[o],"row--group":c},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>re(d,o,h,m,n,a,s,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:R?_xeUtils.default.isFunction(R)?R(v):R:null,key:y||M||T||X.useKey||X.drag||Q.drag||F||I?o:r},p),x)),g){var{height:c,padding:v,mode:p}=te.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${H?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),I&&(x.paddingLeft=n*G.indent+30+"px"),$||{}).showOverflow,p=$.id,i=L[p]||{},p=_xeUtils.default.eqNull(g)?k:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$grid:f,$table:Ye,seq:d,column:$,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,type:renderType,level:n,row:a,rowid:o,rowIndex:s,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!O,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[$.renderData(g)])])]))}}e&&J.push(...ae(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=O.fixedType,l=Qe.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=k,l[e+"scroll"]=z,l[e+"table"]=$,l[e+"colgroup"]=q,l[e+"list"]=A,l[e+"xSpace"]=H,l[e+"ySpace"]=F,l[e+"emptyBlock"]=j})}),(0,_vue.onUnmounted)(()=>{var e=O.fixedType,l=Qe.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{var e=M.slots,l=Ye.xeGrid;let{fixedColumn:t,fixedType:a,tableColumn:r}=O;var{spanMethod:o,footerSpanMethod:i,mouseConfig:s}=Ke,{isGroup:n,tableData:d,isColLoading:u,overflowX:c,scrollXLoad:p,scrollYLoad:v,isAllOverflow:g,expandColumn:x,dragRow:h,dragCol:m}=Je,{visibleColumn:w,fullAllDataRowIdData:_,fullColumnIdData:f}=Qe,b=T.value,y=el.value,C=te.value;let E=d,R=r,D=!1;!(p||v||g)||x&&"fixed"!==C.mode||o||i||(D=!0),u||!a&&c||(R=w),a&&D&&(R=t||[]),v&&h&&2<E.length&&(d=_[(0,_util.getRowid)(Ye,h)])&&(g=d._index,x=E[0],C=E[E.length-1],o=_[(0,_util.getRowid)(Ye,x)],i=_[(0,_util.getRowid)(Ye,C)],o)&&i&&(u=o._index,c=i._index,g<u?E=[h].concat(E):c<g&&(E=E.concat([h]))),a||n||p&&m&&2<R.length&&(w=f[m.id])&&(v=w._index,d=R[0],x=R[R.length-1],_=f[d.id],C=f[x.id],_)&&C&&(o=_._index,i=C._index,v<o?R=[m].concat(R):i<v&&(R=R.concat([m])));let I;u=e?e.empty:null,c={$table:Ye,$grid:l},I=u?Ye.callSlot(u,c):(h=(g=b.name?renderer.get(b.name):null)?g.renderTableEmpty||g.renderTableEmptyView||g.renderEmpty:null)?(0,_vn.getSlotVNs)(h(b,c)):Ke.emptyText||getI18n("vxe.table.emptyText"),n={onScroll(e){Ye.triggerBodyScrollEvent(e,a)}};return(0,_vue.h)("div",{ref:k,class:["vxe-table--body-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],xid:S},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},n),[a?renderEmptyElement(Ye):(0,_vue.h)("div",{ref:H,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:F,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:$,class:"vxe-table--body",xid:S,cellspacing:0,cellpadding:0,border:0,xvm:D?"1":null},[(0,_vue.h)("colgroup",{ref:q},R.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:A},ae(a,D,E,R))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&y.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},y.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Ye.triggerCellAreaExtendMousedownEvent&&Ye.triggerCellAreaExtendMousedownEvent(e,{$table:Ye,fixed:a,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Ye),a?renderEmptyElement(Ye):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:j},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},I)])])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(O){let Ke=(0,_vue.inject)("$xeTable",{}),{xID:S,props:Je,context:M,reactData:Qe,internalData:Ze}=Ke,{computeEditOpts:el,computeMouseOpts:ll,computeCellOffsetWidth:tl,computeAreaOpts:al,computeDefaultRowHeight:rl,computeEmptyOpts:T,computeTooltipOpts:ol,computeRadioOpts:e,computeExpandOpts:te,computeTreeOpts:c,computeCheckboxOpts:il,computeCellOpts:sl,computeValidOpts:nl,computeRowOpts:dl,computeColumnOpts:ul,computeRowDragOpts:cl,computeResizableOpts:pl,computeVirtualXOpts:vl,computeVirtualYOpts:gl}=Ke.getComputeMaps(),k=(0,_vue.ref)(),z=(0,_vue.ref)(),$=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),xl=()=>{var e=Je.delayHover,{lastScrollTime:l,isDragResize:t}=Qe;return!!(t||l&&Date.now()<l+e)},hl=(e,l,t)=>{var a=l.column,r=Ze.afterFullData,o=Je.treeConfig,i=c.value,{slots:a,treeNode:s}=a,n=Ze.fullAllDataRowIdData;if(a&&a.line)return Ke.callSlot(a.line,l);a=n[e];let d=0,u=null;return a&&(d=a.level,u=a.items[a.treeIndex-1]),o&&s&&(i.showLine||i.line)?[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${(0,_util.getRowid)(Ke,r[0])===e?1:(0,_util.calcTreeLine)(l,u)}px`,bottom:`-${Math.floor(t/2)}px`,left:d*i.indent+(d?2-(0,_util.getOffsetSize)(Ke):0)+16+"px"}})])]:[]},re=(e,l,t,A,H,a,F,j,r,o,L,N,U)=>{var i=Ke.xeGrid,{columnKey:B,resizable:s,showOverflow:n,border:W,height:d,treeConfig:V,cellClassName:G,cellStyle:P,align:u,spanMethod:X,mouseConfig:Y,editConfig:K,editRules:c,tooltipConfig:p,padding:v}=Je,{tableData:J,tableColumn:Q,dragRow:Z,overflowX:ee,overflowY:le,currentColumn:te,scrollXLoad:ae,scrollYLoad:re,mergeBodyFlag:g,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:oe,editStore:ie,isAllOverflow:se,validErrorMaps:ne}=Qe,{fullAllDataRowIdData:de,fullColumnIdData:m,mergeBodyCellMaps:ue,visibleColumn:ce,afterFullData:pe,mergeBodyList:ve,scrollXStore:ge,scrollYStore:xe}=Ze,w=sl.value,_=nl.value,f=il.value,he=el.value,b=ol.value,me=pl.value,we=vl.value,_e=gl.value,{isAllColumnDrag:me,isAllRowDrag:fe}=me,y=dl.value,C=cl.value,be=rl.value,x=x?w.height||y.height:0,{disabledMethod:E,isCrossDrag:ye,isPeerDrag:Ce}=C,Ee=ul.value,Re=ll.value,De=al.value,Ie=tl.value,De=De.selectCellToRow,{type:Oe,cellRender:Se,editRender:Me,align:Te,showOverflow:R,className:ke,treeNode:ze,rowResize:$e,padding:D,verticalAlign:I,slots:qe}=o,Ae=w.verticalAlign,ie=ie.actived,He=de[l]||{},O=o.id,m=m[O]||{},S=Me||Se,S=S?renderer.get(S.name):null,Fe=S?S.tableCellClassName||S.cellClassName:null,je=S?S.tableCellStyle||S.cellStyle:"";let Le=b.showAll;var Ne=m.index,b=m._index,m=(0,_utils.isEnableConf)(Me),h=h?He.resizeHeight:0;let M=ee&&(t?o.fixed!==t:!!o.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(R)?n:R,n="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;R=se||T||k||n,D=_xeUtils.default.isBoolean(o.resizable)?o.resizable:Ee.resizable||s,s=!!x,x=0<h;let Ue;h={},Te=Te||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?Ae:I,u=ne[l+":"+O],Ae=c&&_.showMessage&&("default"===_.message?d||1<J.length:"inline"===_.message),I={colid:O};let z={$table:Ke,$grid:i,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:F,$rowIndex:j,_rowIndex:r,column:o,columnIndex:Ne,$columnIndex:L,_columnIndex:b,fixed:t,type:renderType,isHidden:!!M,level:H,visibleData:pe,data:J,items:U},$=!1,Be=!1,q=(($=y.drag?"row"===C.trigger||o.dragSort&&"cell"===C.trigger:$)&&(Be=!(!E||!E(z))),(T||k||Le||p)&&(h.onMouseenter=e=>{xl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,o):(k||Le)&&Ke.triggerBodyTooltipEvent(e,z),Ke.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},z),e))}),(k||Le||p)&&(h.onMouseleave=e=>{xl()||((k||Le)&&Ke.handleTargetLeaveEvent(e),Ke.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},z),e))}),($||f.range||Y)&&(h.onMousedown=e=>{Ke.triggerCellMousedownEvent(e,z)}),$&&(h.onMouseup=Ke.triggerCellMouseupEvent),h.onClick=e=>{Ke.triggerCellClickEvent(e,z)},!(h.onDblclick=e=>{Ke.triggerCellDblclickEvent(e,z)})),We=1,Ve=1;if(g&&ve.length){ne=ue[r+":"+b];if(ne){var{rowspan:c,colspan:d}=ne;if(!c||!d)return renderEmptyElement(Ke);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(X){var{rowspan:i=1,colspan:e=1}=X(z)||{};if(!i||!e)return renderEmptyElement(Ke);1<i&&(q=!0,Ve=i,I.rowspan=i),1<e&&(q=!0,We=e,I.colspan=e)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&K&&(Me||Se)&&(he.showStatus||he.showUpdateStatus)&&(Ue=Ke.isUpdateByRow(a,o.field));F=!R&&(re||ae);let Ge=(0,_util.getCellRestHeight)(He,w,y,be);j=L===N.length-1,U=!o.resizeWidth&&("auto"===o.minWidth||"auto"===o.width);let Pe=!1;q||Z&&(0,_util.getRowid)(Ke,Z)===l||(le&&re&&16<J.length&&!V&&!_e.immediate&&(r<xe.visibleStartIndex-xe.preloadSize||r>xe.visibleEndIndex+xe.preloadSize)||ee&&ae&&10<Q.length&&!we.immediate&&!o.fixed&&(b<ge.visibleStartIndex-ge.preloadSize||b>ge.visibleEndIndex+ge.preloadSize))&&(Pe=!0),1<Ve&&(C=pe[r+Ve-1])&&(E=de[(0,_util.getRowid)(Ke,C)])&&(Ge+=E.oTop+(0,_util.getCellRestHeight)(E,w,y,be)-He.oTop-(0,_util.getCellRestHeight)(He,w,y,be));p={};if(R&&oe){let l=0;if(1<We)for(let e=1;e<We;e++){var Xe=ce[Ne+e];Xe&&(l+=Xe.renderWidth)}p.width=o.renderWidth+l-Ie+"px"}re||ae||R||s||x?p.height=Ge+"px":p.minHeight=Ge+"px";f=[];M&&se?f.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":n}],style:p})):(V&&f.push(...hl(l,z,Ge)),f.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":n}],style:p,title:T?Ke.getCellLabel(a,o):null},Pe?[]:[(0,_vue.h)("div",{colid:O,rowid:l,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},o.renderCell(z))])),Ae&&u&&(g=u.rule,ve=qe?qe.valid:null,ue=Object.assign(Object.assign(Object.assign({},z),u),{rule:u}),f.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ue)],style:g&&g.maxWidth?{width:g.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[ve?Ke.callSlot(ve,ue):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ye=!1;return Y&&Re.area&&!b&&De&&(Ye=!0),!M&&D&&me&&f.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Ke.handleColResizeMousedownEvent(e,t,z),onDblclick:e=>Ke.handleColResizeDblclickEvent(e,z)})),($e||fe)&&y.resizable&&f.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Ke.handleRowResizeMousedownEvent(e,z),onDblclick:e=>Ke.handleRowResizeDblclickEvent(e,z)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",Te?"col--"+Te:"",Oe?"col--"+Oe:"",{"col--last":j,"col--tree-node":ze,"col--edit":m,"col--ellipsis":R,"col--cs-height":s,"col--rs-height":x,"col--to-row":Ye,"col--auto-height":F,"fixed--width":!U,"fixed--hidden":M,"is--padding":v,"is--progress":M&&se||Pe,"is--drag-cell":$&&(ye||Ce||!H),"is--drag-disabled":Be,"col--dirty":Ue,"col--active":K&&m&&ie.row===a&&(ie.column===o||"row"===he.mode),"col--valid-error":!!u,"col--current":te===o},(0,_dom.getPropClass)(Fe,z),(0,_dom.getPropClass)(ke,z),(0,_dom.getPropClass)(G,z)],key:B||ae||re||Ee.useKey||y.useKey||Ee.drag?O:L},I),{style:Object.assign({},_xeUtils.default.isFunction(je)?je(z):je,_xeUtils.default.isFunction(P)?P(z):P)}),h),A&&M?[]:f)},ae=(h,m,w,_)=>{let f=Ke.xeGrid,{stripe:b,rowKey:y,highlightHoverRow:C,rowClassName:E,rowStyle:R,editConfig:D,treeConfig:I}=Je,{hasFixedColumn:O,treeExpandedFlag:S,scrollXLoad:M,scrollYLoad:T,isAllOverflow:k,rowExpandedFlag:z,expandColumn:$,selectRadioRow:q,pendingRowFlag:A,rowExpandHeightFlag:H,isRowGroupStatus:F}=Qe,{fullAllDataRowIdData:j,fullColumnIdData:L,treeExpandedMaps:N,pendingRowMaps:U,rowExpandedMaps:B}=Ze,W=il.value,V=e.value,G=c.value,P=el.value,X=dl.value,Q=ul.value,{transform:Y,seqMode:K}=G,Z=G.children||G.childrenField,J=[],ee=(0,_util.createHandleGetRowId)(Ke).handleGetRowId,le=I||F;return w.forEach((a,r)=>{let o=ee(a);var i=j[o]||{};let s=r,n=0,d=-1,u=-1;var c=F&&a.isAggregate,p={},v=((X.isHover||C)&&(p.onMouseenter=e=>{xl()||Ke.triggerHoverEvent(e,{row:a,rowIndex:s})},p.onMouseleave=()=>{xl()||Ke.clearHoverRow()}),i&&(s=i.index,u=i._index,n=i.level,d=i.seq,c||I&&Y&&"increasing"===K?d=i._index+1:I&&"fixed"===K&&(d=i._tIndex+1)),{$table:Ke,seq:d,rowid:o,fixed:h,type:renderType,level:n,row:a,rowIndex:s,$rowIndex:r,_rowIndex:u}),g=$&&!!z&&!!B[o];let e=!1,l=[],t=!1;D&&(t=Ke.isInsertByRow(a)),!I||T||Y||(l=a[Z],e=!!S&&l&&0<l.length&&!!N[o]),!X.drag||F||I&&!Y||(p.onDragstart=Ke.handleRowDragDragstartEvent,p.onDragend=Ke.handleRowDragDragendEvent,p.onDragover=Ke.handleRowDragDragoverEvent);var c=["vxe-body--row",le?"row--level-"+n:"",{"row--stripe":b&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":V.highlight&&Ke.eqRow(q,a),"row--checked":W.highlight&&Ke.isCheckedByCheckboxRow(a),"row--pending":!!A&&!!U[o],"row--group":c},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>re(d,o,h,m,n,a,s,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:R?_xeUtils.default.isFunction(R)?R(v):R:null,key:y||M||T||X.useKey||X.drag||Q.drag||F||I?o:r},p),x)),g){var{height:c,padding:v,mode:p}=te.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${H?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),I&&(x.paddingLeft=n*G.indent+30+"px"),$||{}).showOverflow,p=$.id,i=L[p]||{},p=_xeUtils.default.eqNull(g)?k:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$grid:f,$table:Ke,seq:d,column:$,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,type:renderType,level:n,row:a,rowid:o,rowIndex:s,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!O,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[$.renderData(g)])])]))}}e&&J.push(...ae(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=O.fixedType,l=Ze.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=k,l[e+"scroll"]=z,l[e+"table"]=$,l[e+"colgroup"]=q,l[e+"list"]=A,l[e+"xSpace"]=H,l[e+"ySpace"]=F,l[e+"emptyBlock"]=j})}),(0,_vue.onUnmounted)(()=>{var e=O.fixedType,l=Ze.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{var e=M.slots,l=Ke.xeGrid;let{fixedColumn:t,fixedType:a,tableColumn:r}=O;var{spanMethod:o,footerSpanMethod:i,mouseConfig:s}=Je,{isGroup:n,tableData:d,isColLoading:u,overflowX:c,scrollXLoad:p,scrollYLoad:v,isAllOverflow:g,expandColumn:x,dragRow:h,dragCol:m}=Qe,{visibleColumn:w,fullAllDataRowIdData:_,fullColumnIdData:f}=Ze,b=T.value,y=ll.value,C=te.value;let E=d,R=r,D=!1;!(p||v||g)||x&&"fixed"!==C.mode||o||i||(D=!0),u||!a&&c||(R=w),a&&D&&(R=t||[]),v&&h&&2<E.length&&(d=_[(0,_util.getRowid)(Ke,h)])&&(g=d._index,x=E[0],C=E[E.length-1],o=_[(0,_util.getRowid)(Ke,x)],i=_[(0,_util.getRowid)(Ke,C)],o)&&i&&(u=o._index,c=i._index,g<u?E=[h].concat(E):c<g&&(E=E.concat([h]))),a||n||p&&m&&2<R.length&&(w=f[m.id])&&(v=w._index,d=R[0],x=R[R.length-1],_=f[d.id],C=f[x.id],_)&&C&&(o=_._index,i=C._index,v<o?R=[m].concat(R):i<v&&(R=R.concat([m])));let I;u=e?e.empty:null,c={$table:Ke,$grid:l},I=u?Ke.callSlot(u,c):(h=(g=b.name?renderer.get(b.name):null)?g.renderTableEmpty||g.renderTableEmptyView||g.renderEmpty:null)?(0,_vn.getSlotVNs)(h(b,c)):Je.emptyText||getI18n("vxe.table.emptyText"),n={onScroll(e){Ke.triggerBodyScrollEvent(e,a)}};return(0,_vue.h)("div",{ref:k,class:["vxe-table--body-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],xid:S},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},n),[a?renderEmptyElement(Ke):(0,_vue.h)("div",{ref:H,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:F,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:$,class:"vxe-table--body",xid:S,cellspacing:0,cellpadding:0,border:0,xvm:D?"1":null},[(0,_vue.h)("colgroup",{ref:q},R.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:A},ae(a,D,E,R))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&y.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},y.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Ke.triggerCellAreaExtendMousedownEvent&&Ke.triggerCellAreaExtendMousedownEvent(e,{$table:Ke,fixed:a,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Ke),a?renderEmptyElement(Ke):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:j},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},I)])])])}}});
@@ -214,7 +214,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
214
214
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
215
215
  let isVNPreEmptyStatus = false;
216
216
  if (isOptimizeMode && overflowX && !isMergeCell) {
217
- if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
217
+ if (scrollXLoad && tableColumn.length > 10 && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
218
218
  isVNPreEmptyStatus = true;
219
219
  }
220
220
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="footer";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(x){let le=(0,_vue.inject)("$xeTable",{}),{xID:m,props:_,reactData:g,internalData:h}=le,{computeTooltipOpts:l,computeColumnOpts:t,computeCellOpts:o,computeFooterCellOpts:r,computeDefaultRowHeight:i,computeResizableOpts:a,computeVirtualXOpts:n}=le.getComputeMaps(),b=(0,_vue.ref)(),w=(0,_vue.ref)(),y=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(0,_vue.ref)(),O=(y,C,T,F,O,I)=>{let S=le.xeGrid,D=x.fixedType,{resizable:E,border:M,footerCellClassName:z,footerCellStyle:k,footerAlign:R,footerSpanMethod:$,align:q,columnKey:A,showFooterOverflow:U}=_,{scrollXLoad:j,scrollYLoad:L,overflowX:X,currentColumn:N,mergeFootFlag:V}=g,{fullColumnIdData:H,mergeFooterList:P,mergeFooterCellMaps:W,scrollXStore:B}=h,G=n.value,K=l.value;let Y=a.value.isAllColumnDrag,J=t.value;var e=i.value;let Q=o.value,Z=r.value,ee=(0,_util.getCalcHeight)(Z.height)||e;return C.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:i,footerClassName:a,editRender:n,cellRender:u}=l,d=l.id,s=H[d]||{},n=n||u,u=n?renderer.get(n.name):null;let p=K.showAll;var n=X&&(D?l.fixed!==D:!!l.fixed),c=(_xeUtils.default.isBoolean(Z.padding)?Z:Q).padding,o=_xeUtils.default.eqNull(o)?U:o,r=r||(u?u.tableFooterCellAlign:"")||R||i||(u?u.tableCellAlign:"")||q,i="ellipsis"===o;let f="title"===o,v=!0===o||"tooltip"===o;var u=f||v||i,o=_xeUtils.default.isBoolean(l.resizable)?l.resizable:J.resizable||E,x={colid:d},m={},_=s.index,s=s._index,g=s;let h={$table:le,$grid:S,row:F,rowIndex:I,_rowIndex:I,$rowIndex:O,column:l,columnIndex:_,$columnIndex:e,_columnIndex:s,itemIndex:g,items:F,fixed:D,type:renderType,data:T},b=((f||v||p)&&(m.onMouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(v||p)&&le.triggerFooterTooltipEvent(e,h)}),(v||p)&&(m.onMouseleave=e=>{(v||p)&&le.handleTargetLeaveEvent(e)}),m.onClick=e=>{le.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},h),e)},!(m.onDblclick=e=>{le.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},h),e)}));if(V&&P.length){_=W[I+":"+s];if(_){var{rowspan:g,colspan:_}=_;if(!g||!_)return null;1<g&&(b=!0,x.rowspan=g),1<_&&(b=!0,x.colspan=_)}}else if($){var{rowspan:g=1,colspan:_=1}=$(h)||{};if(!g||!_)return null;1<g&&(x.rowspan=g),1<_&&(x.colspan=_)}g=e===C.length-1,_=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let w=!1;y&&X&&!b&&j&&!l.fixed&&!G.immediate&&(s<B.visibleStartIndex-B.preloadSize||s>B.visibleEndIndex+B.preloadSize)&&(w=!0);s={};return u?s.height=ee+"px":s.minHeight=ee+"px",(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":g,"fixed--width":!_,"fixed--hidden":n,"is--padding":c,"col--ellipsis":u,"col--current":N===l},(0,_dom.getPropClass)(a,h),(0,_dom.getPropClass)(z,h)]},x),{style:k?_xeUtils.default.isFunction(k)?k(h):k:null}),m),{key:A||j||L||J.useKey||J.drag?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":v,"c--ellipsis":i}],style:s},w?[]:[(0,_vue.h)("div",{colid:d,class:"vxe-cell--wrapper vxe-footer-cell--wrapper"},l.renderFooter(h))]),!n&&o&&Y?(0,_vue.h)("div",{class:["vxe-cell--col-resizable",{"is--line":!M||"none"===M}],onMousedown:e=>le.handleColResizeMousedownEvent(e,D,h),onDblclick:e=>le.handleColResizeDblclickEvent(e,h)}):renderEmptyElement(le)])})};return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=x.fixedType,l=h.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=b,l[e+"scroll"]=w,l[e+"table"]=y,l[e+"colgroup"]=C,l[e+"list"]=T,l[e+"xSpace"]=F})}),(0,_vue.onUnmounted)(()=>{var e=x.fixedType,l=h.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=x;var{spanMethod:o,footerSpanMethod:r,showFooterOverflow:i}=_,{visibleColumn:a,fullColumnIdData:n}=h,{isGroup:u,isColLoading:d,overflowX:s,scrollXLoad:p,dragCol:c}=g;let f=t,v=!1;return p&&i&&(o||r||(v=!0)),v&&(d||!l&&s)||(f=a),l&&v&&(f=e||[]),l||u||p&&c&&2<f.length&&(i=n[c.id])&&(o=i._index,r=f[0],d=f[f.length-1],s=n[r.id],a=n[d.id],s)&&a&&(u=s._index,p=a._index,o<u?f=[c].concat(f):p<o&&(f=f.concat([c]))),(0,_vue.h)("div",{ref:b,class:["vxe-table--footer-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:m},[(0,_vue.h)("div",{ref:w,class:"vxe-table--footer-inner-wrapper",onScroll(e){le.triggerFooterScrollEvent(e,l)}},[l?renderEmptyElement(le):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:y,class:"vxe-table--footer",xid:m,cellspacing:0,cellpadding:0,border:0,xvm:v?"1":null},[(0,_vue.h)("colgroup",{ref:C},f.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tfoot",{ref:T},((r,i)=>{let{fixedType:a,footerTableData:n}=x,{footerRowClassName:u,footerRowStyle:d}=_;return n.map((e,l)=>{var t=l,o={$table:le,row:e,_rowIndex:t,$rowIndex:l,fixed:a,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:d?_xeUtils.default.isFunction(d)?d(o):d:null},O(r,i,n,e,l,t))})})(v,f))])])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="footer";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(x){let le=(0,_vue.inject)("$xeTable",{}),{xID:m,props:_,reactData:g,internalData:h}=le,{computeTooltipOpts:l,computeColumnOpts:t,computeCellOpts:o,computeFooterCellOpts:r,computeDefaultRowHeight:i,computeResizableOpts:a,computeVirtualXOpts:n}=le.getComputeMaps(),b=(0,_vue.ref)(),w=(0,_vue.ref)(),y=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(0,_vue.ref)(),O=(y,C,T,F,O,I)=>{let S=le.xeGrid,D=x.fixedType,{resizable:E,border:M,footerCellClassName:z,footerCellStyle:k,footerAlign:R,footerSpanMethod:$,align:q,columnKey:A,showFooterOverflow:U}=_,{scrollXLoad:j,scrollYLoad:L,overflowX:X,currentColumn:N,mergeFootFlag:V}=g,{fullColumnIdData:H,mergeFooterList:P,mergeFooterCellMaps:W,scrollXStore:B}=h,G=n.value,K=l.value;let Y=a.value.isAllColumnDrag,J=t.value;var e=i.value;let Q=o.value,Z=r.value,ee=(0,_util.getCalcHeight)(Z.height)||e;return C.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:i,footerClassName:a,editRender:n,cellRender:u}=l,d=l.id,s=H[d]||{},n=n||u,u=n?renderer.get(n.name):null;let p=K.showAll;var n=X&&(D?l.fixed!==D:!!l.fixed),c=(_xeUtils.default.isBoolean(Z.padding)?Z:Q).padding,o=_xeUtils.default.eqNull(o)?U:o,r=r||(u?u.tableFooterCellAlign:"")||R||i||(u?u.tableCellAlign:"")||q,i="ellipsis"===o;let f="title"===o,v=!0===o||"tooltip"===o;var u=f||v||i,o=_xeUtils.default.isBoolean(l.resizable)?l.resizable:J.resizable||E,x={colid:d},m={},_=s.index,s=s._index,g=s;let h={$table:le,$grid:S,row:F,rowIndex:I,_rowIndex:I,$rowIndex:O,column:l,columnIndex:_,$columnIndex:e,_columnIndex:s,itemIndex:g,items:F,fixed:D,type:renderType,data:T},b=((f||v||p)&&(m.onMouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(v||p)&&le.triggerFooterTooltipEvent(e,h)}),(v||p)&&(m.onMouseleave=e=>{(v||p)&&le.handleTargetLeaveEvent(e)}),m.onClick=e=>{le.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},h),e)},!(m.onDblclick=e=>{le.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},h),e)}));if(V&&P.length){_=W[I+":"+s];if(_){var{rowspan:g,colspan:_}=_;if(!g||!_)return null;1<g&&(b=!0,x.rowspan=g),1<_&&(b=!0,x.colspan=_)}}else if($){var{rowspan:g=1,colspan:_=1}=$(h)||{};if(!g||!_)return null;1<g&&(x.rowspan=g),1<_&&(x.colspan=_)}g=e===C.length-1,_=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let w=!1;y&&X&&!b&&j&&10<C.length&&!l.fixed&&!G.immediate&&(s<B.visibleStartIndex-B.preloadSize||s>B.visibleEndIndex+B.preloadSize)&&(w=!0);s={};return u?s.height=ee+"px":s.minHeight=ee+"px",(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":g,"fixed--width":!_,"fixed--hidden":n,"is--padding":c,"col--ellipsis":u,"col--current":N===l},(0,_dom.getPropClass)(a,h),(0,_dom.getPropClass)(z,h)]},x),{style:k?_xeUtils.default.isFunction(k)?k(h):k:null}),m),{key:A||j||L||J.useKey||J.drag?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":v,"c--ellipsis":i}],style:s},w?[]:[(0,_vue.h)("div",{colid:d,class:"vxe-cell--wrapper vxe-footer-cell--wrapper"},l.renderFooter(h))]),!n&&o&&Y?(0,_vue.h)("div",{class:["vxe-cell--col-resizable",{"is--line":!M||"none"===M}],onMousedown:e=>le.handleColResizeMousedownEvent(e,D,h),onDblclick:e=>le.handleColResizeDblclickEvent(e,h)}):renderEmptyElement(le)])})};return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=x.fixedType,l=h.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=b,l[e+"scroll"]=w,l[e+"table"]=y,l[e+"colgroup"]=C,l[e+"list"]=T,l[e+"xSpace"]=F})}),(0,_vue.onUnmounted)(()=>{var e=x.fixedType,l=h.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=x;var{spanMethod:o,footerSpanMethod:r,showFooterOverflow:i}=_,{visibleColumn:a,fullColumnIdData:n}=h,{isGroup:u,isColLoading:d,overflowX:s,scrollXLoad:p,dragCol:c}=g;let f=t,v=!1;return p&&i&&(o||r||(v=!0)),v&&(d||!l&&s)||(f=a),l&&v&&(f=e||[]),l||u||p&&c&&2<f.length&&(i=n[c.id])&&(o=i._index,r=f[0],d=f[f.length-1],s=n[r.id],a=n[d.id],s)&&a&&(u=s._index,p=a._index,o<u?f=[c].concat(f):p<o&&(f=f.concat([c]))),(0,_vue.h)("div",{ref:b,class:["vxe-table--footer-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:m},[(0,_vue.h)("div",{ref:w,class:"vxe-table--footer-inner-wrapper",onScroll(e){le.triggerFooterScrollEvent(e,l)}},[l?renderEmptyElement(le):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:y,class:"vxe-table--footer",xid:m,cellspacing:0,cellpadding:0,border:0,xvm:v?"1":null},[(0,_vue.h)("colgroup",{ref:C},f.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tfoot",{ref:T},((r,i)=>{let{fixedType:a,footerTableData:n}=x,{footerRowClassName:u,footerRowStyle:d}=_;return n.map((e,l)=>{var t=l,o={$table:le,row:e,_rowIndex:t,$rowIndex:l,fixed:a,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:d?_xeUtils.default.isFunction(d)?d(o):d:null},O(r,i,n,e,l,t))})})(v,f))])])])}}});
@@ -78,7 +78,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
78
78
  dragCol,
79
79
  scrollXLoad,
80
80
  scrollYLoad,
81
- overflowX
81
+ overflowX,
82
+ tableColumn
82
83
  } = tableReactData;
83
84
  const {
84
85
  fullColumnIdData,
@@ -175,7 +176,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
175
176
  let isVNPreEmptyStatus = false;
176
177
  if (isOptimizeMode && overflowX && !isGroup) {
177
178
  if (!dragCol || dragCol.id !== colid) {
178
- if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
179
+ if (scrollXLoad && tableColumn.length > 10 && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
179
180
  isVNPreEmptyStatus = true;
180
181
  }
181
182
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(m){let le=(0,_vue.inject)("$xeTable",{}),{xID:_,props:b,reactData:C,internalData:y}=le,{computeColumnOpts:l,computeColumnDragOpts:a,computeCellOpts:r,computeMouseOpts:w,computeHeaderCellOpts:t,computeDefaultRowHeight:i,computeVirtualXOpts:n}=le.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),o=(0,_vue.ref)(),d=()=>{var e=C.isGroup;D.value=e?(0,_util.convertHeaderColumnToRows)(m.tableGroupColumn):[]},I=(H,E,S,M)=>{let O=le.xeGrid,T=m.fixedType,{resizable:I,columnKey:k,headerCellClassName:U,headerCellStyle:z,showHeaderOverflow:R,headerAlign:$,align:q,mouseConfig:A}=b,{currentColumn:F,dragCol:X,scrollXLoad:j,scrollYLoad:G,overflowX:L}=C,{fullColumnIdData:N,scrollXStore:V}=y,W=n.value,B=l.value,K=a.value,P=r.value;var e=i.value;let Y=t.value,J=(0,_util.getCalcHeight)(Y.height)||e,{disabledMethod:Q,isCrossDrag:Z,isPeerDrag:ee}=K;return S.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:i,filters:n,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=N[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=L&&!d&&(T?e.fixed!==T:!!e.fixed),v=(_xeUtils.default.isBoolean(Y.padding)?Y:P).padding,r=_xeUtils.default.eqNull(r)?R:r,t=t||(u?u.tableHeaderCellAlign:"")||$||i||(u?u.tableCellAlign:"")||q,i="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,x=u||r||i;let h=!1,g=null;n&&(g=n[0],h=n.some(e=>e.checked));var f=c.index,c=c._index;let m={$table:le,$grid:O,$rowIndex:M,column:e,columnIndex:f,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:T,type:renderType,isHidden:p,hasFilter:h};var f={colid:s,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},_={onClick:e=>le.triggerHeaderCellClickEvent(e,m),onDblclick:e=>le.triggerHeaderCellDblclickEvent(e,m)},b=B.drag&&"cell"===K.trigger;let C=!1;b&&(C=!(!Q||!Q(m))),(A||b)&&(_.onMousedown=e=>le.triggerHeaderCellMousedownEvent(e,m)),B.drag&&(_.onDragstart=le.handleHeaderCellDragDragstartEvent,_.onDragend=le.handleHeaderCellDragDragendEvent,_.onDragover=le.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=le.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:B.resizable||I,w=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let D=!1;!E||!L||H||X&&X.id===s||j&&!e.fixed&&!W.immediate&&(c<V.visibleStartIndex-V.preloadSize||c>V.visibleEndIndex+V.preloadSize)&&(D=!0);c={};return x?c.height=J+"px":c.minHeight=J+"px",(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,{["col--"+t]:t,["col--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":x,"fixed--width":!w,"fixed--hidden":p,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":h,"is--drag-active":B.drag&&!e.fixed&&!C&&(Z||ee||!e.parentId),"is--drag-disabled":B.drag&&C,"col--current":F===e},o?_xeUtils.default.isFunction(o)?o(m):o:"",U?_xeUtils.default.isFunction(U)?U(m):U:""],style:z?_xeUtils.default.isFunction(z)?z(m):z:null},f),_),{key:k||j||G||B.useKey||B.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":i}],style:c},D||E&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(m))]),!p&&y?(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>le.handleColResizeMousedownEvent(e,T,m),onDblclick:e=>le.handleColResizeDblclickEvent(e,m)}):renderEmptyElement(le)])})};return(0,_vue.watch)(()=>m.tableColumn,d),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=m.fixedType,l=le.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=o,d()})}),(0,_vue.onUnmounted)(()=>{var e=m.fixedType,l=le.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:a}=m;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:i,footerSpanMethod:n}=b,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=C,{visibleColumn:p,fullColumnIdData:v}=y,x=w.value;let h=D.value,g=a,f=!1;return o?g=p:(s&&t&&(i||n||(f=!0)),f&&(d||!l&&u)||(g=p),l&&f&&(g=e||[]),h=[g]),l||o||s&&c&&2<g.length&&(t=v[c.id])&&(i=t._index,n=g[0],d=g[g.length-1],u=v[n.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,i<s?(g=[c].concat(g),h=[[c].concat(h[0])].concat(h.slice(1))):t<i&&(g=g.concat([c]),h=[h[0].concat([c])].concat(h.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){le.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(le):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:_,cellspacing:0,cellpadding:0,border:0,xvm:f?"1":null},[(0,_vue.h)("colgroup",{ref:M},g.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,e)=>{let i=m.fixedType,{headerRowClassName:n,headerRowStyle:o}=b;return e.map((e,l)=>{var a={$table:le,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n(a):n:""],style:o?_xeUtils.default.isFunction(o)?o(a):o:null},I(r,t,e,l))})})(o,f,h))]),r&&x.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(le)])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(m){let ae=(0,_vue.inject)("$xeTable",{}),{xID:_,props:b,reactData:C,internalData:y}=ae,{computeColumnOpts:l,computeColumnDragOpts:a,computeCellOpts:r,computeMouseOpts:w,computeHeaderCellOpts:t,computeDefaultRowHeight:i,computeVirtualXOpts:n}=ae.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),o=(0,_vue.ref)(),d=()=>{var e=C.isGroup;D.value=e?(0,_util.convertHeaderColumnToRows)(m.tableGroupColumn):[]},I=(H,E,S,M)=>{let O=ae.xeGrid,T=m.fixedType,{resizable:I,columnKey:k,headerCellClassName:U,headerCellStyle:z,showHeaderOverflow:R,headerAlign:$,align:q,mouseConfig:A}=b,{currentColumn:F,dragCol:X,scrollXLoad:j,scrollYLoad:G,overflowX:L,tableColumn:N}=C,{fullColumnIdData:V,scrollXStore:W}=y,B=n.value,K=l.value,P=a.value,Y=r.value;var e=i.value;let J=t.value,Q=(0,_util.getCalcHeight)(J.height)||e,{disabledMethod:Z,isCrossDrag:ee,isPeerDrag:le}=P;return S.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:i,filters:n,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=V[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=L&&!d&&(T?e.fixed!==T:!!e.fixed),v=(_xeUtils.default.isBoolean(J.padding)?J:Y).padding,r=_xeUtils.default.eqNull(r)?R:r,t=t||(u?u.tableHeaderCellAlign:"")||$||i||(u?u.tableCellAlign:"")||q,i="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,x=u||r||i;let h=!1,g=null;n&&(g=n[0],h=n.some(e=>e.checked));var f=c.index,c=c._index;let m={$table:ae,$grid:O,$rowIndex:M,column:e,columnIndex:f,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:T,type:renderType,isHidden:p,hasFilter:h};var f={colid:s,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},_={onClick:e=>ae.triggerHeaderCellClickEvent(e,m),onDblclick:e=>ae.triggerHeaderCellDblclickEvent(e,m)},b=K.drag&&"cell"===P.trigger;let C=!1;b&&(C=!(!Z||!Z(m))),(A||b)&&(_.onMousedown=e=>ae.triggerHeaderCellMousedownEvent(e,m)),K.drag&&(_.onDragstart=ae.handleHeaderCellDragDragstartEvent,_.onDragend=ae.handleHeaderCellDragDragendEvent,_.onDragover=ae.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=ae.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:K.resizable||I,w=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let D=!1;!E||!L||H||X&&X.id===s||j&&10<N.length&&!e.fixed&&!B.immediate&&(c<W.visibleStartIndex-W.preloadSize||c>W.visibleEndIndex+W.preloadSize)&&(D=!0);c={};return x?c.height=Q+"px":c.minHeight=Q+"px",(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,{["col--"+t]:t,["col--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":x,"fixed--width":!w,"fixed--hidden":p,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":h,"is--drag-active":K.drag&&!e.fixed&&!C&&(ee||le||!e.parentId),"is--drag-disabled":K.drag&&C,"col--current":F===e},o?_xeUtils.default.isFunction(o)?o(m):o:"",U?_xeUtils.default.isFunction(U)?U(m):U:""],style:z?_xeUtils.default.isFunction(z)?z(m):z:null},f),_),{key:k||j||G||K.useKey||K.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":i}],style:c},D||E&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(m))]),!p&&y?(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>ae.handleColResizeMousedownEvent(e,T,m),onDblclick:e=>ae.handleColResizeDblclickEvent(e,m)}):renderEmptyElement(ae)])})};return(0,_vue.watch)(()=>m.tableColumn,d),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=m.fixedType,l=ae.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=o,d()})}),(0,_vue.onUnmounted)(()=>{var e=m.fixedType,l=ae.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:a}=m;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:i,footerSpanMethod:n}=b,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=C,{visibleColumn:p,fullColumnIdData:v}=y,x=w.value;let h=D.value,g=a,f=!1;return o?g=p:(s&&t&&(i||n||(f=!0)),f&&(d||!l&&u)||(g=p),l&&f&&(g=e||[]),h=[g]),l||o||s&&c&&2<g.length&&(t=v[c.id])&&(i=t._index,n=g[0],d=g[g.length-1],u=v[n.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,i<s?(g=[c].concat(g),h=[[c].concat(h[0])].concat(h.slice(1))):t<i&&(g=g.concat([c]),h=[h[0].concat([c])].concat(h.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){ae.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(ae):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:_,cellspacing:0,cellpadding:0,border:0,xvm:f?"1":null},[(0,_vue.h)("colgroup",{ref:M},g.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,e)=>{let i=m.fixedType,{headerRowClassName:n,headerRowStyle:o}=b;return e.map((e,l)=>{var a={$table:ae,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n(a):n:""],style:o?_xeUtils.default.isFunction(o)?o(a):o:null},I(r,t,e,l))})})(o,f,h))]),r&&x.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(ae)])])}}});
@@ -114,7 +114,7 @@ if(scrollXLoad||scrollYLoad||isAllOverflow){if(expandColumn&&expandOpts.mode!=='
114
114
  tableElem.style.paddingRight=osbWidth&&fixedType&&(browseObj.firefox||browseObj.safari)?`${osbWidth}px`:'';}const emptyBlockElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-emptyBlock`]);if(emptyBlockElem){emptyBlockElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='footer'){let renderColumnList=tableColumn;let isOptimizeMode=false;// 如果是使用优化模式
115
115
  if(scrollXLoad&&allColumnFooterOverflow){if(spanMethod||footerSpanMethod){// 如果不支持优化模式
116
116
  }else{isOptimizeMode=true;}}if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){if(isOptimizeMode){renderColumnList=fixedColumn||[];}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}if(currScrollElem){currScrollElem.style.height=`${tFooterHeight}px`;// 如果是固定列
117
- if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${customHeight>0?customHeight-tFooterHeight-osbHeight:tableHeight+tHeaderHeight}px`;}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}});});if(currentRow){$xeTable.setCurrentRow(currentRow);}if(mouseConfig&&mouseOpts.selected&&editStore.selected.row&&editStore.selected.column){$xeTable.addCellSelectedClass();}if($xeGanttView){$xeGanttView.handleUpdateStyle();}return(0,_vue.nextTick)();};const checkValidate=type=>{if($xeTable.triggerValidate){return $xeTable.triggerValidate(type);}return(0,_vue.nextTick)();};/**
117
+ if(fixedWrapperElem){if(wrapperElem){wrapperElem.style.top=`${customHeight>0?customHeight-tFooterHeight-osbHeight:tableHeight+tHeaderHeight}px`;}}}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}});});if(currentRow){$xeTable.setCurrentRow(currentRow);}if(mouseConfig&&mouseOpts.selected&&editStore.selected.row&&editStore.selected.column){$xeTable.addCellSelectedClass();}return(0,_vue.nextTick)();};const checkValidate=type=>{if($xeTable.triggerValidate){return $xeTable.triggerValidate(type);}return(0,_vue.nextTick)();};/**
118
118
  * 当单元格发生改变时
119
119
  * 如果存在规则,则校验
120
120
  */const handleChangeCell=(evnt,params)=>{checkValidate('blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate('change')).catch(e=>e);});};const handleDefaultSort=()=>{const{sortConfig}=props;if(sortConfig){const sortOpts=computeSortOpts.value;let{defaultSort}=sortOpts;if(defaultSort){if(!_xeUtils.default.isArray(defaultSort)){defaultSort=[defaultSort];}if(defaultSort.length){(sortConfig.multiple?defaultSort:defaultSort.slice(0,1)).forEach((item,index)=>{const{field,order}=item;if(field&&order){const column=$xeTable.getColumnByField(field);if(column&&column.sortable){column.order=order;column.sortTime=Date.now()+index;}}});if(!sortOpts.remote){$xeTable.handleTableData(true).then(updateStyle);}}}}};/**
@@ -173,7 +173,7 @@ const computeScrollLoad=()=>{return(0,_vue.nextTick)().then(()=>{const{scrollXLo
173
173
  if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible();const offsetXSize=Math.max(0,virtualXOpts.oSize?_xeUtils.default.toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=_xeUtils.default.toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData();});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
174
174
  const rowHeight=computeRowHeight();scrollYStore.rowHeight=rowHeight;// 已废弃
175
175
  reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible();if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?_xeUtils.default.toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=_xeUtils.default.toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData();});}else{$xeTable.updateScrollYSpace();}});};const calcScrollbar=()=>{const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const scrollbarOpts=computeScrollbarOpts.value;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const headerTableElem=(0,_util.getRefElem)(elemStore['main-header-table']);const footerTableElem=(0,_util.getRefElem)(elemStore['main-footer-table']);const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;let overflowY=false;let overflowX=false;if(bodyWrapperElem){overflowY=scrollYHeight>bodyWrapperElem.clientHeight;if(yHandleEl){reactData.scrollbarWidth=scrollbarOpts.width||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;if(xHandleEl){reactData.scrollbarHeight=scrollbarOpts.height||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}};const handleRecalculateStyle=(reFull,reWidth,reHeight)=>{const el=refElem.value;internalData.rceRunTime=Date.now();if(!el||!el.clientWidth){return(0,_vue.nextTick)();}const varEl=refVarElem.value;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig('default',defEl);calcVarRowHeightConfig('medium',mediumEl);calcVarRowHeightConfig('small',smallEl);calcVarRowHeightConfig('mini',miniEl);}if(reWidth){calcCellWidth();}if(reFull){autoCellWidth();}calcScrollbar();updateStyle();updateRowExpandStyle();return computeScrollLoad().then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
176
- if(reWidth){calcCellWidth();}if(reFull){autoCellWidth();}if(reHeight){calcCellHeight();}updateStyle();calcScrollbar();if(reFull){updateRowOffsetTop();}updateRowExpandStyle();if(reFull){return computeScrollLoad();}});};const handleLazyRecalculate=(reFull,reWidth,reHeight)=>{return new Promise(resolve=>{const $xeGanttView=internalData.xeGanttView;const{rceTimeout,rceRunTime}=internalData;const resizeOpts=computeResizeOpts.value;const refreshDelay=resizeOpts.refreshDelay||20;const el=refElem.value;if(el&&el.clientWidth){autoCellWidth();updateRowExpandStyle();}if(rceTimeout){clearTimeout(rceTimeout);if(rceRunTime&&rceRunTime+(refreshDelay-5)<Date.now()){resolve(handleRecalculateStyle(reFull,reWidth,reHeight));}else{(0,_vue.nextTick)(()=>{resolve();});}}else{resolve(handleRecalculateStyle(reFull,reWidth,reHeight));}if($xeGanttView){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceTimeout=undefined;handleRecalculateStyle(reFull,reWidth,reHeight);},refreshDelay);});};const handleResizeEvent=()=>{handleLazyRecalculate(true,true,true);};const handleUpdateAggValues=()=>{const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;};const handleUpdateRowGroup=groupFields=>{const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(_xeUtils.default.isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues();};const handleeGroupSummary=aggList=>{const aggregateOpts=computeAggregateOpts.value;const{mapChildrenField}=aggregateOpts;if(mapChildrenField){_xeUtils.default.lastEach(aggList,aggRow=>{let count=0;_xeUtils.default.each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggregateData){$xeTable.handlePivotTableAggregateData(aggList);}}};const updateGroupData=()=>{const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=computeAggregateOpts.value;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];_xeUtils.default.eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary(aggList);}};const handleGroupData=(list,rowGroups)=>{let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=computeAggregateOpts.value;const{rowField,parentField,childrenField,mapChildrenField}=aggregateOpts;const checkboxOpts=computeCheckboxOpts.value;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const aggList=[];const rowkey=(0,_util.getRowkey)($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):_xeUtils.default.get(row,groupField);const groupValue=_xeUtils.default.eqNull(cellValue)?'':cellValue;let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});_xeUtils.default.objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData(childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupField,childCount:0,[rowField]:(0,_util.getRowUniqueId)(),[parentField]:null,[rowkey]:(0,_util.getRowUniqueId)(),[childrenField]:childTreeData,[mapChildrenField]:childTreeData};if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});handleeGroupSummary(aggList);}}return{treeData,fullData};};/**
176
+ if(reWidth){calcCellWidth();}if(reFull){autoCellWidth();}if(reHeight){calcCellHeight();}updateStyle();calcScrollbar();if(reFull){updateRowOffsetTop();}updateRowExpandStyle();if(reFull){return computeScrollLoad();}});};const handleLazyRecalculate=(reFull,reWidth,reHeight)=>{return new Promise(resolve=>{const{rceTimeout,rceRunTime}=internalData;const resizeOpts=computeResizeOpts.value;const refreshDelay=resizeOpts.refreshDelay||20;const el=refElem.value;if(el&&el.clientWidth){autoCellWidth();updateRowExpandStyle();}if(rceTimeout){clearTimeout(rceTimeout);if(rceRunTime&&rceRunTime+(refreshDelay-5)<Date.now()){resolve(handleRecalculateStyle(reFull,reWidth,reHeight));}else{(0,_vue.nextTick)(()=>{resolve();});}}else{resolve(handleRecalculateStyle(reFull,reWidth,reHeight));}internalData.rceTimeout=setTimeout(()=>{internalData.rceTimeout=undefined;handleRecalculateStyle(reFull,reWidth,reHeight);},refreshDelay);});};const handleResizeEvent=()=>{handleLazyRecalculate(true,true,true);};const handleUpdateAggValues=()=>{const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;};const handleUpdateRowGroup=groupFields=>{const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(_xeUtils.default.isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues();};const handleeGroupSummary=aggList=>{const aggregateOpts=computeAggregateOpts.value;const{mapChildrenField}=aggregateOpts;if(mapChildrenField){_xeUtils.default.lastEach(aggList,aggRow=>{let count=0;_xeUtils.default.each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggregateData){$xeTable.handlePivotTableAggregateData(aggList);}}};const updateGroupData=()=>{const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=computeAggregateOpts.value;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];_xeUtils.default.eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary(aggList);}};const handleGroupData=(list,rowGroups)=>{let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=computeAggregateOpts.value;const{rowField,parentField,childrenField,mapChildrenField}=aggregateOpts;const checkboxOpts=computeCheckboxOpts.value;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const aggList=[];const rowkey=(0,_util.getRowkey)($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):_xeUtils.default.get(row,groupField);const groupValue=_xeUtils.default.eqNull(cellValue)?'':cellValue;let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});_xeUtils.default.objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData(childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupField,childCount:0,[rowField]:(0,_util.getRowUniqueId)(),[parentField]:null,[rowkey]:(0,_util.getRowUniqueId)(),[childrenField]:childTreeData,[mapChildrenField]:childTreeData};if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});handleeGroupSummary(aggList);}}return{treeData,fullData};};/**
177
177
  * 加载表格数据
178
178
  * @param {Array} datas 数据
179
179
  */const loadTableData=(datas,isReset)=>{const{keepSource,treeConfig,rowGroupConfig,aggregateConfig}=props;const{rowGroupList,scrollYLoad:oldScrollYLoad}=reactData;const{scrollYStore,scrollXStore,lastScrollLeft,lastScrollTop}=internalData;const rowOpts=computeRowOpts.value;const treeOpts=computeTreeOpts.value;const expandOpts=computeExpandOpts.value;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;let treeData=[];let fullData=(0,_vue.reactive)(datas?datas.slice(0):[]);// 转为响应式数据
@@ -258,7 +258,7 @@ const matchObj=_xeUtils.default.findTree(tableFullGroupData,item=>(0,_util.getRo
258
258
  * 处理默认展开分组行
259
259
  */const handleDefaultRowGroupExpand=()=>{const{isRowGroupStatus}=reactData;if(isRowGroupStatus){const aggregateOpts=computeAggregateOpts.value;const{expandAll,expandGroupFields}=aggregateOpts;if(expandAll){$xeTable.setAllRowGroupExpand(true);}else if(expandGroupFields&&expandGroupFields.length){$xeTable.setRowGroupExpandByField(expandGroupFields,true);}}};const handleCheckAllEvent=(evnt,value)=>{handleCheckedAllCheckboxRow(value);if(evnt){dispatchEvent('checkbox-all',{records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked:value},evnt);}};/**
260
260
  * 纵向 Y 可视渲染处理
261
- */const loadScrollYData=()=>{const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible();const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}};const createGetRowCacheProp=prop=>{return function(row){const{fullAllDataRowIdData}=internalData;if(row){const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};const lazyScrollXData=()=>{const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData();}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData();},fpsTime);};const lazyScrollYData=()=>{const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData();}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData();},fpsTime);};const checkLastSyncScroll=(isRollX,isRollY)=>{const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';if(!isAllOverflow){calcCellHeight();updateRowOffsetTop();}if(isRollX&&scrollXLoad){$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){$xeTable.updateScrollYData().then(()=>{if(!isAllOverflow){calcCellHeight();updateRowOffsetTop();}$xeTable.updateScrollYSpace();});}updateRowExpandStyle();$xeTable.updateCellAreas();},200);};const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const wheelScrollLeftTo=(scrollLeft,cb)=>{requestAnimationFrame(()=>{cb(scrollLeft);});};const wheelScrollTopTo=(diffNum,cb)=>{const duration=Math.abs(diffNum);const startTime=performance.now();let countTop=0;const step=timestamp=>{let progress=(timestamp-startTime)/duration;if(progress>1){progress=1;}const easedProgress=Math.pow(progress,2);const offsetTop=Math.floor(diffNum*easedProgress)-countTop;countTop+=offsetTop;cb(offsetTop);if(progress<1){requestAnimationFrame(step);}};requestAnimationFrame(step);};const syncGanttScrollTop=scrollTop=>{const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;const{elemStore:ganttElemStore}=ganttInternalData;const ganttBodyScrollElem=(0,_util.getRefElem)(ganttElemStore['main-body-scroll']);if(ganttBodyScrollElem){ganttBodyScrollElem.scrollTop=scrollTop;}}};const dispatchEvent=(type,params,evnt)=>{emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid},params));};const handleScrollToRowColumn=(fieldOrColumn,row)=>{const{fullColumnIdData}=internalData;const column=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);if(column&&fullColumnIdData[column.id]){return(0,_util.colToVisible)($xeTable,column,row);}return(0,_vue.nextTick)();};const handleUpdateResize=()=>{const el=refElem.value;if(el&&el.clientWidth&&el.clientHeight){$xeTable.recalculate();}};const handleUpdateColResize=(evnt,params)=>{$xeTable.analyColumnWidth();$xeTable.recalculate().then(()=>{$xeTable.saveCustomStore('update:width');$xeTable.updateCellAreas();$xeTable.dispatchEvent('column-resizable-change',params,evnt);// 已废弃 resizable-change
261
+ */const loadScrollYData=()=>{const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible();const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}};const createGetRowCacheProp=prop=>{return function(row){const{fullAllDataRowIdData}=internalData;if(row){const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};const lazyScrollXData=()=>{const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData();}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData();},fpsTime);};const lazyScrollYData=()=>{const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData();}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData();},fpsTime);};const checkLastSyncScroll=(isRollX,isRollY)=>{const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';if(!isAllOverflow){calcCellHeight();updateRowOffsetTop();}if(isRollX&&scrollXLoad){$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){$xeTable.updateScrollYData().then(()=>{if(!isAllOverflow){calcCellHeight();updateRowOffsetTop();}$xeTable.updateScrollYSpace();});}updateRowExpandStyle();$xeTable.updateCellAreas();},200);};const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const wheelScrollLeftTo=(scrollLeft,cb)=>{requestAnimationFrame(()=>{cb(scrollLeft);});};const wheelScrollTopTo=(diffNum,cb)=>{const duration=Math.abs(diffNum);const startTime=performance.now();let countTop=0;const step=timestamp=>{let progress=(timestamp-startTime)/duration;if(progress>1){progress=1;}const easedProgress=Math.pow(progress,2);const offsetTop=Math.floor(diffNum*easedProgress)-countTop;countTop+=offsetTop;cb(offsetTop);if(progress<1){requestAnimationFrame(step);}};requestAnimationFrame(step);};const dispatchEvent=(type,params,evnt)=>{emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid},params));};const handleScrollToRowColumn=(fieldOrColumn,row)=>{const{fullColumnIdData}=internalData;const column=(0,_util.handleFieldOrColumn)($xeTable,fieldOrColumn);if(column&&fullColumnIdData[column.id]){return(0,_util.colToVisible)($xeTable,column,row);}return(0,_vue.nextTick)();};const handleUpdateResize=()=>{const el=refElem.value;if(el&&el.clientWidth&&el.clientHeight){$xeTable.recalculate();}};const handleUpdateColResize=(evnt,params)=>{$xeTable.analyColumnWidth();$xeTable.recalculate().then(()=>{$xeTable.saveCustomStore('update:width');$xeTable.updateCellAreas();$xeTable.dispatchEvent('column-resizable-change',params,evnt);// 已废弃 resizable-change
262
262
  $xeTable.dispatchEvent('resizable-change',params,evnt);setTimeout(()=>$xeTable.recalculate(true),300);});};const handleUpdateRowResize=(evnt,params)=>{reactData.resizeHeightFlag++;$xeTable.recalculate().then(()=>{$xeTable.updateCellAreas();$xeTable.dispatchEvent('row-resizable-change',params,evnt);setTimeout(()=>$xeTable.recalculate(true),300);});};const updateColumnOffsetLeft=()=>{const{visibleColumn,fullColumnIdData}=internalData;let offsetLeft=0;for(let cIndex=0,rLen=visibleColumn.length;cIndex<rLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.oLeft=offsetLeft;}offsetLeft+=column.renderWidth;}};const updateRowOffsetTop=()=>{const{expandColumn}=reactData;const{afterFullData,fullAllDataRowIdData,rowExpandedMaps}=internalData;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);let offsetTop=0;for(let rIndex=0,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};rowRest.oTop=offsetTop;offsetTop+=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;// 是否展开行
263
263
  if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expandOpts.height||0;}}};const updateRowExpandStyle=()=>{const{expandColumn,scrollYLoad,scrollYTop,isScrollYBig}=reactData;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const{mode}=expandOpts;if(expandColumn&&mode==='fixed'){const{elemStore,fullAllDataRowIdData}=internalData;const rowExpandEl=refRowExpandElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){let isUpdateHeight=false;_xeUtils.default.arrayEach(rowExpandEl.children,reEl=>{const expandEl=reEl;const rowid=expandEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const expandHeight=expandEl.offsetHeight+1;const trEl=bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);let offsetTop=0;if(scrollYLoad){if(isScrollYBig&&trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}else{offsetTop=rowRest.oTop+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);}}else{if(trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}}if(isScrollYBig){offsetTop+=scrollYTop;}expandEl.style.top=(0,_dom.toCssUnit)(offsetTop);if(!isUpdateHeight){if(rowRest.expandHeight!==expandHeight){isUpdateHeight=true;}}rowRest.expandHeight=expandHeight;}});if(isUpdateHeight){reactData.rowExpandHeightFlag++;(0,_vue.nextTick)(()=>{updateRowOffsetTop();});}}}};const handleRowExpandScroll=()=>{const{elemStore}=internalData;const rowExpandEl=refRowExpandElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){rowExpandEl.scrollTop=bodyScrollElem.scrollTop;}};tableMethods={dispatchEvent,getEl(){return refElem.value;},/**
264
264
  * 重置表格的一切数据状态
@@ -385,6 +385,8 @@ if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[
385
385
  const currTableData=isFull?transform?tableFullTreeData:tableFullData:transform?tableFullTreeData:afterFullData;rowList=_xeUtils.default.filterTree(currTableData,row=>_xeUtils.default.get(row,checkField),{children:transform?mapChildrenField:childrenField});}else{const currTableData=isFull?tableFullData:afterFullData;rowList=currTableData.filter(row=>_xeUtils.default.get(row,checkField));}}else{const currMaps=isFull||treeConfig&&!transform?fullDataRowIdData:afterFullRowMaps;_xeUtils.default.each(selectCheckboxMaps,(row,rowid)=>{if(currMaps[rowid]){rowList.push(fullDataRowIdData[rowid].row);}});}}return rowList;},/**
386
386
  * 只对 tree-config 有效,获取行的子级
387
387
  */getTreeRowChildren(rowOrRowid){const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;const treeOpts=computeTreeOpts.value;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;if(rowOrRowid&&treeConfig){let rowid;if(_xeUtils.default.isString(rowOrRowid)){rowid=rowOrRowid;}else{rowid=(0,_util.getRowid)($xeTable,rowOrRowid);}if(rowid){const rest=fullAllDataRowIdData[rowid];const row=rest?rest.row:null;if(row){return row[transform?mapChildrenField:childrenField]||[];}}}return[];},/**
388
+ * 只对 tree-config 有效,用于树形结构,获取指定行的层级
389
+ */getTreeRowLevel(rowOrRowid){const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;if(rowOrRowid&&treeConfig){let rowid;if(_xeUtils.default.isString(rowOrRowid)){rowid=rowOrRowid;}else{rowid=(0,_util.getRowid)($xeTable,rowOrRowid);}if(rowid){const rest=fullAllDataRowIdData[rowid];if(rest){return rest.level;}}}return-1;},/**
388
390
  * 只对 tree-config 有效,获取行的父级
389
391
  */getTreeParentRow(rowOrRowid){const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;if(rowOrRowid&&treeConfig){let rowid;if(_xeUtils.default.isString(rowOrRowid)){rowid=rowOrRowid;}else{rowid=(0,_util.getRowid)($xeTable,rowOrRowid);}if(rowid){const rest=fullAllDataRowIdData[rowid];return rest?rest.parent:null;}}return null;},getParentRow(rowOrRowid){(0,_log.warnLog)('vxe.error.delFunc',['getParentRow','getTreeParentRow']);return $xeTable.getTreeParentRow(rowOrRowid);},/**
390
392
  * 根据行的唯一主键获取行
@@ -656,10 +658,10 @@ if(_xeUtils.default.isFunction(slotFunc)){return(0,_vn.getSlotVNs)(slotFunc(para
656
658
  * 定义行数据中的列属性,如果不存在则定义
657
659
  * @param {Row} records 行数据
658
660
  */defineField(records){const{treeConfig}=props;const expandOpts=computeExpandOpts.value;const treeOpts=computeTreeOpts.value;const radioOpts=computeRadioOpts.value;const checkboxOpts=computeCheckboxOpts.value;const childrenField=treeOpts.children||treeOpts.childrenField;const rowkey=(0,_util.getRowkey)($xeTable);if(!_xeUtils.default.isArray(records)){records=[records];}return records.map(record=>{internalData.tableFullColumn.forEach(column=>{const{field,editRender}=column;if(field&&!_xeUtils.default.has(record,field)&&!record[field]){let cellValue=null;if(editRender){const{defaultValue}=editRender;if(_xeUtils.default.isFunction(defaultValue)){cellValue=defaultValue({column});}else if(!_xeUtils.default.isUndefined(defaultValue)){cellValue=defaultValue;}}_xeUtils.default.set(record,field,cellValue);}});const otherFields=[radioOpts.labelField,checkboxOpts.checkField,checkboxOpts.labelField,expandOpts.labelField];otherFields.forEach(key=>{if(key&&(0,_utils.eqEmptyValue)(_xeUtils.default.get(record,key))){_xeUtils.default.set(record,key,null);}});if(treeConfig&&treeOpts.lazy&&_xeUtils.default.isUndefined(record[childrenField])){record[childrenField]=null;}// 必须有行数据的唯一主键,可以自行设置;也可以默认生成一个随机数
659
- if((0,_utils.eqEmptyValue)(_xeUtils.default.get(record,rowkey))){_xeUtils.default.set(record,rowkey,(0,_util.getRowUniqueId)());}return record;});},handleTableData(force){const{scrollYLoad}=reactData;const{scrollYStore,fullDataRowIdData}=internalData;const $xeGanttView=internalData.xeGanttView;let fullList=internalData.afterFullData;// 是否进行数据处理
661
+ if((0,_utils.eqEmptyValue)(_xeUtils.default.get(record,rowkey))){_xeUtils.default.set(record,rowkey,(0,_util.getRowUniqueId)());}return record;});},handleTableData(force){const{scrollYLoad}=reactData;const{scrollYStore,fullDataRowIdData}=internalData;let fullList=internalData.afterFullData;// 是否进行数据处理
660
662
  if(force){// 更新数据,处理筛选和排序
661
663
  updateAfterFullData();// 如果为虚拟树,将树结构拍平
662
- fullList=handleVirtualTreeToList();}const tableData=scrollYLoad?fullList.slice(scrollYStore.startIndex,scrollYStore.endIndex):fullList.slice(0);const visibleDataRowIdMaps={};tableData.forEach((row,$index)=>{const rowid=(0,_util.getRowid)($xeTable,row);const rest=fullDataRowIdData[rowid];if(rest){rest.$index=$index;}visibleDataRowIdMaps[rowid]=row;});reactData.tableData=tableData;internalData.visibleDataRowIdData=visibleDataRowIdMaps;if($xeGanttView){$xeGanttView.updateViewData();}return(0,_vue.nextTick)();},/**
664
+ fullList=handleVirtualTreeToList();}const tableData=scrollYLoad?fullList.slice(scrollYStore.startIndex,scrollYStore.endIndex):fullList.slice(0);const visibleDataRowIdMaps={};tableData.forEach((row,$index)=>{const rowid=(0,_util.getRowid)($xeTable,row);const rest=fullDataRowIdData[rowid];if(rest){rest.$index=$index;}visibleDataRowIdMaps[rowid]=row;});reactData.tableData=tableData;internalData.visibleDataRowIdData=visibleDataRowIdMaps;return(0,_vue.nextTick)();},/**
663
665
  * 更新数据行的 Map
664
666
  */cacheRowMap(isReset){const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{currKeyField,fullAllDataRowIdData,tableFullData,tableFullTreeData,tableFullGroupData,treeExpandedMaps}=internalData;const fullAllDataRowIdMaps=isReset?{}:Object.assign({},fullAllDataRowIdData);// 存在已删除数据
665
667
  const fullDataRowIdMaps={};const idMaps={};const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const handleRowCache=(row,index,items,currIndex,parentRow,rowid,level,seq)=>{let rowRest=fullAllDataRowIdMaps[rowid];if(idMaps[rowid]){(0,_log.errLog)('vxe.error.repeatKey',[currKeyField,rowid]);}if(!rowRest){rowRest={row,rowid,seq,index:-1,_index:-1,$index:-1,treeIndex:index,_tIndex:-1,items,parent:parentRow,level,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdMaps[rowid]=rowRest;fullAllDataRowIdMaps[rowid]=rowRest;}rowRest.treeLoaded=false;rowRest.expandLoaded=false;rowRest.row=row;rowRest.items=items;rowRest.parent=parentRow;rowRest.level=level;rowRest.index=currIndex;rowRest.treeIndex=index;idMaps[rowid]=true;fullDataRowIdMaps[rowid]=rowRest;fullAllDataRowIdMaps[rowid]=rowRest;};if(treeConfig){const treeOpts=computeTreeOpts.value;const{lazy}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;_xeUtils.default.eachTree(tableFullTreeData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);if(treeConfig&&lazy){if(row[hasChildField]&&row[childrenField]===undefined){row[childrenField]=null;}if(treeExpandedMaps[rowid]){if(!row[childrenField]||!row[childrenField].length){delete treeExpandedMaps[rowid];}}}handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,(0,_util.toTreePathSeq)(path));},{children:childrenField});}else if(isRowGroupStatus){const aggregateOpts=computeAggregateOpts.value;const{mapChildrenField}=aggregateOpts;_xeUtils.default.eachTree(tableFullGroupData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,(0,_util.toTreePathSeq)(path));},{children:mapChildrenField});}else{tableFullData.forEach((row,index,items)=>{handleRowCache(row,index,items,index,null,handleUpdateRowId(row),0,index+1);});}internalData.fullDataRowIdData=fullDataRowIdMaps;internalData.fullAllDataRowIdData=fullAllDataRowIdMaps;reactData.treeExpandedFlag++;},cacheSourceMap(fullData){const{treeConfig}=props;const treeOpts=computeTreeOpts.value;const sourceData=_xeUtils.default.clone(fullData,true);const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const sourceRowIdData={};const handleSourceRow=row=>{const rowid=handleUpdateRowId(row);sourceRowIdData[rowid]=row;};// 源数据缓存
@@ -785,20 +787,20 @@ const el=refElem.value;if(!el){return;}const xHandleEl=refScrollXHandleElem.valu
785
787
  * 横向 X 可视渲染事件处理
786
788
  */triggerScrollXEvent(){const virtualXOpts=computeVirtualXOpts.value;if(virtualXOpts.immediate){loadScrollXData();}else{lazyScrollXData();}},/**
787
789
  * 纵向 Y 可视渲染事件处理
788
- */triggerScrollYEvent(){const virtualYOpts=computeVirtualYOpts.value;if(virtualYOpts.immediate){loadScrollYData();}else{lazyScrollYData();}},triggerBodyScrollEvent(evnt,fixedType){const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rowExpandEl=refRowExpandElem.value;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=yHandleEl.scrollTop;let scrollLeft=xHandleEl.scrollLeft;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}else if(fixedType==='right'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);}else{(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);syncGanttScrollTop(scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}const yHandleEl=refScrollYHandleElem.value;const xHandleEl=refScrollXHandleElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const yHandleEl=refScrollYHandleElem.value;const xHandleEl=refScrollXHandleElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}const{highlightHoverRow}=_props.tableProps;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;if(!(leftFixedWidth||rightFixedWidth||expandColumn)){return;}const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=computeRowOpts.value;const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);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 rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=refRowExpandElem.value;if(!xHandleEl){return;}if(!yHandleEl){return;}if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(reactData.lastScrollTime);const deltaTop=shiftKey?0:Math.ceil(deltaY*wheelSpeed);const deltaLeft=shiftKey?Math.ceil((shiftKey?deltaY||deltaX:deltaX)*wheelSpeed):0;const isTopWheel=deltaTop<0;const currScrollTop=bodyScrollElem.scrollTop;// 如果滚动位置已经是顶部或底部,则不需要触发
790
+ */triggerScrollYEvent(){const virtualYOpts=computeVirtualYOpts.value;if(virtualYOpts.immediate){loadScrollYData();}else{lazyScrollYData();}},triggerBodyScrollEvent(evnt,fixedType){const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rowExpandEl=refRowExpandElem.value;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=yHandleEl.scrollTop;let scrollLeft=xHandleEl.scrollLeft;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}else if(fixedType==='right'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);}else{(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}const yHandleEl=refScrollYHandleElem.value;const xHandleEl=refScrollXHandleElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const yHandleEl=refScrollYHandleElem.value;const xHandleEl=refScrollXHandleElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}const{highlightHoverRow}=_props.tableProps;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;if(!(leftFixedWidth||rightFixedWidth||expandColumn)){return;}const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=computeRowOpts.value;const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);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 rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=refRowExpandElem.value;if(!xHandleEl){return;}if(!yHandleEl){return;}if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(reactData.lastScrollTime);const deltaTop=shiftKey?0:Math.ceil(deltaY*wheelSpeed);const deltaLeft=shiftKey?Math.ceil((shiftKey?deltaY||deltaX:deltaX)*wheelSpeed):0;const isTopWheel=deltaTop<0;const currScrollTop=bodyScrollElem.scrollTop;// 如果滚动位置已经是顶部或底部,则不需要触发
789
791
  if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}const scrollTop=currScrollTop+deltaTop;const scrollLeft=bodyScrollElem.scrollLeft+deltaLeft;const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}// 用于鼠标纵向滚轮处理
790
- if(isRollX){evnt.preventDefault();internalData.inWheelScroll=true;if(browseObj.firefox||browseObj.safari){const currLeftNum=scrollLeft;(0,_dom.setScrollLeft)(xHandleEl,currLeftNum);(0,_dom.setScrollLeft)(bodyScrollElem,currLeftNum);(0,_dom.setScrollLeft)(headerScrollElem,currLeftNum);(0,_dom.setScrollLeft)(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});}else{wheelScrollLeftTo(scrollLeft,offsetLeft=>{internalData.inWheelScroll=true;const currLeftNum=offsetLeft;(0,_dom.setScrollLeft)(xHandleEl,currLeftNum);(0,_dom.setScrollLeft)(bodyScrollElem,currLeftNum);(0,_dom.setScrollLeft)(headerScrollElem,currLeftNum);(0,_dom.setScrollLeft)(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});});}}if(isRollY){evnt.preventDefault();internalData.inWheelScroll=true;if(browseObj.firefox||browseObj.safari){const currTopNum=scrollTop;(0,_dom.setScrollTop)(yHandleEl,currTopNum);(0,_dom.setScrollTop)(bodyScrollElem,currTopNum);(0,_dom.setScrollTop)(leftScrollElem,currTopNum);(0,_dom.setScrollTop)(rightScrollElem,currTopNum);(0,_dom.setScrollTop)(rowExpandEl,currTopNum);syncGanttScrollTop(currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,currTopNum,bodyScrollElem.scrollLeft,{type:'table',fixed:''});}else{wheelScrollTopTo(scrollTop-currScrollTop,offsetTop=>{internalData.inWheelScroll=true;const currTopNum=bodyScrollElem.scrollTop+offsetTop;(0,_dom.setScrollTop)(yHandleEl,currTopNum);(0,_dom.setScrollTop)(bodyScrollElem,currTopNum);(0,_dom.setScrollTop)(leftScrollElem,currTopNum);(0,_dom.setScrollTop)(rightScrollElem,currTopNum);(0,_dom.setScrollTop)(rowExpandEl,currTopNum);syncGanttScrollTop(currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,currTopNum,bodyScrollElem.scrollLeft,{type:'table',fixed:''});});}}},triggerVirtualScrollXEvent(evnt){const{scrollXLoad}=reactData;const{elemStore,inWheelScroll,lastScrollTop,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}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 yHandleEl=refScrollYHandleElem.value;const wrapperEl=evnt.currentTarget;const{scrollLeft}=wrapperEl;const yBodyEl=yHandleEl||bodyScrollElem;let scrollTop=0;if(yBodyEl){scrollTop=yBodyEl.scrollTop;}const isRollX=true;const isRollY=scrollTop!==lastScrollTop;internalData.inVirtualScroll=true;(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},triggerVirtualScrollYEvent(evnt){const{scrollYLoad}=reactData;const{elemStore,inWheelScroll,lastScrollLeft,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=refRowExpandElem.value;const xHandleEl=refScrollXHandleElem.value;const wrapperEl=evnt.currentTarget;const{scrollTop}=wrapperEl;const xBodyEl=xHandleEl||bodyScrollElem;let scrollLeft=0;if(xBodyEl){scrollLeft=xBodyEl.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=true;internalData.inVirtualScroll=true;(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);syncGanttScrollTop(scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},/**
792
+ if(isRollX){evnt.preventDefault();internalData.inWheelScroll=true;if(browseObj.firefox||browseObj.safari){const currLeftNum=scrollLeft;(0,_dom.setScrollLeft)(xHandleEl,currLeftNum);(0,_dom.setScrollLeft)(bodyScrollElem,currLeftNum);(0,_dom.setScrollLeft)(headerScrollElem,currLeftNum);(0,_dom.setScrollLeft)(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});}else{wheelScrollLeftTo(scrollLeft,offsetLeft=>{internalData.inWheelScroll=true;const currLeftNum=offsetLeft;(0,_dom.setScrollLeft)(xHandleEl,currLeftNum);(0,_dom.setScrollLeft)(bodyScrollElem,currLeftNum);(0,_dom.setScrollLeft)(headerScrollElem,currLeftNum);(0,_dom.setScrollLeft)(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});});}}if(isRollY){evnt.preventDefault();internalData.inWheelScroll=true;if(browseObj.firefox||browseObj.safari){const currTopNum=scrollTop;(0,_dom.setScrollTop)(yHandleEl,currTopNum);(0,_dom.setScrollTop)(bodyScrollElem,currTopNum);(0,_dom.setScrollTop)(leftScrollElem,currTopNum);(0,_dom.setScrollTop)(rightScrollElem,currTopNum);(0,_dom.setScrollTop)(rowExpandEl,currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,currTopNum,bodyScrollElem.scrollLeft,{type:'table',fixed:''});}else{wheelScrollTopTo(scrollTop-currScrollTop,offsetTop=>{internalData.inWheelScroll=true;const currTopNum=bodyScrollElem.scrollTop+offsetTop;(0,_dom.setScrollTop)(yHandleEl,currTopNum);(0,_dom.setScrollTop)(bodyScrollElem,currTopNum);(0,_dom.setScrollTop)(leftScrollElem,currTopNum);(0,_dom.setScrollTop)(rightScrollElem,currTopNum);(0,_dom.setScrollTop)(rowExpandEl,currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,currTopNum,bodyScrollElem.scrollLeft,{type:'table',fixed:''});});}}},triggerVirtualScrollXEvent(evnt){const{scrollXLoad}=reactData;const{elemStore,inWheelScroll,lastScrollTop,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}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 yHandleEl=refScrollYHandleElem.value;const wrapperEl=evnt.currentTarget;const{scrollLeft}=wrapperEl;const yBodyEl=yHandleEl||bodyScrollElem;let scrollTop=0;if(yBodyEl){scrollTop=yBodyEl.scrollTop;}const isRollX=true;const isRollY=scrollTop!==lastScrollTop;internalData.inVirtualScroll=true;(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},triggerVirtualScrollYEvent(evnt){const{scrollYLoad}=reactData;const{elemStore,inWheelScroll,lastScrollLeft,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=refRowExpandElem.value;const xHandleEl=refScrollXHandleElem.value;const wrapperEl=evnt.currentTarget;const{scrollTop}=wrapperEl;const xBodyEl=xHandleEl||bodyScrollElem;let scrollLeft=0;if(xBodyEl){scrollLeft=xBodyEl.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=true;internalData.inVirtualScroll=true;(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},/**
791
793
  * 对于树形结构中,可以直接滚动到指定深层节点中
792
794
  * 对于某些特定的场景可能会用到,比如定位到某一节点
793
795
  * @param {Row} row 行对象
794
796
  */scrollToTreeRow(row){const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullData}=internalData;const rests=[];if(treeConfig||isRowGroupStatus){const aggregateOpts=computeAggregateOpts.value;const treeOpts=computeTreeOpts.value;const childrenField=treeOpts.children||treeOpts.childrenField;const matchObj=_xeUtils.default.findTree(tableFullData,item=>$xeTable.eqRow(item,row),{children:isRowGroupStatus?aggregateOpts.mapChildrenField:childrenField});if(matchObj){const nodes=matchObj.nodes;nodes.forEach((row,index)=>{if(index<nodes.length-1&&!$xeTable.isTreeExpandByRow(row)){rests.push($xeTable.setTreeExpand(row,true));}});}}return Promise.all(rests).then(()=>(0,_util.rowToVisible)($xeTable,row));},updateScrollYStatus,// 更新横向 X 可视渲染上下剩余空间大小
795
- updateScrollXSpace(){const{scrollXLoad,overflowX,scrollXWidth}=reactData;const{visibleColumn,scrollXStore,elemStore,fullColumnIdData}=internalData;const $xeGanttView=internalData.xeGanttView;const mouseOpts=computeMouseOpts.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;if(tableBodyElem){const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);const headerTableElem=(0,_util.getRefElem)(elemStore['main-header-table']);const footerTableElem=(0,_util.getRefElem)(elemStore['main-footer-table']);let xSpaceLeft=0;const firstColumn=visibleColumn[scrollXStore.startIndex];if(firstColumn){const colRest=fullColumnIdData[firstColumn.id]||{};xSpaceLeft=colRest.oLeft;}let clientWidth=0;if(bodyScrollElem){clientWidth=bodyScrollElem.clientWidth;}// 虚拟渲染
797
+ updateScrollXSpace(){const{scrollXLoad,overflowX,scrollXWidth}=reactData;const{visibleColumn,scrollXStore,elemStore,fullColumnIdData}=internalData;const mouseOpts=computeMouseOpts.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;if(tableBodyElem){const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);const headerTableElem=(0,_util.getRefElem)(elemStore['main-header-table']);const footerTableElem=(0,_util.getRefElem)(elemStore['main-footer-table']);let xSpaceLeft=0;const firstColumn=visibleColumn[scrollXStore.startIndex];if(firstColumn){const colRest=fullColumnIdData[firstColumn.id]||{};xSpaceLeft=colRest.oLeft;}let clientWidth=0;if(bodyScrollElem){clientWidth=bodyScrollElem.clientWidth;}// 虚拟渲染
796
798
  let isScrollXBig=false;let ySpaceWidth=scrollXWidth;if(scrollXWidth>maxXWidth){// 触右
797
- if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollLeft+clientWidth>=maxXWidth){xSpaceLeft=maxXWidth-bodyTableElem.clientWidth;}else{xSpaceLeft=(maxXWidth-clientWidth)*(xSpaceLeft/(scrollXWidth-clientWidth));}ySpaceWidth=maxXWidth;isScrollXBig=true;}if(!(scrollXLoad&&overflowX)){xSpaceLeft=0;}if(headerTableElem){headerTableElem.style.transform=headerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}if(bodyTableElem){bodyTableElem.style.transform=`translate(${xSpaceLeft}px, ${reactData.scrollYTop||0}px)`;}if(footerTableElem){footerTableElem.style.transform=footerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}const containerList=['main'];containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const xSpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-xSpace`]);if(xSpaceElem){xSpaceElem.style.width=scrollXLoad?`${ySpaceWidth}px`:'';}});});reactData.scrollXLeft=xSpaceLeft;reactData.scrollXWidth=ySpaceWidth;reactData.isScrollXBig=isScrollXBig;const scrollXSpaceEl=refScrollXSpaceElem.value;if(scrollXSpaceEl){scrollXSpaceEl.style.width=`${ySpaceWidth}px`;}calcScrollbar();if(isScrollXBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView){$xeGanttView.updateScrollXSpace();}return(0,_vue.nextTick)().then(()=>{updateStyle();});}},// 更新纵向 Y 可视渲染上下剩余空间大小
798
- updateScrollYSpace(){const{isAllOverflow,overflowY,scrollYLoad,expandColumn}=reactData;const{scrollYStore,elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData,rowExpandedMaps}=internalData;const $xeGanttView=internalData.xeGanttView;const{startIndex}=scrollYStore;const mouseOpts=computeMouseOpts.value;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);const leftBodyTableElem=(0,_util.getRefElem)(elemStore['left-body-table']);const rightbodyTableElem=(0,_util.getRefElem)(elemStore['right-body-table']);const containerList=['main','left','right'];let ySpaceTop=0;let scrollYHeight=0;let isScrollYBig=false;if(scrollYLoad){const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){scrollYHeight=afterFullData.length*defaultRowHeight;if(scrollYHeight>maxYHeight){isScrollYBig=true;}ySpaceTop=Math.max(0,startIndex*defaultRowHeight);}else{const firstRow=afterFullData[startIndex];let rowid=(0,_util.getRowid)($xeTable,firstRow);let rowRest=fullAllDataRowIdData[rowid]||{};ySpaceTop=rowRest.oTop||0;const lastRow=afterFullData[afterFullData.length-1];rowid=(0,_util.getRowid)($xeTable,lastRow);rowRest=fullAllDataRowIdData[rowid]||{};scrollYHeight=(rowRest.oTop||0)+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);// 是否展开行
799
+ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollLeft+clientWidth>=maxXWidth){xSpaceLeft=maxXWidth-bodyTableElem.clientWidth;}else{xSpaceLeft=(maxXWidth-clientWidth)*(xSpaceLeft/(scrollXWidth-clientWidth));}ySpaceWidth=maxXWidth;isScrollXBig=true;}if(!(scrollXLoad&&overflowX)){xSpaceLeft=0;}if(headerTableElem){headerTableElem.style.transform=headerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}if(bodyTableElem){bodyTableElem.style.transform=`translate(${xSpaceLeft}px, ${reactData.scrollYTop||0}px)`;}if(footerTableElem){footerTableElem.style.transform=footerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}const containerList=['main'];containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const xSpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-xSpace`]);if(xSpaceElem){xSpaceElem.style.width=scrollXLoad?`${ySpaceWidth}px`:'';}});});reactData.scrollXLeft=xSpaceLeft;reactData.scrollXWidth=ySpaceWidth;reactData.isScrollXBig=isScrollXBig;const scrollXSpaceEl=refScrollXSpaceElem.value;if(scrollXSpaceEl){scrollXSpaceEl.style.width=`${ySpaceWidth}px`;}calcScrollbar();if(isScrollXBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}return(0,_vue.nextTick)().then(()=>{updateStyle();});}},// 更新纵向 Y 可视渲染上下剩余空间大小
800
+ updateScrollYSpace(){const{isAllOverflow,overflowY,scrollYLoad,expandColumn}=reactData;const{scrollYStore,elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData,rowExpandedMaps}=internalData;const{startIndex}=scrollYStore;const mouseOpts=computeMouseOpts.value;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);const leftBodyTableElem=(0,_util.getRefElem)(elemStore['left-body-table']);const rightbodyTableElem=(0,_util.getRefElem)(elemStore['right-body-table']);const containerList=['main','left','right'];let ySpaceTop=0;let scrollYHeight=0;let isScrollYBig=false;if(scrollYLoad){const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){scrollYHeight=afterFullData.length*defaultRowHeight;if(scrollYHeight>maxYHeight){isScrollYBig=true;}ySpaceTop=Math.max(0,startIndex*defaultRowHeight);}else{const firstRow=afterFullData[startIndex];let rowid=(0,_util.getRowid)($xeTable,firstRow);let rowRest=fullAllDataRowIdData[rowid]||{};ySpaceTop=rowRest.oTop||0;const lastRow=afterFullData[afterFullData.length-1];rowid=(0,_util.getRowid)($xeTable,lastRow);rowRest=fullAllDataRowIdData[rowid]||{};scrollYHeight=(rowRest.oTop||0)+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);// 是否展开行
799
801
  if(expandColumn&&rowExpandedMaps[rowid]){scrollYHeight+=rowRest.expandHeight||expandOpts.height||0;}if(scrollYHeight>maxYHeight){isScrollYBig=true;}}}else{if(bodyTableElem){scrollYHeight=bodyTableElem.clientHeight;}}let clientHeight=0;if(bodyScrollElem){clientHeight=bodyScrollElem.clientHeight;}// 虚拟渲染
800
802
  let ySpaceHeight=scrollYHeight;let scrollYTop=ySpaceTop;if(isScrollYBig){// 触底
801
- if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=refScrollYSpaceElem.value;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=refRowExpandYSpaceElem.value;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=scrollYHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar();if(isScrollYBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView){$xeGanttView.updateScrollYSpace();}return(0,_vue.nextTick)().then(()=>{updateStyle();});},updateScrollXData(){const{isAllOverflow}=reactData;handleTableColumn();$xeTable.updateScrollXSpace();return(0,_vue.nextTick)().then(()=>{handleTableColumn();$xeTable.updateScrollXSpace();if(!isAllOverflow){$xeTable.updateScrollYSpace();}});},updateScrollYData(){$xeTable.handleTableData();$xeTable.updateScrollYSpace();return(0,_vue.nextTick)().then(()=>{$xeTable.handleTableData();$xeTable.updateScrollYSpace();});},/**
803
+ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=refScrollYSpaceElem.value;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=refRowExpandYSpaceElem.value;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=scrollYHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar();if(isScrollYBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}return(0,_vue.nextTick)().then(()=>{updateStyle();});},updateScrollXData(){const{isAllOverflow}=reactData;handleTableColumn();$xeTable.updateScrollXSpace();return(0,_vue.nextTick)().then(()=>{handleTableColumn();$xeTable.updateScrollXSpace();if(!isAllOverflow){$xeTable.updateScrollYSpace();}});},updateScrollYData(){$xeTable.handleTableData();$xeTable.updateScrollYSpace();return(0,_vue.nextTick)().then(()=>{$xeTable.handleTableData();$xeTable.updateScrollYSpace();});},/**
802
804
  * 处理固定列的显示状态
803
805
  */checkScrolling(){const{elemStore}=internalData;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const leftContainerElem=refLeftContainer.value;const rightContainerElem=refRightContainer.value;const xHandleEl=refScrollXHandleElem.value;const bodtTargetEl=xHandleEl||bodyScrollElem;if(bodtTargetEl){if(leftContainerElem){if(bodtTargetEl.scrollLeft>0){(0,_dom.addClass)(leftContainerElem,'scrolling--middle');}else{(0,_dom.removeClass)(leftContainerElem,'scrolling--middle');}}if(rightContainerElem){if(bodtTargetEl.clientWidth<bodtTargetEl.scrollWidth-Math.ceil(bodtTargetEl.scrollLeft)){(0,_dom.addClass)(rightContainerElem,'scrolling--middle');}else{(0,_dom.removeClass)(rightContainerElem,'scrolling--middle');}}}},handleUpdateAggData(){return loadTableData(internalData.tableSynchData,true);},updateZindex(){if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<(0,_utils.getLastZIndex)()){internalData.tZindex=(0,_utils.nextZIndex)();}},handleCheckedCheckboxRow,/**
804
806
  * 行 hover 事件