基于element-ui实现待支付订单显示定时器

表格显示内容:

<el-table-column label="订单状态" prop="state" align="center"><template slot-scope="scope">{{ _orderState[parseInt(scope.row.state)] }}<br><span style="color: #f10215" v-if="scope.row.state===1 && scope.row.ext.isPreOrderPaid !== true">{{timeObj[scope.row.orderNo]}}</span></template>
</el-table-column>

data中定义:

timeObj:{},

1、init()函数获取表格数据(dataList)后:

if(this.dataList){let that = this;this.dataList.forEach(elem =>{// 判断是否是待支付订单if(elem.state === 1 && elem.ext.isPreOrderPaid !== true){// 传递创建时间和订单编号参数that.deadLine(elem.createTime,elem.orderNo);}})
}

2、周期性执行状态函数

deadLine(createTime,id){let that = this;let interval = setInterval(() =>{that.countTime(createTime,id,interval)},1000)},

3、过期的数据改变状态为’已过期’

async countTime(createTime,id,interval) {let startTime = this.$formatIntValue(createTime);let nowTime = Date.parse(new Date()) / 1000;   // 当前时间时间戳 精确到秒let endTime = startTime + 30 * 60;   // 结束时间戳let downTime = (endTime - nowTime) > 0 ? (endTime - nowTime) : 0;let that = this;if (downTime <= 0) {clearInterval(interval);that.timeObj = {}let params = {orderNo: id};// 调用接口改变订单状态(此处可以和后端协商:后端也用定时器到期后改变订单状态,这样就无需调用接口改变状态,也无需调用接口刷新表格数据,前端遍历表格数据将该订单状态改为过期即可)let res = await this.$api('Order.CancelOrder', params);// 刷新表格数据if(res) {that.init()};//超时 事件处理} else {downTime--;let min = Math.floor(downTime % 3600)let val = that.$formatBit(Math.floor(downTime / 3600)) + ':' +    that.$formatBit(Math.floor(min / 60)) + ':' + that.$formatBit(downTime % 60);//响应式修改数据,确保数据改变时视图同步更新this.$nextTick( async ()=>{this.$set(that.timeObj,id,val)})}
},

说明:
$formatIntValue是自己封装的函数,用于将数据转为整型
$formatBit用于将1位数补0,如:1–>01

Vue.prototype.$formatBit = function (val) {val = +valreturn val > 9 ? val : '0' + val
}

注:原创代码,可能存在性能问题,有需要者可自行优化

基于element-ui实现待支付订单显示定时器相关推荐

  1. Vue HTML:在Vue上写Html遇到的一些问题,html的首行缩进,html的行间距,element UI的回到顶部不显示

    Vue & HTML:在Vue上写Html遇到的一些问题,html的首行缩进,html的行间距,element UI的回到顶部不显示 资源: HTML 教程- (HTML5 标准) 怎么快速上 ...

  2. vue2 - 基于Element UI实现上传Excel表单数据功能

    一.项目场景 批量数据上传后台,需要从后台下载一个固定格式的 Excel表格,然后在表格里面添加数据,将数据格式化,再上传给后台,后台做解析处理,往数据库添加数据 二.实现功能展示 点击导入excel ...

  3. 【vue】Element UI实现表格表头纵向显示

    element实现表格表头纵向显示 我们正常使用Element UI写表格的时候,<el-table-column/> 标签里面都是纵向的.那么我们的需求有时候会要求行列转换,那么来看看咋 ...

  4. 基于Element ui 实现输入框只能输入数字并支持千分位

    实现效果 设置子组件 <template><el-inputref="money"v-model.trim="money":placehold ...

  5. axure element ui素材_【Axure分享】基于Element UI的Axure Web组件

    有一段时间没做过产品原型了,前一阵有一个web产品需要做原型,正好在搞前端,于是顺便把Element UI移植到Axure上,基本上实现了大部分的功能组件,部分过于繁琐的组件未实现. 自己觉得蛮满意的 ...

  6. element ui el-table 无数据时显示默认空图片(el-empty)

    当获取后台数据为空时,列表显示默认空图片,不正确姿势: <el-tablev-loading="isLoading":data="deviceListData&qu ...

  7. Element UI table超出文本部分显示省略号,鼠标悬浮显示全部内容

    1.先看下效果图: 当鼠标放置在第二行地址上时,会显示地址信息的全部内容. 2.本网页是vue项目,依赖啥的就不说了,直接上table.vue详尽代码 <template><div& ...

  8. 基于element ui的收起展开检索条件效果

    <el-button type="text" style="margin-left:600px;color: #8cc5ff;text-decoration: un ...

  9. vue2.0基于element ui 上月 本月 下月

    <div style="margin-bottom:15px ;float:right;"><el-button-group><el-button p ...

  10. 基于element UI的省(市)(区)三级(二级)(一级)联动数据以及使用方法

    使用方法: <el-form-item label="省/市/区" required prop="homeDistrict"><el-casc ...

最新文章

  1. 1 Zookeeper安装
  2. BCompare日志
  3. 深度学习图片分类CNN模板
  4. asterisk extconfig.conf文件解析
  5. dom4j的读写xml文件,读写xml字符串
  6. 页面加载完时再动态添加脚步
  7. 2020 年,为什么非要采用 DevOps 文化不可?
  8. 利用dns来ping通所有主机名的方法,免去一条条配置hosts
  9. python/匿名函数和内置函数
  10. 渗透测试入门25之一次完整的渗透测试实验
  11. 软考信息安全工程师备考笔记6:第六章网络安全技术与产品备考要点
  12. 解决getJSON跨域登录Session丢失的问题
  13. 能源管理系统—能源在线监测平台搭建
  14. 运算电路的基本定义和运算电路经典基本电路图
  15. [K/3Cloud]关于选单操作
  16. nginx搭建及配置
  17. FOne easyModelVerifier™ 模型/代码Back-to-Back自动化验证工具
  18. 一梦江湖获取服务器信息后没有登录,一梦江湖登录不上怎么办 登录不上解决方案...
  19. Object.keys、Object.values、Object.entries详解
  20. MVVM和MVC模型

热门文章

  1. iTest使用说明_V4.5.1
  2. 仿古建筑为什么那么丑
  3. IntelliJ Save Action
  4. 基于GITHUB ACTION的定时任务,真香!
  5. Spring实战第五章
  6. 保护系统 WinXP故障恢复控制台完全指引
  7. 赵小楼《天道》《遥远的救世主》深度解析(35)你觉得叶晓明、冯世杰、刘冰是底层吗?
  8. 启动日志中出现The APR based Apache Tomcat Native library which allows optimal performance in production env
  9. NOI 4.3 1538: Gopher II(匈牙利算法求最大匹配)
  10. ACSII,GB2312,GBK,GB18030,Unicode,UTF8,UTF16,UTF32,BOM区别与转换——字符编码最全总结