富贵资源网 Design By www.hznty.com

前言

今天记录几个简单的小问题,前端时间开发用到的,之前看到博客中没有记录,简单记录一下。 一个是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="/UploadFiles/2021-04-02/imageUrl">

假如有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="/UploadFiles/2021-04-02/`${viewUrl}${svalueImg[item.value]}`">

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

我们在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' "htmlcode">
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)

小结

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

富贵资源网 Design By www.hznty.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
富贵资源网 Design By www.hznty.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。