关于 Vue.js+Element-UI 日期控件 日期范围选择

本文介绍了如何使用Vue.js结合Element-UI的日期控件实现日期范围的联动选择,确保前一时间框选择的日期不大于后一时间框,后一时间框的日期不小于前一时间框,同时提供了相关的官方文档链接供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理想效果 :
这里写图片描述


这里写图片描述


  1. 也就是说前面时间框的时间能选的范围应该小于等于后面的时间框;
  2. 后面时间框能选的范围应该大于等于前面的时间框;

示例代码 :

页面:
<el-form-item label="注册日期">
    <el-date-picker
            v-model="filters.column.create_start_date"
            type="date"
            :picker-options="pickerBeginDateBefore"
            format="yyyy-MM-dd"
            placeholder="">
    </el-date-picker>
</el-form-item>
<el-form-item label="至" label-width="25px">
    <el-date-picker
            v-model="filters.column.create_end_date"
            type="date"
            format="yyyy-MM-dd"
            :picker-options="pickerBeginDateAfter"
            placeholder="">
    </el-date-picker>
</el-form-item>

vue:
data () {
    return {
        filters: {
            column: {
                create_start_date: '',
                create_end_date: ''
            },
        },
        pickerBeginDateBefore:{
            disabledDate: (time) => {
                let beginDateVal = this.filters.column.create_end_date;
                if (beginDateVal) {
                    return time.getTime() > beginDateVal;
                }
            }
        },
        pickerBeginDateAfter:{
            disabledDate: (time) => {
                let beginDateVal = this.filters.column.create_start_date;
                if (beginDateVal) {
                    return time.getTime() < beginDateVal;
                }
            }
        }
    }
}

提交:
//这个请求封装了axios
api.request(url, data, (res)=> {
    /*
        查询之后格式this.filters.column.create_start_date中日期发生变化;
        Wed Aug 09 2017 00:00:00 GMT+0800 (中国标准时间) 变成了 "2017-08-08T16:00:00.000Z";
        所以使用 moment 日期格式化插件将时间转换成 [ Wed Aug 09 2017 00:00:00 GMT+0800 (中国标准时间) ] 格
        式;
    */

    /*moment 安装 npm install moment --save*/

   if(this.filters.column.create_start_date){
       this.filters.column.create_start_date = 
        moment(this.filters.column.create_start_date);
    }
    if(this.filters.column.create_end_date){
         this.filters.column.create_end_date = 
     moment(this.filters.column.create_end_date);
    }
})

传送门 :

Element-UI 官网 : http://element.eleme.io

vue 官网 : https://cn.vuejs.org/

moment日期转换插件中文官网 : http://momentjs.cn/

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值