vue Mint UI 设置时间区间 并且结束时间大于开始时间校验

<template>

          <mt-field required label="开始时间" disabled placeholder="请选择开始时间" v-model="form.startTime" @click.native.capture="openDateStart">
            <icon-svg iconClass="left"></icon-svg>
          </mt-field>
          <mt-field required label="结束时间" disabled placeholder="请选择结束时间" v-model="form.endTime" @click.native.capture="openDateEnd">
            <icon-svg iconClass="left"></icon-svg>
          </mt-field>

    <!-- 开始时间 -->
    <mt-datetime-picker ref="dateStart" type="date" @confirm="confirmDateStart" @input="inputDateStart"
                        year-format="{value} 年" month-format="{value} 月" date-format="{value} 日"
                        :closeOnClickModal="false" :endDate="startTimeEnd"
                        v-model="form.startTime"></mt-datetime-picker>
    <!-- 结束时间 -->
    <mt-datetime-picker ref="dateEnd" type="date" @confirm="confirmDateEnd" @input="inputDateEnd"
                        year-format="{value} 年" month-format="{value} 月" date-format="{value} 日"
                        :closeOnClickModal="false" :startDate="endTimeStart"
                        v-model="form.endTime"></mt-datetime-picker>


</template>    

data(){
    return {
     form: {
        startTime: this.$moment().format('YYYY-MM-DD'),
        endTime: this.$moment().add(365,'days').format('YYYY-MM-DD'),
           },  
     startTimeEnd: new Date(),
     endTimeStart: new Date()
}

}
methods:{

        openDateStart () {
          this.$refs.dateStart.open()
      },
      inputDateStart (value) {
          const startTime = this.$moment(value)
          const endTime = this.$moment(this.form.endTime)
          if (endTime.isBefore(startTime)) {
              this.$toast({ message: '开始时间不能超过结束时间', duration: 3000 })
          } else {
              this.form.startTime = this.$moment(value).format('YYYY-MM-DD')
              this.endTimeStart = this.$moment(value).toDate()
          }
      },
      confirmDateStart (value) {
          this.form.startTime = this.$moment(value).format('YYYY-MM-DD')
          this.endTimeStart = this.$moment(value).toDate()
      },
      // 结束时间
      openDateEnd () {
          this.$refs.dateEnd.open()
      },
      inputDateEnd (value) {
          const startTime = this.$moment(this.form.startTime)
          const endTime = this.$moment(value)
          if (endTime.isBefore(startTime)) {
              this.$toast({ message: '开始时间不能超过结束时间', duration: 3000 })
          } else {
              this.form.endTime = this.$moment(value).format('YYYY-MM-DD')
              this.startTimeEnd = this.$moment(value).toDate()
          }
      },
      confirmDateEnd (value) {
          this.form.endTime = this.$moment(value).format('YYYY-MM-DD')
          this.startTimeEnd = this.$moment(value).toDate()
      },

}

效果:点击输入框,弹出日期控件,data里form的初始化很重要. 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值