ToB企服应用市场:ToB评测及商务社交产业平台
标题:
倒霉用 el-popover 组件手动创建一个 div 作为 Popover
[打印本页]
作者:
盛世宏图
时间:
2025-1-2 04:55
标题:
倒霉用 el-popover 组件手动创建一个 div 作为 Popover
倒霉用 el-popover 组件,而是手动创建一个 div 作为 Popover
:
<template>
<el-table :data="tableData">
<!-- ...其他列 -->
<el-table-column label="操作">
<template slot-scope="scope">
<div class="popover-trigger" @click="showPopover(scope.$index)">
显示 Popover
</div>
<div class="popover" v-show="scope.row.showPopover" ref="popover">
这里是一些内容
<el-button size="mini" @click="hidePopover(scope.$index)">关闭</el-button>
</div>
</template>
</el-table-column>
</el-table>
</template>
复制代码
使用 CSS 控制 Popover 的样式
:
.popover {
position: absolute;
z-index: 100;
background-color: #fff;
border: 1px solid #ccc;
padding: 10px;
display: none; /* 默认不显示 */
}
复制代码
在 Vue 方法中控制显示和隐藏
:
export default {
data() {
return {
tableData: [
// ...表格数据
{ showPopover: false },
// ...其他行数据
],
};
},
methods: {
showPopover(index) {
const popover = this.$refs.popover[index];
const trigger = this.$el.querySelector(`.popover-trigger`); // 假设每个触发器都有这个类名
if (trigger) {
popover.style.left = `${trigger.offsetLeft}px`;
popover.style.top = `${trigger.offsetTop + trigger.offsetHeight}px`;
popover.style.display = 'block';
}
this.tableData[index].showPopover = true;
},
hidePopover(index) {
this.tableData[index].showPopover = false;
}
}
};
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4