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