• vue+element-ui动态生成多级表头,并且将有相同字段下不同子元素合并为同一个


    element表头要多层生成,下一级表头数据源必须是当前表头的子一级,这样一层一层嵌套可以生成多层表头:

    要把数据处理成这种类型的数据

               var arr = [];
                for (var key in obj) {
                  var item = {};
                  item.children = new Object()
                  item.children[key] = obj[key]
                  item.id = res[0][key]
                  item.lable = res[1][key];
                  arr.push(item);
                }

    在vue的页面上对于循环的处理也是要多层循环:

      <el-table-column v-for="(item,key1) in tablehead"  :key="key1" :label="item.lable" v-if="key1!=0">
             <el-table-column v-for="(value,key) in item.children" :prop="key" :key="key" :label-class-name="key" :label="value" :id="key">
              <!-- 如果要生成多层循环表头,在这里面一直嵌套处理一下就行了 -->
          </el-table-column>
        </el-table-column>

     对于用别人的ui框架,最好就是改下数据源,适应框架的数据源的结构:

    之前数据结构是这种

    现在要把每项相同lable的数据的children放在一个下面;

    :

    将相同字段合并为一个

                var temp = [],
                    ob = {}
                for(var i in arr){
                  let item = arr[i]
                  if(!ob[item.lable]){
                    temp.push({
                      lable:item.lable,
                      id:item.id,
                      children:item.children
                    });
                    ob[item.lable] = item.lable
                  }else{
                    for(var j in temp){
                      if(temp[j].lable == item.lable){
                        for(var o in item.children){
                          // 通过对象循环给把每个children的赋值给一个
                          temp[j].children[o]= item.children[o]
                        }
                      }
                    }
                  }
                }
  • 相关阅读:
    Java基础知识点总结(四)
    Java基础知识点总结(三)
    用easyui实现查询条件的后端传递并自动刷新表格的两种方法
    在JDBC中实现SQL语句的模糊查询
    向DataGrid数据表格增加查询搜索框
    Java基础知识点总结(二)
    easyui中formatter的用法
    腾讯云+阿里云 搭建hadoop + hbase
    -- 记录 -- 问题记录
    -- 1 -- springboot
  • 原文地址:https://www.cnblogs.com/Tohold/p/9604128.html
Copyright © 2020-2023  润新知