el-popover中使用el-date-picker时时间弹窗无法关闭问题

  • 物料准备:
  • 问题描述:在el-popover中使用el-date-picker,触发日期选择弹窗后,如果没有更新/选择日期时,点击popover内其余区域,该日期弹窗无法自行关闭。点击popover外区域,日期弹窗可以关闭,但此时popover也被关闭。
  • 具体原因没有找到,这个问题也不一定是普遍存在的,但我确实遇到了😭…猜想可能是popover和date-picker都是浮窗,在响应点击事件时可能出现异常?记录一下曲线改bug的思路😭
  • 解决方法:
    • 给popover内部盒子绑定点击事件,在触发点击时识别触发对象,如果不是datePicker,就强制关闭其弹窗。
<el-table-column label="操作" >
	<template slot-scope="scope">
	     <el-button @click="$_goDetail(scope.row)" type="text" size="small">查看详情</el-button>
		 <el-popover placement="bottom" trigger="click">
		   <div class="report-popover-wrapper" @click="handlerClick($event, scope.row.flowKey)">
		     <el-form ref="form" :model="formModal">
		        <el-form-item label="选择数据时间范围">
		          <el-date-picker
		            v-model="formModal.time"
		            type="daterange"
		            range-separator=""
		            :picker-options="formPickerOptions"
		            start-placeholder="开始日期"
		            value-format="yyyy-MM-dd"
		            @change="selectDateChange"
		            end-placeholder="结束日期"
		            :clearable="false"
		            :ref="`datePicker-${scope.row.key}`"
		          >
		          </el-date-picker>
		        </el-form-item>
		        <!-- 其余表单项 -->
		      </el-form>
		      <!-- 其他元素 -->
		   </div>
		 </el-popover>
	 </template>
 </el-table-column>
handlerClick (event, key) {
   // 触发对象不是时间选择器时,手动关闭时间弹窗
  if (event.target._prevClass !== 'el-range-input') {
    this.closeDatePicker(key)
  }
},
closeDatePicker (flowKey) {
  const picker = this.$refs['datePicker-' + key]
  if (picker) {
    picker.hidePicker()
  }
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值