为了账号安全,请及时绑定邮箱和手机立即绑定

如何动态 设置 iview DatePicker 控件的 禁用日期(option)

如何动态 设置 iview DatePicker 控件的 禁用日期(option)

FFIVE 2019-03-12 13:15:17
在公司开发的过程中遇到的问题,我们采用了iview的Vue框架。现有一个需求:用户在初始时页面后,DatePicker 的可选时间范围不作限制,用户可选择任意一天。当用户选择了某一天(planTime)后,并进行内容查询后,DatePicker的时间范围限制为 planTime 所在的这个月。一开始我的解决方法:设置两个 DatePicker,v-model都为planTime。当用户选择了某一天并进行查询后,通过判断 planTime 不为空显示”一开始就被限制了时间范围“的DatePicker控件。但是,因为我一开始不知道用户会选择哪一天,所以,此时我只能限制用户选择当前这个月。贴代码:<Form-item label="计划保养时间">    <div v-if="planTime == ''">      <Date-picker type="date" placeholder="请选择日期" v-model="planTime" :options="optionsOfTime" key="one"                   format="yyyy-MM-dd"></Date-picker>    </div>    <div v-else>      <Date-picker type="date" placeholder="请选择日期" v-model="planTime" key="two"                   format="yyyy-MM-dd"></Date-picker>    </div></Form-item>data() {      return {        optionsOfTime: {  // 约束计划保养时间          disabledDate(date) {            const myDate = new Date(),              day = myDate.getDate()            // 当一次制定多个保养计划时,限制只能选择这个月            return date && Date.now() + (getNumOfMouthDays() - day) * 86400000 < date.valueOf() || date.valueOf() < Date.now() - day * 86400000;          }        },        planTime: ''        }   }/** * 获取一个月有多少天 * @returns {number} */export const getNumOfMouthDays = () => {  var curDate = new Date();  /* 获取当前月份 */  var curMonth = curDate.getMonth();  /* 生成实际的月份: 由于curMonth会比实际月份小1, 故需加1 */  curDate.setMonth(curMonth + 1);  /* 由curMouth 加了1,所以这个是 curDate 是下个月的,setDate(0)之后就是这个月的最后一天 */  // setDate()方法用來設定日期物件中本地時間的日,也就是每個月中的幾號,傳入參數是一個1~31的整數。  // 若是傳入的值超出當月份的正常範圍,setDate()方法也會依據超出的數值進行計算,  // 譬如setDate(0)會讓日期變成前一個月的最後一天,setDate(-1)會讓日期變成前一個月的倒數第二天。  // 若當月有31天,那setDate(32)會讓日期變成下個月的第一天。  curDate.setDate(0);  /* 返回当月的天数 */   return curDate.getDate();}
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

1.首先不需要这么复杂
2.在用户没选择的时候,disableDate返回false
3.当用户选择了之后,非当前月的返回true

查看完整回答
反对 回复 2019-04-03
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

请问可以设置到具体的分钟不可以选吗 定时任务: 大于现在时间的10分钟后开始 24小时内 。我是想写一个带时间的日期选择的 不知道怎么弄?

刚刚看到关于时间的设置 我先去看看....


查看完整回答
反对 回复 2019-04-03
  • 3 回答
  • 0 关注
  • 5447 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号