问题描述
我在 el-dialog 中嵌套了一个 el-table,且 el-table 还用 el-pagination 做了分页,后端有分页查询的接口,因此我的逻辑是每次切换当前页面索引时,就调用一下分页查询接口,点击 > 按钮切换到下一页之后,前面的页面就作为背景板也显示了
问题出现的环境背景及自己尝试过哪些方法
Vue 版本:2.6.10
猜想可能是 CSS 的问题,但是我对这方面确实不太精通,实在不知道怎么办才好,跪求大佬指教。
相关代码
主页面
<el-table-column label="权限信息" prop="permission"> <template slot-scope="scope"> <el-dialog title="角色权限信息" :visible.sync="permissionDialogue" width="40%"> <PermissionTable :roleId="scope.row.id"></PermissionTable> </el-dialog> <el-button size="mini" slot="reference" @click="permissionDialogue = true">查看</el-button> </template> </el-table-column>
PermissionTable.vue
<template> <div> <el-card> <el-table :data="tableData"> <el-table-column label="是否拥有" width="150"> <template slot-scope="scope"> <el-checkbox></el-checkbox> </template> </el-table-column> <el-table-column label="权限ID" prop="id"></el-table-column> <el-table-column label="权限名" prop="permissionName"></el-table-column> <el-table-column label="描述" prop="description"></el-table-column> </el-table> </el-card> <div style="text-align: center; margin-top: 10px"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage" :page-sizes="[10, 15, 20]" :page-size="pageSize" :total="totalSize" background layout="total, sizes, prev, pager, next, jumper"> </el-pagination> </div> </div> </template> <script> <template> <el-card> <el-table :data="tableData"> <el-table-column label="是否拥有" width="150"> <template slot-scope="scope"> <el-checkbox></el-checkbox> </template> </el-table-column> <el-table-column label="权限ID" prop="id"></el-table-column> <el-table-column label="权限名" prop="permissionName"></el-table-column> <el-table-column label="描述" prop="description"></el-table-column> </el-table> <div style="text-align: center; margin-top: 10px"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-size="pageSize" :total="totalSize" background layout="prev, pager, next"> </el-pagination> </div> </el-card> </template> <script> import { getPermissionList } from '@/api/auth/permission' export default { name: 'PermissionTable', props: { roleId: Number }, data() { return { tableData: [], currentPage: 1, pageSize: 5, totalSize: 0 } }, methods: { handleCurrentChange(val) { this.currentPage = val this.getDataList() }, handleSizeChange(val) { this.pageSize = val this.getDataList() }, getDataList() { getPermissionList({ pageNo: this.currentPage, pageSize: this.pageSize }).then(res => { if(res.data.code === 200) { this.tableData = res.data.pageResult.dataList this.totalSize = res.data.pageResult.totalCount } else { this.$message.error({ message: res.data.message, duration: 1000 }) } }) } }, mounted() { this.getDataList() } } </script>
??你的dialog
不要放在column
里,那你每一行不都关联着一个dialog
,然后这些dialog
还都是一个permissionDialogue
控制,那只要有一个显示不就所有dialog
都显示出来了,你切下一页才看出来是因为最上面的表格比较长盖住了下面,第二页比较短就看出后面的了。
所以改下结构dialog
放外层去,scope.row.id
在点击查看的时候放到data
上传给dialog