2023-10-17 11:41:08 +08:00

2 lines
3.9 KiB
JavaScript

import{d as L,r,ab as V,X as D,j as e,Y as $,M as b,x as j,ac as B,S as N,c as k,f as W,w as I,g as E,u as d,h as u,i as y,q as X}from"./index.js";import{d as C}from"./home-filled.js";import{u as _}from"./hooks.js";const q={options:{type:Array,default:()=>[]},defaultValue:{type:Number,default:0}},A=L({name:"ReSegmented",props:q,emits:["change"],setup(w,{emit:x}){const p=r(0),f=r(0),{isDark:h}=V(),g=r(!1),o=r(-1),c=r(""),i=B(),t=r(w.defaultValue);function n({option:a,index:l},s){a.disabled||(s.preventDefault(),t.value=l,c.value="",x("change",{index:l,option:a}))}function v({option:a,index:l},s){s.preventDefault(),o.value=l,a.disabled||t.value===l?c.value="":c.value=h.value?"#1f1f1f":"rgba(0, 0, 0, 0.06)"}function R(a,l){l.preventDefault(),o.value=-1}function M(a=t.value){j(()=>{var s;const l=(s=i==null?void 0:i.proxy)==null?void 0:s.$refs[`labelRef${a}`];p.value=l.clientWidth,f.value=l.offsetLeft,g.value=!0})}D(()=>t.value,a=>{j(()=>{M(a)})},{deep:!0,immediate:!0});const S=()=>w.options.map((a,l)=>e("label",{ref:`labelRef${l}`,class:["pure-segmented-item",(a==null?void 0:a.disabled)&&"pure-segmented-item-disabled"],style:{background:o.value===l?c.value:"",color:!a.disabled&&(t.value===l||o.value===l)?h.value?"rgba(255, 255, 255, 0.85)":"rgba(0,0,0,.88)":""},onMouseenter:s=>v({option:a,index:l},s),onMouseleave:s=>R({option:a,index:l},s),onClick:s=>n({option:a,index:l},s)},[e("input",{type:"radio",name:"segmented"},null),e("div",{class:"pure-segmented-item-label"},[a.icon&&!$(a.label)?e("span",{class:"pure-segmented-item-icon",style:{marginRight:a.label?"6px":0}},[b(_(a.icon))]):null,a.label?$(a.label)?b(a.label):e("span",null,[a.label]):null])]));return()=>e("div",{class:"pure-segmented"},[e("div",{class:"pure-segmented-group"},[e("div",{class:"pure-segmented-item-selected",style:{width:`${p.value}px`,transform:`translateX(${f.value}px)`,display:g.value?"block":"none"}},null),S()])])}}),m=N(A),T=u("div",{class:"card-header"},[u("span",{class:"font-medium"},"分段控制器")],-1),O=u("p",{class:"mb-2"},"基础用法",-1),Y=u("p",{class:"mb-2"},"默认选中和禁用",-1),z=u("p",{class:"mb-2"},"设置图标",-1),F=u("p",{class:"mb-2"},"只设置图标",-1),G=u("p",{class:"mb-2"},"自定义渲染",-1),H=u("p",{class:"mb-2"},"change事件",-1),Q=L({name:"Segmented",__name:"index",setup(w){const x=[{label:"周一",value:1},{label:"周二",value:2},{label:"周三",value:3},{label:"周四",value:4},{label:"周五",value:5}],p=[{label:"周一",value:1},{label:"周二",value:2},{label:"周三",value:3,disabled:!0},{label:"周四",value:4},{label:"周五",value:5,disabled:!0}],f=[{label:"周一",value:1,icon:C},{label:"周二",value:2},{label:"周三",value:3,icon:"terminalWindowLine"},{label:"周四",value:4,icon:"streamline-emojis:airplane"},{label:"周五",value:5,icon:"streamline-emojis:2"}],h=[{value:1,icon:C},{value:2,icon:"terminalWindowLine"},{value:3,icon:"streamline-emojis:cow-face"},{value:4,icon:"streamline-emojis:airplane"},{value:5,icon:"streamline-emojis:2"}],g=[{label:()=>e("div",null,[b(_(C),{class:"m-auto w-[20px] h-[20px]"}),e("p",null,[y("周一")])]),value:1},{label:()=>e("div",null,[b(_("terminalWindowLine"),{class:"m-auto w-[20px] h-[20px]"}),e("p",null,[y("周二")])]),value:2},{label:()=>e("div",null,[b(_("streamline-emojis:cow-face"),{class:"m-auto w-[20px] h-[20px]"}),e("p",null,[y("周三")])]),value:3}],o=[{label:"周一",value:1},{label:"周二",value:2},{label:"周三",value:3}];function c({index:i,option:t}){const{label:n,value:v}=t;X(`当前选中项索引为:${i},名字为${n},值为${v}`,{type:"success"})}return(i,t)=>{const n=k("el-divider"),v=k("el-card");return E(),W(v,{shadow:"never"},{header:I(()=>[T]),default:I(()=>[O,e(d(m),{options:x}),e(n),Y,e(d(m),{options:p,defaultValue:2}),e(n),z,e(d(m),{options:f}),e(n),F,e(d(m),{options:h}),e(n),G,e(d(m),{options:g}),e(n),H,e(d(m),{options:o,onChange:c}),e(n)]),_:1})}}});export{Q as default};