说明:所用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> 确认删除吗?</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弹窗来做