vue超时计算的组件实例代码


Posted in Javascript onJuly 09, 2018

需要对预约单进行超时计算,但是后台和客户端时间不能保证一定一直,所以后台返回客户提交时间和请求结束时间的时间差进行计算。

 效果如下(此处只是demo效果,所以有点丑。)

vue超时计算的组件实例代码

父页面

<template>
  <div>
    <div class="dateDiv" :key="index" v-for="(item,index) in TimeArray">
      <p>{{item.name}}</p>
      <dateComponent :index="index" :key="item.timeDif" ref="dateComponent" :dateTimeStamp="item.timeDif"></dateComponent>
      <el-button @click="delUnit(index)">删除</el-button>
    </div>
  </div>
</template>
<script>
import datajson from '../index/data.json'
import dateComponent from './dateComponent'
export default {
  name:'timestamp',
  components:{
    dateComponent
  },
  data(){
    return {
      TimeArray: datajson.timestamp.TimeArray
      /*
  "timestamp":{
   "TimeArray":[{
    "name":"预约单2",
    "timeDif":"855000"
   },{
    "name": "预约单2",
    "timeDif": "801000"
   },{
    "name": "预约单3",
    "timeDif": "95000"
   },{
    "name": "预约单4",
    "timeDif": "45000"
   },{
    "name": "预约单5",
    "timeDif": "495000"
   },{
    "name": "预约单6",
    "timeDif": "195000"
   }]
  }
      */
    }
  },
  methods:{
    delUnit:function (index) {
      this.TimeArray.splice(index,1)
    }
  }
}
</script>
<style scoped>
.dateDiv{
  display: inline-block;
  border: 1px solid #e5e5e5;
  width: 200px;
  height: 80px;;
}
</style>

超时计算组件 overtimeComponent.vue

<template>
  <div>
    <span>{{formatTimeStamp}}</span>
  </div>
</template>
<script>
export default {
props:["dateTimeStamp","index"],
name:'dateComponent',
data(){
  return {
    flag:false,
    formatTimeStamp:"",
    interval : ""
  }
},
mounted() {
  var difValue = parseInt(this.dateTimeStamp);
  this.formatTimeStamp = this.setResultStr(difValue)
  this.interval = setInterval(() => {
    difValue += 1000
    this.formatTimeStamp = this.setResultStr(difValue)
  }, 1000);
},
beforeDestroy (){
  clearInterval(this.interval)
},
methods:{
  setResultStr:function (difValue) {
    var day = Math.floor(difValue / 1000 / 60 / 60 / 24);//天
    difValue = difValue % (1000 * 60 * 60 * 24);
    var hour = Math.floor(difValue / 1000 / 60 / 60);//小时
    difValue = difValue % (1000 * 60 * 60);
    var min = Math.floor(difValue / 1000 / 60);//分钟
    difValue = difValue % (1000 * 60);
    var second = Math.floor(difValue / 1000);
    if(day === 0 && hour==0 && min == 0){
      return "超时:" + second + "秒"
    }else if(day === 0 && hour==0){
      return "超时:" + min + "分" + second + "秒"
    }else if(day === 0){
      return "超时:" + hour + "小时" + min + "分" + second + "秒"
    }else{
      return "超时:" + day + "天" + hour + "小时" + min + "分" + second + "秒"
    }
  }
}
}
</script>
<style scoped>
</style>

总结

以上所述是小编给大家介绍的vue超时计算的组件实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于Jquery实现的一个图片滚动切换
Jun 21 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
Apr 23 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
浅谈Angular中ngModel的$render
Oct 24 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
Nov 29 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
Feb 17 Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 Javascript
node.js中express模块创建服务器和http模块客户端发请求
Mar 06 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
Apr 15 Javascript
微信小程序自定义底部弹出框
Nov 16 #Javascript
详解vue中组件参数
Jul 09 #Javascript
微信小程序实现手指触摸画板
Jul 09 #Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 #Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 #Javascript
js中Object.defineProperty()方法的不详解
Jul 09 #Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 #Javascript
You might like
单位速度在实战中的运用
2020/03/04 星际争霸
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
如何让CI框架支持service层
2014/10/29 PHP
微信支付开发交易通知实例
2016/07/12 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python中requests小技巧
2017/05/10 Python
python使用mysql数据库示例代码
2017/05/21 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
python实现机器学习之元线性回归
2018/09/06 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
军训新闻稿范文
2015/07/17 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers