国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

element ui datepicker時間控件實現(xiàn)范圍選擇周,季,年。

這篇具有很好參考價值的文章主要介紹了element ui datepicker時間控件實現(xiàn)范圍選擇周,季,年。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

因項目要求,需日,周,月,季,年五種日期范圍選擇器,故參考文章(在末尾)后分享

一.效果圖

date-picker支持年范圍選擇,element,ui,javascript,前端,vue.js,elementui

?date-picker支持年范圍選擇,element,ui,javascript,前端,vue.js,elementui

?date-picker支持年范圍選擇,element,ui,javascript,前端,vue.js,elementui

二、版本及下載
1.實現(xiàn)需要修改源碼,目前修改的版本為2.15.3,所以想要實現(xiàn)該方法,請先將elementui升級或者降到2.15.3.

date-picker支持年范圍選擇,element,ui,javascript,前端,vue.js,elementui
2.將lib包替換到node_module/element-ui下的lib
lib包下載地址
https://download.csdn.net/download/qq_39019765/44321511

具體參考:原文鏈接:https://blog.csdn.net/m0_67391518/article/details/123266454

三、代碼中的使用

此為utils下的common.js文件,用于處理周選擇器顯示

//將日期轉換成一年中的第幾周
export function getYearWeek(date) {
    //按照國際標準
    let time,
        week,
        checkDate = new Date(date);
    checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
    time = checkDate.getTime();
    checkDate.setMonth(0);
    checkDate.setDate(1);
    week = Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
    return week;
}

//返回格式 2019年第23周,特別注意跨年一周的問題
export function getYearAndWeek(date, anotherDate) {
    let week = getYearWeek(date);
    let year = date.substring(0, 4);
    let anotherYear = anotherDate.substring(0, 4);
    //處理跨年特殊日期
    if (anotherDate > date) {
        let betweenDay = getBetweenDay(new Date(date), new Date(anotherDate));
        if (betweenDay == 7 && anotherYear != year) {
            if (week == 1) {
                year = parseInt(year) + 1;
            }
        }
    } else {
        let betweenDay = getBetweenDay(new Date(anotherDate), new Date(date));
        if (betweenDay == 7 && anotherYear != year) {
            if (week != 1) {
                year = parseInt(year) - 1;
            }
        }
    }
    return `${year}年第${week}周`;
}
export function getBetweenDay(beginDate, endDate) {
    let dateSpan = endDate - beginDate;
    dateSpan = Math.abs(dateSpan);
    let days = Math.floor(dateSpan / (24 * 3600 * 1000));
    return days + 1;
}

??

type新增季選擇器:quarterrange,年選擇器:yearrange,周選擇器直接在日選擇器daterange上修改的,通過添加format來進行判斷

代碼中,通過添加key值實現(xiàn)點擊切換,判斷timeName是否為周來進行周選擇器處理數據

<el-date-picker
    ref="refDatePicker"
    v-model="birthday"
    :type="TimeType"
    :key="TimeType"
    @change="changeDate"
    :format="timeName === '周' ? format : ''"
    start-placeholder="開始日期"
    end-placeholder="結束日期"
    :picker-options="pickerOptions"
    value-format="yyyy-MM-dd">
</el-date-picker>

// 引入common的getYearAndWeek用于處理周選擇器
import { getYearAndWeek } from "@/utils/common.js"

