最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

element?時(shí)間選擇器禁用選擇的使用示例

 更新時(shí)間:2023年09月27日 09:36:24   作者:樹洞菇?jīng)? 
最近做項(xiàng)目遇到的一個(gè)功能,禁止用戶在輸入內(nèi)容的時(shí)候選擇今天以前的日期或者包含今日的日期,本文主要介紹了element?時(shí)間選擇器禁用選擇的使用示例,感興趣的可以了解一下

 本文主要介紹了element 時(shí)間選擇器禁用選擇的使用示例,具體如下:

方法一、年份或月份選擇都默認(rèn)yyyy-MM(disabledDate中,time.getTime() 的范圍是禁用的時(shí)間范圍)

1、在forbiddenDate之后的日期禁用不可選擇

<el-date-picker
  v-model="financialYearMonth"
  :value-format="'yyyy-MM'"
  type="month"
  :size="'small'"
  @change="getCwszSubj"
  placeholder="選擇日期"
  :picker-options="monthpickoption"
>
</el-date-picker>
export default {
  data() {
    return {
        monthpickoption:{
            // 設(shè)置禁用狀態(tài),參數(shù)為當(dāng)前日期,要求返回 Boolean
            disabledDate: (time) => {
                // 把默認(rèn)日期轉(zhuǎn)時(shí)間戳
                let date = new Date(this.forbiddenDate).getTime();
                // 當(dāng)前日期時(shí)間戳 > 默認(rèn)日期時(shí)間戳 則禁止默認(rèn)以后的日期,反之如果是小于禁用之前的日期
                return time.getTime() > date;
            },
        },
    }
  }
}

2、在開始日期和結(jié)束日期內(nèi)可以選擇,其他不可選擇,例如:yearMonthStart(開始日期)、yearMonthEnd(結(jié)束日期)

如果yearMonthStart:2016-01、yearMonthEnd:2023-02,那就只有2016-01至2023-02范圍內(nèi)的日期可以選擇

<el-date-picker
  v-model="financialYearMonth"
  type="monthrange"
  value-format="yyyy-MM"
  range-separator="至"
  start-placeholder="開始月份"
  end-placeholder="結(jié)束月份"
  :picker-options="pickerOptions"
>
</el-date-picker>
export default {
  data() {
    return {
        pickerOptions:{
            // 設(shè)置禁用狀態(tài),參數(shù)為當(dāng)前日期,要求返回 Boolean
            disabledDate: (time) => {
                // 開始日期
                let dateStart = new Date(that.yearMonthStart).getTime();
                // 結(jié)束日期
                let dateEnd = new Date(that.yearMonthEnd).getTime();
                // 在開始日期和結(jié)束日期內(nèi)可以選擇,其他不可選擇
                return time.getTime() < dateStart || time.getTime() > dateEnd;
            },
        },
    }
  }
}
export default {
  computed:{
    pickerOptions(){
      let that = this;
      return {
        disabledDate(time) {
          // 開始日期
          let dateStart = new Date(that.yearMonthDisableStart).getTime();
          // 結(jié)束日期
          let dateEnd = new Date(that.yearMonthDisableEnd).getTime();
          // 在開始日期和結(jié)束日期內(nèi)可以選擇,其他不可選擇
          return time.getTime() < dateStart || time.getTime() > dateEnd
        }
      }
    }
  },
}

方法二、

<div class="selectItem" v-show="monthShow">
   <el-date-picker
       v-model="trendData.date"
       :clearable="false"
       type="monthrange"
       :default-value="trendData.date"
       :picker-options="monthpickoption"
       value-format="yyyy-MM"
       range-separator="至"
       @change="onChangeDate"
       start-placeholder="開始日期"
       end-placeholder="結(jié)束日期">
    </el-date-picker>
