vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 4.51 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_dom=_interopRequireDefault(require("../../tools/dom")),_util=require("../../table/src/util"),_vXETable=_interopRequireDefault(require("../../v-x-e-table"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default={methods:{_openFilter:function(e){var t,l,i=(0,_util.handleFieldOrColumn)(this,e);return i&&i.filters?(t=this.elemStore,l=i.fixed,this.scrollToColumn(i).then(function(){var e=t["".concat(l||"main","-header-wrapper")]||t["main-header-wrapper"];e&&(e=e.querySelector(".vxe-header--column.".concat(i.id," .vxe-filter--btn")),_dom.default.triggerEvent(e,"click"))})):this.$nextTick()},_setFilter:function(e,t){e=(0,_util.handleFieldOrColumn)(this,e);return e&&e.filters&&t&&(e.filters=(0,_util.toFilters)(t)),this.$nextTick()},checkFilterOptions:function(){var e=this.filterStore;e.isAllSelected=e.options.every(function(e){return e._checked}),e.isIndeterminate=!e.isAllSelected&&e.options.some(function(e){return e._checked})},triggerFilterEvent:function(e,u,t){var h,d,l,i,r,n,p,v=this,m=this.filterStore;m.column===u&&m.visible?m.visible=!1:(h=e.target,d=e.pageX,l=u.filters,i=u.filterMultiple,r=(r=u.filterRender)?_vXETable.default.renderer.get(r.name):null,n=u.filterRecoverMethod||(r?r.filterRecoverMethod:null),p=_dom.default.getDomNode().visibleWidth,Object.assign(m,{args:t,multiple:i,options:l,column:u,style:null,visible:!0}),m.options.forEach(function(e){var t=e._checked,l=e.checked;(e._checked=l)||t===l||n&&n({option:e,column:u,$table:v})}),this.checkFilterOptions(),this.initStore.filter=!0,this.$nextTick(function(){var e,t,l=v.$refs,i=l.tableBody.$el,l=l.filterWrapper.$el,r=0,n=0,o=null,f=null,l=(l&&(r=l.offsetWidth,n=l.offsetHeight,o=l.querySelector(".vxe-table--filter-header"),f=l.querySelector(".vxe-table--filter-footer")),r/2),s=i.clientWidth-r-10,a={top:"".concat(h.offsetTop+h.offsetParent.offsetTop+h.offsetHeight+8,"px")},c=null;n>=i.clientHeight&&(c=Math.max(60,i.clientHeight-(f?f.offsetHeight:0)-(o?o.offsetHeight:0))),"left"===u.fixed?e=h.offsetLeft+h.offsetParent.offsetLeft-l:"right"===u.fixed?t=h.offsetParent.offsetWidth-h.offsetLeft+(h.offsetParent.offsetParent.offsetWidth-h.offsetParent.offsetLeft)-u.renderWidth-l:e=h.offsetLeft+h.offsetParent.offsetLeft-l-i.scrollLeft,e?(0<(n=d+r-l+10-p)&&(e-=n),a.left="".concat(Math.min(s,Math.max(10,e)),"px")):t&&(0<(f=d+r-l+10-p)&&(t+=f),a.right="".concat(Math.max(10,t),"px")),m.style=a,m.maxHeight=c})),this.emitEvent("filter-visible",{column:u,field:u.field,property:u.field,filterList:this.getCheckedFilters(),visible:m.visible},e)},_getCheckedFilters:function(){var e=this.tableFullColumn,n=[];return e.forEach(function(e){var t=e.field,l=e.filters,i=[],r=[];l&&l.length&&(l.forEach(function(e){e.checked&&(i.push(e.value),r.push(e.data))}),i.length)&&n.push({column:e,field:t,property:t,values:i,datas:r})}),n},confirmFilterEvent:function(e){var l=this,t=this.filterStore,i=this.filterOpts,r=this.scrollXLoad,n=this.scrollYLoad,t=t.column,o=t.field,f=[],s=[],a=(t.filters.forEach(function(e){e.checked&&(f.push(e.value),s.push(e.data))}),this.getCheckedFilters());i.remote||(this.handleTableData(!0),this.checkSelectionStatus()),this.emitEvent("filter-change",{column:t,field:o,property:o,values:f,datas:s,filters:a,filterList:a},e),this.closeFilter(),this.updateFooter().then(function(){var e=l.scrollXLoad,t=l.scrollYLoad;if(r||e||n||t)return(r||e)&&l.updateScrollXSpace(),(n||t)&&l.updateScrollYSpace(),l.refreshScroll()}).then(function(){return l.updateCellAreas(),l.recalculate(!0)}).then(function(){setTimeout(function(){return l.recalculate()},50)})},handleClearFilter:function(e){var t,l,i;e&&(t=e.filters,l=e.filterRender,t)&&(l=l?_vXETable.default.renderer.get(l.name):null,i=e.filterResetMethod||(l?l.filterResetMethod:null),t.forEach(function(e){e._checked=!1,e.checked=!1,i||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),i)&&i({options:t,column:e,$table:this})},resetFilterEvent:function(e){this.handleClearFilter(this.filterStore.column),this.confirmFilterEvent(e)},_clearFilter:function(e){var t,l=this.filterStore;return e?(t=(0,_util.handleFieldOrColumn)(this,e))&&this.handleClearFilter(t):this.visibleColumn.forEach(this.handleClearFilter),e&&t===l.column||Object.assign(l,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),this.updateData()}}};exports.default=_default;