mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-08 01:17:23 +08:00
2 lines
2.9 KiB
JavaScript
2 lines
2.9 KiB
JavaScript
import{d as h,G as k,j as a,u as s,r as p,l as V,v as A,F as G,an as L,c as H,f as U,w as o,g as W,h as r,p as X,m as Y,_ as E}from"./index.js";const R=h({name:"Resizer",props:{split:{type:String,required:!0},className:{type:String,default:""}},setup(e){const l=k(()=>["splitter-pane-resizer",e.split,e.className].join(" "));return()=>a("div",{class:s(l)},null)}});const T=h({name:"SplitPane",components:{resizer:R},props:{splitSet:{type:Object,require:!0}},emits:["resize"],setup(e,l){var m,S,g,w,P;const i=p(!1),d=p(!1),n=p((m=e.splitSet)==null?void 0:m.defaultPercent),u=((S=e.splitSet)==null?void 0:S.split)==="vertical"?"width":"height",B=((g=e.splitSet)==null?void 0:g.split)==="vertical"?"left":"top",I=p(["splitter-pane splitter-paneL",(w=e.splitSet)==null?void 0:w.split]),N=p(["splitter-pane splitter-paneR",(P=e.splitSet)==null?void 0:P.split]),$=k(()=>{var t;return i.value?((t=e.splitSet)==null?void 0:t.split)==="vertical"?{cursor:"col-resize"}:{cursor:"row-resize"}:{cursor:"default"}}),b=()=>{d.value||(n.value=50,l.emit("resize",n.value))},j=()=>{i.value=!0,d.value=!1},q=()=>{i.value=!1},D=t=>{var y,z,M,C,x;if((t.buttons===0||t.which===0)&&(i.value=!1),i.value){let f=0,c=t.currentTarget;if(((y=e.splitSet)==null?void 0:y.split)==="vertical")for(;c;)f+=c.offsetLeft,c=c.offsetParent;else for(;c;)f+=c.offsetTop,c=c.offsetParent;const F=((z=e.splitSet)==null?void 0:z.split)==="vertical"?t.pageX:t.pageY,O=((M=e.splitSet)==null?void 0:M.split)==="vertical"?t.currentTarget.offsetWidth:t.currentTarget.offsetHeight,_=Math.floor((F-f)/O*1e4)/100;_>((C=e.splitSet)==null?void 0:C.minPercent)&&_<100-((x=e.splitSet)==null?void 0:x.minPercent)&&(n.value=_),l.emit("resize",n.value),d.value=!0}};return()=>{var t;return a(G,null,[a("div",{class:"vue-splitter-container clearfix",style:s($),onMouseup:()=>q(),onMousemove:()=>D(event)},[a("div",{class:s(I),style:{[s(u)]:s(n)+"%"}},[l.slots.paneL()]),a(R,{style:`${s([B])}:${s(n)}%`,split:(t=e.splitSet)==null?void 0:t.split,onMousedown:()=>j(),onClick:()=>b()},null),a("div",{class:s(N),style:{[s(u)]:100-s(n)+"%"}},[l.slots.paneR()]),V(a("div",{class:"vue-splitter-container-mask"},null),[[A,s(i)]])])])}}}),v=e=>(X("data-v-62ddaddc"),e=e(),Y(),e),J=v(()=>r("div",{class:"card-header"},[r("span",{class:"font-medium"},"切割面板组件")],-1)),K={class:"split-pane"},Q=v(()=>r("div",{class:"dv-a"},"A",-1)),Z=v(()=>r("div",{class:"dv-b"},"B",-1)),ee=v(()=>r("div",{class:"dv-c"},"C",-1)),te=h({name:"SplitPane",__name:"index",setup(e){const l=L({minPercent:20,defaultPercent:40,split:"vertical"}),i=L({minPercent:20,defaultPercent:40,split:"horizontal"});return(d,n)=>{const u=H("el-card");return W(),U(u,{shadow:"never"},{header:o(()=>[J]),default:o(()=>[r("div",K,[a(s(T),{splitSet:l},{paneL:o(()=>[Q]),paneR:o(()=>[a(s(T),{splitSet:i},{paneL:o(()=>[Z]),paneR:o(()=>[ee]),_:1},8,["splitSet"])]),_:1},8,["splitSet"])])]),_:1})}}});const ae=E(te,[["__scopeId","data-v-62ddaddc"]]);export{ae as default};
|