关于element-ui使用el-date-picker清除选择日期后参数为null以及选择日期无法显示的问题

选择日期无法显示的问题

//template中的代码
<el-date-picker
      v-model="queryParams.start_end_time"
      type="datetimerange"
      start-placeholder="开始日期"
      end-placeholder="结束日期"
      size="small"
      @input="startSearch"
    >
    </el-date-picker>

使用v-model绑定queryParams.start_end_time是为了记录选择的时间,如果绑定为 queryParams.start_time或者queryParams.end_time,后续进行重新赋值,就会出现选择时间无法显示的问题

//script中的代码
	startSearch(params){
		console.log(params); //打印会发现params是一个array
		//formatData为转换时间格式的函数  queryParams为发送请求要传递的参数,是存在data中的一个对象,包含start_time、end_time 
		this.queryParams.start_time = formatDate(params[0]);
        this.queryParams.end_time = formatDate(params[1]);
        this.getSysLogAdmin(this.queryParams);
	}

我们期望在选择日期之后触发startSearch事件更新数据渲染页面,上方的代码可以实现这个功能,但是当我们选择清空选择的时间时,会重新调用startSearch函数,而且原本的params值会变成null,并且通过if判断无法对params进行重新赋值,接下来我们就需要更改上方script中的代码了。

清除选择日期后参数为null的问题

startSearch(params) {
      // this.$nextTick()将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新
      // 在页面交互,尤其是从后台获取数据后重新生成dom对象之后的操作有很大的优势
      this.$nextTick(() => {
        if (params == null) {
        	//如果params的值为null 将queryParams.start_time,queryParams.end_time设置为空,然后发送请求,获取全部的数据
          (this.queryParams.start_time = ""), (this.queryParams.end_time = "");
          this.getSysLogAdmin(this.queryParams);
        } else {
        	//如果在实例创建之后添加新的属性到实例上,它不会触发视图更新,响应系统会把一个普通 Javascript 对象传给 Vue 实例
        	//来作为它的data 选项,Vue 将遍历它的属性,用 Object.defineProperty 将它们转为 getter/setter,新添加的属性没有getter/setter,因此vue不会更新视图
        	//我们可以通过vue.set方法或者this.$set方法设置要新添加的属性  Vue.$set(target,key,value)
        	//target:要更改的数据源(可以是对象或者数组)
        	//key:要更改的具体数据(可以是字符串和数字) value :重新赋的值
          this.$set(this, "queryParams.start_end_time", [params[0], params[1]]);
          this.queryParams.start_time = formatDate(params[0]);
          this.queryParams.end_time = formatDate(params[1]);
          this.getSysLogAdmin(this.queryParams);
        }
      });
    },

这样就解决了上面的问题,希望此分享对大家有所帮助。
over

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
element-ui日期选择器组件el-date-picker可以通过picker-options属性来控制日期选择的范围。\[1\]在使用el-date-picker组件时,可以通过设置picker-options属性来限制日期选择范围。例如,可以设置最小日期和最大日期来限制选择的范围。具体的使用方法可以参考官方文档中的示例代码。\[1\]在代码中,可以通过设置picker-options属性来指定日期选择范围。例如,可以设置minDate和maxDate来限制选择的范围。\[2\]另外,还可以使用start-placeholder和end-placeholder属性来设置日期选择器的起始日期和结束日期的占位符文本。\[3\] #### 引用[.reference_title] - *1* *3* [Element-UI:el-date-picker里的picker-options——用来限制选择日期的范围](https://blog.csdn.net/xwh19961210/article/details/114400397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Element-UI日期选择el-date-picker给指定日期添加红点标注](https://blog.csdn.net/weixin_43220182/article/details/128821693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新猿忆码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值