vue中倒计时的用法
时间:2019-04-15
本文章向大家介绍vue中倒计时的用法,主要包括vue中倒计时的用法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
后台传递过来创建时间,前端进行倒计时十分钟,十分钟之后更改订单状态 把待支付改为过期或者其他 来验证订单状态
<template slot-scope="text, record" slot="status"> <span :class="tostatusclass(text)">{{text}} <br> <label v-if="record.countDown > 0">{{Countdown(record.countDown)}}</label></span>
//订单状态(未提交) 将毫秒数转化为分+秒
</template>
this.$axios.post('url',this.orderData, { headers:{ 'token':localStorage.getItem('token') } }).then(res=>{ //我们在请求过来后台数据中就先处理时间 let times = Date.parse(new Date()) //当前时间,本来应该由后台传回服务器时间,但是后台没有传,暂时已浏览器本机时间来计算 let expires = 10*60*1000 //有效时长,默认是10分钟,本来应该由后台给出,但是后台没给,暂时写死 for ( let i = 0 ; i<res.data.results.rows.length ; i++){ res.data.results.rows[i].countDown = 0 //在rows里面添加一个属性 cuntDown来计算两个时间之间的差值 if(res.data.results.rows[i].orderStatus =="待支付"){ res.data.results.rows[i].countDown = expires - (times - res.data.results.rows[i].createTime) //当前时间减去创建时间 得到差值 十分钟减去差值 差值小于0 订单已过期 if(res.data.results.rows[i].countDown < 0){ res.data.results.rows[i].orderStatus = "过期" //此处可以修正后端没有及时设置为已过期的问题 } } } this.data=res.data.results.rows if(this.interval){ //判断定时器这个属性是否为空,存在则清除 clearInterval(this.interval) } this.interval = setInterval(() => { //这个interval是在data(){return{}} 中创建,初始化为null 防止重复请求到这个页面定时器重复生成 for ( let i = 0 ; i<this.data.length ; i++){ if(this.data[i].orderStatus =="待支付"){ this.data[i].countDown = this.data[i].countDown - 1000 //data.countDown 这个新属性上面更改,不会影响视图层 if(this.data[i].countDown < 0){ this.data[i].orderStatus = "过期" //倒计时结束后设置过期 } } } }, 1000);
相应的处理函数
Countdown(time) { //将传递过来的时间戳差值转化为时分形式 let ts = time let days = parseInt(ts / (1000 * 60 * 60 * 24)); let hours = parseInt((ts % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); let minutes = parseInt((ts % (1000 * 60 * 60)) / (1000 * 60)); let seconds = (ts % (1000 * 60)) / 1000; let str = `${seconds}秒`; if(minutes > 0){ str = `${minutes}分钟${seconds}秒` } return str },
- 简单可视化-送你一双发现美的眼睛
- 享元模式
- 揭秘:针对中国移动用户的强大网银木马剖析
- 从源代码到Runtime发生的重排序编译器重排序指令重排序内存系统重排序阻止重排序
- 内存屏障保证缓存一致性优化
- 最新XSS 0day漏洞来袭,影响最新版本IE浏览器(含POC)
- Java内存模型—JMMhappens-before规则
- 那些年我们一起用过的Hybrid App
- 来看看美帝人民的安全意识:安全研究人员指责iOS版Outlook存在多处安全隐患
- 不是原配也可以-对接非原生配体
- oj放苹果
- 漏洞追踪:最新IE UXSS漏洞技术分析
- 如何使用Python超参数的网格搜索ARIMA模型
- int string相互转换
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Ceph RGW】找一个用Go写的s3cmd
- 技术分享 | 如何优雅地在 Windows 上从 MySQL 5.6 升级到 5.7
- SpringCloud分布式配置中心
- Sharding-Proxy的基本功能使用
- React-Redux 对Todolist修改
- 快排解决寻找数组中的第K个最大元素
- Docker六脉神剑(一) Mac极速体验
- React-Router 5.0 制作导航栏+页面参数传递
- Vue3.0快速入门(速查)
- 憧憬博客Nginx到Tengine的迁移
- SpringCloud微服务构建浅析
- 宋宝华:Linux设备与驱动的手动解绑与手动绑定
- ELK7.x日志系统搭建 1. elk基础搭建
- 腾讯云直播开发日记 (二)附近直播-直播礼物-直播回放
- 腾讯云直播开发日记(三) 聊天室-直播转码-连麦混流