element table高度自适应

2025-10-10 07:25:28

1、1.自定义一个table的高度tableHeight

2、<el-table

      @row-click="lookDetail"

      v-loadmore="loadMore"

      v-loading="listLoading"

      :data="tableData"

      :height="tableHeight"

      border

      style="width: 100%">

      <el-table-column

        :key="item.prop"

        v-for="item in tableColumn"

        :prop="item.prop"

        :label="item.name">

      </el-table-column>

    </el-table>

3、2.data中给tableHeight一个默认的高度

tableHeight: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight - 240,(这里的240是减去表格上面导航和搜索条件的高度)

4、3.在mounted中初始化数据

mounted() {

      const that = this

      window.onresize = () => {

        return (() => {

          window.tableHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight

          that.tableHeight = window.tableHeight - that.$refs.queryHeight.offsetHeight - 150

        })()

      }

    },

5、4.在watch中监听高度的变化

watch: {

      // 这里的定时器是为了优化,如果频繁调用window.onresize方法会造成页面卡顿,增加定时器会避免频繁调用window.onresize方法

      timer默认值设置为false,这里相当于一个按钮,防止频繁改变时引起卡顿

      tableHeight(val) {

        if (!this.timer) {

          this.tableHeight = val

          this.timer = true

          const that = this

          setTimeout(function() {

            that.timer = false

          }, 400)

        }

      }

    },

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