vxe-table 4.10.6-beta.8 → 4.10.6-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/body.js +40 -27
- package/es/table/src/footer.js +4 -4
- package/es/table/src/header.js +4 -4
- package/es/table/src/table.js +35 -37
- package/es/table/style.css +9 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +7 -5
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +9 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +86 -85
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/body.js +33 -25
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +4 -4
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +4 -4
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +37 -46
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +9 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +7 -5
- 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/lib/vxe-table/style/style.css +9 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/src/body.ts +40 -25
- package/packages/table/src/footer.ts +4 -4
- package/packages/table/src/header.ts +4 -4
- package/packages/table/src/table.ts +38 -40
- package/packages/ui/index.ts +6 -4
- package/styles/components/table.scss +9 -0
- /package/es/{iconfont.1736840923205.ttf → iconfont.1736854674495.ttf} +0 -0
- /package/es/{iconfont.1736840923205.woff → iconfont.1736854674495.woff} +0 -0
- /package/es/{iconfont.1736840923205.woff2 → iconfont.1736854674495.woff2} +0 -0
- /package/lib/{iconfont.1736840923205.ttf → iconfont.1736854674495.ttf} +0 -0
- /package/lib/{iconfont.1736840923205.woff → iconfont.1736854674495.woff} +0 -0
- /package/lib/{iconfont.1736840923205.woff2 → iconfont.1736854674495.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -344,6 +344,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
344
344
|
if (!fixedHiddenColumn && editConfig && (editRender || cellRender) && (editOpts.showStatus || editOpts.showUpdateStatus)) {
|
|
345
345
|
isDirty = $xeTable.isUpdateByRow(row, column.field);
|
|
346
346
|
}
|
|
347
|
+
const isVNAutoHeight = scrollYLoad && !hasEllipsis;
|
|
348
|
+
let cellHeight = 0;
|
|
349
|
+
const vnHeight = isCalcCellHeight ? rest.height : 0;
|
|
350
|
+
if (hasEllipsis) {
|
|
351
|
+
if (customRHeight) {
|
|
352
|
+
cellHeight = customRHeight;
|
|
353
|
+
} else if (!isAllOverflow) {
|
|
354
|
+
cellHeight = vnHeight || defaultRowHeight || 18;
|
|
355
|
+
}
|
|
356
|
+
} else {
|
|
357
|
+
cellHeight = vnHeight || defaultRowHeight || 18;
|
|
358
|
+
}
|
|
359
|
+
const tcStyle = {};
|
|
360
|
+
if (cellHeight) {
|
|
361
|
+
if (hasEllipsis) {
|
|
362
|
+
tcStyle.maxHeight = `${cellHeight}px`;
|
|
363
|
+
} else if (isVNAutoHeight) {
|
|
364
|
+
tcStyle.height = `${cellHeight}px`;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
347
367
|
const tdVNs = [];
|
|
348
368
|
if (fixedHiddenColumn && (allColumnOverflow ? isAllOverflow : allColumnOverflow)) {
|
|
349
369
|
tdVNs.push((0, _vue.h)('div', {
|
|
@@ -352,9 +372,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
352
372
|
'c--tooltip': showTooltip,
|
|
353
373
|
'c--ellipsis': showEllipsis
|
|
354
374
|
}],
|
|
355
|
-
style:
|
|
356
|
-
maxHeight: hasEllipsis && (customRHeight || defaultRowHeight) ? `${customRHeight || defaultRowHeight}px` : ''
|
|
357
|
-
}
|
|
375
|
+
style: tcStyle
|
|
358
376
|
}));
|
|
359
377
|
} else {
|
|
360
378
|
// 渲染单元格
|
|
@@ -364,11 +382,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
364
382
|
'c--tooltip': showTooltip,
|
|
365
383
|
'c--ellipsis': showEllipsis
|
|
366
384
|
}],
|
|
367
|
-
style:
|
|
368
|
-
maxHeight: hasEllipsis && (customRHeight || defaultRowHeight) ? `${customRHeight || defaultRowHeight}px` : ''
|
|
369
|
-
},
|
|
385
|
+
style: tcStyle,
|
|
370
386
|
title: showTitle ? $xeTable.getCellLabel(row, column) : null
|
|
371
|
-
},
|
|
387
|
+
}, isVNAutoHeight ? [(0, _vue.h)('div', {
|
|
388
|
+
class: 'vxe-cell--auto-wrapper'
|
|
389
|
+
}, column.renderCell(params))] : column.renderCell(params)));
|
|
372
390
|
if (showValidTip && errorValidItem) {
|
|
373
391
|
const errRule = errorValidItem.rule;
|
|
374
392
|
const validSlot = slots ? slots.valid : null;
|
|
@@ -387,17 +405,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
387
405
|
}, errorValidItem.content)]])]));
|
|
388
406
|
}
|
|
389
407
|
}
|
|
390
|
-
let cellHeight = '';
|
|
391
|
-
const vnHeight = isCalcCellHeight ? rest.height : 0;
|
|
392
|
-
if (hasEllipsis) {
|
|
393
|
-
if (customRHeight) {
|
|
394
|
-
cellHeight = `${customRHeight}px`;
|
|
395
|
-
} else if (!isAllOverflow) {
|
|
396
|
-
cellHeight = `${vnHeight || defaultRowHeight || 18}px`;
|
|
397
|
-
}
|
|
398
|
-
} else {
|
|
399
|
-
cellHeight = `${vnHeight || defaultRowHeight || 18}px`;
|
|
400
|
-
}
|
|
401
408
|
if (mouseConfig && mouseOpts.area && selectCellToRow) {
|
|
402
409
|
if (!$columnIndex && selectCellToRow === true || selectCellToRow === column.field) {
|
|
403
410
|
tdVNs.push((0, _vue.h)('div', {
|
|
@@ -407,11 +414,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
407
414
|
}
|
|
408
415
|
const isLastColumn = $columnIndex === columns.length - 1;
|
|
409
416
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
410
|
-
let
|
|
411
|
-
if (scrollYLoad && (_rowIndex < scrollYStore.visibleStartIndex || _rowIndex > scrollYStore.visibleEndIndex)) {
|
|
412
|
-
|
|
413
|
-
} else if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
|
|
414
|
-
|
|
417
|
+
let isVNPreEmptyStatus = false;
|
|
418
|
+
if (scrollYLoad && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
|
|
419
|
+
isVNPreEmptyStatus = true;
|
|
420
|
+
} else if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
421
|
+
isVNPreEmptyStatus = true;
|
|
415
422
|
}
|
|
416
423
|
return (0, _vue.h)('td', Object.assign(Object.assign(Object.assign({
|
|
417
424
|
class: ['vxe-body--column', colid, {
|
|
@@ -422,6 +429,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
422
429
|
'col--tree-node': treeNode,
|
|
423
430
|
'col--edit': isEdit,
|
|
424
431
|
'col--ellipsis': hasEllipsis,
|
|
432
|
+
'col--auto-height': isVNAutoHeight,
|
|
425
433
|
'fixed--width': !isAutoCellWidth,
|
|
426
434
|
'fixed--hidden': fixedHiddenColumn,
|
|
427
435
|
'is--drag-cell': isRowDragCell && (isCrossDrag || isPeerDrag || !rowLevel),
|
|
@@ -434,9 +442,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
434
442
|
key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || rowOpts.useKey || columnOpts.drag ? colid : $columnIndex
|
|
435
443
|
}, attrs), {
|
|
436
444
|
style: Object.assign({
|
|
437
|
-
height: cellHeight
|
|
445
|
+
height: cellHeight ? `${cellHeight}px` : ''
|
|
438
446
|
}, _xeUtils.default.isFunction(compCellStyle) ? compCellStyle(params) : compCellStyle, _xeUtils.default.isFunction(cellStyle) ? cellStyle(params) : cellStyle)
|
|
439
|
-
}), tdOns),
|
|
447
|
+
}), tdOns), isVNPreEmptyStatus || isOptimizeMode && fixedHiddenColumn ? [] : tdVNs);
|
|
440
448
|
};
|
|
441
449
|
const renderRows = (fixedType, isOptimizeMode, tableData, tableColumn) => {
|
|
442
450
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(T){let De=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Ee,context:$,reactData:Oe,internalData:Re}=De,{computeEditOpts:Ie,computeMouseOpts:Se,computeAreaOpts:Te,computeDefaultRowHeight:Me,computeEmptyOpts:k,computeTooltipOpts:$e,computeRadioOpts:e,computeExpandOpts:G,computeTreeOpts:u,computeCheckboxOpts:ke,computeCellOpts:qe,computeValidOpts:Ue,computeRowOpts:je,computeColumnOpts:Ae,computeRowDragOpts:Le,computeColumnDragOpts:l,computeLeftFixedWidth:q,computeRightFixedWidth:U}=De.getComputeMaps(),j=(0,_vue.ref)(),A=(0,_vue.ref)(),L=(0,_vue.ref)(),F=(0,_vue.ref)(),N=(0,_vue.ref)(),B=(0,_vue.ref)(),H=(0,_vue.ref)(),W=(0,_vue.ref)(),Fe=()=>{var e=Ee.delayHover,{lastScrollTime:l,_isResize:t}=Oe;return!!(t||l&&Date.now()<l+e)},Ne=e=>{var{row:l,column:t}=e,a=Re.afterFullData,r=Ee.treeConfig,o=u.value,{slots:t,treeNode:i}=t,s=Re.fullAllDataRowIdData;if(t&&t.line)return De.callSlot(t.line,e);t=s[(0,_util.getRowid)(De,l)];let n=0,d=null;t&&(n=t.level,d=t.items[t.treeIndex-1]);s=De.eqRow(a[0],l);return r&&i&&(o.showLine||o.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${s?1:(0,_util.calcTreeLine)(e,d)}px`,left:n*o.indent+(n?2-(0,_util.getOffsetSize)(De):0)+16+"px"}})])]:[]},Q=(e,l,t,j,A,a,r,o,i,s,n,L,d)=>{var F=Re.fullAllDataRowIdData,{columnKey:N,height:u,showOverflow:c,cellClassName:B,cellStyle:v,align:H,spanMethod:W,mouseConfig:P,editConfig:K,editRules:p,tooltipConfig:V}=Ee,{tableData:g,overflowX:x,currentColumn:X,scrollXLoad:Y,scrollYLoad:z,isCalcCellHeight:G,mergeList:h,editStore:J,isAllOverflow:Q,validErrorMaps:m}=Oe,{afterFullData:w,scrollXStore:Z,scrollYStore:ee}=Re,le=qe.value,_=Ue.value,te=ke.value,ae=Ie.value,f=$e.value,re=je.value,y=Le.value,b=Me.value,{disabledMethod:oe,isCrossDrag:ie,isPeerDrag:se}=y,ne=Ae.value,de=Se.value,ue=Te.value.selectCellToRow,{type:ce,cellRender:ve,editRender:pe,align:ge,showOverflow:C,className:xe,treeNode:he,slots:me}=s,le=le.verticalAlign,J=J.actived,D=re.height,E=s.id,O=pe||ve,O=O?renderer.get(O.name):null,we=O?O.tableCellClassName||O.cellClassName:null,_e=O?O.tableCellStyle||O.cellStyle:"";let R=f.showAll;var f=De.getColumnIndex(s),I=De.getVTColumnIndex(s),fe=(0,_utils.isEnableConf)(pe);let S=t?s.fixed!==t:s.fixed&&x;x=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?c:C,C="ellipsis"===x;let T="title"===x,M=!0===x||"tooltip"===x;x=c||T||M||C;let ye;var $={},F=F[l],ge=ge||(O?O.tableCellAlign:"")||H,O=m[l+":"+E],H=p&&_.showMessage&&("default"===_.message?u||1<g.length:"inline"===_.message),m={colid:E};let k={$table:De,$grid:De.xegrid,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:r,$rowIndex:o,_rowIndex:i,column:s,columnIndex:f,$columnIndex:n,_columnIndex:I,fixed:t,type:renderType,isHidden:!!S,level:A,visibleData:w,data:g,items:d},q=!1,be=!1;if((q=re.drag?"row"===y.trigger||s.dragSort&&"cell"===y.trigger:q)&&(be=!(!oe||!oe(k))),(T||M||R||V)&&($.onMouseenter=e=>{Fe()||(T?(0,_dom.updateCellTitle)(e.currentTarget,s):(M||R)&&De.triggerBodyTooltipEvent(e,k),De.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},k),e))}),(M||R||V)&&($.onMouseleave=e=>{Fe()||((M||R)&&De.handleTargetLeaveEvent(e),De.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},k),e))}),(q||te.range||P)&&($.onMousedown=e=>{De.triggerCellMousedownEvent(e,k)}),q&&($.onMouseup=De.triggerCellMouseupEvent),$.onClick=e=>{De.triggerCellClickEvent(e,k)},$.onDblclick=e=>{De.triggerCellDblclickEvent(e,k)},h.length){p=(0,_util.mergeBodyMethod)(h,i,I);if(p){var{rowspan:u,colspan:e}=p;if(!u||!e)return null;1<u&&(m.rowspan=u),1<e&&(m.colspan=e)}}else if(W){var{rowspan:l=1,colspan:r=1}=W(k)||{};if(!l||!r)return null;1<l&&(m.rowspan=l),1<r&&(m.colspan=r)}!(S=S&&h&&(1<m.colspan||1<m.rowspan)?!1:S)&&K&&(pe||ve)&&(ae.showStatus||ae.showUpdateStatus)&&(ye=De.isUpdateByRow(a,s.field));o=[];S&&c&&Q?o.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":T,"c--tooltip":M,"c--ellipsis":C}],style:{maxHeight:x&&(D||b)?`${D||b}px`:""}})):(o.push(...Ne(k),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":T,"c--tooltip":M,"c--ellipsis":C}],style:{maxHeight:x&&(D||b)?`${D||b}px`:""},title:T?De.getCellLabel(a,s):null},s.renderCell(k))),H&&O&&(f=O.rule,t=me?me.valid:null,w=Object.assign(Object.assign(Object.assign({},k),O),{rule:O}),o.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,w)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[t?De.callSlot(t,w):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},O.content)]])]))));let U="";g=G?F.height:0,x?D?U=D+"px":Q||(U=`${g||b||18}px`):U=`${g||b||18}px`,P&&de.area&&ue&&((n||!0!==ue)&&ue!==s.field||o.push((0,_vue.h)("div",{class:"vxe-cell--area-status"}))),d=n===L.length-1,y=!s.resizeWidth&&("auto"===s.minWidth||"auto"===s.width);let Ce=!1;return(z&&(i<ee.visibleStartIndex||i>ee.visibleEndIndex)||Y&&!s.fixed&&(I<Z.visibleStartIndex||I>Z.visibleEndIndex))&&(Ce=!0),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",E,{["col--"+ge]:ge,["col--vertical-"+le]:le,["col--"+ce]:ce,"col--last":d,"col--tree-node":he,"col--edit":fe,"col--ellipsis":x,"fixed--width":!y,"fixed--hidden":S,"is--drag-cell":q&&(ie||se||!A),"is--drag-disabled":be,"col--dirty":ye,"col--active":K&&fe&&J.row===a&&(J.column===s||"row"===ae.mode),"col--valid-error":!!O,"col--current":X===s},(0,_dom.getPropClass)(we,k),(0,_dom.getPropClass)(xe,k),(0,_dom.getPropClass)(B,k)],key:N||Y||z||ne.useKey||re.useKey||ne.drag?E:n},m),{style:Object.assign({height:U},_xeUtils.default.isFunction(_e)?_e(k):_e,_xeUtils.default.isFunction(v)?v(k):v)}),$),Ce||j&&S?[]:o)},J=(m,w,_,f)=>{let{stripe:y,rowKey:b,highlightHoverRow:C,rowClassName:D,rowStyle:E,showOverflow:O,editConfig:R,treeConfig:I}=Ee,{hasFixedColumn:S,treeExpandedMaps:T,scrollXLoad:M,scrollYLoad:$,rowExpandedMaps:k,expandColumn:q,selectRadioRow:U,pendingRowMaps:j,isDragColMove:A}=Oe,L=Re.fullAllDataRowIdData,F=ke.value,N=e.value,B=u.value,H=Ie.value,W=je.value,P=Ae.value,K=l.value,{transform:V,seqMode:X}=B,Y=B.children||B.childrenField,z=[];return _.forEach((t,a)=>{var e={};let r,o=(r=De.getRowIndex(t),(W.isHover||C)&&(e.onMouseenter=e=>{Fe()||De.triggerHoverEvent(e,{row:t,rowIndex:r})},e.onMouseleave=()=>{Fe()||De.clearHoverRow()}),(0,_util.getRowid)(De,t));var l=L[o];let i=0,s=-1,n=0;l&&(i=l.level,s=I&&V&&"increasing"===X?l._index+1:l.seq,n=l._index);var l={$table:De,seq:s,rowid:o,fixed:m,type:renderType,level:i,row:t,rowIndex:r,$rowIndex:a,_rowIndex:n},d=q&&!!k[o];let u=!1,c=[],v=!1;R&&(v=De.isInsertByRow(t)),!I||$||V||(c=t[Y],u=c&&0<c.length&&!!T[o]),!W.drag||I&&!V||(e.onDragstart=De.handleRowDragDragstartEvent,e.onDragend=De.handleRowDragDragendEvent,e.onDragover=De.handleRowDragDragoverEvent);var p,g,x=["vxe-body--row",I?"row--level-"+i:"",{"row--stripe":y&&(n+1)%2==0,"is--new":v,"is--expand-row":d,"is--expand-tree":u,"row--new":v&&(H.showStatus||H.showInsertStatus),"row--radio":N.highlight&&De.eqRow(U,t),"row--checked":F.highlight&&De.isCheckedByCheckboxRow(t),"row--pending":!!j[o]},(0,_dom.getPropClass)(D,l)];let h=f.map((e,l)=>Q(s,o,m,w,i,t,r,a,n,e,l,f,_));z.push(P.drag&&K.animation?(0,_vue.h)(_vue.TransitionGroup,Object.assign({name:"vxe-header--col-list"+(A?"":"-disabled"),tag:"tr",class:x,rowid:o,style:E?_xeUtils.default.isFunction(E)?E(l):E:null,key:b||M||$||W.useKey||W.drag||P.drag||I?o:a},e),{default:()=>h}):(0,_vue.h)("tr",Object.assign({class:x,rowid:o,style:E?_xeUtils.default.isFunction(E)?E(l):E:null,key:b||M||$||W.useKey||W.drag||P.drag||I?o:a},e),h)),d&&({height:x,padding:l}=G.value,d={},p=(x&&(d.height=x+"px"),I&&(d.paddingLeft=i*B.indent+30+"px"),q).showOverflow,p=_xeUtils.default.isUndefined(p)||_xeUtils.default.isNull(p)?O:p,g={$table:De,seq:s,column:q,fixed:m,type:renderType,level:i,row:t,rowIndex:r,$rowIndex:a,_rowIndex:n},z.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+o,style:E?_xeUtils.default.isFunction(E)?E(g):E:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":m&&!S,"col--ellipsis":p},colspan:f.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":x},style:d},[q.renderData(g)])])]))),u&&z.push(...J(m,w,c,f))}),z};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.fixedType,l=Re.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=j,l[e+"scroll"]=A,l[e+"table"]=L,l[e+"colgroup"]=F,l[e+"list"]=N,l[e+"xSpace"]=B,l[e+"ySpace"]=H,l[e+"emptyBlock"]=W})}),(0,_vue.onUnmounted)(()=>{var e=T.fixedType,l=Re.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=$.slots;let{fixedColumn:l,fixedType:t,tableColumn:a}=T;var{showOverflow:r,spanMethod:o,footerSpanMethod:i,mouseConfig:s}=Ee,{isGroup:n,tableData:d,scrollXLoad:u,scrollYLoad:c,isAllOverflow:v,isDragRowMove:p,expandColumn:g,dragRow:x,dragCol:h}=Oe,{visibleColumn:m,fullAllDataRowIdData:w,fullColumnIdData:_}=Re,f=je.value,y=k.value,b=Se.value,C=Le.value,D=q.value,E=U.value;let O=d,R=a,I=!(u||c||r&&v)||g||o||i?!1:!0;t&&(R=m,I)&&(R=l||[]),c&&x&&2<O.length&&(d=w[(0,_util.getRowid)(De,x)])&&(r=d._index,v=O[0],g=O[O.length-1],o=w[(0,_util.getRowid)(De,v)],i=w[(0,_util.getRowid)(De,g)],o)&&i&&(m=o._index,d=i._index,r<m?O=[x].concat(O):d<r&&(O=O.concat([x]))),t||n||u&&h&&2<R.length&&(v=_[h.id])&&(w=v._index,g=R[0],o=R[R.length-1],i=_[g.id],m=_[o.id],i)&&m&&(d=i._index,r=m._index,w<d?R=[h].concat(R):r<w&&(R=R.concat([h])));let S;x=e?e.empty:null,S=x?De.callSlot(x,{$table:De,$grid:De.xegrid}):(u=(n=y.name?renderer.get(y.name):null)?n.renderTableEmpty||n.renderTableEmptyView||n.renderEmpty:null)?(0,_vn.getSlotVNs)(u(y,{$table:De})):Ee.emptyText||getI18n("vxe.table.emptyText"),v={onScroll(e){De.triggerBodyScrollEvent(e,t)}};return(c||D||E)&&(v.onWheel=De.triggerBodyWheelEvent),(0,_vue.h)("div",{ref:j,class:["vxe-table--body-wrapper",t?`fixed-${t}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:A,class:"vxe-table--body-inner-wrapper"},v),[t?renderEmptyElement(De):(0,_vue.h)("div",{ref:B,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:H,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:L,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:F},R.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),f.drag&&C.animation?(0,_vue.h)(_vue.TransitionGroup,{ref:N,name:"vxe-body--row-list"+(p?"":"-disabled"),tag:"tbody"},{default:()=>J(t,I,O,R)}):(0,_vue.h)("tbody",{ref:N},J(t,I,O,R))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&b.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},b.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){De.triggerCellAreaExtendMousedownEvent&&De.triggerCellAreaExtendMousedownEvent(e,{$table:De,fixed:t,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-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"})]):renderEmptyElement(De),t?renderEmptyElement(De):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:W},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},S)])])])}}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(T){let De=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Ee,context:k,reactData:Oe,internalData:Re}=De,{computeEditOpts:Se,computeMouseOpts:Ie,computeAreaOpts:Te,computeDefaultRowHeight:Me,computeEmptyOpts:$,computeTooltipOpts:ke,computeRadioOpts:e,computeExpandOpts:G,computeTreeOpts:u,computeCheckboxOpts:$e,computeCellOpts:qe,computeValidOpts:Ue,computeRowOpts:je,computeColumnOpts:Ae,computeRowDragOpts:Le,computeColumnDragOpts:l,computeLeftFixedWidth:q,computeRightFixedWidth:U}=De.getComputeMaps(),j=(0,_vue.ref)(),A=(0,_vue.ref)(),L=(0,_vue.ref)(),F=(0,_vue.ref)(),N=(0,_vue.ref)(),B=(0,_vue.ref)(),H=(0,_vue.ref)(),W=(0,_vue.ref)(),Fe=()=>{var e=Ee.delayHover,{lastScrollTime:l,_isResize:t}=Oe;return!!(t||l&&Date.now()<l+e)},Ne=e=>{var{row:l,column:t}=e,a=Re.afterFullData,r=Ee.treeConfig,o=u.value,{slots:t,treeNode:i}=t,s=Re.fullAllDataRowIdData;if(t&&t.line)return De.callSlot(t.line,e);t=s[(0,_util.getRowid)(De,l)];let n=0,d=null;t&&(n=t.level,d=t.items[t.treeIndex-1]);s=De.eqRow(a[0],l);return r&&i&&(o.showLine||o.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${s?1:(0,_util.calcTreeLine)(e,d)}px`,left:n*o.indent+(n?2-(0,_util.getOffsetSize)(De):0)+16+"px"}})])]:[]},Q=(e,l,t,j,A,a,r,o,i,s,n,L,d)=>{var F=Re.fullAllDataRowIdData,{columnKey:N,height:u,showOverflow:c,cellClassName:B,cellStyle:H,align:W,spanMethod:z,mouseConfig:P,editConfig:K,editRules:v,tooltipConfig:p}=Ee,{tableData:g,overflowX:x,currentColumn:V,scrollXLoad:X,scrollYLoad:Y,isCalcCellHeight:G,mergeList:J,editStore:Q,isAllOverflow:Z,validErrorMaps:h}=Oe,{afterFullData:m,scrollXStore:w,scrollYStore:_}=Re,ee=qe.value,f=Ue.value,le=$e.value,te=Se.value,y=ke.value,ae=je.value,b=Le.value,re=Me.value,{disabledMethod:C,isCrossDrag:oe,isPeerDrag:ie}=b,se=Ae.value,ne=Ie.value,de=Te.value.selectCellToRow,{type:ue,cellRender:ce,editRender:ve,align:pe,showOverflow:D,className:ge,treeNode:xe,slots:he}=s,ee=ee.verticalAlign,Q=Q.actived,me=ae.height,E=s.id,O=ve||ce,O=O?renderer.get(O.name):null,we=O?O.tableCellClassName||O.cellClassName:null,_e=O?O.tableCellStyle||O.cellStyle:"";let R=y.showAll;var y=De.getColumnIndex(s),S=De.getVTColumnIndex(s),fe=(0,_utils.isEnableConf)(ve);let I=t?s.fixed!==t:s.fixed&&x;x=_xeUtils.default.isUndefined(D)||_xeUtils.default.isNull(D)?c:D,D="ellipsis"===x;let T="title"===x,M=!0===x||"tooltip"===x;x=c||T||M||D;let ye;var k={},F=F[l],pe=pe||(O?O.tableCellAlign:"")||W,O=h[l+":"+E],W=v&&f.showMessage&&("default"===f.message?u||1<g.length:"inline"===f.message),h={colid:E};let $={$table:De,$grid:De.xegrid,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:r,$rowIndex:o,_rowIndex:i,column:s,columnIndex:y,$columnIndex:n,_columnIndex:S,fixed:t,type:renderType,isHidden:!!I,level:A,visibleData:m,data:g,items:d},q=!1,be=!1;if((q=ae.drag?"row"===b.trigger||s.dragSort&&"cell"===b.trigger:q)&&(be=!(!C||!C($))),(T||M||R||p)&&(k.onMouseenter=e=>{Fe()||(T?(0,_dom.updateCellTitle)(e.currentTarget,s):(M||R)&&De.triggerBodyTooltipEvent(e,$),De.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e))}),(M||R||p)&&(k.onMouseleave=e=>{Fe()||((M||R)&&De.handleTargetLeaveEvent(e),De.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e))}),(q||le.range||P)&&(k.onMousedown=e=>{De.triggerCellMousedownEvent(e,$)}),q&&(k.onMouseup=De.triggerCellMouseupEvent),k.onClick=e=>{De.triggerCellClickEvent(e,$)},k.onDblclick=e=>{De.triggerCellDblclickEvent(e,$)},J.length){v=(0,_util.mergeBodyMethod)(J,i,S);if(v){var{rowspan:u,colspan:e}=v;if(!u||!e)return null;1<u&&(h.rowspan=u),1<e&&(h.colspan=e)}}else if(z){var{rowspan:l=1,colspan:r=1}=z($)||{};if(!l||!r)return null;1<l&&(h.rowspan=l),1<r&&(h.colspan=r)}!(I=I&&J&&(1<h.colspan||1<h.rowspan)?!1:I)&&K&&(ve||ce)&&(te.showStatus||te.showUpdateStatus)&&(ye=De.isUpdateByRow(a,s.field));o=Y&&!x;let U=0;y=G?F.height:0,x?me?U=me:Z||(U=y||re||18):U=y||re||18,t={},U&&(x?t.maxHeight=U+"px":o&&(t.height=U+"px")),m=[],I&&c&&Z?m.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":T,"c--tooltip":M,"c--ellipsis":D}],style:t})):(m.push(...Ne($),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":T,"c--tooltip":M,"c--ellipsis":D}],style:t,title:T?De.getCellLabel(a,s):null},o?[(0,_vue.h)("div",{class:"vxe-cell--auto-wrapper"},s.renderCell($))]:s.renderCell($))),W&&O&&(g=O.rule,d=he?he.valid:null,b=Object.assign(Object.assign(Object.assign({},$),O),{rule:O}),m.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(f.className,b)],style:g&&g.maxWidth?{width:g.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[d?De.callSlot(d,b):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},O.content)]])])))),P&&ne.area&&de&&((n||!0!==de)&&de!==s.field||m.push((0,_vue.h)("div",{class:"vxe-cell--area-status"}))),C=n===L.length-1,p=!s.resizeWidth&&("auto"===s.minWidth||"auto"===s.width);let Ce=!1;return(Y&&(i<_.visibleStartIndex-_.preloadSize||i>_.visibleEndIndex+_.preloadSize)||X&&!s.fixed&&(S<w.visibleStartIndex-w.preloadSize||S>w.visibleEndIndex+w.preloadSize))&&(Ce=!0),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",E,{["col--"+pe]:pe,["col--vertical-"+ee]:ee,["col--"+ue]:ue,"col--last":C,"col--tree-node":xe,"col--edit":fe,"col--ellipsis":x,"col--auto-height":o,"fixed--width":!p,"fixed--hidden":I,"is--drag-cell":q&&(oe||ie||!A),"is--drag-disabled":be,"col--dirty":ye,"col--active":K&&fe&&Q.row===a&&(Q.column===s||"row"===te.mode),"col--valid-error":!!O,"col--current":V===s},(0,_dom.getPropClass)(we,$),(0,_dom.getPropClass)(ge,$),(0,_dom.getPropClass)(B,$)],key:N||X||Y||se.useKey||ae.useKey||se.drag?E:n},h),{style:Object.assign({height:U?U+"px":""},_xeUtils.default.isFunction(_e)?_e($):_e,_xeUtils.default.isFunction(H)?H($):H)}),k),Ce||j&&I?[]:m)},J=(m,w,_,f)=>{let{stripe:y,rowKey:b,highlightHoverRow:C,rowClassName:D,rowStyle:E,showOverflow:O,editConfig:R,treeConfig:S}=Ee,{hasFixedColumn:I,treeExpandedMaps:T,scrollXLoad:M,scrollYLoad:k,rowExpandedMaps:$,expandColumn:q,selectRadioRow:U,pendingRowMaps:j,isDragColMove:A}=Oe,L=Re.fullAllDataRowIdData,F=$e.value,N=e.value,B=u.value,H=Se.value,W=je.value,z=Ae.value,P=l.value,{transform:K,seqMode:V}=B,X=B.children||B.childrenField,Y=[];return _.forEach((t,a)=>{var e={};let r,o=(r=De.getRowIndex(t),(W.isHover||C)&&(e.onMouseenter=e=>{Fe()||De.triggerHoverEvent(e,{row:t,rowIndex:r})},e.onMouseleave=()=>{Fe()||De.clearHoverRow()}),(0,_util.getRowid)(De,t));var l=L[o];let i=0,s=-1,n=0;l&&(i=l.level,s=S&&K&&"increasing"===V?l._index+1:l.seq,n=l._index);var l={$table:De,seq:s,rowid:o,fixed:m,type:renderType,level:i,row:t,rowIndex:r,$rowIndex:a,_rowIndex:n},d=q&&!!$[o];let u=!1,c=[],v=!1;R&&(v=De.isInsertByRow(t)),!S||k||K||(c=t[X],u=c&&0<c.length&&!!T[o]),!W.drag||S&&!K||(e.onDragstart=De.handleRowDragDragstartEvent,e.onDragend=De.handleRowDragDragendEvent,e.onDragover=De.handleRowDragDragoverEvent);var p,g,x=["vxe-body--row",S?"row--level-"+i:"",{"row--stripe":y&&(n+1)%2==0,"is--new":v,"is--expand-row":d,"is--expand-tree":u,"row--new":v&&(H.showStatus||H.showInsertStatus),"row--radio":N.highlight&&De.eqRow(U,t),"row--checked":F.highlight&&De.isCheckedByCheckboxRow(t),"row--pending":!!j[o]},(0,_dom.getPropClass)(D,l)];let h=f.map((e,l)=>Q(s,o,m,w,i,t,r,a,n,e,l,f,_));Y.push(z.drag&&P.animation?(0,_vue.h)(_vue.TransitionGroup,Object.assign({name:"vxe-header--col-list"+(A?"":"-disabled"),tag:"tr",class:x,rowid:o,style:E?_xeUtils.default.isFunction(E)?E(l):E:null,key:b||M||k||W.useKey||W.drag||z.drag||S?o:a},e),{default:()=>h}):(0,_vue.h)("tr",Object.assign({class:x,rowid:o,style:E?_xeUtils.default.isFunction(E)?E(l):E:null,key:b||M||k||W.useKey||W.drag||z.drag||S?o:a},e),h)),d&&({height:x,padding:l}=G.value,d={},p=(x&&(d.height=x+"px"),S&&(d.paddingLeft=i*B.indent+30+"px"),q).showOverflow,p=_xeUtils.default.isUndefined(p)||_xeUtils.default.isNull(p)?O:p,g={$table:De,seq:s,column:q,fixed:m,type:renderType,level:i,row:t,rowIndex:r,$rowIndex:a,_rowIndex:n},Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+o,style:E?_xeUtils.default.isFunction(E)?E(g):E:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":m&&!I,"col--ellipsis":p},colspan:f.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":x},style:d},[q.renderData(g)])])]))),u&&Y.push(...J(m,w,c,f))}),Y};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.fixedType,l=Re.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=j,l[e+"scroll"]=A,l[e+"table"]=L,l[e+"colgroup"]=F,l[e+"list"]=N,l[e+"xSpace"]=B,l[e+"ySpace"]=H,l[e+"emptyBlock"]=W})}),(0,_vue.onUnmounted)(()=>{var e=T.fixedType,l=Re.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=k.slots;let{fixedColumn:l,fixedType:t,tableColumn:a}=T;var{showOverflow:r,spanMethod:o,footerSpanMethod:i,mouseConfig:s}=Ee,{isGroup:n,tableData:d,scrollXLoad:u,scrollYLoad:c,isAllOverflow:v,isDragRowMove:p,expandColumn:g,dragRow:x,dragCol:h}=Oe,{visibleColumn:m,fullAllDataRowIdData:w,fullColumnIdData:_}=Re,f=je.value,y=$.value,b=Ie.value,C=Le.value,D=q.value,E=U.value;let O=d,R=a,S=!(u||c||r&&v)||g||o||i?!1:!0;t&&(R=m,S)&&(R=l||[]),c&&x&&2<O.length&&(d=w[(0,_util.getRowid)(De,x)])&&(r=d._index,v=O[0],g=O[O.length-1],o=w[(0,_util.getRowid)(De,v)],i=w[(0,_util.getRowid)(De,g)],o)&&i&&(m=o._index,d=i._index,r<m?O=[x].concat(O):d<r&&(O=O.concat([x]))),t||n||u&&h&&2<R.length&&(v=_[h.id])&&(w=v._index,g=R[0],o=R[R.length-1],i=_[g.id],m=_[o.id],i)&&m&&(d=i._index,r=m._index,w<d?R=[h].concat(R):r<w&&(R=R.concat([h])));let I;x=e?e.empty:null,I=x?De.callSlot(x,{$table:De,$grid:De.xegrid}):(u=(n=y.name?renderer.get(y.name):null)?n.renderTableEmpty||n.renderTableEmptyView||n.renderEmpty:null)?(0,_vn.getSlotVNs)(u(y,{$table:De})):Ee.emptyText||getI18n("vxe.table.emptyText"),v={onScroll(e){De.triggerBodyScrollEvent(e,t)}};return(c||D||E)&&(v.onWheel=De.triggerBodyWheelEvent),(0,_vue.h)("div",{ref:j,class:["vxe-table--body-wrapper",t?`fixed-${t}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:A,class:"vxe-table--body-inner-wrapper"},v),[t?renderEmptyElement(De):(0,_vue.h)("div",{ref:B,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:H,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:L,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:F},R.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),f.drag&&C.animation?(0,_vue.h)(_vue.TransitionGroup,{ref:N,name:"vxe-body--row-list"+(p?"":"-disabled"),tag:"tbody"},{default:()=>J(t,S,O,R)}):(0,_vue.h)("tbody",{ref:N},J(t,S,O,R))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&b.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},b.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){De.triggerCellAreaExtendMousedownEvent&&De.triggerCellAreaExtendMousedownEvent(e,{$table:De,fixed:t,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-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"})]):renderEmptyElement(De),t?renderEmptyElement(De):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:W},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},I)])])])}}});
|
package/lib/table/src/footer.js
CHANGED
|
@@ -213,9 +213,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
213
213
|
}
|
|
214
214
|
const isLastColumn = $columnIndex === tableColumn.length - 1;
|
|
215
215
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
216
|
-
let
|
|
217
|
-
if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
|
|
218
|
-
|
|
216
|
+
let isVNPreEmptyStatus = false;
|
|
217
|
+
if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
218
|
+
isVNPreEmptyStatus = true;
|
|
219
219
|
}
|
|
220
220
|
return (0, _vue.h)('td', Object.assign(Object.assign(Object.assign(Object.assign({
|
|
221
221
|
class: ['vxe-footer--column', column.id, {
|
|
@@ -237,7 +237,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
237
237
|
'c--tooltip': showTooltip,
|
|
238
238
|
'c--ellipsis': showEllipsis
|
|
239
239
|
}]
|
|
240
|
-
},
|
|
240
|
+
}, isVNPreEmptyStatus ? [] : column.renderFooter(cellParams))]);
|
|
241
241
|
});
|
|
242
242
|
};
|
|
243
243
|
const renderHeads = renderColumnList => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="footer";function mergeFooterMethod(l,t,o){for(let e=0;e<l.length;e++){var{row:r,col:n,rowspan:a,colspan:i}=l[e];if(-1<n&&-1<r&&a&&i){if(r===t&&n===o)return{rowspan:a,colspan:i};if(r<=t&&t<r+a&&n<=o&&o<n+i)return{rowspan:0,colspan:0}}}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(v){let R=(0,_vue.inject)("$xeTable",{}),{xID:x,props:m,reactData:_,internalData:N}=R,{computeTooltipOpts:e,computeColumnOpts:X,computeColumnDragOpts:g}=R.getComputeMaps(),h=(0,_vue.ref)(),w=(0,_vue.ref)(),y=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(g,h,w,y,b)=>{let C=v.fixedType,{footerCellClassName:T,footerCellStyle:F,footerAlign:I,footerSpanMethod:
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="footer";function mergeFooterMethod(l,t,o){for(let e=0;e<l.length;e++){var{row:r,col:n,rowspan:a,colspan:i}=l[e];if(-1<n&&-1<r&&a&&i){if(r===t&&n===o)return{rowspan:a,colspan:i};if(r<=t&&t<r+a&&n<=o&&o<n+i)return{rowspan:0,colspan:0}}}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(v){let R=(0,_vue.inject)("$xeTable",{}),{xID:x,props:m,reactData:_,internalData:N}=R,{computeTooltipOpts:e,computeColumnOpts:X,computeColumnDragOpts:g}=R.getComputeMaps(),h=(0,_vue.ref)(),w=(0,_vue.ref)(),y=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(g,h,w,y,b)=>{let C=v.fixedType,{footerCellClassName:T,footerCellStyle:F,footerAlign:I,footerSpanMethod:S,align:O,columnKey:M,showFooterOverflow:D}=m,{scrollXLoad:E,scrollYLoad:$,overflowX:k,currentColumn:U,mergeFooterList:j}=_,A=N.scrollXStore,q=e.value,L=X.value;return g.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:n,footerClassName:a,editRender:i,cellRender:u}=l,i=i||u,u=i?renderer.get(i.name):null;let d=q.showAll;i=l.children&&l.children.length,i=C?l.fixed!==C&&!i:l.fixed&&k,o=_xeUtils.default.eqNull(o)?D:o,r=r||(u?u.tableFooterCellAlign:"")||I||n||(u?u.tableCellAlign:"")||O;let s="ellipsis"===o,c="title"===o,p=!0===o||"tooltip"===o,f=c||p||s;var n={colid:l.id},u={},o=R.getColumnIndex(l),v=R.getVTColumnIndex(l),x=v;let m={$table:R,$grid:R.xegrid,row:w,rowIndex:b,_rowIndex:b,$rowIndex:y,column:l,columnIndex:o,$columnIndex:e,_columnIndex:v,itemIndex:x,items:w,fixed:C,type:renderType,data:h};if(E&&!f&&(s=f=!0),(c||p||d)&&(u.onMouseenter=e=>{c?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||d)&&R.triggerFooterTooltipEvent(e,m)}),(p||d)&&(u.onMouseleave=e=>{(p||d)&&R.handleTargetLeaveEvent(e)}),u.onClick=e=>{R.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)},u.onDblclick=e=>{R.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)},j.length){o=mergeFooterMethod(j,b,v);if(o){var{rowspan:x,colspan:o}=o;if(!x||!o)return null;1<x&&(n.rowspan=x),1<o&&(n.colspan=o)}}else if(S){var{rowspan:x=1,colspan:o=1}=S(m)||{};if(!x||!o)return null;1<x&&(n.rowspan=x),1<o&&(n.colspan=o)}x=e===g.length-1,o=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let _=!1;return E&&!l.fixed&&(v<A.visibleStartIndex-A.preloadSize||v>A.visibleEndIndex+A.preloadSize)&&(_=!0),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":x,"fixed--width":!o,"fixed--hidden":i,"col--ellipsis":f,"col--current":U===l},(0,_dom.getPropClass)(a,m),(0,_dom.getPropClass)(T,m)]},n),{style:F?_xeUtils.default.isFunction(F)?F(m):F:null}),u),{key:M||E||$||L.useKey||L.drag?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":p,"c--ellipsis":s}]},_?[]:l.renderFooter(m))])})};return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=v.fixedType,l=N.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=h,l[e+"scroll"]=w,l[e+"table"]=y,l[e+"colgroup"]=b,l[e+"list"]=C,l[e+"xSpace"]=T})}),(0,_vue.onUnmounted)(()=>{var e=v.fixedType,l=N.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=v;var{spanMethod:o,footerSpanMethod:r,showFooterOverflow:n}=m,{visibleColumn:a,fullColumnIdData:i}=N,{isGroup:u,scrollXLoad:d,scrollYLoad:s,dragCol:c}=_;let p=t,f=!(d||s||n)||o||r?!1:!0;return l&&(p=a,f)&&(p=e||[]),l||u||d&&c&&2<p.length&&(s=i[c.id])&&(n=s._index,o=p[0],r=p[p.length-1],a=i[o.id],u=i[r.id],a)&&u&&(d=a._index,s=u._index,n<d?p=[c].concat(p):s<n&&(p=p.concat([c]))),(0,_vue.h)("div",{ref:h,class:["vxe-table--footer-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:x},[(0,_vue.h)("div",{ref:w,class:"vxe-table--footer-inner-wrapper",onScroll(e){R.triggerFooterScrollEvent(e,l)}},[l?renderEmptyElement(R):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:y,class:"vxe-table--footer",xid:x,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:b},p.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),(0,_vue.h)("tfoot",{ref:C},(r=>{let{fixedType:n,footerTableData:a}=v,{footerRowClassName:i,footerRowStyle:u}=m,d=_.isDragColMove,s=X.value,c=g.value;return a.map((e,l)=>{let t=l;var o={$table:R,row:e,_rowIndex:t,$rowIndex:l,fixed:n,type:renderType};return s.drag&&c.animation?(0,_vue.h)(_vue.TransitionGroup,{key:l,name:"vxe-header--col-list"+(d?"":"-disabled"),tag:"tr",class:["vxe-footer--row",i?_xeUtils.default.isFunction(i)?i(o):i:""],style:u?_xeUtils.default.isFunction(u)?u(o):u:null},{default:()=>F(r,a,e,l,t)}):(0,_vue.h)("tr",{key:l,class:["vxe-footer--row",i?_xeUtils.default.isFunction(i)?i(o):i:""],style:u?_xeUtils.default.isFunction(u)?u(o):u:null},F(r,a,e,l,t))})})(p))])])])}}});
|
package/lib/table/src/header.js
CHANGED
|
@@ -318,9 +318,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
318
318
|
const isLastColumn = $columnIndex === cols.length - 1;
|
|
319
319
|
const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
|
|
320
320
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
321
|
-
let
|
|
322
|
-
if (scrollXLoad && !
|
|
323
|
-
|
|
321
|
+
let isVNPreEmptyStatus = false;
|
|
322
|
+
if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
323
|
+
isVNPreEmptyStatus = true;
|
|
324
324
|
}
|
|
325
325
|
return (0, _vue.h)('th', Object.assign(Object.assign(Object.assign({
|
|
326
326
|
class: ['vxe-header--column', colid, {
|
|
@@ -348,7 +348,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
348
348
|
'c--tooltip': showTooltip,
|
|
349
349
|
'c--ellipsis': showEllipsis
|
|
350
350
|
}]
|
|
351
|
-
},
|
|
351
|
+
}, isVNPreEmptyStatus || isOptimizeMode && fixedHiddenColumn ? [] : column.renderHeader(params)),
|
|
352
352
|
/**
|
|
353
353
|
* 列宽拖动
|
|
354
354
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(B){let V=(0,_vue.inject)("$xeTable",{}),{xID:f,props:m,reactData:Y,internalData:K}=V,{refElem:r,refLeftContainer:s,refRightContainer:u,refCellResizeBar:c,refCellResizeTip:p}=V.getRefMaps(),{computeColumnOpts:g,computeColumnDragOpts:x,computeResizableOpts:v,computeScrollbarXToTop:h}=V.getComputeMaps(),_=(0,_vue.ref)([]),H=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),y=(0,_vue.ref)(),w=(0,_vue.ref)(),D=(0,_vue.ref)(),M=(0,_vue.ref)(),t=()=>{var e=Y.isGroup;_.value=e?(0,_util.convertHeaderColumnToRows)(B.tableGroupColumn):[]},J=(e,a)=>{var l=a.column;let f=B.fixedType,m=Y.scrollbarHeight,{elemStore:t,visibleColumn:i}=K,g=v.value,x=r.value,_=s.value,b=u.value,C=c.value,y=p.value,w=h.value,D=e.clientX,M=H.value;var n=e.target;let T=l,z=(l.children&&l.children.length&&_xeUtils.default.eachTree(l.children,e=>{T=e}),n.parentNode);l=Object.assign(a,{cell:z});let S=0,E=(0,_util.getRefElem)(t["main-body-scroll"]);if(E){var o=(0,_dom.getOffsetPos)(n,M),n=n.clientWidth,d=Math.floor(n/2);let s=(0,_util.getColReMinWidth)(l)-d,u=o.left-z.clientWidth+n+s,c=o.left+d,t=document.onmousemove,r=document.onmouseup,p="left"===f,v="right"===f,h=0;if(p||v){var W=p?"nextElementSibling":"previousElementSibling";let e=z[W];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(h+=e.offsetWidth),e=e[W];v&&b&&(c=b.offsetLeft+h)}l=l=>{l.stopPropagation(),l.preventDefault();var t=x.clientHeight,r=l.clientX-D;let e=c+r;r=f?0:E.scrollLeft,p?e=Math.min(e,(b?b.offsetLeft:E.clientWidth)-h-s):v?(u=(_?_.clientWidth:0)+h+s,e=Math.min(e,c+z.clientWidth-s)):u=Math.max(E.scrollLeft,u),S=Math.max(e,u),r=Math.max(1,S-r);if(C.style.left=r+"px",C.style.top=`${w?m:0}px`,C.style.height=`${w?t-m:t}px`,g.showDragTip&&y){var a=x.clientWidth,i=M.getBoundingClientRect(),n=C.clientWidth,o=y.clientWidth,d=y.clientHeight;let e=-o;r<o+n?e=0:a<r&&(e+=a-r),y.style.left=e+"px",y.style.top=Math.min(t-d,Math.max(0,l.clientY-i.y-d/2))+"px",y.textContent=getI18n("vxe.table.resizeColTip",[T.renderWidth+(v?c-S:S-c)])}};Y._isResize=!0,(0,_dom.addClass)(x,"drag--resize"),C.style.display="block",document.onmousemove=l,document.onmouseup=function(e){document.onmousemove=t,document.onmouseup=r;let l=T.renderWidth+(v?c-S:S-c);T.resizeWidth=l,"fixed"===g.dragMode&&i.forEach(e=>{e.id===T.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),C.style.display="none",Y._isResize=!1,K._lastResizeTime=Date.now(),V.analyColumnWidth(),V.recalculate(!0).then(()=>{V.saveCustomStore("update:visible"),V.updateCellAreas(),V.dispatchEvent("resizable-change",Object.assign(Object.assign({},a),{resizeWidth:l}),e),setTimeout(()=>V.recalculate(!0),300)}),(0,_dom.removeClass)(x,"drag--resize")},l(e),V.closeMenu&&V.closeMenu()}},T=(e,D,M,T)=>{let z=B.fixedType,{resizable:S,border:E,columnKey:W,headerCellClassName:H,headerCellStyle:R,showHeaderOverflow:I,headerAlign:O,align:k,mouseConfig:U}=m,{currentColumn:$,scrollXLoad:A,scrollYLoad:F,overflowX:L}=Y,j=K.scrollXStore,q=g.value,X=x.value,{disabledMethod:G,isCrossDrag:N,isPeerDrag:P}=X;return M.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:i,filters:n,headerClassName:o,editRender:d,cellRender:s}=e,u=e.id,d=d||s,s=d?renderer.get(d.name):null,d=e.children&&e.children.length,c=z?e.fixed!==z&&!d:!!e.fixed&&L,r=_xeUtils.default.eqNull(r)?I:r,a=a||(s?s.tableHeaderCellAlign:"")||O||i||(s?s.tableCellAlign:"")||k;let p="ellipsis"===r;i="title"===r,s=!0===r||"tooltip"===r;let v=i||s||p,h=!1,f=null;n&&(f=n[0],h=n.some(e=>e.checked));var r=V.getColumnIndex(e),m=V.getVTColumnIndex(e);let g={$table:V,$grid:V.xegrid,$rowIndex:T,column:e,columnIndex:r,$columnIndex:l,_columnIndex:m,firstFilterOption:f,fixed:z,type:renderType,isHidden:c,hasFilter:h};var r={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},x={onClick:e=>V.triggerHeaderCellClickEvent(e,g),onDblclick:e=>V.triggerHeaderCellDblclickEvent(e,g)},_=(A&&!v&&(p=v=!0),q.drag&&"cell"===X.trigger);let b=!1;_&&(b=!(!G||!G(g))),(U||_)&&(x.onMousedown=e=>V.triggerHeaderCellMousedownEvent(e,g)),q.drag&&(x.onDragstart=V.handleHeaderCellDragDragstartEvent,x.onDragend=V.handleHeaderCellDragDragendEvent,x.onDragover=V.handleHeaderCellDragDragoverEvent,_)&&(x.onMouseup=V.handleHeaderCellDragMouseupEvent);var _=l===M.length-1,C=_xeUtils.default.isBoolean(e.resizable)?e.resizable:q.resizable||S,y=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let w=!1;return A&&!e.fixed&&(m<j.visibleStartIndex-j.preloadSize||m>j.visibleEndIndex+j.preloadSize)&&(w=!0),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-header--column",u,{["col--"+a]:a,["col--"+t]:t,"col--last":_,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":v,"fixed--width":!y,"fixed--hidden":c,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":h,"is--drag-active":!e.fixed&&!b&&(N||P||!e.parentId),"is--drag-disabled":b,"col--current":$===e},o?_xeUtils.default.isFunction(o)?o(g):o:"",H?_xeUtils.default.isFunction(H)?H(g):H:""],style:R?_xeUtils.default.isFunction(R)?R(g):R:null},r),x),{key:W||A||F||q.useKey||q.drag||d?u:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":p}]},w||D&&c?[]:e.renderHeader(g)),!c&&C?(0,_vue.h)("div",{class:["vxe-resizable",{"is--line":!E||"none"===E}],onMousedown:e=>J(e,g),onDblclick:e=>V.handleResizeDblclickEvent(e,g)}):renderEmptyElement(V)])})};return(0,_vue.watch)(()=>B.tableColumn,t),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=B.fixedType,l=V.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=b,l[e+"table"]=C,l[e+"colgroup"]=y,l[e+"list"]=w,l[e+"xSpace"]=D,l[e+"repair"]=M,t()})}),(0,_vue.onUnmounted)(()=>{var e=B.fixedType,l=V.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=B;var{showHeaderOverflow:r,spanMethod:a,footerSpanMethod:i}=m,{isGroup:n,scrollXLoad:o,scrollYLoad:d,dragCol:s}=Y,{visibleColumn:u,fullColumnIdData:c}=K;let p=_.value,v=t,h=!1;return n?v=u:(!(o||d||r)||a||i||(h=!0),l&&(v=u,h)&&(v=e||[]),p=[v]),l||n||o&&s&&2<v.length&&(d=c[s.id])&&(r=d._index,a=v[0],i=v[v.length-1],u=c[a.id],o=c[i.id],u)&&o&&(d=u._index,a=o._index,r<d?(v=[s].concat(v),p=[[s].concat(p[0])].concat(p.slice(1))):a<r&&(v=v.concat([s]),p=[p[0].concat([s])].concat(p.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:f},[(0,_vue.h)("div",{ref:b,class:"vxe-table--header-inner-wrapper",onScroll(e){V.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(V):(0,_vue.h)("div",{ref:D,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:C,class:"vxe-table--header",xid:f,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:y},v.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),(0,_vue.h)("thead",{ref:w},((r,a,e)=>{let i=B.fixedType,{headerRowClassName:n,headerRowStyle:o}=m,d=Y.isDragColMove,s=g.value,u=x.value;return e.map((e,l)=>{var t={$table:V,$rowIndex:l,fixed:i,type:renderType};return s.drag&&u.animation?(0,_vue.h)(_vue.TransitionGroup,{key:l,name:"vxe-header--col-list"+(d?"":"-disabled"),tag:"tr",class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n(t):n:""],style:o?_xeUtils.default.isFunction(o)?o(t):o:null},{default:()=>T(r,a,e,l)}):(0,_vue.h)("tr",{key:l,class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n(t):n:""],style:o?_xeUtils.default.isFunction(o)?o(t):o:null},T(r,a,e,l))})})(n,h,p))])]),(0,_vue.h)("div",{ref:M,class:"vxe-table--header-border-line"})])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -924,29 +924,36 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
924
924
|
};
|
|
925
925
|
};
|
|
926
926
|
const computeRowHeight = () => {
|
|
927
|
+
const {
|
|
928
|
+
showOverflow
|
|
929
|
+
} = props;
|
|
927
930
|
const tableHeader = refTableHeader.value;
|
|
928
931
|
const tableBody = refTableBody.value;
|
|
929
932
|
const tableBodyElem = tableBody ? tableBody.$el : null;
|
|
930
933
|
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
931
934
|
let rowHeight = 0;
|
|
932
|
-
if (
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
firstTrElem
|
|
935
|
+
if (showOverflow) {
|
|
936
|
+
if (tableBodyElem) {
|
|
937
|
+
const tableHeaderElem = tableHeader ? tableHeader.$el : null;
|
|
938
|
+
let firstTrElem;
|
|
939
|
+
firstTrElem = tableBodyElem.querySelector('tr');
|
|
940
|
+
if (!firstTrElem && tableHeaderElem) {
|
|
941
|
+
firstTrElem = tableHeaderElem.querySelector('tr');
|
|
942
|
+
}
|
|
943
|
+
if (firstTrElem) {
|
|
944
|
+
rowHeight = firstTrElem.clientHeight;
|
|
945
|
+
}
|
|
938
946
|
}
|
|
939
|
-
if (
|
|
940
|
-
rowHeight =
|
|
947
|
+
if (!rowHeight) {
|
|
948
|
+
rowHeight = defaultRowHeight;
|
|
941
949
|
}
|
|
942
|
-
}
|
|
943
|
-
if (!rowHeight) {
|
|
950
|
+
} else {
|
|
944
951
|
rowHeight = defaultRowHeight;
|
|
945
952
|
}
|
|
946
953
|
// 最低支持 18px 行高
|
|
947
954
|
return Math.max(18, rowHeight);
|
|
948
955
|
};
|
|
949
|
-
const handleVirtualYVisible =
|
|
956
|
+
const handleVirtualYVisible = currScrollTop => {
|
|
950
957
|
const {
|
|
951
958
|
showOverflow
|
|
952
959
|
} = props;
|
|
@@ -960,10 +967,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
960
967
|
} = internalData;
|
|
961
968
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
962
969
|
if (bodyScrollElem) {
|
|
963
|
-
const
|
|
964
|
-
|
|
965
|
-
clientHeight
|
|
966
|
-
} = bodyScrollElem;
|
|
970
|
+
const clientHeight = bodyScrollElem.clientHeight;
|
|
971
|
+
const scrollTop = _xeUtils.default.isNumber(currScrollTop) ? currScrollTop : bodyScrollElem.scrollTop;
|
|
967
972
|
const endHeight = scrollTop + clientHeight;
|
|
968
973
|
let toVisibleIndex = -1;
|
|
969
974
|
let offsetTop = 0;
|
|
@@ -1595,7 +1600,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1595
1600
|
tableData.forEach(row => {
|
|
1596
1601
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1597
1602
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1598
|
-
const cellList = el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]>.vxe-body--column>.vxe-cell`);
|
|
1603
|
+
const cellList = el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]>.vxe-body--column>.vxe-cell>.vxe-cell--auto-wrapper`);
|
|
1599
1604
|
if (rowRest && cellList.length) {
|
|
1600
1605
|
let height = 0;
|
|
1601
1606
|
for (let i = 0; i < cellList.length; i++) {
|
|
@@ -2916,16 +2921,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2916
2921
|
scrollXStore,
|
|
2917
2922
|
scrollYStore
|
|
2918
2923
|
} = internalData;
|
|
2919
|
-
const
|
|
2920
|
-
const
|
|
2924
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
2925
|
+
const virtualXOpts = computeVirtualXOpts.value;
|
|
2921
2926
|
// 计算 X 逻辑
|
|
2922
2927
|
if (scrollXLoad) {
|
|
2923
2928
|
const {
|
|
2924
2929
|
toVisibleIndex: toXVisibleIndex,
|
|
2925
2930
|
visibleSize: visibleXSize
|
|
2926
2931
|
} = handleVirtualXVisible();
|
|
2927
|
-
const offsetXSize = Math.max(0,
|
|
2928
|
-
scrollXStore.preloadSize =
|
|
2932
|
+
const offsetXSize = Math.max(0, virtualXOpts.oSize ? _xeUtils.default.toNumber(virtualXOpts.oSize) : 0);
|
|
2933
|
+
scrollXStore.preloadSize = _xeUtils.default.toNumber(virtualXOpts.preSize);
|
|
2929
2934
|
scrollXStore.offsetSize = offsetXSize;
|
|
2930
2935
|
scrollXStore.visibleSize = visibleXSize;
|
|
2931
2936
|
scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
|
|
@@ -2937,7 +2942,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2937
2942
|
} else {
|
|
2938
2943
|
$xeTable.updateScrollXSpace();
|
|
2939
2944
|
}
|
|
2940
|
-
calcCellHeight();
|
|
2941
2945
|
// 计算 Y 逻辑
|
|
2942
2946
|
const rowHeight = computeRowHeight();
|
|
2943
2947
|
scrollYStore.rowHeight = rowHeight;
|
|
@@ -2947,8 +2951,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2947
2951
|
visibleSize: visibleYSize
|
|
2948
2952
|
} = handleVirtualYVisible();
|
|
2949
2953
|
if (scrollYLoad) {
|
|
2950
|
-
const offsetYSize = Math.max(0,
|
|
2951
|
-
scrollYStore.preloadSize =
|
|
2954
|
+
const offsetYSize = Math.max(0, virtualYOpts.oSize ? _xeUtils.default.toNumber(virtualYOpts.oSize) : 0);
|
|
2955
|
+
scrollYStore.preloadSize = _xeUtils.default.toNumber(virtualYOpts.preSize);
|
|
2952
2956
|
scrollYStore.offsetSize = offsetYSize;
|
|
2953
2957
|
scrollYStore.visibleSize = visibleYSize;
|
|
2954
2958
|
scrollYStore.endIndex = Math.max(scrollYStore.startIndex + visibleYSize + offsetYSize, scrollYStore.endIndex);
|
|
@@ -2977,7 +2981,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2977
2981
|
return computeScrollLoad().then(() => {
|
|
2978
2982
|
if (reFull === true) {
|
|
2979
2983
|
// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
2980
|
-
calcCellHeight();
|
|
2981
2984
|
calcCellWidth();
|
|
2982
2985
|
autoCellWidth();
|
|
2983
2986
|
updateStyle();
|
|
@@ -3123,6 +3126,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3123
3126
|
if (sYOpts.scrollToTopOnChange) {
|
|
3124
3127
|
targetScrollTop = 0;
|
|
3125
3128
|
}
|
|
3129
|
+
calcCellHeight();
|
|
3126
3130
|
// 是否变更虚拟滚动
|
|
3127
3131
|
if (oldScrollYLoad === sYLoad) {
|
|
3128
3132
|
(0, _util.restoreScrollLocation)($xeTable, targetScrollLeft, targetScrollTop).then(() => {
|
|
@@ -3553,7 +3557,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3553
3557
|
/**
|
|
3554
3558
|
* 纵向 Y 可视渲染处理
|
|
3555
3559
|
*/
|
|
3556
|
-
const loadScrollYData =
|
|
3560
|
+
const loadScrollYData = scrollTop => {
|
|
3557
3561
|
const {
|
|
3558
3562
|
showOverflow
|
|
3559
3563
|
} = props;
|
|
@@ -3573,7 +3577,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3573
3577
|
const {
|
|
3574
3578
|
toVisibleIndex,
|
|
3575
3579
|
visibleSize
|
|
3576
|
-
} = handleVirtualYVisible();
|
|
3580
|
+
} = handleVirtualYVisible(scrollTop);
|
|
3577
3581
|
const offsetItem = {
|
|
3578
3582
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize - preloadSize),
|
|
3579
3583
|
endIndex: toVisibleIndex + visibleSize + autoOffsetYSize + preloadSize
|
|
@@ -3646,18 +3650,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3646
3650
|
}, fpsTime);
|
|
3647
3651
|
};
|
|
3648
3652
|
const lazyScrollYData = () => {
|
|
3649
|
-
const {
|
|
3650
|
-
showOverflow
|
|
3651
|
-
} = props;
|
|
3652
3653
|
const {
|
|
3653
3654
|
lyTimeout,
|
|
3654
|
-
lyRunTime
|
|
3655
|
-
scrollYStore
|
|
3655
|
+
lyRunTime
|
|
3656
3656
|
} = internalData;
|
|
3657
|
-
const
|
|
3658
|
-
visibleSize
|
|
3659
|
-
} = scrollYStore;
|
|
3660
|
-
const fpsTime = showOverflow ? 5 : Math.max(5, Math.min(80, Math.floor(visibleSize / 2)));
|
|
3657
|
+
const fpsTime = Math.floor(Math.max(4, Math.min(10, 20 / 3)));
|
|
3661
3658
|
if (lyTimeout) {
|
|
3662
3659
|
clearTimeout(lyTimeout);
|
|
3663
3660
|
}
|
|
@@ -3691,16 +3688,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3691
3688
|
internalData.inBodyScroll = false;
|
|
3692
3689
|
internalData.inFooterScroll = false;
|
|
3693
3690
|
internalData.scrollRenderType = '';
|
|
3691
|
+
calcCellHeight();
|
|
3694
3692
|
if (isRollX && scrollXLoad) {
|
|
3695
|
-
$xeTable.updateScrollXData()
|
|
3696
|
-
calcCellHeight();
|
|
3697
|
-
loadScrollXData();
|
|
3698
|
-
});
|
|
3693
|
+
$xeTable.updateScrollXData();
|
|
3699
3694
|
}
|
|
3700
3695
|
if (isRollY && scrollYLoad) {
|
|
3701
3696
|
$xeTable.updateScrollYData().then(() => {
|
|
3702
3697
|
calcCellHeight();
|
|
3703
|
-
|
|
3698
|
+
$xeTable.updateScrollYSpace();
|
|
3704
3699
|
});
|
|
3705
3700
|
}
|
|
3706
3701
|
$xeTable.updateCellAreas();
|
|
@@ -9577,9 +9572,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9577
9572
|
(0, _dom.setScrollTop)(bodyScrollElem, scrollTop);
|
|
9578
9573
|
(0, _dom.setScrollTop)(leftScrollElem, scrollTop);
|
|
9579
9574
|
(0, _dom.setScrollTop)(rightScrollElem, scrollTop);
|
|
9580
|
-
|
|
9575
|
+
loadScrollYData(scrollTop);
|
|
9581
9576
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
9582
|
-
type: '
|
|
9577
|
+
type: 'table',
|
|
9583
9578
|
fixed: ''
|
|
9584
9579
|
});
|
|
9585
9580
|
}
|
|
@@ -9823,9 +9818,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9823
9818
|
showOverflow
|
|
9824
9819
|
} = props;
|
|
9825
9820
|
handleTableColumn();
|
|
9826
|
-
// calcCellHeight()
|
|
9827
9821
|
return (0, _vue.nextTick)().then(() => {
|
|
9828
|
-
// calcCellHeight()
|
|
9829
9822
|
handleTableColumn();
|
|
9830
9823
|
$xeTable.updateScrollXSpace();
|
|
9831
9824
|
if (!showOverflow) {
|
|
@@ -9835,9 +9828,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9835
9828
|
},
|
|
9836
9829
|
updateScrollYData() {
|
|
9837
9830
|
$xeTable.handleTableData();
|
|
9838
|
-
// calcCellHeight()
|
|
9839
9831
|
return (0, _vue.nextTick)().then(() => {
|
|
9840
|
-
// calcCellHeight()
|
|
9841
9832
|
$xeTable.handleTableData();
|
|
9842
9833
|
$xeTable.updateScrollYSpace();
|
|
9843
9834
|
});
|