var countdown = {
template: '
{{tipText}}:{{tipTextEnd}}:{{msTime.day}}天{{msTime.hour}}:{{msTime.minutes}}:{{msTime.seconds}}
{{endText}}
',
replace:true,
data () {
return {
tipShow:true,
msTime:{ //倒计时数值
show:false, //倒计时状态
day:'', //天
hour:'', //小时
minutes:'', //分钟
seconds:'' //秒
},
star:'', //活动开始时间
end:'', //活动结束时间
current:'', //当前时间
}
},
props:{
//距离开始提示文字
tipText:{
type: String,
default :'距离开始'
},
//距离结束提示文字
tipTextEnd:{
type: String,
default :'距离结束'
},
//时间控件ID
id:{
type: String,
default :'1'
},
//当前时间
currentTime:{
type: Number
},
// 活动开始时间
startTime:{
type: Number
},
// 活动结束时间
endTime: {
type: Number
},
// 倒计时结束显示文本
endText:{
type:String,
default:'已结束'
},
//是否开启秒表倒计,未完成
secondsFixed:{
type:Boolean,
defaule:false
}
},
mounted () {
//判断是秒还是毫秒
this.startTime.toString().length==10 ? this.star = this.startTime*1000 : this.star = this.startTime;
this.endTime.toString().length==10 ? this.end = this.endTime*1000 : this.end = this.endTime;
if(this.currentTime){
this.currentTime.toString().length==10 ? this.current = this.currentTime*1000 : this.current = this.currentTime;
}else {
this.current=( new Date() ).getTime();
}
if(this.end{
this.runTime(this.star,this.current,this.start_message);
},1);
}
else if(this.end>this.current&&this.star{
this.runTime(this.end,this.star,this.end_message,true)
},1);
}
},
methods: {
runTime (startTime,endTime,callFun,type) {
let msTime = this.msTime;
let timeDistance = startTime - endTime;
if( timeDistance > 0 ){
this.msTime.show = true;
msTime.day = Math.floor( timeDistance / 86400000 );
timeDistance-= msTime.day * 86400000;
msTime.hour = Math.floor( timeDistance / 3600000 );
timeDistance-= msTime.hour * 3600000;
msTime.minutes = Math.floor( timeDistance / 60000 );
timeDistance-= msTime.minutes * 60000;
//是否开启秒表倒计,未完成
// this.secondsFixed ? msTime.seconds = new Number(timeDistance / 1000).toFixed(2) : msTime.seconds = Math.floor( timeDistance / 1000 ).toFixed(0);
msTime.seconds = Math.floor( timeDistance / 1000 ).toFixed(0);
timeDistance-= msTime.seconds * 1000;
if( msTime.hour < 10){
msTime.hour = "0" + msTime.hour;
}
if(msTime.minutes < 10){
msTime.minutes= "0" + msTime.minutes;
}
if(msTime.seconds < 10) {
msTime.seconds = "0" + msTime.seconds;
}
let _s = Date.now();
let _e = Date.now();
let diffPerFunc = _e - _s;
setTimeout(()=>{
if(type){
this.runTime(this.end,endTime+=1000,callFun,true);
}else{
this.runTime(this.star,endTime+=1000,callFun);
}
},1000-diffPerFunc)
}
else {
callFun();
}
},
start_message () {
this.$set(this,'tipShow',false);
this.$emit('start_callback', this.msTime.show);
setTimeout(()=>{
this.runTime(this.end,this.star,this.end_message,true)
},1);
},
end_message(){
this.msTime.show = false;
this.$emit('end_callback', this.msTime.show);
}
}
};
var readme= {
template: '11111
',
};