美文网首页
el-table列表自适应高度

el-table列表自适应高度

作者: 肥羊猪 | 来源:发表于2021-09-01 22:28 被阅读0次

组件复用mixins: [mixin],:

// tableHeight.js 
// 这种方法需要吧170 存入全局 调用的地方重新赋值
const tableHeight = {
  data() {
    return {
    tableheight:null,// 表格高度
    }
  },
  mounted() {
    this.$nextTick(() => {
      window.addEventListener('resize', this.getHeight);
      this.getHeight();
      this.getList();
    });
  },
  destroyed(){
    window.removeEventListener('resize', this.getHeight);
  },
  methods: {
    getHeight(e) {
      // tableHeight是el-table外层的dom的ref
      this.tableheight = window.innerHeight - this.$refs.tableHeight.offsetTop - 170// 获取浏览器高度减去顶部导航栏
      e => e.preventDefault()
    },
  },
};
export default tableHeight;
// xxx.vue 调用
import tableHeight from "@/utils/tableHeight";
export default {
  components: {},
  mixins: [tableHeight],

或者单独组件使用:

<div ref="pushrTable">
  <el-table :height="tableheight" size="mini" v-loading="listLoading" :data="listData" :header-cell-style="tableHeaderColor" border  highlight-current-row >
  </el-table>
</div>

传参调用的形式:

// 这种方法好处是可传入height 坏处是掉用的地方需要多写 
export default function(height) {
 return {
  data() {
    return {
    tableheight:null,// 表格高度
    }
  },
  mounted() {
    this.$nextTick(() => {
      window.addEventListener('resize', this.getHeight);
      this.getHeight();
      this.getList();
    });
  },
  destroyed(){
    window.removeEventListener('resize', this.getHeight);
  },
  methods: {
    getHeight(e) {
      this.tableheight = window.innerHeight - this.$refs.tableHeight.offsetTop - height// 获取浏览器高度减去顶部导航栏
      e => e.preventDefault()
    },
  },
 }
};

// 调用的地方 传入的height 
import TableHeight from './../tableHeight' 
let tableHeight = new TableHeight(170)
export default {
  components: {},
  mixins: [tableHeight],

  data() {
    return {
      momentId: this.$route.params.id,
      tableheight:null,// table动态高度
}},
  components: { Pagination },
  mounted() {
    this.$nextTick(() => {
      this.getList();
      window.addEventListener('resize', this.getHeight);// 开始监听
      this.getHeight()// 获取
    });
  },
  destroyed(){
    window.removeEventListener('resize', this.getHeight);// 移除监听高度
  },
  methods: {
    timeTofmt: util.timeTofmt, // 时间格式化
    getHeight(e) {
      this.tableheight = window.innerHeight - this.$refs.pushrTable.offsetTop - 170// 获取浏览器高度减去顶部导航栏
// this.$refs.pushrTable.offsetTop table到父节点的高度 
// 170是固定高度 分页器+header
      e => e.preventDefault()
    },

相关文章

网友评论

      本文标题:el-table列表自适应高度

      本文链接:https://www.haomeiwen.com/subject/gcifwltx.html