</div>
export default {
  data() {
    return {
        trendData: {
            date: []
        },    
        minDate: null,
        maxDate: null,
        monthpickoption:{
            // 設(shè)置禁用狀態(tài),參數(shù)為當(dāng)前日期,要求返回 Boolean
            disabledDate: (time) => {
              if (this.minDate !== null && this.maxDate === null) {
                  let minMonth = this.minDate.getMonth(),
                  lastYear = new Date(this.minDate).setMonth(minMonth - 11),
                  nextYear = new Date(this.minDate).setMonth(minMonth + 11);
                let minTime = this.minDate.getTime()
                let nextTime = new Date().setMonth(new Date().getMonth() + 11)
                let lastTime = new Date().setMonth(new Date().getMonth() - 11)
               if (minTime <= nextTime || minTime >= lastTime){
                  //開始日期少于當(dāng)前月+12個(gè)月 并且大于當(dāng)前月-12個(gè)月,則表示只限制前面的范圍
                  return time.valueOf() > new Date().getTime() || time.valueOf() > nextYear.valueOf() || time.valueOf() < lastYear.valueOf()
                }
                else {
                  // 只能選 minDate 前后一年的范圍
                  return time.valueOf() < lastYear.valueOf() || time.valueOf() > nextYear.valueOf();
                }
              }else {
                let startMonth = this.trendData.date[0]
                let month = new Date(startMonth).getMonth()
                let lastMonth = new Date(startMonth).setMonth(month - 11)
                //如果有默認(rèn)值,只禁用開始日期,因?yàn)橐呀?jīng)限定了禁用未來范圍,且默認(rèn)值已經(jīng)為12個(gè)月范圍
                return this.monthPick(time) || time < lastMonth.valueOf();
              }
            },
            // 選中日期后會(huì)執(zhí)行的回調(diào),只有當(dāng) daterange 或 datetimerange 才生效
            onPick: ({minDate, maxDate}) => {
              this.minDate = minDate;
              this.maxDate = maxDate;
            }
        }
    }
  },
  methods: {
      monthPick(time){
          // 獲取當(dāng)前的月份信息
          const date = new Date() // 獲取當(dāng)前的時(shí)間基本信息,值是這樣的: Tue Jul 20 2021 14:59:43 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
          const year = date.getFullYear() // 獲取當(dāng)前年份,值是這樣的: 2021
          let month = date.getMonth() + 1 // 獲取當(dāng)前月份,值是這樣的: 6   getMonth()方法返回值是0-11,也就是1月份到12月份,所以要加上1,才是當(dāng)前月份
          if (month >= 1 && month <= 9) {
            // 如果是1月到9月就要在前面補(bǔ)上一個(gè)0   比如:02、07    月份這樣表示
            month = '0' + month
          }
          const nowDate = year.toString() + month.toString() // 轉(zhuǎn)換成字符串拼接,最終得到年和月,比如此時(shí)的時(shí)間是2021年7月20號(hào),所以nowDate的值是:202107
          // 獲取時(shí)間選擇器的月份信息
          const timeyear = time.getFullYear() // 獲取時(shí)間選擇器的年份(有很多)
          let timemonth = time.getMonth() + 1 // 與上面同理
          if (timemonth >= 1 && timemonth <= 9) {
            timemonth = '0' + timemonth
          }
          const elTimeData = timeyear.toString() + timemonth.toString()
          // 返回,時(shí)間選擇器的日期月份大于當(dāng)前日期的月份,又因?yàn)閐isabledDate函數(shù)是控制月份禁用不可選
          // 所以,最終就是:時(shí)間選擇器的月份大于當(dāng)前的月份,就都禁用掉,所以就實(shí)現(xiàn)了最終效果:
          // 大于等于當(dāng)前月份都不可選
          return elTimeData > nowDate // 這里雖然是字符串,但是弱類型語言js會(huì)做一個(gè)轉(zhuǎn)換,是可以比較大小的如: '202107' > '202008'
       },
    }
}

如果有些邏輯在data里處理不了  可以在methods處理:

8.64e7 是科學(xué)計(jì)數(shù)法算出的值,實(shí)際為(8.64×10×10×10×10×10×10×10),也就是一天毫秒數(shù)。

