vxe-table 3.20.0 → 3.20.2
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 +4 -2
- package/es/table/src/column.js +1 -1
- package/es/table/src/methods.js +23 -17
- package/es/table/src/table.js +16 -1
- package/es/table/src/util.js +1 -2
- package/es/table/style.css +2 -2
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +2 -2
- 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 +34 -14
- 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 +5 -2
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/column.js +1 -1
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/methods.js +7 -7
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +18 -0
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +1 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +2 -2
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +2 -2
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/src/body.ts +4 -2
- package/packages/table/src/column.ts +1 -1
- package/packages/table/src/methods.ts +23 -17
- package/packages/table/src/table.ts +18 -2
- package/packages/table/src/util.ts +2 -2
- package/styles/components/table.scss +2 -2
- package/styles/theme/base.scss +3 -0
- /package/es/{iconfont.1773027250443.ttf → iconfont.1773303132392.ttf} +0 -0
- /package/es/{iconfont.1773027250443.woff → iconfont.1773303132392.woff} +0 -0
- /package/es/{iconfont.1773027250443.woff2 → iconfont.1773303132392.woff2} +0 -0
- /package/lib/{iconfont.1773027250443.ttf → iconfont.1773303132392.ttf} +0 -0
- /package/lib/{iconfont.1773027250443.woff → iconfont.1773303132392.woff} +0 -0
- /package/lib/{iconfont.1773027250443.woff2 → iconfont.1773303132392.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -22,14 +22,17 @@ const renderType = 'body';
|
|
|
22
22
|
const isVMScrollProcess = $xeTable => {
|
|
23
23
|
const tableProps = $xeTable;
|
|
24
24
|
const tableReactData = $xeTable;
|
|
25
|
+
const tableInternalData = $xeTable;
|
|
25
26
|
const {
|
|
26
27
|
delayHover
|
|
27
28
|
} = tableProps;
|
|
28
29
|
const {
|
|
29
|
-
lastScrollTime,
|
|
30
30
|
isDragResize
|
|
31
31
|
} = tableReactData;
|
|
32
|
-
|
|
32
|
+
const {
|
|
33
|
+
lastSTime
|
|
34
|
+
} = tableInternalData;
|
|
35
|
+
return !!(isDragResize || lastSTime && Date.now() < lastSTime + delayHover);
|
|
33
36
|
};
|
|
34
37
|
function renderLine(h, $xeTable, rowid, params, cellHeight) {
|
|
35
38
|
const tableProps = $xeTable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,{lastScrollTime:e,isDragResize:t}=e;return!!(t||e&&Date.now()<e+l)};function renderLine(o,a,i,s,d){var n=s.column,c=a.treeConfig,p=a.computeCellOpts,u=a.computeRowOpts,g=a.computeDefaultRowHeight,x=a.computeTreeOpts,{slots:n,treeNode:m}=n,v=a.fullAllDataRowIdData;if(c&&m&&(x.showLine||x.line)){if(n&&n.line)return a.callSlot(n.line,s,o);c=v[i];let e=0,l=null,t=null,r="";return(c&&(e=c.level,l=c.items[c.treeIndex-1],t=c.parent),e||x.showRootLine)?(l?(m=v[(0,_util.getRowid)(a,l)]||{},r=`${m.lineHeight||0}px`):e&&t&&(n=v[(0,_util.getRowid)(a,t)]||{},r=`calc(-1em + ${Math.floor(d/2+(0,_util.getCellRestHeight)(n,p,u,g)/2)}px)`),[o("div",{key:"tl",class:"vxe-tree--line-wrapper"},[o("div",{class:"vxe-tree--line",style:{height:r,bottom:`-${Math.floor(d/2)}px`,left:`calc(${e*x.indent}px + 1em)`}})])]):[]}return[]}function renderTdColumn(e,l,H,t,r,A,q,o,F,L,a,i,U,N,s){var d=l.$xeGrid,V=l.$xeGantt,{columnKey:G,resizable:n,showOverflow:c,border:W,height:p,treeConfig:X,cellClassName:Y,cellStyle:j,align:P,spanMethod:K,mouseConfig:J,editConfig:Q,editRules:u,tooltipConfig:g,padding:x}=l,{tableData:Z,tableColumn:ee,dragRow:le,overflowX:te,overflowY:re,currentColumn:oe,scrollXLoad:ae,scrollYLoad:ie,mergeBodyFlag:se,calcCellHeightFlag:m,resizeHeightFlag:de,resizeWidthFlag:ne,editStore:ce,isAllOverflow:pe,validErrorMaps:v}=l,{fullAllDataRowIdData:ue,fullColumnIdData:w,mergeBodyCellMaps:ge,visibleColumn:xe,afterFullData:me,mergeBodyList:ve,scrollXStore:we,scrollYStore:he,keepUpdateFieldMaps:fe}=l,h=l.computeCellOpts,f=l.computeValidOpts,ye=l.computeCheckboxOpts,be=l.computeEditOpts,y=l.computeTooltipOpts,Ce=l.computeVirtualXOpts,_e=l.computeVirtualYOpts,{isAllColumnDrag:Re,isAllRowDrag:Ee}=l.resizableOpts,b=l.computeRowOpts,C=l.computeRowDragOpts,Se=l.computeDefaultRowHeight,m=m?h.height||b.height:0,{disabledMethod:_,isCrossDrag:$e,isPeerDrag:De}=C,Oe=l.computeColumnOpts,Ie=l.computeMouseOpts,Te=l.computeCellOffsetWidth,ke=l.computeAreaOpts.selectCellToRow,{field:Be,type:Me,cellRender:R,editRender:E,align:ze,showOverflow:He,className:Ae,treeNode:qe,rowResize:Fe,padding:S,verticalAlign:$,slots:Le}=i,D=h.verticalAlign,ce=ce.actived,Ue=ue[t]||{},O=i.id,w=w[O]||{},R=E||R,R=R?renderer.get(R.name):null,Ne=R?R.tableCellClassName||R.cellClassName:null,Ve=R?R.tableCellStyle||R.cellStyle:"";let Ge=y.showAll;var We=w.index,y=w._index,w=(0,_utils.isEnableConf)(E),E=de?Ue.resizeHeight:0;let I=te&&(r?i.fixed!==r:!!i.fixed);de=_xeUtils.default.eqNull(S)?null===x?h.padding:x:S,x=_xeUtils.default.eqNull(He)?c:He,S="ellipsis"===x;let T="title"===x,k=!0===x||"tooltip"===x;c=pe||T||k||S,He=_xeUtils.default.isBoolean(i.resizable)?i.resizable:Oe.resizable||n,x=!!m,n=0<E;let Xe;m={},E=ze||(R?R.tableCellAlign:"")||P,ze=_xeUtils.default.eqNull($)?D:$,R=v[t+":"+O],P=u&&f.showErrorMessage&&("default"===f.message?p||1<Z.length:"inline"===f.message),D={colid:O};let B={$table:l,$grid:d,$gantt:V,isEdit:!1,seq:H,rowid:t,row:o,rowIndex:F,$rowIndex:L,_rowIndex:a,column:i,columnIndex:We,$columnIndex:U,_columnIndex:y,fixed:r,source:sourceType,type:renderType,isHidden:!!I,level:q,visibleData:me,data:Z,items:s},M=!1,Ye=!1,z=((M=b.drag?"row"===C.trigger||i.dragSort&&"cell"===C.trigger:M)&&(Ye=!(!_||!_(B))),(T||k||Ge||g)&&(m.mouseover=e=>{isVMScrollProcess(l)||(T?(0,_dom.updateCellTitle)(e.currentTarget,i):(k||Ge)&&l.triggerBodyTooltipEvent(e,B)),l.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},B),e)}),(k||Ge||g)&&(m.mouseleave=e=>{isVMScrollProcess(l)||(k||Ge)&&l.handleTargetLeaveEvent(e),l.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},B),e)}),(M||ye.range||J)&&(m.mousedown=e=>{l.triggerCellMousedownEvent(e,B)}),M&&(m.mouseup=l.triggerCellMouseupEvent),m.click=e=>{l.triggerCellClickEvent(e,B)},!(m.dblclick=e=>{l.triggerCellDblclickEvent(e,B)})),je=1,Pe=1;if(se&&ve.length){$=ge[a+":"+y];if($){var{rowspan:v,colspan:u}=$;if(!v||!u)return renderEmptyElement(l);1<v&&(z=!0,Pe=v,D.rowspan=v),1<u&&(z=!0,je=u,D.colspan=u)}}else if(K){var{rowspan:p=1,colspan:d=1}=K(B)||{};if(!p||!d)return renderEmptyElement(l);1<p&&(z=!0,Pe=p,D.rowspan=p),1<d&&(z=!0,je=d,D.colspan=d)}!(I=I&&z&&(1<D.colspan||1<D.rowspan)?!1:I)&&Q&&(be.showStatus||be.showUpdateStatus)&&fe[Be]&&(Xe=l.isUpdateByRow(o,Be));V=!c&&(ie||ae);let Ke=(0,_util.getCellRestHeight)(Ue,h,b,Se);H=U===N.length-1,F=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let Je=!1;z||le&&(0,_util.getRowid)(l,le)===t||(re&&ie&&!X&&16<Z.length&&!_e.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||te&&ae&&10<ee.length&&!Ce.immediate&&!i.fixed&&(y<we.visibleStartIndex-we.preloadSize||y>we.visibleEndIndex+we.preloadSize))&&(Je=!0),1<Pe&&(L=me[a+Pe-1])&&(s=ue[(0,_util.getRowid)(l,L)])&&(Ke+=s.oTop+(0,_util.getCellRestHeight)(s,h,b,Se)-Ue.oTop-(0,_util.getCellRestHeight)(Ue,h,b,Se));C={};if(c&&ne){let l=0;if(1<je)for(let e=1;e<je;e++){var Qe=xe[We+e];Qe&&(l+=Qe.renderWidth)}C.width=i.renderWidth+l-Te+"px"}ie||ae||c||x||n?C.height=Ke+"px":C.minHeight=Ke+"px";_=[];I&&pe?_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C})):(X&&_.push(...renderLine(e,l,t,B,Ke)),_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C,attrs:{title:T?l.getCellLabel(o,i):null}},Je?[]:[e("div",{attrs:{colid:O,rowid:t},class:"vxe-cell--wrapper vxe-body-cell--wrapper"},i.renderCell(e,B))])),P&&R&&(g=R.rule,ye=Le?Le.valid:null,se=Object.assign(Object.assign(Object.assign({},B),R),{rule:R}),_.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(f.className,R)],style:g&&g.maxWidth?{width:g.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[ye?l.callSlot(ye,se,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let Ze=!1;return J&&Ie.area&&!y&&ke&&(Ze=!0),!I&&He&&Re&&_.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],on:{mousedown:e=>l.handleColResizeMousedownEvent(e,r,B),dblclick:e=>l.handleColResizeDblclickEvent(e,B)}})),(Fe||Ee)&&b.resizable&&_.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>l.handleRowResizeMousedownEvent(e,B),dblclick:e=>l.handleRowResizeDblclickEvent(e,B)}})),e("td",{class:["vxe-table--column vxe-body--column",O,ze?"col--vertical-"+ze:"",E?"col--"+E:"",Me?"col--"+Me:"",{"col--last":H,"col--tree-node":qe,"col--edit":w,"col--ellipsis":c,"col--cs-height":x,"col--rs-height":n,"col--to-row":Ze,"col--auto-height":V,"fixed--width":!F,"fixed--hidden":I,"is--padding":de,"is--progress":I&&pe||Je,"is--drag-cell":M&&($e||De||!q),"is--drag-disabled":Ye,"col--dirty":Xe,"col--active":Q&&w&&ce.row===o&&(ce.column===i||"row"===be.mode),"col--valid-error":!!R,"show--valid-bg":R&&f.showErrorBackground,"col--current":oe===i},(0,_utils.getClass)(Ne,B),(0,_utils.getClass)(Ae,B),(0,_utils.getClass)(Y,B)],key:G||ae||ie||Oe.useKey||b.useKey||Oe.drag?i.id:U,attrs:D,style:Object.assign({},_xeUtils.default.isFunction(Ve)?Ve(B):Ve,_xeUtils.default.isFunction(j)?j(B):j),on:m},A&&I?[]:_)}function renderRows(v,w,h,f,y,b){let C=w.$parent;var e=C,l=C,t=C;let _=C.$xeGrid,R=C.$xeGantt,{stripe:E,rowKey:S,highlightHoverRow:$,rowClassName:D,rowStyle:O,editConfig:I,treeConfig:T}=e,{hasFixedColumn:k,treeExpandedFlag:B,scrollXLoad:M,scrollYLoad:z,isAllOverflow:H,rowExpandedFlag:A,expandColumn:q,selectRadioRow:F,pendingRowFlag:L,rowExpandHeightFlag:U,isRowGroupStatus:N}=l,{fullAllDataRowIdData:P,fullColumnIdData:K,treeExpandedMaps:J,pendingRowMaps:Q,rowExpandedMaps:Z}=t,ee=C.computeCheckboxOpts,le=C.computeRadioOpts,V=C.computeTreeOpts,G=C.computeEditOpts,W=C.computeRowOpts,te=C.computeColumnOpts,{transform:X,seqMode:Y}=V,re=V.children||V.childrenField,j=[],oe=(0,_util.createHandleGetRowId)(C).handleGetRowId,ae=T||N;return y.forEach((r,o)=>{var a={};let i=oe(r);var s=P[i]||{};let d=o,n=0,c=-1,p=-1;var u=N&&r.isAggregate,g=((W.isHover||$)&&(a.mouseover=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:r,rowIndex:d})},a.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),s&&(d=s.index,p=s._index,n=s.level,c=s.seq,u||T&&X&&"increasing"===Y?c=s._index+1:T&&"fixed"===Y&&(c=s._tIndex+1)),{$table:C,seq:c,rowid:i,fixed:h,type:renderType,level:n,row:r,rowIndex:d,$rowIndex:o,_rowIndex:p}),x=q&&!!A&&!!Z[i];let e=!1,l=[],t=!1;I&&(t=C.isInsertByRow(r)),!T||z||X||(l=r[re],e=!!B&&l&&0<l.length&&!!J[i]),!W.drag||N||T&&!X||(a.dragstart=C.handleRowDragDragstartEvent,a.dragend=C.handleRowDragDragendEvent,a.dragover=C.handleRowDragDragoverEvent);var u=["vxe-body--row",ae?"row--level-"+n:"",{"row--stripe":E&&(p+1)%2==0,"is--new":t,"is--expand-row":x,"is--expand-tree":e,"row--new":t&&(G.showStatus||G.showInsertStatus),"row--radio":le.highlight&&F===r,"row--checked":ee.highlight&&C.isCheckedByCheckboxRow(r),"row--pending":!!L&&!!Q[i],"row--group":u},D?_xeUtils.default.isFunction(D)?D(g):D:""],m=b.map((e,l)=>renderTdColumn(v,C,c,i,h,f,n,r,d,o,p,e,l,b,y));if(j.push(v("tr",{class:u,attrs:{rowid:i},style:O?_xeUtils.default.isFunction(O)?O(g):O:void 0,key:S||M||z||W.useKey||W.drag||te.drag||N||T?i:o,on:a},m)),x){var{height:u,padding:g,mode:a}=C.computeExpandOpts;if("fixed"===a){m=s.expandHeight;let e=0;U&&(m||u)&&(e=(m||u||0)+1),j.push(v("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+i,attrs:{rowid:i}},[v("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:e+"px"}})]))}else{x={},a=(u&&(x.height=u+"px"),T&&(x.paddingLeft=n*V.indent+30+"px"),q||{}).showOverflow,s=q.id,m=K[s]||{},s=_xeUtils.default.eqNull(a)?H:a;let e=-1,l=-1,t=-1;m&&(e=m.index,l=m.$index,t=m._index);a={$grid:_,$table:C,$gantt:R,seq:c,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:n,row:r,rowid:i,rowIndex:d,$rowIndex:o,_rowIndex:p,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};j.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":g}],key:"expand_"+i},[v("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!k,"col--ellipsis":s}],attrs:{colspan:b.length}},[v("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":u}],style:x},[q.renderData(v,a)])])]))}}e&&j.push(...renderRows(v,w,h,f,l,b))}),j}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,a=l.$xeGrid,i=l.$xeGantt,s=l.$scopedSlots,d=l.xID;let{fixedColumn:n,fixedType:c,tableColumn:p}=this;var u=e.mouseConfig,{isGroup:r,tableData:g,isColLoading:x,overflowX:m,scrollXLoad:v,scrollYLoad:w,dragRow:h,dragCol:f}=r,{visibleColumn:o,fullAllDataRowIdData:y,fullColumnIdData:b}=o,C=l.computeEmptyOpts,_=l.computeMouseOpts;let R=g,E=p;g=l.computeIsBodyRenderOptimize;x||!c&&m||(E=o),c&&g&&(E=n||[]),w&&h&&2<R.length&&(x=y[(0,_util.getRowid)(l,h)])&&(m=x._index,o=R[0],w=R[R.length-1],x=y[(0,_util.getRowid)(l,o)],o=y[(0,_util.getRowid)(l,w)],x)&&o&&(y=x._index,w=o._index,m<y?R=[h].concat(R):w<m&&(R=R.concat([h]))),c||r||v&&f&&2<E.length&&(x=b[f.id])&&(o=x._index,y=E[0],w=E[E.length-1],m=b[y.id],h=b[w.id],m)&&h&&(r=m._index,v=h._index,o<r?E=[f].concat(E):v<o&&(E=E.concat([f])));let S;x=s?s.empty:null,y={$table:l,$grid:a,$gantt:i};return S=x?x.call(l,y):(w=(b=C.name?renderer.get(C.name):null)?b.renderTableEmpty||b.renderTableEmptyView||b.renderEmpty:null)?(0,_vn.getSlotVNs)(w.call(l,t,C,y)):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",c?`fixed-${c}--wrapper`:"body--wrapper"],attrs:{xid:d}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,c)}}},[c?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0,xvm:g?"1":null}},[t("colgroup",{ref:"refBodyColgroup"},E.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tbody",{ref:"refBodyTBody"},renderRows(t,this,c,g,R,E))]),t("div",{class:"vxe-table--checkbox-range"}),u&&_.area?t("div",{class:"vxe-table--cell-area",attrs:{xid:d}},[t("span",{class:"vxe-table--cell-main-area"},_.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:c,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-clip-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"}),t("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(l),c?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])])}};
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,t=e.isDragResize,e=e.lastSTime;return!!(t||e&&Date.now()<e+l)};function renderLine(o,a,i,s,d){var n=s.column,c=a.treeConfig,p=a.computeCellOpts,u=a.computeRowOpts,g=a.computeDefaultRowHeight,x=a.computeTreeOpts,{slots:n,treeNode:m}=n,v=a.fullAllDataRowIdData;if(c&&m&&(x.showLine||x.line)){if(n&&n.line)return a.callSlot(n.line,s,o);c=v[i];let e=0,l=null,t=null,r="";return(c&&(e=c.level,l=c.items[c.treeIndex-1],t=c.parent),e||x.showRootLine)?(l?(m=v[(0,_util.getRowid)(a,l)]||{},r=`${m.lineHeight||0}px`):e&&t&&(n=v[(0,_util.getRowid)(a,t)]||{},r=`calc(-1em + ${Math.floor(d/2+(0,_util.getCellRestHeight)(n,p,u,g)/2)}px)`),[o("div",{key:"tl",class:"vxe-tree--line-wrapper"},[o("div",{class:"vxe-tree--line",style:{height:r,bottom:`-${Math.floor(d/2)}px`,left:`calc(${e*x.indent}px + 1em)`}})])]):[]}return[]}function renderTdColumn(e,l,H,t,r,A,q,o,F,L,a,i,U,N,s){var d=l.$xeGrid,V=l.$xeGantt,{columnKey:G,resizable:n,showOverflow:c,border:W,height:p,treeConfig:X,cellClassName:Y,cellStyle:j,align:P,spanMethod:K,mouseConfig:J,editConfig:Q,editRules:u,tooltipConfig:g,padding:x}=l,{tableData:Z,tableColumn:ee,dragRow:le,overflowX:te,overflowY:re,currentColumn:oe,scrollXLoad:ae,scrollYLoad:ie,mergeBodyFlag:se,calcCellHeightFlag:m,resizeHeightFlag:de,resizeWidthFlag:ne,editStore:ce,isAllOverflow:pe,validErrorMaps:v}=l,{fullAllDataRowIdData:ue,fullColumnIdData:w,mergeBodyCellMaps:ge,visibleColumn:xe,afterFullData:me,mergeBodyList:ve,scrollXStore:we,scrollYStore:he,keepUpdateFieldMaps:fe}=l,h=l.computeCellOpts,f=l.computeValidOpts,ye=l.computeCheckboxOpts,be=l.computeEditOpts,y=l.computeTooltipOpts,Ce=l.computeVirtualXOpts,_e=l.computeVirtualYOpts,{isAllColumnDrag:Re,isAllRowDrag:Ee}=l.resizableOpts,b=l.computeRowOpts,C=l.computeRowDragOpts,Se=l.computeDefaultRowHeight,m=m?h.height||b.height:0,{disabledMethod:_,isCrossDrag:$e,isPeerDrag:De}=C,Oe=l.computeColumnOpts,Ie=l.computeMouseOpts,Te=l.computeCellOffsetWidth,ke=l.computeAreaOpts.selectCellToRow,{field:Be,type:Me,cellRender:R,editRender:E,align:ze,showOverflow:He,className:Ae,treeNode:qe,rowResize:Fe,padding:S,verticalAlign:$,slots:Le}=i,D=h.verticalAlign,ce=ce.actived,Ue=ue[t]||{},O=i.id,w=w[O]||{},R=E||R,R=R?renderer.get(R.name):null,Ne=R?R.tableCellClassName||R.cellClassName:null,Ve=R?R.tableCellStyle||R.cellStyle:"";let Ge=y.showAll;var We=w.index,y=w._index,w=(0,_utils.isEnableConf)(E),E=de?Ue.resizeHeight:0;let I=te&&(r?i.fixed!==r:!!i.fixed);de=_xeUtils.default.eqNull(S)?null===x?h.padding:x:S,x=_xeUtils.default.eqNull(He)?c:He,S="ellipsis"===x;let T="title"===x,k=!0===x||"tooltip"===x;c=pe||T||k||S,He=_xeUtils.default.isBoolean(i.resizable)?i.resizable:Oe.resizable||n,x=!!m,n=0<E;let Xe;m={},E=ze||(R?R.tableCellAlign:"")||P,ze=_xeUtils.default.eqNull($)?D:$,R=v[t+":"+O],P=u&&f.showErrorMessage&&("default"===f.message?p||1<Z.length:"inline"===f.message),D={colid:O};let B={$table:l,$grid:d,$gantt:V,isEdit:!1,seq:H,rowid:t,row:o,rowIndex:F,$rowIndex:L,_rowIndex:a,column:i,columnIndex:We,$columnIndex:U,_columnIndex:y,fixed:r,source:sourceType,type:renderType,isHidden:!!I,level:q,visibleData:me,data:Z,items:s},M=!1,Ye=!1,z=((M=b.drag?"row"===C.trigger||i.dragSort&&"cell"===C.trigger:M)&&(Ye=!(!_||!_(B))),(T||k||Ge||g)&&(m.mouseover=e=>{isVMScrollProcess(l)||(T?(0,_dom.updateCellTitle)(e.currentTarget,i):(k||Ge)&&l.triggerBodyTooltipEvent(e,B)),l.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},B),e)}),(k||Ge||g)&&(m.mouseleave=e=>{isVMScrollProcess(l)||(k||Ge)&&l.handleTargetLeaveEvent(e),l.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},B),e)}),(M||ye.range||J)&&(m.mousedown=e=>{l.triggerCellMousedownEvent(e,B)}),M&&(m.mouseup=l.triggerCellMouseupEvent),m.click=e=>{l.triggerCellClickEvent(e,B)},!(m.dblclick=e=>{l.triggerCellDblclickEvent(e,B)})),je=1,Pe=1;if(se&&ve.length){$=ge[a+":"+y];if($){var{rowspan:v,colspan:u}=$;if(!v||!u)return renderEmptyElement(l);1<v&&(z=!0,Pe=v,D.rowspan=v),1<u&&(z=!0,je=u,D.colspan=u)}}else if(K){var{rowspan:p=1,colspan:d=1}=K(B)||{};if(!p||!d)return renderEmptyElement(l);1<p&&(z=!0,Pe=p,D.rowspan=p),1<d&&(z=!0,je=d,D.colspan=d)}!(I=I&&z&&(1<D.colspan||1<D.rowspan)?!1:I)&&Q&&(be.showStatus||be.showUpdateStatus)&&fe[Be]&&(Xe=l.isUpdateByRow(o,Be));V=!c&&(ie||ae);let Ke=(0,_util.getCellRestHeight)(Ue,h,b,Se);H=U===N.length-1,F=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let Je=!1;z||le&&(0,_util.getRowid)(l,le)===t||(re&&ie&&!X&&16<Z.length&&!_e.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||te&&ae&&10<ee.length&&!Ce.immediate&&!i.fixed&&(y<we.visibleStartIndex-we.preloadSize||y>we.visibleEndIndex+we.preloadSize))&&(Je=!0),1<Pe&&(L=me[a+Pe-1])&&(s=ue[(0,_util.getRowid)(l,L)])&&(Ke+=s.oTop+(0,_util.getCellRestHeight)(s,h,b,Se)-Ue.oTop-(0,_util.getCellRestHeight)(Ue,h,b,Se));C={};if(c&&ne){let l=0;if(1<je)for(let e=1;e<je;e++){var Qe=xe[We+e];Qe&&(l+=Qe.renderWidth)}C.width=i.renderWidth+l-Te+"px"}ie||ae||c||x||n?C.height=Ke+"px":C.minHeight=Ke+"px";_=[];I&&pe?_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C})):(X&&_.push(...renderLine(e,l,t,B,Ke)),_.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":S}],style:C,attrs:{title:T?l.getCellLabel(o,i):null}},Je?[]:[e("div",{attrs:{colid:O,rowid:t},class:"vxe-cell--wrapper vxe-body-cell--wrapper"},i.renderCell(e,B))])),P&&R&&(g=R.rule,ye=Le?Le.valid:null,se=Object.assign(Object.assign(Object.assign({},B),R),{rule:R}),_.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(f.className,R)],style:g&&g.maxWidth?{width:g.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[ye?l.callSlot(ye,se,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let Ze=!1;return J&&Ie.area&&!y&&ke&&(Ze=!0),!I&&He&&Re&&_.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],on:{mousedown:e=>l.handleColResizeMousedownEvent(e,r,B),dblclick:e=>l.handleColResizeDblclickEvent(e,B)}})),(Fe||Ee)&&b.resizable&&_.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>l.handleRowResizeMousedownEvent(e,B),dblclick:e=>l.handleRowResizeDblclickEvent(e,B)}})),e("td",{class:["vxe-table--column vxe-body--column",O,ze?"col--vertical-"+ze:"",E?"col--"+E:"",Me?"col--"+Me:"",{"col--last":H,"col--tree-node":qe,"col--edit":w,"col--ellipsis":c,"col--cs-height":x,"col--rs-height":n,"col--to-row":Ze,"col--auto-height":V,"fixed--width":!F,"fixed--hidden":I,"is--padding":de,"is--progress":I&&pe||Je,"is--drag-cell":M&&($e||De||!q),"is--drag-disabled":Ye,"col--dirty":Xe,"col--active":Q&&w&&ce.row===o&&(ce.column===i||"row"===be.mode),"col--valid-error":!!R,"show--valid-bg":R&&f.showErrorBackground,"col--current":oe===i},(0,_utils.getClass)(Ne,B),(0,_utils.getClass)(Ae,B),(0,_utils.getClass)(Y,B)],key:G||ae||ie||Oe.useKey||b.useKey||Oe.drag?i.id:U,attrs:D,style:Object.assign({},_xeUtils.default.isFunction(Ve)?Ve(B):Ve,_xeUtils.default.isFunction(j)?j(B):j),on:m},A&&I?[]:_)}function renderRows(v,w,h,f,y,b){let C=w.$parent;var e=C,l=C,t=C;let _=C.$xeGrid,R=C.$xeGantt,{stripe:E,rowKey:S,highlightHoverRow:$,rowClassName:D,rowStyle:O,editConfig:I,treeConfig:T}=e,{hasFixedColumn:k,treeExpandedFlag:B,scrollXLoad:M,scrollYLoad:z,isAllOverflow:H,rowExpandedFlag:A,expandColumn:q,selectRadioRow:F,pendingRowFlag:L,rowExpandHeightFlag:U,isRowGroupStatus:N}=l,{fullAllDataRowIdData:P,fullColumnIdData:K,treeExpandedMaps:J,pendingRowMaps:Q,rowExpandedMaps:Z}=t,ee=C.computeCheckboxOpts,le=C.computeRadioOpts,V=C.computeTreeOpts,G=C.computeEditOpts,W=C.computeRowOpts,te=C.computeColumnOpts,{transform:X,seqMode:Y}=V,re=V.children||V.childrenField,j=[],oe=(0,_util.createHandleGetRowId)(C).handleGetRowId,ae=T||N;return y.forEach((r,o)=>{var a={};let i=oe(r);var s=P[i]||{};let d=o,n=0,c=-1,p=-1;var u=N&&r.isAggregate,g=((W.isHover||$)&&(a.mouseover=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:r,rowIndex:d})},a.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),s&&(d=s.index,p=s._index,n=s.level,c=s.seq,u||T&&X&&"increasing"===Y?c=s._index+1:T&&"fixed"===Y&&(c=s._tIndex+1)),{$table:C,seq:c,rowid:i,fixed:h,type:renderType,level:n,row:r,rowIndex:d,$rowIndex:o,_rowIndex:p}),x=q&&!!A&&!!Z[i];let e=!1,l=[],t=!1;I&&(t=C.isInsertByRow(r)),!T||z||X||(l=r[re],e=!!B&&l&&0<l.length&&!!J[i]),!W.drag||N||T&&!X||(a.dragstart=C.handleRowDragDragstartEvent,a.dragend=C.handleRowDragDragendEvent,a.dragover=C.handleRowDragDragoverEvent);var u=["vxe-body--row",ae?"row--level-"+n:"",{"row--stripe":E&&(p+1)%2==0,"is--new":t,"is--expand-row":x,"is--expand-tree":e,"row--new":t&&(G.showStatus||G.showInsertStatus),"row--radio":le.highlight&&F===r,"row--checked":ee.highlight&&C.isCheckedByCheckboxRow(r),"row--pending":!!L&&!!Q[i],"row--group":u},D?_xeUtils.default.isFunction(D)?D(g):D:""],m=b.map((e,l)=>renderTdColumn(v,C,c,i,h,f,n,r,d,o,p,e,l,b,y));if(j.push(v("tr",{class:u,attrs:{rowid:i},style:O?_xeUtils.default.isFunction(O)?O(g):O:void 0,key:S||M||z||W.useKey||W.drag||te.drag||N||T?i:o,on:a},m)),x){var{height:u,padding:g,mode:a}=C.computeExpandOpts;if("fixed"===a){m=s.expandHeight;let e=0;U&&(m||u)&&(e=(m||u||0)+1),j.push(v("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+i,attrs:{rowid:i}},[v("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:e+"px"}})]))}else{x={},a=(u&&(x.height=u+"px"),T&&(x.paddingLeft=n*V.indent+30+"px"),q||{}).showOverflow,s=q.id,m=K[s]||{},s=_xeUtils.default.eqNull(a)?H:a;let e=-1,l=-1,t=-1;m&&(e=m.index,l=m.$index,t=m._index);a={$grid:_,$table:C,$gantt:R,seq:c,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:n,row:r,rowid:i,rowIndex:d,$rowIndex:o,_rowIndex:p,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};j.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":g}],key:"expand_"+i},[v("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!k,"col--ellipsis":s}],attrs:{colspan:b.length}},[v("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":u}],style:x},[q.renderData(v,a)])])]))}}e&&j.push(...renderRows(v,w,h,f,l,b))}),j}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,a=l.$xeGrid,i=l.$xeGantt,s=l.$scopedSlots,d=l.xID;let{fixedColumn:n,fixedType:c,tableColumn:p}=this;var u=e.mouseConfig,{isGroup:r,tableData:g,isColLoading:x,overflowX:m,scrollXLoad:v,scrollYLoad:w,dragRow:h,dragCol:f}=r,{visibleColumn:o,fullAllDataRowIdData:y,fullColumnIdData:b}=o,C=l.computeEmptyOpts,_=l.computeMouseOpts;let R=g,E=p;g=l.computeIsBodyRenderOptimize;x||!c&&m||(E=o),c&&g&&(E=n||[]),w&&h&&2<R.length&&(x=y[(0,_util.getRowid)(l,h)])&&(m=x._index,o=R[0],w=R[R.length-1],x=y[(0,_util.getRowid)(l,o)],o=y[(0,_util.getRowid)(l,w)],x)&&o&&(y=x._index,w=o._index,m<y?R=[h].concat(R):w<m&&(R=R.concat([h]))),c||r||v&&f&&2<E.length&&(x=b[f.id])&&(o=x._index,y=E[0],w=E[E.length-1],m=b[y.id],h=b[w.id],m)&&h&&(r=m._index,v=h._index,o<r?E=[f].concat(E):v<o&&(E=E.concat([f])));let S;x=s?s.empty:null,y={$table:l,$grid:a,$gantt:i};return S=x?x.call(l,y):(w=(b=C.name?renderer.get(C.name):null)?b.renderTableEmpty||b.renderTableEmptyView||b.renderEmpty:null)?(0,_vn.getSlotVNs)(w.call(l,t,C,y)):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",c?`fixed-${c}--wrapper`:"body--wrapper"],attrs:{xid:d}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,c)}}},[c?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0,xvm:g?"1":null}},[t("colgroup",{ref:"refBodyColgroup"},E.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tbody",{ref:"refBodyTBody"},renderRows(t,this,c,g,R,E))]),t("div",{class:"vxe-table--checkbox-range"}),u&&_.area?t("div",{class:"vxe-table--cell-area",attrs:{xid:d}},[t("span",{class:"vxe-table--cell-main-area"},_.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:c,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-clip-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"}),t("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(l),c?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])])}};
|
package/lib/table/src/column.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],headerFormatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,floatingFilters:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],headerFormatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,floatingFilters:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[Boolean,String],copyMethod:Function,cutMethod:Function,pasteMethod:Function,params:Object},columnWatch=exports.columnWatch={};Object.keys(columnProps).forEach(o=>{columnWatch[o]=function(e){var t=this.$xeTable;this.columnConfig.update(o,e),t&&("filters"===o?(t.setFilter(this.columnConfig,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(o)&&t.handleRefreshColumnQueue())}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:columnWatch,created(){var e=this.$xeTable;this.columnConfig=this.createColumn(e,this)},mounted(){this.columnConfig.slots=this.$scopedSlots,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
|
package/lib/table/src/methods.js
CHANGED
|
@@ -175,7 +175,7 @@ internalData.tableFullData=fullData;internalData.tableFullTreeData=isRGroup?[]:t
|
|
|
175
175
|
$xeTable.cacheRowMap(isReset);// 原始数据
|
|
176
176
|
internalData.tableSynchData=datas;if(isReset){internalData.isResizeCellHeight=false;}// 克隆原数据,用于显示编辑状态,与编辑值做对比
|
|
177
177
|
if(keepSource){$xeTable.cacheSourceMap(fullData);}if($xeTable.clearCellAreas&&props.mouseConfig){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.updateFooter();$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{updateHeight($xeTable);updateStyle($xeTable);}).then(()=>{computeScrollLoad($xeTable);}).then(()=>{const virtualYOpts=$xeTable.computeVirtualYOpts;// 是否启用了虚拟滚动
|
|
178
|
-
if(sYLoad){scrollYStore.endIndex=scrollYStore.visibleSize;}if(sYLoad){if(reactData.expandColumn&&expandOpts.mode!=='fixed'){(0,_log.errLog)('vxe.error.notConflictProp',['column.type="expand','expand-config.mode="fixed"']);}if(virtualYOpts.mode==='scroll'&&expandOpts.mode==='fixed'){(0,_log.warnLog)('vxe.error.notConflictProp',['virtual-y-config.mode=scroll','expand-config.mode=inside']);}// if (showOverflow) {
|
|
178
|
+
if(sYLoad){scrollYStore.endIndex=scrollYStore.visibleSize;}if(sYLoad){if(reactData.expandColumn&&expandOpts.mode!=='fixed'){(0,_log.errLog)('vxe.error.notConflictProp',['column.type="expand','expand-config.mode="fixed"']);}if(virtualYOpts.mode==='scroll'&&reactData.expandColumn&&expandOpts.mode==='fixed'){(0,_log.warnLog)('vxe.error.notConflictProp',['virtual-y-config.mode=scroll','expand-config.mode=inside']);}// if (showOverflow) {
|
|
179
179
|
// if (!rowOpts.height) {
|
|
180
180
|
// const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
|
|
181
181
|
// if (errColumn) {
|
|
@@ -221,7 +221,7 @@ if(props.spanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['span-method'])
|
|
|
221
221
|
// 如果列被设置为固定,则清除合并状态
|
|
222
222
|
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn($xeTable);handleUpdateAggValues($xeTable);if(isReset){return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();}function initColumnHierarchy($xeTable){const internalData=$xeTable;const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){(0,_log.errLog)('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;}function handleInitColumn($xeTable,collectColumn){const props=$xeTable;const $xeToolbar=$xeTable.$refs.$xeToolbar;const reactData=$xeTable;const internalData=$xeTable;const expandOpts=$xeTable.computeExpandOpts;internalData.collectColumn=collectColumn;const tFullColumn=(0,_util.getColumnList)(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(restoreCustomStorage($xeTable)).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap($xeTable);parseColumns($xeTable,true).then(()=>{if(reactData.scrollXLoad){loadScrollXData($xeTable);}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.$nextTick().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=$xeTable.computeColumnOpts;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){(0,_log.warnLog)('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate($xeTable,false,true,true);});});}/**
|
|
223
223
|
* 纵向 Y 可视渲染处理
|
|
224
|
-
*/function loadScrollYData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}}const createGetRowCacheProp=prop=>{return function(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(row){const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};function lazyScrollXData($xeTable){const internalData=$xeTable;const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData($xeTable);}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData($xeTable);},fpsTime);}function lazyScrollYData($xeTable){const internalData=$xeTable;const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData($xeTable);}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData($xeTable);},fpsTime);}function handleSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';let xRest=null;let yRest=null;if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}if(isRollX&&scrollXLoad){xRest=$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){yRest=$xeTable.updateScrollYData().then(()=>{if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}return $xeTable.updateScrollYSpace();});}updateRowExpandStyle($xeTable);return Promise.all([xRest,yRest
|
|
224
|
+
*/function loadScrollYData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}}const createGetRowCacheProp=prop=>{return function(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(row){const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};function lazyScrollXData($xeTable){const internalData=$xeTable;const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData($xeTable);}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData($xeTable);},fpsTime);}function lazyScrollYData($xeTable){const internalData=$xeTable;const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData($xeTable);}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData($xeTable);},fpsTime);}function handleSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';let xRest=null;let yRest=null;if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}if(isRollX&&scrollXLoad){xRest=$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){yRest=$xeTable.updateScrollYData().then(()=>{if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}return $xeTable.updateScrollYSpace();});}updateRowExpandStyle($xeTable);return Promise.all([xRest,yRest,scrollXLoad||scrollYLoad?$xeTable.updateCellAreas():null]);}function checkLastSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{handleSyncScroll($xeTable,isRollX,isRollY).then(()=>{if(reactData.scrollXLoad||reactData.scrollYLoad){$xeTable.$nextTick(()=>{updateRowExpandStyle($xeTable);if(!internalData.lcsTimeout){handleSyncScroll($xeTable,isRollX,isRollY);}});}});},200);}const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const wheelScrollLeftTo=(scrollLeft,cb)=>{requestAnimationFrame(()=>{cb(scrollLeft);});};const syncGanttScrollTop=($xeTable,scrollTop)=>{const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;const{elemStore:ganttElemStore}=ganttInternalData;const ganttBodyScrollElem=(0,_util.getRefElem)(ganttElemStore['main-body-scroll']);if(ganttBodyScrollElem){ganttBodyScrollElem.scrollTop=scrollTop;}}};function updateHeight($xeTable){const reactData=$xeTable;const internalData=$xeTable;internalData.customHeight=calcTableHeight($xeTable,'height');internalData.customMinHeight=calcTableHeight($xeTable,'minHeight');internalData.customMaxHeight=calcTableHeight($xeTable,'maxHeight');// 如果启用虚拟滚动,纠正高度
|
|
225
225
|
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight||internalData.customMaxHeight)){internalData.customHeight=300;}}/**
|
|
226
226
|
* 计算自适应列宽
|
|
227
227
|
*/function calcColumnAutoWidth($xeTable,column,wrapperEl){const columnOpts=$xeTable.computeColumnOpts;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;}/**
|
|
@@ -586,8 +586,8 @@ if(!isSelected&&!halfSelect&&showReserveStatus){halfSelect=!_xeUtils.default.isE
|
|
|
586
586
|
*/clearCheckboxRow(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,reserve}=checkboxOpts;// indeterminateField 仅支持读取
|
|
587
587
|
const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){const handleClearChecked=item=>{if(treeConfig&&indeterminateField){_xeUtils.default.set(item,indeterminateField,false);}_xeUtils.default.set(item,checkField,false);};if(treeConfig){_xeUtils.default.eachTree(tableFullData,handleClearChecked,{children:childrenField});}else{tableFullData.forEach(handleClearChecked);}}if(reserve){tableFullData.forEach(row=>this.handleCheckboxReserveRow(row,false));}reactData.isAllSelected=false;reactData.isIndeterminate=false;internalData.selectCheckboxMaps={};internalData.treeIndeterminateRowMaps={};reactData.updateCheckboxFlag++;return this.$nextTick();},/**
|
|
588
588
|
* 单选,行选中事件
|
|
589
|
-
*/triggerRadioRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=$xeTable.computeRadioOpts;const{trigger,strict,checkMethod}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(!checkMethod||checkMethod({$table:$xeTable,row})){let newValue=row;let isChange=oldValue!==newValue;if(isChange){handleCheckedRadioRow($xeTable,newValue);}else if(!strict){isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearRadioRow();}}if(isChange){$xeTable.dispatchEvent('radio-change',Object.assign({oldValue,newValue},params),evnt);}}},triggerCurrentColumnEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentColumn:oldValue}=reactData;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const beforeRowMethod=currentColumnOpts.beforeSelectMethod||columnOpts.currentMethod;
|
|
590
|
-
$xeTable.dispatchEvent('current-change',Object.assign({oldValue,newValue},params),evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
589
|
+
*/triggerRadioRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=$xeTable.computeRadioOpts;const{trigger,strict,checkMethod}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(!checkMethod||checkMethod({$table:$xeTable,row})){let newValue=row;let isChange=oldValue!==newValue;const selected=!isChange;if(isChange){handleCheckedRadioRow($xeTable,newValue);}else if(!strict){isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearRadioRow();}}if(isChange){$xeTable.dispatchEvent('radio-change',Object.assign({oldValue,newValue,selected},params),evnt);}}},triggerCurrentColumnEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentColumn:oldValue}=reactData;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const beforeRowMethod=currentColumnOpts.beforeSelectMethod||columnOpts.currentMethod;let{column:newValue}=params;const{trigger,strict}=currentColumnOpts;if(trigger==='manual'){return;}let isChange=oldValue!==newValue;const selected=!isChange;if(!beforeRowMethod||beforeRowMethod({column:newValue,selected,$table:$xeTable})){if(strict){$xeTable.setCurrentColumn(newValue);}else{isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearCurrentColumn();}else{$xeTable.setCurrentColumn(newValue);}}if(isChange){$xeTable.dispatchEvent('current-column-change',Object.assign({oldValue,newValue,selected},params),evnt);}}else{$xeTable.dispatchEvent('current-column-disabled',params,evnt);}},triggerCurrentRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentRow:oldValue}=reactData;const rowOpts=$xeTable.computeRowOpts;const currentRowOpts=$xeTable.computeCurrentRowOpts;const beforeRowMethod=currentRowOpts.beforeSelectMethod||rowOpts.currentMethod;let{row:newValue}=params;const{trigger,strict}=currentRowOpts;if(trigger==='manual'){return;}let isChange=oldValue!==newValue;const selected=!isChange;if(!beforeRowMethod||beforeRowMethod({row:newValue,selected,$table:$xeTable})){if(strict){$xeTable.setCurrentRow(newValue);}else{isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearCurrentRow();}else{$xeTable.setCurrentRow(newValue);}}if(isChange){$xeTable.dispatchEvent('current-row-change',Object.assign({oldValue,newValue,selected},params),evnt);// 已废弃
|
|
590
|
+
$xeTable.dispatchEvent('current-change',Object.assign({oldValue,newValue,selected},params),evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
591
591
|
* 用于当前行,设置某一行为高亮状态
|
|
592
592
|
* @param {Row} row 行对象
|
|
593
593
|
*/setCurrentRow(row){const $xeTable=this;const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;const rowOpts=$xeTable.computeRowOpts;this.clearCurrentRow();// this.clearCurrentColumn()
|
|
@@ -758,12 +758,12 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
|
|
|
758
758
|
* 获取表格的滚动状态
|
|
759
759
|
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
760
760
|
* 获取表格的滚动数据
|
|
761
|
-
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const
|
|
761
|
+
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{lastScrollLeft,lastScrollTop}=internalData;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;if(!xHandleEl||!yHandleEl){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=yHandleEl.clientHeight;const bodyWidth=xHandleEl.clientWidth;const scrollHeight=yHandleEl.scrollHeight;const scrollWidth=xHandleEl.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams=Object.assign({source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction},params);updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
|
|
762
762
|
* 横向 X 可视渲染事件处理
|
|
763
763
|
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
764
764
|
* 纵向 Y 可视渲染事件处理
|
|
765
765
|
*/triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=yHandleEl.scrollTop;let scrollLeft=xHandleEl.scrollLeft;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}else if(fixedType==='right'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);}else{(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}if(intoRunScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const $xeTable=this;const $xeParentTable=$xeTable.$xeParentTable;const tableProps=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}// 如果滚轮未移动或者触摸板未变化位置
|
|
766
|
-
if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=tableProps;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=$xeTable.computeRowOpts;const scrollbarXOpts=$xeTable.computeScrollbarXOpts;const scrollbarYOpts=$xeTable.computeScrollbarYOpts;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(
|
|
766
|
+
if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=tableProps;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=$xeTable.computeRowOpts;const scrollbarXOpts=$xeTable.computeScrollbarXOpts;const scrollbarYOpts=$xeTable.computeScrollbarYOpts;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(internalData.lastSTime);const deltaTop=shiftKey?0:deltaY*wheelSpeed;const deltaLeft=(shiftKey?deltaX||deltaY:deltaX)*wheelSpeed;const currScrollTop=bodyScrollElem.scrollTop;const currScrollLeft=bodyScrollElem.scrollLeft;const scrollTop=currScrollTop+deltaTop;const scrollLeft=currScrollLeft+deltaLeft;const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;if(isRollX){// 如果禁用滚动
|
|
767
767
|
if(scrollbarXOpts.visible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
|
|
768
768
|
if(scrollbarYOpts.visible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
769
769
|
if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}}// 展开行处理,如果展开行嵌入表格中
|
|
@@ -779,7 +779,7 @@ if(expandColumn&&rowExpandedMaps[rowid]){sYHeight+=rowRest.expandHeight||expandO
|
|
|
779
779
|
let ySpaceHeight=sYHeight;let scrollYTop=ySpaceTop;if(isScrollYBig){// 触底
|
|
780
780
|
if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHeight){scrollYTop=maxYHeight-bodyTableElem.clientHeight;}else{scrollYTop=(maxYHeight-clientHeight)*(ySpaceTop/(scrollYHeight-clientHeight));}ySpaceHeight=maxYHeight;}if(!(scrollYLoad&&overflowY)){scrollYTop=0;}if(getConfig().scrollMarginStyle){if(leftBodyTableElem){leftBodyTableElem.style.marginTop=`${scrollYTop}px`;}if(bodyTableElem){bodyTableElem.style.marginTop=`${scrollYTop}px`;}if(rightbodyTableElem){rightbodyTableElem.style.marginTop=`${scrollYTop}px`;}}else{if(leftBodyTableElem){leftBodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}if(bodyTableElem){bodyTableElem.style.transform=`translate(${reactData.scrollXLeft||0}px, ${scrollYTop}px)`;}if(rightbodyTableElem){rightbodyTableElem.style.transform=`translate(0px, ${scrollYTop}px)`;}}containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const ySpaceElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-ySpace`]);if(ySpaceElem){ySpaceElem.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}});});const scrollYSpaceEl=$xeTable.$refs.refScrollYSpaceElem;if(scrollYSpaceEl){scrollYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}const rowExpandYSpaceEl=$xeTable.$refs.refRowExpandYSpaceElem;if(rowExpandYSpaceEl){rowExpandYSpaceEl.style.height=ySpaceHeight?`${ySpaceHeight}px`:'';}reactData.scrollYTop=scrollYTop;reactData.scrollYHeight=ySpaceHeight;reactData.isScrollYBig=isScrollYBig;calcScrollbar($xeTable);if(isScrollYBig&&mouseOpts.area){(0,_log.errLog)('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSYSpace){$xeGanttView.handleUpdateSYSpace();}return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},updateScrollYStatus(){const $xeTable=this;return updateScrollYStatus($xeTable);},/**
|
|
781
781
|
* 如果有滚动条,则滚动到对应的位置
|
|
782
|
-
*/scrollTo(scrollLeft,scrollTop){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;if(scrollLeft){if(!_xeUtils.default.isNumber(scrollLeft)){scrollTop=scrollLeft.top;scrollLeft=scrollLeft.left;}}if(_xeUtils.default.isNumber(scrollLeft)){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);loadScrollXData($xeTable);}if(_xeUtils.default.isNumber(scrollTop)){(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);loadScrollYData($xeTable);}return new Promise(resolve=>{setTimeout(()=>{$xeTable.$nextTick(()=>{internalData.intoRunScroll=false;resolve();});},reactData.scrollXLoad||reactData.scrollYLoad?30:0);});},/**
|
|
782
|
+
*/scrollTo(scrollLeft,scrollTop){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;if(scrollLeft){if(!_xeUtils.default.isNumber(scrollLeft)){scrollTop=scrollLeft.top;scrollLeft=scrollLeft.left;}}if(_xeUtils.default.isNumber(scrollLeft)){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(reactData.scrollXLoad){loadScrollXData($xeTable);}}if(_xeUtils.default.isNumber(scrollTop)){(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);if(reactData.scrollYLoad){loadScrollYData($xeTable);}}return new Promise(resolve=>{setTimeout(()=>{$xeTable.$nextTick(()=>{internalData.intoRunScroll=false;resolve();});},reactData.scrollXLoad||reactData.scrollYLoad?30:0);});},/**
|
|
783
783
|
* 如果有滚动条,则滚动到对应的行
|
|
784
784
|
* @param {Row} row 行对象
|
|
785
785
|
* @param {ColumnInfo} column 列配置
|