element tabel表格 数据随时变化

本文详细介绍了如何在Vue项目中使用Vuex状态管理,实现el-table组件的高度自适应。通过监听窗口大小变化并计算可用高度,动态调整tableHeight属性,确保表格在不同设备和窗口尺寸下都能完美展示。

el-table 中 tableHeight 控制

<el-table v-loading="tableloading" :data="tabledatas" :height="tableHeight" style="width: 100%">

 import { mapGetters } from 'vuex'

computed: {
    ...mapGetters(
       ['tableHeight']
    )
  },
  
  • 在vuex --store / modules/ app.js 中定义
const state = {
  // 被用到了navbar中
  sidebar: {
    opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,
    withoutAnimation: true // 没有动画
  },
  // 看这里
  tableHeight: window.innerHeight - 350 // 监听高度      /// 控制高度
}

const mutations = {
  // 是否折叠的状态
  TOGGLE_SIDEBAR: state => {
    state.sidebar.opened = !state.sidebar.opened
    state.sidebar.withoutAnimation = false
    if (state.sidebar.opened) {
      Cookies.set('sidebarStatus', 1)
    } else {
      Cookies.set('sidebarStatus', 0)
    }
  },
  CLOSE_SIDEBAR: (state, withoutAnimation) => {
    Cookies.set('sidebarStatus', 0)
    state.sidebar.opened = false
    state.sidebar.withoutAnimation = withoutAnimation
  },
  TOGGLE_DEVICE: (state, device) => {
    state.device = device
  },
// 看这里
  TABLE_HEIGHT: (state, val) => {   /// 控制高度
    state.tableHeight = val
  }
}
  • 在layout下AppMain.js中 监控 window.innerHeight
mounted() {
    window.addEventListener('resize', (e) => {
      this.tableHeight = window.innerHeight - 350
      store.commit('app/TABLE_HEIGHT', this.tableHeight)
    })
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值