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

在公司开发的过程中遇到的问题,我们采用了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();

}

https://img3.mukewang.com/5ca418ea00016e7008000543.jpg

FFIVE
浏览 5448回答 3
3回答

米脂

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

尚方宝剑之说

请问可以设置到具体的分钟不可以选吗 定时任务: 大于现在时间的10分钟后开始 24小时内 。我是想写一个带时间的日期选择的 不知道怎么弄?刚刚看到关于时间的设置 我先去看看....
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript