el-table的横向表头转为纵向表头

业务:普通的el-table的表头是横向的,现在需要将表头置换成纵向,并且横向为序号排布,方便比对。也适用于比对某个产品/数目的场景

vue3 + js + element-plus

tempelate:

      <el-table
       :data="verticalHeader"
        border
        :row-style="tableRowStyle"
        :cell-style="tabelCellStyle"
        :header-cell-style="tabelHeaderStyle"
        >
      <el-table-column
      v-for="(item,index) in horizontalHeader"
      :key="index"
      :prop="item"
      :label="item"
       />
    </el-table>

js

const horizontalHeader = ref([])
const verticalTable = reactive([
  {prop: 'canTxFrameNum', label:t('busStatistics.total-tx')},
  {prop: 'canRxFrameNum', label:t('busStatistics.total-rx')},
  {prop: 'canErrFrameNum', label:t('busStatistics.total-err')},
  {prop: 'canTxFps', label:t('busStatistics.tx-fr/s')},
  {prop: 'canRxFps', label:t('busStatistics.rx-fr/s')},
  {prop: 'canErrFps', label:t('busStatistics.err-fr/s')},
  {prop: 'occupyRate', label:t('busStatistics.bus-load')}
])//label:就是你的表头标签,这里由于我的是多语言设置,所以我用‘t’来表示
let verticalHeader = ref([])
let statisticsData = ref([])

const getHeaders = () => {
  horizontalHeader.value = statisticsData.value.reduce(
    (pre, cur, index) => pre.concat(`${index + 1}`), [t('busStatistics.ability')])
  return horizontalHeader.value
}

const getValues = computed(() => {
  const value = verticalTable.map(item => {
    const itemValues = {}
    statisticsData.value.forEach(cur => {
      itemValues[cur.index] = cur.channelStatistics[item.prop]
    })
    return Object.assign(itemValues, { [t('busStatistics.ability')]: item.label })
  })//这里的“t('busStatistics.ability')”就是你的横向表头,也就是你需要比对的序号名称
  return value
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值