#独家
如何解决 ElementUI 对话框嵌套一个分页表格,切换到其他分页后,之前的分页仍然显示?

2023-07-10 0 2,628

问题描述

我在 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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 如何解决 ElementUI 对话框嵌套一个分页表格,切换到其他分页后,之前的分页仍然显示? https://www.jkxiazai.com/1957.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务