UNPKG

vxe-table-ro-test

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...

1 lines 3.6 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn");const{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(o){const c=(0,_vue.inject)("$xeTable",{}),{reactData:s,internalData:u,getComputeMaps:e}=c,v=e()["computeFilterOpts"],d=(0,_vue.computed)(()=>{var e=o["filterStore"];return e&&e.options.some(e=>e.checked)}),p=e=>{c.handleFilterConfirmFilter(e)};const _=e=>{c.handleFilterResetFilter(e)};const h=(e,t,l)=>{c.handleFilterChangeOption(e,t,l)},b=(e,t)=>{var l,i=o["filterStore"];i.multiple?(l=t,(i=o.filterStore).options.forEach(e=>{e._checked=l,e.checked=l}),i.isAllSelected=l,i.isIndeterminate=!1):_(e)},m={changeRadioOption:(e,t,l)=>{c.handleFilterChangeRadioOption(e,t,l)},changeMultipleOption:(e,t,l)=>{c.handleFilterChangeMultipleOption(e,t,l)},changeAllOption:b,changeOption:h,confirmFilter:p,resetFilter:_};return()=>{var e=o["filterStore"],t=s["initStore"],l=e["column"],i=l?l.filterRender:null,r=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null,a=r?r.tableFilterClassName||r.filterClassName:"",n=Object.assign({},u._currFilterParams,{$panel:m,$table:c});return(0,_vue.h)("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",(0,_dom.getPropClass)(a,n),{"is--animat":c.props.animat,"is--multiple":e.multiple,"is--active":e.visible}],style:e.style},t.filter&&l?((e,t)=>{const l=o["filterStore"],{column:i,multiple:r,maxHeight:a}=l;var n=i?i.slots:null,n=n?n.filter:null,s=Object.assign({},u._currFilterParams,{$panel:m,$table:c}),t=t?t.renderTableFilter||t.renderFilter:null;return n?[(0,_vue.h)("div",{class:"vxe-table--filter-template"},c.callSlot(n,s))]:t?[(0,_vue.h)("div",{class:"vxe-table--filter-template"},(0,_vn.getSlotVNs)(t(e,s)))]:(n=r?l.isAllSelected:!l.options.some(e=>e._checked),t=r&&l.isIndeterminate,[(0,_vue.h)("ul",{class:"vxe-table--filter-header"},[(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":n,"is--indeterminate":t}],title:getI18n(r?"vxe.table.allTitle":"vxe.table.allFilter"),onClick:e=>{b(e,!l.isAllSelected)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:n?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),(0,_vue.h)("ul",{class:"vxe-table--filter-body",style:a?{maxHeight:a+"px"}:{}},l.options.map(t=>{var e=t._checked;return(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":t._checked}],title:t.label,onClick:e=>{h(e,!t._checked,t)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])})(i,r).concat((()=>{var e=o["filterStore"],{column:t,multiple:l}=e,i=v.value,r=d.value,t=t["filterRender"],t=(0,_utils.isEnableConf)(t)?renderer.get(t.name):null,r=!r&&!e.isAllSelected&&!e.isIndeterminate;return l&&(!t||!1!==t.showTableFilterFooter&&!1!==t.showFilterFooter&&!1!==t.isFooter)?[(0,_vue.h)("div",{class:"vxe-table--filter-footer"},[(0,_vue.h)("button",{class:{"is--disabled":r},disabled:r,onClick:p},i.confirmButtonText||getI18n("vxe.table.confirmFilter")),(0,_vue.h)("button",{onClick:_},i.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]})()):[])}}});