<script>
import { getYearAndWeek } from "@/utils/common.js"
import dayjs from 'dayjs'  // 引入dayjs
export default {
  data() {
     // 處理點擊切換type時選擇器的層級問題
    const clickFuncGenerator = (picker, type, text) => {
      this.TimeType = type
      picker.$emit('pick', new Date())
      setTimeout(() => {
        this.$refs.refDatePicker.focus()
        this.timeName = text
      }, 200)
    }
    return {
      TimeType:'daterange',
      dataForm:{},
      time: "week",
      timeName:"",
      birthday: '',
      pickerOptions: {
        firstDayOfWeek: 1,
        shortcuts: [{
          text: '日',
          onClick: picker => clickFuncGenerator(picker, 'daterange', '日')
        }, {
          text: '周',
          onClick: picker => clickFuncGenerator(picker, 'daterange', '周')
        }, {
          text: '月',
          onClick: picker => clickFuncGenerator(picker, 'monthrange', '月')
        }, {
          text: '季',
          onClick: picker => clickFuncGenerator(picker, 'quarterrange', '季')
        }, {
          text: '年',
          onClick: picker => clickFuncGenerator(picker, 'yearrange', '年')
        }]
      },
    };
  },
  computed: {
    //用于處理周選擇器
    format: {
      get() {
        let timeType = this.time;
        let date = this.birthday;
        if ("week" == timeType && date && date.length > 0) {
          let beginYearWeek = getYearAndWeek(date[0], date[1]);
          let endYearWeek = getYearAndWeek(date[1], date[0]);
          return beginYearWeek + endYearWeek;
        } else {
          return "";
        }
      }
    }
  }
  methods: {
    changeDate() {
      if (this.birthday) { // 如果已選擇
        if (this.timeName !== '周') {
          this.advancedSearch.beginTime = this.birthday[0]
          this.advancedSearch.endTime = this.birthday[1]
          this.getDataList()
        } else {  // 如果是周選擇器,引入day用于處理周選擇器,開始和結束的周時間加1天
          this.advancedSearch.beginTime = dayjs(this.birthday[0]).startOf('week').add(1, 'day').format('YYYY-MM-DD')
          this.advancedSearch.endTime = dayjs(this.birthday[1]).endOf('week').add(1, 'day').format('YYYY-MM-DD')
          this.getDataList()
        }
      } else {
        this.advancedSearch.beginTime = ''
        this.advancedSearch.endTime = ''
        this.getDataList()
      }
    },
  },
};
</script>

?dayjs的官方網站Day.js中文網

此文參考:

1.vue elementui時間控件,(單框同時選)范圍選擇周,季,年。_打雜的程序員的博客-CSDN博客_vue 時間控件

2.element-ui中的el-date-picker日期選擇器, 周選擇器獲取當前選中周,并顯示當日期時間段_八神異步的博客-CSDN博客_el-date-picker 選擇周文章來源地址http://www.zghlxwxcb.cn/news/detail-799223.html

