亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

element上傳組件循環引用及簡單時間倒計時的實現

發布時間:2020-10-15 14:54:39 來源:腳本之家 閱讀:196 作者:Haorooms 欄目:web開發

前言

今天記錄幾個簡單的小問題,前端時間開發用到的,之前看到博客中沒有記錄,簡單記錄一下。 一個是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)

小結

簡單的小案例就分享到這里,國慶愉快,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭山县| 河北区| 岳西县| 碌曲县| 库伦旗| 呼伦贝尔市| 昆山市| 临汾市| 临洮县| 阳西县| 泰来县| 大理市| 吉首市| 蚌埠市| 崇信县| 宝清县| 龙口市| 察雅县| 罗城| 郓城县| 固原市| 河西区| 凌源市| 利津县| 黄浦区| 张北县| 石河子市| 芒康县| 马山县| 太和县| 海林市| 喀什市| 顺昌县| 通榆县| 邯郸市| 民丰县| 丹阳市| 偏关县| 新丰县| 乌兰县| 苏尼特右旗|