yw-common-list
Version:
基于vxe-table封装的自定义可配置表格
1 lines • 4.19 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_utils=_interopRequireDefault(require("../../tools/utils")),_xeUtils=_interopRequireDefault(require("xe-utils"));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.args,n=i.column,n=n?n.filterRender:null,c=n?_vXETable.default.renderer.get(n.name):null,r=c?c.filterClassName:"";return e("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",c&&c.className?c.className:"",_utils.default.getClass(r,Object.assign({$panel:this,$table:t},l)),{"is--animat":t.animat,"is--multiple":i.multiple,"is--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=c.maxHeight,o=o.slots;return o&&o.filter?[e("div",{class:"vxe-table--filter-template"},n.callSlot(o.filter,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",style:a?{maxHeight:"".concat(a,"px")}:{}},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"},_utils.default.formatText(t.label,1))]))}))]},renderFooter:function(e){var t=this.hasCheckOption,i=this.filterStore,l=i.column,n=i.multiple,l=l.filterRender,l=l?_vXETable.default.renderer.get(l.name):null,t=!t&&!i.isAllSelected&&!i.isIndeterminate;return!n||l&&(_xeUtils.default.isBoolean(l.showFilterFooter)?!1===l.showFilterFooter:!1===l.isFooter)?[]:[e("div",{class:"vxe-table--filter-footer"},[e("button",{class:{"is--disabled":t},attrs:{disabled:t},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;