vxe-table 3.13.19 → 3.13.21

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 (37) hide show
  1. package/es/grid/src/grid.js +17 -8
  2. package/es/style.css +1 -1
  3. package/es/table/src/body.js +11 -6
  4. package/es/table/src/footer.js +7 -2
  5. package/es/table/src/methods.js +197 -62
  6. package/es/table/src/util.js +18 -5
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/grid/src/grid.js +17 -8
  10. package/lib/grid/src/grid.min.js +1 -1
  11. package/lib/index.umd.js +284 -97
  12. package/lib/index.umd.min.js +1 -1
  13. package/lib/style.css +1 -1
  14. package/lib/table/src/body.js +10 -5
  15. package/lib/table/src/body.min.js +1 -1
  16. package/lib/table/src/footer.js +7 -2
  17. package/lib/table/src/footer.min.js +1 -1
  18. package/lib/table/src/methods.js +228 -75
  19. package/lib/table/src/methods.min.js +1 -1
  20. package/lib/table/src/util.js +21 -5
  21. package/lib/table/src/util.min.js +1 -1
  22. package/lib/ui/index.js +1 -1
  23. package/lib/ui/index.min.js +1 -1
  24. package/lib/ui/src/log.js +1 -1
  25. package/lib/ui/src/log.min.js +1 -1
  26. package/package.json +2 -2
  27. package/packages/grid/src/grid.ts +18 -8
  28. package/packages/table/src/body.ts +10 -5
  29. package/packages/table/src/footer.ts +7 -2
  30. package/packages/table/src/methods.ts +218 -69
  31. package/packages/table/src/util.ts +20 -5
  32. /package/es/{iconfont.1741224103306.ttf → iconfont.1741336846919.ttf} +0 -0
  33. /package/es/{iconfont.1741224103306.woff → iconfont.1741336846919.woff} +0 -0
  34. /package/es/{iconfont.1741224103306.woff2 → iconfont.1741336846919.woff2} +0 -0
  35. /package/lib/{iconfont.1741224103306.ttf → iconfont.1741336846919.ttf} +0 -0
  36. /package/lib/{iconfont.1741224103306.woff → iconfont.1741336846919.woff} +0 -0
  37. /package/lib/{iconfont.1741224103306.woff2 → iconfont.1741336846919.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,{lastScrollTime:e,isDragResize:t}=e;return!!(t||e&&Date.now()<e+l)};function renderLine(e,l,t,r){var l=l.$parent,{row:o,column:a}=t,s=l.afterFullData,i=l.treeConfig,d=l.computeTreeOpts,{slots:a,treeNode:n}=a,c=l.fullAllDataRowIdData;if(a&&a.line)return l.callSlot(a.line,t,e);a=c[(0,_util.getRowid)(l,o)];let p=0,u=null;a&&(p=a.level,u=a.items[a.treeIndex-1]);c=l.eqRow(s[0],o);return i&&n&&(d.showLine||d.line)?[e("div",{key:"tl",class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${c?1:(0,_util.calcTreeLine)(t,u)}px`,bottom:`-${Math.floor(r/2)}px`,left:p*d.indent+(p?2-(0,_util.getOffsetSize)(l):0)+16+"px"}})])]:[]}function renderTdColumn(e,A,l,t,r,q,L,o,U,a,s,i,H,N,d){let n=A.$parent;var F=n,c=n,p=n.fullAllDataRowIdData,{columnKey:F,resizable:u,showOverflow:g,border:V,height:x,cellClassName:X,cellStyle:j,align:P,spanMethod:K,mouseConfig:Y,editConfig:W,editRules:v,tooltipConfig:m,padding:w}=F,{tableData:c,dragRow:G,overflowX:J,currentColumn:Q,scrollXLoad:Z,scrollYLoad:h,calcCellHeightFlag:y,resizeHeightFlag:f,mergeList:ee,editStore:le,isAllOverflow:te,validErrorMaps:b}=c,{afterFullData:re,scrollXStore:oe,scrollYStore:ae}=n,se=n.computeCellOpts,C=n.computeValidOpts,ie=n.computeCheckboxOpts,de=n.computeEditOpts,ne=n.computeTooltipOpts,{isAllColumnDrag:ce,isAllRowDrag:pe}=n.resizableOpts,_=n.computeRowOpts,R=n.computeRowDragOpts,ue=n.computeDefaultRowHeight,y=y?se.height||_.height:0,{disabledMethod:E,isCrossDrag:ge,isPeerDrag:xe}=R,ve=n.computeColumnOpts,me=n.computeMouseOpts,we=n.computeAreaOpts.selectCellToRow,{type:he,cellRender:ye,editRender:fe,align:be,showOverflow:Ce,className:_e,treeNode:Re,rowResize:Ee,padding:S,verticalAlign:D,slots:Se}=i,O=se.verticalAlign,le=le.actived,p=p[t],De=i.id,T=fe||ye,T=T?renderer.get(T.name):null,Oe=T?T.tableCellClassName||T.cellClassName:null,Te=T?T.tableCellStyle||T.cellStyle:"";let $e=ne.showAll;var ne=n.getColumnIndex(i),$=n.getVTColumnIndex(i),Ie=(0,_utils.isEnableConf)(fe),f=f?p.resizeHeight:0;let I=r?i.fixed!==r:i.fixed&&J;J=_xeUtils.default.eqNull(S)?null===w?se.padding:w:S,w=_xeUtils.default.eqNull(Ce)?g:Ce,S="ellipsis"===w;let k="title"===w,B=!0===w||"tooltip"===w;g=te||k||B||S,Ce=_xeUtils.default.isBoolean(i.resizable)?i.resizable:ve.resizable||u,w=!!y,u=0<f;let ke;y={},f=be||(T?T.tableCellAlign:"")||P,be=_xeUtils.default.eqNull(D)?O:D,T=b[t+":"+De],P=v&&C.showMessage&&("default"===C.message?x||1<c.length:"inline"===C.message),O={colid:De};let M={$table:n,$grid:n.xegrid,isEdit:!1,seq:l,rowid:t,row:o,rowIndex:U,$rowIndex:a,_rowIndex:s,column:i,columnIndex:ne,$columnIndex:H,_columnIndex:$,fixed:r,type:renderType,isHidden:!!I,level:L,visibleData:re,data:c,items:d},z=!1,Be=!1;if((z=_.drag?"row"===R.trigger||i.dragSort&&"cell"===R.trigger:z)&&(Be=!(!E||!E(M))),(k||B||$e||m)&&(y.mouseenter=e=>{isVMScrollProcess(n)||(k?(0,_dom.updateCellTitle)(e.currentTarget,i):(B||$e)&&n.triggerBodyTooltipEvent(e,M),n.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(B||$e||m)&&(y.mouseleave=e=>{isVMScrollProcess(n)||((B||$e)&&n.handleTargetLeaveEvent(e),n.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(z||ie.range||Y)&&(y.mousedown=e=>{n.triggerCellMousedownEvent(e,M)}),z&&(y.mouseup=n.triggerCellMouseupEvent),y.click=e=>{n.triggerCellClickEvent(e,M)},y.dblclick=e=>{n.triggerCellDblclickEvent(e,M)},ee.length){D=(0,_util.mergeBodyMethod)(ee,s,$);if(D){var{rowspan:b,colspan:v}=D;if(!b||!v)return null;1<b&&(O.rowspan=b),1<v&&(O.colspan=v)}}else if(K){var{rowspan:x=1,colspan:l=1}=K(M)||{};if(!x||!l)return null;1<x&&(O.rowspan=x),1<l&&(O.colspan=l)}!(I=I&&ee&&(1<O.colspan||1<O.rowspan)?!1:I)&&W&&(fe||ye)&&(de.showStatus||de.showUpdateStatus)&&(ke=n.isUpdateByRow(o,i.field));U=h&&!g,a=p.resizeHeight||se.height||_.height||p.height||ue,ne=H===N.length-1,re=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let Me=!1;G&&(0,_util.getRowid)(n,G)===t||(h&&(s<ae.visibleStartIndex-ae.preloadSize||s>ae.visibleEndIndex+ae.preloadSize)||Z&&!i.fixed&&($<oe.visibleStartIndex-oe.preloadSize||$>oe.visibleEndIndex+oe.preloadSize))&&(Me=!0);c={},h||g||w||u?c.height=a+"px":c.minHeight=a+"px",d=[];I&&te?d.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:c})):(d.push(...renderLine(e,A,M,a),e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:c,attrs:{title:k?n.getCellLabel(o,i):null}},Me?[]:[e("div",{attrs:{colid:De,rowid:t},class:"vxe-cell--wrapper"},i.renderCell(e,M))])),P&&T&&(R=T.rule,E=Se?Se.valid:null,m=Object.assign(Object.assign(Object.assign({},M),T),{rule:T}),d.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(C.className,T)],style:R&&R.maxWidth?{width:R.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(C.theme||"normal")},[E?n.callSlot(E,m,e):[e("span",{class:"vxe-cell--valid-error-msg"},T.content)]])]))));let ze=!1;return Y&&me.area&&we&&(($||!0!==we)&&we!==i.field||(ze=!0)),!I&&Ce&&ce&&d.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!V||"none"===V}],on:{mousedown:e=>n.handleColResizeMousedownEvent(e,r,M),dblclick:e=>n.handleColResizeDblclickEvent(e,M)}})),(Ee||pe)&&_.resizable&&d.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>n.handleRowResizeMousedownEvent(e,M),dblclick:e=>n.handleRowResizeDblclickEvent(e,M)}})),e("td",{class:["vxe-body--column",De,be?"col--vertical-"+be:"",f?"col--"+f:"",he?"col--"+he:"",{"col--last":ne,"col--tree-node":Re,"col--edit":Ie,"col--ellipsis":g,"col--cs-height":w,"col--rs-height":u,"col--to-row":ze,"col--auto-height":U,"fixed--width":!re,"fixed--hidden":I,"is--padding":J,"is--progress":I&&te||Me,"is--drag-cell":z&&(ge||xe||!L),"is--drag-disabled":Be,"col--dirty":ke,"col--active":W&&Ie&&le.row===o&&(le.column===i||"row"===de.mode),"col--valid-error":!!T,"col--current":Q===i},(0,_utils.getClass)(Oe,M),(0,_utils.getClass)(_e,M),(0,_utils.getClass)(X,M)],key:F||Z||h||ve.useKey||_.useKey||ve.drag?i.id:H,attrs:O,style:Object.assign({},_xeUtils.default.isFunction(Te)?Te(M):Te,_xeUtils.default.isFunction(j)?j(M):j),on:y},q&&I?[]:d)}function renderRows(m,w,h,y,f,b){let C=w.$parent;var e=C,l=C,t=C;let{stripe:_,rowKey:R,highlightHoverRow:E,rowClassName:S,rowStyle:D,editConfig:O,treeConfig:T}=e,{hasFixedColumn:$,treeExpandedMaps:I,isColLoading:k,scrollXLoad:B,scrollYLoad:M,isAllOverflow:z,rowExpandedMaps:A,expandColumn:q,selectRadioRow:L,pendingRowMaps:U,isDragColMove:H,rowExpandHeightFlag:N}=l,F=t.fullAllDataRowIdData,W=C.computeCheckboxOpts,G=C.computeRadioOpts,V=C.computeTreeOpts,X=C.computeEditOpts,j=C.computeRowOpts,P=C.computeColumnOpts,J=C.computeColumnDragOpts,{transform:K,seqMode:Q}=V,Z=V.children||V.childrenField,Y=[];return f.forEach((t,r)=>{var e={};let o,a=(o=C.getRowIndex(t),(j.isHover||E)&&(e.mouseenter=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),(0,_util.getRowid)(C,t));var l=F[a];let s=0,i=-1,d=0;l&&(s=l.level,i=T&&K&&"increasing"===Q?l._index+1:l.seq,d=l._index);var n={$table:C,seq:i,rowid:a,fixed:h,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},c=q&&!!A[a];let p=!1,u=[],g=!1;O&&(g=C.isInsertByRow(t)),!T||M||K||(u=t[Z],p=u&&u.length&&!!I[a]),!j.drag||T&&!K||(e.dragstart=C.handleRowDragDragstartEvent,e.dragend=C.handleRowDragDragendEvent,e.dragover=C.handleRowDragDragoverEvent);var x=["vxe-body--row",T?"row--level-"+s:"",{"row--stripe":_&&(d+1)%2==0,"is--new":g,"is--expand-row":c,"is--expand-tree":p,"row--new":g&&(X.showStatus||X.showInsertStatus),"row--radio":G.highlight&&L===t,"row--checked":W.highlight&&C.isCheckedByCheckboxRow(t),"row--pending":!!U[a]},S?_xeUtils.default.isFunction(S)?S(n):S:""],v=b.map((e,l)=>renderTdColumn(m,w,i,a,h,y,s,t,o,r,d,e,l,b,f));Y.push(!k&&P.drag&&J.animation?m("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(H?"":"-disabled")},class:x,attrs:{rowid:a},style:D?_xeUtils.default.isFunction(D)?D(n):D:void 0,key:R||B||M||j.useKey||j.drag||P.drag||T?a:r,nativeOn:e},v):m("tr",{class:x,attrs:{rowid:a},style:D?_xeUtils.default.isFunction(D)?D(n):D:void 0,key:R||B||M||j.useKey||j.drag||P.drag||T?a:r,on:e},v)),c&&({height:x,padding:n,mode:e}=C.computeExpandOpts,"fixed"===e?Y.push(m("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+a,attrs:{rowid:a}},[m("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:`${N?l.expandHeight||x:0}px`}})])):(v={},c=(x&&(v.height=x+"px"),T&&(v.paddingLeft=s*V.indent+30+"px"),q).showOverflow,e=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?z:c,l={$table:C,seq:i,column:q,fixed:h,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},Y.push(m("tr",{class:["vxe-body--expanded-row",{"is--padding":n}],key:"expand_"+a},[m("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!$,"col--ellipsis":e}],attrs:{colspan:b.length}},[m("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":x}],style:v},[q.renderData(m,l)])])])))),p&&Y.push(...renderRows(m,w,h,y,u,b))}),Y}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.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},render(t){let l=this.$parent;var e=l,r=l,o=l,{xID:a,$scopedSlots:s}=l;let{fixedColumn:i,fixedType:d,tableColumn:n}=this;var{spanMethod:c,footerSpanMethod:p,mouseConfig:u}=e,{isGroup:r,tableData:g,isRowLoading:x,isColLoading:v,overflowX:m,scrollXLoad:w,scrollYLoad:h,isAllOverflow:y,isDragRowMove:f,expandColumn:b,dragRow:C,dragCol:_}=r,{visibleColumn:o,fullAllDataRowIdData:R,fullColumnIdData:E}=o,S=l.computeRowOpts,D=l.computeEmptyOpts,O=l.computeMouseOpts,T=l.computeRowDragOpts,$=l.computeExpandOpts;let I=g,k=n,B=!1;!(w||h||y)||b&&"fixed"!==$.mode||c||p||(B=!0),!d&&m||(k=o),d&&B&&(k=i||[]),h&&C&&2<I.length&&(g=R[(0,_util.getRowid)(l,C)])&&(y=g._index,b=I[0],$=I[I.length-1],c=R[(0,_util.getRowid)(l,b)],p=R[(0,_util.getRowid)(l,$)],c)&&p&&(m=c._index,o=p._index,y<m?I=[C].concat(I):o<y&&(I=I.concat([C]))),d||r||w&&_&&2<k.length&&(h=E[_.id])&&(g=h._index,b=k[0],R=k[k.length-1],$=E[b.id],c=E[R.id],$)&&c&&(p=$._index,m=c._index,g<p?k=[_].concat(k):m<g&&(k=k.concat([_])));let M;return M=s.empty?s.empty.call(this,{$table:l,$grid:l.xegrid}):(y=(o=D.name?renderer.get(D.name):null)?o.renderTableEmpty||o.renderTableEmptyView||o.renderEmpty:null)?(0,_vn.getSlotVNs)(y.call(this,t,D,{$table:l})):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:a}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,d)}}},[d?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:a,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refBodyColgroup"},k.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),!x&&!v&&S.drag&&T.animation?t("transition-group",{ref:"refBodyTBody",props:{tag:"tbody",name:"vxe-body--row-list"+(f?"":"-disabled")}},renderRows(t,this,d,B,I,k)):t("tbody",{ref:"refBodyTBody"},renderRows(t,this,d,B,I,k))]),t("div",{class:"vxe-table--checkbox-range"}),u&&O.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},O.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:d,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"}),t("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(l),d?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},M)])])])}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,{lastScrollTime:e,isDragResize:t}=e;return!!(t||e&&Date.now()<e+l)};function renderLine(e,l,t,r){var l=l.$parent,{row:o,column:a}=t,s=l.afterFullData,i=l.treeConfig,d=l.computeTreeOpts,{slots:a,treeNode:n}=a,c=l.fullAllDataRowIdData;if(a&&a.line)return l.callSlot(a.line,t,e);a=c[(0,_util.getRowid)(l,o)];let p=0,u=null;a&&(p=a.level,u=a.items[a.treeIndex-1]);c=l.eqRow(s[0],o);return i&&n&&(d.showLine||d.line)?[e("div",{key:"tl",class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${c?1:(0,_util.calcTreeLine)(t,u)}px`,bottom:`-${Math.floor(r/2)}px`,left:p*d.indent+(p?2-(0,_util.getOffsetSize)(l):0)+16+"px"}})])]:[]}function renderTdColumn(e,A,l,t,r,q,L,o,U,a,s,i,H,N,d){let n=A.$parent;var F=n,c=n,p=n.fullAllDataRowIdData,{columnKey:F,resizable:u,showOverflow:g,border:V,height:x,cellClassName:X,cellStyle:j,align:P,spanMethod:K,mouseConfig:Y,editConfig:W,editRules:v,tooltipConfig:m,padding:w}=F,{tableData:c,dragRow:G,overflowX:J,currentColumn:Q,scrollXLoad:Z,scrollYLoad:h,calcCellHeightFlag:y,resizeHeightFlag:f,mergeList:ee,editStore:le,isAllOverflow:te,validErrorMaps:b}=c,{afterFullData:re,scrollXStore:oe,scrollYStore:ae}=n,se=n.computeCellOpts,C=n.computeValidOpts,ie=n.computeCheckboxOpts,de=n.computeEditOpts,ne=n.computeTooltipOpts,{isAllColumnDrag:ce,isAllRowDrag:pe}=n.resizableOpts,_=n.computeRowOpts,R=n.computeRowDragOpts,ue=n.computeDefaultRowHeight,y=y?se.height||_.height:0,{disabledMethod:E,isCrossDrag:ge,isPeerDrag:xe}=R,ve=n.computeColumnOpts,me=n.computeMouseOpts,we=n.computeAreaOpts.selectCellToRow,{type:he,cellRender:ye,editRender:fe,align:be,showOverflow:Ce,className:_e,treeNode:Re,rowResize:Ee,padding:S,verticalAlign:D,slots:Se}=i,O=se.verticalAlign,le=le.actived,p=p[t],De=i.id,T=fe||ye,T=T?renderer.get(T.name):null,Oe=T?T.tableCellClassName||T.cellClassName:null,Te=T?T.tableCellStyle||T.cellStyle:"";let $e=ne.showAll;var ne=n.getColumnIndex(i),$=n.getVTColumnIndex(i),Ie=(0,_utils.isEnableConf)(fe),f=f?p.resizeHeight:0;let I=r?i.fixed!==r:i.fixed&&J;J=_xeUtils.default.eqNull(S)?null===w?se.padding:w:S,w=_xeUtils.default.eqNull(Ce)?g:Ce,S="ellipsis"===w;let k="title"===w,B=!0===w||"tooltip"===w;g=te||k||B||S,Ce=_xeUtils.default.isBoolean(i.resizable)?i.resizable:ve.resizable||u,w=!!y,u=0<f;let ke;y={},f=be||(T?T.tableCellAlign:"")||P,be=_xeUtils.default.eqNull(D)?O:D,T=b[t+":"+De],P=v&&C.showMessage&&("default"===C.message?x||1<c.length:"inline"===C.message),O={colid:De};let M={$table:n,$grid:n.xegrid,isEdit:!1,seq:l,rowid:t,row:o,rowIndex:U,$rowIndex:a,_rowIndex:s,column:i,columnIndex:ne,$columnIndex:H,_columnIndex:$,fixed:r,type:renderType,isHidden:!!I,level:L,visibleData:re,data:c,items:d},z=!1,Be=!1,Me=((z=_.drag?"row"===R.trigger||i.dragSort&&"cell"===R.trigger:z)&&(Be=!(!E||!E(M))),(k||B||$e||m)&&(y.mouseenter=e=>{isVMScrollProcess(n)||(k?(0,_dom.updateCellTitle)(e.currentTarget,i):(B||$e)&&n.triggerBodyTooltipEvent(e,M),n.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(B||$e||m)&&(y.mouseleave=e=>{isVMScrollProcess(n)||((B||$e)&&n.handleTargetLeaveEvent(e),n.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(z||ie.range||Y)&&(y.mousedown=e=>{n.triggerCellMousedownEvent(e,M)}),z&&(y.mouseup=n.triggerCellMouseupEvent),y.click=e=>{n.triggerCellClickEvent(e,M)},!(y.dblclick=e=>{n.triggerCellDblclickEvent(e,M)}));if(ee.length){D=(0,_util.mergeBodyMethod)(ee,s,$);if(D){var{rowspan:b,colspan:v}=D;if(!b||!v)return null;1<b&&(Me=!0,O.rowspan=b),1<v&&(Me=!0,O.colspan=v)}}else if(K){var{rowspan:x=1,colspan:l=1}=K(M)||{};if(!x||!l)return null;1<x&&(O.rowspan=x),1<l&&(O.colspan=l)}!(I=I&&ee&&(1<O.colspan||1<O.rowspan)?!1:I)&&W&&(fe||ye)&&(de.showStatus||de.showUpdateStatus)&&(ke=n.isUpdateByRow(o,i.field));U=h&&!g,a=p.resizeHeight||se.height||_.height||p.height||ue,ne=H===N.length-1,re=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let ze=!1;Me||G&&(0,_util.getRowid)(n,G)===t||(h&&(s<ae.visibleStartIndex-ae.preloadSize||s>ae.visibleEndIndex+ae.preloadSize)||Z&&!i.fixed&&($<oe.visibleStartIndex-oe.preloadSize||$>oe.visibleEndIndex+oe.preloadSize))&&(ze=!0);c={},h||g||w||u?c.height=a+"px":c.minHeight=a+"px",d=[];I&&te?d.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:c})):(d.push(...renderLine(e,A,M,a),e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:c,attrs:{title:k?n.getCellLabel(o,i):null}},ze?[]:[e("div",{attrs:{colid:De,rowid:t},class:"vxe-cell--wrapper"},i.renderCell(e,M))])),P&&T&&(R=T.rule,E=Se?Se.valid:null,m=Object.assign(Object.assign(Object.assign({},M),T),{rule:T}),d.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(C.className,T)],style:R&&R.maxWidth?{width:R.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(C.theme||"normal")},[E?n.callSlot(E,m,e):[e("span",{class:"vxe-cell--valid-error-msg"},T.content)]])]))));let Ae=!1;return Y&&me.area&&we&&(($||!0!==we)&&we!==i.field||(Ae=!0)),!I&&Ce&&ce&&d.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!V||"none"===V}],on:{mousedown:e=>n.handleColResizeMousedownEvent(e,r,M),dblclick:e=>n.handleColResizeDblclickEvent(e,M)}})),(Ee||pe)&&_.resizable&&d.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>n.handleRowResizeMousedownEvent(e,M),dblclick:e=>n.handleRowResizeDblclickEvent(e,M)}})),e("td",{class:["vxe-body--column",De,be?"col--vertical-"+be:"",f?"col--"+f:"",he?"col--"+he:"",{"col--last":ne,"col--tree-node":Re,"col--edit":Ie,"col--ellipsis":g,"col--cs-height":w,"col--rs-height":u,"col--to-row":Ae,"col--auto-height":U,"fixed--width":!re,"fixed--hidden":I,"is--padding":J,"is--progress":I&&te||ze,"is--drag-cell":z&&(ge||xe||!L),"is--drag-disabled":Be,"col--dirty":ke,"col--active":W&&Ie&&le.row===o&&(le.column===i||"row"===de.mode),"col--valid-error":!!T,"col--current":Q===i},(0,_utils.getClass)(Oe,M),(0,_utils.getClass)(_e,M),(0,_utils.getClass)(X,M)],key:F||Z||h||ve.useKey||_.useKey||ve.drag?i.id:H,attrs:O,style:Object.assign({},_xeUtils.default.isFunction(Te)?Te(M):Te,_xeUtils.default.isFunction(j)?j(M):j),on:y},q&&I?[]:d)}function renderRows(m,w,h,y,f,b){let C=w.$parent;var e=C,l=C,t=C;let{stripe:_,rowKey:R,highlightHoverRow:E,rowClassName:S,rowStyle:D,editConfig:O,treeConfig:T}=e,{hasFixedColumn:$,treeExpandedMaps:I,isColLoading:k,scrollXLoad:B,scrollYLoad:M,isAllOverflow:z,rowExpandedMaps:A,expandColumn:q,selectRadioRow:L,pendingRowMaps:U,isDragColMove:H,rowExpandHeightFlag:N}=l,F=t.fullAllDataRowIdData,W=C.computeCheckboxOpts,G=C.computeRadioOpts,V=C.computeTreeOpts,X=C.computeEditOpts,j=C.computeRowOpts,P=C.computeColumnOpts,J=C.computeColumnDragOpts,{transform:K,seqMode:Q}=V,Z=V.children||V.childrenField,Y=[];return f.forEach((t,r)=>{var e={};let o,a=(o=C.getRowIndex(t),(j.isHover||E)&&(e.mouseenter=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),(0,_util.getRowid)(C,t));var l=F[a];let s=0,i=-1,d=0;l&&(s=l.level,i=T&&K&&"increasing"===Q?l._index+1:l.seq,d=l._index);var n={$table:C,seq:i,rowid:a,fixed:h,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},c=q&&!!A[a];let p=!1,u=[],g=!1;O&&(g=C.isInsertByRow(t)),!T||M||K||(u=t[Z],p=u&&u.length&&!!I[a]),!j.drag||T&&!K||(e.dragstart=C.handleRowDragDragstartEvent,e.dragend=C.handleRowDragDragendEvent,e.dragover=C.handleRowDragDragoverEvent);var x=["vxe-body--row",T?"row--level-"+s:"",{"row--stripe":_&&(d+1)%2==0,"is--new":g,"is--expand-row":c,"is--expand-tree":p,"row--new":g&&(X.showStatus||X.showInsertStatus),"row--radio":G.highlight&&L===t,"row--checked":W.highlight&&C.isCheckedByCheckboxRow(t),"row--pending":!!U[a]},S?_xeUtils.default.isFunction(S)?S(n):S:""],v=b.map((e,l)=>renderTdColumn(m,w,i,a,h,y,s,t,o,r,d,e,l,b,f));Y.push(!k&&P.drag&&J.animation?m("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(H?"":"-disabled")},class:x,attrs:{rowid:a},style:D?_xeUtils.default.isFunction(D)?D(n):D:void 0,key:R||B||M||j.useKey||j.drag||P.drag||T?a:r,nativeOn:e},v):m("tr",{class:x,attrs:{rowid:a},style:D?_xeUtils.default.isFunction(D)?D(n):D:void 0,key:R||B||M||j.useKey||j.drag||P.drag||T?a:r,on:e},v)),c&&({height:x,padding:n,mode:e}=C.computeExpandOpts,"fixed"===e?Y.push(m("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+a,attrs:{rowid:a}},[m("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:`${N?l.expandHeight||x:0}px`}})])):(v={},c=(x&&(v.height=x+"px"),T&&(v.paddingLeft=s*V.indent+30+"px"),q).showOverflow,e=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?z:c,l={$table:C,seq:i,column:q,fixed:h,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},Y.push(m("tr",{class:["vxe-body--expanded-row",{"is--padding":n}],key:"expand_"+a},[m("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!$,"col--ellipsis":e}],attrs:{colspan:b.length}},[m("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":x}],style:v},[q.renderData(m,l)])])])))),p&&Y.push(...renderRows(m,w,h,y,u,b))}),Y}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.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},render(t){let l=this.$parent;var e=l,r=l,o=l,{xID:a,$scopedSlots:s}=l;let{fixedColumn:i,fixedType:d,tableColumn:n}=this;var{spanMethod:c,footerSpanMethod:p,mouseConfig:u}=e,{isGroup:r,tableData:g,isRowLoading:x,isColLoading:v,overflowX:m,scrollXLoad:w,scrollYLoad:h,isAllOverflow:y,isDragRowMove:f,expandColumn:b,dragRow:C,dragCol:_}=r,{visibleColumn:o,fullAllDataRowIdData:R,fullColumnIdData:E}=o,S=l.computeRowOpts,D=l.computeEmptyOpts,O=l.computeMouseOpts,T=l.computeRowDragOpts,$=l.computeExpandOpts;let I=g,k=n,B=!1;!(w||h||y)||b&&"fixed"!==$.mode||c||p||(B=!0),!d&&m||(k=o),d&&B&&(k=i||[]),h&&C&&2<I.length&&(g=R[(0,_util.getRowid)(l,C)])&&(y=g._index,b=I[0],$=I[I.length-1],c=R[(0,_util.getRowid)(l,b)],p=R[(0,_util.getRowid)(l,$)],c)&&p&&(m=c._index,o=p._index,y<m?I=[C].concat(I):o<y&&(I=I.concat([C]))),d||r||w&&_&&2<k.length&&(h=E[_.id])&&(g=h._index,b=k[0],R=k[k.length-1],$=E[b.id],c=E[R.id],$)&&c&&(p=$._index,m=c._index,g<p?k=[_].concat(k):m<g&&(k=k.concat([_])));let M;return M=s.empty?s.empty.call(this,{$table:l,$grid:l.xegrid}):(y=(o=D.name?renderer.get(D.name):null)?o.renderTableEmpty||o.renderTableEmptyView||o.renderEmpty:null)?(0,_vn.getSlotVNs)(y.call(this,t,D,{$table:l})):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:a}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,d)}}},[d?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:a,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refBodyColgroup"},k.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),!x&&!v&&S.drag&&T.animation?t("transition-group",{ref:"refBodyTBody",props:{tag:"tbody",name:"vxe-body--row-list"+(f?"":"-disabled")}},renderRows(t,this,d,B,I,k)):t("tbody",{ref:"refBodyTBody"},renderRows(t,this,d,B,I,k))]),t("div",{class:"vxe-table--checkbox-range"}),u&&O.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},O.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:d,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"}),t("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(l),d?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},M)])])])}};
@@ -156,6 +156,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
156
156
  cell: evnt.currentTarget
157
157
  }, cellParams), evnt);
