vue-pure-admin/static/js/selector-oRy3LMon.js

2 lines
3.8 KiB
JavaScript

import{d as I,p as M,Y as E,x as p,f as o,u as N,F as k,b2 as D,b3 as n,b4 as d,Z as F,V as T,a as L,k as K,e as w,l as j,b as Y,w as $,i as Z,t as R,g as z,j as G,h as A}from"./index-DMqaFtX4.js";const h="stay",f="hs-on",m="hs-off",_="hs-range",b="both-left-sides",S="both-right-sides";let x="right",v=[],s=[];const J={HsKey:{type:Number||String,default:0},disabled:{type:Boolean,default:!1},value:{type:Number,default:0},max:{type:Array,default(){return[1,2,3,4,5,6,7,8,9,10]}},echo:{type:Array,default(){return[]}}},O=I({name:"ReSelector",props:J,emits:["selectedVal"],setup(l,{emit:y}){const a=F(),g=l.value,q=M(()=>l.disabled),u=M(()=>{const e=[];let t=0,r=g;for(g!==Math.floor(g)&&r--;t<r;t++)e.push(f);for(;t<l.max.length;t++)e.push(m);return e}),H=e=>{if(!l.disabled){if(s.length===1){v.length<1&&v.push({index:e});let t=v[0].index;if(e>t)for(x="right",D(!1,S,document.querySelector(".hs-select__item"+s[0].index));e>=t;)n(document.querySelector(".hs-select__item"+t),_),t++;else for(x="left",D(!0,S,document.querySelector(".hs-select__item"+s[0].index));e<=t;)n(document.querySelector(".hs-select__item"+t),_),t--}n(document.querySelector("."+m+e),f)}},C=e=>{if(l.disabled)return;const t=document.querySelector("."+m+e);if(t.className.includes(h))return!1;if(d(t,f),s.length===1){const r=v[0].index;if(e>=r)for(let c=0;c<=e;c++)d(document.querySelector(".hs-select__item"+c),_);else for(;e<=r;)d(document.querySelector(".hs-select__item"+e),_),e++}},i=(e,t)=>{if(l.disabled)return;const r=s.length;r<2?(s.push({item:t,index:e}),n(document.querySelector("."+m+e),h),n(document.querySelector(".hs-select__item"+s[0].index),b),s[1]&&(x==="right"?n(document.querySelector(".hs-select__item"+s[1].index),S):n(document.querySelector(".hs-select__item"+s[1].index),b)),r===1&&(x==="right"?y("selectedVal",{left:s[0].item,right:s[1].item,whole:s}):y("selectedVal",{left:s[1].item,right:s[0].item,whole:s}))):p(()=>{s.forEach(c=>{d(document.querySelector("."+m+c.index),f,h),d(document.querySelector(".hs-select__item"+c.index),b,S)}),s=[],v=[];for(let c=0;c<=l.max.length;c++){const B=document.querySelector(".hs-select__item"+c);B&&d(B,_)}s.push({item:t,index:e}),n(document.querySelector("."+m+e),h),n(document.querySelector(".hs-select__item"+s[0].index),b)})},V=e=>{if(e.length!==0){if(e.length>2||e.length===1)throw"传入的数组长度必须是2";for(e.sort((t,r)=>t-r),n(a.refs["hsdiv"+l.HsKey+e[0]],f,h),n(a.refs["hstd"+l.HsKey+e[0]],b),n(a.refs["hsdiv"+l.HsKey+e[1]],f,h),n(a.refs["hstd"+l.HsKey+e[1]],S);e[1]>=e[0];)n(a.refs["hstd"+l.HsKey+e[0]],_),e[0]++}};return E(()=>{p(()=>{V(l.echo)})}),()=>o(k,null,[o("table",{cellspacing:"0",cellpadding:"0"},[o("tbody",null,[o("tr",null,[l.max.map((e,t)=>o("td",{"data-index":l.HsKey,ref:`hstd${l.HsKey}${t}`,class:`hs-select__item${t}`,onMousemove:()=>H(t),onMouseleave:()=>C(t),onClick:()=>i(t,e),style:{cursor:N(q)?"auto":"pointer",textAlign:"center"},key:t},[o("div",{ref:`hsdiv${l.HsKey}${t}`,class:`hs-item ${[N(u)[t]+t]}`},[o("span",null,[e])])]))])])])])}}),P=T(O),Q={class:"font-medium"},U={key:0,class:"mt-3!"},X=I({name:"Selector",__name:"selector",setup(l){const y=L(""),a=L([{title:"基础用法",echo:[],disabled:!1},{title:"回显模式",echo:[2,7],disabled:!0}]),g=({left:q,right:u})=>{y.value=`${q}-${u}`};return(q,u)=>{const H=A("el-link"),C=A("el-card");return w(),K("div",null,[(w(!0),K(k,null,j(a.value,(i,V)=>(w(),Y(C,{key:V,class:"mb-2",shadow:"never"},{header:$(()=>[z("p",Q,R(i.title),1),o(H,{class:"mt-2",href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/views/components/selector.vue",target:"_blank"},{default:$(()=>u[0]||(u[0]=[G(" 代码位置 src/views/components/selector.vue ")])),_:1})]),default:$(()=>[o(N(P),{HsKey:V,echo:i.echo,disabled:i.disabled,onSelectedVal:g},null,8,["HsKey","echo","disabled"]),i.disabled?Z("",!0):(w(),K("h4",U,"选中范围:"+R(y.value),1))]),_:2},1024))),128))])}}});export{X as default};