vxe-table 4.19.5 → 4.19.7
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.
- package/dist/all.esm.js +126 -33
- package/dist/style.css +1 -1
- package/es/style.css +1 -1
- package/es/table/src/body.js +11 -11
- package/es/table/src/emits.js +1 -0
- package/es/table/src/group.js +3 -0
- package/es/table/src/table.js +68 -17
- package/es/table/src/util.js +27 -8
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +68 -40
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/body.js +11 -11
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/group.js +3 -0
- package/lib/table/src/group.min.js +1 -1
- package/lib/table/src/table.js +19 -16
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +30 -7
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/table/src/body.ts +13 -13
- package/packages/table/src/emits.ts +1 -0
- package/packages/table/src/group.ts +4 -0
- package/packages/table/src/table.ts +73 -18
- package/packages/table/src/util.ts +26 -8
- /package/es/{iconfont.1780200147870.ttf → iconfont.1780638747281.ttf} +0 -0
- /package/es/{iconfont.1780200147870.woff → iconfont.1780638747281.woff} +0 -0
- /package/es/{iconfont.1780200147870.woff2 → iconfont.1780638747281.woff2} +0 -0
- /package/lib/{iconfont.1780200147870.ttf → iconfont.1780638747281.ttf} +0 -0
- /package/lib/{iconfont.1780200147870.woff → iconfont.1780638747281.woff} +0 -0
- /package/lib/{iconfont.1780200147870.woff2 → iconfont.1780638747281.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -468,23 +468,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
468
468
|
class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
|
|
469
469
|
}, column.renderCell(cellParams)));
|
|
470
470
|
}
|
|
471
|
-
tdVNs.push((0, _vue.h)('div', {
|
|
472
|
-
key: 'tc',
|
|
473
|
-
class: ['vxe-cell', {
|
|
474
|
-
'c--title': showTitle,
|
|
475
|
-
'c--tooltip': showTooltip,
|
|
476
|
-
'c--ellipsis': showEllipsis
|
|
477
|
-
}],
|
|
478
|
-
style: tcStyle,
|
|
479
|
-
title: showTitle ? $xeTable.getCellLabel(row, column) : null
|
|
480
|
-
}, clVNs));
|
|
481
471
|
if (showValidTip && errorValidItem) {
|
|
482
472
|
const errRule = errorValidItem.rule;
|
|
483
473
|
const validSlot = slots ? slots.valid : null;
|
|
484
474
|
const validParams = Object.assign(Object.assign(Object.assign({}, cellParams), errorValidItem), {
|
|
485
475
|
rule: errorValidItem
|
|
486
476
|
});
|
|
487
|
-
|
|
477
|
+
clVNs.push((0, _vue.h)('div', {
|
|
488
478
|
key: 'tcv',
|
|
489
479
|
class: ['vxe-cell--valid-error-tip', (0, _dom.getPropClass)(validOpts.className, validParams)],
|
|
490
480
|
style: errRule && errRule.maxWidth ? {
|
|
@@ -496,6 +486,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
496
486
|
class: 'vxe-cell--valid-error-msg'
|
|
497
487
|
}, errorValidItem.content)]])]));
|
|
498
488
|
}
|
|
489
|
+
tdVNs.push((0, _vue.h)('div', {
|
|
490
|
+
key: 'tc',
|
|
491
|
+
class: ['vxe-cell', {
|
|
492
|
+
'c--title': showTitle,
|
|
493
|
+
'c--tooltip': showTooltip,
|
|
494
|
+
'c--ellipsis': showEllipsis
|
|
495
|
+
}],
|
|
496
|
+
style: tcStyle,
|
|
497
|
+
title: showTitle ? $xeTable.getCellLabel(row, column) : null
|
|
498
|
+
}, clVNs));
|
|
499
499
|
}
|
|
500
500
|
let showAreaRowStatus = false;
|
|
501
501
|
if (mouseConfig && mouseOpts.area && !_columnIndex && selectCellToRow) {
|
|
@@ -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,sourceType="table",renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(C){let Qe=(0,_vue.inject)("$xeTable",{}),{xID:R,props:Ze,context:E,reactData:el,internalData:ll}=Qe,{computeEditOpts:tl,computeMouseOpts:al,computeCellOffsetWidth:rl,computeAreaOpts:ol,computeDefaultRowHeight:il,computeEmptyOpts:D,computeTooltipOpts:nl,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:l,computeCheckboxOpts:sl,computeCellOpts:dl,computeValidOpts:ul,computeRowOpts:cl,computeColumnOpts:pl,computeRowDragOpts:vl,computeResizableOpts:gl,computeVirtualXOpts:xl,computeVirtualYOpts:hl,computeIsBodyRenderOptimize:q}=Qe.getComputeMaps(),I=(0,_vue.ref)(),O=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),T=(0,_vue.ref)(),k=(0,_vue.ref)(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),ml=()=>{var e=Ze.delayHover,l=el.isDragResize,t=ll.lastSTime;return!!(l||t&&Date.now()<t+e)},wl=(r,o,i)=>{var n=o.column,s=Ze.treeConfig,d=dl.value,u=cl.value,c=il.value,p=l.value,{slots:n,treeNode:v}=n,g=ll.fullAllDataRowIdData;if(s&&v&&(p.showLine||p.line)){if(n&&n.line)return Qe.callSlot(n.line,o);s=g[r];let e=0,l=null,t=null,a="";return(s&&(e=s.level,l=s.items[s.treeIndex-1],t=s.parent),e||p.showRootLine)?(l?(v=g[(0,_util.getRowid)(Qe,l)]||{},a=`${v.lineHeight||0}px`):e&&t&&(n=g[(0,_util.getRowid)(Qe,t)]||{},a=`calc(-1em + ${Math.floor(i/2+(0,_util.getCellRestHeight)(n,d,u,c)/2)}px)`),[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:a,bottom:`-${Math.floor(i/2)}px`,left:`calc(${e*p.indent}px + 1em)`}})])]):[]}return[]},oe=(H,e,l,A,F,t,B,U,a,r,N,j,o)=>{var i=Qe.xeGrid,L=Qe.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:Y,spanMethod:K,mouseConfig:J,editConfig:Q,editRules:u,tooltipConfig:c,padding:p}=Ze,{tableData:Z,tableColumn:ee,dragRow:le,overflowX:te,overflowY:ae,currentColumn:re,scrollXLoad:v,scrollYLoad:oe,mergeBodyFlag:ie,calcCellHeightFlag:g,resizeHeightFlag:ne,resizeWidthFlag:se,editStore:de,isAllOverflow:ue,validErrorMaps:x}=el,{fullAllDataRowIdData:ce,fullColumnIdData:h,mergeBodyCellMaps:pe,visibleColumn:ve,afterFullData:ge,mergeBodyList:xe,scrollXStore:he,scrollYStore:me,keepUpdateFieldMaps:we}=ll,m=dl.value,w=ul.value,_=sl.value,_e=tl.value,b=nl.value,be=gl.value,fe=xl.value,ye=hl.value,{isAllColumnDrag:be,isAllRowDrag:Ce}=be,f=cl.value,y=vl.value,Re=il.value,g=g?m.height||f.height:0,{disabledMethod:C,isCrossDrag:Ee,isPeerDrag:De}=y,Ie=pl.value,Oe=al.value,Se=ol.value,Me=rl.value,Se=Se.selectCellToRow,{field:Te,type:ke,cellRender:R,editRender:E,align:$e,showOverflow:ze,className:qe,treeNode:He,rowResize:Ae,padding:D,verticalAlign:I,slots:Fe}=r,O=m.verticalAlign,de=de.actived,Be=ce[e]||{},S=r.id,h=h[S]||{},R=E||R,R=R?renderer.get(R.name):null,Ue=R?R.tableCellClassName||R.cellClassName:null,Ne=R?R.tableCellStyle||R.cellStyle:"";let je=b.showAll;var Le=h.index,b=h._index,h=(0,_utils.isEnableConf)(E),E=ne?Be.resizeHeight:0;let M=te&&(l?r.fixed!==l:!!r.fixed);ne=_xeUtils.default.eqNull(D)?null===p?m.padding:p:D,p=_xeUtils.default.eqNull(ze)?s:ze,D="ellipsis"===p;let T="title"===p,k=!0===p||"tooltip"===p;s=ue||T||k||D,ze=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Ie.resizable||n,p=!!g,n=0<E;let Ge;g={},E=$e||(R?R.tableCellAlign:"")||Y,$e=_xeUtils.default.eqNull(I)?O:I,R=x[e+":"+S],Y=u&&w.showErrorMessage&&("default"===w.message?d||1<Z.length:"inline"===w.message),O={colid:S};let $={$table:Qe,$grid:i,$gantt:L,isEdit:!1,seq:H,rowid:e,row:t,rowIndex:B,$rowIndex:U,_rowIndex:a,column:r,columnIndex:Le,$columnIndex:N,_columnIndex:b,fixed:l,source:sourceType,type:renderType,isHidden:!!M,level:F,visibleData:ge,data:Z,items:o},z=!1,We=!1,q=((z=f.drag?"row"===y.trigger||r.dragSort&&"cell"===y.trigger:z)&&(We=!(!C||!C($))),(T||k||je||c)&&(g.onMouseover=e=>{ml()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||je)&&Qe.triggerBodyTooltipEvent(e,$)),Qe.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||je||c)&&(g.onMouseleave=e=>{ml()||(k||je)&&Qe.handleTargetLeaveEvent(e),Qe.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||_.range||J)&&(g.onMousedown=e=>{Qe.triggerCellMousedownEvent(e,$)}),z&&(g.onMouseup=Qe.triggerCellMouseupEvent),g.onClick=e=>{Qe.triggerCellClickEvent(e,$)},!(g.onDblclick=e=>{Qe.triggerCellDblclickEvent(e,$)})),Ve=1,Pe=1;if(ie&&xe.length){I=pe[a+":"+b];if(I){var{rowspan:x,colspan:u}=I;if(!x||!u)return renderEmptyElement(Qe);1<x&&(q=!0,Pe=x,O.rowspan=x),1<u&&(q=!0,Ve=u,O.colspan=u)}}else if(K){var{rowspan:d=1,colspan:i=1}=K($)||{};if(!d||!i)return renderEmptyElement(Qe);1<d&&(q=!0,Pe=d,O.rowspan=d),1<i&&(q=!0,Ve=i,O.colspan=i)}!(M=M&&q&&(1<O.colspan||1<O.rowspan)?!1:M)&&Q&&(_e.showStatus||_e.showUpdateStatus)&&we[Te]&&(Ge=Qe.isUpdateByRow(t,Te));L=!s&&(oe||v);let Xe=(0,_util.getCellRestHeight)(Be,m,f,Re);H=N===j.length-1,B=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Ye=!1;q||le&&(0,_util.getRowid)(Qe,le)===e||(ae&&oe&&16<Z.length&&!V&&!ye.immediate&&(a<me.visibleStartIndex-me.preloadSize||a>me.visibleEndIndex+me.preloadSize)||te&&v&&10<ee.length&&!fe.immediate&&!r.fixed&&(b<he.visibleStartIndex-he.preloadSize||b>he.visibleEndIndex+he.preloadSize))&&(Ye=!0),1<Pe&&(U=ge[a+Pe-1])&&(o=ce[(0,_util.getRowid)(Qe,U)])&&(Xe+=o.oTop+(0,_util.getCellRestHeight)(o,m,f,Re)-Be.oTop-(0,_util.getCellRestHeight)(Be,m,f,Re));y={};if(s&&se){let l=0;if(1<Ve)for(let e=1;e<Ve;e++){var Ke=ve[Le+e];Ke&&(l+=Ke.renderWidth)}y.width=r.renderWidth+l-Me+"px"}oe||v||s||p||n?y.height=Xe+"px":y.minHeight=Xe+"px";C=[];M&&ue?C.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":D}],style:y})):(V&&C.push(...wl(e,$,Xe)),c=[],Ye||c.push((0,_vue.h)("div",{colid:S,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))),C.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":D}],style:y,title:T?Qe.getCellLabel(t,r):null},c)),Y&&R&&(_=R.rule,ie=Fe?Fe.valid:null,xe=Object.assign(Object.assign(Object.assign({},$),R),{rule:R}),C.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(w.className,xe)],style:_&&_.maxWidth?{width:_.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(w.theme||"normal")},[ie?Qe.callSlot(ie,xe):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let Je=!1;return J&&Oe.area&&!b&&Se&&(Je=!0),!M&&ze&&be&&C.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Qe.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Qe.handleColResizeDblclickEvent(e,$)})),(Ae||Ce)&&f.resizable&&C.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Qe.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Qe.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",S,$e?"col--vertical-"+$e:"",E?"col--"+E:"",ke?"col--"+ke:"",{"col--last":H,"col--tree-node":He,"col--edit":h,"col--ellipsis":s,"col--cs-height":p,"col--rs-height":n,"col--to-row":Je,"col--auto-height":L,"fixed--width":!B,"fixed--hidden":M,"is--padding":ne,"is--progress":M&&ue||Ye,"is--drag-cell":z&&(Ee||De||!F),"is--drag-disabled":We,"col--dirty":Ge,"col--active":Q&&h&&de.row===t&&(de.column===r||"row"===_e.mode),"col--valid-error":!!R,"show--valid-bg":R&&w.showErrorBackground,"col--current":re===r},(0,_dom.getPropClass)(Ue,$),(0,_dom.getPropClass)(qe,$),(0,_dom.getPropClass)(P,$)],key:G||v||oe||Ie.useKey||f.useKey||Ie.drag?S:N},O),{style:Object.assign({},_xeUtils.default.isFunction(Ne)?Ne($):Ne,_xeUtils.default.isFunction(X)?X($):X)}),g),A&&M?[]:C)},re=(h,m,w,_)=>{let b=Qe.xeGrid,f=Qe.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:R,rowClassName:E,rowStyle:D,editConfig:I,treeConfig:O}=Ze,{hasFixedColumn:S,treeExpandedFlag:M,scrollYLoad:T,isAllOverflow:k,rowExpandedFlag:$,expandColumn:z,selectRadioRow:q,pendingRowFlag:H,rowExpandHeightFlag:A,isRowGroupStatus:F}=el,{fullAllDataRowIdData:B,fullColumnIdData:U,treeExpandedMaps:N,pendingRowMaps:j,rowExpandedMaps:L,currentRow:G}=ll,W=sl.value,Q=e.value,V=l.value,P=tl.value,X=cl.value,Z=pl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Qe).handleGetRowId,te=O||F;return w.forEach((a,r)=>{let o=le(a);var i=B[o]||{};let n=r,s=0,d=-1,u=-1;var c=F&&a.isAggregate,p={},v=((X.isHover||R)&&(p.onMouseover=e=>{ml()||Qe.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{ml()||Qe.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Qe,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=z&&!!$&&!!L[o];let e=!1,l=[],t=!1;I&&(t=Qe.isInsertByRow(a)),!O||T||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!N[o]),!X.drag||F||O&&!Y||(p.onDragstart=Qe.handleRowDragDragstartEvent,p.onDragend=Qe.handleRowDragDragendEvent,p.onDragover=Qe.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Qe.eqRow(q,a),"row--checked":W.highlight&&Qe.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!j[o],"row--group":c,"row--current":G&&o===(0,_util.getRowid)(Qe,G)},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||X.useKey||X.drag||Z.drag||F||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p){x=i.expandHeight;let e=0;A&&(x||c)&&(e=(x||c||0)+1),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:e+"px"}})]))}else{g={},p=(c&&(g.height=c+"px"),O&&(g.paddingLeft=s*V.indent+30+"px"),z||{}).showOverflow,i=z.id,x=U[i]||{},i=_xeUtils.default.eqNull(p)?k:p;let e=-1,l=-1,t=-1;x&&(e=x.index,l=x.$index,t=x._index);p={$table:Qe,$grid:b,$gantt:f,seq:d,column:z,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$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&&!S,"col--ellipsis":i}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:g},[z.renderData(p)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=C.fixedType,l=ll.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=I,l[e+"scroll"]=O,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=T,l[e+"xSpace"]=k,l[e+"ySpace"]=$,l[e+"emptyBlock"]=z})}),(0,_vue.onUnmounted)(()=>{var e=C.fixedType,l=ll.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=E.slots,l=Qe.xeGrid,t=Qe.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=C;var i=Ze.mouseConfig,{isGroup:n,tableData:s,isColLoading:d,overflowX:u,scrollXLoad:c,scrollYLoad:p,dragRow:v,dragCol:g}=el,{visibleColumn:x,fullAllDataRowIdData:h,fullColumnIdData:m}=ll,w=D.value,_=al.value;let b=s,f=o;s=q.value;d||!r&&u||(f=x),r&&s&&(f=a||[]),p&&v&&2<b.length&&(d=h[(0,_util.getRowid)(Qe,v)])&&(u=d._index,x=b[0],p=b[b.length-1],d=h[(0,_util.getRowid)(Qe,x)],x=h[(0,_util.getRowid)(Qe,p)],d)&&x&&(h=d._index,p=x._index,u<h?b=[v].concat(b):p<u&&(b=b.concat([v]))),r||n||c&&g&&2<f.length&&(d=m[g.id])&&(x=d._index,h=f[0],p=f[f.length-1],u=m[h.id],v=m[p.id],u)&&v&&(n=u._index,c=v._index,x<n?f=[g].concat(f):c<x&&(f=f.concat([g])));let y;d=e?e.empty:null,h={$table:Qe,$grid:l,$gantt:t};return y=d?Qe.callSlot(d,h):(p=(m=w.name?renderer.get(w.name):null)?m.renderTableEmpty||m.renderTableEmptyView||m.renderEmpty:null)?(0,_vn.getSlotVNs)(p(w,h)):Ze.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",{ref:I,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:R},[(0,_vue.h)("div",{ref:O,class:"vxe-table--body-inner-wrapper",onScroll(e){Qe.triggerBodyScrollEvent(e,r)}},[r?renderEmptyElement(Qe):(0,_vue.h)("div",{ref:k,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:$,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--body",xid:R,cellspacing:0,cellpadding:0,border:0,xvm:s?"1":null},[(0,_vue.h)("colgroup",{ref:M},f.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:T},re(r,s,b,f))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),i&&_.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:R},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},_.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Qe.triggerCellAreaExtendMousedownEvent&&Qe.triggerCellAreaExtendMousedownEvent(e,{$table:Qe,fixed:r,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(Qe),r?renderEmptyElement(Qe):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:z},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},y)])])])}}});
|
|
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,sourceType="table",renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(C){let Qe=(0,_vue.inject)("$xeTable",{}),{xID:R,props:Ze,context:E,reactData:el,internalData:ll}=Qe,{computeEditOpts:tl,computeMouseOpts:al,computeCellOffsetWidth:rl,computeAreaOpts:ol,computeDefaultRowHeight:il,computeEmptyOpts:D,computeTooltipOpts:nl,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:l,computeCheckboxOpts:sl,computeCellOpts:dl,computeValidOpts:ul,computeRowOpts:cl,computeColumnOpts:pl,computeRowDragOpts:vl,computeResizableOpts:gl,computeVirtualXOpts:xl,computeVirtualYOpts:hl,computeIsBodyRenderOptimize:q}=Qe.getComputeMaps(),I=(0,_vue.ref)(),O=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),T=(0,_vue.ref)(),k=(0,_vue.ref)(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),ml=()=>{var e=Ze.delayHover,l=el.isDragResize,t=ll.lastSTime;return!!(l||t&&Date.now()<t+e)},wl=(r,o,i)=>{var n=o.column,s=Ze.treeConfig,d=dl.value,u=cl.value,c=il.value,p=l.value,{slots:n,treeNode:v}=n,g=ll.fullAllDataRowIdData;if(s&&v&&(p.showLine||p.line)){if(n&&n.line)return Qe.callSlot(n.line,o);s=g[r];let e=0,l=null,t=null,a="";return(s&&(e=s.level,l=s.items[s.treeIndex-1],t=s.parent),e||p.showRootLine)?(l?(v=g[(0,_util.getRowid)(Qe,l)]||{},a=`${v.lineHeight||0}px`):e&&t&&(n=g[(0,_util.getRowid)(Qe,t)]||{},a=`calc(-1em + ${Math.floor(i/2+(0,_util.getCellRestHeight)(n,d,u,c)/2)}px)`),[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:a,bottom:`-${Math.floor(i/2)}px`,left:`calc(${e*p.indent}px + 1em)`}})])]):[]}return[]},oe=(H,e,l,A,F,t,B,U,a,r,N,j,o)=>{var i=Qe.xeGrid,L=Qe.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:Y,spanMethod:K,mouseConfig:J,editConfig:Q,editRules:u,tooltipConfig:c,padding:p}=Ze,{tableData:Z,tableColumn:ee,dragRow:le,overflowX:te,overflowY:ae,currentColumn:re,scrollXLoad:v,scrollYLoad:oe,mergeBodyFlag:ie,calcCellHeightFlag:g,resizeHeightFlag:ne,resizeWidthFlag:se,editStore:de,isAllOverflow:ue,validErrorMaps:x}=el,{fullAllDataRowIdData:ce,fullColumnIdData:h,mergeBodyCellMaps:pe,visibleColumn:ve,afterFullData:ge,mergeBodyList:xe,scrollXStore:he,scrollYStore:me,keepUpdateFieldMaps:we}=ll,m=dl.value,w=ul.value,_=sl.value,_e=tl.value,b=nl.value,be=gl.value,fe=xl.value,ye=hl.value,{isAllColumnDrag:be,isAllRowDrag:Ce}=be,f=cl.value,y=vl.value,Re=il.value,g=g?m.height||f.height:0,{disabledMethod:C,isCrossDrag:Ee,isPeerDrag:De}=y,Ie=pl.value,Oe=al.value,Se=ol.value,Me=rl.value,Se=Se.selectCellToRow,{field:Te,type:ke,cellRender:R,editRender:E,align:$e,showOverflow:ze,className:qe,treeNode:He,rowResize:Ae,padding:D,verticalAlign:I,slots:Fe}=r,O=m.verticalAlign,de=de.actived,Be=ce[e]||{},S=r.id,h=h[S]||{},R=E||R,R=R?renderer.get(R.name):null,Ue=R?R.tableCellClassName||R.cellClassName:null,Ne=R?R.tableCellStyle||R.cellStyle:"";let je=b.showAll;var Le=h.index,b=h._index,h=(0,_utils.isEnableConf)(E),E=ne?Be.resizeHeight:0;let M=te&&(l?r.fixed!==l:!!r.fixed);ne=_xeUtils.default.eqNull(D)?null===p?m.padding:p:D,p=_xeUtils.default.eqNull(ze)?s:ze,D="ellipsis"===p;let T="title"===p,k=!0===p||"tooltip"===p;s=ue||T||k||D,ze=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Ie.resizable||n,p=!!g,n=0<E;let Ge;g={},E=$e||(R?R.tableCellAlign:"")||Y,$e=_xeUtils.default.eqNull(I)?O:I,R=x[e+":"+S],Y=u&&w.showErrorMessage&&("default"===w.message?d||1<Z.length:"inline"===w.message),O={colid:S};let $={$table:Qe,$grid:i,$gantt:L,isEdit:!1,seq:H,rowid:e,row:t,rowIndex:B,$rowIndex:U,_rowIndex:a,column:r,columnIndex:Le,$columnIndex:N,_columnIndex:b,fixed:l,source:sourceType,type:renderType,isHidden:!!M,level:F,visibleData:ge,data:Z,items:o},z=!1,We=!1,q=((z=f.drag?"row"===y.trigger||r.dragSort&&"cell"===y.trigger:z)&&(We=!(!C||!C($))),(T||k||je||c)&&(g.onMouseover=e=>{ml()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||je)&&Qe.triggerBodyTooltipEvent(e,$)),Qe.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||je||c)&&(g.onMouseleave=e=>{ml()||(k||je)&&Qe.handleTargetLeaveEvent(e),Qe.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||_.range||J)&&(g.onMousedown=e=>{Qe.triggerCellMousedownEvent(e,$)}),z&&(g.onMouseup=Qe.triggerCellMouseupEvent),g.onClick=e=>{Qe.triggerCellClickEvent(e,$)},!(g.onDblclick=e=>{Qe.triggerCellDblclickEvent(e,$)})),Ve=1,Pe=1;if(ie&&xe.length){I=pe[a+":"+b];if(I){var{rowspan:x,colspan:u}=I;if(!x||!u)return renderEmptyElement(Qe);1<x&&(q=!0,Pe=x,O.rowspan=x),1<u&&(q=!0,Ve=u,O.colspan=u)}}else if(K){var{rowspan:d=1,colspan:i=1}=K($)||{};if(!d||!i)return renderEmptyElement(Qe);1<d&&(q=!0,Pe=d,O.rowspan=d),1<i&&(q=!0,Ve=i,O.colspan=i)}!(M=M&&q&&(1<O.colspan||1<O.rowspan)?!1:M)&&Q&&(_e.showStatus||_e.showUpdateStatus)&&we[Te]&&(Ge=Qe.isUpdateByRow(t,Te));L=!s&&(oe||v);let Xe=(0,_util.getCellRestHeight)(Be,m,f,Re);H=N===j.length-1,B=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Ye=!1;q||le&&(0,_util.getRowid)(Qe,le)===e||(ae&&oe&&16<Z.length&&!V&&!ye.immediate&&(a<me.visibleStartIndex-me.preloadSize||a>me.visibleEndIndex+me.preloadSize)||te&&v&&10<ee.length&&!fe.immediate&&!r.fixed&&(b<he.visibleStartIndex-he.preloadSize||b>he.visibleEndIndex+he.preloadSize))&&(Ye=!0),1<Pe&&(U=ge[a+Pe-1])&&(o=ce[(0,_util.getRowid)(Qe,U)])&&(Xe+=o.oTop+(0,_util.getCellRestHeight)(o,m,f,Re)-Be.oTop-(0,_util.getCellRestHeight)(Be,m,f,Re));y={};if(s&&se){let l=0;if(1<Ve)for(let e=1;e<Ve;e++){var Ke=ve[Le+e];Ke&&(l+=Ke.renderWidth)}y.width=r.renderWidth+l-Me+"px"}oe||v||s||p||n?y.height=Xe+"px":y.minHeight=Xe+"px";C=[];M&&ue?C.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":D}],style:y})):(V&&C.push(...wl(e,$,Xe)),c=[],Ye||c.push((0,_vue.h)("div",{colid:S,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))),Y&&R&&(_=R.rule,ie=Fe?Fe.valid:null,xe=Object.assign(Object.assign(Object.assign({},$),R),{rule:R}),c.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(w.className,xe)],style:_&&_.maxWidth?{width:_.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(w.theme||"normal")},[ie?Qe.callSlot(ie,xe):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))),C.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":D}],style:y,title:T?Qe.getCellLabel(t,r):null},c)));let Je=!1;return J&&Oe.area&&!b&&Se&&(Je=!0),!M&&ze&&be&&C.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Qe.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Qe.handleColResizeDblclickEvent(e,$)})),(Ae||Ce)&&f.resizable&&C.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Qe.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Qe.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",S,$e?"col--vertical-"+$e:"",E?"col--"+E:"",ke?"col--"+ke:"",{"col--last":H,"col--tree-node":He,"col--edit":h,"col--ellipsis":s,"col--cs-height":p,"col--rs-height":n,"col--to-row":Je,"col--auto-height":L,"fixed--width":!B,"fixed--hidden":M,"is--padding":ne,"is--progress":M&&ue||Ye,"is--drag-cell":z&&(Ee||De||!F),"is--drag-disabled":We,"col--dirty":Ge,"col--active":Q&&h&&de.row===t&&(de.column===r||"row"===_e.mode),"col--valid-error":!!R,"show--valid-bg":R&&w.showErrorBackground,"col--current":re===r},(0,_dom.getPropClass)(Ue,$),(0,_dom.getPropClass)(qe,$),(0,_dom.getPropClass)(P,$)],key:G||v||oe||Ie.useKey||f.useKey||Ie.drag?S:N},O),{style:Object.assign({},_xeUtils.default.isFunction(Ne)?Ne($):Ne,_xeUtils.default.isFunction(X)?X($):X)}),g),A&&M?[]:C)},re=(h,m,w,_)=>{let b=Qe.xeGrid,f=Qe.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:R,rowClassName:E,rowStyle:D,editConfig:I,treeConfig:O}=Ze,{hasFixedColumn:S,treeExpandedFlag:M,scrollYLoad:T,isAllOverflow:k,rowExpandedFlag:$,expandColumn:z,selectRadioRow:q,pendingRowFlag:H,rowExpandHeightFlag:A,isRowGroupStatus:F}=el,{fullAllDataRowIdData:B,fullColumnIdData:U,treeExpandedMaps:N,pendingRowMaps:j,rowExpandedMaps:L,currentRow:G}=ll,W=sl.value,Q=e.value,V=l.value,P=tl.value,X=cl.value,Z=pl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Qe).handleGetRowId,te=O||F;return w.forEach((a,r)=>{let o=le(a);var i=B[o]||{};let n=r,s=0,d=-1,u=-1;var c=F&&a.isAggregate,p={},v=((X.isHover||R)&&(p.onMouseover=e=>{ml()||Qe.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{ml()||Qe.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Qe,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=z&&!!$&&!!L[o];let e=!1,l=[],t=!1;I&&(t=Qe.isInsertByRow(a)),!O||T||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!N[o]),!X.drag||F||O&&!Y||(p.onDragstart=Qe.handleRowDragDragstartEvent,p.onDragend=Qe.handleRowDragDragendEvent,p.onDragover=Qe.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Qe.eqRow(q,a),"row--checked":W.highlight&&Qe.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!j[o],"row--group":c,"row--current":G&&o===(0,_util.getRowid)(Qe,G)},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||X.useKey||X.drag||Z.drag||F||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p){x=i.expandHeight;let e=0;A&&(x||c)&&(e=(x||c||0)+1),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:e+"px"}})]))}else{g={},p=(c&&(g.height=c+"px"),O&&(g.paddingLeft=s*V.indent+30+"px"),z||{}).showOverflow,i=z.id,x=U[i]||{},i=_xeUtils.default.eqNull(p)?k:p;let e=-1,l=-1,t=-1;x&&(e=x.index,l=x.$index,t=x._index);p={$table:Qe,$grid:b,$gantt:f,seq:d,column:z,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$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&&!S,"col--ellipsis":i}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:g},[z.renderData(p)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=C.fixedType,l=ll.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=I,l[e+"scroll"]=O,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=T,l[e+"xSpace"]=k,l[e+"ySpace"]=$,l[e+"emptyBlock"]=z})}),(0,_vue.onUnmounted)(()=>{var e=C.fixedType,l=ll.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=E.slots,l=Qe.xeGrid,t=Qe.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=C;var i=Ze.mouseConfig,{isGroup:n,tableData:s,isColLoading:d,overflowX:u,scrollXLoad:c,scrollYLoad:p,dragRow:v,dragCol:g}=el,{visibleColumn:x,fullAllDataRowIdData:h,fullColumnIdData:m}=ll,w=D.value,_=al.value;let b=s,f=o;s=q.value;d||!r&&u||(f=x),r&&s&&(f=a||[]),p&&v&&2<b.length&&(d=h[(0,_util.getRowid)(Qe,v)])&&(u=d._index,x=b[0],p=b[b.length-1],d=h[(0,_util.getRowid)(Qe,x)],x=h[(0,_util.getRowid)(Qe,p)],d)&&x&&(h=d._index,p=x._index,u<h?b=[v].concat(b):p<u&&(b=b.concat([v]))),r||n||c&&g&&2<f.length&&(d=m[g.id])&&(x=d._index,h=f[0],p=f[f.length-1],u=m[h.id],v=m[p.id],u)&&v&&(n=u._index,c=v._index,x<n?f=[g].concat(f):c<x&&(f=f.concat([g])));let y;d=e?e.empty:null,h={$table:Qe,$grid:l,$gantt:t};return y=d?Qe.callSlot(d,h):(p=(m=w.name?renderer.get(w.name):null)?m.renderTableEmpty||m.renderTableEmptyView||m.renderEmpty:null)?(0,_vn.getSlotVNs)(p(w,h)):Ze.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",{ref:I,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:R},[(0,_vue.h)("div",{ref:O,class:"vxe-table--body-inner-wrapper",onScroll(e){Qe.triggerBodyScrollEvent(e,r)}},[r?renderEmptyElement(Qe):(0,_vue.h)("div",{ref:k,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:$,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--body",xid:R,cellspacing:0,cellpadding:0,border:0,xvm:s?"1":null},[(0,_vue.h)("colgroup",{ref:M},f.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:T},re(r,s,b,f))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),i&&_.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:R},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},_.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Qe.triggerCellAreaExtendMousedownEvent&&Qe.triggerCellAreaExtendMousedownEvent(e,{$table:Qe,fixed:r,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(Qe),r?renderEmptyElement(Qe):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:z},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},y)])])])}}});
|
package/lib/table/src/emits.js
CHANGED
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.tableEmits = void 0;
|
|
7
|
-
const tableEmits = exports.tableEmits = ['ready', 'init-rendered', 'data-rendered', 'update:data', 'keydown-start', 'keydown', 'keydown-end', 'paste', 'copy', 'cut', 'undo', 'redo', 'context-menu', 'columns-change', 'data-change', 'footer-data-change', 'current-change', 'current-row-change', 'current-row-disabled', 'current-column-change', 'current-column-disabled', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'checkbox-range-select', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'cell-selected', 'cell-delete-value', 'cell-backspace-value', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'clear-all-sort', 'filter-change', 'filter-visible', 'clear-filter', 'clear-all-filter', 'resizable-change', 'column-resizable-change', 'row-resizable-change', 'toggle-row-group-expand', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'row-dragstart', 'row-dragover', 'row-dragend', 'row-remove-dragend', 'row-insert-dragend', 'column-dragstart', 'column-dragover', 'column-dragend', 'enter-append-row', 'tab-append-row', 'edit-actived', 'edit-activated', 'edit-disabled', 'valid-error', 'scroll', 'scroll-boundary', 'custom', 'custom-visible-change', 'custom-visible-all', 'custom-fixed-change', 'custom-sort-change', 'change-fnr', 'open-fnr', 'show-fnr', 'hide-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-selection', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-drag', 'cell-area-extension-end', 'cell-area-extension-fill', 'cell-area-selection-all-start', 'cell-area-selection-all-end', 'cell-area-arrows-start', 'cell-area-arrows-end', 'active-cell-change-start', 'active-cell-change-end'];
|
|
7
|
+
const tableEmits = exports.tableEmits = ['ready', 'init-rendered', 'data-rendered', 'update:data', 'keydown-start', 'keydown', 'keydown-end', 'paste', 'copy', 'cut', 'undo', 'redo', 'context-menu', 'columns-change', 'data-change', 'footer-data-change', 'current-change', 'current-row-change', 'current-row-disabled', 'current-column-change', 'current-column-disabled', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'checkbox-range-select', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'cell-selected', 'cell-delete-value', 'cell-backspace-value', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'clear-all-sort', 'filter-change', 'filter-visible', 'clear-filter', 'clear-all-filter', 'resizable-change', 'column-resizable-change', 'row-resizable-change', 'toggle-row-group-expand', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'row-dragstart', 'row-dragover', 'row-dragend', 'row-remove-dragend', 'row-insert-dragend', 'column-dragstart', 'column-dragover', 'column-dragend', 'enter-append-row', 'tab-append-row', 'edit-actived', 'edit-activated', 'edit-disabled', 'valid-error', 'scroll', 'scroll-boundary', 'custom', 'custom-visible-change', 'custom-visible-all', 'custom-fixed-change', 'custom-sort-change', 'change-fnr', 'open-fnr', 'show-fnr', 'hide-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-selection', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-drag', 'cell-area-extension-end', 'cell-area-extension-fill', 'cell-area-selection-all-start', 'cell-area-selection-all-end', 'cell-area-arrows-start', 'cell-area-arrows-end', 'cell-area-fill-copy', 'active-cell-change-start', 'active-cell-change-end'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableEmits=void 0;let tableEmits=exports.tableEmits=["ready","init-rendered","data-rendered","update:data","keydown-start","keydown","keydown-end","paste","copy","cut","undo","redo","context-menu","columns-change","data-change","footer-data-change","current-change","current-row-change","current-row-disabled","current-column-change","current-column-disabled","radio-change","checkbox-change","checkbox-all","checkbox-range-start","checkbox-range-change","checkbox-range-end","checkbox-range-select","cell-click","cell-dblclick","cell-menu","cell-mouseenter","cell-mouseleave","cell-selected","cell-delete-value","cell-backspace-value","header-cell-click","header-cell-dblclick","header-cell-menu","footer-cell-click","footer-cell-dblclick","footer-cell-menu","clear-merge","sort-change","clear-sort","clear-all-sort","filter-change","filter-visible","clear-filter","clear-all-filter","resizable-change","column-resizable-change","row-resizable-change","toggle-row-group-expand","toggle-row-expand","toggle-tree-expand","menu-click","edit-closed","row-dragstart","row-dragover","row-dragend","row-remove-dragend","row-insert-dragend","column-dragstart","column-dragover","column-dragend","enter-append-row","tab-append-row","edit-actived","edit-activated","edit-disabled","valid-error","scroll","scroll-boundary","custom","custom-visible-change","custom-visible-all","custom-fixed-change","custom-sort-change","change-fnr","open-fnr","show-fnr","hide-fnr","fnr-change","fnr-find","fnr-find-all","fnr-replace","fnr-replace-all","cell-area-copy","cell-area-cut","cell-area-paste","cell-area-merge","clear-cell-area-selection","clear-cell-area-merge","header-cell-area-selection","cell-area-selection-invalid","cell-area-selection-start","cell-area-selection-drag","cell-area-selection-end","cell-area-extension-start","cell-area-extension-drag","cell-area-extension-end","cell-area-extension-fill","cell-area-selection-all-start","cell-area-selection-all-end","cell-area-arrows-start","cell-area-arrows-end","active-cell-change-start","active-cell-change-end"];
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableEmits=void 0;let tableEmits=exports.tableEmits=["ready","init-rendered","data-rendered","update:data","keydown-start","keydown","keydown-end","paste","copy","cut","undo","redo","context-menu","columns-change","data-change","footer-data-change","current-change","current-row-change","current-row-disabled","current-column-change","current-column-disabled","radio-change","checkbox-change","checkbox-all","checkbox-range-start","checkbox-range-change","checkbox-range-end","checkbox-range-select","cell-click","cell-dblclick","cell-menu","cell-mouseenter","cell-mouseleave","cell-selected","cell-delete-value","cell-backspace-value","header-cell-click","header-cell-dblclick","header-cell-menu","footer-cell-click","footer-cell-dblclick","footer-cell-menu","clear-merge","sort-change","clear-sort","clear-all-sort","filter-change","filter-visible","clear-filter","clear-all-filter","resizable-change","column-resizable-change","row-resizable-change","toggle-row-group-expand","toggle-row-expand","toggle-tree-expand","menu-click","edit-closed","row-dragstart","row-dragover","row-dragend","row-remove-dragend","row-insert-dragend","column-dragstart","column-dragover","column-dragend","enter-append-row","tab-append-row","edit-actived","edit-activated","edit-disabled","valid-error","scroll","scroll-boundary","custom","custom-visible-change","custom-visible-all","custom-fixed-change","custom-sort-change","change-fnr","open-fnr","show-fnr","hide-fnr","fnr-change","fnr-find","fnr-find-all","fnr-replace","fnr-replace-all","cell-area-copy","cell-area-cut","cell-area-paste","cell-area-merge","clear-cell-area-selection","clear-cell-area-merge","header-cell-area-selection","cell-area-selection-invalid","cell-area-selection-start","cell-area-selection-drag","cell-area-selection-end","cell-area-extension-start","cell-area-extension-drag","cell-area-extension-end","cell-area-extension-fill","cell-area-selection-all-start","cell-area-selection-all-end","cell-area-arrows-start","cell-area-arrows-end","cell-area-fill-copy","active-cell-change-start","active-cell-change-end"];
|
package/lib/table/src/group.js
CHANGED
|
@@ -27,6 +27,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
27
27
|
if (slots.header) {
|
|
28
28
|
columnSlots.header = slots.header;
|
|
29
29
|
}
|
|
30
|
+
if (slots.title) {
|
|
31
|
+
columnSlots.title = slots.title;
|
|
32
|
+
}
|
|
30
33
|
columnConfig.slots = columnSlots;
|
|
31
34
|
columnConfig.children = [];
|
|
32
35
|
(0, _util.watchColumn)($xeTable, props, columnConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_column=require("./column"),_util=require("./util"),_cell=_interopRequireDefault(require("./cell"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColgroup",props:_column.columnProps,setup(e,{slots:u}){let
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_column=require("./column"),_util=require("./util"),_cell=_interopRequireDefault(require("./cell"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColgroup",props:_column.columnProps,setup(e,{slots:u}){let l=(0,_vue.ref)(),r=(0,_vue.inject)("$xeTable",null),t=(0,_vue.inject)("$xeColgroup",null);if(!r)return()=>(0,_vue.createCommentVNode)();let o=_cell.default.createColumn(r,e);var n={},n=(u.header&&(n.header=u.header),u.title&&(n.title=u.title),o.slots=n,o.children=[],(0,_util.watchColumn)(r,e,o),(0,_vue.onMounted)(()=>{var e=l.value;e&&(0,_util.assembleColumn)(r,e,o,t)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyColumn)(r,o)}),{columnConfig:o});return(0,_vue.provide)("$xeColgroup",n),(0,_vue.provide)("$xeGrid",null),(0,_vue.provide)("$xeGantt",null),()=>{var e=u.default;return(0,_vue.h)("div",{ref:l},e?e():[])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -47,19 +47,20 @@ if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHei
|
|
|
47
47
|
* 支持动态列表调整分配
|
|
48
48
|
* 支持自动分配偏移量
|
|
49
49
|
* 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
|
|
50
|
-
*/const autoCellWidth=()=>{const{elemStore}=internalData;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const yHandleEl=refScrollYHandleElem.value;if(!yHandleEl){return;}const xHandleEl=refScrollXHandleElem.value;if(!xHandleEl){return;}let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
|
|
51
|
-
const bodyWidth=bodyWrapperElem.clientWidth;let remainWidth=bodyWidth;let meanWidth=remainWidth/100;const{fit}=props;const{columnStore}=reactData;const{resizeList,pxMinList,autoMinList,pxList,scaleList,scaleMinList,autoList,remainList}=columnStore;// 最小宽
|
|
52
|
-
pxMinList.forEach(column=>{
|
|
53
|
-
autoMinList.forEach(column=>{
|
|
54
|
-
scaleMinList.forEach(column=>{
|
|
55
|
-
scaleList.forEach(column=>{
|
|
56
|
-
pxList.forEach(column=>{
|
|
57
|
-
autoList.forEach(column=>{
|
|
58
|
-
resizeList.forEach(column=>{const reWidth=_xeUtils.default.toInteger(column.resizeWidth);tWidth+=reWidth;column.renderWidth=reWidth;});remainWidth-=tWidth;meanWidth=remainWidth>0?Math.floor(remainWidth/(
|
|
50
|
+
*/const autoCellWidth=()=>{const{elemStore}=internalData;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const yHandleEl=refScrollYHandleElem.value;if(!yHandleEl){return;}const xHandleEl=refScrollXHandleElem.value;if(!xHandleEl){return;}const columnOpts=computeColumnOpts.value;let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
|
|
51
|
+
const bodyWidth=bodyWrapperElem.clientWidth;let remainWidth=bodyWidth;let meanWidth=remainWidth/100;const{fit}=props;const{columnStore}=reactData;const{resizeList,pxMinList,autoMinList,pxList,scaleList,scaleMinList,autoList,remainList}=columnStore;const parseColumnMaxWidth=column=>{const maxWidth=column.maxWidth||columnOpts.maxWidth;if(maxWidth&&maxWidth!=='auto'){if((0,_dom.isScale)(maxWidth)){return Math.floor(_xeUtils.default.toInteger(maxWidth)*meanWidth);}return _xeUtils.default.toInteger(maxWidth);}return 0;};// 最小宽
|
|
52
|
+
pxMinList.forEach(column=>{let miWidth=_xeUtils.default.toInteger(column.minWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){miWidth=Math.min(miWidth,mxWidth);}tWidth+=miWidth;column.renderWidth=miWidth;});// 最小自适应
|
|
53
|
+
autoMinList.forEach(column=>{let caWidth=Math.max(60,_xeUtils.default.toInteger(column.renderAutoWidth));const mxWidth=parseColumnMaxWidth(column);if(mxWidth){caWidth=Math.min(caWidth,mxWidth);}tWidth+=caWidth;column.renderWidth=caWidth;});// 最小百分比
|
|
54
|
+
scaleMinList.forEach(column=>{let smWidth=Math.floor(_xeUtils.default.toInteger(column.minWidth)*meanWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){smWidth=Math.min(smWidth,mxWidth);}tWidth+=smWidth;column.renderWidth=smWidth;});// 固定百分比
|
|
55
|
+
scaleList.forEach(column=>{let sfWidth=Math.floor(_xeUtils.default.toInteger(column.width)*meanWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){sfWidth=Math.min(sfWidth,mxWidth);}tWidth+=sfWidth;column.renderWidth=sfWidth;});// 固定宽
|
|
56
|
+
pxList.forEach(column=>{let pWidth=_xeUtils.default.toInteger(column.width);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){pWidth=Math.min(pWidth,mxWidth);}tWidth+=pWidth;column.renderWidth=pWidth;});// 自适应宽
|
|
57
|
+
autoList.forEach(column=>{let aWidth=Math.max(60,_xeUtils.default.toInteger(column.renderAutoWidth));const mxWidth=parseColumnMaxWidth(column);if(mxWidth){aWidth=Math.min(aWidth,mxWidth);}tWidth+=aWidth;column.renderWidth=aWidth;});// 调整了列宽
|
|
58
|
+
resizeList.forEach(column=>{const reWidth=_xeUtils.default.toInteger(column.resizeWidth);tWidth+=reWidth;column.renderWidth=reWidth;});const zoomColumnList=scaleMinList.concat(pxMinList).concat(autoMinList).filter(column=>!parseColumnMaxWidth(column));remainWidth-=tWidth;meanWidth=remainWidth>0?Math.floor(remainWidth/(zoomColumnList.length+remainList.length)):0;if(fit){if(remainWidth>0){zoomColumnList.forEach(column=>{tWidth+=meanWidth;column.renderWidth+=meanWidth;});}}else{meanWidth=minCellWidth;}// 剩余均分
|
|
59
59
|
remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.renderWidth=width;tWidth+=width;});if(fit){/**
|
|
60
60
|
* 偏移量算法
|
|
61
61
|
* 如果所有列足够放的情况下,从最后动态列开始分配
|
|
62
|
-
|
|
62
|
+
* 排除已设置 max-width
|
|
63
|
+
*/const dynamicList=scaleList.concat(scaleMinList).concat(pxMinList).concat(autoMinList).concat(remainList).filter(column=>!parseColumnMaxWidth(column));let dynamicSize=dynamicList.length-1;if(dynamicSize>0){let i=bodyWidth-tWidth;if(i>0){while(i>0&&dynamicSize>=0){i--;dynamicList[dynamicSize--].renderWidth++;}tWidth=bodyWidth;}}}reactData.scrollXWidth=tWidth;reactData.resizeWidthFlag++;updateColumnOffsetLeft();updateHeight();};/**
|
|
63
64
|
* 计算自适应行高
|
|
64
65
|
*/const calcCellAutoHeight=(rowRest,wrapperEl)=>{const{scrollXLoad}=reactData;const wrapperElemList=wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);let colHeight=0;let firstCellStyle=null;let topBottomPadding=0;for(let i=0;i<wrapperElemList.length;i++){const wrapperElem=wrapperElemList[i];const cellElem=wrapperElem.parentElement;const cellStyle=cellElem.style;const orHeight=cellStyle.height;if(!scrollXLoad){cellStyle.height='';}if(!firstCellStyle){firstCellStyle=getComputedStyle(cellElem);topBottomPadding=firstCellStyle?Math.ceil(_xeUtils.default.toNumber(firstCellStyle.paddingTop)+_xeUtils.default.toNumber(firstCellStyle.paddingBottom)):0;}if(!scrollXLoad){cellStyle.height=orHeight;}const cellHeight=wrapperElem?wrapperElem.clientHeight:0;colHeight=Math.max(colHeight,Math.ceil(cellHeight+topBottomPadding));}if(scrollXLoad){colHeight=Math.max(colHeight,rowRest.height);}return colHeight;};/**
|
|
65
66
|
* 自适应行高
|
|
@@ -86,7 +87,7 @@ if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderCo
|
|
|
86
87
|
if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderColumns,$table:$xeTable});tableTree=_xeUtils.default.isArray(sortRests)?sortRests:tableTree;}else{const treeList=_xeUtils.default.toTreeArray(tableTree,{children:mapChildrenField});tableTree=_xeUtils.default.toArrayTree(_xeUtils.default.orderBy(treeList,orderColumns.map(({column,order})=>[getOrderField(column),order])),{key:rowField,parentKey:parentField,children:childrenField,mapChildren:mapChildrenField});}tableData=tableTree;}else{if(allSortMethod){const sortRests=allSortMethod({data:tableData,sortList:orderColumns,$table:$xeTable});tableData=_xeUtils.default.isArray(sortRests)?sortRests:tableData;}else{tableData=_xeUtils.default.orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField(column),order]));}tableTree=tableData;}}}else{if(isRowGroupStatus){// 还原行分组
|
|
87
88
|
// 还原虚拟树
|
|
88
89
|
tableTree=_xeUtils.default.searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 还原虚拟树
|
|
89
|
-
tableTree=_xeUtils.default.searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex();};const updateStyle=()=>{const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=refElem.value;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=refEmptyPlaceholder.value;const isHeaderRenderOptimize=computeIsHeaderRenderOptimize.value;const isBodyRenderOptimize=computeIsBodyRenderOptimize.value;const isFooterRenderOptimize=computeIsFooterRenderOptimize.value;const scrollbarOpts=computeScrollbarOpts.value;const mouseOpts=computeMouseOpts.value;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollbarXConf=scrollbarOpts.x||{};const scrollbarYConf=scrollbarOpts.y||{};const scrollbarYToLeft=computeScrollbarYToLeft.value;let xScrollbarVisible=overflowX?'visible':'hidden';if(scrollbarXConf.visible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(scrollbarXConf.visible==='hidden'||scrollbarXConf.visible===false){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';if(scrollbarYConf.visible==='hidden'||scrollbarYConf.visible===false||$xeGanttView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollbarYConf.visible==='visible'){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=refScrollXLeftCornerElem.value;const xRightCornerEl=refScrollXRightCornerElem.value;const scrollXVirtualEl=refScrollXVirtualElem.value;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=refScrollXWrapperElem.value;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=refScrollYVirtualElem.value;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=refScrollYTopCornerElem.value;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=refScrollYWrapperElem.value;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=refScrollYBottomCornerElem.value;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=refRowExpandElem.value;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?refLeftContainer.value:refRightContainer.value;}layoutList.forEach(layout=>{const wrapperElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-scroll`]);const tableElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
|
|
90
|
+
tableTree=_xeUtils.default.searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex();};const updateStyle=()=>{const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=refElem.value;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=refEmptyPlaceholder.value;const isHeaderRenderOptimize=computeIsHeaderRenderOptimize.value;const isBodyRenderOptimize=computeIsBodyRenderOptimize.value;const isFooterRenderOptimize=computeIsFooterRenderOptimize.value;const scrollbarOpts=computeScrollbarOpts.value;const mouseOpts=computeMouseOpts.value;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollbarXConf=scrollbarOpts.x||{};const scrollbarYConf=scrollbarOpts.y||{};const scrollbarYToLeft=computeScrollbarYToLeft.value;let xScrollbarVisible=overflowX?'visible':'hidden';if(scrollbarXConf.visible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(scrollbarXConf.visible==='hidden'||scrollbarXConf.visible===false){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';if(scrollbarYConf.visible==='hidden'||scrollbarYConf.visible===false||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollbarYConf.visible==='visible'){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=refScrollXLeftCornerElem.value;const xRightCornerEl=refScrollXRightCornerElem.value;const scrollXVirtualEl=refScrollXVirtualElem.value;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=refScrollXWrapperElem.value;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=refScrollYVirtualElem.value;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=refScrollYTopCornerElem.value;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=refScrollYWrapperElem.value;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=refScrollYBottomCornerElem.value;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=refRowExpandElem.value;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?refLeftContainer.value:refRightContainer.value;}layoutList.forEach(layout=>{const wrapperElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-scroll`]);const tableElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
|
|
90
91
|
// 横向滚动渲染
|
|
91
92
|
let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
|
|
92
93
|
if(isOptimizeMode){renderColumnList=fixedColumn||[];}}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isGroup){if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}else{if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}}if(currScrollElem){currScrollElem.style.height=`${tHeaderHeight}px`;}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='body'){if(currScrollElem){currScrollElem.style.maxHeight=customMaxHeight?`${bodyMaxHeight}px`:'';currScrollElem.style.height=customHeight?`${tbHeight}px`:'';currScrollElem.style.minHeight=`${bodyMinHeight}px`;}// 如果是固定列
|
|
@@ -172,7 +173,7 @@ treeData=_xeUtils.default.toArrayTree(fullData,{key:treeOpts.rowField,parentKey:
|
|
|
172
173
|
internalData.tableFullData=fullData;internalData.tableFullTreeData=isRGroup?[]:treeData;internalData.tableFullGroupData=isRGroup?treeData:[];// 缓存数据
|
|
173
174
|
$xeTable.cacheRowMap(isReset);// 原始数据
|
|
174
175
|
internalData.tableSynchData=datas;if(isReset){internalData.isResizeCellHeight=false;}// 克隆原数据,用于显示编辑状态,与编辑值做对比
|
|
175
|
-
if(keepSource){$xeTable.cacheSourceMap(fullData);}if($xeTable.clearCellAreas&&props.mouseConfig){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.clearHistory();$xeTable.handleTableData(true);$xeTable.updateFooter();$xeTable.handleUpdateBodyMerge();return(0,_vue.nextTick)().then(()=>{updateHeight();updateStyle();}).then(()=>{computeScrollLoad();}).then(()=>{const virtualYOpts=computeVirtualYOpts.value;// 是否启用了虚拟滚动
|
|
176
|
+
if(keepSource){$xeTable.cacheSourceMap(fullData);}if($xeTable.clearCellAreas&&props.mouseConfig){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.clearHistory();$xeTable.handleTableData(true);$xeTable.updateFooter();$xeTable.handleUpdateBodyMerge();return(0,_vue.nextTick)().then(()=>{updateHeight();updateStyle();}).then(()=>{computeScrollLoad();syncGanttScrollYStatus();}).then(()=>{const virtualYOpts=computeVirtualYOpts.value;// 是否启用了虚拟滚动
|
|
176
177
|
if(sYLoad){scrollYStore.endIndex=scrollYStore.visibleSize;}if(sYLoad){if(reactData.expandColumn&&expandOpts.mode!=='fixed'){(0,_log.errLog)('vxe.error.notConflictProp',['column.type="expand','expand-config.mode="fixed"']);}if(virtualYOpts.mode==='scroll'&&reactData.expandColumn&&expandOpts.mode==='fixed'){(0,_log.warnLog)('vxe.error.notConflictProp',['virtual-y-config.mode=scroll','expand-config.mode=inside']);}// if (showOverflow) {
|
|
177
178
|
// if (!rowOpts.height) {
|
|
178
179
|
// const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
|
|
@@ -188,7 +189,7 @@ if(!(props.height||props.maxHeight)){(0,_log.errLog)('vxe.error.reqSupportProp',
|
|
|
188
189
|
// warnLog('vxe.error.scrollErrProp', ['span-method'])
|
|
189
190
|
// }
|
|
190
191
|
}handleReserveStatus();$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('data-change',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);return new Promise(resolve=>{(0,_vue.nextTick)().then(()=>handleRecalculateStyle(false,false,false)).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();}).then(()=>{let targetScrollLeft=lastScrollLeft;let targetScrollTop=lastScrollTop;const virtualXOpts=computeVirtualXOpts.value;const virtualYOpts=computeVirtualYOpts.value;// 是否在更新数据之后自动滚动重置滚动条
|
|
191
|
-
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle(false,false,false);updateTreeLineStyle();// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
192
|
+
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle(false,false,false);updateTreeLineStyle();syncGanttScrollYStatus();// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
192
193
|
if(!props.showOverflow){setTimeout(()=>{handleLazyRecalculate(false,true,true);setTimeout(()=>handleLazyRecalculate(false,true,true),3000);},2000);}// 是否变更虚拟滚动
|
|
193
194
|
if(oldScrollYLoad===sYLoad){(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();updateTreeLineStyle();(0,_vue.nextTick)(()=>resolve());});}else{setTimeout(()=>{(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();updateTreeLineStyle();(0,_vue.nextTick)(()=>resolve());});});}});}).then(()=>{if(initStatus){dispatchEvent('data-rendered',{isReload,visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}else{dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}});});};/**
|
|
194
195
|
* 处理数据加载默认行为
|
|
@@ -218,8 +219,8 @@ tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){le
|
|
|
218
219
|
if(props.spanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible();scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
|
|
219
220
|
// 如果列被设置为固定,则清除合并状态
|
|
220
221
|
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn();handleUpdateAggValues();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnHierarchy=()=>{const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){(0,_log.errLog)('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;};const handleInitColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tFullColumn=(0,_util.getColumnList)(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearHeaderFormatterCache();$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return(0,_vue.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=computeColumnOpts.value;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){(0,_log.warnLog)('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate(false,true,true);});});};const updateScrollXStatus=fullColumn=>{const virtualXOpts=computeVirtualXOpts.value;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
|
|
221
|
-
const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const
|
|
222
|
-
const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;
|
|
222
|
+
const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;};const syncGanttScrollYStatus=()=>{const $xeGanttView=internalData.xeGanttView;if($xeGanttView&&$xeGanttView.handleUpdateSYStatus){$xeGanttView.handleUpdateSYStatus(reactData.scrollYLoad);}};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const virtualYOpts=computeVirtualYOpts.value;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
|
|
223
|
+
const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;syncGanttScrollYStatus();return scrollYLoad;};/**
|
|
223
224
|
* 展开与收起树节点
|
|
224
225
|
* @param rows
|
|
225
226
|
* @param expanded
|
|
@@ -691,8 +692,10 @@ if(selectCheckboxMaps[rowid]){selectCheckboxMaps[rowid]=row;}if(rowExpandedMaps[
|
|
|
691
692
|
if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.default.eachTree(sourceData,handleSourceRow,{children:treeOpts.transform?treeOpts.mapChildrenField:childrenField});}else{sourceData.forEach(handleSourceRow);}internalData.sourceDataRowIdData=sourceRowIdData;internalData.tableSourceData=sourceData;},/**
|
|
692
693
|
* 指定列宽的列进行拆分
|
|
693
694
|
*/analyColumnWidth(){const{tableFullColumn}=internalData;const columnOpts=computeColumnOpts.value;const{width:defaultWidth,minWidth:defaultMinWidth}=columnOpts;const resizeList=[];const pxList=[];const pxMinList=[];const autoMinList=[];const scaleList=[];const scaleMinList=[];const autoList=[];const remainList=[];tableFullColumn.forEach(column=>{if(defaultWidth&&!column.width){column.width=defaultWidth;}if(defaultMinWidth&&!column.minWidth){column.minWidth=defaultMinWidth;}if(column.visible){if(column.resizeWidth){resizeList.push(column);}else if(column.width==='auto'){autoList.push(column);}else if((0,_dom.isPx)(column.width)){pxList.push(column);}else if((0,_dom.isScale)(column.width)){scaleList.push(column);}else if((0,_dom.isPx)(column.minWidth)){pxMinList.push(column);}else if(column.minWidth==='auto'){autoMinList.push(column);}else if((0,_dom.isScale)(column.minWidth)){scaleMinList.push(column);}else{remainList.push(column);}}});Object.assign(reactData.columnStore,{resizeList,pxList,pxMinList,autoMinList,scaleList,scaleMinList,autoList,remainList});},handleColResizeMousedownEvent(evnt,fixedType,params){const isLeftBtn=evnt.button===0;if(!isLeftBtn){return;}evnt.stopPropagation();evnt.preventDefault();const{column}=params;const{columnStore,overflowX,scrollbarHeight}=reactData;const{visibleColumn}=internalData;const{leftList,rightList}=columnStore;const resizableOpts=computeResizableOpts.value;const osbHeight=overflowX?scrollbarHeight:0;const tableEl=refElem.value;const leftContainerElem=refLeftContainer.value;const rightContainerElem=refRightContainer.value;const resizeBarElem=refColResizeBar.value;if(!resizeBarElem){return;}const isLeftFixed=fixedType==='left';const isRightFixed=fixedType==='right';const resizeTipElem=resizeBarElem.firstElementChild;const scrollbarXToTop=computeScrollbarXToTop.value;const{clientX:dragClientX}=evnt;const dragBtnElem=evnt.target;let cell=dragBtnElem.parentElement;let resizeColumn=column;const isDragGroupCol=column.children&&column.children.length;if(isDragGroupCol){resizeColumn=(0,_util.getLastChildColumn)(column);if(isDragGroupCol){const trEl=cell?cell.parentElement:null;const theadEl=trEl?trEl.parentElement:null;cell=theadEl?theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`):null;}}if(!cell){return;}const cellParams=_xeUtils.default.assign(params,{cell,$table:$xeTable});let dragLeft=0;const tableRect=tableEl.getBoundingClientRect();const rightContainerRect=rightContainerElem?rightContainerElem.getBoundingClientRect():null;const cellRect=cell.getBoundingClientRect();const dragBtnRect=dragBtnElem.getBoundingClientRect();const dragBtnWidth=dragBtnElem.clientWidth;const dragBtnOffsetWidth=_xeUtils.default.floor(dragBtnWidth/2);const dragPosLeft=dragBtnRect.x-tableRect.x+dragBtnOffsetWidth;const minInterval=(0,_util.getColReMinWidth)(cellParams)-dragBtnOffsetWidth;// 列之间的最小间距
|
|
695
|
+
const maxInterval=(0,_util.getColReMaxWidth)(cellParams);// 列之间的最大间距
|
|
694
696
|
const dragMinLeft=isRightFixed?0:cellRect.x-tableRect.x+dragBtnWidth+minInterval;const dragMaxLeft=cellRect.x-tableRect.x+cell.clientWidth-minInterval;let fixedLeftRemainWidth=0;let fixedRightRemainWidth=0;if(isLeftFixed||isRightFixed){let isMach=false;const fixedColumn=isLeftFixed?leftList:rightList;for(let i=0;i<fixedColumn.length;i++){const item=fixedColumn[i];if(isMach){fixedLeftRemainWidth+=item.renderWidth;}else{isMach=item.id===resizeColumn.id;if(!isMach){fixedRightRemainWidth+=item.renderWidth;}}}}// 处理拖动事件
|
|
695
|
-
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const tableHeight=tableEl.clientHeight;const offsetX=evnt.clientX-dragClientX;let left=dragPosLeft+offsetX;if(isLeftFixed){if(rightContainerRect){left=Math.min(left,rightContainerRect.x-tableRect.x-fixedLeftRemainWidth-minInterval);}}else if(isRightFixed){if(leftContainerElem){left=Math.max(left,leftContainerElem.clientWidth+fixedRightRemainWidth+minInterval);}left=Math.min(left,dragMaxLeft);}dragLeft=Math.max(left,dragMinLeft)
|
|
697
|
+
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const tableHeight=tableEl.clientHeight;const offsetX=evnt.clientX-dragClientX;let left=dragPosLeft+offsetX;if(isLeftFixed){if(rightContainerRect){left=Math.min(left,rightContainerRect.x-tableRect.x-fixedLeftRemainWidth-minInterval);}}else if(isRightFixed){if(leftContainerElem){left=Math.max(left,leftContainerElem.clientWidth+fixedRightRemainWidth+minInterval);}left=Math.min(left,dragMaxLeft);}dragLeft=Math.max(left,dragMinLeft);// 最大宽
|
|
698
|
+
if(maxInterval>1){dragLeft=Math.min(dragLeft,maxInterval+dragMinLeft-minInterval);}const resizeBarLeft=Math.max(1,dragLeft);resizeBarElem.style.left=`${resizeBarLeft}px`;resizeBarElem.style.top=`${scrollbarXToTop?osbHeight:0}px`;resizeBarElem.style.height=`${scrollbarXToTop?tableHeight-osbHeight:tableHeight}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=getI18n('vxe.table.resizeColTip',[Math.floor(resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft))]);const tableWrapperWidth=tableEl.clientWidth;const resizeBarWidth=resizeBarElem.clientWidth;const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeTipLeft=-resizeTipWidth;if(resizeBarLeft<resizeTipWidth+resizeBarWidth){resizeTipLeft=0;}else if(resizeBarLeft>tableWrapperWidth){resizeTipLeft+=tableWrapperWidth-resizeBarLeft;}resizeTipElem.style.left=`${resizeTipLeft}px`;resizeTipElem.style.top=`${Math.min(tableHeight-resizeTipHeight,Math.max(0,evnt.clientY-tableRect.y-resizeTipHeight/2))}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;(0,_dom.addClass)(tableEl,'col-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);const resizeWidth=resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft);const resizeParams=Object.assign(Object.assign({},params),{resizeWidth,resizeColumn});if(resizableOpts.dragMode==='fixed'){visibleColumn.forEach(item=>{if(item.id!==resizeColumn.id){if(!item.resizeWidth){item.resizeWidth=item.renderWidth;}}});}if($xeTable.handleColResizeCellAreaEvent){$xeTable.handleColResizeCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize(evnt,resizeParams);}(0,_dom.removeClass)(tableEl,'col-drag--resize');};updateEvent(evnt);if($xeTable.closeMenu){$xeTable.closeMenu();}},handleColResizeDblclickEvent(evnt,params){const resizableOpts=computeResizableOpts.value;const{isDblclickAutoWidth}=resizableOpts;const el=refElem.value;if(isDblclickAutoWidth&&el){evnt.stopPropagation();evnt.preventDefault();const{fullColumnIdData}=internalData;const{column}=params;let resizeColumn=column;if(column.children&&column.children.length){_xeUtils.default.eachTree(column.children,childColumn=>{resizeColumn=childColumn;});}const colid=resizeColumn.id;const colRest=fullColumnIdData[colid];const dragBtnElem=evnt.target;const cell=dragBtnElem.parentNode;const cellParams=Object.assign(params,{cell,$table:$xeTable});const colMinWidth=(0,_util.getColReMinWidth)(cellParams);const colMaxWidth=(0,_util.getColReMaxWidth)(cellParams);el.setAttribute('data-calc-col','Y');let resizeWidth=calcColumnAutoWidth(resizeColumn,el);el.removeAttribute('data-calc-col');if(colRest){resizeWidth=Math.max(resizeWidth,colRest.width);}resizeWidth=Math.max(colMinWidth,resizeWidth);if(colMaxWidth>1){resizeWidth=Math.min(colMaxWidth,resizeWidth);}const resizeParams=Object.assign(Object.assign({},params),{resizeWidth,resizeColumn});reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleColResizeDblclickCellAreaEvent){$xeTable.handleColResizeDblclickCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize(evnt,resizeParams);}}},handleRowResizeMousedownEvent(evnt,params){evnt.stopPropagation();evnt.preventDefault();const{row}=params;const{showOverflow}=props;const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{elemStore,fullAllDataRowIdData}=internalData;const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const scrollbarYToLeft=computeScrollbarYToLeft.value;const resizableOpts=computeResizableOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;let tableEl=refElem.value;if($xeGantt){const{refGanttContainerElem}=$xeGantt.getRefMaps();const ganttContainerElem=refGanttContainerElem.value;if(ganttContainerElem){tableEl=ganttContainerElem;}}const resizeBarElem=refRowResizeBar.value;if(!resizeBarElem){return;}const{clientY:dragClientY}=evnt;const resizeTipElem=resizeBarElem.firstElementChild;const dragBtnElem=evnt.currentTarget;const tdEl=dragBtnElem.parentNode;const trEl=tdEl.parentNode;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const defaultRowHeight=computeDefaultRowHeight.value;let currCellHeight=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;if(!showOverflow){currCellHeight=tdEl.clientHeight;}const tableRect=tableEl.getBoundingClientRect();const trRect=trEl.getBoundingClientRect();const targetOffsetY=dragClientY-trRect.y-trEl.clientHeight;let resizeHeight=currCellHeight;const cellEl=tdEl.querySelector('.vxe-cell');let cellMinHeight=0;if(cellEl){const cellStyle=getComputedStyle(cellEl);cellMinHeight=Math.max(1,Math.ceil(_xeUtils.default.toNumber(cellStyle.paddingTop)+_xeUtils.default.toNumber(cellStyle.paddingBottom)));}const minTop=trRect.y-tableRect.y+cellMinHeight;// 处理拖动事件
|
|
696
699
|
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const rtWidth=tableEl.clientWidth-osbWidth;const tableHeight=tableEl.clientHeight-osbHeight;let dragTop=evnt.clientY-tableRect.y-targetOffsetY;if(dragTop<minTop){dragTop=minTop;}else{resizeHeight=Math.max(cellMinHeight,currCellHeight+evnt.clientY-dragClientY);}resizeBarElem.style.left=`${scrollbarYToLeft?osbWidth:0}px`;resizeBarElem.style.top=`${dragTop}px`;resizeBarElem.style.width=`${rtWidth}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=getI18n('vxe.table.resizeRowTip',[resizeHeight]);const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeBarLeft=Math.max(2,evnt.clientX-tableRect.x);let resizeBarTop=0;if(resizeBarLeft+resizeTipWidth>=rtWidth-2){resizeBarLeft=rtWidth-resizeTipWidth-2;}if(dragTop+resizeTipHeight>=tableHeight){resizeBarTop=tableHeight-(dragTop+resizeTipHeight);}resizeTipElem.style.left=`${resizeBarLeft}px`;resizeTipElem.style.top=`${resizeBarTop}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;(0,_dom.addClass)(tableEl,'row-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);if(resizeHeight!==currCellHeight){const resizeParams=Object.assign(Object.assign({},params),{resizeHeight,resizeRow:row});internalData.isResizeCellHeight=true;if($xeTable.handleRowResizeCellAreaEvent){$xeTable.handleRowResizeCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize(evnt,resizeParams);updateRowOffsetTop();}}(0,_dom.removeClass)(tableEl,'row-drag--resize');};updateEvent(evnt);},handleRowResizeDblclickEvent(evnt,params){const resizableOpts=computeResizableOpts.value;const{isDblclickAutoHeight}=resizableOpts;const el=refElem.value;if(isDblclickAutoHeight&&el){evnt.stopPropagation();evnt.preventDefault();const{editStore}=reactData;const{fullAllDataRowIdData}=internalData;const{actived}=editStore;const{row}=params;const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const handleRsHeight=()=>{el.setAttribute('data-calc-row','Y');const resizeHeight=calcCellAutoHeight(rowRest,el);el.removeAttribute('data-calc-row');const resizeParams=Object.assign(Object.assign({},params),{resizeHeight,resizeRow:row});reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleRowResizeDblclickCellAreaEvent){$xeTable.handleRowResizeDblclickCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize(evnt,resizeParams);}};if(actived.row||actived.column){$xeTable.clearEdit().then(handleRsHeight);}else{handleRsHeight();}}},saveCustomStore(type){const{customConfig}=props;const tableId=computeTableId.value;const customOpts=computeCustomOpts.value;const{updateStore,storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(type!=='reset'){// fix:修复拖动列宽,重置按钮无法点击的问题
|
|
697
700
|
reactData.isCustomStatus=true;}if(storage&&(customConfig?(0,_utils.isEnableConf)(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggGroup||isCustomAggFunc)){if(!tableId){(0,_log.errLog)('vxe.error.reqProp',['id']);return(0,_vue.nextTick)();}const storeData=type==='reset'?{resizableData:{},sortData:[],visibleData:{},fixedData:{},aggGroupData:{},aggFuncData:{}}:$xeTable.getCustomStoreData();if(updateStore){return updateStore({$table:$xeTable,id:tableId,type,storeData});}else{setCustomStorageMap(tableId,type==='reset'?null:storeData);}}return(0,_vue.nextTick)();},handleCustom(){const{mouseConfig}=props;if(mouseConfig){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}$xeTable.analyColumnWidth();return $xeTable.refreshColumn(true);},handleUpdateDataQueue(){reactData.upDataFlag++;},handleRefreshColumnQueue(){reactData.reColumnFlag++;},handleFilterOptions(column){if(column){const{filterStore}=reactData;const{filterRender,filters}=column;const filterOptions=filters||[];const compConf=(0,_utils.isEnableConf)(filterRender)?renderer.get(filterRender.name):null;const frMethod=column.filterRecoverMethod||(compConf?compConf.tableFilterRecoverMethod||compConf.filterRecoverMethod:null);filterStore.column=column;// 复原状态
|
|
698
701
|
filterOptions.forEach(option=>{const{_checked,checked}=option;option._checked=checked;if(!checked&&_checked!==checked){if(frMethod){frMethod({option,column,$table:$xeTable});}}});$xeTable.checkFilterOptions();}},preventEvent(evnt,type,args,next,end){let evntList=interceptor.get(type);// 兼容老版本
|