<el-date-picker
   v-model="yearMonth"
   type="date"
   placeholder="選擇日期"
   :picker-options="pickerOptions">
 </el-date-picker>
export default {
    data() {
      return {
           pickerOptions: {
               disabledDate: this.disabledGetTime
           }
        }
    },
    methods:{
        disabledGetTime(time) {
          return time.getTime() < Date.now() - 8.64e7 ||  time.getTime() > new Date(this.uptimed).getTime() - 8.64e7
        },
    }
}

禁止周六周日

disabledDate(time) {
      return (
        [0,6].includes(time.getDay())
      );
    },

到此這篇關(guān)于element 時(shí)間選擇器禁用選擇的使用示例的文章就介紹到這了,更多相關(guān)element 時(shí)間選擇器禁用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE3安裝element?ui失敗的原因以及解決辦法

    VUE3安裝element?ui失敗的原因以及解決辦法

    這篇文章主要給大家介紹了關(guān)于VUE3安裝element?ui失敗的原因以及解決的相關(guān)資料,很多朋友升級(jí)使用Vue3了,但在安裝element?ui失敗出錯(cuò)了,這里給大家總結(jié)下,需要的朋友可以參考下
    2023-09-09
  • 利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器實(shí)例代碼

    利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于如何利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue-router判斷頁面未登錄自動(dòng)跳轉(zhuǎn)到登錄頁的方法示例

    vue-router判斷頁面未登錄自動(dòng)跳轉(zhuǎn)到登錄頁的方法示例

    這篇文章主要介紹了vue-router判斷頁面未登錄自動(dòng)跳轉(zhuǎn)到登錄頁的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • typescript中this報(bào)錯(cuò)的解決

    typescript中this報(bào)錯(cuò)的解決

    這篇文章主要介紹了typescript中this報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue數(shù)據(jù)更新了但在頁面上沒有顯示出來的解決方法

    vue數(shù)據(jù)更新了但在頁面上沒有顯示出來的解決方法

    有時(shí)候 vue 無法監(jiān)聽到數(shù)據(jù)的變化,導(dǎo)致數(shù)據(jù)變化但是視圖沒有變化,也就是數(shù)據(jù)更新了,但在頁面上沒有顯示出來,所以本文給出了三種解決方法,通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 詳解Vue如何自定義hooks(組合式)函數(shù)

    詳解Vue如何自定義hooks(組合式)函數(shù)

    這篇文章主要為大家詳細(xì)介紹了在Vue中如何實(shí)現(xiàn)自定義hooks(組合式)函數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • vue element ui validate 主動(dòng)觸發(fā)錯(cuò)誤提示操作

    vue element ui validate 主動(dòng)觸發(fā)錯(cuò)誤提示操作

    這篇文章主要介紹了vue element ui validate 主動(dòng)觸發(fā)錯(cuò)誤提示操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式

    基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式

    這篇文章主要介紹了基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue路由傳參及獲取參數(shù)的方式總結(jié)

    vue路由傳參及獲取參數(shù)的方式總結(jié)

    這篇文章主要介紹了vue路由傳參及獲取參數(shù)的方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue中push()和splice()的使用解析

    vue中push()和splice()的使用解析

    這篇文章主要介紹了vue中push()和splice()的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論

滁州市| 夏邑县| 定州市| 含山县| 铁力市| 旌德县| 新干县| 呼图壁县| 丹东市| 五指山市| 中宁县| 宝坻区| 四川省| 乌鲁木齐市| 鲁甸县| 盈江县| 康马县| 岢岚县| 全椒县| 卫辉市| 宣恩县| 吉木乃县| 海盐县| 无为县| 监利县| 弥勒县| 楚雄市| 临桂县| 广昌县| 永年县| 石嘴山市| 五峰| 积石山| 花莲县| 五原县| 隆林| 遵义县| 威远县| 家居| 康马县| 黑山县|