1. 程式人生 > 其它 >vue 訂單列表 多個倒計時

vue 訂單列表 多個倒計時

js

methods: {
  // 獲取列表資料
  getList() {
    .
    .
    .
    // 判斷資料是否含有倒計時
    this.orderData.forEach((item, index) => {
      // 有倒計時
      if (item.type == 1) {
        this.orderData[index].timer = setInterval(() => {
        this.Cuntdow(item.time, index)}, 1000)
      }
    })
    .
    .
    .
  },
  
// 倒計時 CountDown(time, index) { if (time > 0) { this.orderData[index].time-- } else { clearInterval(this.order[index].timer)      // 更新訂單列表 // update(OrderId) } }, }

html

<template>
    <div>
    <ul>
      <li v-for="(item, index) in orderData"
:key="index">         <span v-if="item.type == 1 && item.time > 0">           {{ item.time | formatStr }}         </span>       </li>
    </
ul></div> </template>

js(filter 過濾器格式化時間)

注:安裝外掛moment

import moment from 'moment'
.
.
.
filters: {
    // 格式化時間
    formatStr(Val) {
      let time = moment.duration(Val, 'seconds')
      let DD = time.days() > 0 ? time.days() + '天' : ''
      let HH = `${time.hours() > 9 ? time.hours() : '0' + time.hours()}時`
      let mm = `${time.minutes() > 9 ? time.minutes() : '0' + time.minutes()}分`
      let ss = `${time.seconds() > 9 ? time.seconds() : '0' + time.seconds()}秒`
      return '剩餘' + DD + HH + mm + ss
    },
  },
.
.
.