vxe-table 3.19.8 → 3.19.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/style.css +1 -1
- package/es/table/src/column.js +6 -0
- package/es/table/src/columnInfo.js +3 -0
- package/es/table/src/header.js +1 -7
- package/es/table/src/methods.js +105 -43
- package/es/table/src/table.js +2 -10
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +122 -65
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/column.js +6 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +3 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/header.js +1 -7
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +109 -46
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +1 -10
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/table/src/column.ts +8 -0
- package/packages/table/src/columnInfo.ts +5 -0
- package/packages/table/src/header.ts +2 -8
- package/packages/table/src/methods.ts +108 -47
- package/packages/table/src/table.ts +2 -10
- /package/es/{iconfont.1762324067655.ttf → iconfont.1762412469745.ttf} +0 -0
- /package/es/{iconfont.1762324067655.woff → iconfont.1762412469745.woff} +0 -0
- /package/es/{iconfont.1762324067655.woff2 → iconfont.1762412469745.woff2} +0 -0
- /package/lib/{iconfont.1762324067655.ttf → iconfont.1762412469745.ttf} +0 -0
- /package/lib/{iconfont.1762324067655.woff → iconfont.1762412469745.woff} +0 -0
- /package/lib/{iconfont.1762324067655.woff2 → iconfont.1762412469745.woff2} +0 -0
|
@@ -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,Boolean],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});
|
|
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,Boolean],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});
|
|
@@ -141,6 +141,9 @@ class ColumnInfo {
|
|
|
141
141
|
titlePrefix: _vm.titlePrefix,
|
|
142
142
|
titleSuffix: _vm.titleSuffix,
|
|
143
143
|
aggFunc: _vm.aggFunc,
|
|
144
|
+
copyMethod: _vm.copyMethod,
|
|
145
|
+
cutMethod: _vm.cutMethod,
|
|
146
|
+
pasteMethod: _vm.pasteMethod,
|
|
144
147
|
// 自定义参数
|
|
145
148
|
params: _vm.params,
|
|
146
149
|
// 渲染属性
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats,renderer}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats,renderer}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d=e,n=e.$xeGrid,a=e.$xeGantt,s=n||a,{field:u,editRender:f,filterRender:g}=r,c=r.colId||_xeUtils.default.uniqueId("col_"),h=n?n.computeProxyOpts:null,p=r.formatter,m=!_xeUtils.default.isBoolean(r.visible)||r.visible,x=(0,_utils.isEnableConf)(g)?renderer.get(g.name):null,x=x?x.createTableFilterOptions:null,F=(0,_util.toFilters)(r.filters,c),_=["seq","checkbox","radio","expand","html"];r.type&&-1===_.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,_.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(_=d.treeConfig,_)&&(e.treeOpts.showLine||e.treeOpts.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),r.remoteSort&&(0,_log.warnLog)("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),r.sortMethod&&(0,_log.warnLog)("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),p&&(_xeUtils.default.isString(p)?(d=formats.get(p)||_xeUtils.default[p])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[p]):!_xeUtils.default.isArray(p)||(_=formats.get(p[0])||_xeUtils.default[p[0]])&&_xeUtils.default.isFunction(_.tableCellFormatMethod||_.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[p[0]])),r.aggFunc&&!e.handlePivotTableAggregateData&&!0!==r.aggFunc&&(0,_log.errLog)("vxe.error.errProp",["column.agg-func="+r.aggFunc,"column.agg-func=true"]),u&&f&&(f.startField&&0<=(""+f.startField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.startField="+f.startField]),f.endField)&&0<=(""+f.endField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.endField="+f.endField]),Object.assign(this,{type:r.type,property:r.field,field:u,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:p,headerFormatter:r.headerFormatter,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,sortMethod:r.sortMethod,remoteSort:r.remoteSort,filters:F,filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:g,floatingFilters:r.floatingFilters,rowGroupNode:r.rowGroupNode,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:f,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,aggFunc:r.aggFunc,copyMethod:r.copyMethod,cutMethod:r.cutMethod,pasteMethod:r.pasteMethod,params:r.params,id:c,parentId:null,visible:m,defaultParentId:null,halfVisible:!1,defaultVisible:m,defaultFixed:r.fixed,defaultAggGroup:r.aggGroup,defaultAggFunc:r.aggFunc,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderAggFn:"",renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:o||r.renderCell,renderFooter:l||r.renderFooter,renderData:i,slots:r.slots}),!x||F&&F.length||(this.filters=(0,_util.toFilters)(x({$table:e,column:this}),c)),s&&h&&h.beforeColumn&&h.beforeColumn({$table:e,$grid:n,$gantt:a,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
|
package/lib/table/src/header.js
CHANGED
|
@@ -375,13 +375,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
375
375
|
colid
|
|
376
376
|
},
|
|
377
377
|
class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
|
|
378
|
-
}, flSlot ? $xeTable.callSlot(flSlot, cellParams, h) : rtFloatingFilter && firstFilterOption ? (0, _vn.getSlotVNs)(rtFloatingFilter.call($xeTable, h, filterRender,
|
|
379
|
-
$table: $xeTable,
|
|
380
|
-
option: firstFilterOption,
|
|
381
|
-
column: column,
|
|
382
|
-
columnIndex,
|
|
383
|
-
$columnIndex
|
|
384
|
-
})) : [])])]);
|
|
378
|
+
}, flSlot ? $xeTable.callSlot(flSlot, cellParams, h) : rtFloatingFilter && firstFilterOption ? (0, _vn.getSlotVNs)(rtFloatingFilter.call($xeTable, h, filterRender, cellParams)) : [])])]);
|
|
385
379
|
});
|
|
386
380
|
}
|
|
387
381
|
function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
|
|
@@ -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"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}function renderRows(D,e,R,
|
|
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"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}function renderRows(D,e,R,F,l,I,O){let k=e.$parent,z=k.$xeGrid,A=k.$xeGantt;var r=k,t=k,a=k;let U=e.fixedType,{resizable:L,columnKey:G,showCustomHeader:X,headerCellClassName:q,headerCellStyle:M,showHeaderOverflow:N,headerAlign:W,align:B,mouseConfig:V}=r,{currentColumn:K,dragCol:P,scrollXLoad:j,scrollYLoad:Y,overflowX:J,mergeHeadFlag:de,tableColumn:ne}=t,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:oe,mergeHeaderCellMaps:se}=a,ue=k.computeVirtualXOpts,ee=k.computeColumnOpts,le=k.computeColumnDragOpts,ce=k.computeCellOpts;e=k.computeDefaultRowHeight;let re=k.computeHeaderCellOpts,te=(0,_util.getCalcHeight)(re.height)||e,{disabledMethod:ae,isCrossDrag:pe,isPeerDrag:ge}=le,ie=I===l.length-1;return O.map((e,l)=>{var{type:r,showHeaderOverflow:t,headerAlign:a,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,c=Q[u]||{},o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=J&&!o&&(U?e.fixed!==U:!!e.fixed),g=(_xeUtils.default.isBoolean(re.padding)?re:ce).padding,t=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?N:t,a=a||(s?s.tableHeaderCellAlign:"")||W||i||(s?s.tableCellAlign:"")||B,i="ellipsis"===t,s="title"===t,t=!0===t||"tooltip"===t,f=s||t||i;let h=!1,m=null;d&&(m=d[0],h=d.some(e=>e.checked));var x=c.index,c=X?l:c._index;let v={$table:k,$grid:z,$gantt:A,$rowIndex:I,column:e,columnIndex:x,$columnIndex:l,_columnIndex:c,firstFilterOption:m,fixed:U,source:sourceType,type:renderType,isHidden:p,hasFilter:h};x={colid:u};let C=!1;if(X||(x.colspan=1<e.colSpan?e.colSpan:null,x.rowspan=1<e.rowSpan?e.rowSpan:null),de&&oe.length&&(X||ie)){var b=se[I+":"+(X?l:c)];if(b){var{rowspan:b,colspan:w}=b;if(!b||!w)return null;1<b&&(C=!0,x.rowspan=b),1<w&&(C=!0,x.colspan=w)}}b={click:e=>k.triggerHeaderCellClickEvent(e,v),dblclick:e=>k.triggerHeaderCellDblclickEvent(e,v)},w=ee.drag&&"cell"===le.trigger;let H=!1;w&&(H=!(!ae||!ae(v))),(V||w)&&(b.mousedown=e=>k.triggerHeaderCellMousedownEvent(e,v)),ee.drag&&(b.dragstart=k.handleHeaderCellDragDragstartEvent,b.dragend=k.handleHeaderCellDragDragendEvent,b.dragover=k.handleHeaderCellDragDragoverEvent,w)&&(b.mouseup=k.handleHeaderCellDragMouseupEvent);var w=l===O.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:ee.resizable||L,_=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let $=!1;!F||!J||R||C||P&&P.id===u||j&&10<ne.length&&!e.fixed&&!ue.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&($=!0);var E,S,T,c={};return f?c.height=te+"px":c.minHeight=te+"px",X||o&&!ie&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],T=Q[E.id],S)&&T&&(c.width=T.oLeft-S.oLeft+E.renderWidth+"px"),D("th",{class:["vxe-table--column vxe-header--column",u,p?"fixed--hidden":"fixed--visible",{["col--"+a]:a,["col--"+r]:r,"col--last":w,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":f,"fixed--width":!_,"is--padding":g,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":h,"is--drag-active":ee.drag&&!e.fixed&&!H&&(pe||ge||!e.parentId),"is--drag-disabled":ee.drag&&H,"col--current":K===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(q,v)],attrs:x,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:b,key:X?""+u+l:G||j||Y||ee.useKey||ee.drag||o?u:l},[D("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":t,"c--ellipsis":i}],style:c},$||F&&p?[]:[D("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(D,v))]),p||!y||X&&!ie?renderEmptyElement(k):D("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>k.handleColResizeMousedownEvent(e,U,v),dblclick:e=>k.handleColResizeDblclickEvent(e,v)}})])})}function renderFilterRows(w,e,H,y){let _=e.$parent,$=_.$xeGrid,E=_.$xeGantt;var l=_,r=_,t=_;let S=e.fixedType,{showHeaderOverflow:T,headerAlign:D,align:R}=l,{currentColumn:F,overflowX:I}=r,O=t.fullColumnIdData,k=_.computeCellOpts;e=_.computeDefaultRowHeight;let z=_.computeHeaderCellOpts,A=(0,_util.getCalcHeight)(z.height)||e;return y.map((e,l)=>{var{type:r,showHeaderOverflow:t,headerAlign:a,align:i,filters:d,editRender:n,cellRender:o,floatingFilters:s,filterRender:u,slots:c}=e,p=e.id,g=O[p]||{},n=n||o,o=n?renderer.get(n.name):null,n=(0,_utils.isEnableConf)(u)?renderer.get(u.name):null,n=n?n.renderTableFloatingFilter:null,c=c?c.floatingFilter||c["floating-filter"]:null,f=I&&(S?e.fixed!==S:!!e.fixed),h=(_xeUtils.default.isBoolean(z.padding)?z:k).padding,t=_xeUtils.default.eqNull(t)?T:t,a=a||(o?o.tableHeaderCellAlign:"")||D||i||(o?o.tableCellAlign:"")||R,i="ellipsis"===t,o="title"===t,t=!0===t||"tooltip"===t,m=o||t||i;let x=!1,v=null;d&&(v=d[0],x=d.some(e=>e.checked));var d=g.index,g=g._index,d={$table:_,$grid:$,$gantt:E,column:e,columnIndex:d,$columnIndex:l,_columnIndex:g,option:v,fixed:S,source:sourceType,type:renderType,isHidden:f,hasFilter:x},g={colid:p},l=l===y.length-1,C=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width),b={};return m?b.height=A+"px":b.minHeight=A+"px",w("th",{class:["vxe-table--column vxe-header--column",p,f?"fixed--hidden":"fixed--visible",{["col--"+a]:a,["col--"+r]:r,"col--last":l,"col--fixed":e.fixed,"col--ellipsis":m,"fixed--width":!C,"is--padding":h,"is--sortable":e.sortable,"col--current":F===e}],key:p,attrs:g},[w("div",{class:["vxe-cell",{"c--title":o,"c--tooltip":t,"c--ellipsis":i}],style:b},H&&f&&!s?[]:[w("div",{attrs:{colid:p},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},c?_.callSlot(c,d,w):n&&v?(0,_vn.getSlotVNs)(n.call(_,w,u,d)):[])])])})}function renderHeads(t,a,i,d,n){let o=a.$parent;var e=o,l=o;let{fixedType:s,fixedColumn:r}=a,{headerRowClassName:u,headerRowStyle:c}=e;var e=l.visibleColumn,l=o.computeFloatingFilterOpts,p=n.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:renderType};return t("tr",{key:l,class:["vxe-header--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(t,a,i,d,n,l,e))});return l.enabled&&p.push(t("tr",{key:"ff",class:["vxe-header--row"]},renderFilterRows(t,a,d,d&&s?r:e))),p}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,t=l,a=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,e=e.mouseConfig,{isGroup:t,isColLoading:u,overflowX:c,scrollXLoad:p,dragCol:g}=t,{visibleColumn:a,fullColumnIdData:f}=a,h=l.computeMouseOpts;let m=s,x=o;s=l.computeIsHeaderRenderOptimize;return t?x=a:(s&&(u||!d&&c)||(x=a),d&&s&&(x=n||[]),m=[x]),d||t||p&&g&&2<x.length&&(u=f[g.id])&&(c=u._index,a=x[0],p=x[x.length-1],u=f[a.id],a=f[p.id],u)&&a&&(f=u._index,p=a._index,c<f?(x=[g].concat(x),m=[[g].concat(m[0])].concat(m.slice(1))):p<c&&(x=x.concat([g]),m=[m[0].concat([g])].concat(m.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:s?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},x.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,t,s,m))]),e&&h.area?r("div",{class:"vxe-table--cell-area",attrs:{xid:i}},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent,l=e.showCustomHeader,{collectColumn:r,visibleColumn:t}=e,a=this.tableGroupColumn,i=e.isGroup;let d=i?(0,_util.convertHeaderColumnToRows)(a):[],n=[];l&&1<d.length&&(n=(0,_util.convertHeaderToGridRows)(d),d=n),this.headerColumn=d,e.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:r,visibleColumn:t},null)}}};
|
package/lib/table/src/methods.js
CHANGED
|
@@ -2927,26 +2927,29 @@ const calcCellAutoHeight = ($xeTable, rowRest, wrapperEl) => {
|
|
|
2927
2927
|
scrollXLoad
|
|
2928
2928
|
} = reactData;
|
|
2929
2929
|
const wrapperElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);
|
|
2930
|
-
let colHeight =
|
|
2930
|
+
let colHeight = 0;
|
|
2931
2931
|
let firstCellStyle = null;
|
|
2932
2932
|
let topBottomPadding = 0;
|
|
2933
2933
|
for (let i = 0; i < wrapperElemList.length; i++) {
|
|
2934
2934
|
const wrapperElem = wrapperElemList[i];
|
|
2935
2935
|
const cellElem = wrapperElem.parentElement;
|
|
2936
|
+
const cellStyle = cellElem.style;
|
|
2937
|
+
const orHeight = cellStyle.height;
|
|
2938
|
+
if (!scrollXLoad) {
|
|
2939
|
+
cellStyle.height = '';
|
|
2940
|
+
}
|
|
2936
2941
|
if (!firstCellStyle) {
|
|
2937
|
-
const cellStyle = cellElem.style;
|
|
2938
|
-
const orHeight = cellStyle.height;
|
|
2939
|
-
if (!scrollXLoad) {
|
|
2940
|
-
cellStyle.height = '';
|
|
2941
|
-
}
|
|
2942
2942
|
firstCellStyle = getComputedStyle(cellElem);
|
|
2943
2943
|
topBottomPadding = firstCellStyle ? Math.ceil(_xeUtils.default.toNumber(firstCellStyle.paddingTop) + _xeUtils.default.toNumber(firstCellStyle.paddingBottom)) : 0;
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2944
|
+
}
|
|
2945
|
+
if (!scrollXLoad) {
|
|
2946
|
+
cellStyle.height = orHeight;
|
|
2947
2947
|
}
|
|
2948
2948
|
const cellHeight = wrapperElem ? wrapperElem.clientHeight : 0;
|
|
2949
|
-
colHeight =
|
|
2949
|
+
colHeight = Math.max(colHeight, Math.ceil(cellHeight + topBottomPadding));
|
|
2950
|
+
}
|
|
2951
|
+
if (scrollXLoad) {
|
|
2952
|
+
colHeight = Math.max(colHeight, rowRest.height);
|
|
2950
2953
|
}
|
|
2951
2954
|
return colHeight;
|
|
2952
2955
|
};
|
|
@@ -2972,7 +2975,7 @@ const calcCellHeight = $xeTable => {
|
|
|
2972
2975
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
2973
2976
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
2974
2977
|
const el = $xeTable.$refs.refElem;
|
|
2975
|
-
if (!isAllOverflow && (scrollYLoad || scrollXLoad || treeConfig && treeOpts.showLine)
|
|
2978
|
+
if (el && !isAllOverflow && (scrollYLoad || scrollXLoad || treeConfig && treeOpts.showLine)) {
|
|
2976
2979
|
const {
|
|
2977
2980
|
handleGetRowId
|
|
2978
2981
|
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
@@ -2982,7 +2985,7 @@ const calcCellHeight = $xeTable => {
|
|
|
2982
2985
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
2983
2986
|
if (rowRest) {
|
|
2984
2987
|
const height = calcCellAutoHeight($xeTable, rowRest, el);
|
|
2985
|
-
rowRest.height = Math.max(defaultRowHeight,
|
|
2988
|
+
rowRest.height = Math.max(defaultRowHeight, height);
|
|
2986
2989
|
}
|
|
2987
2990
|
el.removeAttribute('data-calc-row');
|
|
2988
2991
|
});
|
|
@@ -4480,8 +4483,8 @@ function updateHeight($xeTable) {
|
|
|
4480
4483
|
internalData.customHeight = calcTableHeight($xeTable, 'height');
|
|
4481
4484
|
internalData.customMinHeight = calcTableHeight($xeTable, 'minHeight');
|
|
4482
4485
|
internalData.customMaxHeight = calcTableHeight($xeTable, 'maxHeight');
|
|
4483
|
-
//
|
|
4484
|
-
if (reactData.scrollYLoad && !(internalData.customHeight || internalData.customMinHeight)) {
|
|
4486
|
+
// 如果启用虚拟滚动,纠正高度
|
|
4487
|
+
if (reactData.scrollYLoad && !(internalData.customHeight || internalData.customMinHeight || internalData.customMaxHeight)) {
|
|
4485
4488
|
internalData.customHeight = 300;
|
|
4486
4489
|
}
|
|
4487
4490
|
}
|
|
@@ -4971,6 +4974,28 @@ const Methods = {
|
|
|
4971
4974
|
}
|
|
4972
4975
|
return $xeTable.$nextTick();
|
|
4973
4976
|
},
|
|
4977
|
+
initData() {
|
|
4978
|
+
const $xeTable = this;
|
|
4979
|
+
const props = $xeTable;
|
|
4980
|
+
const reactData = $xeTable;
|
|
4981
|
+
const internalData = $xeTable;
|
|
4982
|
+
const {
|
|
4983
|
+
data
|
|
4984
|
+
} = props;
|
|
4985
|
+
loadTableData($xeTable, data || [], true).then(() => {
|
|
4986
|
+
if (data && data.length) {
|
|
4987
|
+
internalData.inited = true;
|
|
4988
|
+
internalData.initStatus = true;
|
|
4989
|
+
handleLoadDefaults($xeTable);
|
|
4990
|
+
}
|
|
4991
|
+
handleInitDefaults($xeTable);
|
|
4992
|
+
updateStyle($xeTable);
|
|
4993
|
+
if (!reactData.isAllOverflow) {
|
|
4994
|
+
calcCellHeight($xeTable);
|
|
4995
|
+
updateRowOffsetTop($xeTable);
|
|
4996
|
+
}
|
|
4997
|
+
});
|
|
4998
|
+
},
|
|
4974
4999
|
/**
|
|
4975
5000
|
* 加载表格数据
|
|
4976
5001
|
* @param {Array} datas 数据
|
|
@@ -5134,7 +5159,9 @@ const Methods = {
|
|
|
5134
5159
|
tableFullData,
|
|
5135
5160
|
tableFullTreeData,
|
|
5136
5161
|
tableFullGroupData,
|
|
5137
|
-
treeExpandedMaps
|
|
5162
|
+
treeExpandedMaps,
|
|
5163
|
+
rowExpandedMaps,
|
|
5164
|
+
selectCheckboxMaps
|
|
5138
5165
|
} = internalData;
|
|
5139
5166
|
const fullAllDataRowIdMaps = isReset ? {} : Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
5140
5167
|
const fullDataRowIdMaps = {};
|
|
@@ -5174,6 +5201,13 @@ const Methods = {
|
|
|
5174
5201
|
rowRest.level = level;
|
|
5175
5202
|
rowRest.index = currIndex;
|
|
5176
5203
|
rowRest.treeIndex = index;
|
|
5204
|
+
// 更新缓存
|
|
5205
|
+
if (selectCheckboxMaps[rowid]) {
|
|
5206
|
+
selectCheckboxMaps[rowid] = row;
|
|
5207
|
+
}
|
|
5208
|
+
if (rowExpandedMaps[rowid]) {
|
|
5209
|
+
rowExpandedMaps[rowid] = row;
|
|
5210
|
+
}
|
|
5177
5211
|
idMaps[rowid] = true;
|
|
5178
5212
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
5179
5213
|
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
@@ -13092,14 +13126,27 @@ const Methods = {
|
|
|
13092
13126
|
if (!(scrollXLoad && overflowX)) {
|
|
13093
13127
|
xSpaceLeft = 0;
|
|
13094
13128
|
}
|
|
13095
|
-
if (
|
|
13096
|
-
|
|
13097
|
-
|
|
13098
|
-
|
|
13099
|
-
|
|
13100
|
-
|
|
13101
|
-
|
|
13102
|
-
|
|
13129
|
+
if (getConfig().scrollMarginStyle) {
|
|
13130
|
+
// 已废弃方式
|
|
13131
|
+
if (headerTableElem) {
|
|
13132
|
+
headerTableElem.style.marginLeft = headerTableElem.getAttribute('xvm') ? `${xSpaceLeft}px` : '';
|
|
13133
|
+
}
|
|
13134
|
+
if (bodyTableElem) {
|
|
13135
|
+
bodyTableElem.style.marginLeft = `${xSpaceLeft}px`;
|
|
13136
|
+
}
|
|
13137
|
+
if (footerTableElem) {
|
|
13138
|
+
footerTableElem.style.marginLeft = footerTableElem.getAttribute('xvm') ? `${xSpaceLeft}px` : '';
|
|
13139
|
+
}
|
|
13140
|
+
} else {
|
|
13141
|
+
if (headerTableElem) {
|
|
13142
|
+
headerTableElem.style.transform = headerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : '';
|
|
13143
|
+
}
|
|
13144
|
+
if (bodyTableElem) {
|
|
13145
|
+
bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`;
|
|
13146
|
+
}
|
|
13147
|
+
if (footerTableElem) {
|
|
13148
|
+
footerTableElem.style.transform = footerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : '';
|
|
13149
|
+
}
|
|
13103
13150
|
}
|
|
13104
13151
|
const containerList = ['main'];
|
|
13105
13152
|
containerList.forEach(name => {
|
|
@@ -13186,22 +13233,26 @@ const Methods = {
|
|
|
13186
13233
|
ySpaceTop = Math.max(0, startIndex * defaultRowHeight);
|
|
13187
13234
|
} else {
|
|
13188
13235
|
const firstRow = afterFullData[startIndex];
|
|
13189
|
-
|
|
13190
|
-
|
|
13191
|
-
|
|
13192
|
-
|
|
13193
|
-
|
|
13194
|
-
|
|
13195
|
-
|
|
13196
|
-
|
|
13197
|
-
|
|
13198
|
-
|
|
13199
|
-
|
|
13200
|
-
|
|
13236
|
+
if (firstRow) {
|
|
13237
|
+
let rowid = (0, _util.getRowid)($xeTable, firstRow);
|
|
13238
|
+
let rowRest = fullAllDataRowIdData[rowid] || {};
|
|
13239
|
+
ySpaceTop = rowRest.oTop || 0;
|
|
13240
|
+
const lastRow = afterFullData[afterFullData.length - 1];
|
|
13241
|
+
rowid = (0, _util.getRowid)($xeTable, lastRow);
|
|
13242
|
+
rowRest = fullAllDataRowIdData[rowid] || {};
|
|
13243
|
+
// 如果为空时还没计算完数据,保持原高度不变
|
|
13244
|
+
if (rowRest.oTop) {
|
|
13245
|
+
sYHeight = (rowRest.oTop || 0) + (rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight);
|
|
13246
|
+
// 是否展开行
|
|
13247
|
+
if (expandColumn && rowExpandedMaps[rowid]) {
|
|
13248
|
+
sYHeight += rowRest.expandHeight || expandOpts.height || 0;
|
|
13249
|
+
}
|
|
13201
13250
|
}
|
|
13202
|
-
|
|
13203
|
-
|
|
13204
|
-
|
|
13251
|
+
if (sYHeight > maxYHeight) {
|
|
13252
|
+
isScrollYBig = true;
|
|
13253
|
+
}
|
|
13254
|
+
} else {
|
|
13255
|
+
sYHeight = bodyTableElem ? bodyTableElem.clientHeight : 0;
|
|
13205
13256
|
}
|
|
13206
13257
|
}
|
|
13207
13258
|
} else {
|
|
@@ -13228,14 +13279,26 @@ const Methods = {
|
|
|
13228
13279
|
if (!(scrollYLoad && overflowY)) {
|
|
13229
13280
|
scrollYTop = 0;
|
|
13230
13281
|
}
|
|
13231
|
-
if (
|
|
13232
|
-
|
|
13233
|
-
|
|
13234
|
-
|
|
13235
|
-
|
|
13236
|
-
|
|
13237
|
-
|
|
13238
|
-
|
|
13282
|
+
if (getConfig().scrollMarginStyle) {
|
|
13283
|
+
if (leftBodyTableElem) {
|
|
13284
|
+
leftBodyTableElem.style.marginTop = `${scrollYTop}px`;
|
|
13285
|
+
}
|
|
13286
|
+
if (bodyTableElem) {
|
|
13287
|
+
bodyTableElem.style.marginTop = `${scrollYTop}px`;
|
|
13288
|
+
}
|
|
13289
|
+
if (rightbodyTableElem) {
|
|
13290
|
+
rightbodyTableElem.style.marginTop = `${scrollYTop}px`;
|
|
13291
|
+
}
|
|
13292
|
+
} else {
|
|
13293
|
+
if (leftBodyTableElem) {
|
|
13294
|
+
leftBodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`;
|
|
13295
|
+
}
|
|
13296
|
+
if (bodyTableElem) {
|
|
13297
|
+
bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
|
|
13298
|
+
}
|
|
13299
|
+
if (rightbodyTableElem) {
|
|
13300
|
+
rightbodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`;
|
|
13301
|
+
}
|
|
13239
13302
|
}
|
|
13240
13303
|
containerList.forEach(name => {
|
|
13241
13304
|
const layoutList = ['header', 'body', 'footer'];
|