2 lines
4.2 KiB
JavaScript
2 lines
4.2 KiB
JavaScript
import{a3 as t,o as e,c as o,w as s,N as n,e as i,y as a,z as u,b as l,x as d,i as h}from"./index-CH9-aFWw.js";import{_ as r}from"./_plugin-vue_export-helper.BCo6x5W8.js";const c={en:{"uni-countdown.day":"day","uni-countdown.h":"h","uni-countdown.m":"m","uni-countdown.s":"s"},"zh-Hans":{"uni-countdown.day":"天","uni-countdown.h":"时","uni-countdown.m":"分","uni-countdown.s":"秒"},"zh-Hant":{"uni-countdown.day":"天","uni-countdown.h":"時","uni-countdown.m":"分","uni-countdown.s":"秒"}},{t:y}=t(c);const m=r({name:"UniCountdown",emits:["timeup"],props:{showDay:{type:Boolean,default:!0},showHour:{type:Boolean,default:!0},showMinute:{type:Boolean,default:!0},showColon:{type:Boolean,default:!0},start:{type:Boolean,default:!0},backgroundColor:{type:String,default:""},color:{type:String,default:"#333"},fontSize:{type:Number,default:14},splitorColor:{type:String,default:"#333"},day:{type:Number,default:0},hour:{type:Number,default:0},minute:{type:Number,default:0},second:{type:Number,default:0},timestamp:{type:Number,default:0}},data:()=>({timer:null,syncFlag:!1,d:"00",h:"00",i:"00",s:"00",leftTime:0,seconds:0}),computed:{dayText:()=>y("uni-countdown.day"),hourText:t=>y("uni-countdown.h"),minuteText:t=>y("uni-countdown.m"),secondText:t=>y("uni-countdown.s"),timeStyle(){const{color:t,backgroundColor:e,fontSize:o}=this;return{color:t,backgroundColor:e,fontSize:`${o}px`,width:22*o/14+"px",lineHeight:20*o/14+"px",borderRadius:3*o/14+"px"}},splitorStyle(){const{splitorColor:t,fontSize:e,backgroundColor:o}=this;return{color:t,fontSize:12*e/14+"px",margin:o?4*e/14+"px":""}}},watch:{day(t){this.changeFlag()},hour(t){this.changeFlag()},minute(t){this.changeFlag()},second(t){this.changeFlag()},start:{immediate:!0,handler(t,e){if(t)this.startData();else{if(!e)return;clearInterval(this.timer)}}}},created:function(t){this.seconds=this.toSeconds(this.timestamp,this.day,this.hour,this.minute,this.second),this.countDown()},unmounted(){clearInterval(this.timer)},methods:{toSeconds:(t,e,o,s,n)=>t?t-parseInt((new Date).getTime()/1e3,10):60*e*60*24+60*o*60+60*s+n,timeUp(){clearInterval(this.timer),this.$emit("timeup")},countDown(){let t=this.seconds,[e,o,s,n]=[0,0,0,0];t>0?(e=Math.floor(t/86400),o=Math.floor(t/3600)-24*e,s=Math.floor(t/60)-24*e*60-60*o,n=Math.floor(t)-24*e*60*60-60*o*60-60*s):this.timeUp(),e<10&&(e="0"+e),o<10&&(o="0"+o),s<10&&(s="0"+s),n<10&&(n="0"+n),this.d=e,this.h=o,this.i=s,this.s=n},startData(){if(this.seconds=this.toSeconds(this.timestamp,this.day,this.hour,this.minute,this.second),this.seconds<=0)return this.seconds=this.toSeconds(0,0,0,0,0),void this.countDown();clearInterval(this.timer),this.countDown(),this.timer=setInterval((()=>{this.seconds--,this.seconds<0?this.timeUp():this.countDown()}),1e3)},update(){this.startData()},changeFlag(){this.syncFlag||(this.seconds=this.toSeconds(this.timestamp,this.day,this.hour,this.minute,this.second),this.startData(),this.syncFlag=!0)}}},[["render",function(t,r,c,y,m,p){const w=d,f=h;return e(),o(f,{class:"uni-countdown"},{default:s((()=>[c.showDay?(e(),o(w,{key:0,style:n([p.timeStyle]),class:"uni-countdown__number"},{default:s((()=>[i(a(m.d),1)])),_:1},8,["style"])):u("",!0),c.showDay?(e(),o(w,{key:1,style:n([p.splitorStyle]),class:"uni-countdown__splitor"},{default:s((()=>[i(a(p.dayText),1)])),_:1},8,["style"])):u("",!0),c.showHour?(e(),o(w,{key:2,style:n([p.timeStyle]),class:"uni-countdown__number"},{default:s((()=>[i(a(m.h),1)])),_:1},8,["style"])):u("",!0),c.showHour?(e(),o(w,{key:3,style:n([p.splitorStyle]),class:"uni-countdown__splitor"},{default:s((()=>[i(a(c.showColon?":":p.hourText),1)])),_:1},8,["style"])):u("",!0),c.showMinute?(e(),o(w,{key:4,style:n([p.timeStyle]),class:"uni-countdown__number"},{default:s((()=>[i(a(m.i),1)])),_:1},8,["style"])):u("",!0),c.showMinute?(e(),o(w,{key:5,style:n([p.splitorStyle]),class:"uni-countdown__splitor"},{default:s((()=>[i(a(c.showColon?":":p.minuteText),1)])),_:1},8,["style"])):u("",!0),l(w,{style:n([p.timeStyle]),class:"uni-countdown__number"},{default:s((()=>[i(a(m.s),1)])),_:1},8,["style"]),c.showColon?u("",!0):(e(),o(w,{key:6,style:n([p.splitorStyle]),class:"uni-countdown__splitor"},{default:s((()=>[i(a(p.secondText),1)])),_:1},8,["style"]))])),_:1})}],["__scopeId","data-v-eede7c1d"]]);export{m as _};
|