element 日期选择器 选择月份 两个input输入框 设置默认月份(当年1月到当前月)

element 日期选择器date-picker 设置默认月份(当年1月到当前月),结束月份大于开始月份,开始月份小于结束月份
1. 初始月份设置

先放效果图
在这里插入图片描述

  • 月份选择器
<el-date-picker
   v-model="checkFieldFormData.fromDate"
    :picker-options="pickerOptionsStart"
    type="month"
    format="yyyy-MM"
    value-format="yyyyMM"
    placeholder="开始月份"
  >
  </el-date-picker>
  <span class="speator-date">-</span>
  <el-date-picker
    v-model="checkFieldFormData.toDate"
    :picker-options="pickerOptionsEnd"
    type="month"
    format="yyyy-MM"
    value-format="yyyyMM"
    placeholder="结束月份"
  >
  </el-date-picker>
  • 在data中定义
checkFieldFormData: {
	fromDate: '',
    toDate: ''
}
  • 获取默认月份
mounted() {
  this.skMonthrangeDefault()
},
skMonthrangeDefault() {
  var now = new Date()
  let month = now.getMonth() + 1
  if (month >= 1 && month <= 9) {
    month = '0' + month
  }
  var startDate = now.getFullYear() + '01' // 形式与value-format一致
  var endDate = now.getFullYear() + month.toString()
  this.$set(this.checkFieldFormData, 'fromDate', startDate)
  this.$set(this.checkFieldFormData, 'toDate', endDate)
},

注意:这里用了$set修改data数据,否则切换月份时,视图不更新。

2. 结束月份大于开始月份,开始月份小于结束月份,禁用月份设置

刚开始的时候看网上的文章好多是把pickerOptionsStart禁用选项写在data里,自己尝试做的时候一直是报错的,就把这些放在了computed中。
在这里插入图片描述

computed: {
   pickerOptionsStart() {
     return {
       disabledDate: time => {
         if (this.checkFieldFormData && this.checkFieldFormData.toDate) {
           const resDate = (new Date(time).getFullYear() + '-' + this.pMonth(new Date(time).getMonth() + 1)).replace(/-/g, '')
           return resDate > this.checkFieldFormData.toDate
         }
       }
     }
   },
   pickerOptionsEnd() {
     return {
       disabledDate: time => {
         if (this.checkFieldFormData && this.checkFieldFormData.fromDate) {
           const resDate = (new Date(time).getFullYear() + '-' + this.pMonth(new Date(time).getMonth() + 1)).replace(/-/g, '')
           return resDate < this.checkFieldFormData.fromDate
         }
       }
     }
   }
 },
pMonth(s) {
   return s < 10 ? '0' + s : s
 }, 

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值