这个问题非常常见,本质是 z-index 层级冲突。Element Plus 的 el-dialog 默认是挂载在当前组件上下文内(不是挂载到 body),而 el-table 的表格内容有时会开启 overflow 隐藏或 transform,导致 dialog 被裁剪或压在下面。

解决方案

非常简单,使用 append-to-body,将 el-dialog 输出到最外的层级。

<el-dialog
  v-model="visible"
  title="详情"
  append-to-body
>
  ...
</el-dialog>

在实际项目(特别是 Vite + Vue3 + Element Plus)中,建议所有全屏或模态层组件(如 Dialog、Drawer、Popconfirm)都加上 append-to-body,以避免被嵌套容器影响。

标签: element-plus

添加新评论