【数据处理】- 数组对象转换成树形结构

addProjectTerr(treeData, treeList) {
      // this.projectData(treeData) 选中的数据 (新增的数据)
      // this.projectList(treeList) 表格数据(已有的数据)
      let obj = {};
      if (treeData.fjnlmc !== undefined && treeData.fjnlmc !== '') {
        obj = {
          name: treeData.fjnlmc,
          id: treeData.fjnlid,
          children: [
            {
              name: treeData.sgznlmc,
              id: treeData.sgznlid,
              children: []
            }
          ]
        };
        if (treeData.fxffxmid !== '') {
          obj.children[0].children = [
            {
              name: treeData.xmffmc,
              id: treeData.fxffxmid
            }
          ];
        }
      } else {
        obj = {
          name: treeData.sgznlmc,
          id: treeData.sgznlid,
          children: []
        };
        if (treeData.fxffxmid !== '') {
          obj.children = [
            {
              name: treeData.xmffmc,
              id: treeData.fxffxmid,
              children: []
            }
          ];
        }
      }
      if (treeList.length > 0) {
        const filterArr = treeList.findIndex(v => {
          return v.id === obj.id;
        });
        if (filterArr > -1 && treeList[filterArr].children) {
          const fArr = treeList[filterArr].children.findIndex(i => {
            return i.id === obj.children[0].id;
          });
          if (fArr > -1 && treeList[filterArr].children[fArr].children) {
            const arr = treeList[filterArr].children[fArr].children.findIndex(
              e => {
                return e.id === obj.children[0].children[0].id;
              }
            );
            if (arr > -1) {
              this.$message({
                message: '该考核项目已经添加过!',
                type: 'warning'
              });
            } else {
              treeList[filterArr].children[fArr].children.push(
                obj.children[0].children[0]
              );
            }
          } else if (
            fArr > -1 &&
            !treeList[filterArr].children[fArr].children
          ) {
            this.$message({
              message: '该考核项目已经添加过!',
              type: 'warning'
            });
          } else {
            treeList[filterArr].children.push(...obj.children);
          }
        } else {
          treeList.push(obj);
        }
      } else {
        treeList.push(obj);
      }
    },
相关文章
相关标签/搜索