vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 4.15 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")),_vn=require("../../tools/vn");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,r=n?_vXETable.default.renderer.get(n.name):null,a=r?r.filterClassName:"";return e("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",r&&r.className?r.className:"",_utils.default.getClass(a,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,r).concat(this.renderFooter(e)):[])},methods:{renderOptions:function(i,e,t){var l=this,n=this.$parent,r=this.filterStore,a=r.args,o=r.column,c=r.multiple,s=r.maxHeight,o=o.slots;return o&&o.filter?[i("div",{class:"vxe-table--filter-template"},n.callSlot(o.filter,Object.assign({$panel:this,context:this},a),i))]:t&&t.renderFilter?[i("div",{class:"vxe-table--filter-template"},(0,_vn.getSlotVNs)(t.renderFilter.call(n,i,e,Object.assign({$panel:this,context:this},a))))]:(o=c?r.isAllSelected:!r.options.some(function(e){return e._checked}),t=c&&r.isIndeterminate,[i("ul",{class:"vxe-table--filter-header"},[i("li",{class:["vxe-table--filter-option",{"is--checked":o,"is--indeterminate":t}],attrs:{title:_conf.default.i18n(c?"vxe.table.allTitle":"vxe.table.allFilter")},on:{click:function(e){l.changeAllOption(e,!r.isAllSelected)}}},(c?[i("span",{class:["vxe-checkbox--icon",t?_conf.default.icon.TABLE_CHECKBOX_INDETERMINATE:o?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},_conf.default.i18n("vxe.table.allFilter"))]))]),i("ul",{class:"vxe-table--filter-body",style:s?{maxHeight:"".concat(s,"px")}:{}},r.options.map(function(t){var e=t._checked;return i("li",{class:["vxe-table--filter-option",{"is--checked":e}],attrs:{title:t.label},on:{click:function(e){l.changeOption(e,!t._checked,t)}}},(c?[i("span",{class:["vxe-checkbox--icon",e?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("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;