yw-common-list
Version: 
基于vxe-table封装的自定义可配置表格
1 lines • 5.06 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_utils=_interopRequireDefault(require("../../tools/utils")),_dom=_interopRequireDefault(require("../../tools/dom"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}var cellType="footer";function mergeFooterMethod(e,t,l){for(var o=0;o<e.length;o++){var r=e[o],n=r.row,i=r.col,a=r.rowspan,r=r.colspan;if(-1<i&&-1<n&&a&&r){if(n===t&&i===l)return{rowspan:a,colspan:r};if(n<=t&&t<n+a&&i<=l&&l<i+r)return{rowspan:0,colspan:0}}}}var _default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted:function(){var e=this.$parent,t=this.$el,l=this.$refs,o=this.fixedType,e=e.elemStore,o="".concat(o||"main","-footer-");e["".concat(o,"wrapper")]=t,e["".concat(o,"table")]=l.table,e["".concat(o,"colgroup")]=l.colgroup,e["".concat(o,"list")]=l.tfoot,e["".concat(o,"xSpace")]=l.xSpace},destroyed:function(){var e=this.$parent,t=this.fixedType,e=e.elemStore,t="".concat(t||"main","-footer-");e["".concat(t,"wrapper")]=null,e["".concat(t,"table")]=null,e["".concat(t,"colgroup")]=null,e["".concat(t,"list")]=null,e["".concat(t,"xSpace")]=null},render:function(b){var e=this._e,_=this.$parent,h=this.fixedType,t=this.fixedColumn,w=this.tableColumn,T=this.footerTableData,$=_.$listeners,l=_.tId,o=_.footerRowClassName,C=_.footerCellClassName,r=_.footerRowStyle,S=_.footerCellStyle,I=_.footerAlign,F=_.mergeFooterList,L=_.footerSpanMethod,P=_.align,k=_.scrollXLoad,E=_.columnKey,O=_.columnOpts,q=_.showFooterOverflow,D=_.currentColumn,U=_.overflowX,n=_.scrollbarWidth,A=_.tooltipOpts,i=_.visibleColumn;return h&&(w=!k&&!q||F.length&&L?i:t),b("div",{class:["vxe-table--footer-wrapper",h?"fixed-".concat(h,"--wrapper"):"body--wrapper"],attrs:{xid:l},on:{scroll:this.scrollEvent}},[h?e():b("div",{class:"vxe-body--x-space",ref:"xSpace"}),b("table",{class:"vxe-table--footer",attrs:{xid:l,cellspacing:0,cellpadding:0,border:0},ref:"table"},[b("colgroup",{ref:"colgroup"},w.map(function(e,t){return b("col",{attrs:{name:e.id},key:t})}).concat(n?[b("col",{attrs:{name:"col_gutter"}})]:[])),b("tfoot",{ref:"tfoot"},T.map(function(v,g){var y=g;return b("tr",{class:["vxe-footer--row",o?_xeUtils.default.isFunction(o)?o({$table:_,_rowIndex:g,$rowIndex:y,fixed:h,type:cellType}):o:""],style:r?_xeUtils.default.isFunction(r)?r({$table:_,_rowIndex:g,$rowIndex:y,fixed:h,type:cellType}):r:null},w.map(function(t,e){var l=t.type,o=t.showFooterOverflow,r=t.footerAlign,n=t.align,i=t.footerClassName,a=A.showAll||A.enabled,c=t.children&&t.children.length,c=h?t.fixed!==h&&!c:t.fixed&&U,o=_xeUtils.default.isUndefined(o)||_xeUtils.default.isNull(o)?q:o,r=r||n||I||P,n="ellipsis"===o,s="title"===o,u=!0===o||"tooltip"===o,o=s||u||n,f={colid:t.id},d={},p=_.getColumnIndex(t),x=_.getVTColumnIndex(t),m={$table:_,_rowIndex:g,$rowIndex:y,column:t,columnIndex:p,$columnIndex:e,_columnIndex:x,itemIndex:x,items:v,fixed:h,type:cellType,data:T};if(k&&!o&&(n=o=!0),(s||u||a)&&(d.mouseenter=function(e){s?_dom.default.updateCellTitle(e.currentTarget,t):(u||a)&&_.triggerFooterTooltipEvent(e,m)}),(u||a)&&(d.mouseleave=function(e){(u||a)&&_.handleTargetLeaveEvent(e)}),$["footer-cell-click"]&&(d.click=function(e){_.emitEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)}),$["footer-cell-dblclick"]&&(d.dblclick=function(e){_.emitEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)}),F.length){var p=mergeFooterMethod(F,g,x);if(p){x=p.rowspan,p=p.colspan;if(!x||!p)return null;1<x&&(f.rowspan=x),1<p&&(f.colspan=p)}}else if(L){x=L(m)||{},p=x.rowspan,p=void 0===p?1:p,x=x.colspan,x=void 0===x?1:x;if(!p||!x)return null;1<p&&(f.rowspan=p),1<x&&(f.colspan=x)}return b("td",{class:["vxe-footer--column",t.id,(_defineProperty(p={},"col--".concat(r),r),_defineProperty(p,"col--".concat(l),l),_defineProperty(p,"col--last",e===w.length-1),_defineProperty(p,"fixed--hidden",c),_defineProperty(p,"col--ellipsis",o),_defineProperty(p,"col--current",D===t),p),_utils.default.getClass(i,m),_utils.default.getClass(C,m)],attrs:f,style:S?_xeUtils.default.isFunction(S)?S(m):S:null,on:d,key:E||O.useKey?t.id:e},[b("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":u,"c--ellipsis":n}]},t.renderFooter(b,m))])}).concat(n?[b("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])},methods:{scrollEvent:function(e){var t=this.$parent,l=this.fixedType,o=t.$refs,r=t.scrollXLoad,n=t.triggerScrollXEvent,i=t.lastScrollLeft,a=o.tableHeader,c=o.tableBody,s=o.tableFooter,o=o.validTip,a=a?a.$el:null,s=s?s.$el:null,c=c.$el,s=s?s.scrollLeft:0,i=s!==i;t.lastScrollLeft=s,t.lastScrollTime=Date.now(),a&&(a.scrollLeft=s),c&&(c.scrollLeft=s),r&&i&&n(e),i&&o&&o.visible&&o.updatePlacement(),t.emitEvent("scroll",{type:cellType,fixed:l,scrollTop:c.scrollTop,scrollLeft:s,isX:i,isY:!1},e)}}};exports.default=_default;