UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 3.86 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _conf=_interopRequireDefault(require("../../conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default={name:"VxeTableFilter",props:{filterStore:Object},computed:{hasCheckOption:function(){var e=this.filterStore;return e&&e.options.some(function(e){return e.checked})}},render:function(e){var t=this.$parent,i=this.filterStore,l=i.column,n=l?l.filterRender:null,c=n?_vXETable.default.renderer.get(n.name):null;return e("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",c&&c.className?c.className:"",{"t--animat":t.animat,"is--multiple":i.multiple,"filter--active":i.visible}],style:i.style},i.visible?this.renderOptions(e,n,c).concat(this.renderFooter(e)):[])},methods:{renderOptions:function(e,t,i){var l=this,n=this.$parent,c=this.filterStore,r=c.args,o=c.column,s=c.multiple,a=o.slots;return a&&a.filter?[e("div",{class:"vxe-table--filter-template"},a.filter.call(n,Object.assign({$panel:this,context:this},r),e))]:i&&i.renderFilter?[e("div",{class:"vxe-table--filter-template"},i.renderFilter.call(n,e,t,Object.assign({$panel:this,context:this},r)))]:[e("ul",{class:"vxe-table--filter-header"},[e("li",{class:["vxe-table--filter-option",{"is--checked":s?c.isAllSelected:!c.options.some(function(e){return e._checked}),"is--indeterminate":s&&c.isIndeterminate}],attrs:{title:_conf.default.i18n(s?"vxe.table.allTitle":"vxe.table.allFilter")},on:{click:function(e){l.changeAllOption(e,!c.isAllSelected)}}},(s?[e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})]:[]).concat([e("span",{class:"vxe-checkbox--label"},_conf.default.i18n("vxe.table.allFilter"))]))]),e("ul",{class:"vxe-table--filter-body"},c.options.map(function(t){return e("li",{class:["vxe-table--filter-option",{"is--checked":t._checked}],attrs:{title:t.label},on:{click:function(e){l.changeOption(e,!t._checked,t)}}},(s?[e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})]:[]).concat([e("span",{class:"vxe-checkbox--label"},_tools.UtilTools.formatText(t.label,1))]))}))]},renderFooter:function(e){var t=this.hasCheckOption,i=this.filterStore,l=i.column,n=i.multiple,c=l.filterRender,r=c?_vXETable.default.renderer.get(c.name):null,o=!t&&!i.isAllSelected&&!i.isIndeterminate;return!n||r&&!1===r.isFooter?[]:[e("div",{class:"vxe-table--filter-footer"},[e("button",{class:{"is--disabled":o},attrs:{disabled:o},on:{click:this.confirmFilter}},_conf.default.i18n("vxe.table.confirmFilter")),e("button",{on:{click:this.resetFilter}},_conf.default.i18n("vxe.table.resetFilter"))])]},filterCheckAllEvent:function(e,t){var i=this.filterStore;i.options.forEach(function(e){e._checked=t,e.checked=t}),i.isAllSelected=t,i.isIndeterminate=!1},changeRadioOption:function(e,t,i){var l=this.$parent;this.filterStore.options.forEach(function(e){e._checked=!1}),i._checked=t,l.checkFilterOptions(),this.confirmFilter(e)},changeMultipleOption:function(e,t,i){var l=this.$parent;i._checked=t,l.checkFilterOptions()},changeAllOption:function(e,t){this.filterStore.multiple?this.filterCheckAllEvent(e,t):this.resetFilter(e)},changeOption:function(e,t,i){this.filterStore.multiple?this.changeMultipleOption(e,t,i):this.changeRadioOption(e,t,i)},confirmFilter:function(e){var t=this.$parent;this.filterStore.options.forEach(function(e){e.checked=e._checked}),t.confirmFilterEvent(e)},resetFilter:function(e){this.$parent.resetFilterEvent(e)}}};exports.default=_default;