element-ui 限制日期选择(datepicker)

需求场景如下:

  • 指定起止日期,后选的将会受到先选的限制
  • 不同的日期选择器,不过也存在关联关系

实现方法不难,利用了 change 事件,动态改变 picker-options 中的 disableDate 即可。

查看Demo

Template

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.3.8/lib/index.js"></script>
<div id="app">
<template>
  <div class="block">
    <span class="demonstration">起始日期</span>
    <el-date-picker v-model="startDate" type="date" placeholder="选择日期" :picker-options="pickerOptionsStart" @change="changeEnd">
    </el-date-picker>
  </div>
 
  <div class="block">
    <span class="demonstration">截止日期</span>
    <el-date-picker v-model="endDate" type="date" placeholder="选择日期" :picker-options="pickerOptionsEnd" @change="changeStart">
    </el-date-picker>
  </div>
</template>
</div>

Script

var Main = {
    data() {
      return {
        pickerOptionsStart: {},
        pickerOptionsEnd:{},
        startDate: '',
        endDate: '',
      };
    },
    methods:{
      changeStart (){
        this.pickerOptionsStart = Object.assign({},this.pickerOptionsStart,{
          disabledDate: (time) => {
            return time.getTime() > this.endDate
          }
        })
      },
      changeEnd (){
        this.pickerOptionsEnd = Object.assign({},this.pickerOptionsEnd,{
          disabledDate: (time) => {
            return time.getTime() < this.startDate
            }
        })
      }
    }
  };
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

Style

@import url("//unpkg.com/element-ui@2.3.8/lib/theme-chalk/index.css");

.block{
  margin-top:10px;
}
    原文作者:知止至得
    原文地址: https://www.jianshu.com/p/c59c8ef6c500
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