zoukankan      html  css  js  c++  java
  • vue+element设置选择日期最大范围(优秀版)

    element的选择日期组件里没有像移动端vant直接设置max-date的api,因此在不能动态设置选择的第二个时间(需要分别选择起止时间和结束时间,但可以加上关联),

    看了很多博客有的效果直接出不来,有的代码格式看不懂要不就是不完全符合自己的需求,自己摸索看前人可取的方法终于实现了(帮后台写的,等写完后台需求已经不需要了,记录下笔记,例子范围是7天)

    效果:

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    </head>
    <body>
      <div id="app">
        <el-date-picker
           v-model="value1"
           type="date"
           placeholder="开始日期"
           value-format="timestamp"
           :picker-options="pickerOptions0">
        </el-date-picker>
        <el-date-picker
           v-model="value2"
           type="date"
           placeholder="结束日期"
           value-format="timestamp"
           :picker-options="pickerOptions1">
        </el-date-picker>
      </div>
    </body>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
    <script>
    new Vue({
        el: '#app',
        data(){
          return { 
            value1:'',
            value2:'',
            maxLength:7,         //设置两个日期的最大间隔
            pickerOptions0: {
              disabledDate:(time)=>{
                if(this.value2!=''){
                  //console.log(this.value2)     //清除结束日期时this.value2的值为null
                  if(this.value2===null){
                    return time.getTime() < Date.now();
                  }else{
                    let lastTime = this.value2-this.maxLength*24*3600*1000 + 8.64e7
                    return time.getTime() > this.value2 || time.getTime() < lastTime
                  }
                }else{
                  return time.getTime() < Date.now();                   //将比当前时间还早的时间不可选
                }
              }
            },
            pickerOptions1: {
              disabledDate:(time)=>{
                if(this.value1!=''){
                  let nextTime = this.value1+this.maxLength*24*3600*1000 - 8.64e7
                  return time.getTime() < this.value1||time.getTime() > nextTime;
                }else{
                  return time.getTime() < Date.now()
                }
              }
            },
          }
        },
    })
    </script>
    </html>
  • 相关阅读:
    20150119--无限级分类+商品分类-02
    20150119--无限级分类+商品分类 01
    20150117--SQL注入+验证码类-02
    20150117--SQL注入+验证码类
    20150116--Cookie+Session-02
    20150116--Cookie+Session
    20150115--SHOP项目架构+后台权限管理-02
    20150115--SHOP项目架构+后台权限管理
    20150113--PDO增删改查+封装PDO类-02
    20150113--PDO增删改查+封装PDO类
  • 原文地址:https://www.cnblogs.com/wd163/p/13490386.html
Copyright © 2011-2022 走看看