微客导航 »
文章资讯 »
element上传组件循环引用及简单时间倒计时的实现
element上传组件循环引用及简单时间倒计时的实现
前言
今天记录几个简单的小问题,前端时间开发用到的,之前看到博客中没有记录,简单记录一下。一个是element上传组件循环引用的方式,一个是简单的倒计时。
上传组件每个上传都要指定相应的函数,而且函数不能传入参数,10个上传按钮要写10个上传函数,非常麻烦。针对这个,我们可以循环这些函数。
案例
element一个上传组件如下:
假如有10个上传,岂不是要指定10个handleAvatarSuccess这个回掉函数?这些太麻烦了!!!
no!我们可以不用这么写。推荐的一个写法如下:
{{item.name}}点击查看示例
如上面代码,我们直接循环上传。
我们在data()里面指定handlescSuccess:{},
data(){
return{
handlescSuccess:{},
svalueImg:{},
}
}
初始化的时候,对上传进行设置
for(leti=1;i<=10;i++){//循环的个数
this.handlescSuccess[i]=function(res,file){
//console.log(res,_this.svalueImg)
if(_this.svalueImg){
_this.$set(_this.svalueImg,i,res.file.sFile)
}
}
}
上面的代码是针对一个上传按钮只能上传一张图片的情况。上传多种做法类似。
例如如下:
//以下代码写在回调里面
for(leti=0;i
时间倒计时
这个实现起来很简单,但是在vueDom中实时展示,要用$set方式
天,小时,分钟,秒的倒计时函数:
data里面:
data(){
return{
letTimes:{nowTime:''},
}
}
methods里面:
countDown(times){
const_this=this
lettimer=null
timer=setInterval(function(){
letday=0,
hour=0,
minute=0,
second=0//时间默认值
if(times>0){
day=Math.floor(times/(60*60*24))
hour=Math.floor(times/(60*60))-(day*24)
minute=Math.floor(times/60)-(day*24*60)-(hour*60)
second=Math.floor(times)-(day*24*60*60)-(hour*60*60)-(minute*60)
}
if(day<=9)day='0'+day
if(hour<=9)hour='0'+hour
if(minute<=9)minute='0'+minute
if(second<=9)second='0'+second
_this.$set(_this.letTimes,'nowTime',`${day!=='00'?`${day}天:`:''}${hour}小时:${minute}分钟:${second}秒`)
times--
},1000)
if(times<=0){
_this.$set(_this.letTimes,'nowTime','')
clearInterval(timer)
}
},
单纯分钟和秒倒计时
functionresetTime(time){
vartimer=null;
vart=time;
varm=0;
vars=0;
m=Math.floor(t/60%60);
m<10&&(m='0'+m);
s=Math.floor(t%60);
functioncountDown(){
s--;
s<10&&(s='0'+s);
if(s.length>=3){
s=59;
m="0"+(Number(m)-1);
}
if(m.length>=3){
m='00';
s='00';
clearInterval(timer);
}
console.log(m+"分钟"+s+"秒");
}
timer=setInterval(countDown,1000);
}
用法很简单,传秒数进来就可以了
例如:
this.countDown(5689)
this.resetTime(256)
小结
简单的小案例就分享到这里,国庆愉快,希望对大家的学习有所帮助,也希望大家多多支持毛票票。