• 倒计时列表实现(小程序端&Vue)


    1. //rich-text主要用来将展示html格式的,可以直接使用这个标签
    2. <view class="ptBox" v-for="(item,index) in orderList" :key="index">
    3. <rich-text :nodes="item.limit_time|limitTimeFilter">rich-text>
    4. view>

    引入工具方法

    import {formateTimeStamp} from '@/utils/index.js'
    1. filters: {
    2. // 拼团有效期的filter
    3. limitTimeFilter (val){
    4. if (val > 0) {
    5. let formateLimitTimes = formateTimeStamp(val);
    6. let txt = `
    7. ${formateLimitTimes.hour}
  • :
  • ${formateLimitTimes.min}
  • :
  • ${formateLimitTimes.seconds}
    `
    ;
  • return txt;
  • } else {
  • const twtxt = `0 时 0 分 0 秒`
  • return twtxt;
  • }
  • }
  • },
    1. async findPinTuanOrderVos(){
    2. try{
    3. let res=await findPinTuanOrderVos();
    4. //数组返回的restHour:剩余小时
    5. //restMinute :剩余分钟
    6. //restSecond :剩余秒
    7. this.orderList=res.map((vs)=>{ //更新数组
    8. return {
    9. //将返回的时分秒,计算成时间戳
    10. ...vs,limit_time:Number(vs.restHour*3600)+Number(vs.restMinute*60)+Number(vs.restSecond) }
    11. })
    12. this.ticker = setInterval(() => { //执行循环
    13. for(let i=0;ilength;i++){
    14. //每循环一次将时间戳减一
    15. this.orderList[i].limit_time=this.orderList[i].limit_time - 1
    16. }
    17. },1000)
    18. }catch(v){
    19. }
    20. },

    工具类封装

    1. //utils/index.js
    2. // 计算出时间戳的具体数据:比如将85400转化为 n时n分n秒
    3. export function formateTimeStamp (timeStamp) {
    4. var hour;
    5. var min;
    6. var seconds;
    7. hour = parseInt(timeStamp / (60 * 60)) // 计算整数小时数
    8. var afterHour = timeStamp - hour * 60 * 60 // 取得算出小时数后剩余的秒数
    9. min = parseInt(afterHour / 60) // 计算整数分
    10. seconds = parseInt(timeStamp - hour * 60 * 60 - min * 60) // 取得算出分后剩余的秒数
    11. if (hour < 10) {
    12. hour = '0' + hour
    13. }
    14. if (min < 10) {
    15. min = '0' + min;
    16. }
    17. if (seconds < 10) {
    18. seconds = '0' + seconds;
    19. }
    20. const restTime = {
    21. hour: hour,
    22. min: min,
    23. seconds: seconds
    24. }
    25. return restTime
    26. }

  • 相关阅读:
    深潜Kotlin协程(十八):冷热数据流
    K8s Docker实践二
    Jenkins 系列:Jenkins 安装(Windows、Mac、Centos)和简介
    NuGet打包类库并上传教程
    华为防火墙基础自学系列 | VdPdNd概述
    Druid连接池的快速使用
    【韩顺平 零基础30天学会Java】面向对象编程(中级)
    【04】概率图表示之贝叶斯网络
    uniapp 安卓保活插件 Ba-KeepAlive
    报错:npm ERR code EPERM
  • 原文地址:https://blog.csdn.net/qq_41429765/article/details/133087550