把你吃成个大胖子 2022-09-06 14:19 采纳率: 57.4%
浏览 73
已结题

element-ui table 筛选时 表格出现问题

img

img

这是table得代码

       <el-table :data="deptAllScoreList" border style="width:100%" :height='scrollHeight' v-loading="isLoading">
                <el-table-column sortable align="center" label="区域" fixed min-width='100'>
                    <template slot-scope="{row}">
                        {{ row.value.deptTypeName }}
                    </template>
                </el-table-column>
                <el-table-column prop="name" sortable align="center" label="部门" fixed min-width='130'>
                </el-table-column>
                <el-table-column align="center" label="卓越">
                    <el-table-column sortable align="center" label="人数" v-if="isRenshu">
                        <template slot-scope="{row}">
                            {{ row.value.outstanding }}
                        </template>
                    </el-table-column>
                    <el-table-column sortable align="center" label="比例" v-if="isBili">
                        <template slot-scope="{row}">
                            {{ row.value.outstandingRatio }}
                        </template>
                    </el-table-column>
                </el-table-column>
                <el-table-column align="center" label="优秀">
                    <el-table-column sortable align="center" label="人数" v-if="isRenshu">
                        <template slot-scope="{row}">
                            {{ row.value.excellent }}
                        </template>
                    </el-table-column>
                    <el-table-column sortable align="center" label="比例" v-if="isBili">
                        <template slot-scope="{row}">
                            {{ row.value.excellentRatio }}
                        </template>
                    </el-table-column>
                </el-table-column>
                <el-table-column align="center" label="良好">
                    <el-table-column sortable align="center" label="人数" v-if="isRenshu">
                        <template slot-scope="{row}">
                            {{ row.value.good }}
                        </template>
                    </el-table-column>
                    <el-table-column sortable align="center" label="比例" v-if="isBili">
                        <template slot-scope="{row}">
                            {{ row.value.goodtRatio }}
                        </template>
                    </el-table-column>
                </el-table-column>
                <el-table-column align="center" label="合格">
                    <el-table-column sortable align="center" label="人数" v-if="isRenshu">
                        <template slot-scope="{row}">
                            {{ row.value.qualified }}
                        </template>
                    </el-table-column>
                    <el-table-column sortable align="center" label="比例" v-if="isBili">
                        <template slot-scope="{row}">
                            {{ row.value.qualifiedRatio }}
                        </template>
                    </el-table-column>
                </el-table-column>
                <el-table-column align="center" label="不合格">
                    <el-table-column sortable align="center" label="人数" v-if="isRenshu">
                        <template slot-scope="{row}">
                            {{ row.value.unqualified }}
                        </template>
                    </el-table-column>
                    <el-table-column sortable align="center" label="比例" v-if="isBili">
                        <template slot-scope="{row}">
                            {{ row.value.unqualifiedRatio }}
                        </template>
                    </el-table-column>
                </el-table-column>
                <el-table-column sortable align="center" label="小计" fixed="right">
                    <template slot-scope="{row}">
                        {{ row.value.total }}
                    </template>
                </el-table-column>
            </el-table>


        handleCheckedTableColumnsChange(val) {
            this.allColumnsSelected = val ? this.tableColumns : [];
            if (this.allColumnsSelected.every(isBelowThreshold)) {
                this.allColumnsSelectedIndeterminate = false
                this.allColumnsSelected = true
                this.isRenshu = true
                this.isBili = true
            } else {
                this.allColumnsSelectedIndeterminate = true
                this.tableColumns.forEach(item => {
                    if (!item.visible) {
                        if (item.label === '人数') {
                            this.isRenshu = false
                        } else {
                            this.isBili = false
                        }
                    }
                })
            }

            // 检测visible是否全部满足条件
            function isBelowThreshold(value, index, ar) {
                if (value.visible) {
                    return true;
                } else {
                    return false;
                }
            }
        },

JS代码得话 我也只是做了两个判断 全选时 就isRenshu 和isBili 都为true 当有一个不满足时 其中一个为false 进行隐藏 原数据是没有改变得

  • 写回答

1条回答 默认 最新

  • Z_pigeon 2022-09-06 14:50
    关注

    给el-table加个ref="table"属性,然后在handleCheckedTableColumnsChange这个事件里面的最后面添加一句代码

    setTimeout(() => {
          this.$refs.table.doLayout()
     }, 100)
    
    

    注意一定要你设置好了哪些列隐藏哪些列消失后再触发这个重新列表布局的逻辑(按道理是在你handleCheckedTableColumnsChange这个函数的最后去加上这段逻辑),而且时间函数setTimeout一定要加

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月6日
  • 创建了问题 9月6日

悬赏问题

  • ¥20 c#使用NPOI向word表格中添加字段导致word有概率警告不可识别
  • ¥15 怎么使用hxe16进制编码器修改视频数据和图片一样!求教程!
  • ¥15 怎么用python模拟光的折射,反射,和全反射
  • ¥15 python打印机打印word和PDF文件出来的是乱码
  • ¥15 求达梦8数据库安装包
  • ¥15 YOLOv8模型网络结构更改后报错
  • ¥15 深度学习中梯度为None
  • ¥15 zynq烧写程序到flash后不运行
  • ¥15 裸板ESD问题的思考与实验
  • ¥15 electron+python