mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-08 01:17:23 +08:00
2 lines
3.5 KiB
JavaScript
2 lines
3.5 KiB
JavaScript
import{d as b,L as h,M as g,K as L,G as k,y as D,H as N,b as p,c as V,w as a,e as A,f as l,h as n,u as _,E as x,I as v,J as I}from"./index-3eff57df.js";const y=b({name:"ReTreeLine",props:{node:{type:Object,required:!0},data:{type:Array,default:()=>{}},treeData:{type:Array,default:()=>[]},indent:{type:Number,default:16},showLabelLine:{type:Boolean,default:!0}},setup(f,c){const{slots:o}=c;return{getScopedSlot:t=>{if(!t)return null;const d=t.split("||");let e=null;for(let s=0;s<d.length;s++){const i=d[s];e=(o||{})[i]}return e},getSlotValue:(t,d,e=null)=>g(t)?t(d)||e:t||e}},render(){const f=this.getScopedSlot("default"),c=this.getScopedSlot("node-label"),o=this.getScopedSlot("after-node-label"),m=f?this.getSlotValue(f,{node:this.node,data:this.data}):[c?this.getSlotValue(c,{node:this.node,data:this.data}):h("span",{class:"element-tree-node-label"},this.node.label),this.showLabelLine?h("span",{class:"element-tree-node-label-line"}):null,this.getSlotValue(o,{node:this.node,data:this.data})],r=[];let t=this.node;for(;t;){let e=t.parent;if(t.level===1&&!t.parent){if(!this.treeData||!Array.isArray(this.treeData))throw Error("if you using el-tree-v2 (Virtualized Tree) of element-plus,element-tree-line required data.");e={children:Array.isArray(this.treeData)?this.treeData.map(s=>({...s,key:s.id})):[],level:0,key:"node-0",parent:null}}if(e){const s=(e.children||e.childNodes).findIndex(i=>(i.key||i.id)===(t.key||t.id));r.unshift(s===(e.children||e.childNodes).length-1)}t=e}const d=[];for(let e=0;e<this.node.level;e++)d.push(h("span",{class:{"element-tree-node-line-ver":!0,"last-node-line":r[e]&&this.node.level-1!==e,"last-node-isLeaf-line":r[e]&&this.node.level-1===e},style:{left:this.indent*e+"px"}}));return h("span",{class:"element-tree-node-label-wrapper"},[m].concat(d).concat([h("span",{class:"element-tree-node-line-hor",style:{width:(this.node.isLeaf?24:8)+"px",left:(this.node.level-1)*this.indent+"px"}})]))}}),T=n("div",{class:"card-header"},[n("span",{class:"font-medium"}," 扩展elemenet-plus的树形组件包括虚拟树组件,支持连接线 ")],-1),q=n("div",{class:"card-header"},[n("span",{class:"font-medium"}," 普通树结构 ")],-1),B={class:"max-h-[550px] overflow-y-auto"},C={class:"text-sm"},E=n("div",{class:"card-header"},[n("span",{class:"font-medium"}," 虚拟树结构 ")],-1),H={class:"max-h-[550px] overflow-y-auto"},K={class:"text-sm"},M=b({name:"LineTree",__name:"line-tree",setup(f){const c=L(k().wholeMenus,!0),o=D(()=>I(c)),m=N(o.value),r={value:"uniqueId",children:"children"};return(t,d)=>{const e=p("el-tree"),s=p("el-card"),i=p("el-col"),S=p("el-tree-v2"),w=p("el-row");return A(),V(s,{shadow:"never"},{header:a(()=>[T]),default:a(()=>[l(w,{gutter:24},{default:a(()=>[l(i,{xs:24,sm:24,md:12,lg:12,xl:12,class:"mb-[20px]"},{default:a(()=>[l(s,{shadow:"never"},{header:a(()=>[q]),default:a(()=>[n("div",B,[l(e,{data:o.value,props:r,"show-checkbox":"","default-expand-all":"","node-key":"uniqueId",indent:30},{default:a(({node:u})=>[l(_(y),{node:u,showLabelLine:!0},{"node-label":a(()=>[n("span",C,x(_(v)(u.data.meta.title)),1)]),_:2},1032,["node"])]),_:1},8,["data"])])]),_:1})]),_:1}),l(i,{xs:24,sm:24,md:12,lg:12,xl:12},{default:a(()=>[l(s,{shadow:"never"},{header:a(()=>[E]),default:a(()=>[n("div",H,[l(S,{data:o.value,props:r,"show-checkbox":"",height:550,"default-expanded-keys":_(m)},{default:a(({node:u})=>[l(_(y),{node:u,treeData:o.value,showLabelLine:!0,indent:30},{"node-label":a(()=>[n("span",K,x(_(v)(u.data.meta.title)),1)]),_:2},1032,["node","treeData"])]),_:1},8,["data","default-expanded-keys"])])]),_:1})]),_:1})]),_:1})]),_:1})}}});export{M as default};
|