Vue 点击时间获取时间段查询

最近做了一个按时间段查询的案例,效果图如下
这里写图片描述
html代码

<template>
<div class="personalReport_time">
      <input type="date" :max="this.endTime" value=""  v-model="startTime"/>
      <div></div>
      <input type="date" :min="startTime" :max="this.maxTime" v-model="endTime"/>
    </div>
    <ul class="personalReport_date">
      <li @click="query('today')">今天</li>
      <li @click="query('yesterday')">昨天</li>
      <li @click="query('weeks')">本周</li>
      <li @click="query('lastWeek')">上周</li>
      <li @click="query('month')">本月</li>
      <li @click="query('lastMonth')">上月</li>
    </ul>
    <div>
      <button @click="query" class="but">查询</button>
    </div>
    </template>

vue.js代码 点击事件

//获取时间、
//时间解析;
    Time:function(now)   {
    let year=new Date(now).getFullYear();
    let month=new Date(now).getMonth()+1;
    let date=new Date(now).getDate();
    if (month < 10) month = "0" + month;
    if (date < 10) date = "0" + date;
    return   year+"-"+month+"-"+date
  },
    //本周第一天;
    showWeekFirstDay:function()
  {
    let Nowdate=new Date();
    let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
    let M=Number(WeekFirstDay.getMonth())+1;
    if(M<10){
      M="0"+M;
    }
    let D=WeekFirstDay.getDate();
    if(D<10){
      D="0"+D;
    }
    return WeekFirstDay.getFullYear()+"-"+M+"-"+D;
  },
    //本周最后一天
    showWeekLastDay:function ()
  {
    let Nowdate=new Date();
    let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
    let WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
    let M=Number(WeekLastDay.getMonth())+1;
    if(M<10){
      M="0"+M;
    }
    let D=WeekLastDay.getDate();
    if(D<10){
      D="0"+D;
    }
    return WeekLastDay.getFullYear()+"-"+M+"-"+D;
  },
    //获得某月的天数:
    getMonthDays:function (myMonth){
    let monthStartDate = new Date(new Date().getFullYear(), myMonth, 1);
    let monthEndDate = new Date(new Date().getFullYear(), myMonth + 1, 1);
    let   days   =   (monthEndDate   -   monthStartDate)/(1000   *   60   *   60   *   24);
    return   days;
  },
//点击事件
query:function (way) {
      let self=this;
      this.$refs.pag.currentPage=1;
      this.page=this.$refs.pag.currentPage;
      switch (way){
        case 'today':
          this.startTime=this.maxTime;
          this.endTime=this.maxTime;
          break;
        case 'yesterday':
          this.startTime=this.Time(new Date().getTime()-24*60*60*1000);
          this.endTime=this.Time(new Date().getTime()-24*60*60*1000);
          break;
        case 'weeks':
          this.startTime=this.showWeekFirstDay();
          this.endTime=this.maxTime;
          break;
        case 'lastWeek':
          this.startTime=this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()-new Date().getDay()-6));
          this.endTime=this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()+(6-new Date().getDay()-6)));
          break;
        case 'month':
          this.startTime=this.Time(new Date(new Date().getFullYear(), new Date().getMonth(),1));
          this.endTime=this.maxTime;
          break;
        case 'lastMonth':
          this.startTime=this.Time(new Date(new Date().getFullYear(),new Date().getMonth()-1,1));
          this.endTime=this.Time(new Date(new Date().getFullYear(),new Date().getMonth()-1,this.getMonthDays(new Date().getMonth()-1)));
          break;
      }
      this.$axios({
        method:'post',
        url:'/inter/user/queryMemberReport',
        data:{
          'account':this.account,
          'baseLotteryId':this.lottersId,
          'startTime':this.startTime,
          'endTime':this.endTime
        }
      }).then(function (data) {
//        console.log(data)
      }).catch(function (error) {
        console.log(error);
      })
    }

这样一个点击查询时间段的效果就可以实现了

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue实现点击时间获取时间查询功能可以通过监听点击事件来实现。 首先,需要在Vue组件的data中定义一个变量,用来存储用户点击的开始时间和结束时间。例如:startTime和endTime。 然后,在模板中将时间划分成多个小格子,可以使用v-for指令循环渲染,将每个小格子对应的时间绑定到一个点击事件上。 在点击事件的触发函数中,可以通过传入的参数获取用户点击的具体时间,将这个时间赋值给对应的变量。例如:通过点击事件获取到的时间赋值给startTime。 最后,在组件中可以使用计算属性或者方法来实现根据用户选择的时间进行查询操作。例如,在计算属性中定义一个查询结果的方法,通过传入的开始时间和结束时间作为参数进行查询,最后返回查询结果。 整个过程流程如下: 1. 在Vue组件的data中定义startTime和endTime变量。 2. 在模板中使用v-for指令循环渲染小格子,并将每个小格子对应的时间绑定到一个点击事件上。 3. 在点击事件的触发函数中,将点击时间赋值给对应的变量。 4. 在计算属性或者方法中实现根据用户选择的时间进行查询操作,返回查询结果。 需要注意的是,根据实际需求,还需要考虑如何处理用户多次点击的情况,例如可以使用一个标志位来表示用户是否已经选择了开始时间和结束时间,以及如何处理开始时间大于结束时间的情况等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值