首页 > javascript相关 > vue教程 > 正文

element上传组件循环引用及简单时间倒计时的实现_vue.js

2018-11-10 10:00:52

前言

今天记录几个简单的小问题,前端时间开发用到的,之前看到博客中没有记录,简单记录一下。 一个是element上传组件循环引用的方式,一个是简单的倒计时。

上传组件每个上传都要指定相应的函数,而且函数不能传入参数,10个上传按钮要写10个上传函数,非常麻烦。针对这个,我们可以循环这些函数。

案例

element一个上传组件如下:

<el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"> <img v-if="imageUrl" :src="imageUrl" class="avatar"> <i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>

假如有10个上传,岂不是要指定10个handleAvatarSuccess这个回掉函数?这些太麻烦了!!!

no! 我们可以不用这么写。推荐的一个写法如下:

<div class="pzsrltv" v-for="(item,index) in sValueAddedServiceData" :key="index"> <!--这一块循环出来 -->  <div class="s_step1">    <div class="stitle">{{item.name}}<span class="sblue" v-if="item.showimg" @click.stop="showImg.show = true;showImg.url = item.showimg">点击查看示例</span>    </div>    <div class="one_line">      <img class="imagelist" v-if="svalueImg[item.value]" :src="`${viewUrl}${svalueImg[item.value]}`" >      <el-upload      v-if="!svalueImg[item.value]"      class="avatar-uploader mt10"      accept="image/jpeg,image/png,image/gif"      :action="baseUpload"      :show-file-list="false"      :on-success="handlescSuccess[item.value]"      :before-upload="beforeAvatarUpload">      <i class="el-icon-plus avatar-uploader-icon"></i>      </el-upload>    </div>  </div> </div>

如上面代码,我们直接循环上传。

我们在data()里面指定handlescSuccess: {},

data(){ return { handlescSuccess: {}, svalueImg: {}, }}

初始化的时候,对上传进行设置

for (let i = 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 (let i = 0; i < item.iNum; i++) {   // 图文视频上传函数   _this.handleTWSuccess[`${i}`] = function(res, file) {    _this.sEvaluate['2'][i].sImg.push(res.file.sFile)   }  }

时间倒计时

这个实现起来很简单,但是在vue Dom 中实时展示,要用$set方式

天,小时,分钟,秒的倒计时函数:

data里面:

data(){ return { letTimes: { nowTime: '' }, }}

methods里面:

countDown(times) {   const _this = this   let timer = null   timer = setInterval(function() {    let day = 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)   }  },

单纯分钟和秒倒计时

function resetTime(time){ var timer=null; var t=time; var m=0; var s=0; m=Math.floor(t/60%60); m<10&&(m='0'+m); s=Math.floor(t%60); function countDown(){  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)

小结

简单的小案例就分享到这里,国庆愉快,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 相关标签:vue教程
  • 本文发布HTML5中文学习网 ,转载请注明出处,感谢您!
  • 相关文章


  • 曝网友假装外国人写投诉信 ofo秒退押金并回函致歉
  • 苹果市值缩水逾2000亿美元 遭多家投行下调目标价
  • Asp.net Core与类库读取配置文件信息的方法_实用技巧
  • asp.net在Repeater嵌套的Repeater中使用复选框详解_实用技巧
  • 利用IIS调试ASP.NET网站程序的完整步骤_实用技巧
  • Asp.Net Core轻松学习系列之配置文件_实用技巧
  • ASP.NET 页生命周期概述(小结)_实用技巧
  • 详解ASP.NET Core WebApi 返回统一格式参数_实用技巧
  • 2018年网络流行语有哪些?2018年十大网络流行语盘点
  • 华为首席财务官孟晚舟被暂扣 深圳市政府要求加方立即放人!
  • 独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    kevin

    永远在学习的路上!

    相关教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 热门教程