<!-- 需要加上fixed="right"解决小弹窗显示问题 -->
<el-table-column label="可编辑" width="120" align="center" fixed="right">
<template slot-scope="scope">
<span>{{ scope.row.balance }}元</span>
<el-button
slot="reference"
size="mini"
type="text"
class="el-icon-edit"
style="font-size: 15px; margin-left: 10px"
@click="handleBalance(scope.row)"
/>
<!-- position: fixed;z-index: 99;解决被span嵌套导致被table遮挡问题 -->
<el-popover :ref="`popover-${scope.row.id}`" style="position: fixed;z-index: 99;" popper-class="table-list-popper" placement="left" width="200">
<el-form @submit.native.prevent> <!-- 解决input输入回车刷新问题 -->
</el-form>
</el-popover>
</template>
</el-table-column>
// 开关
balancePopoverVisible(id, flag = false) {
flag && this.$refs["popover-" + id].doShow();
!flag && (this.$refs["popover-" + id].doClose());
},
这里实现的是列表之中使用el-popover实现小弹框编辑,然后需要解决控制多个el-popover显示隐藏和被遮挡问题,最后通过样式解决偏移问题
<style>
.table-list-popper {
top: -170px;
left: -130px;
}
</style>
实际上我项目中两个地方用到这个,但是另一个实现发现没有这些问题。。。,而这个是优化过来的,发现抽离组件后就GG了,具体问题?是渲染呢,还是嵌套呢?还是要理解根本的层级关系和渲染逻辑