解决办法 一 

在el-popover中加属性:

 :ref="`popover-${scope.$index+ scope.column.id}`"  

 

隐藏弹窗方法:  

@click="this.$refs[`popover-${scope.$index+ scope.column.id}`].doClose()"

// 或 @click="scope._self.$refs[`popover-${scope.$index+ scope.column.id}`].doClose()"

// * 其中 $index是行, column.id是列. 两个参数相加才能创建真实唯一的popover的ref标记.

// * 其中 scope._self.$refs 和 this.$refs 是一样的, 推荐使用this.$refs 

原理:  利用ref解决, 也就是給每一个popover标记上ref就可以通过doclose方法隐藏对应的弹窗组件.

解决办法 二

如果以上方法无效, 执行doclose()打印是undefined. 那么直接模拟点击页面其他地方, 弹窗也会消失.

@click="document.body.click()"
* 这个操作的话不需要添加ref了

Logo

前往低代码交流专区

更多推荐