vxe-table 3.21.6 → 3.21.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/es/style.css +1 -1
- package/es/table/src/body.js +13 -13
- package/es/table/src/group.js +3 -0
- package/es/table/src/methods.js +39 -10
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +25 -22
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/body.js +13 -13
- package/lib/table/src/body.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/methods.js +7 -7
- package/lib/table/src/methods.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 +15 -15
- package/packages/table/src/group.ts +4 -0
- package/packages/table/src/methods.ts +41 -10
- /package/es/{iconfont.1780293000244.ttf → iconfont.1780638727189.ttf} +0 -0
- /package/es/{iconfont.1780293000244.woff → iconfont.1780638727189.woff} +0 -0
- /package/es/{iconfont.1780293000244.woff2 → iconfont.1780638727189.woff2} +0 -0
- /package/lib/{iconfont.1780293000244.ttf → iconfont.1780638727189.ttf} +0 -0
- /package/lib/{iconfont.1780293000244.woff → iconfont.1780638727189.woff} +0 -0
- /package/lib/{iconfont.1780293000244.woff2 → iconfont.1780638727189.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -426,25 +426,13 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
426
426
|
class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
|
|
427
427
|
}, column.renderCell(h, cellParams)));
|
|
428
428
|
}
|
|
429
|
-
tdVNs.push(h('div', {
|
|
430
|
-
key: 'tc',
|
|
431
|
-
class: ['vxe-cell', {
|
|
432
|
-
'c--title': showTitle,
|
|
433
|
-
'c--tooltip': showTooltip,
|
|
434
|
-
'c--ellipsis': showEllipsis
|
|
435
|
-
}],
|
|
436
|
-
style: tcStyle,
|
|
437
|
-
attrs: {
|
|
438
|
-
title: showTitle ? $xeTable.getCellLabel(row, column) : null
|
|
439
|
-
}
|
|
440
|
-
}, clVNs));
|
|
441
429
|
if (showValidTip && errorValidItem) {
|
|
442
430
|
const errRule = errorValidItem.rule;
|
|
443
431
|
const validSlot = slots ? slots.valid : null;
|
|
444
432
|
const validParams = Object.assign(Object.assign(Object.assign({}, cellParams), errorValidItem), {
|
|
445
433
|
rule: errorValidItem
|
|
446
434
|
});
|
|
447
|
-
|
|
435
|
+
clVNs.push(h('div', {
|
|
448
436
|
key: 'tcv',
|
|
449
437
|
class: ['vxe-cell--valid-error-tip', (0, _utils.getClass)(validOpts.className, errorValidItem)],
|
|
450
438
|
style: errRule && errRule.maxWidth ? {
|
|
@@ -456,6 +444,18 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
456
444
|
class: 'vxe-cell--valid-error-msg'
|
|
457
445
|
}, errorValidItem.content)]])]));
|
|
458
446
|
}
|
|
447
|
+
tdVNs.push(h('div', {
|
|
448
|
+
key: 'tc',
|
|
449
|
+
class: ['vxe-cell', {
|
|
450
|
+
'c--title': showTitle,
|
|
451
|
+
'c--tooltip': showTooltip,
|
|
452
|
+
'c--ellipsis': showEllipsis
|
|
453
|
+
}],
|
|
454
|
+
style: tcStyle,
|
|
455
|
+
attrs: {
|
|
456
|
+
title: showTitle ? $xeTable.getCellLabel(row, column) : null
|
|
457
|
+
}
|
|
458
|
+
}, clVNs));
|
|
459
459
|
}
|
|
460
460
|
let showAreaRowStatus = false;
|
|
461
461
|
if (mouseConfig && mouseOpts.area && !_columnIndex && selectCellToRow) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_comp=require("../../ui/src/comp"),_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,sourceType="table",renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,t=e.isDragResize,e=e.lastSTime;return!!(t||e&&Date.now()<e+l)};function renderLine(o,a,i,s,d){var n=s.column,c=a.treeConfig,p=a.computeCellOpts,u=a.computeRowOpts,g=a.computeDefaultRowHeight,x=a.computeTreeOpts,{slots:n,treeNode:m}=n,v=a.fullAllDataRowIdData;if(c&&m&&(x.showLine||x.line)){if(n&&n.line)return a.callSlot(n.line,s,o);c=v[i];let e=0,l=null,t=null,r="";return(c&&(e=c.level,l=c.items[c.treeIndex-1],t=c.parent),e||x.showRootLine)?(l?(m=v[(0,_util.getRowid)(a,l)]||{},r=`${m.lineHeight||0}px`):e&&t&&(n=v[(0,_util.getRowid)(a,t)]||{},r=`calc(-1em + ${Math.floor(d/2+(0,_util.getCellRestHeight)(n,p,u,g)/2)}px)`),[o("div",{key:"tl",class:"vxe-tree--line-wrapper"},[o("div",{class:"vxe-tree--line",style:{height:r,bottom:`-${Math.floor(d/2)}px`,left:`calc(${e*x.indent}px + 1em)`}})])]):[]}return[]}function renderTdColumn(e,l,H,t,r,A,q,o,F,L,a,i,U,N,s){var d=l.$xeGrid,V=l.$xeGantt,{columnKey:G,resizable:W,showOverflow:n,border:X,height:c,treeConfig:Y,cellClassName:j,cellStyle:P,align:K,spanMethod:J,mouseConfig:Q,editConfig:Z,editRules:p,tooltipConfig:u,padding:g}=l,{tableData:ee,tableColumn:le,dragRow:te,overflowX:re,overflowY:oe,currentColumn:ae,scrollXLoad:ie,scrollYLoad:se,mergeBodyFlag:de,calcCellHeightFlag:x,resizeHeightFlag:ne,resizeWidthFlag:ce,editStore:pe,isAllOverflow:ue,validErrorMaps:m}=l,{fullAllDataRowIdData:ge,fullColumnIdData:v,mergeBodyCellMaps:xe,visibleColumn:me,afterFullData:ve,mergeBodyList:we,scrollXStore:he,scrollYStore:fe,keepUpdateFieldMaps:ye}=l,w=l.computeCellOpts,h=l.computeValidOpts,f=l.computeCheckboxOpts,be=l.computeEditOpts,y=l.computeTooltipOpts,Ce=l.computeVirtualXOpts,_e=l.computeVirtualYOpts,{isAllColumnDrag:Re,isAllRowDrag:Ee}=l.resizableOpts,b=l.computeRowOpts,C=l.computeRowDragOpts,Se=l.computeDefaultRowHeight,x=x?w.height||b.height:0,{disabledMethod:_,isCrossDrag:$e,isPeerDrag:De}=C,Oe=l.computeColumnOpts,Ie=l.computeMouseOpts,Te=l.computeCellOffsetWidth,ke=l.computeAreaOpts.selectCellToRow,{field:Be,type:Me,cellRender:R,editRender:E,align:ze,showOverflow:He,className:Ae,treeNode:qe,rowResize:Fe,padding:S,verticalAlign:$,slots:Le}=i,D=w.verticalAlign,pe=pe.actived,Ue=ge[t]||{},O=i.id,v=v[O]||{},R=E||R,R=R?renderer.get(R.name):null,Ne=R?R.tableCellClassName||R.cellClassName:null,Ve=R?R.tableCellStyle||R.cellStyle:"";let Ge=y.showAll;var We=v.index,y=v._index,v=(0,_utils.isEnableConf)(E),E=ne?Ue.resizeHeight:0;let I=re&&(r?i.fixed!==r:!!i.fixed);ne=_xeUtils.default.eqNull(S)?null===g?w.padding:g:S,g=_xeUtils.default.eqNull(He)?n:He,S="ellipsis"===g;let T="title"===g,k=!0===g||"tooltip"===g;n=ue||T||k||S,He=_xeUtils.default.isBoolean(i.resizable)?i.resizable:Oe.resizable||W,g=!!x,W=0<E;let Xe;x={},E=ze||(R?R.tableCellAlign:"")||K,ze=_xeUtils.default.eqNull($)?D:$,R=m[t+":"+O],K=p&&h.showErrorMessage&&("default"===h.message?c||1<ee.length:"inline"===h.message),D={colid:O};let B={$table:l,$grid:d,$gantt:V,isEdit:!1,seq:H,rowid:t,row:o,rowIndex:F,$rowIndex:L,_rowIndex:a,column:i,columnIndex:We,$columnIndex:U,_columnIndex:y,fixed:r,source:sourceType,type:renderType,isHidden:!!I,level:q,visibleData:ve,data:ee,items:s},M=!1,Ye=!1,z=((M=b.drag?"row"===C.trigger||i.dragSort&&"cell"===C.trigger:M)&&(Ye=!(!_||!_(B))),(T||k||Ge||u)&&(x.mouseover=e=>{isVMScrollProcess(l)||(T?(0,_dom.updateCellTitle)(e.currentTarget,i):(k||Ge)&&l.triggerBodyTooltipEvent(e,B)),l.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},B),e)}),(k||Ge||u)&&(x.mouseleave=e=>{isVMScrollProcess(l)||(k||Ge)&&l.handleTargetLeaveEvent(e),l.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},B),e)}),(M||f.range||Q)&&(x.mousedown=e=>{l.triggerCellMousedownEvent(e,B)}),M&&(x.mouseup=l.triggerCellMouseupEvent),x.click=e=>{l.triggerCellClickEvent(e,B)},!(x.dblclick=e=>{l.triggerCellDblclickEvent(e,B)})),je=1,Pe=1;if(de&&we.length){$=xe[a+":"+y];if($){var{rowspan:m,colspan:p}=$;if(!m||!p)return renderEmptyElement(l);1<m&&(z=!0,Pe=m,D.rowspan=m),1<p&&(z=!0,je=p,D.colspan=p)}}else if(J){var{rowspan:c=1,colspan:d=1}=J(B)||{};if(!c||!d)return renderEmptyElement(l);1<c&&(z=!0,Pe=c,D.rowspan=c),1<d&&(z=!0,je=d,D.colspan=d)}!(I=I&&z&&(1<D.colspan||1<D.rowspan)?!1:I)&&Z&&(be.showStatus||be.showUpdateStatus)&&ye[Be]&&(Xe=l.isUpdateByRow(o,Be));V=!n&&(se||ie);let Ke=(0,_util.getCellRestHeight)(Ue,w,b,Se);H=U===N.length-1,F=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let Je=!1;z||te&&(0,_util.getRowid)(l,te)===t||(oe&&se&&!Y&&16<ee.length&&!_e.immediate&&(a<fe.visibleStartIndex-fe.preloadSize||a>fe.visibleEndIndex+fe.preloadSize)||re&&ie&&10<le.length&&!Ce.immediate&&!i.fixed&&(y<he.visibleStartIndex-he.preloadSize||y>he.visibleEndIndex+he.preloadSize))&&(Je=!0),1<Pe&&(L=ve[a+Pe-1])&&(s=ge[(0,_util.getRowid)(l,L)])&&(Ke+=s.oTop+(0,_util.getCellRestHeight)(s,w,b,Se)-Ue.oTop-(0,_util.getCellRestHeight)(Ue,w,b,Se));C={};if(n&&ce){let l=0;if(1<je)for(let e=1;e<je;e++){var Qe=me[We+e];Qe&&(l+=Qe.renderWidth)}C.width=i.renderWidth+l-Te+"px"}se||ie||n||g||W?C.height=Ke+"px":C.minHeight=Ke+"px";_=[];I&&ue?_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C})):(Y&&_.push(...renderLine(e,l,t,B,Ke)),u=[],Je||u.push(e("div",{attrs:{colid:O,rowid:t},class:"vxe-cell--wrapper vxe-body-cell--wrapper"},i.renderCell(e,B))),_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C,attrs:{title:T?l.getCellLabel(o,i):null}},u)),K&&R&&(f=R.rule,de=Le?Le.valid:null,we=Object.assign(Object.assign(Object.assign({},B),R),{rule:R}),_.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(h.className,R)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(h.theme||"normal")},[de?l.callSlot(de,we,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let Ze=!1;return Q&&Ie.area&&!y&&ke&&(Ze=!0),!I&&He&&Re&&_.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!X||"none"===X}],on:{mousedown:e=>l.handleColResizeMousedownEvent(e,r,B),dblclick:e=>l.handleColResizeDblclickEvent(e,B)}})),(Fe||Ee)&&b.resizable&&_.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>l.handleRowResizeMousedownEvent(e,B),dblclick:e=>l.handleRowResizeDblclickEvent(e,B)}})),e("td",{class:["vxe-table--column vxe-body--column",O,ze?"col--vertical-"+ze:"",E?"col--"+E:"",Me?"col--"+Me:"",{"col--last":H,"col--tree-node":qe,"col--edit":v,"col--ellipsis":n,"col--cs-height":g,"col--rs-height":W,"col--to-row":Ze,"col--auto-height":V,"fixed--width":!F,"fixed--hidden":I,"is--padding":ne,"is--progress":I&&ue||Je,"is--drag-cell":M&&($e||De||!q),"is--drag-disabled":Ye,"col--dirty":Xe,"col--active":Z&&v&&pe.row===o&&(pe.column===i||"row"===be.mode),"col--valid-error":!!R,"show--valid-bg":R&&h.showErrorBackground,"col--current":ae===i},(0,_utils.getClass)(Ne,B),(0,_utils.getClass)(Ae,B),(0,_utils.getClass)(j,B)],key:G||ie||se||Oe.useKey||b.useKey||Oe.drag?i.id:U,attrs:D,style:Object.assign({},_xeUtils.default.isFunction(Ve)?Ve(B):Ve,_xeUtils.default.isFunction(P)?P(B):P),on:x},A&&I?[]:_)}function renderRows(v,w,h,f,y,b){let C=w.$parent;var e=C,l=C,t=C;let _=C.$xeGrid,R=C.$xeGantt,{stripe:E,rowKey:S,highlightHoverRow:$,rowClassName:D,rowStyle:O,editConfig:I,treeConfig:T}=e,{hasFixedColumn:k,treeExpandedFlag:B,scrollYLoad:M,isAllOverflow:z,rowExpandedFlag:H,expandColumn:A,selectRadioRow:q,pendingRowFlag:F,rowExpandHeightFlag:L,isRowGroupStatus:U}=l,{fullAllDataRowIdData:P,fullColumnIdData:K,treeExpandedMaps:J,pendingRowMaps:Q,rowExpandedMaps:Z,currentRow:N}=t,ee=C.computeCheckboxOpts,le=C.computeRadioOpts,V=C.computeTreeOpts,G=C.computeEditOpts,W=C.computeRowOpts,te=C.computeColumnOpts,{transform:X,seqMode:Y}=V,re=V.children||V.childrenField,j=[],oe=(0,_util.createHandleGetRowId)(C).handleGetRowId,ae=T||U;return y.forEach((r,o)=>{var a={};let i=oe(r);var s=P[i]||{};let d=o,n=0,c=-1,p=-1;var u=U&&r.isAggregate,g=((W.isHover||$)&&(a.mouseover=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:r,rowIndex:d})},a.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),s&&(d=s.index,p=s._index,n=s.level,c=s.seq,u||T&&X&&"increasing"===Y?c=s._index+1:T&&"fixed"===Y&&(c=s._tIndex+1)),{$table:C,seq:c,rowid:i,fixed:h,type:renderType,level:n,row:r,rowIndex:d,$rowIndex:o,_rowIndex:p}),x=A&&!!H&&!!Z[i];let e=!1,l=[],t=!1;I&&(t=C.isInsertByRow(r)),!T||M||X||(l=r[re],e=!!B&&l&&0<l.length&&!!J[i]),!W.drag||U||T&&!X||(a.dragstart=C.handleRowDragDragstartEvent,a.dragend=C.handleRowDragDragendEvent,a.dragover=C.handleRowDragDragoverEvent);var u=["vxe-body--row",ae?"row--level-"+n:"",{"row--stripe":E&&(p+1)%2==0,"is--new":t,"is--expand-row":x,"is--expand-tree":e,"row--new":t&&(G.showStatus||G.showInsertStatus),"row--radio":le.highlight&&q===r,"row--checked":ee.highlight&&C.isCheckedByCheckboxRow(r),"row--pending":!!F&&!!Q[i],"row--group":u,"row--current":N&&i===(0,_util.getRowid)(C,N)},D?_xeUtils.default.isFunction(D)?D(g):D:""],m=b.map((e,l)=>renderTdColumn(v,C,c,i,h,f,n,r,d,o,p,e,l,b,y));if(j.push(v("tr",{class:u,attrs:{rowid:i},style:O?_xeUtils.default.isFunction(O)?O(g):O:void 0,key:S||W.useKey||W.drag||te.drag||U||T?i:o,on:a},m)),x){var{height:u,padding:g,mode:a}=C.computeExpandOpts;if("fixed"===a){m=s.expandHeight;let e=0;L&&(m||u)&&(e=(m||u||0)+1),j.push(v("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+i,attrs:{rowid:i}},[v("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:e+"px"}})]))}else{x={},a=(u&&(x.height=u+"px"),T&&(x.paddingLeft=n*V.indent+30+"px"),A||{}).showOverflow,s=A.id,m=K[s]||{},s=_xeUtils.default.eqNull(a)?z:a;let e=-1,l=-1,t=-1;m&&(e=m.index,l=m.$index,t=m._index);a={$grid:_,$table:C,$gantt:R,seq:c,column:A,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:n,row:r,rowid:i,rowIndex:d,$rowIndex:o,_rowIndex:p,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};j.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":g}],key:"expand_"+i},[v("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!k,"col--ellipsis":s}],attrs:{colspan:b.length}},[v("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":u}],style:x},[A.renderData(v,a)])])]))}}e&&j.push(...renderRows(v,w,h,f,l,b))}),j}var _default=exports.default=(0,_comp.defineVxeComponent)({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,a=l.$xeGrid,i=l.$xeGantt,s=l.$scopedSlots,d=l.xID;let{fixedColumn:n,fixedType:c,tableColumn:p}=this;var u=e.mouseConfig,{isGroup:r,tableData:g,isColLoading:x,overflowX:m,scrollXLoad:v,scrollYLoad:w,dragRow:h,dragCol:f}=r,{visibleColumn:o,fullAllDataRowIdData:y,fullColumnIdData:b}=o,C=l.computeEmptyOpts,_=l.computeMouseOpts;let R=g,E=p;g=l.computeIsBodyRenderOptimize;x||!c&&m||(E=o),c&&g&&(E=n||[]),w&&h&&2<R.length&&(x=y[(0,_util.getRowid)(l,h)])&&(m=x._index,o=R[0],w=R[R.length-1],x=y[(0,_util.getRowid)(l,o)],o=y[(0,_util.getRowid)(l,w)],x)&&o&&(y=x._index,w=o._index,m<y?R=[h].concat(R):w<m&&(R=R.concat([h]))),c||r||v&&f&&2<E.length&&(x=b[f.id])&&(o=x._index,y=E[0],w=E[E.length-1],m=b[y.id],h=b[w.id],m)&&h&&(r=m._index,v=h._index,o<r?E=[f].concat(E):v<o&&(E=E.concat([f])));let S;x=s?s.empty:null,y={$table:l,$grid:a,$gantt:i};return S=x?x.call(l,y):(w=(b=C.name?renderer.get(C.name):null)?b.renderTableEmpty||b.renderTableEmptyView||b.renderEmpty:null)?(0,_vn.getSlotVNs)(w.call(l,t,C,y)):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",c?`fixed-${c}--wrapper`:"body--wrapper"],attrs:{xid:d}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,c)}}},[c?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:d,cellspacing:0,cellpadding:0,border:0,xvm:g?"1":null}},[t("colgroup",{ref:"refBodyColgroup"},E.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tbody",{ref:"refBodyTBody"},renderRows(t,this,c,g,R,E))]),t("div",{class:"vxe-table--checkbox-range"}),u&&_.area?t("div",{class:"vxe-table--cell-area",attrs:{xid:d}},[t("span",{class:"vxe-table--cell-main-area"},_.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:c,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-clip-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),c?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])])}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_comp=require("../../ui/src/comp"),_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,sourceType="table",renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,t=e.isDragResize,e=e.lastSTime;return!!(t||e&&Date.now()<e+l)};function renderLine(o,a,i,s,d){var n=s.column,c=a.treeConfig,p=a.computeCellOpts,u=a.computeRowOpts,g=a.computeDefaultRowHeight,x=a.computeTreeOpts,{slots:n,treeNode:m}=n,v=a.fullAllDataRowIdData;if(c&&m&&(x.showLine||x.line)){if(n&&n.line)return a.callSlot(n.line,s,o);c=v[i];let e=0,l=null,t=null,r="";return(c&&(e=c.level,l=c.items[c.treeIndex-1],t=c.parent),e||x.showRootLine)?(l?(m=v[(0,_util.getRowid)(a,l)]||{},r=`${m.lineHeight||0}px`):e&&t&&(n=v[(0,_util.getRowid)(a,t)]||{},r=`calc(-1em + ${Math.floor(d/2+(0,_util.getCellRestHeight)(n,p,u,g)/2)}px)`),[o("div",{key:"tl",class:"vxe-tree--line-wrapper"},[o("div",{class:"vxe-tree--line",style:{height:r,bottom:`-${Math.floor(d/2)}px`,left:`calc(${e*x.indent}px + 1em)`}})])]):[]}return[]}function renderTdColumn(e,l,H,t,r,A,q,o,F,L,a,i,U,N,s){var d=l.$xeGrid,V=l.$xeGantt,{columnKey:G,resizable:W,showOverflow:n,border:X,height:c,treeConfig:Y,cellClassName:j,cellStyle:P,align:K,spanMethod:J,mouseConfig:Q,editConfig:Z,editRules:p,tooltipConfig:u,padding:g}=l,{tableData:ee,tableColumn:le,dragRow:te,overflowX:re,overflowY:oe,currentColumn:ae,scrollXLoad:ie,scrollYLoad:se,mergeBodyFlag:de,calcCellHeightFlag:x,resizeHeightFlag:ne,resizeWidthFlag:ce,editStore:pe,isAllOverflow:ue,validErrorMaps:m}=l,{fullAllDataRowIdData:ge,fullColumnIdData:v,mergeBodyCellMaps:xe,visibleColumn:me,afterFullData:ve,mergeBodyList:we,scrollXStore:he,scrollYStore:fe,keepUpdateFieldMaps:ye}=l,w=l.computeCellOpts,h=l.computeValidOpts,f=l.computeCheckboxOpts,be=l.computeEditOpts,y=l.computeTooltipOpts,Ce=l.computeVirtualXOpts,_e=l.computeVirtualYOpts,{isAllColumnDrag:Re,isAllRowDrag:Ee}=l.resizableOpts,b=l.computeRowOpts,C=l.computeRowDragOpts,Se=l.computeDefaultRowHeight,x=x?w.height||b.height:0,{disabledMethod:_,isCrossDrag:$e,isPeerDrag:De}=C,Oe=l.computeColumnOpts,Ie=l.computeMouseOpts,Te=l.computeCellOffsetWidth,ke=l.computeAreaOpts.selectCellToRow,{field:Be,type:Me,cellRender:R,editRender:E,align:ze,showOverflow:He,className:Ae,treeNode:qe,rowResize:Fe,padding:S,verticalAlign:$,slots:Le}=i,D=w.verticalAlign,pe=pe.actived,Ue=ge[t]||{},O=i.id,v=v[O]||{},R=E||R,R=R?renderer.get(R.name):null,Ne=R?R.tableCellClassName||R.cellClassName:null,Ve=R?R.tableCellStyle||R.cellStyle:"";let Ge=y.showAll;var We=v.index,y=v._index,v=(0,_utils.isEnableConf)(E),E=ne?Ue.resizeHeight:0;let I=re&&(r?i.fixed!==r:!!i.fixed);ne=_xeUtils.default.eqNull(S)?null===g?w.padding:g:S,g=_xeUtils.default.eqNull(He)?n:He,S="ellipsis"===g;let T="title"===g,k=!0===g||"tooltip"===g;n=ue||T||k||S,He=_xeUtils.default.isBoolean(i.resizable)?i.resizable:Oe.resizable||W,g=!!x,W=0<E;let Xe;x={},E=ze||(R?R.tableCellAlign:"")||K,ze=_xeUtils.default.eqNull($)?D:$,R=m[t+":"+O],K=p&&h.showErrorMessage&&("default"===h.message?c||1<ee.length:"inline"===h.message),D={colid:O};let B={$table:l,$grid:d,$gantt:V,isEdit:!1,seq:H,rowid:t,row:o,rowIndex:F,$rowIndex:L,_rowIndex:a,column:i,columnIndex:We,$columnIndex:U,_columnIndex:y,fixed:r,source:sourceType,type:renderType,isHidden:!!I,level:q,visibleData:ve,data:ee,items:s},M=!1,Ye=!1,z=((M=b.drag?"row"===C.trigger||i.dragSort&&"cell"===C.trigger:M)&&(Ye=!(!_||!_(B))),(T||k||Ge||u)&&(x.mouseover=e=>{isVMScrollProcess(l)||(T?(0,_dom.updateCellTitle)(e.currentTarget,i):(k||Ge)&&l.triggerBodyTooltipEvent(e,B)),l.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},B),e)}),(k||Ge||u)&&(x.mouseleave=e=>{isVMScrollProcess(l)||(k||Ge)&&l.handleTargetLeaveEvent(e),l.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},B),e)}),(M||f.range||Q)&&(x.mousedown=e=>{l.triggerCellMousedownEvent(e,B)}),M&&(x.mouseup=l.triggerCellMouseupEvent),x.click=e=>{l.triggerCellClickEvent(e,B)},!(x.dblclick=e=>{l.triggerCellDblclickEvent(e,B)})),je=1,Pe=1;if(de&&we.length){$=xe[a+":"+y];if($){var{rowspan:m,colspan:p}=$;if(!m||!p)return renderEmptyElement(l);1<m&&(z=!0,Pe=m,D.rowspan=m),1<p&&(z=!0,je=p,D.colspan=p)}}else if(J){var{rowspan:c=1,colspan:d=1}=J(B)||{};if(!c||!d)return renderEmptyElement(l);1<c&&(z=!0,Pe=c,D.rowspan=c),1<d&&(z=!0,je=d,D.colspan=d)}!(I=I&&z&&(1<D.colspan||1<D.rowspan)?!1:I)&&Z&&(be.showStatus||be.showUpdateStatus)&&ye[Be]&&(Xe=l.isUpdateByRow(o,Be));V=!n&&(se||ie);let Ke=(0,_util.getCellRestHeight)(Ue,w,b,Se);H=U===N.length-1,F=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let Je=!1;z||te&&(0,_util.getRowid)(l,te)===t||(oe&&se&&!Y&&16<ee.length&&!_e.immediate&&(a<fe.visibleStartIndex-fe.preloadSize||a>fe.visibleEndIndex+fe.preloadSize)||re&&ie&&10<le.length&&!Ce.immediate&&!i.fixed&&(y<he.visibleStartIndex-he.preloadSize||y>he.visibleEndIndex+he.preloadSize))&&(Je=!0),1<Pe&&(L=ve[a+Pe-1])&&(s=ge[(0,_util.getRowid)(l,L)])&&(Ke+=s.oTop+(0,_util.getCellRestHeight)(s,w,b,Se)-Ue.oTop-(0,_util.getCellRestHeight)(Ue,w,b,Se));C={};if(n&&ce){let l=0;if(1<je)for(let e=1;e<je;e++){var Qe=me[We+e];Qe&&(l+=Qe.renderWidth)}C.width=i.renderWidth+l-Te+"px"}se||ie||n||g||W?C.height=Ke+"px":C.minHeight=Ke+"px";_=[];I&&ue?_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C})):(Y&&_.push(...renderLine(e,l,t,B,Ke)),u=[],Je||u.push(e("div",{attrs:{colid:O,rowid:t},class:"vxe-cell--wrapper vxe-body-cell--wrapper"},i.renderCell(e,B))),K&&R&&(f=R.rule,de=Le?Le.valid:null,we=Object.assign(Object.assign(Object.assign({},B),R),{rule:R}),u.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(h.className,R)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(h.theme||"normal")},[de?l.callSlot(de,we,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))),_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C,attrs:{title:T?l.getCellLabel(o,i):null}},u)));let Ze=!1;return Q&&Ie.area&&!y&&ke&&(Ze=!0),!I&&He&&Re&&_.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!X||"none"===X}],on:{mousedown:e=>l.handleColResizeMousedownEvent(e,r,B),dblclick:e=>l.handleColResizeDblclickEvent(e,B)}})),(Fe||Ee)&&b.resizable&&_.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>l.handleRowResizeMousedownEvent(e,B),dblclick:e=>l.handleRowResizeDblclickEvent(e,B)}})),e("td",{class:["vxe-table--column vxe-body--column",O,ze?"col--vertical-"+ze:"",E?"col--"+E:"",Me?"col--"+Me:"",{"col--last":H,"col--tree-node":qe,"col--edit":v,"col--ellipsis":n,"col--cs-height":g,"col--rs-height":W,"col--to-row":Ze,"col--auto-height":V,"fixed--width":!F,"fixed--hidden":I,"is--padding":ne,"is--progress":I&&ue||Je,"is--drag-cell":M&&($e||De||!q),"is--drag-disabled":Ye,"col--dirty":Xe,"col--active":Z&&v&&pe.row===o&&(pe.column===i||"row"===be.mode),"col--valid-error":!!R,"show--valid-bg":R&&h.showErrorBackground,"col--current":ae===i},(0,_utils.getClass)(Ne,B),(0,_utils.getClass)(Ae,B),(0,_utils.getClass)(j,B)],key:G||ie||se||Oe.useKey||b.useKey||Oe.drag?i.id:U,attrs:D,style:Object.assign({},_xeUtils.default.isFunction(Ve)?Ve(B):Ve,_xeUtils.default.isFunction(P)?P(B):P),on:x},A&&I?[]:_)}function renderRows(v,w,h,f,y,b){let C=w.$parent;var e=C,l=C,t=C;let _=C.$xeGrid,R=C.$xeGantt,{stripe:E,rowKey:S,highlightHoverRow:$,rowClassName:D,rowStyle:O,editConfig:I,treeConfig:T}=e,{hasFixedColumn:k,treeExpandedFlag:B,scrollYLoad:M,isAllOverflow:z,rowExpandedFlag:H,expandColumn:A,selectRadioRow:q,pendingRowFlag:F,rowExpandHeightFlag:L,isRowGroupStatus:U}=l,{fullAllDataRowIdData:P,fullColumnIdData:K,treeExpandedMaps:J,pendingRowMaps:Q,rowExpandedMaps:Z,currentRow:N}=t,ee=C.computeCheckboxOpts,le=C.computeRadioOpts,V=C.computeTreeOpts,G=C.computeEditOpts,W=C.computeRowOpts,te=C.computeColumnOpts,{transform:X,seqMode:Y}=V,re=V.children||V.childrenField,j=[],oe=(0,_util.createHandleGetRowId)(C).handleGetRowId,ae=T||U;return y.forEach((r,o)=>{var a={};let i=oe(r);var s=P[i]||{};let d=o,n=0,c=-1,p=-1;var u=U&&r.isAggregate,g=((W.isHover||$)&&(a.mouseover=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:r,rowIndex:d})},a.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),s&&(d=s.index,p=s._index,n=s.level,c=s.seq,u||T&&X&&"increasing"===Y?c=s._index+1:T&&"fixed"===Y&&(c=s._tIndex+1)),{$table:C,seq:c,rowid:i,fixed:h,type:renderType,level:n,row:r,rowIndex:d,$rowIndex:o,_rowIndex:p}),x=A&&!!H&&!!Z[i];let e=!1,l=[],t=!1;I&&(t=C.isInsertByRow(r)),!T||M||X||(l=r[re],e=!!B&&l&&0<l.length&&!!J[i]),!W.drag||U||T&&!X||(a.dragstart=C.handleRowDragDragstartEvent,a.dragend=C.handleRowDragDragendEvent,a.dragover=C.handleRowDragDragoverEvent);var u=["vxe-body--row",ae?"row--level-"+n:"",{"row--stripe":E&&(p+1)%2==0,"is--new":t,"is--expand-row":x,"is--expand-tree":e,"row--new":t&&(G.showStatus||G.showInsertStatus),"row--radio":le.highlight&&q===r,"row--checked":ee.highlight&&C.isCheckedByCheckboxRow(r),"row--pending":!!F&&!!Q[i],"row--group":u,"row--current":N&&i===(0,_util.getRowid)(C,N)},D?_xeUtils.default.isFunction(D)?D(g):D:""],m=b.map((e,l)=>renderTdColumn(v,C,c,i,h,f,n,r,d,o,p,e,l,b,y));if(j.push(v("tr",{class:u,attrs:{rowid:i},style:O?_xeUtils.default.isFunction(O)?O(g):O:void 0,key:S||W.useKey||W.drag||te.drag||U||T?i:o,on:a},m)),x){var{height:u,padding:g,mode:a}=C.computeExpandOpts;if("fixed"===a){m=s.expandHeight;let e=0;L&&(m||u)&&(e=(m||u||0)+1),j.push(v("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+i,attrs:{rowid:i}},[v("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:e+"px"}})]))}else{x={},a=(u&&(x.height=u+"px"),T&&(x.paddingLeft=n*V.indent+30+"px"),A||{}).showOverflow,s=A.id,m=K[s]||{},s=_xeUtils.default.eqNull(a)?z:a;let e=-1,l=-1,t=-1;m&&(e=m.index,l=m.$index,t=m._index);a={$grid:_,$table:C,$gantt:R,seq:c,column:A,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:n,row:r,rowid:i,rowIndex:d,$rowIndex:o,_rowIndex:p,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};j.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":g}],key:"expand_"+i},[v("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!k,"col--ellipsis":s}],attrs:{colspan:b.length}},[v("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":u}],style:x},[A.renderData(v,a)])])]))}}e&&j.push(...renderRows(v,w,h,f,l,b))}),j}var _default=exports.default=(0,_comp.defineVxeComponent)({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,a=l.$xeGrid,i=l.$xeGantt,s=l.$scopedSlots,d=l.xID;let{fixedColumn:n,fixedType:c,tableColumn:p}=this;var u=e.mouseConfig,{isGroup:r,tableData:g,isColLoading:x,overflowX:m,scrollXLoad:v,scrollYLoad:w,dragRow:h,dragCol:f}=r,{visibleColumn:o,fullAllDataRowIdData:y,fullColumnIdData:b}=o,C=l.computeEmptyOpts,_=l.computeMouseOpts;let R=g,E=p;g=l.computeIsBodyRenderOptimize;x||!c&&m||(E=o),c&&g&&(E=n||[]),w&&h&&2<R.length&&(x=y[(0,_util.getRowid)(l,h)])&&(m=x._index,o=R[0],w=R[R.length-1],x=y[(0,_util.getRowid)(l,o)],o=y[(0,_util.getRowid)(l,w)],x)&&o&&(y=x._index,w=o._index,m<y?R=[h].concat(R):w<m&&(R=R.concat([h]))),c||r||v&&f&&2<E.length&&(x=b[f.id])&&(o=x._index,y=E[0],w=E[E.length-1],m=b[y.id],h=b[w.id],m)&&h&&(r=m._index,v=h._index,o<r?E=[f].concat(E):v<o&&(E=E.concat([f])));let S;x=s?s.empty:null,y={$table:l,$grid:a,$gantt:i};return S=x?x.call(l,y):(w=(b=C.name?renderer.get(C.name):null)?b.renderTableEmpty||b.renderTableEmptyView||b.renderEmpty:null)?(0,_vn.getSlotVNs)(w.call(l,t,C,y)):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",c?`fixed-${c}--wrapper`:"body--wrapper"],attrs:{xid:d}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,c)}}},[c?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:d,cellspacing:0,cellpadding:0,border:0,xvm:g?"1":null}},[t("colgroup",{ref:"refBodyColgroup"},E.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tbody",{ref:"refBodyTBody"},renderRows(t,this,c,g,R,E))]),t("div",{class:"vxe-table--checkbox-range"}),u&&_.area?t("div",{class:"vxe-table--cell-area",attrs:{xid:d}},[t("span",{class:"vxe-table--cell-main-area"},_.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:c,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-clip-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),c?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])])}});
|
package/lib/table/src/group.js
CHANGED
|
@@ -44,6 +44,9 @@ var _default = exports.default = /* define-vxe-component start */(0, _comp.defin
|
|
|
44
44
|
if ($scopedSlots.header) {
|
|
45
45
|
columnSlots.header = $scopedSlots.header;
|
|
46
46
|
}
|
|
47
|
+
if ($scopedSlots.title) {
|
|
48
|
+
columnSlots.title = $scopedSlots.title;
|
|
49
|
+
}
|
|
47
50
|
this.columnConfig.slots = columnSlots;
|
|
48
51
|
(0, _util.assembleColumn)($xeColgroup);
|
|
49
52
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_util=require("./util"),_column=require("./column"),_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,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:_column.columnWatch,created(){var e=this.$xeTable;this.columnConfig=_cell.default.createColumn(e,this)},mounted(){var e=this.$scopedSlots,l={};e.header&&(l.header=e.header),this.columnConfig.slots=l,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_util=require("./util"),_column=require("./column"),_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,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:_column.columnWatch,created(){var e=this.$xeTable;this.columnConfig=_cell.default.createColumn(e,this)},mounted(){var e=this.$scopedSlots,l={};e.header&&(l.header=e.header),e.title&&(l.title=e.title),this.columnConfig.slots=l,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
|
package/lib/table/src/methods.js
CHANGED
|
@@ -8,8 +8,8 @@ if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey()
|
|
|
8
8
|
* 更新数据列的 Map
|
|
9
9
|
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
10
10
|
*/function cacheColumnMap($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig,showOverflow}=props;const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=$xeTable.computeMouseOpts;const expandOpts=$xeTable.computeExpandOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=$xeTable.computeCustomOpts;const treeOpts=$xeTable.computeTreeOpts;const{storage}=customOpts;const rowOpts=$xeTable.computeRowOpts;const isGroup=collectColumn.some(_utils.hasChildrenList);let isAllOverflow=!!showOverflow;let rowGroupColumn;let expandColumn;let treeNodeColumn;let checkboxColumn;let radioColumn;let htmlColumn;let hasFixed;const handleFunc=(column,index,items,path,parentColumn)=>{const{id:colid,field,fixed,type,treeNode,rowGroupNode}=column;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};if(field){if(fullColFieldData[field]){(0,_log.errLog)('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}else{if(storage&&!type){(0,_log.errLog)('vxe.error.reqSupportProp',['storage',`[${type?`type=${type}`:`title=${column.getTitle()}`}]field=?`]);}if(columnOpts.drag&&(isCrossDrag||isSelfToChildDrag)){(0,_log.errLog)('vxe.error.reqSupportProp',['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag',`${column.getTitle()||type||''} -> field=?`]);}}if(!hasFixed&&fixed){hasFixed=fixed;}if(!htmlColumn&&type==='html'){htmlColumn=column;}if(treeNode){if(treeNodeColumn){(0,_log.warnLog)('vxe.error.colRepet',['tree-node',treeNode]);}if(!treeNodeColumn){treeNodeColumn=column;}}if(rowGroupNode){if(treeNodeColumn){(0,_log.warnLog)('vxe.error.colRepet',['row-group-node',rowGroupNode]);}if(!rowGroupColumn){rowGroupColumn=column;}}if(type==='expand'){if(expandColumn){(0,_log.warnLog)('vxe.error.colRepet',['type',type]);}if(!expandColumn){expandColumn=column;}}if(type==='checkbox'){if(checkboxColumn){(0,_log.warnLog)('vxe.error.colRepet',['type',type]);}if(!checkboxColumn){checkboxColumn=column;}}else if(type==='radio'){if(radioColumn){(0,_log.warnLog)('vxe.error.colRepet',['type',type]);}if(!radioColumn){radioColumn=column;}}if(isAllOverflow&&column.showOverflow===false){isAllOverflow=false;}if(fullColIdData[colid]){(0,_log.errLog)('vxe.error.colRepet',['colId',colid]);}fullColIdData[colid]=rest;};if(isGroup){_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn,nodes)=>{column.level=nodes.length;handleFunc(column,index,items,path,parentColumn);});}else{tableFullColumn.forEach(handleFunc);}if(expandColumn){if(expandOpts.mode!=='fixed'&&virtualYOpts.enabled){(0,_log.warnLog)('vxe.error.notConflictProp',['column.type="expand','virtual-y-config.enabled=false']);}if(expandOpts.mode!=='fixed'&&mouseOpts.area){(0,_log.errLog)('vxe.error.errConflicts',['mouse-config.area','column.type=expand']);}if(expandOpts.mode!=='inside'&&treeConfig&&!treeOpts.transform){(0,_log.errLog)('vxe.error.notConflictProp',['tree-config.transform=false','expand-config.mode=inside']);}if(props.spanMethod){(0,_log.warnLog)('vxe.error.notSupportProp',['column.type=expand','span-method','span-method=null']);}}if(htmlColumn){if(!columnOpts.useKey){(0,_log.errLog)('vxe.error.notSupportProp',['column.type=html','column-config.useKey=false','column-config.useKey=true']);}if(!rowOpts.useKey){(0,_log.errLog)('vxe.error.notSupportProp',['column.type=html','row-config.useKey=false','row-config.useKey=true']);}}reactData.isGroup=isGroup;reactData.rowGroupColumn=rowGroupColumn;reactData.treeNodeColumn=treeNodeColumn;reactData.expandColumn=expandColumn;reactData.checkboxColumn=checkboxColumn;reactData.radioColumn=radioColumn;reactData.isAllOverflow=isAllOverflow;}function updateScrollXStatus($xeTable,fullColumn){const reactData=$xeTable;const internalData=$xeTable;const virtualXOpts=$xeTable.computeVirtualXOpts;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
|
|
11
|
-
const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;}function updateScrollYStatus($xeTable,fullData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const
|
|
12
|
-
const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;
|
|
11
|
+
const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;}function syncGanttScrollYStatus($xeTable){const reactData=$xeTable;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;if($xeGanttView&&$xeGanttView.handleUpdateSYStatus){$xeGanttView.handleUpdateSYStatus(reactData.scrollYLoad);}}function updateScrollYStatus($xeTable,fullData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const virtualYOpts=$xeTable.computeVirtualYOpts;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
|
|
12
|
+
const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;syncGanttScrollYStatus($xeTable);return scrollYLoad;}/**
|
|
13
13
|
* 展开与收起树节点
|
|
14
14
|
* @param rows
|
|
15
15
|
* @param expanded
|
|
@@ -59,7 +59,7 @@ if(sortMultiple){tableData=_xeUtils.default.orderBy(tableData,orderColumns.map((
|
|
|
59
59
|
if(_xeUtils.default.isArray(firstOrderColumn.sortBy)){sortByConfs=firstOrderColumn.sortBy.map(item=>[item,firstOrderColumn.order]);}tableData=_xeUtils.default.orderBy(tableData,sortByConfs||[firstOrderColumn].map(({column,order})=>[getOrderField($xeTable,column),order]));}tableData=_xeUtils.default.orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order]));}tableTree=tableData;}}}else{if(isRowGroupStatus){// 还原行分组
|
|
60
60
|
// 还原虚拟树
|
|
61
61
|
tableTree=_xeUtils.default.searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 还原虚拟树
|
|
62
|
-
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($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;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=$xeTable.$refs.refElem;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=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const scrollbarOpts=$xeTable.computeScrollbarOpts;const mouseOpts=$xeTable.computeMouseOpts;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=$xeTable.computeScrollbarYToLeft;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=$xeTable.$refs.refScrollXLeftCornerElem;const xRightCornerEl=$xeTable.$refs.refScrollXRightCornerElem;const scrollXVirtualEl=$xeTable.$refs.refScrollXVirtualElem;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=$xeTable.$refs.refScrollXWrapperElem;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=$xeTable.$refs.refScrollYVirtualElem;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=$xeTable.$refs.refScrollYTopCornerElem;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=$xeTable.$refs.refScrollYWrapperElem;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=$xeTable.$refs.refScrollYBottomCornerElem;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=$xeTable.$refs.refRowExpandElem;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?$xeTable.$refs.refLeftContainer:$xeTable.$refs.refRightContainer;}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'){// 表头体样式处理
|
|
62
|
+
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($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGantt=$xeTable.$xeGantt;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=$xeTable.$refs.refElem;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=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const scrollbarOpts=$xeTable.computeScrollbarOpts;const mouseOpts=$xeTable.computeMouseOpts;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=$xeTable.computeScrollbarYToLeft;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=$xeTable.$refs.refScrollXLeftCornerElem;const xRightCornerEl=$xeTable.$refs.refScrollXRightCornerElem;const scrollXVirtualEl=$xeTable.$refs.refScrollXVirtualElem;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=$xeTable.$refs.refScrollXWrapperElem;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=$xeTable.$refs.refScrollYVirtualElem;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=$xeTable.$refs.refScrollYTopCornerElem;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=$xeTable.$refs.refScrollYWrapperElem;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=$xeTable.$refs.refScrollYBottomCornerElem;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=$xeTable.$refs.refRowExpandElem;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?$xeTable.$refs.refLeftContainer:$xeTable.$refs.refRightContainer;}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'){// 表头体样式处理
|
|
63
63
|
// 横向滚动渲染
|
|
64
64
|
let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
|
|
65
65
|
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`;}// 如果是固定列
|
|
@@ -176,7 +176,7 @@ treeData=_xeUtils.default.toArrayTree(fullData,{key:treeOpts.rowField,parentKey:
|
|
|
176
176
|
internalData.tableFullData=fullData;internalData.tableFullTreeData=isRGroup?[]:treeData;internalData.tableFullGroupData=isRGroup?treeData:[];// 缓存数据
|
|
177
177
|
$xeTable.cacheRowMap(isReset);// 原始数据
|
|
178
178
|
internalData.tableSynchData=datas;if(isReset){internalData.isResizeCellHeight=false;}// 克隆原数据,用于显示编辑状态,与编辑值做对比
|
|
179
|
-
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 $xeTable.$nextTick().then(()=>{updateHeight($xeTable);updateStyle($xeTable);}).then(()=>{computeScrollLoad($xeTable);}).then(()=>{const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否启用了虚拟滚动
|
|
179
|
+
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 $xeTable.$nextTick().then(()=>{updateHeight($xeTable);updateStyle($xeTable);}).then(()=>{computeScrollLoad($xeTable);syncGanttScrollYStatus($xeTable);}).then(()=>{const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否启用了虚拟滚动
|
|
180
180
|
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) {
|
|
181
181
|
// if (!rowOpts.height) {
|
|
182
182
|
// const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
|
|
@@ -192,7 +192,7 @@ if(!(props.height||props.maxHeight)){(0,_log.errLog)('vxe.error.reqSupportProp',
|
|
|
192
192
|
// warnLog('vxe.error.scrollErrProp', ['span-method'])
|
|
193
193
|
// }
|
|
194
194
|
}handleReserveStatus($xeTable);$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('data-change',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);return new Promise(resolve=>{$xeTable.$nextTick().then(()=>handleRecalculateStyle($xeTable,false,false,false)).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);}).then(()=>{let targetScrollLeft=lastScrollLeft;let targetScrollTop=lastScrollTop;const virtualXOpts=$xeTable.computeVirtualXOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否在更新数据之后自动滚动重置滚动条
|
|
195
|
-
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle($xeTable,false,false,false);updateTreeLineStyle($xeTable);// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
195
|
+
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle($xeTable,false,false,false);updateTreeLineStyle($xeTable);syncGanttScrollYStatus($xeTable);// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
196
196
|
if(!props.showOverflow){setTimeout(()=>{handleLazyRecalculate($xeTable,false,true,true);setTimeout(()=>handleLazyRecalculate($xeTable,false,true,true),3000);},2000);}// 是否变更虚拟滚动
|
|
197
197
|
if(oldScrollYLoad===sYLoad){(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);updateTreeLineStyle($xeTable);$xeTable.$nextTick(()=>resolve());});}else{setTimeout(()=>{(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle($xeTable,false,true,true);updateRowOffsetTop($xeTable);updateTreeLineStyle($xeTable);$xeTable.$nextTick(()=>resolve());});});}});}).then(()=>{if(initStatus){$xeTable.dispatchEvent('data-rendered',{isReload,visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}else{$xeTable.dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);}});});}/**
|
|
198
198
|
* 处理数据加载默认行为
|
|
@@ -527,7 +527,7 @@ evnt.preventDefault();$xeTable.handleUndoStackEvent(evnt);}}else if(keyboardConf
|
|
|
527
527
|
// }
|
|
528
528
|
// 如果是按下非功能键之外允许直接编辑
|
|
529
529
|
if(selectColumn&&selected.row&&(0,_utils.isEnableConf)(selectColumn.editRender)){const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;const params={row:selected.row,rowIndex:$xeTable.getRowIndex(selected.row),column:selectColumn,columnIndex:$xeTable.getColumnIndex(selectColumn),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};if(!beforeEditMethod||beforeEditMethod(params)){if(editMethod){editMethod(params);}else{let isClearValue=false;// 追加方式与覆盖式
|
|
530
|
-
if(editMode!=='insert'){isClearValue=true;}$xeTable.handleEdit(params,evnt,{isClear:isClearValue});}}}}$xeTable.dispatchEvent('keydown',{},evnt);});}},handleGlobalPasteEvent(evnt){const $xeTable=this;const{
|
|
530
|
+
if(editMode!=='insert'){isClearValue=true;}$xeTable.handleEdit(params,evnt,{isClear:isClearValue});}}}}$xeTable.dispatchEvent('keydown',{},evnt);});}},handleGlobalPasteEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handlePeClAreaEvent){$xeTable.handlePeClAreaEvent(evnt);}}$xeTable.dispatchEvent('paste',{},evnt);}},handleGlobalCopyEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handleCyClAreaEvent){$xeTable.handleCyClAreaEvent(evnt);}}$xeTable.dispatchEvent('copy',{},evnt);}},handleGlobalCutEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const{keyboardConfig,mouseConfig}=props;const{editStore,filterStore}=reactData;const{isActivated}=internalData;const mouseOpts=$xeTable.computeMouseOpts;const keyboardOpts=$xeTable.computeKeyboardOpts;const{actived}=editStore;if(isActivated&&!filterStore.visible){if(!(actived.row||actived.column)){if(keyboardConfig&&keyboardOpts.isClip&&mouseConfig&&mouseOpts.area&&$xeTable.handleCutCellAreaEvent){$xeTable.handleCutCellAreaEvent(evnt);}}$xeTable.dispatchEvent('cut',{},evnt);}},handleGlobalResizeEvent(){const $xeTable=this;$xeTable.closeMenu();$xeTable.updateCellAreas();handleResizeEvent($xeTable);$xeTable.updateCellAreas();},handleUpdateHeaderMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeHeaderList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeHeaderList);internalData.mergeHeaderCellMaps=mergeMaps;internalData.mergeHeaderRowMaps=mergeRowMaps;internalData.mergeHeaderColMaps=mergeColMaps;reactData.mergeHeadFlag++;},/**
|
|
531
531
|
* 处理合并
|
|
532
532
|
*/handleUpdateBodyMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeBodyList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeBodyList);internalData.mergeBodyCellMaps=mergeMaps;internalData.mergeBodyRowMaps=mergeRowMaps;internalData.mergeBodyColMaps=mergeColMaps;reactData.mergeBodyFlag++;},handleUpdateFooterMerge(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{mergeFooterList}=internalData;const{mergeMaps,mergeRowMaps,mergeColMaps}=buildMergeData(mergeFooterList);internalData.mergeFooterCellMaps=mergeMaps;internalData.mergeFooterRowMaps=mergeRowMaps;internalData.mergeFooterColMaps=mergeColMaps;reactData.mergeFootFlag++;},handleAggregateSummaryData(){const $xeTable=this;return $xeTable.refreshAggregateCalcValues();},handleTargetLeaveEvent(){const $xeTable=this;const internalData=$xeTable;const tooltipOpts=$xeTable.computeTooltipOpts;let $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.setActived){$tooltip.setActived(false);}if(tooltipOpts.enterable){internalData.tooltipTimeout=setTimeout(()=>{$tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.isActived&&!$tooltip.isActived()){$xeTable.closeTooltip();}},tooltipOpts.leaveDelay);}else{$xeTable.closeTooltip();}},triggerHeaderTitleEvent(evnt,iconParams,params){const $xeTable=this;const reactData=$xeTable;const tipContent=iconParams.content||iconParams.message;if(tipContent){const{tooltipStore}=reactData;const{column}=params;const content=(0,_utils.getFuncText)(tipContent);handleTargetEnterEvent($xeTable,true);tooltipStore.row=null;tooltipStore.column=column;tooltipStore.visible=true;tooltipStore.currOpts=iconParams;$xeTable.$nextTick(()=>{const $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.open){$tooltip.open(evnt.currentTarget,content);}});}},/**
|
|
533
533
|
* 触发表头 tooltip 事件
|
|
@@ -788,7 +788,7 @@ updateScrollYSpace(){const $xeTable=this;const reactData=$xeTable;const internal
|
|
|
788
788
|
if(rHeight){sYHeight=(rowRest.oTop||0)+rHeight;// 是否展开行
|
|
789
789
|
if(expandColumn&&rowExpandedMaps[rowid]){sYHeight+=rowRest.expandHeight||expandOpts.height||0;}}}if(sYHeight>maxYHeight){isScrollYBig=true;}}else{sYHeight=bodyTableElem?bodyTableElem.clientHeight:0;}}}else{if(bodyTableElem){sYHeight=bodyTableElem.clientHeight;}}let clientHeight=0;if(bodyScrollElem){clientHeight=bodyScrollElem.clientHeight;}// 虚拟渲染
|
|
790
790
|
let ySpaceHeight=sYHeight;let scrollYTop=ySpaceTop;if(isScrollYBig){// 触底
|
|
791
|
-
if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(getConfig().scrollMarginStyle){if(leftBodyTableElem){leftBodyTableElem.style.marginTop=`${scrollYTop}px`;}if(bodyTableElem){bodyTableElem.style.marginTop=`${scrollYTop}px`;}if(rightbodyTableElem){rightbodyTableElem.style.marginTop=`${scrollYTop}px`;}}else{if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=$xeTable.$refs.refScrollYSpaceElem;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=$xeTable.$refs.refRowExpandYSpaceElem;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=isScrollYBig?sYHeight:ySpaceHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar($xeTable);if(isScrollYBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSYSpace){$xeGanttView.handleUpdateSYSpace();}return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},updateScrollYStatus(){const $xeTable=this;return updateScrollYStatus($xeTable);},/**
|
|
791
|
+
if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(getConfig().scrollMarginStyle){if(leftBodyTableElem){leftBodyTableElem.style.marginTop=`${scrollYTop}px`;}if(bodyTableElem){bodyTableElem.style.marginTop=`${scrollYTop}px`;}if(rightbodyTableElem){rightbodyTableElem.style.marginTop=`${scrollYTop}px`;}}else{if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=$xeTable.$refs.refScrollYSpaceElem;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=$xeTable.$refs.refRowExpandYSpaceElem;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=isScrollYBig?sYHeight:ySpaceHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar($xeTable);if(isScrollYBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSYSpace){$xeGanttView.handleUpdateSYSpace();}return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},updateScrollYStatus(fullData){const $xeTable=this;return updateScrollYStatus($xeTable,fullData);},/**
|
|
792
792
|
* 如果有滚动条,则滚动到对应的位置
|
|
793
793
|
*/scrollTo(scrollLeft,scrollTop){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;if(scrollLeft){if(!_xeUtils.default.isNumber(scrollLeft)){scrollTop=scrollLeft.top;scrollLeft=scrollLeft.left;}}if(_xeUtils.default.isNumber(scrollLeft)){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(reactData.scrollXLoad){loadScrollXData($xeTable);}}if(_xeUtils.default.isNumber(scrollTop)){(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);if(reactData.scrollYLoad){loadScrollYData($xeTable);}}return new Promise(resolve=>{setTimeout(()=>{$xeTable.$nextTick(()=>{internalData.intoRunScroll=false;resolve();});},reactData.scrollXLoad||reactData.scrollYLoad?30:0);});},/**
|
|
794
794
|
* 如果有滚动条,则滚动到对应的行
|