158
158
  };
159
+ let isMergeCell = false;
159
160
  // 合并行或列
160
161
  if (mergeFooterList.length) {
161
162
  const spanRest = mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex);
@@ -168,9 +169,11 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
168
169
  return null;
169
170
  }
170
171
  if (rowspan > 1) {
172
+ isMergeCell = true;
171
173
  attrs.rowspan = rowspan;
172
174
  }
173
175
  if (colspan > 1) {
176
+ isMergeCell = true;
174
177
  attrs.colspan = colspan;
175
178
  }
176
179
  }
@@ -193,8 +196,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
193
196
  const isLastColumn = $columnIndex === tableColumn.length - 1;
194
197
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
195
198
  let isVNPreEmptyStatus = false;
196
- if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
197
- isVNPreEmptyStatus = true;
199
+ if (!isMergeCell) {
200
+ if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
201
+ isVNPreEmptyStatus = true;
202
+ }
198
203
  }
199
204
  const tcStyle = {};
200
205
  if (hasEllipsis) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function mergeFooterMethod(l,r,t){for(let e=0;e<l.length;e++){var{row:o,col:i,rowspan:n,colspan:a}=l[e];if(-1<i&&-1<o&&n&&a){if(o===r&&i===t)return{rowspan:n,colspan:a};if(o<=r&&r<o+n&&i<=t&&t<i+a)return{rowspan:0,colspan:0}}}}function renderRows(y,e,C,_,F,T,$){let S=e.$parent;var l=S,r=S,t=S;let E=e.fixedType,{resizable:I,border:O,footerCellClassName:R,footerCellStyle:z,footerAlign:D,footerSpanMethod:k,align:U,columnKey:A,showFooterOverflow:M}=l,{scrollXLoad:q,scrollYLoad:L,overflowX:X,currentColumn:H,mergeFooterList:N}=r,j=t.scrollXStore,V=S.computeTooltipOpts,B=S.resizableOpts.isAllColumnDrag,K=S.computeColumnOpts;e=S.computeDefaultRowHeight;let W=S.computeCellOpts,Y=S.computeFooterCellOpts,G=(0,_util.getCellHeight)(Y.height||W.height)||e;return C.map((l,e)=>{var{type:r,showFooterOverflow:t,footerAlign:o,align:i,footerClassName:n,editRender:a,cellRender:s}=l,d=l.id,a=a||s,s=a?renderer.get(a.name):null;let u=V.showAll;var a=l.children&&l.children.length,a=E?l.fixed!==E&&!a:l.fixed&&X,c=(_xeUtils.default.isBoolean(Y.padding)?Y:W).padding,t=_xeUtils.default.eqNull(t)?M:t,o=o||(s?s.tableFooterCellAlign:"")||D||i||(s?s.tableCellAlign:"")||U;let p="ellipsis"===t,f="title"===t,x=!0===t||"tooltip"===t,m=f||x||p;var i=_xeUtils.default.isBoolean(l.resizable)?l.resizable:K.resizable||I,s={colid:d},t={},g=S.getColumnIndex(l),v=S.getVTColumnIndex(l),h=v;let w={$table:S,$grid:S.xegrid,row:F,rowIndex:$,_rowIndex:$,$rowIndex:T,column:l,columnIndex:g,$columnIndex:e,_columnIndex:v,itemIndex:h,items:F,fixed:E,type:renderType,data:_};if(q&&!m&&(p=m=!0),(f||x||u)&&(t.mouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(x||u)&&S.triggerFooterTooltipEvent(e,w)}),(x||u)&&(t.mouseleave=e=>{(x||u)&&S.handleTargetLeaveEvent(e)}),t.click=e=>{S.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},w),e)},t.dblclick=e=>{S.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},w),e)},N.length){g=mergeFooterMethod(N,$,v);if(g){var{rowspan:h,colspan:g}=g;if(!h||!g)return null;1<h&&(s.rowspan=h),1<g&&(s.colspan=g)}}else if(k){var{rowspan:h=1,colspan:g=1}=k(w)||{};if(!h||!g)return null;1<h&&(s.rowspan=h),1<g&&(s.colspan=g)}h=e===C.length-1,g=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let b=!1;q&&!l.fixed&&(v<j.visibleStartIndex-j.preloadSize||v>j.visibleEndIndex+j.preloadSize)&&(b=!0);v={};return m?v.height=G+"px":v.minHeight=G+"px",y("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+r]:r,"col--last":h,"fixed--width":!g,"fixed--hidden":a,"is--padding":c,"col--ellipsis":m,"col--current":H===l},(0,_utils.getClass)(n,w),(0,_utils.getClass)(R,w)],attrs:s,style:z?_xeUtils.default.isFunction(z)?z(w):z:void 0,on:t,key:A||q||L||K.useKey||K.drag?l.id:e},[y("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":x,"c--ellipsis":p}],style:v},b?[]:[y("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},l.renderFooter(y,w))]),!a&&i&&B?y("div",{class:["vxe-cell--col-resizable",{"is--line":!O||"none"===O}],on:{mousedown:e=>S.handleColResizeMousedownEvent(e,E,w),dblclick:e=>S.handleColResizeDblclickEvent(e,w)}}):renderEmptyElement(S)])})}function renderHeads(o,i,n){let a=i.$parent;var e=a,l=a;let{fixedType:s,footerTableData:d}=i,{footerRowClassName:u,footerRowStyle:c}=e,{isColLoading:p,isDragColMove:f}=l,x=a.computeColumnOpts,m=a.computeColumnDragOpts;return d.map((e,l)=>{var r=l,t={$table:a,row:e,_rowIndex:r,$rowIndex:l,fixed:s,type:renderType};return!p&&x.drag&&m.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(t):u:""],style:c?_xeUtils.default.isFunction(c)?c(t):c:void 0}},renderRows(o,i,n,d,e,l,r)):o("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(t):u:""],style:c?_xeUtils.default.isFunction(c)?c(t):c:void 0},renderRows(o,i,n,d,e,l,r))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-footer-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refFooterScroll,r[l+"table"]=e.$refs.refFooterTable,r[l+"colgroup"]=e.$refs.refFooterColgroup,r[l+"list"]=e.$refs.refFooterTFoot,r[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.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},render(r){let l=this.$parent;var e=l,t=l,o=l,i=l.xID;let{fixedType:n,fixedColumn:a,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:c}=o,{isGroup:t,overflowX:p,scrollXLoad:f,scrollYLoad:x,dragCol:m}=t;let g=s,v=!(f||x||u)||e||d?!1:!0;return!n&&p||(g=o),n&&v&&(g=a||[]),n||t||f&&m&&2<g.length&&(x=c[m.id])&&(u=x._index,e=g[0],d=g[g.length-1],p=c[e.id],o=c[d.id],p)&&o&&(t=p._index,f=o._index,u<t?g=[m].concat(g):f<u&&(g=g.concat([m]))),r("div",{ref:"refElem",class:["vxe-table--footer-wrapper",n?`fixed-${n}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,n)}}},[n?renderEmptyElement(l):r("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refFooterColgroup"},g.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("tfoot",{ref:"refFooterTFoot"},renderHeads(r,this,g))])])])}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function mergeFooterMethod(l,r,t){for(let e=0;e<l.length;e++){var{row:o,col:i,rowspan:n,colspan:a}=l[e];if(-1<i&&-1<o&&n&&a){if(o===r&&i===t)return{rowspan:n,colspan:a};if(o<=r&&r<o+n&&i<=t&&t<i+a)return{rowspan:0,colspan:0}}}}function renderRows(C,e,_,F,T,$,S){let E=e.$parent;var l=E,r=E,t=E;let I=e.fixedType,{resizable:O,border:R,footerCellClassName:z,footerCellStyle:D,footerAlign:k,footerSpanMethod:U,align:A,columnKey:M,showFooterOverflow:q}=l,{scrollXLoad:L,scrollYLoad:X,overflowX:H,currentColumn:N,mergeFooterList:j}=r,V=t.scrollXStore,B=E.computeTooltipOpts,K=E.resizableOpts.isAllColumnDrag,W=E.computeColumnOpts;e=E.computeDefaultRowHeight;let Y=E.computeCellOpts,G=E.computeFooterCellOpts,P=(0,_util.getCellHeight)(G.height||Y.height)||e;return _.map((l,e)=>{var{type:r,showFooterOverflow:t,footerAlign:o,align:i,footerClassName:n,editRender:a,cellRender:s}=l,d=l.id,a=a||s,s=a?renderer.get(a.name):null;let u=B.showAll;var a=l.children&&l.children.length,a=I?l.fixed!==I&&!a:l.fixed&&H,c=(_xeUtils.default.isBoolean(G.padding)?G:Y).padding,t=_xeUtils.default.eqNull(t)?q:t,o=o||(s?s.tableFooterCellAlign:"")||k||i||(s?s.tableCellAlign:"")||A;let p="ellipsis"===t,f="title"===t,x=!0===t||"tooltip"===t,m=f||x||p;var i=_xeUtils.default.isBoolean(l.resizable)?l.resizable:W.resizable||O,s={colid:d},t={},g=E.getColumnIndex(l),v=E.getVTColumnIndex(l),h=v;let w={$table:E,$grid:E.xegrid,row:T,rowIndex:S,_rowIndex:S,$rowIndex:$,column:l,columnIndex:g,$columnIndex:e,_columnIndex:v,itemIndex:h,items:T,fixed:I,type:renderType,data:F},b=(L&&!m&&(p=m=!0),(f||x||u)&&(t.mouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(x||u)&&E.triggerFooterTooltipEvent(e,w)}),(x||u)&&(t.mouseleave=e=>{(x||u)&&E.handleTargetLeaveEvent(e)}),t.click=e=>{E.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},w),e)},!(t.dblclick=e=>{E.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},w),e)}));if(j.length){g=mergeFooterMethod(j,S,v);if(g){var{rowspan:h,colspan:g}=g;if(!h||!g)return null;1<h&&(b=!0,s.rowspan=h),1<g&&(b=!0,s.colspan=g)}}else if(U){var{rowspan:h=1,colspan:g=1}=U(w)||{};if(!h||!g)return null;1<h&&(s.rowspan=h),1<g&&(s.colspan=g)}h=e===_.length-1,g=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let y=!1;b||L&&!l.fixed&&(v<V.visibleStartIndex-V.preloadSize||v>V.visibleEndIndex+V.preloadSize)&&(y=!0);v={};return m?v.height=P+"px":v.minHeight=P+"px",C("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+r]:r,"col--last":h,"fixed--width":!g,"fixed--hidden":a,"is--padding":c,"col--ellipsis":m,"col--current":N===l},(0,_utils.getClass)(n,w),(0,_utils.getClass)(z,w)],attrs:s,style:D?_xeUtils.default.isFunction(D)?D(w):D:void 0,on:t,key:M||L||X||W.useKey||W.drag?l.id:e},[C("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":x,"c--ellipsis":p}],style:v},y?[]:[C("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},l.renderFooter(C,w))]),!a&&i&&K?C("div",{class:["vxe-cell--col-resizable",{"is--line":!R||"none"===R}],on:{mousedown:e=>E.handleColResizeMousedownEvent(e,I,w),dblclick:e=>E.handleColResizeDblclickEvent(e,w)}}):renderEmptyElement(E)])})}function renderHeads(o,i,n){let a=i.$parent;var e=a,l=a;let{fixedType:s,footerTableData:d}=i,{footerRowClassName:u,footerRowStyle:c}=e,{isColLoading:p,isDragColMove:f}=l,x=a.computeColumnOpts,m=a.computeColumnDragOpts;return d.map((e,l)=>{var r=l,t={$table:a,row:e,_rowIndex:r,$rowIndex:l,fixed:s,type:renderType};return!p&&x.drag&&m.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(t):u:""],style:c?_xeUtils.default.isFunction(c)?c(t):c:void 0}},renderRows(o,i,n,d,e,l,r)):o("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(t):u:""],style:c?_xeUtils.default.isFunction(c)?c(t):c:void 0},renderRows(o,i,n,d,e,l,r))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-footer-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refFooterScroll,r[l+"table"]=e.$refs.refFooterTable,r[l+"colgroup"]=e.$refs.refFooterColgroup,r[l+"list"]=e.$refs.refFooterTFoot,r[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.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},render(r){let l=this.$parent;var e=l,t=l,o=l,i=l.xID;let{fixedType:n,fixedColumn:a,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:c}=o,{isGroup:t,overflowX:p,scrollXLoad:f,scrollYLoad:x,dragCol:m}=t;let g=s,v=!(f||x||u)||e||d?!1:!0;return!n&&p||(g=o),n&&v&&(g=a||[]),n||t||f&&m&&2<g.length&&(x=c[m.id])&&(u=x._index,e=g[0],d=g[g.length-1],p=c[e.id],o=c[d.id],p)&&o&&(t=p._index,f=o._index,u<t?g=[m].concat(g):f<u&&(g=g.concat([m]))),r("div",{ref:"refElem",class:["vxe-table--footer-wrapper",n?`fixed-${n}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,n)}}},[n?renderEmptyElement(l):r("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refFooterColgroup"},g.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("tfoot",{ref:"refFooterTFoot"},renderHeads(r,this,g))])])])}};
@@ -2546,6 +2546,10 @@ const Methods = {
2546
2546
  }
2547
2547
  return [];
2548
2548
  },
2549
+ getEl() {
2550
+ const $xeTable = this;
2551
+ return $xeTable.$refs.refElem;
2552
+ },
2549
2553
  /**
2550
2554
  * 获取父容器元素
2551
2555
  */
@@ -3007,24 +3011,26 @@ const Methods = {
3007
3011
  reactData.treeExpandedMaps = treeTempExpandedMaps;
3008
3012
  },
3009
3013
  cacheSourceMap(fullData) {
3014
+ const $xeTable = this;
3015
+ const props = $xeTable;
3016
+ const internalData = $xeTable;
3017
+ const {
3018
+ treeConfig
3019
+ } = props;
3020
+ const treeOpts = $xeTable.computeTreeOpts;
3010
3021
  let {
3011
- treeConfig,
3012
- treeOpts,
3013
3022
  sourceDataRowIdData
3014
- } = this;
3023
+ } = internalData;
3015
3024
  const sourceData = _xeUtils.default.clone(fullData, true);
3016
- const rowkey = (0, _util.getRowkey)(this);
3017
- sourceDataRowIdData = this.sourceDataRowIdData = {};
3025
+ const rowkey = (0, _util.getRowkey)($xeTable);
3026
+ sourceDataRowIdData = internalData.sourceDataRowIdData = {};
3018
3027
  const handleSourceRow = row => {
3019
- let rowid = (0, _util.getRowid)(this, row);
3028
+ let rowid = (0, _util.getRowid)($xeTable, row);
3020
3029
  if ((0, _utils.eqEmptyValue)(rowid)) {
3021
3030
  rowid = (0, _util.getRowUniqueId)();
3022
3031
  _xeUtils.default.set(row, rowkey, rowid);
3023
3032
  }
3024
- sourceDataRowIdData[rowid] = {
3025
- row,
3026
- rowid
3027
- };
3033
+ sourceDataRowIdData[rowid] = row;
3028
3034
  };
3029
3035
  // 源数据缓存
3030
3036
  if (treeConfig) {
@@ -3035,7 +3041,7 @@ const Methods = {
3035
3041
  } else {
3036
3042
  sourceData.forEach(handleSourceRow);
3037
3043
  }
3038
- this.tableSourceData = sourceData;
3044
+ internalData.tableSourceData = sourceData;
3039
3045
  },
3040
3046
  getParams() {
3041
3047
  return this.params;
@@ -3413,6 +3419,9 @@ const Methods = {
3413
3419
  keepSource,
3414
3420
  treeConfig
3415
3421
  } = props;
3422
+ const {
3423
+ editStore
3424
+ } = reactData;
3416
3425
  const {
3417
3426
  fullAllDataRowIdData,
3418
3427
  fullDataRowIdData,
@@ -3421,6 +3430,7 @@ const Methods = {
3421
3430
  tableFullData,
3422
3431
  afterFullData
3423
3432
  } = internalData;
3433
+ const removeTempMaps = Object.assign({}, editStore.removeMaps);
3424
3434
  const treeOpts = $xeTable.computeTreeOpts;
3425
3435
  const {
3426
3436
  transform
@@ -3455,6 +3465,7 @@ const Methods = {
3455
3465
  _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
3456
3466
  }
3457
3467
  if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3468
+ delete removeTempMaps[rowid];
3458
3469
  tableFullData.unshift(row);
3459
3470
  afterFullData.unshift(row);
3460
3471
  reDelFlag = true;
@@ -3466,6 +3477,7 @@ const Methods = {
3466
3477
  }
3467
3478
  if (rows) {
3468
3479
  if (reDelFlag) {
3480
+ editStore.removeMaps = removeTempMaps;
3469
3481
  $xeTable.updateFooter();
3470
3482
  $xeTable.cacheRowMap(false);
3471
3483
  $xeTable.handleTableData(treeConfig && transform);
@@ -3644,25 +3656,31 @@ const Methods = {
3644
3656
  },
3645
3657
  /**
3646
3658
  * 检查行或列数据是否发生改变
3647
- * @param {Row} row 行对象
3659
+ * @param {Row} rowOrId 行对象
3648
3660
  * @param {String} field 字段名
3649
3661
  */
3650
- isUpdateByRow(row, field) {
3662
+ isUpdateByRow(rowOrId, field) {
3663
+ const $xeTable = this;
3664
+ const props = $xeTable;
3665
+ const internalData = $xeTable;
3666
+ const {
3667
+ keepSource
3668
+ } = props;
3651
3669
  const {
3652
3670
  tableFullColumn,
3653
- keepSource,
3654
- sourceDataRowIdData,
3655
- fullDataRowIdData
3656
- } = this;
3671
+ fullDataRowIdData,
3672
+ sourceDataRowIdData
3673
+ } = internalData;
3657
3674
  if (keepSource) {
3658
- const rowid = (0, _util.getRowid)(this, row);
3675
+ const rowid = _xeUtils.default.isString(rowOrId) || _xeUtils.default.isNumber(rowOrId) ? rowOrId : (0, _util.getRowid)($xeTable, rowOrId);
3676
+ const rowRest = fullDataRowIdData[rowid];
3659
3677
  // 新增的数据不需要检测
3660
- if (!fullDataRowIdData[rowid]) {
3678
+ if (!rowRest) {
3661
3679
  return false;
3662
3680
  }
3663
- const oldRest = sourceDataRowIdData[rowid];
3664
- if (oldRest) {
3665
- const oRow = oldRest.row;
3681
+ const row = rowRest.row;
3682
+ const oRow = sourceDataRowIdData[rowid];
3683
+ if (oRow) {
3666
3684
  if (arguments.length > 1) {
3667
3685
  return !eqCellValue(oRow, row, field);
3668
3686
  }
@@ -3724,6 +3742,113 @@ const Methods = {
3724
3742
  tableColumn: this.tableColumn.slice(0)
3725
3743
  };
3726
3744
  },
3745
+ /**
3746
+ * 移动列到指定列的位置
3747
+ * @param fieldOrColumn
3748
+ * @param targetFieldOrColumn
3749
+ * @param options
3750
+ */
3751
+ moveColumnTo(fieldOrColumn, targetFieldOrColumn, options) {
3752
+ const $xeTable = this;
3753
+ const internalData = $xeTable;
3754
+ const {
3755
+ fullColumnIdData,
3756
+ visibleColumn
3757
+ } = internalData;
3758
+ const {
3759
+ dragToChild,
3760
+ dragPos,
3761
+ isCrossDrag
3762
+ } = Object.assign({}, options);
3763
+ const dragCol = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
3764
+ let prevDragCol = null;
3765
+ const colRest = dragCol ? fullColumnIdData[dragCol.id] : null;
3766
+ let defPos = 'left';
3767
+ if (_xeUtils.default.isNumber(targetFieldOrColumn)) {
3768
+ if (colRest && targetFieldOrColumn) {
3769
+ let currList = colRest.items;
3770
+ let offsetIndex = colRest._index + targetFieldOrColumn;
3771
+ if (isCrossDrag) {
3772
+ currList = visibleColumn;
3773
+ offsetIndex = colRest._index + targetFieldOrColumn;
3774
+ }
3775
+ if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
3776
+ prevDragCol = currList[offsetIndex];
3777
+ }
3778
+ if (targetFieldOrColumn > 0) {
3779
+ defPos = 'right';
3780
+ }
3781
+ }
3782
+ } else {
3783
+ prevDragCol = (0, _util.handleFieldOrColumn)($xeTable, targetFieldOrColumn);
3784
+ const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null;
3785
+ if (colRest && targetColRest) {
3786
+ if (targetColRest._index > colRest._index) {
3787
+ defPos = 'right';
3788
+ }
3789
+ }
3790
+ }
3791
+ return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true);
3792
+ },
3793
+ /**
3794
+ * 移动行到指定行的位置
3795
+ * @param rowidOrRow
3796
+ * @param targetRowidOrRow
3797
+ * @param options
3798
+ */
3799
+ moveRowTo(rowidOrRow, targetRowidOrRow, options) {
3800
+ const $xeTable = this;
3801
+ const props = $xeTable;
3802
+ const internalData = $xeTable;
3803
+ const {
3804
+ treeConfig
3805
+ } = props;
3806
+ const {
3807
+ fullAllDataRowIdData,
3808
+ afterFullData
3809
+ } = internalData;
3810
+ const {
3811
+ dragToChild,
3812
+ dragPos,
3813
+ isCrossDrag
3814
+ } = Object.assign({}, options);
3815
+ const treeOpts = $xeTable.computeTreeOpts;
3816
+ const dragRow = (0, _util.handleRowidOrRow)($xeTable, rowidOrRow);
3817
+ let prevDragRow = null;
3818
+ let defPos = 'top';
3819
+ const rowRest = dragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, dragRow)] : null;
3820
+ if (_xeUtils.default.isNumber(targetRowidOrRow)) {
3821
+ if (rowRest && targetRowidOrRow) {
3822
+ let currList = afterFullData;
3823
+ let offsetIndex = rowRest._index + targetRowidOrRow;
3824
+ if (treeConfig) {
3825
+ currList = rowRest.items;
3826
+ if (treeOpts.transform) {
3827
+ offsetIndex = rowRest.treeIndex + targetRowidOrRow;
3828
+ if (isCrossDrag) {
3829
+ currList = afterFullData;
3830
+ offsetIndex = rowRest._index + targetRowidOrRow;
3831
+ }
3832
+ }
3833
+ }
3834
+ if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
3835
+ prevDragRow = currList[offsetIndex];
3836
+ }
3837
+ if (targetRowidOrRow > 0) {
3838
+ defPos = 'bottom';
3839
+ }
3840
+ }
3841
+ } else {
3842
+ prevDragRow = (0, _util.handleRowidOrRow)($xeTable, targetRowidOrRow);
3843
+ const targetRowRest = prevDragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, prevDragRow)] : null;
3844
+ if (rowRest && targetRowRest) {
3845
+ if (targetRowRest._index > rowRest._index) {
3846
+ defPos = 'bottom';
3847
+ }
3848
+ }
3849
+ }
3850
+ return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true);
3851
+ },
3727
3852
  /**
3728
3853
  * 获取表格的全量列
3729
3854
  */
@@ -3746,16 +3871,26 @@ const Methods = {
3746
3871
  * 用于多选行,获取已选中的数据
3747
3872
  */
3748
3873
  getCheckboxRecords(isFull) {
3874
+ const $xeTable = this;
3875
+ const props = $xeTable;
3876
+ const reactData = $xeTable;
3877
+ const internalData = $xeTable;
3878
+ const {
3879
+ treeConfig
3880
+ } = props;
3881
+ const {
3882
+ selectCheckboxMaps
3883
+ } = reactData;
3749
3884
  const {
3750
3885
  tableFullData,
3751
3886
  afterFullData,
3752
- treeConfig,
3753
- treeOpts,
3754
- checkboxOpts,
3755
- tableFullTreeData,
3756
3887
  afterTreeFullData,
3888
+ tableFullTreeData,
3889
+ fullDataRowIdData,
3757
3890
  afterFullRowMaps
3758
- } = this;
3891
+ } = internalData;
3892
+ const treeOpts = $xeTable.computeTreeOpts;
3893
+ const checkboxOpts = $xeTable.computeCheckboxOpts;
3759
3894
  const {
3760
3895
  transform,
3761
3896
  mapChildrenField
@@ -3764,21 +3899,18 @@ const Methods = {
3764
3899
  checkField
3765
3900
  } = checkboxOpts;
3766
3901
  const childrenField = treeOpts.children || treeOpts.childrenField;
3767
- const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
3768
3902
  let rowList = [];
3769
3903
  if (checkField) {
3770
3904
  if (treeConfig) {
3905
+ const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
3771
3906
  rowList = _xeUtils.default.filterTree(currTableData, row => _xeUtils.default.get(row, checkField), {
3772
3907
  children: transform ? mapChildrenField : childrenField
3773
3908
  });
3774
3909
  } else {
3910
+ const currTableData = isFull ? tableFullData : afterFullData;
3775
3911
  rowList = currTableData.filter(row => _xeUtils.default.get(row, checkField));
3776
3912
  }
3777
3913
  } else {
3778
- const {
3779
- selectCheckboxMaps,
3780
- fullDataRowIdData
3781
- } = this;
3782
3914
  _xeUtils.default.each(selectCheckboxMaps, (row, rowid) => {
3783
3915
  if (isFull) {
3784
3916
  if (fullDataRowIdData[rowid]) {
@@ -7543,6 +7675,9 @@ const Methods = {
7543
7675
  } = internalData;
7544
7676
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
7545
7677
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
7678
+ const errRest = {
7679
+ status: false
7680
+ };
7546
7681
  if (prevDragRow && dragRow) {
7547
7682
  // 判断是否有拖动
7548
7683
  if (prevDragRow !== dragRow) {
@@ -7557,7 +7692,7 @@ const Methods = {
7557
7692
  const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
7558
7693
  return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(status => {
7559
7694
  if (!status) {
7560
- return;
7695
+ return errRest;
7561
7696
  }
7562
7697
  let oafIndex = -1;
7563
7698
  let nafIndex = -1;
@@ -7588,11 +7723,11 @@ const Methods = {
7588
7723
  if (isPeerDrag && !isCrossDrag) {
7589
7724
  if (oldRest.row[parentField] !== newRest.row[parentField]) {
7590
7725
  // 非同级
7591
- return;
7726
+ return errRest;
7592
7727
  }
7593
7728
  } else {
7594
7729
  if (!isCrossDrag) {
7595
- return;
7730
+ return errRest;
7596
7731
  }
7597
7732
  if (oldAllMaps[newRowid]) {
7598
7733
  isSelfToChildStatus = true;
@@ -7603,19 +7738,19 @@ const Methods = {
7603
7738
  content: getI18n('vxe.error.treeDragChild')
7604
7739
  });
7605
7740
  }
7606
- return;
7741
+ return errRest;
7607
7742
  }
7608
7743
  }
7609
7744
  }
7610
7745
  } else if (oldLevel) {
7611
7746
  // 子到根
7612
7747
  if (!isCrossDrag) {
7613
- return;
7748
+ return errRest;
7614
7749
  }
7615
7750
  } else if (newLevel) {
7616
7751
  // 根到子
7617
7752
  if (!isCrossDrag) {
7618
- return;
7753
+ return errRest;
7619
7754
  }
7620
7755
  if (oldAllMaps[newRowid]) {
7621
7756
  isSelfToChildStatus = true;
@@ -7626,7 +7761,7 @@ const Methods = {
7626
7761
  content: getI18n('vxe.error.treeDragChild')
7627
7762
  });
7628
7763
  }
7629
- return;
7764
+ return errRest;
7630
7765
  }
7631
7766
  }
7632
7767
  } else {
@@ -7684,26 +7819,34 @@ const Methods = {
7684
7819
  if (reactData.scrollYLoad) {
7685
7820
  $xeTable.updateScrollYSpace();
7686
7821
  }
7687
- $xeTable.$nextTick().then(() => {
7822
+ if (evnt) {
7823
+ $xeTable.dispatchEvent('row-dragend', {
7824
+ oldRow: dragRow,
7825
+ newRow: prevDragRow,
7826
+ dragRow,
7827
+ dragPos: prevDragPos,
7828
+ dragToChild: isDragToChildFlag,
7829
+ offsetIndex: dragOffsetIndex,
7830
+ _index: {
7831
+ newIndex: nafIndex,
7832
+ oldIndex: oafIndex
7833
+ }
7834
+ }, evnt);
7835
+ }
7836
+ return $xeTable.$nextTick().then(() => {
7688
7837
  $xeTable.updateCellAreas();
7689
7838
  $xeTable.recalculate();
7839
+ }).then(() => {
7840
+ return {
7841
+ status: true
7842
+ };
7690
7843
  });
7691
- $xeTable.dispatchEvent('row-dragend', {
7692
- oldRow: dragRow,
7693
- newRow: prevDragRow,
7694
- dragRow,
7695
- dragPos: prevDragPos,
7696
- dragToChild: isDragToChildFlag,
7697
- offsetIndex: dragOffsetIndex,
7698
- _index: {
7699
- newIndex: nafIndex,
7700
- oldIndex: oafIndex
7701
- }
7702
- }, evnt);
7703
- }).catch(() => {});
7844
+ }).catch(() => {
7845
+ return errRest;
7846
+ });
7704
7847
  }
7705
7848
  }
7706
- return Promise.resolve();
7849
+ return Promise.resolve(errRest);
7707
7850
  },
7708
7851
  handleRowDragDragendEvent(evnt) {
7709
7852
  const $xeTable = this;
@@ -7890,6 +8033,9 @@ const Methods = {
7890
8033
  collectColumn
7891
8034
  } = internalData;
7892
8035
  const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
8036
+ const errRest = {
8037
+ status: false
8038
+ };
7893
8039
  if (prevDragCol && dragCol) {
7894
8040
  // 判断是否有拖动
7895
8041
  if (prevDragCol !== dragCol) {
@@ -7906,7 +8052,7 @@ const Methods = {
7906
8052
  const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
7907
8053
  return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(status => {
7908
8054
  if (!status) {
7909
- return;
8055
+ return errRest;
7910
8056
  }
7911
8057
  let oafIndex = -1;
7912
8058
  let nafIndex = -1;
@@ -7920,11 +8066,11 @@ const Methods = {
7920
8066
  if (isPeerDrag && !isCrossDrag) {
7921
8067
  if (dragColumn.parentId !== newColumn.parentId) {
7922
8068
  // 非同级
7923
- return;
8069
+ return errRest;
7924
8070
  }
7925
8071
  } else {
7926
8072
  if (!isCrossDrag) {
7927
- return;
8073
+ return errRest;
7928
8074
  }
7929
8075
  if (oldAllMaps[newColumn.id]) {
7930
8076
  isSelfToChildStatus = true;
@@ -7935,19 +8081,19 @@ const Methods = {
7935
8081
  content: getI18n('vxe.error.treeDragChild')
7936
8082
  });
7937
8083
  }
7938
- return;
8084
+ return errRest;
7939
8085
  }
7940
8086
  }
7941
8087
  }
7942
8088
  } else if (dragColumn.parentId) {
7943
8089
  // 子到根
7944
8090
  if (!isCrossDrag) {
7945
- return;
8091
+ return errRest;
7946
8092
  }
7947
8093
  } else if (newColumn.parentId) {
7948
8094
  // 根到子
7949
8095
  if (!isCrossDrag) {
7950
- return;
8096
+ return errRest;
7951
8097
  }
7952
8098
  if (oldAllMaps[newColumn.id]) {
7953
8099
  isSelfToChildStatus = true;
@@ -7958,7 +8104,7 @@ const Methods = {
7958
8104
  content: getI18n('vxe.error.treeDragChild')
7959
8105
  });
7960
8106
  }
7961
- return;
8107
+ return errRest;
7962
8108
  }
7963
8109
  }
7964
8110
  } else {
@@ -8027,25 +8173,32 @@ const Methods = {
8027
8173
  $xeTable.clearCopyCellArea();
8028
8174
  }
8029
8175
  }
8030
- $xeTable.dispatchEvent('column-dragend', {
8031
- oldColumn: dragColumn,
8032
- newColumn,
8033
- dragColumn,
8034
- dragPos: prevDragPos,
8035
- dragToChild: isDragToChildFlag,
8036
- offsetIndex: dragOffsetIndex,
8037
- _index: {
8038
- newIndex: nafIndex,
8039
- oldIndex: oafIndex
8040
- }
8041
- }, evnt);
8176
+ if (evnt) {
8177
+ $xeTable.dispatchEvent('column-dragend', {
8178
+ oldColumn: dragColumn,
8179
+ newColumn,
8180
+ dragColumn,
8181
+ dragPos: prevDragPos,
8182
+ dragToChild: isDragToChildFlag,
8183
+ offsetIndex: dragOffsetIndex,
8184
+ _index: {
8185
+ newIndex: nafIndex,
8186
+ oldIndex: oafIndex
8187
+ }
8188
+ }, evnt);
8189
+ }
8042
8190
  if (isSyncColumn) {
8043
8191
  $xeTable.handleColDragSwapColumn();
8044
8192
  }
8045
- }).catch(() => {});
8193
+ return {
8194
+ status: true
8195
+ };
8196
+ }).catch(() => {
8197
+ return errRest;
8198
+ });
8046
8199
  }
8047
8200
  }
8048
- return Promise.resolve();
8201
+ return Promise.resolve(errRest);
8049
8202
  },
8050
8203
  handleHeaderCellDragDragendEvent(evnt) {
8051
8204
  const $xeTable = this;