zoukankan      html  css  js  c++  java
  • vue+elementUI 时间范围选择器

    1、引入组件

    <div>
      <el-date-picker type="date" placeholder="选择开始日期" :picker-options="pickerOptionsStart" v-model="startTime" @change="startTimeChang"></el-date-picker>
      <el-date-picker type="date" placeholder="选择结束日期" :picker-options="pickerOptionsOver" v-model="endTime" @change="endTimeChang"></el-date-picker>
      <el-button style="margin-left: 10px;" plain size="mini" @click="theWeek">最近一周</el-button>
      <el-button style="margin-left: 10px;" type="primary" @click="searchTime" icon="el-icon-search">查询</el-button
    </div>

    2、js 定义

    data() {
        return {
          startTime: ‘’,
          endTime: ‘’,
          pickerOptionsStart: {
            disabledDate (time) {
              return time.getTime() < 1488297600000 || time.getTime() >= Date.now();
            }
          },
          pickerOptionsOver: {
            disabledDate (time) {
              return time.getTime() < 1488297600000 || time.getTime() >= Date.now();
            }
          }
        };
      }

    初始化定义:(最近一周)

     startTime: this.dateFilter(new Date() - 3600 * 1000 * 24 * 7),
     endTime: this.dateFilter(new Date()),

    3、时间格式化方法,@change的方式取值

        dateFilter:function (input) {
              var d = new Date(input);
              var year = d.getFullYear();
              var month = d.getMonth() <9 ? '0' + (d.getMonth() + 1) : '' + (d.getMonth() + 1);
              var day = d.getDate() <10 ? '0' + d.getDate() : '' + d.getDate();
              // var hour = d.getHours();
              // var minutes = d.getMinutes();
              // var seconds = d.getSeconds();
              return  year+ '-' + month + '-' + day;
        },
        startTimeChang (val) {
          let startTime = this.dateFilter(val);
          this.startTime = startTime;
        },
        endTimeChang (val) {
          let endTime = this.dateFilter(val);
          this.endTime = endTime;
        },

    4、查询

      async searchTime() {
          let param = {
            userId: this.$store.state.userInfo.userId,
            startTime: this.startTime,
            endTime: this.endTime
          };
          try {
            const reportData = await getTeamReportList(param);
            if (reportData.result) {
              console.log(reportData);
    
              this.reportList = reportData.data;
            } else {
              throw new Error(reportData.msg);
            }
          } catch (err) {
            this.$message.error(err.message);
            console.log('获取数据失败', err);
          }
        }
      }

    5、最近一周查询

        async theWeek() {
          const end = new Date();
          const start = new Date();
          start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
    
          this.startTime = this.dateFilter(start);
          this.endTime = this.dateFilter(end);
          this.searchTime();
        },
    this.dateFilter(start):时间格式化

    -
    -
    -
    -
    -

    附:时间段组件设置默认时间段
    (最近一小时)

    html:

    <el-date-picker v-model="valueTime" type="datetimerange" align="right"  start-placeholder="开始日期" end-placeholder="结束日期" size="mini"> </el-date-picker>

      js:

    data() {
        return {
            valueTime: [new Date().getTime(), new Date().getTime() + ((1 * 60 * 60 * 1000) - 1)],
        }
    }
     
  • 相关阅读:
    线程池execute执行顺序
    三个线程交替打印1到100
    mysql优化
    最大回文子串
    AOP实现日志收集和记录
    LoadingCache缓存使用(LoadingCache)
    springboot项目在idea中实现热部署
    idea破解
    linux常用命令
    Oracle的分条件计数COUNT(我的条件),由浅入深
  • 原文地址:https://www.cnblogs.com/miny-simp/p/9078251.html
Copyright © 2011-2022 走看看