vue element-ui月份范围选择器,禁用未来月份,跨度为12个月

这篇具有很好参考价值的文章主要介绍了vue element-ui月份范围选择器,禁用未来月份,跨度为12个月。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用得vue2的写法哦,
效果如下图:
vue月份选择器,elementUI,vue,vue.js,elementui

直接上代码:

引用ElementUI的月份组件:

<el-date-picker
                            v-model="queryParams.reportDate"
                                type="monthrange"
                                :editable="false"
                                :clearable="false"
                                format="yyyy 年 MM 月"
                                value-format="yyyy-MM"
                                range-separator="至"
                                start-placeholder="开始月份"
                                end-placeholder="结束月份" 
                                :picker-options = "monthpickoption">
                                </el-date-picker>
export default {
    components:{LineChart,yearPicker,DateWeekRange},
    data() {
        return {
        trendData: {
                date: []
            },
            minDate: null,
            maxDate: null,
            monthpickoption:{
            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){
                  //开始日期少于当前月+12个月 并且大于当前月-12个月,则表示只限制前面的范围
                  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)
                //如果有默认值,只禁用开始日期,因为已经限定了禁用未来范围,且默认值已经为12个月范围
                return this.monthPick(time) || time < lastMonth.valueOf();
              }
            },
            onPick: ({minDate, maxDate}) => {
              this.minDate = minDate;
              this.maxDate = maxDate;
            }
            },
         }
      },
      methods: {
      	monthPick(time){
            // 获取当前的月份信息
            const date = new Date() // 获取当前的时间基本信息,值是这样的: Tue Jul 20 2021 14:59:43 GMT+0800 (中国标准时间)
            const year = date.getFullYear() // 获取当前年份,值是这样的: 2021
            let month = date.getMonth() + 1 // 获取当前月份,值是这样的: 6   getMonth()方法返回值是0-11,也就是1月份到12月份,所以要加上1,才是当前月份
            if (month >= 1 && month <= 9) {
              // 如果是1月到9月就要在前面补上一个0   比如:02、07    月份这样表示
              month = '0' + month
            }
            const nowDate = year.toString() + month.toString() // 转换成字符串拼接,最终得到年和月,比如此时的时间是2021年7月20号,所以nowDate的值是:202107
 
            // 获取时间选择器的月份信息
            const timeyear = time.getFullYear() // 获取时间选择器的年份(有很多)
            let timemonth = time.getMonth() + 1 // 与上面同理
            if (timemonth >= 1 && timemonth <= 9) {
              timemonth = '0' + timemonth
            }
            const elTimeData = timeyear.toString() + timemonth.toString()
 
            // 返回,时间选择器的日期月份大于当前日期的月份,又因为disabledDate函数是控制月份禁用不可选
            // 所以,最终就是:时间选择器的月份大于当前的月份,就都禁用掉,所以就实现了最终效果:
            // 大于等于当前月份都不可选
            return elTimeData > nowDate // 这里虽然是字符串,但是弱类型语言js会做一个转换,是可以比较大小的如: '202107' > '202008'
          },
      }

参考地址:
https://blog.csdn.net/ITERCHARLIE/article/details/127246715文章来源地址https://www.toymoban.com/news/detail-740262.html

到了这里,关于vue element-ui月份范围选择器,禁用未来月份,跨度为12个月的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于element-ui的年份范围选择器

    下载对应的代码到本地 文件地址,以下是我的目录结构,我将下载的文件放到了src/components下。 全局引入或者局部引入使用 全局引入 局部引入 调用方法,下面的参数和element-ui原有el-date-picker的api保持不变 日期限制处理(禁用),下面我以我这边的需求为例, 选择的年份需等

    2024年02月07日
    浏览(34)
  • element-ui 日期选择器选择年份,拼接月日,并控制范围

    element-ui 日期选择器选择年份,拼接月日,并控制范围。 type=\\\"year\\\",控制下拉选项为年份 format=\\\"yyyy-MM-dd\\\"、value-format=\\\"yyyy-MM-dd\\\",控制文字显示为年月日 此时选中年份会显示选中年的第一天【2023-01-01】,如果有规定月-日的需求,可以在选中事件里重新赋值。 :picker-options=\\\"pick

    2024年02月08日
    浏览(42)
  • Element-UI的DateTimePicker禁用日期时间选择(type=datetime)

    \\\"date-fns\\\": \\\"^2.29.3\\\", \\\"element-ui\\\": \\\"^2.15.13\\\", 效果:    效果:

    2024年02月12日
    浏览(26)
  • Element-UI的DatePicker禁用日期选择(type=date/daterange)

    \\\"element-ui\\\": \\\"^2.15.13\\\", 选择日:type=\\\"date\\\" 选择日期范围:type=\\\"daterange\\\" 选择日,效果:    选择日期范围,效果: 选择日:type=\\\"date\\\" 选择日期范围:type=\\\"daterange\\\" 选择日,效果:  选择日期范围,效果: 选择日:type=\\\"date\\\" 选择日期范围:type=\\\"daterange\\\" 例如:可选今天、今天前一周

    2024年02月10日
    浏览(29)
  • element-ui 月份选择器,当所选月份为当前月时,获取当天日期 。非当前月时,获取所选月的最后一天

    根据需求: 起始日期和结束日期的设置,当所选月份为当前月时,获取当天日期 。 非当前月时,获取所选月的最后一天  全部代码: 1、 Date.parse() 函数用于分析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的毫秒数 Date.parse()的语法如下: 2、 获取

    2024年02月11日
    浏览(38)
  • 1、关于Element-UI日期范围选择器控件添加清空、确定按钮

    1、日期控件原来样式 现在我们需要在日期控件右下角添加按钮(如下方示例) 2、实现方式

    2024年02月16日
    浏览(34)
  • element-ui的年份范围选择器,选择的年份需等于或小于当前年份,选择的年份范围必须在三年之内

    日期限制处理(禁用),下面我以我这边的需求为例, 选择的年份需等于或小于当前年份 选择的年份范围必须在三年之内 1.限制起始日期小于截止日期 1)根据用户选中的开始日期,置灰不可选的日期范围; 2)如果用户先选择截止日期,再选择的开始日期,且开始日期大于

    2024年04月14日
    浏览(26)
  • 【vue组件】使用element-ui 实现三级联动下拉选择

    实现的思路是第一个下拉选择在选择了选项后将该选项的信息传递到接口请求下一个选项的内容,依次类推 然后在清除了上一级选择的选项后要将其次级和子孙级的选项都清除(包括选择里的列表内容) 下面看具体代码: 效果图:

    2024年02月11日
    浏览(43)
  • vue中使用element-ui ,设置级联选择器高度问题

    我本来以为设置elemnt-ui组件样式需要用到深度选择器,然后找了好多关于深度选择器的,比如 /deep/ ::v-deep 后来才明白是权重不够,解决方法如下 1、在全局css中设置 缺点:所有级联选择器的高度都是固定的 结论:只有在所有页面级联选择器都一致的情况下或者只有一个级联

    2024年02月12日
    浏览(32)
  • element ui 下拉框 选择月份和天数

    目前做的管理系统项目,期望实现功能为:设置出账周期和出账日,考虑使用element ui下拉框实现功能 vue2+element ui

    2024年04月29日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包