vue 訂單列表 多個倒計時
阿新 • • 發佈:2021-11-08
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 }, }, . . .