美文网首页程序员Web前端之路
element-ui 限制日期选择(datepicker)

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

作者: 知止至得 | 来源:发表于2018-05-16 13:10 被阅读3610次

    需求场景如下:

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

    实现方法不难,利用了 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;
    }
    

    相关文章

      网友评论

        本文标题:element-ui 限制日期选择(datepicker)

        本文链接:https://www.haomeiwen.com/subject/lmjpdftx.html