【數據處理】- 數組對象轉換成樹形結構

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);
      }
    },
相關文章
相關標籤/搜索