vxe-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
1 lines • 3.57 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_tools=require("../../tools"),_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:{_setFilter:function(e,t){e=(0,_util.handleFieldOrColumn)(this,e);return e&&e.filters&&t&&(e.filters=_tools.UtilTools.getFilters(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,n,t){var f,a,i,l,r,c,u=this,h=this.filterStore;h.column===n&&h.visible?h.visible=!1:(f=e.target,a=e.pageX,i=n.filters,l=n.filterMultiple,e=(e=n.filterRender)?_vXETable.default.renderer.get(e.name):null,r=n.filterRecoverMethod||(e?e.filterRecoverMethod:null),c=_tools.DomTools.getDomNode().visibleWidth,Object.assign(h,{args:t,multiple:l,options:i,column:n,style:null,visible:!0}),h.options.forEach(function(e){var t=e._checked,i=e.checked;(e._checked=i)||t===i||r&&r({option:e,column:n,$table:u})}),this.checkFilterOptions(),this.initStore.filter=!0,this.$nextTick(function(){var e,t,i=u.$refs,l=i.tableBody.$el,r=i.filterWrapper.$el.offsetWidth,o=r/2,s=l.clientWidth-r-10,i={top:"".concat(f.offsetTop+f.offsetParent.offsetTop+f.offsetHeight+8,"px")};"left"===n.fixed?e=f.offsetLeft+f.offsetParent.offsetLeft-o:"right"===n.fixed?t=f.offsetParent.offsetWidth-f.offsetLeft+(f.offsetParent.offsetParent.offsetWidth-f.offsetParent.offsetLeft)-n.renderWidth-o:e=f.offsetLeft+f.offsetParent.offsetLeft-o-l.scrollLeft,e?(0<(l=a+r-o+10-c)&&(e-=l),i.left="".concat(Math.min(s,Math.max(10,e)),"px")):t&&(0<(o=a+r-o+10-c)&&(t+=o),i.right="".concat(Math.max(10,t),"px")),h.style=i}))},_getCheckedFilters:function(){var e=this.visibleColumn,o=[];return e.filter(function(e){var t=e.property,i=e.filters,l=[],r=[];i&&i.length&&(i.forEach(function(e){e.checked&&(l.push(e.value),r.push(e.data))}),l.length&&o.push({column:e,property:t,values:l,datas:r}))}),o},confirmFilterEvent:function(e){var t=this,i=this.filterStore,l=this.filterOpts,r=this.scrollXLoad,o=this.scrollYLoad,s=i.column,n=s.property,f=[],a=[];s.filters.forEach(function(e){e.checked&&(f.push(e.value),a.push(e.data))}),i.visible=!1;i=this.getCheckedFilters();l.remote||(this.handleTableData(!0),this.checkSelectionStatus()),this.emitEvent("filter-change",{column:s,property:n,values:f,datas:a,filters:i,filterList:i},e),this.updateFooter(),(r||o)&&(this.clearScroll(),o&&this.updateScrollYSpace()),this.closeFilter(),this.$nextTick(function(){t.recalculate(),t.updateCellAreas()})},handleClearFilter:function(e){var t,i,l;e&&(t=e.filters,i=e.filterRender,t&&(i=i?_vXETable.default.renderer.get(i.name):null,l=e.filterResetMethod||(i?i.filterResetMethod:null),t.forEach(function(e){e._checked=!1,e.checked=!1,l||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),l&&l({options:t,column:e,$table:this})))},resetFilterEvent:function(e){this.handleClearFilter(this.filterStore.column),this.confirmFilterEvent(e)},_clearFilter:function(e){var t,i=this.filterStore;return e?(t=(0,_util.handleFieldOrColumn)(this,e))&&this.handleClearFilter(t):this.visibleColumn.forEach(this.handleClearFilter),e&&t===i.column||Object.assign(i,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),this.updateData()}}};exports.default=_default;