| 问题描述 | 发电单元部分点击关联机组按钮,点击查询的时候一直黑屏 |
|---|---|
| 一级模块 | 项目信息填报 |
| 二级模块 | 项目基本信息 |
| 涉及类型 | 全部类型 |
| 严重性 | 严重 |
| 当前状态 | 5.1.已关闭 |
| 研发处理人员 | 陈键泽 |
| 复测情况 | 复测通过 |
append-to-body 追加到 <body> 的第二层 el-dialog。batchInfo.vue 第 575 行 “关联机组” el-dialog 定义append-to-body 的弹窗(第 520、543、554、1175、1187、1203 行)说明:本条缺陷当前状态为“已关闭 / 复测通过”。从截图现象看,“黑屏”更接近“背景遮罩异常叠加发黑”而不是页面卡死无响应(表格区域本身显示的是正常的“暂无数据”,并非加载中状态)。Element UI 的 el-dialog 默认会在 <body> 下插入一层半透明遮罩(.v-modal);当“关联机组”这个使用了 append-to-body 的弹窗,是从另一个本身也是弹窗/抽屉性质的容器(“批次信息”编辑面板)中打开时,两层遮罩会一起挂载在 <body> 下、透明度相互叠加,视觉上就会比正常单层弹窗深得多,在网络较慢、表格数据还没渲染出来之前,这种双层遮罩会让用户感觉“整个页面变黑卡住了”。
<el-dialog width="95%" top="8vh" title="关联机组" :visible.sync="dialogTableVisible"
append-to-body @close="refreshInformationFlow">
建议的修复方向(二选一,视“批次信息”外层容器是否也是 el-dialog 而定):
el-dialog:给外层弹窗加 :modal-append-to-body="false",让内外两层遮罩共用同一个层级,避免透明度叠加;modal-class 单独控制透明度,例如通过一个专用样式类把遮罩透明度显式固定为 0.5,不随嵌套层数累加:
<el-dialog ... append-to-body modal-class="th-nested-dialog-mask">
/* 全局样式补充 */
.th-nested-dialog-mask{ background-color: rgba(0,0,0,.5) !important; }
.v-modal 元素是否被正确移除、有无残留导致后续页面依然发暗的情况。