不使用 el-popover 组件手动创建一个 div 作为 Popover

  1. 不使用 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>
    
  2. 使用 CSS 控制 Popover 的样式

    .popover {
      position: absolute;
      z-index: 100;
      background-color: #fff;
      border: 1px solid #ccc;
      padding: 10px;
      display: none; /* 默认不显示 */
    }
    
  3. 在 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;
        }
      }
    };
    
相关推荐
m0_5485030328 分钟前
打包部署若依(RuoYi)SpringBoot后端和Vue前端图文教程
前端·vue.js·spring boot
要加油哦~2 小时前
尚硅谷· vue3+ts 知识点学习整理 |14h的课程(持续更ing)
javascript·vue.js·学习
screct_demo8 小时前
通俗易懂的讲一下Vue的双向绑定和React的单向绑定
前端·javascript·html
有心还是可以做到的嘛8 小时前
ref() 和 reactive() 区别
前端·javascript·vue.js
Z3r4y12 小时前
【Web】极简&快速入门Vue 3
前端·javascript·vue.js·vue3
码农00012 小时前
CORS三问
vue.js
蓝天星空14 小时前
html生成注册与登录代码
javascript·css·html
时间sk15 小时前
HTML——67. 复选框
html
_Feliz15 小时前
vue2实现excel文件预览
vue.js·elementui·excel
玩具工匠15 小时前
字玩FontPlayer开发笔记3 性能优化 大量canvas渲染卡顿问题
前端·javascript·vue.js·笔记·elementui·typescript