developYan 2021-01-13 00:05 采纳率: 100%
浏览 1057
已结题

vue+element类似动态横向树形表格生成问题。

<template>
<div>
  <template>
    <el-table
      :data="tableData"
      stripe
      style="width: 100%">
      <el-table-column
        prop="0"
        label="第一列"
        width="180">
      </el-table-column>
      <el-table-column
        prop="1"
        label="第二列"
        width="180">
      </el-table-column>

    </el-table>
  </template>
</div>
</template>

<script>
    export default {
        name: "index2",
      data() {
          return {
            "logicData": [
              {
                "name": "第一列",
                "id": 0,
                "rowList": [
                  {
                    "id": 0,
                    "value": "row1"
                  },
                  {
                    "id": 1,
                    "value": "row2"
                  }
                ]
              },
              {
                "name": "第二列",
                "id": 1,
                "rowList": [
                  {
                    "id": 0,
                    "value": "row1"
                  },
                  {
                    "id": 1,
                    "value": "row2"
                  }
                ]
              }
            ],

            tableData:[
              {
                0:"row1",
                1:"row1"
              },
              {
                0:"row1_补位",
                1:"row2"
              },
              {
                0:"row2",
                1:"row1"
              },
              {
                0:"row2_补位",
                1:"row2"
              }
            ]
          }
      }
    }
</script>

<style scoped>

</style>

如图是一个动态横向树形表格渲染的问题,代码和贴图是示例数据和展现效果。代码都是写死的数据,实际需要写出逻辑动态生成数据渲染表格。logicData和tableData都是写死数据。实际logicData数组中元素都是可以不断添加的,tableData为表格所需数据(需根据logicData动态生成)

大致思路:

logicData是一个可动态添加的数组,数组中每次加一个对象,表格就增加一列。表格的列prop绑定对象里id属性的值。如效果图中的0和1就是logicData中两个对象的id值

rowList是当前对象对应的列的表格值。第一列的值有row1和row2.所以第一列有两行,如图。但是每行下有个补位值row1_补位和row_2补位。

补位值是因第2列中行数生成的。logicData中的第二列,是以第一列的每行作为父级填充表格数据。即如图关系箭头。所以当第一列有两行时。第二列也有两行时,结果就是2*2行。如果继续加入第三列,且第三列也有2行数据,那么第三列的每行以第二列的每行作为父级循环填充表格。则最终表格有2*2*2行。

代码中tableData是logicData经过逻辑代码得出来的。有前辈能写下逻辑代码。动态生成tableData吗?酬谢。

表格整体其实就是横向树形表格。补位最后可合并起来。不需要展示。感谢解答

  • 写回答

4条回答 默认 最新

  • 天际的海浪 2021-01-13 04:09
    关注

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数