el-table横向数据表格实现

el-table横向数据表格实现

众所周知,el-table大部分场景下包括官方例子,table都是纵向数据,就是渲染每一项的数据是一列的
在这里插入图片描述

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
</template>

<script lang="ts" setup>
const tableData = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
]
</script>

最近有个需求它是横向数据渲染,是一行一行的,之前没写过一时间没思路,现在解决了记录一下。
在这里插入图片描述

  1. 首先肯定要给el-table加上:show-header="false"把表头取消
  2. 请求返回的数据跟上述差不多,要想横向渲染需要处理一下数据格式
const formatSettings = (data) => {
  if (!data || !data.length) return []
  let typeList = ['类别']
  let testNameList = ['考核指标']
  let percentList = ['占比(%)']
  let criterionList = ['评分标准']
  let ruleList = ['计算方法']
  let formulaList = ['计算公式']
  let explanationList = ['说明']
  data.forEach(item => {
    typeList.push(item.category)
    testNameList.push(item.name)
    percentList.push(item.percent)
    criterionList.push(item.criterion)
    ruleList.push(item.rule)
    formulaList.push(item.formula)
    explanationList.push(item.explanation)
  })
  typeList = [...typeList, "总分"]
  percentList = [...percentList, "100"]
  tableTitle.value = typeList
  return [typeList, testNameList, percentList, criterionList, ruleList, formulaList, explanationList]
  }
  1. 最后返回的数组就是表格的tableData,里面的每一项就是表格一行的数据
<el-table :data="tableData" border empty-text="暂无考核项" :show-header="false">
    <el-table-column align="center" v-for="(item, index) in  tableTitle " :key="index" width="160">
      <template #default="scope">
        {{ scope.row[index] || '--' }}
      </template>
    </el-table-column>
</el-table>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值