zview-plus
Version:
基于 Vue3 的 UI 组件库
2 lines (1 loc) • 2.87 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("./time-spinner.js"),p=require("../../../utils/math/time-picker.js"),y={class:"z-time-panel__wrap"},z={key:0,class:"z-time-panel__title"},S={class:"z-time-panel__content"},b={class:"z-time-spinner__ul"},N=["onClick"],V={class:"z-time-spinner__ul"},T=["onClick"],L={class:"z-time-spinner__ul"},x=["onClick"],q=e.defineComponent({name:"time-spinner",props:g.TimeSpinnerProps,emits:["on-change","item-click"],setup(k,{expose:f,emit:h}){const r=k,c=e.ref(null),i=e.ref(null),a=e.ref(null),C=e.computed(()=>{let n=[];const l={text:0,selected:!1,disabled:!1};for(let t=0;t<24;t++){const s=p.deepCopy(l);s.text=t,r.hours===t&&(s.selected=!0),n.push(s)}return n}),v=e.computed(()=>{let n=[];const l={text:0,selected:!1,disabled:!1};for(let t=0;t<60;t++){const s=p.deepCopy(l);s.text=t,r.minutes===t&&(s.selected=!0),n.push(s)}return n}),B=e.computed(()=>{let n=[];const l={text:0,selected:!1,disabled:!1};for(let t=0;t<60;t++){const s=p.deepCopy(l);s.text=t,r.seconds===t&&(s.selected=!0),n.push(s)}return n}),u=n=>["z-time-spinner__item",{"cell-selected":n.selected,"cell-disabled":n.disabled}],d=n=>n<10?"0"+n:n,m=(n,l,t)=>{if(l.disabled)return;const o={hour:c.value,minute:i.value,second:a.value}[n];h("item-click",n,l,()=>{o&&_(o,t)})},E=n=>{e.nextTick(()=>{[c,i,a].forEach((l,t)=>{_(l.value,Number(n[t]))})})},_=(n,l)=>{const t=n.querySelector(".z-time-spinner__item").clientHeight;e.nextTick(()=>{n.scrollTop=l*t})};return f({resetScroll:E}),(n,l)=>(e.openBlock(),e.createElementBlock("div",y,[n.title?(e.openBlock(),e.createElementBlock("div",z,e.toDisplayString(n.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",S,[e.createElementVNode("div",{class:"z-time-spinner__wrapper",ref_key:"hourCol",ref:c},[e.createElementVNode("ul",b,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),(t,s)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(u(t)),key:s,onClick:o=>m("hour",t,s)},e.toDisplayString(d(t.text)),11,N))),128))])],512),e.createElementVNode("div",{class:"z-time-spinner__wrapper",ref_key:"minuteCol",ref:i},[e.createElementVNode("ul",V,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v),(t,s)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(u(t)),key:s,onClick:o=>m("minute",t,s)},e.toDisplayString(d(t.text)),11,T))),128))])],512),e.createElementVNode("div",{class:"z-time-spinner__wrapper",ref_key:"secondCol",ref:a},[e.createElementVNode("ul",L,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(t,s)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(u(t)),key:s,onClick:o=>m("second",t,s)},e.toDisplayString(d(t.text)),11,x))),128))])],512)])]))}});exports.default=q;