Jelajahi Sumber

:bug: 关系图部分关联丢失 Fix https://github.com/siyuan-note/siyuan/issues/7383

Liang Ding 2 tahun lalu
induk
melakukan
f4f08b1fcf
2 mengubah file dengan 8 tambahan dan 5 penghapusan
  1. 7 4
      kernel/model/graph.go
  2. 1 1
      kernel/sql/block_ref_query.go

+ 7 - 4
kernel/model/graph.go

@@ -113,23 +113,26 @@ func BuildTreeGraph(id, query string) (boxID string, nodes []*GraphNode, links [
 				rootIDs = append(rootIDs, rootDef.ID)
 			}
 
-			sqlRootRefBlocks := sql.QueryRefRootBlocksByDefRootIDs(rootIDs)
-			for defRootID, sqlRefBlocks := range sqlRootRefBlocks {
+			sqlRefBlocks := sql.QueryRefRootBlocksByDefRootIDs(rootIDs)
+			for defRootID, sqlRefBlocks := range sqlRefBlocks {
 				rootBlock := getBlockIn(rootDefBlocks, defRootID)
 				if nil == rootBlock {
 					continue
 				}
 
+				blocks = append(blocks, rootBlock)
 				refBlocks := fromSQLBlocks(&sqlRefBlocks, "", 0)
 				rootBlock.Refs = append(rootBlock.Refs, refBlocks...)
+				blocks = append(blocks, refBlocks...)
 			}
 
 			// 按定义处理
-			sqlRootRefBlocks = sql.QueryRefRootBlocksByDefRootIDs([]string{rootID})
-			for _, sqlRefBlocks := range sqlRootRefBlocks {
+			sqlRefBlocks = sql.QueryRefRootBlocksByDefRootIDs([]string{rootID})
+			for _, sqlRefBlocks := range sqlRefBlocks {
 				blocks = append(blocks, rootBlock)
 				refBlocks := fromSQLBlocks(&sqlRefBlocks, "", 0)
 				rootBlock.Refs = append(rootBlock.Refs, refBlocks...)
+				blocks = append(blocks, refBlocks...)
 			}
 		}
 	}

+ 1 - 1
kernel/sql/block_ref_query.go

@@ -170,7 +170,7 @@ func QueryRefRootBlocksByDefRootIDs(defRootIDs []string) (ret map[string][]*Bloc
 		}
 
 		if nil == ret[defRootID] {
-			ret[defRootID] = []*Block{}
+			ret[defRootID] = []*Block{&block}
 		} else {
 			ret[defRootID] = append(ret[defRootID], &block)
 		}