el-plus-powerful-table
Version:
## [DOCS](https://peng-xiao-shuai.github.io/vite-vue-admin-docs/zh-CN/component_directive/component/powerful-table-doc.html)
2 lines (1 loc) • 4.42 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("./style.css.js");const r=require("element-plus"),B=require("../../keys.js"),g=require("../../locale/lang.js"),V=require("../../locale/packages.js");function b(o){return typeof o=="function"||Object.prototype.toString.call(o)==="[object Object]"&&!t.isVNode(o)}const F=t.defineComponent({name:"PTBtnPlus",props:{btnConfig:{type:Object},headerList:Array,multipleSelection:{type:Array,default:()=>[]},isTable:Boolean},emits:["update:isTable","refresh","change"],setup(o,{emit:s,slots:u}){const p=t.inject(B.SizeSymbol),d=t.reactive({headerData:[],isPC:!0}),v=l=>l==="single"&&o.multipleSelection.length!==1||l==="batch"&&o.multipleSelection.length<1,N=()=>{},y=(l,e)=>{if(typeof e.click=="function"){e.click({btnItem:e,rows:o.multipleSelection});return}const n=()=>{if(l==="left")s("change",{effect:e.effect,rows:o.multipleSelection});else switch(e.effect){case"refresh":s("refresh");break;case"switch":s("update:isTable",!o.isTable);break;case"columns":break;default:s("change",{effect:e.effect,rows:o.multipleSelection});break}};if(typeof e.beforeClick!="function")return n(),!1;new Promise(a=>{e.beforeClick({btnItem:e,rows:o.multipleSelection},a)}).then(a=>{if(!a)return!1;n()})},C=t.watch(()=>o.headerList,l=>{l&&(d.headerData=l,d.headerData.forEach(e=>{e.defaultFilter=typeof e.defaultFilter=="boolean"?e.defaultFilter:e.isShowOrFilterColumn=="filter",e.defaultShow=typeof e.defaultShow>"u"?!0:e.defaultShow}))},{immediate:!0,deep:!0}),f=(l,e,n="left")=>{const a=t.createVNode(r.ElButton,t.mergeProps({class:[l.text?"":"no-margin",n==="left"?"btn-plus-left-item":"btn-plus-right-item"],size:p,style:l.style||{},disabled:l.disabled||v(l.operateType)},l.property,{onClick:()=>y(n,l)}),l.text?{default:()=>l.text}:{});return l.tip?t.createVNode(r.ElTooltip,{key:e,content:l.tip,class:"each",effect:"dark",placement:"top"},b(a)?a:{default:()=>[a]}):a},i=l=>l?l.filter(e=>typeof e.showBtn=="function"?e.showBtn():e.showBtn===void 0?!0:e.showBtn):[],k=(l,e)=>({default:()=>{let n;return t.createVNode("div",{class:"popover-table"},[t.createVNode("div",{class:"popover-table-row popover-table-header"},[t.createVNode("div",{class:"popover-table-row-label"},[g.t(V.LangKey.ColumnName)]),t.createVNode("div",{class:"checkbox"},[g.t(V.LangKey.Hidden)]),t.createVNode("div",{class:"checkbox"},[g.t(V.LangKey.Filter)])]),t.createVNode(r.ElScrollbar,{style:"height: 300px"},b(n=d.headerData.filter(a=>a.isShowOrFilterColumn!==!1).map((a,h)=>t.createVNode("div",{key:h,class:"popover-table-row"},[t.createVNode("div",{class:"popover-table-row-label"},[t.createVNode("span",{class:"line-1"},[a.label])]),t.createVNode("div",{class:"checkbox"},[t.createVNode(r.ElCheckbox,{modelValue:a.defaultShow,"onUpdate:modelValue":c=>a.defaultShow=c,class:"checkbox",disabled:!(a.isShowOrFilterColumn==="show"||a.isShowOrFilterColumn===void 0),size:p,onChange:()=>N()},null)]),t.createVNode("div",{class:"checkbox"},[t.createVNode(r.ElCheckbox,{modelValue:a.defaultFilter,"onUpdate:modelValue":c=>a.defaultFilter=c,class:"checkbox",disabled:!(a.isShowOrFilterColumn==="filter"||a.isShowOrFilterColumn===void 0),size:p,onChange:()=>N()},null)])])))?n:{default:()=>[n]})])},reference:()=>t.createVNode("div",null,[f(l,e)])}),S=()=>{var l;return i((l=o.btnConfig)==null?void 0:l.btnRightList).map((e,n)=>{switch(e.effect){case"columns":return t.createVNode(r.ElPopover,{placement:"bottom",trigger:"click",width:"250","hide-after":0,"popper-style":"padding: 0"},k(e,n));default:return f(e,n,"right")}})};return t.onBeforeUnmount(()=>{C()}),()=>{var n,a,h,c;let l,e;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:["pt-btn-plus",d.isPC?"cl-btn-plus":"cl-btn-plus-mobile"]},[u["btn-left"]?u["btn-left"]():i((n=o.btnConfig)==null?void 0:n.btnList).length>1?t.createVNode(r.ElButtonGroup,{class:"filter-item btn-plus-left"},b(l=i((a=o.btnConfig)==null?void 0:a.btnList).map((w,m)=>f(w,m)))?l:{default:()=>[l]}):t.createVNode("div",{class:"filter-item btn-plus-left"},[f(i((h=o.btnConfig)==null?void 0:h.btnList)[0],0)]),u["btn-right"]?u["btn-right"]():i((c=o.btnConfig)==null?void 0:c.btnRightList).length>1?t.createVNode(r.ElButtonGroup,{class:"filter-item btn-plus-right"},b(e=S())?e:{default:()=>[e]}):t.createVNode("div",{class:"filter-item btn-plus-right"},[S()])])])}}});exports.default=F;