element中table高度自适应问题

由官方文档,我们可知table想要设置高度,就必须在table里面设置高度

所以在应用到自适应高度也需要结合api实现
在table部分定义变量

在data中定义!
在data中定义常量显然不合理

因此我们定义一个变量

     //table中
      <el-table 
            v-show="tabadd" 
            :data="tableData" 
            style="width: 100%" 
            border
            :height="tableConfig.height"
            show-summary
            :summary-method="getSummaries"
            :cell-style="{textAlign:'right'}"
        >

        // data中
        // 自适应高度
        tableConfig:{
          isLoading:true,
          height:window.innerHeight-159  // 下面剩余多少空白部分(即最下面距离底部有多少距离)
        },

虽然这时候,已经可以根据窗体大小,高度动态变化,但是,还要每次刷新才行……

所以,我们需要加一个监听器即可,监听窗体大小变化,一旦变化就执行方法重新设定height

// ↓在methods里面
getHeight () {
  this.tableConfig.height = window.innerHeight - 159
}
//↑在methods里面
// 窗体大小变化就执行getHeight方法即可
created () {  // 初始化开始监听自适应高度数据
    window.addEventListener('resize', this.getHeight)
  },
destroyed () {  // 离开时销毁高度自适应监听
    window.removeEventListener('resize', this.getHeight)
  }

这里还有个需要注意的地方,就是修改下el-table的css,否则table会有很多留白,看起来体验不是很好

这里使用了/deep/ ,否则我们是修改不了 element自带的样式

      /deep/ .el-table {
  		.el-table__body{
            height: 100%;
          }
		}

本文来源:https://blog.csdn.net/qq_43519735/article/details/105513821

posted @ 2021-03-01 15:54  seekHelp  阅读(1833)  评论(0编辑  收藏  举报