到了這里,關于element ui datepicker時間控件實現(xiàn)范圍選擇周,季,年。的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • element-ui 時間日期選擇器限制選擇范圍

    element-ui 時間日期選擇器限制選擇范圍

    組件代碼 場景1:設置選擇今天及今天之后的日期 情景2: 設置選擇今天以及今天以前的日期 情景3: 設置選擇三個月之內到今天的日期 情景4: 設置選擇最大范圍為30天

    2024年02月12日
    瀏覽(23)
  • 1、關于Element-UI日期范圍選擇器控件添加清空、確定按鈕

    1、關于Element-UI日期范圍選擇器控件添加清空、確定按鈕

    1、日期控件原來樣式 現(xiàn)在我們需要在日期控件右下角添加按鈕(如下方示例) 2、實現(xiàn)方式

    2024年02月16日
    瀏覽(28)
  • ElementUI日期選擇器DatePicker限制所選時間范圍(例如限制前后時長不超一個月)的實現(xiàn)

    ElementUI日期選擇器DatePicker限制所選時間范圍(例如限制前后時長不超一個月)的實現(xiàn)

    未選擇時間時,最初選擇時間不能超過今天 選擇初始時間后,第二個選擇的時間前后不能超過初始時間的一個月。且此時下拉框變成禁用狀態(tài)。 例如:點擊7月15日后,在8月14日往后的日期全部禁止選中 7月15日前一個月的6月15日之前的日期也全部禁止選中 選好起始時間和結束

    2024年02月14日
    瀏覽(23)
  • element-ui 日期時間選擇控件DateTimePicker 帶快捷方式,配置默認時間

    element-ui 日期時間選擇控件DateTimePicker 帶快捷方式,配置默認時間

    前言:好記性不如爛筆頭 帶快捷方式的 可設置默認時間 js中的Date對象?setHours()方法—— Date .setHours( hour,min,sec,millisec ),如new Date().setHour(0, 0, 0),new Date().setHour(23, 59, 59) 帶快捷鍵的,關鍵屬性picker-options,單個日期時間的選擇或者日期時間段的選擇都可以用 配置:picker-optio

    2024年02月11日
    瀏覽(21)
  • element ui el-date-picker日期時間選擇器 設置只能選擇不大于30天時間范圍

    element ui el-date-picker日期時間選擇器 設置只能選擇不大于30天時間范圍

    需求:要求日期時間選擇器只能選擇最多32天,其他日期為不可點擊狀態(tài)。 日期組件type為daterange或者datetimerange都生效 通過屬性picker-options html data 效果 參考鏈接:https://www.jianshu.com/p/2a07de981fab

    2024年02月04日
    瀏覽(29)
  • element ui的日期選擇器動態(tài)設定年份,并默認顯示在該年份范圍的日期時間

    element ui的日期選擇器動態(tài)設定年份,并默認顯示在該年份范圍的日期時間

    選中某個年份,讓日期選擇器只能選擇該年份內的時間,并且默認顯示該年份的時間(由于日期選擇器默認顯示為當前時間,所以需要跳轉到選擇的年份) 例:年份選擇了2022年,那么日期選擇也相應顯示到2022年,對月日沒有要求,月日默認顯示為當前日期的月日,只是年份變

    2024年02月13日
    瀏覽(30)
  • Element UI中日期選擇日(date-picker)等其他選擇器下拉顯示錯位、位置錯誤解決

    Element UI中日期選擇日(date-picker)等其他選擇器下拉顯示錯位、位置錯誤解決

    給選擇器加上唯一key(下面的想看就看) 需求是用一個下拉切換時間維度的選擇,分別為年度、季度、月度,但是開發(fā)的時候發(fā)現(xiàn),當切換的時候,視圖可正常切換,但點擊選擇時卻發(fā)現(xiàn)選擇器跑到了左上角,代碼和問題截圖如下: 問題代碼: 原來想著這樣的原因可能是

    2024年04月12日
    瀏覽(18)
  • Element UI DatePicker 日期選擇器

    Element UI DatePicker 日期選擇器

    該組件選擇周的時候,默認顯示‘xxxx年第x周’,但在需求要顯示為‘xxxx年x月第x周(mm.dd - mm.dd)’或者‘本周(mm.dd - mm.dd)’,最終效果為 首先需要修改v-model默認展示日期,控件中默認展示為周二,設置picker-options,修改為周一, 同時設置不可選本周日以后的時間: 設置顯

    2024年02月09日
    瀏覽(25)
  • Element-ui 實現(xiàn)多個日期時間發(fā)范圍查詢

    Element-ui 實現(xiàn)多個日期時間發(fā)范圍查詢

    el-form-item label=\\\"生產時間\\\" ? ? ? ? ? ? el-date-picker ? ? ? ? ? ? ? ? v-model=\\\"dateProduct\\\" ? ? ? ? ? ? ? ? style=\\\"width: 240px\\\" ? ? ? ? ? ? ? ? value-format=\\\"yyyy-MM-dd\\\" ? ? ? ? ? ? ? ? type=\\\"daterange\\\" ? ? ? ? ? ? ? ? range-separator=\\\"-\\\" ? ? ? ? ? ? ? ? start-placeholder=\\\"生產開始日期\\\" ? ?

    2024年02月11日
    瀏覽(26)
  • vue【element ui】el-date-picker 日期選擇器控件 限制可選的開始時間和結束時間

    vue【element ui】el-date-picker 日期選擇器控件 限制可選的開始時間和結束時間

    總結一下日期控件實現(xiàn)開始日期、結束日期的選擇范圍限制,以便更符合實際情況。 1、開始時間和結束時間都不能選 當前日期 之后的時間。(當前時間:2022年5月16日) 2、先選開始時間的話,結束時間是在開始時間的后一周內選擇,也就是不能選開始時間之前的日期并且對

    2024年02月07日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包