el-table和popover踩坑,无法手动关闭popover

说明:所用popover都是click触发;

三种使用模式:

  • 直接在页面中使用;
  • table有fixed列,且popover在fixed中
  • table有fixed列,但是popover不在fixed列里面

1,直接在页面中使用,最简单,直接给el-popover设置v-model属性就可以了

2,在fixed列中使用,需要给el-popover添加 ref属性,通过ref属性找到并设置display

<el-table-column label="操作" width="180px" fixed="right">
              <template slot-scope="scope">
                <span class="hk-table-option hk-table-option-first" @click="goAddFun(scope.row.id)">编辑</span>
               
                <el-popover placement="top-end" width="280" trigger="click" :ref="'popover-del-'+ scope.row.id ">
                  <p class="popover-option"><i class="el-icon-warning hk-font-highlight" ></i>&nbsp;确认删除吗?</p>
                  <div style="text-align: right; margin: 20px 0 0">
                    <el-button size="mini" @click="cancelDeleteFun(scope.row.id)">取消</el-button>
                    <el-button type="primary" size="mini" @click="confirmDeleteFun(scope.row.id)">删除</el-button>
                  </div>
                  <span class="hk-table-option" slot="reference">删除</span>
                </el-popover>

              </template>
 </el-table-column>

// 关键是取消方法
cancelDeleteFun(id) {
      this.$refs['popover-del-' + id].popperElm.style.display = "none" 
}

3,有fixed列,但是popover不在fixed列里面。这个最不好做,尝试了调用doClose也无效。
最终把这种情况下的popover改为了dialog弹窗来做

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容