1, 问题复现
1, popover中显示一个表格:
<el-popover
ref="popoverRef"
placement="right"
width="400"
trigger="click">
<el-table
:data="tableData"
stripe
style="width: 100%"
@cell-click = "hidePop">
<el-table-column
prop="date"
label="日期"
width="100">
</el-table-column>
<el-table-column
prop="address"
label="地址"
width="auto">
</el-table-column>
</el-table>
<el-button type="text" slot="reference" style="margin-bottom: 6px">新消息</el-button>
</el-popover>
2, 点击任意一条表格数据, 关闭当前popover, 打开一个新的dialog 组件
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose">
<span>这是一段信息</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>
</el-dialog>
export default {
name: 'Message',
data() {
return {
dialogVisible: false,
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
};
},
methods:{
hidePop(){
this.$refs.popoverRef.doClose();
this.dialogVisible = true
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
}
}
};
hidePop() 方法:先关闭老的popover, 再打开新的dialog
2, 问题截图:
当我把el-dialog嵌套在el-popover中,点击打开dialog时,发现整个页面变暗,这个问题是因为el-dialog和el-popover之间的层级关系,当我把el-dialog嵌套在el-popover中,dialog就挂在了el-popover上,如果想要实现当dialog窗口出现时,它是亮的,其他页面都变暗,就需要将el-dialog拉到body上
在