ivew日期选择器,双向绑定日期格式,执行回调后不改变格式

实现的效果如下:

初始选择日期后,绑定的日期数据显示在日期选择器下方(即开始日期、结束日期):

 点击查询后,发现开始日期 晚过 结束日期,自动交换日期,且日期格式不变:

 代码:

注意使用 :value绑定数据,同时添加@on-change="funFrom.start_date=$event"

<FormItem label="操作时间">
  <DatePicker
    :value="funFrom.start_date"
    format="yyyy-MM-dd"
    type="datetime"
    placeholder="请选择日期"
    :options="options1"
    @on-change="funFrom.start_date=$event"></DatePicker>
  <DatePicker
    :value="funFrom.end_date"
    format="yyyy-MM-dd"
    type="date"
    placeholder="请选择日期"
    :options="options1"
    @on-change="funFrom.end_date=$event"></DatePicker>
</FormItem>
<div class="button">
  <Button v-if="buttonMap.search" icon="ios-search" type="primary" @click="search">查询</Button>
</div>

<h3>开始日期:{{ funFrom.start_date }}</h3>
<h3>结束日期:{{ funFrom.end_date }}</h3>

点击查询后,执行search函数,发现开始日期 晚过 结束日期,则将两个日期交换,出现图二的效果:

methods: {
  search(){
    if (this.funFrom.start_date && this.funFrom.end_date){
      if (new Date(this.funFrom.start_date) - new Date(this.funFrom.end_date) > 0){
        var temp = this.funFrom.start_date
        this.funFrom.start_date=this.funFrom.end_date
        this.funFrom.end_date=temp
      }
    }
   //然后发请求,此处省略
  }
}

一开始看了其他解决方法,用v-model绑定,执行回调后,数据又会变回原来的格式。这样不行。

演示一下

选择日期,数据格式还是我想要的:

点击查询,交换日期后,又变回奇奇怪怪的格式:

 

 此时的代码是用v-model绑定数据的:

<FormItem label="操作时间">
  <DatePicker
  v-model="funFrom.start_date"
  format="yyyy-MM-dd"
  type="datetime"
  placeholder="请选择日期"
  :options="options1"
  @on-change="funFrom.start_date=$event"></DatePicker>
  <DatePicker
  v-model="funFrom.end_date"
  format="yyyy-MM-dd"
  type="date"
  placeholder="请选择日期"
  :options="options1"
  @on-change="funFrom.end_date=$event"></DatePicker>
<\FormItem>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值