vxe-table 4.17.3 → 4.17.4
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/README.md +1 -0
- package/es/style.css +1 -1
- package/es/table/src/body.js +30 -14
- package/es/table/src/table.js +105 -31
- package/es/table/src/util.js +0 -64
- package/es/ui/index.js +3 -2
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +49 -140
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/body.js +28 -15
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +17 -32
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +0 -92
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +3 -2
- 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 +29 -14
- package/packages/table/src/table.ts +108 -31
- package/packages/table/src/util.ts +0 -69
- package/packages/ui/index.ts +2 -1
- /package/es/{iconfont.1761545730136.ttf → iconfont.1761699987872.ttf} +0 -0
- /package/es/{iconfont.1761545730136.woff → iconfont.1761699987872.woff} +0 -0
- /package/es/{iconfont.1761545730136.woff2 → iconfont.1761699987872.woff2} +0 -0
- /package/lib/{iconfont.1761545730136.ttf → iconfont.1761699987872.ttf} +0 -0
- /package/lib/{iconfont.1761545730136.woff → iconfont.1761699987872.woff} +0 -0
- /package/lib/{iconfont.1761545730136.woff2 → iconfont.1761699987872.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -84,12 +84,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
84
84
|
const {
|
|
85
85
|
column
|
|
86
86
|
} = params;
|
|
87
|
-
const {
|
|
88
|
-
afterFullData
|
|
89
|
-
} = tableInternalData;
|
|
90
87
|
const {
|
|
91
88
|
treeConfig
|
|
92
89
|
} = tableProps;
|
|
90
|
+
const cellOpts = computeCellOpts.value;
|
|
91
|
+
const rowOpts = computeRowOpts.value;
|
|
92
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
93
93
|
const treeOpts = computeTreeOpts.value;
|
|
94
94
|
const {
|
|
95
95
|
slots,
|
|
@@ -98,26 +98,39 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
98
98
|
const {
|
|
99
99
|
fullAllDataRowIdData
|
|
100
100
|
} = tableInternalData;
|
|
101
|
-
if (slots && slots.line) {
|
|
102
|
-
return $xeTable.callSlot(slots.line, params);
|
|
103
|
-
}
|
|
104
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
105
|
-
let rLevel = 0;
|
|
106
|
-
let prevRow = null;
|
|
107
|
-
if (rowRest) {
|
|
108
|
-
rLevel = rowRest.level;
|
|
109
|
-
prevRow = rowRest.items[rowRest.treeIndex - 1];
|
|
110
|
-
}
|
|
111
101
|
if (treeConfig && treeNode && (treeOpts.showLine || treeOpts.line)) {
|
|
102
|
+
if (slots && slots.line) {
|
|
103
|
+
return $xeTable.callSlot(slots.line, params);
|
|
104
|
+
}
|
|
105
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
106
|
+
let rLevel = 0;
|
|
107
|
+
let prevRow = null;
|
|
108
|
+
let parentRow = null;
|
|
109
|
+
let lineHeight = '';
|
|
110
|
+
if (rowRest) {
|
|
111
|
+
rLevel = rowRest.level;
|
|
112
|
+
prevRow = rowRest.items[rowRest.treeIndex - 1];
|
|
113
|
+
parentRow = rowRest.parent;
|
|
114
|
+
}
|
|
115
|
+
if (!rLevel && !treeOpts.showRootLine) {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
if (prevRow) {
|
|
119
|
+
const prevRowRest = fullAllDataRowIdData[(0, _util.getRowid)($xeTable, prevRow)] || {};
|
|
120
|
+
lineHeight = `${prevRowRest.lineHeight || 0}px`;
|
|
121
|
+
} else if (rLevel && parentRow) {
|
|
122
|
+
const parentRowRest = fullAllDataRowIdData[(0, _util.getRowid)($xeTable, parentRow)] || {};
|
|
123
|
+
lineHeight = `calc(-1em + ${Math.floor(cellHeight / 2 + (0, _util.getCellRestHeight)(parentRowRest, cellOpts, rowOpts, defaultRowHeight) / 2)}px)`;
|
|
124
|
+
}
|
|
112
125
|
return [(0, _vue.h)('div', {
|
|
113
126
|
key: 'tl',
|
|
114
127
|
class: 'vxe-tree--line-wrapper'
|
|
115
128
|
}, [(0, _vue.h)('div', {
|
|
116
129
|
class: 'vxe-tree--line',
|
|
117
130
|
style: {
|
|
118
|
-
height:
|
|
131
|
+
height: lineHeight,
|
|
119
132
|
bottom: `-${Math.floor(cellHeight / 2)}px`,
|
|
120
|
-
left:
|
|
133
|
+
left: `calc(${rLevel * treeOpts.indent}px + 1em)`
|
|
121
134
|
}
|
|
122
135
|
})])];
|
|
123
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(S){let Je=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Qe,context:T,reactData:Ze,internalData:el}=Je,{computeEditOpts:ll,computeMouseOpts:tl,computeCellOffsetWidth:al,computeAreaOpts:rl,computeDefaultRowHeight:ol,computeEmptyOpts:k,computeTooltipOpts:il,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:c,computeCheckboxOpts:sl,computeCellOpts:nl,computeValidOpts:dl,computeRowOpts:ul,computeColumnOpts:cl,computeRowDragOpts:pl,computeResizableOpts:vl,computeVirtualXOpts:gl,computeVirtualYOpts:xl}=Je.getComputeMaps(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),L=(0,_vue.ref)(),hl=()=>{var e=Qe.delayHover,{lastScrollTime:l,isDragResize:t}=Ze;return!!(t||l&&Date.now()<l+e)},ml=(e,l,t)=>{var a=l.column,r=el.afterFullData,o=Qe.treeConfig,i=c.value,{slots:a,treeNode:s}=a,n=el.fullAllDataRowIdData;if(a&&a.line)return Je.callSlot(a.line,l);a=n[e];let d=0,u=null;return a&&(d=a.level,u=a.items[a.treeIndex-1]),o&&s&&(i.showLine||i.line)?[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${(0,_util.getRowid)(Je,r[0])===e?1:(0,_util.calcTreeLine)(l,u)}px`,bottom:`-${Math.floor(t/2)}px`,left:d*i.indent+(d?2-(0,_util.getOffsetSize)(Je):0)+16+"px"}})])]:[]},oe=(A,e,l,H,F,t,j,L,a,r,N,U,B)=>{var o=Je.xeGrid,i=Je.xeGantt,{columnKey:G,resizable:s,showOverflow:n,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:u,spanMethod:Y,mouseConfig:K,editConfig:J,editRules:c,tooltipConfig:p,padding:v}=Qe,{tableData:Q,tableColumn:Z,dragRow:ee,overflowX:le,overflowY:te,currentColumn:ae,scrollXLoad:g,scrollYLoad:re,mergeBodyFlag:oe,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:ie,editStore:se,isAllOverflow:ne,validErrorMaps:de}=Ze,{fullAllDataRowIdData:ue,fullColumnIdData:m,mergeBodyCellMaps:ce,visibleColumn:pe,afterFullData:ve,mergeBodyList:ge,scrollXStore:xe,scrollYStore:he}=el,w=nl.value,_=dl.value,f=sl.value,me=ll.value,b=il.value,we=vl.value,_e=gl.value,fe=xl.value,{isAllColumnDrag:we,isAllRowDrag:be}=we,y=ul.value,C=pl.value,ye=ol.value,x=x?w.height||y.height:0,{disabledMethod:E,isCrossDrag:Ce,isPeerDrag:Ee}=C,Re=cl.value,De=tl.value,Ie=rl.value,Oe=al.value,Ie=Ie.selectCellToRow,{type:Se,cellRender:Me,editRender:Te,align:ke,showOverflow:R,className:$e,treeNode:ze,rowResize:qe,padding:D,verticalAlign:I,slots:Ae}=r,He=w.verticalAlign,se=se.actived,Fe=ue[e]||{},O=r.id,m=m[O]||{},S=Te||Me,S=S?renderer.get(S.name):null,je=S?S.tableCellClassName||S.cellClassName:null,Le=S?S.tableCellStyle||S.cellStyle:"";let Ne=b.showAll;var Ue=m.index,b=m._index,m=(0,_utils.isEnableConf)(Te),h=h?Fe.resizeHeight:0;let M=le&&(l?r.fixed!==l:!!r.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(R)?n:R,n="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;R=ne||T||k||n,D=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Re.resizable||s,s=!!x,x=0<h;let Be;h={},ke=ke||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?He:I,u=de[e+":"+O],He=c&&_.showMessage&&("default"===_.message?d||1<Q.length:"inline"===_.message),I={colid:O};let $={$table:Je,$grid:o,$gantt:i,isEdit:!1,seq:A,rowid:e,row:t,rowIndex:j,$rowIndex:L,_rowIndex:a,column:r,columnIndex:Ue,$columnIndex:N,_columnIndex:b,fixed:l,source:sourceType,type:renderType,isHidden:!!M,level:F,visibleData:ve,data:Q,items:B},z=!1,Ge=!1,q=((z=y.drag?"row"===C.trigger||r.dragSort&&"cell"===C.trigger:z)&&(Ge=!(!E||!E($))),(T||k||Ne||p)&&(h.onMouseover=e=>{hl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||Ne)&&Je.triggerBodyTooltipEvent(e,$)),Je.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||Ne||p)&&(h.onMouseleave=e=>{hl()||(k||Ne)&&Je.handleTargetLeaveEvent(e),Je.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||f.range||K)&&(h.onMousedown=e=>{Je.triggerCellMousedownEvent(e,$)}),z&&(h.onMouseup=Je.triggerCellMouseupEvent),h.onClick=e=>{Je.triggerCellClickEvent(e,$)},!(h.onDblclick=e=>{Je.triggerCellDblclickEvent(e,$)})),We=1,Ve=1;if(oe&&ge.length){de=ce[a+":"+b];if(de){var{rowspan:c,colspan:d}=de;if(!c||!d)return renderEmptyElement(Je);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(Y){var{rowspan:o=1,colspan:i=1}=Y($)||{};if(!o||!i)return renderEmptyElement(Je);1<o&&(q=!0,Ve=o,I.rowspan=o),1<i&&(q=!0,We=i,I.colspan=i)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&J&&(Te||Me)&&(me.showStatus||me.showUpdateStatus)&&(Be=Je.isUpdateByRow(t,r.field));A=!R&&(re||g);let Pe=(0,_util.getCellRestHeight)(Fe,w,y,ye);j=N===U.length-1,L=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Xe=!1;q||ee&&(0,_util.getRowid)(Je,ee)===e||(te&&re&&16<Q.length&&!V&&!fe.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||le&&g&&10<Z.length&&!_e.immediate&&!r.fixed&&(b<xe.visibleStartIndex-xe.preloadSize||b>xe.visibleEndIndex+xe.preloadSize))&&(Xe=!0),1<Ve&&(B=ve[a+Ve-1])&&(C=ue[(0,_util.getRowid)(Je,B)])&&(Pe+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,ye)-Fe.oTop-(0,_util.getCellRestHeight)(Fe,w,y,ye));E={};if(R&&ie){let l=0;if(1<We)for(let e=1;e<We;e++){var Ye=pe[Ue+e];Ye&&(l+=Ye.renderWidth)}E.width=r.renderWidth+l-Oe+"px"}re||g||R||s||x?E.height=Pe+"px":E.minHeight=Pe+"px";p=[];M&&ne?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":n}],style:E})):(V&&p.push(...ml(e,$,Pe)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":n}],style:E,title:T?Je.getCellLabel(t,r):null},Xe?[]:[(0,_vue.h)("div",{colid:O,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))])),He&&u&&(f=u.rule,oe=Ae?Ae.valid:null,ge=Object.assign(Object.assign(Object.assign({},$),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ge)],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")},[oe?Je.callSlot(oe,ge):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ke=!1;return K&&De.area&&!b&&Ie&&(Ke=!0),!M&&D&&we&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Je.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Je.handleColResizeDblclickEvent(e,$)})),(qe||be)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Je.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Je.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",ke?"col--"+ke:"",Se?"col--"+Se:"",{"col--last":j,"col--tree-node":ze,"col--edit":m,"col--ellipsis":R,"col--cs-height":s,"col--rs-height":x,"col--to-row":Ke,"col--auto-height":A,"fixed--width":!L,"fixed--hidden":M,"is--padding":v,"is--progress":M&&ne||Xe,"is--drag-cell":z&&(Ce||Ee||!F),"is--drag-disabled":Ge,"col--dirty":Be,"col--active":J&&m&&se.row===t&&(se.column===r||"row"===me.mode),"col--valid-error":!!u,"col--current":ae===r},(0,_dom.getPropClass)(je,$),(0,_dom.getPropClass)($e,$),(0,_dom.getPropClass)(P,$)],key:G||g||re||Re.useKey||y.useKey||Re.drag?O:N},I),{style:Object.assign({},_xeUtils.default.isFunction(Le)?Le($):Le,_xeUtils.default.isFunction(X)?X($):X)}),h),H&&M?[]:p)},re=(h,m,w,_)=>{let f=Je.xeGrid,b=Je.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:E,rowClassName:R,rowStyle:D,editConfig:I,treeConfig:O}=Qe,{hasFixedColumn:S,treeExpandedFlag:M,scrollXLoad:T,scrollYLoad:k,isAllOverflow:$,rowExpandedFlag:z,expandColumn:q,selectRadioRow:A,pendingRowFlag:H,rowExpandHeightFlag:F,isRowGroupStatus:j}=Ze,{fullAllDataRowIdData:L,fullColumnIdData:N,treeExpandedMaps:U,pendingRowMaps:B,rowExpandedMaps:G}=el,W=sl.value,Q=e.value,V=c.value,P=ll.value,X=ul.value,Z=cl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Je).handleGetRowId,te=O||j;return w.forEach((a,r)=>{let o=le(a);var i=L[o]||{};let s=r,n=0,d=-1,u=-1;var c=j&&a.isAggregate,p={},v=((X.isHover||E)&&(p.onMouseover=e=>{hl()||Je.triggerHoverEvent(e,{row:a,rowIndex:s})},p.onMouseleave=()=>{hl()||Je.clearHoverRow()}),i&&(s=i.index,u=i._index,n=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Je,seq:d,rowid:o,fixed:h,type:renderType,level:n,row:a,rowIndex:s,$rowIndex:r,_rowIndex:u}),g=q&&!!z&&!!G[o];let e=!1,l=[],t=!1;I&&(t=Je.isInsertByRow(a)),!O||k||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!U[o]),!X.drag||j||O&&!Y||(p.onDragstart=Je.handleRowDragDragstartEvent,p.onDragend=Je.handleRowDragDragendEvent,p.onDragover=Je.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+n:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Je.eqRow(A,a),"row--checked":W.highlight&&Je.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!B[o],"row--group":c},(0,_dom.getPropClass)(R,v)],x=_.map((e,l)=>oe(d,o,h,m,n,a,s,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||T||k||X.useKey||X.drag||Z.drag||j||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${F?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),O&&(x.paddingLeft=n*V.indent+30+"px"),q||{}).showOverflow,p=q.id,i=N[p]||{},p=_xeUtils.default.eqNull(g)?$:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$table:Je,$grid:f,$gantt:b,seq:d,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:n,row:a,rowid:o,rowIndex:s,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!S,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[q.renderData(g)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=$,l[e+"scroll"]=z,l[e+"table"]=q,l[e+"colgroup"]=A,l[e+"list"]=H,l[e+"xSpace"]=F,l[e+"ySpace"]=j,l[e+"emptyBlock"]=L})}),(0,_vue.onUnmounted)(()=>{var e=S.fixedType,l=el.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=T.slots,l=Je.xeGrid,t=Je.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=S;var{spanMethod:i,footerSpanMethod:s,mouseConfig:n}=Qe,{isGroup:d,tableData:u,isColLoading:c,overflowX:p,scrollXLoad:v,scrollYLoad:g,isAllOverflow:x,expandColumn:h,dragRow:m,dragCol:w}=Ze,{visibleColumn:_,fullAllDataRowIdData:f,fullColumnIdData:b}=el,y=k.value,C=tl.value,E=ae.value;let R=u,D=o,I=!1;!(v||g||x)||h&&"fixed"!==E.mode||i||s||(I=!0),c||!r&&p||(D=_),r&&I&&(D=a||[]),g&&m&&2<R.length&&(u=f[(0,_util.getRowid)(Je,m)])&&(x=u._index,h=R[0],E=R[R.length-1],i=f[(0,_util.getRowid)(Je,h)],s=f[(0,_util.getRowid)(Je,E)],i)&&s&&(c=i._index,p=s._index,x<c?R=[m].concat(R):p<x&&(R=R.concat([m]))),r||d||v&&w&&2<D.length&&(_=b[w.id])&&(g=_._index,u=D[0],h=D[D.length-1],f=b[u.id],E=b[h.id],f)&&E&&(i=f._index,s=E._index,g<i?D=[w].concat(D):s<g&&(D=D.concat([w])));let O;c=e?e.empty:null,p={$table:Je,$grid:l,$gantt:t},O=c?Je.callSlot(c,p):(m=(x=y.name?renderer.get(y.name):null)?x.renderTableEmpty||x.renderTableEmptyView||x.renderEmpty:null)?(0,_vn.getSlotVNs)(m(y,p)):Qe.emptyText||getI18n("vxe.table.emptyText"),d={onScroll(e){Je.triggerBodyScrollEvent(e,r)}};return(0,_vue.h)("div",{ref:$,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},d),[r?renderEmptyElement(Je):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:j,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:q,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0,xvm:I?"1":null},[(0,_vue.h)("colgroup",{ref:A},D.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:H},re(r,I,R,D))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),n&&C.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:M},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},C.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Je.triggerCellAreaExtendMousedownEvent&&Je.triggerCellAreaExtendMousedownEvent(e,{$table:Je,fixed:r,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Je),r?renderEmptyElement(Je):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:L},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},O)])])])}}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(S){let Je=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Qe,context:T,reactData:Ze,internalData:el}=Je,{computeEditOpts:ll,computeMouseOpts:tl,computeCellOffsetWidth:al,computeAreaOpts:rl,computeDefaultRowHeight:ol,computeEmptyOpts:k,computeTooltipOpts:il,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:l,computeCheckboxOpts:nl,computeCellOpts:sl,computeValidOpts:dl,computeRowOpts:ul,computeColumnOpts:cl,computeRowDragOpts:pl,computeResizableOpts:vl,computeVirtualXOpts:gl,computeVirtualYOpts:xl}=Je.getComputeMaps(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),L=(0,_vue.ref)(),hl=()=>{var e=Qe.delayHover,{lastScrollTime:l,isDragResize:t}=Ze;return!!(t||l&&Date.now()<l+e)},ml=(r,o,i)=>{var n=o.column,s=Qe.treeConfig,d=sl.value,u=ul.value,c=ol.value,p=l.value,{slots:n,treeNode:v}=n,g=el.fullAllDataRowIdData;if(s&&v&&(p.showLine||p.line)){if(n&&n.line)return Je.callSlot(n.line,o);s=g[r];let e=0,l=null,t=null,a="";return(s&&(e=s.level,l=s.items[s.treeIndex-1],t=s.parent),e||p.showRootLine)?(l?(v=g[(0,_util.getRowid)(Je,l)]||{},a=`${v.lineHeight||0}px`):e&&t&&(n=g[(0,_util.getRowid)(Je,t)]||{},a=`calc(-1em + ${Math.floor(i/2+(0,_util.getCellRestHeight)(n,d,u,c)/2)}px)`),[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:a,bottom:`-${Math.floor(i/2)}px`,left:`calc(${e*p.indent}px + 1em)`}})])]):[]}return[]},oe=(A,e,l,H,F,t,j,L,a,r,N,U,B)=>{var o=Je.xeGrid,i=Je.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:u,spanMethod:Y,mouseConfig:K,editConfig:J,editRules:c,tooltipConfig:p,padding:v}=Qe,{tableData:Q,tableColumn:Z,dragRow:ee,overflowX:le,overflowY:te,currentColumn:ae,scrollXLoad:g,scrollYLoad:re,mergeBodyFlag:oe,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:ie,editStore:ne,isAllOverflow:se,validErrorMaps:de}=Ze,{fullAllDataRowIdData:ue,fullColumnIdData:m,mergeBodyCellMaps:ce,visibleColumn:pe,afterFullData:ve,mergeBodyList:ge,scrollXStore:xe,scrollYStore:he}=el,w=sl.value,_=dl.value,f=nl.value,me=ll.value,b=il.value,we=vl.value,_e=gl.value,fe=xl.value,{isAllColumnDrag:we,isAllRowDrag:be}=we,y=ul.value,C=pl.value,ye=ol.value,x=x?w.height||y.height:0,{disabledMethod:R,isCrossDrag:Ce,isPeerDrag:Re}=C,Ee=cl.value,De=tl.value,Ie=rl.value,Oe=al.value,Ie=Ie.selectCellToRow,{type:Se,cellRender:Me,editRender:Te,align:ke,showOverflow:E,className:$e,treeNode:ze,rowResize:qe,padding:D,verticalAlign:I,slots:Ae}=r,He=w.verticalAlign,ne=ne.actived,Fe=ue[e]||{},O=r.id,m=m[O]||{},S=Te||Me,S=S?renderer.get(S.name):null,je=S?S.tableCellClassName||S.cellClassName:null,Le=S?S.tableCellStyle||S.cellStyle:"";let Ne=b.showAll;var Ue=m.index,b=m._index,m=(0,_utils.isEnableConf)(Te),h=h?Fe.resizeHeight:0;let M=le&&(l?r.fixed!==l:!!r.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(E)?s:E,s="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;E=se||T||k||s,D=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Ee.resizable||n,n=!!x,x=0<h;let Be;h={},ke=ke||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?He:I,u=de[e+":"+O],He=c&&_.showMessage&&("default"===_.message?d||1<Q.length:"inline"===_.message),I={colid:O};let $={$table:Je,$grid:o,$gantt:i,isEdit:!1,seq:A,rowid:e,row:t,rowIndex:j,$rowIndex:L,_rowIndex:a,column:r,columnIndex:Ue,$columnIndex:N,_columnIndex:b,fixed:l,source:sourceType,type:renderType,isHidden:!!M,level:F,visibleData:ve,data:Q,items:B},z=!1,Ge=!1,q=((z=y.drag?"row"===C.trigger||r.dragSort&&"cell"===C.trigger:z)&&(Ge=!(!R||!R($))),(T||k||Ne||p)&&(h.onMouseover=e=>{hl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||Ne)&&Je.triggerBodyTooltipEvent(e,$)),Je.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||Ne||p)&&(h.onMouseleave=e=>{hl()||(k||Ne)&&Je.handleTargetLeaveEvent(e),Je.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||f.range||K)&&(h.onMousedown=e=>{Je.triggerCellMousedownEvent(e,$)}),z&&(h.onMouseup=Je.triggerCellMouseupEvent),h.onClick=e=>{Je.triggerCellClickEvent(e,$)},!(h.onDblclick=e=>{Je.triggerCellDblclickEvent(e,$)})),We=1,Ve=1;if(oe&&ge.length){de=ce[a+":"+b];if(de){var{rowspan:c,colspan:d}=de;if(!c||!d)return renderEmptyElement(Je);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(Y){var{rowspan:o=1,colspan:i=1}=Y($)||{};if(!o||!i)return renderEmptyElement(Je);1<o&&(q=!0,Ve=o,I.rowspan=o),1<i&&(q=!0,We=i,I.colspan=i)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&J&&(Te||Me)&&(me.showStatus||me.showUpdateStatus)&&(Be=Je.isUpdateByRow(t,r.field));A=!E&&(re||g);let Pe=(0,_util.getCellRestHeight)(Fe,w,y,ye);j=N===U.length-1,L=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Xe=!1;q||ee&&(0,_util.getRowid)(Je,ee)===e||(te&&re&&16<Q.length&&!V&&!fe.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||le&&g&&10<Z.length&&!_e.immediate&&!r.fixed&&(b<xe.visibleStartIndex-xe.preloadSize||b>xe.visibleEndIndex+xe.preloadSize))&&(Xe=!0),1<Ve&&(B=ve[a+Ve-1])&&(C=ue[(0,_util.getRowid)(Je,B)])&&(Pe+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,ye)-Fe.oTop-(0,_util.getCellRestHeight)(Fe,w,y,ye));R={};if(E&&ie){let l=0;if(1<We)for(let e=1;e<We;e++){var Ye=pe[Ue+e];Ye&&(l+=Ye.renderWidth)}R.width=r.renderWidth+l-Oe+"px"}re||g||E||n||x?R.height=Pe+"px":R.minHeight=Pe+"px";p=[];M&&se?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:R})):(V&&p.push(...ml(e,$,Pe)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:R,title:T?Je.getCellLabel(t,r):null},Xe?[]:[(0,_vue.h)("div",{colid:O,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))])),He&&u&&(f=u.rule,oe=Ae?Ae.valid:null,ge=Object.assign(Object.assign(Object.assign({},$),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ge)],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")},[oe?Je.callSlot(oe,ge):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ke=!1;return K&&De.area&&!b&&Ie&&(Ke=!0),!M&&D&&we&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Je.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Je.handleColResizeDblclickEvent(e,$)})),(qe||be)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Je.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Je.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",ke?"col--"+ke:"",Se?"col--"+Se:"",{"col--last":j,"col--tree-node":ze,"col--edit":m,"col--ellipsis":E,"col--cs-height":n,"col--rs-height":x,"col--to-row":Ke,"col--auto-height":A,"fixed--width":!L,"fixed--hidden":M,"is--padding":v,"is--progress":M&&se||Xe,"is--drag-cell":z&&(Ce||Re||!F),"is--drag-disabled":Ge,"col--dirty":Be,"col--active":J&&m&&ne.row===t&&(ne.column===r||"row"===me.mode),"col--valid-error":!!u,"col--current":ae===r},(0,_dom.getPropClass)(je,$),(0,_dom.getPropClass)($e,$),(0,_dom.getPropClass)(P,$)],key:G||g||re||Ee.useKey||y.useKey||Ee.drag?O:N},I),{style:Object.assign({},_xeUtils.default.isFunction(Le)?Le($):Le,_xeUtils.default.isFunction(X)?X($):X)}),h),H&&M?[]:p)},re=(h,m,w,_)=>{let f=Je.xeGrid,b=Je.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:R,rowClassName:E,rowStyle:D,editConfig:I,treeConfig:O}=Qe,{hasFixedColumn:S,treeExpandedFlag:M,scrollXLoad:T,scrollYLoad:k,isAllOverflow:$,rowExpandedFlag:z,expandColumn:q,selectRadioRow:A,pendingRowFlag:H,rowExpandHeightFlag:F,isRowGroupStatus:j}=Ze,{fullAllDataRowIdData:L,fullColumnIdData:N,treeExpandedMaps:U,pendingRowMaps:B,rowExpandedMaps:G}=el,W=nl.value,Q=e.value,V=l.value,P=ll.value,X=ul.value,Z=cl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Je).handleGetRowId,te=O||j;return w.forEach((a,r)=>{let o=le(a);var i=L[o]||{};let n=r,s=0,d=-1,u=-1;var c=j&&a.isAggregate,p={},v=((X.isHover||R)&&(p.onMouseover=e=>{hl()||Je.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{hl()||Je.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Je,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=q&&!!z&&!!G[o];let e=!1,l=[],t=!1;I&&(t=Je.isInsertByRow(a)),!O||k||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!U[o]),!X.drag||j||O&&!Y||(p.onDragstart=Je.handleRowDragDragstartEvent,p.onDragend=Je.handleRowDragDragendEvent,p.onDragover=Je.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Je.eqRow(A,a),"row--checked":W.highlight&&Je.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!B[o],"row--group":c},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||T||k||X.useKey||X.drag||Z.drag||j||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${F?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),O&&(x.paddingLeft=s*V.indent+30+"px"),q||{}).showOverflow,p=q.id,i=N[p]||{},p=_xeUtils.default.eqNull(g)?$:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$table:Je,$grid:f,$gantt:b,seq:d,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!S,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[q.renderData(g)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=$,l[e+"scroll"]=z,l[e+"table"]=q,l[e+"colgroup"]=A,l[e+"list"]=H,l[e+"xSpace"]=F,l[e+"ySpace"]=j,l[e+"emptyBlock"]=L})}),(0,_vue.onUnmounted)(()=>{var e=S.fixedType,l=el.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=T.slots,l=Je.xeGrid,t=Je.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=S;var{spanMethod:i,footerSpanMethod:n,mouseConfig:s}=Qe,{isGroup:d,tableData:u,isColLoading:c,overflowX:p,scrollXLoad:v,scrollYLoad:g,isAllOverflow:x,expandColumn:h,dragRow:m,dragCol:w}=Ze,{visibleColumn:_,fullAllDataRowIdData:f,fullColumnIdData:b}=el,y=k.value,C=tl.value,R=ae.value;let E=u,D=o,I=!1;!(v||g||x)||h&&"fixed"!==R.mode||i||n||(I=!0),c||!r&&p||(D=_),r&&I&&(D=a||[]),g&&m&&2<E.length&&(u=f[(0,_util.getRowid)(Je,m)])&&(x=u._index,h=E[0],R=E[E.length-1],i=f[(0,_util.getRowid)(Je,h)],n=f[(0,_util.getRowid)(Je,R)],i)&&n&&(c=i._index,p=n._index,x<c?E=[m].concat(E):p<x&&(E=E.concat([m]))),r||d||v&&w&&2<D.length&&(_=b[w.id])&&(g=_._index,u=D[0],h=D[D.length-1],f=b[u.id],R=b[h.id],f)&&R&&(i=f._index,n=R._index,g<i?D=[w].concat(D):n<g&&(D=D.concat([w])));let O;c=e?e.empty:null,p={$table:Je,$grid:l,$gantt:t},O=c?Je.callSlot(c,p):(m=(x=y.name?renderer.get(y.name):null)?x.renderTableEmpty||x.renderTableEmptyView||x.renderEmpty:null)?(0,_vn.getSlotVNs)(m(y,p)):Qe.emptyText||getI18n("vxe.table.emptyText"),d={onScroll(e){Je.triggerBodyScrollEvent(e,r)}};return(0,_vue.h)("div",{ref:$,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},d),[r?renderEmptyElement(Je):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:j,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:q,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0,xvm:I?"1":null},[(0,_vue.h)("colgroup",{ref:A},D.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:H},re(r,I,E,D))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&C.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:M},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},C.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Je.triggerCellAreaExtendMousedownEvent&&Je.triggerCellAreaExtendMousedownEvent(e,{$table:Je,fixed:r,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Je),r?renderEmptyElement(Je):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:L},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},O)])])])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -62,7 +62,11 @@ if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey()
|
|
|
62
62
|
* 更新数据列的 Map
|
|
63
63
|
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
64
64
|
*/const cacheColumnMap=()=>{const{treeConfig,showOverflow}=props;const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=computeMouseOpts.value;const expandOpts=computeExpandOpts.value;const columnOpts=computeColumnOpts.value;const columnDragOpts=computeColumnDragOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=computeCustomOpts.value;const treeOpts=computeTreeOpts.value;const{storage}=customOpts;const rowOpts=computeRowOpts.value;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&&expandOpts.mode!=='fixed'&&virtualYOpts.enabled){(0,_log.warnLog)('vxe.error.notConflictProp',['column.type="expand','virtual-y-config.enabled=false']);}if(expandColumn&&expandOpts.mode!=='fixed'&&mouseOpts.area){(0,_log.errLog)('vxe.error.errConflicts',['mouse-config.area','column.type=expand']);}if(expandColumn&&expandOpts.mode!=='inside'&&treeConfig&&!treeOpts.transform){(0,_log.errLog)('vxe.error.notConflictProp',['tree-config.transform=false','expand-config.mode=fixed']);}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;};const updateHeight=()=>{internalData.customHeight=calcTableHeight('height');internalData.customMinHeight=calcTableHeight('minHeight');internalData.customMaxHeight=calcTableHeight('maxHeight');// 如果启用虚拟滚动,默认高度
|
|
65
|
-
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight)){internalData.customHeight=300;}}
|
|
65
|
+
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight)){internalData.customHeight=300;}};/**
|
|
66
|
+
* 计算自适应列宽
|
|
67
|
+
*/const calcColumnAutoWidth=(column,wrapperEl)=>{const columnOpts=computeColumnOpts.value;const{autoOptions}=columnOpts;const{isCalcHeader,isCalcBody,isCalcFooter}=autoOptions||{};const querySelections=[];if(isCalcHeader){querySelections.push(`.vxe-header-cell--wrapper[colid="${column.id}"]`);}if(isCalcBody){querySelections.push(`.vxe-body-cell--wrapper[colid="${column.id}"]`);}if(isCalcFooter){querySelections.push(`.vxe-footer-cell--wrapper[colid="${column.id}"]`);}const cellElemList=querySelections.length?wrapperEl.querySelectorAll(querySelections.join(',')):[];let leftRightPadding=0;const firstCellEl=cellElemList[0];if(firstCellEl&&firstCellEl.parentElement){const cellStyle=getComputedStyle(firstCellEl.parentElement);leftRightPadding=Math.ceil(_xeUtils.default.toNumber(cellStyle.paddingLeft)+_xeUtils.default.toNumber(cellStyle.paddingRight));}let colWidth=column.renderAutoWidth-leftRightPadding;for(let i=0;i<cellElemList.length;i++){const celEl=cellElemList[i];colWidth=Math.max(colWidth,celEl?Math.ceil(celEl.scrollWidth)+4:0);}return colWidth+leftRightPadding;};/**
|
|
68
|
+
* 自适应列宽
|
|
69
|
+
*/const calcCellWidth=()=>{const autoWidthColumnList=computeAutoWidthColumnList.value;const{fullColumnIdData}=internalData;const el=refElem.value;if(el){el.setAttribute('data-calc-col','Y');autoWidthColumnList.forEach(column=>{const colid=column.id;const colRest=fullColumnIdData[colid];const colWidth=calcColumnAutoWidth(column,el);if(colRest){colRest.width=Math.max(colWidth,colRest.width);}column.renderAutoWidth=colWidth;});$xeTable.analyColumnWidth();el.removeAttribute('data-calc-col');}};/**
|
|
66
70
|
* 列宽算法,计算单元格列宽,动态分配可用剩余空间
|
|
67
71
|
* 支持 px、%、固定 混合分配
|
|
68
72
|
* 支持动态列表调整分配
|
|
@@ -80,7 +84,11 @@ resizeList.forEach(column=>{const reWidth=_xeUtils.default.toInteger(column.resi
|
|
|
80
84
|
remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.renderWidth=width;tWidth+=width;});if(fit){/**
|
|
81
85
|
* 偏移量算法
|
|
82
86
|
* 如果所有列足够放的情况下,从最后动态列开始分配
|
|
83
|
-
*/const dynamicList=scaleList.concat(scaleMinList).concat(pxMinList).concat(autoMinList).concat(remainList);let dynamicSize=dynamicList.length-1;if(dynamicSize>0){let i=bodyWidth-tWidth;if(i>0){while(i>0&&dynamicSize>=0){i--;dynamicList[dynamicSize--].renderWidth++;}tWidth=bodyWidth;}}}reactData.scrollXWidth=tWidth;reactData.resizeWidthFlag++;updateColumnOffsetLeft();updateHeight();}
|
|
87
|
+
*/const dynamicList=scaleList.concat(scaleMinList).concat(pxMinList).concat(autoMinList).concat(remainList);let dynamicSize=dynamicList.length-1;if(dynamicSize>0){let i=bodyWidth-tWidth;if(i>0){while(i>0&&dynamicSize>=0){i--;dynamicList[dynamicSize--].renderWidth++;}tWidth=bodyWidth;}}}reactData.scrollXWidth=tWidth;reactData.resizeWidthFlag++;updateColumnOffsetLeft();updateHeight();};/**
|
|
88
|
+
* 计算自适应行高
|
|
89
|
+
*/const calcCellAutoHeight=(rowRest,wrapperEl)=>{const cellElemList=wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);let colHeight=rowRest.height;let firstCellStyle=null;let topBottomPadding=0;for(let i=0;i<cellElemList.length;i++){const wrapperElem=cellElemList[i];const cellElem=wrapperElem.parentElement;if(!firstCellStyle){firstCellStyle=getComputedStyle(cellElem);topBottomPadding=firstCellStyle?Math.ceil(_xeUtils.default.toNumber(firstCellStyle.paddingTop)+_xeUtils.default.toNumber(firstCellStyle.paddingBottom)):0;}const cellHeight=wrapperElem?wrapperElem.clientHeight:0;colHeight=Math.max(colHeight,Math.ceil(cellHeight+topBottomPadding));}return colHeight;};/**
|
|
90
|
+
* 自适应行高
|
|
91
|
+
*/const calcCellHeight=()=>{const{treeConfig}=props;const{tableData,isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData}=internalData;const treeOpts=computeTreeOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const el=refElem.value;if(!isAllOverflow&&(scrollYLoad||scrollXLoad||treeConfig&&treeOpts.showLine)&&el){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);el.setAttribute('data-calc-row','Y');tableData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const reHeight=calcCellAutoHeight(rowRest,el);rowRest.height=Math.max(defaultRowHeight,scrollXLoad?Math.max(rowRest.height,reHeight):reHeight);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}};const getOrderField=column=>{const{sortBy,sortType}=column;return row=>{let cellValue;if(sortBy){cellValue=_xeUtils.default.isFunction(sortBy)?sortBy({row,column}):_xeUtils.default.get(row,sortBy);}else{cellValue=tableMethods.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:_xeUtils.default.toNumber(cellValue);}else if(sortType==='number'){return _xeUtils.default.toNumber(cellValue);}else if(sortType==='string'){return _xeUtils.default.toValueString(cellValue);}return cellValue;};};const updateAfterListIndex=()=>{const{treeConfig}=props;const{afterFullData,fullDataRowIdData,fullAllDataRowIdData}=internalData;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const fullMaps={};afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){if(!treeConfig){rowRest.seq=seq;}rowRest._index=index;}else{const rest={row,rowid,seq,index:-1,$index:-1,_index:index,treeIndex:-1,_tIndex:-1,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}fullMaps[rowid]=row;});internalData.afterFullRowMaps=fullMaps;};/**
|
|
84
92
|
* 预编译
|
|
85
93
|
* 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
|
|
86
94
|
*/const updateAfterDataIndex=()=>{const{treeConfig}=props;const{fullDataRowIdData,fullAllDataRowIdData,afterFullData,afterTreeFullData}=internalData;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const fullMaps={};if(treeConfig){let _treeIndex=0;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);_xeUtils.default.eachTree(afterTreeFullData,(row,index,items,path)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=path.map((num,i)=>i%2===0?Number(num)+1:'.').join('');if(rowRest){rowRest.seq=seq;rowRest.treeIndex=index;rowRest._tIndex=_treeIndex;}else{const rest={row,rowid,seq,index:-1,$index:-1,_index:-1,treeIndex:-1,_tIndex:_treeIndex,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}_treeIndex++;fullMaps[rowid]=row;},{children:transform?treeOpts.mapChildrenField:childrenField});if(transform){afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){if(!treeConfig){rowRest.seq=seq;}rowRest._index=index;}});}internalData.afterFullRowMaps=fullMaps;}else{updateAfterListIndex();}};/**
|
|
@@ -201,9 +209,9 @@ if(!(props.height||props.maxHeight)){(0,_log.errLog)('vxe.error.reqProp',['heigh
|
|
|
201
209
|
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
202
210
|
// }
|
|
203
211
|
if(props.spanMethod){(0,_log.errLog)('vxe.error.scrollErrProp',['table.span-method']);}}handleReserveStatus();$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('data-change',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);return new Promise(resolve=>{(0,_vue.nextTick)().then(()=>handleRecalculateStyle(false,false,false)).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();}).then(()=>{let targetScrollLeft=lastScrollLeft;let targetScrollTop=lastScrollTop;const virtualXOpts=computeVirtualXOpts.value;const virtualYOpts=computeVirtualYOpts.value;// 是否在更新数据之后自动滚动重置滚动条
|
|
204
|
-
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle(false,false,false);// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
212
|
+
if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scrollToTopOnChange){targetScrollTop=0;}reactData.isRowLoading=false;handleRecalculateStyle(false,false,false);updateTreeLineStyle();// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
205
213
|
if(!props.showOverflow){setTimeout(()=>{handleLazyRecalculate(false,true,true);setTimeout(()=>handleLazyRecalculate(false,true,true),3000);},2000);}// 是否变更虚拟滚动
|
|
206
|
-
if(oldScrollYLoad===sYLoad){(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();resolve();});}else{setTimeout(()=>{(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();resolve();});});}});});});};/**
|
|
214
|
+
if(oldScrollYLoad===sYLoad){(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();updateTreeLineStyle();resolve();});}else{setTimeout(()=>{(0,_util.restoreScrollLocation)($xeTable,targetScrollLeft,targetScrollTop).then(()=>{handleRecalculateStyle(false,true,true);updateRowOffsetTop();updateTreeLineStyle();resolve();});});}});});});};/**
|
|
207
215
|
* 处理数据加载默认行为
|
|
208
216
|
* 默认执行一次,除非被重置
|
|
209
217
|
*/const handleLoadDefaults=()=>{handleDefaultSelectionChecked();handleDefaultRadioChecked();handleDefaultRowExpand();handleDefaultTreeExpand();handleDefaultRowGroupExpand();handleDefaultMergeCells();handleDefaultMergeHeaderItems();handleDefaultMergeFooterItems();(0,_vue.nextTick)(()=>setTimeout(()=>$xeTable.recalculate()));};/**
|
|
@@ -265,33 +273,7 @@ if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expand
|
|
|
265
273
|
* 更新展开行样式
|
|
266
274
|
*/const updateRowExpandStyle=()=>{const{expandColumn,scrollYLoad,scrollYTop,isScrollYBig}=reactData;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const{mode}=expandOpts;if(expandColumn&&mode==='fixed'){const{elemStore,fullAllDataRowIdData}=internalData;const rowExpandEl=refRowExpandElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){let isUpdateHeight=false;_xeUtils.default.arrayEach(rowExpandEl.children,reEl=>{const expandEl=reEl;const rowid=expandEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const expandHeight=expandEl.offsetHeight+1;const trEl=bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);let offsetTop=0;if(scrollYLoad){if(isScrollYBig&&trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}else{offsetTop=rowRest.oTop+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);}}else{if(trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}}if(isScrollYBig){offsetTop+=scrollYTop;}expandEl.style.top=(0,_dom.toCssUnit)(offsetTop);if(!isUpdateHeight){if(rowRest.expandHeight!==expandHeight){isUpdateHeight=true;}}rowRest.expandHeight=expandHeight;}});if(isUpdateHeight){reactData.rowExpandHeightFlag++;(0,_vue.nextTick)(()=>{updateRowOffsetTop();});}}}};/**
|
|
267
275
|
* 更新树连接线样式
|
|
268
|
-
*/const updateTreeLineStyle=()=>{
|
|
269
|
-
// const { rowExpandedMaps } = internalData
|
|
270
|
-
// const treeOpts = computeTreeOpts.value
|
|
271
|
-
// const { transform, mapChildrenField } = treeOpts
|
|
272
|
-
// const childrenField = treeOpts.children || treeOpts.childrenField
|
|
273
|
-
// const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
274
|
-
// // 待优化
|
|
275
|
-
// if (transform) {
|
|
276
|
-
// // x
|
|
277
|
-
// } else {
|
|
278
|
-
// // x
|
|
279
|
-
// }
|
|
280
|
-
// const handleNodeRow = (row: any, parentRow: any) => {
|
|
281
|
-
// const childList: any[] = row[transform ? mapChildrenField : childrenField]
|
|
282
|
-
// if (childList && childList.length) {
|
|
283
|
-
// childList.forEach(childRow => {
|
|
284
|
-
// const childRowid = handleGetRowId(childRow)
|
|
285
|
-
// if (rowExpandedMaps[childRowid]) {
|
|
286
|
-
// handleNodeRow(childRow, row)
|
|
287
|
-
// }
|
|
288
|
-
// })
|
|
289
|
-
// }
|
|
290
|
-
// }
|
|
291
|
-
// tableData.forEach(row => {
|
|
292
|
-
// handleNodeRow(row, null)
|
|
293
|
-
// })
|
|
294
|
-
};const handleRowExpandScroll=()=>{const{elemStore}=internalData;const rowExpandEl=refRowExpandElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){rowExpandEl.scrollTop=bodyScrollElem.scrollTop;}};tableMethods={dispatchEvent,getEl(){return refElem.value;},/**
|
|
276
|
+
*/const updateTreeLineStyle=()=>{const{treeConfig}=props;if(!treeConfig){return;}const{tableData}=reactData;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const cellOpts=computeCellOpts.value;const rowOpts=computeRowOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const treeOpts=computeTreeOpts.value;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const expParentList=[];const handleNodeRow=(row,rIndex,rows)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};const childList=row[transform?mapChildrenField:childrenField];const prevRow=rows[rIndex-1]||null;const nextRow=rows[rIndex+1]||null;if(childList&&childList.length&&treeExpandedMaps[rowid]){expParentList.push({row,prevRow,nextRow});childList.forEach((childRow,crIndex)=>{const childRowid=handleGetRowId(childRow);if(treeExpandedMaps[childRowid]){handleNodeRow(childRow,crIndex,childList);}});}else{if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=(0,_util.getCellRestHeight)(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=(0,_util.getCellRestHeight)(nextRowRest,cellOpts,rowOpts,defaultRowHeight);rowRest.oHeight=currCellHeight;rowRest.lineHeight=Math.floor(currCellHeight/2+nextCellHeight/2);}else{rowRest.oHeight=0;rowRest.lineHeight=0;}}};tableData.forEach((row,rIndex)=>{handleNodeRow(row,rIndex,tableData);});_xeUtils.default.lastArrayEach(expParentList,({row,nextRow})=>{const rowid=handleGetRowId(row);const childList=row[transform?mapChildrenField:childrenField];const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const currCellHeight=(0,_util.getCellRestHeight)(rowRest,cellOpts,rowOpts,defaultRowHeight);let countOffsetHeight=currCellHeight;let countLineHeight=0;childList.forEach(childRow=>{const childRowid=handleGetRowId(childRow);const childRowRest=fullAllDataRowIdData[childRowid]||{};const childList=childRow[transform?mapChildrenField:childrenField];if(treeExpandedMaps[childRowid]&&childList&&childList.length){countOffsetHeight+=childRowRest.oHeight||0;countLineHeight+=childRowRest.oHeight||0;}else{const cellHeight=(0,_util.getCellRestHeight)(childRowRest,cellOpts,rowOpts,defaultRowHeight);childRowRest.oHeight=cellHeight;childRowRest.lineHeight=cellHeight;countOffsetHeight+=cellHeight;countLineHeight+=cellHeight;}});if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=(0,_util.getCellRestHeight)(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=(0,_util.getCellRestHeight)(nextRowRest,cellOpts,rowOpts,defaultRowHeight);countOffsetHeight+=currCellHeight;countLineHeight+=Math.floor(currCellHeight/2+nextCellHeight/2);}rowRest.lineHeight=countLineHeight;rowRest.oHeight=countOffsetHeight;}});};const handleRowExpandScroll=()=>{const{elemStore}=internalData;const rowExpandEl=refRowExpandElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){rowExpandEl.scrollTop=bodyScrollElem.scrollTop;}};tableMethods={dispatchEvent,getEl(){return refElem.value;},/**
|
|
295
277
|
* 重置表格的一切数据状态
|
|
296
278
|
*/clearAll(){return(0,_util.clearTableAllStatus)($xeTable);},/**
|
|
297
279
|
* 同步 data 数据(即将废弃)
|
|
@@ -922,7 +904,10 @@ Object.assign($xeTable,tableMethods,tablePrivateMethods);/**
|
|
|
922
904
|
// warnLog('vxe.error.checkProp', ['checkbox-config.checkField'])
|
|
923
905
|
// }
|
|
924
906
|
if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return tableMethods.recalculate();});});const staticColumnFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>reactData.staticColumns.length,()=>{staticColumnFlag.value++;});(0,_vue.watch)(()=>reactData.staticColumns,()=>{staticColumnFlag.value++;});(0,_vue.watch)(staticColumnFlag,()=>{(0,_vue.nextTick)(()=>handleInitColumn(_xeUtils.default.clone(reactData.staticColumns)));});const tableColumnFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>reactData.tableColumn.length,()=>{tableColumnFlag.value++;});(0,_vue.watch)(()=>reactData.tableColumn,()=>{tableColumnFlag.value++;});(0,_vue.watch)(tableColumnFlag,()=>{tablePrivateMethods.analyColumnWidth();});(0,_vue.watch)(()=>reactData.upDataFlag,()=>{(0,_vue.nextTick)(()=>{tableMethods.updateData();});});(0,_vue.watch)(()=>reactData.reColumnFlag,()=>{(0,_vue.nextTick)(()=>{tableMethods.refreshColumn();});});const reLayoutFlag=(0,_vue.ref)(0);(0,_vue.watch)(computeSize,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showHeader,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showFooter,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>reactData.overflowX,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>reactData.overflowY,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.height,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.maxHeight,()=>{reLayoutFlag.value++;});(0,_vue.watch)(computeScrollbarXToTop,()=>{reLayoutFlag.value++;});(0,_vue.watch)(computeScrollbarYToLeft,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>_ui.VxeUI.getLanguage(),()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>{const scrollbarXOpts=computeScrollbarXOpts.value;return scrollbarXOpts.visible;},()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>{const scrollbarYOpts=computeScrollbarYOpts.value;return scrollbarYOpts.visible;},()=>{reLayoutFlag.value++;});(0,_vue.watch)(reLayoutFlag,()=>{$xeTable.recalculate(true);});const footFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.footerData?props.footerData.length:-1,()=>{footFlag.value++;});(0,_vue.watch)(()=>props.footerData,()=>{footFlag.value++;});(0,_vue.watch)(footFlag,()=>{$xeTable.updateFooter();});(0,_vue.watch)(()=>props.syncResize,value=>{if(value){handleUpdateResize();(0,_vue.nextTick)(()=>{handleUpdateResize();setTimeout(()=>handleUpdateResize());});}});const mergeCellFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.mergeCells?props.mergeCells.length:-1,()=>{mergeCellFlag.value++;});(0,_vue.watch)(()=>props.mergeCells,()=>{mergeCellFlag.value++;});(0,_vue.watch)(mergeCellFlag,()=>{handleUpdateMergeBodyCells(props.mergeCells||[]);});const mergeHeaderItemFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.mergeHeaderCells?props.mergeHeaderCells.length:-1,()=>{mergeHeaderItemFlag.value++;});(0,_vue.watch)(()=>props.mergeHeaderCells,()=>{mergeHeaderItemFlag.value++;});(0,_vue.watch)(mergeHeaderItemFlag,()=>{handleUpdateMergeHeaderCells(props.mergeHeaderCells||[]);});const mergeFooteCellFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.mergeFooterCells?props.mergeFooterCells.length:-1,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(()=>props.mergeFooterCells,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(()=>props.mergeFooterItems?props.mergeFooterItems.length:-1,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(()=>props.mergeFooterItems,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(mergeFooteCellFlag,()=>{const mFooterCells=props.mergeFooterCells||props.mergeFooterItems;handleUpdateMergeFooterCells(mFooterCells||[]);});(0,_vue.watch)(computeRowGroupFields,val=>{handleUpdateRowGroup(val);});(0,_vue.watch)(computeRowField,()=>{const{inited,tableFullData}=internalData;// 行主键被改变,重载表格
|
|
925
|
-
if(inited){handleKeyField();reactData.tableData=[];(0,_vue.nextTick)(()=>{$xeTable.reloadData(tableFullData);});}});if($xeTabs){(0,_vue.watch)(()=>$xeTabs?$xeTabs.reactData.resizeFlag:null,()=>{handleGlobalResizeEvent();});}handleKeyField();hooks.forEach(options=>{const{setupTable}=options;if(setupTable){const hookRest=setupTable($xeTable);if(hookRest&&_xeUtils.default.isObject(hookRest)){Object.assign($xeTable,hookRest);}}});tablePrivateMethods.preventEvent(null,'created',{$table:$xeTable});let resizeObserver;(0,_vue.onActivated)(()=>{tableMethods.recalculate().then(()=>tableMethods.refreshScroll());tablePrivateMethods.preventEvent(null,'activated',{$table:$xeTable});});(0,_vue.onDeactivated)(()=>{const{filterStore}=reactData;if(filterStore.visible){$xeTable.clearFilter();}$xeTable.closeTooltip();internalData.isActivated=false;tablePrivateMethods.preventEvent(null,'deactivated',{$table:$xeTable});});(0,_vue.onMounted)(()=>{const columnOpts=computeColumnOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const aggregateOpts=computeAggregateOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{groupFields}=aggregateOpts;if($xeGantt){const{refClassifyWrapperElem}=$xeGantt.getRefMaps();const classifyWrapperEl=refClassifyWrapperElem.value;if(classifyWrapperEl){internalData.teleportToWrapperElem=classifyWrapperEl;}}if($xeGGWrapper){const{refPopupContainerElem}=$xeGGWrapper.getRefMaps();const popupContainerEl=refPopupContainerElem.value;if(popupContainerEl){internalData.popupToWrapperElem=popupContainerEl;}}if(columnOpts.drag||rowOpts.drag||customOpts.allowSort){(0,_dom.initTpImg)();}handleUpdateRowGroup(groupFields);(0,_vue.nextTick)(()=>{const{data,exportConfig,importConfig,treeConfig,
|
|
907
|
+
if(inited){handleKeyField();reactData.tableData=[];(0,_vue.nextTick)(()=>{$xeTable.reloadData(tableFullData);});}});if($xeTabs){(0,_vue.watch)(()=>$xeTabs?$xeTabs.reactData.resizeFlag:null,()=>{handleGlobalResizeEvent();});}handleKeyField();hooks.forEach(options=>{const{setupTable}=options;if(setupTable){const hookRest=setupTable($xeTable);if(hookRest&&_xeUtils.default.isObject(hookRest)){Object.assign($xeTable,hookRest);}}});tablePrivateMethods.preventEvent(null,'created',{$table:$xeTable});let resizeObserver;(0,_vue.onActivated)(()=>{tableMethods.recalculate().then(()=>tableMethods.refreshScroll());tablePrivateMethods.preventEvent(null,'activated',{$table:$xeTable});});(0,_vue.onDeactivated)(()=>{const{filterStore}=reactData;if(filterStore.visible){$xeTable.clearFilter();}$xeTable.closeTooltip();internalData.isActivated=false;tablePrivateMethods.preventEvent(null,'deactivated',{$table:$xeTable});});(0,_vue.onMounted)(()=>{const columnOpts=computeColumnOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const aggregateOpts=computeAggregateOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{groupFields}=aggregateOpts;if($xeGantt){const{refClassifyWrapperElem}=$xeGantt.getRefMaps();const classifyWrapperEl=refClassifyWrapperElem.value;if(classifyWrapperEl){internalData.teleportToWrapperElem=classifyWrapperEl;}}if($xeGGWrapper){const{refPopupContainerElem}=$xeGGWrapper.getRefMaps();const popupContainerEl=refPopupContainerElem.value;if(popupContainerEl){internalData.popupToWrapperElem=popupContainerEl;}}if(columnOpts.drag||rowOpts.drag||customOpts.allowSort){(0,_dom.initTpImg)();}handleUpdateRowGroup(groupFields);(0,_vue.nextTick)(()=>{const{data,exportConfig,importConfig,treeConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{scrollXStore,scrollYStore}=internalData;const editOpts=computeEditOpts.value;const treeOpts=computeTreeOpts.value;const radioOpts=computeRadioOpts.value;const checkboxOpts=computeCheckboxOpts.value;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const mouseOpts=computeMouseOpts.value;const exportOpts=computeExportOpts.value;const importOpts=computeImportOpts.value;const currentRowOpts=computeCurrentRowOpts.value;const currentColumnOpts=computeCurrentColumnOpts.value;const keyboardOpts=computeKeyboardOpts.value;const aggregateOpts=computeAggregateOpts.value;const rowDragOpts=computeRowDragOpts.value;if(props.rowId){(0,_log.warnLog)('vxe.error.delProp',['row-id','row-config.keyField']);}if(props.rowKey){(0,_log.warnLog)('vxe.error.delProp',['row-key','row-config.useKey']);}if(props.columnKey){(0,_log.warnLog)('vxe.error.delProp',['column-id','column-config.useKey']);}if(!(props.rowId||rowOpts.keyField)&&(checkboxOpts.reserve||checkboxOpts.checkRowKeys||radioOpts.reserve||radioOpts.checkRowKey||expandOpts.expandRowKeys||treeOpts.expandRowKeys)){(0,_log.warnLog)('vxe.error.reqProp',['row-config.keyField']);}if(props.editConfig&&(editOpts.showStatus||editOpts.showUpdateStatus||editOpts.showInsertStatus)&&!props.keepSource){(0,_log.warnLog)('vxe.error.reqProp',['keep-source']);}// if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
|
|
908
|
+
// warnLog('vxe.error.reqProp', ['show-overflow'])
|
|
909
|
+
// }
|
|
910
|
+
if(treeConfig&&!treeOpts.transform&&props.stripe){(0,_log.warnLog)('vxe.error.noTree',['stripe']);}if(props.showFooter&&!(props.footerMethod||props.footerData)){(0,_log.warnLog)('vxe.error.reqProp',['footer-data | footer-method']);}if(rowOpts.height){(0,_log.warnLog)('vxe.error.delProp',['row-config.height','cell-config.height']);}if(props.highlightCurrentRow){(0,_log.warnLog)('vxe.error.delProp',['highlight-current-row','row-config.isCurrent']);}if(props.highlightHoverRow){(0,_log.warnLog)('vxe.error.delProp',['highlight-hover-row','row-config.isHover']);}if(props.highlightCurrentColumn){(0,_log.warnLog)('vxe.error.delProp',['highlight-current-column','column-config.isCurrent']);}if(props.highlightHoverColumn){(0,_log.warnLog)('vxe.error.delProp',['highlight-hover-column','column-config.isHover']);}if(props.resizable){(0,_log.warnLog)('vxe.error.delProp',['resizable','column-config.resizable']);}if(props.virtualXConfig&&props.scrollX){(0,_log.warnLog)('vxe.error.notSupportProp',['virtual-x-config','scroll-x','scroll-x=null']);}if(props.virtualYConfig&&props.scrollY){(0,_log.warnLog)('vxe.error.notSupportProp',['virtual-y-config','scroll-y','scroll-y=null']);}if(props.aggregateConfig&&props.rowGroupConfig){(0,_log.warnLog)('vxe.error.notSupportProp',['aggregate-config','row-group-config','row-group-config=null']);}// if (props.scrollY) {
|
|
926
911
|
// warnLog('vxe.error.delProp', ['scroll-y', 'virtual-y-config'])
|
|
927
912
|
// }
|
|
928
913
|
// if (props.scrollX) {
|