UNPKG

zview-plus

Version:

基于 Vue3 的 UI 组件库

2 lines (1 loc) 4.6 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),N=require("./time-spinner.vue.js"),s=require("../../../utils/math/time-picker.js"),A=require("./time-picker.js"),J=require("../../../../node_modules/.pnpm/@vueuse_core@9.13.0_vue@3.2.47/node_modules/@vueuse/core/index.js"),j=e.createElementVNode("span",{class:"z-input__prefix"},[e.createElementVNode("i",{class:"z-timepick__icon z-icon-time"})],-1),H=["value","placeholder","disabled","readonly"],Z=e.createElementVNode("i",{class:"z-timepick__icon z-icon-close"},null,-1),D=[Z],F={class:"z-time-panel-body"},G={key:0,class:"z-time-panel__footer"},K={name:"ZTimePicker"},L=e.defineComponent({...K,props:A.TimePickerProps,emits:["on-change","on-confirm","on-clear"],setup(E,{emit:v}){const o=E,C=e.ref(!1),V=e.ref(!1),g=e.ref(null),_=e.ref(null),T=e.ref(null),n=e.reactive({inputText:"",startValue:[],endValue:[]}),{inputText:P,startValue:m,endValue:f}=e.toRefs(n),S=e.computed(()=>({"z-time-picker-disabled":o.disabled})),B=e.computed(()=>o.clearable&&n.inputText&&C.value),a=e.computed(()=>o.type==="timerange");e.watch(()=>o.modelValue,t=>{e.nextTick(()=>{x(t)})},{immediate:!0,deep:!0}),e.watch([()=>n.startValue,()=>n.endValue],()=>{e.nextTick(()=>{$()})},{immediate:!0});const I=()=>{V.value=!0,w()};J.onClickOutside(T,()=>{o.disabled||o.readonly||(V.value=!1)});const b=(t,r,l,c)=>{const p=r==="hour"?0:r==="minute"?1:2;let k=null;if(t==="start"){const d=h(s.deepCopy(n.startValue));d[p]=l.text;const i=u(d);if(a.value)if(s.compareArrJoined(d,n.endValue)){const R=s.deepCopy(i);k=[i,R],e.nextTick(()=>_.value.resetScroll(d))}else k=[i,u(n.endValue)];else k=i}if(t==="end"){const d=h(s.deepCopy(n.startValue)),i=h(s.deepCopy(n.endValue));if(i[p]=l.text,s.compareArrJoined(d,i))return;k=[u(d),u(i)]}x(k),c(),v("on-change",k)},h=t=>{for(let r=0;r<3;r++)t[r]=t[r]||0;return t},u=t=>s.formatOutputValue(t,o.format),w=()=>{e.nextTick(()=>{g.value&&g.value.resetScroll(n.startValue),_.value&&_.value.resetScroll(n.endValue)})},$=()=>{const t=s.formatOutputValue(n.startValue,o.format);if(!a.value){n.inputText=t;return}const r=s.formatOutputValue(n.endValue,o.format);n.inputText=!t&&!r?"":`${t}${o.separator}${r}`},x=t=>{a.value?(n.startValue=y(t[0]),n.endValue=y(t[1])):n.startValue=y(t)},y=t=>t?s.isString(t)?q(t).slice(0,3):[]:[],q=t=>t.replace(/[^\d]+/g,",").split(",").filter(l=>l!=="").map((l,c)=>s.withinNum(parseInt(l,10),0,c===0?23:59)),z=t=>{o.disabled||(t.stopPropagation(),V.value=!1,n.inputText="",n.startValue=[],n.endValue=[],v("on-clear"))},M=()=>{V.value=!1;const t=O();v("on-confirm",t)},O=()=>a.value?[u(n.startValue),u(n.endValue)]:u(n.startValue);return(t,r)=>(e.openBlock(),e.createElementBlock("div",{class:"z-time-picker-rel",ref_key:"timePicker",ref:T,onClick:I},[e.createElementVNode("div",{class:e.normalizeClass(["z-time-picker",e.unref(S)]),onMouseenter:r[0]||(r[0]=l=>C.value=!0),onMouseleave:r[1]||(r[1]=l=>C.value=!1)},[j,e.createElementVNode("input",{type:"text",class:"z-input__inner",value:e.unref(P),placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly},null,8,H),e.unref(B)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"z-input__suffix",onClick:z},D)):e.createCommentVNode("",!0)],34),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[V.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["z-time-panel",{"is-range":e.unref(a),"is-confirm":t.confirm}]),onClick:r[4]||(r[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",F,[e.createVNode(N.default,{ref_key:"startPicker",ref:g,title:e.unref(a)?"开始时间":"",hours:e.unref(m).length&&e.unref(m)[0],minutes:e.unref(m).length&&e.unref(m)[1],seconds:e.unref(m).length&&e.unref(m)[2],onItemClick:r[2]||(r[2]=(l,c,p)=>b("start",l,c,p))},null,8,["title","hours","minutes","seconds"]),e.unref(a)?(e.openBlock(),e.createBlock(N.default,{key:0,class:"end-picker-time",ref_key:"endPicker",ref:_,title:e.unref(a)?"结束时间":"",hours:e.unref(f).length&&e.unref(f)[0],minutes:e.unref(f).length&&e.unref(f)[1],seconds:e.unref(f).length&&e.unref(f)[2],onItemClick:r[3]||(r[3]=(l,c,p)=>b("end",l,c,p))},null,8,["title","hours","minutes","seconds"])):e.createCommentVNode("",!0)]),t.confirm?(e.openBlock(),e.createElementBlock("div",G,[e.createElementVNode("button",{class:"z-time-panel__btn",onClick:z},"清空"),e.createElementVNode("button",{class:"z-time-panel__btn btn__confirm",onClick:M},"确定")])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)]),_:1})],512))}});exports.default=L;