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,c as I,m as l,u as s,r as u,z as $,a3 as H,F as U,b as B,f as W,j as a,k as L,e as X,g as p,A as Y,B as E,_ as G}from"./index-Bp-Azfsb.js";const R=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)}}),T=h({name:"SplitPane",components:{resizer:R},props:{splitSet:{type:Object,require:!0}},emits:["resize"],setup(e,n){var S,g,P,w,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=((P=e.splitSet)==null?void 0:P.split)==="vertical"?"left":"top",N=u(["splitter-pane splitter-paneL",(w=e.splitSet)==null?void 0:w.split]),j=u(["splitter-pane splitter-paneR",(z=e.splitSet)==null?void 0:z.split]),q=I(()=>{var t;return i.value?((t=e.splitSet)==null?void 0:t.split)==="vertical"?{cursor:"col-resize"}:{cursor:"row-resize"}:{cursor:"default"}}),x=()=>{d.value||(c.value=50,n.emit("resize",c.value))},A=()=>{i.value=!0,d.value=!1},D=()=>{i.value=!1},F=t=>{var y,M,C,b,k;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,V=((C=e.splitSet)==null?void 0:C.split)==="vertical"?t.currentTarget.offsetWidth:t.currentTarget.offsetHeight,m=Math.floor((O-_)/V*1e4)/100;m>((b=e.splitSet)==null?void 0:b.minPercent)&&m<100-((k=e.splitSet)==null?void 0:k.minPercent)&&(c.value=m),n.emit("resize",c.value),d.value=!0}};return()=>{var t;return l(U,null,[l("div",{class:"vue-splitter-container clearfix",style:s(q),onMouseup:()=>D(),onMousemove:()=>F(event)},[l("div",{class:s(N),style:{[s(r)]:s(c)+"%"}},[n.slots.paneL()]),l(R,{style:`${s([v])}:${s(c)}%`,split:(t=e.splitSet)==null?void 0:t.split,onMousedown:()=>A(),onClick:()=>x()},null),l("div",{class:s(j),style:{[s(r)]:100-s(c)+"%"}},[n.slots.paneR()]),$(l("div",{class:"vue-splitter-container-mask"},null),[[H,s(i)]])])])}}}),f=e=>(Y("data-v-099618ac"),e=e(),E(),e),J=f(()=>p("div",{class:"card-header"},[p("span",{class:"font-medium"},"切割面板")],-1)),K={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=B({minPercent:20,defaultPercent:40,split:"vertical"}),i=B({minPercent:20,defaultPercent:40,split:"horizontal"});return(d,c)=>{const r=L("el-scrollbar"),v=L("el-card");return X(),W(v,{shadow:"never"},{header:a(()=>[J]),default:a(()=>[p("div",K,[l(s(T),{splitSet:n},{paneL:a(()=>[l(r,null,{default:a(()=>[Q]),_:1})]),paneR:a(()=>[l(s(T),{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=G(te,[["__scopeId","data-v-099618ac"]]);export{le as default};
|