本發(fā)明涉及前端,尤其涉及一種樹狀結(jié)構(gòu)的生成方法及裝置。
背景技術(shù):
1、在前端開發(fā)過程中,經(jīng)常會用到樹狀結(jié)構(gòu)來展示數(shù)據(jù),樹狀結(jié)構(gòu)可以很好地展示數(shù)據(jù)之間的關(guān)系,比如常見的組織架構(gòu)圖等,通過樹狀結(jié)構(gòu)可以清晰的看到各個節(jié)點之間的關(guān)系。
2、目前,生成樹狀結(jié)構(gòu)的方法是前端通過接口從服務(wù)端獲取節(jié)點數(shù)據(jù)以及節(jié)點之間關(guān)系的數(shù)據(jù),通過組件按子節(jié)點的父節(jié)點個數(shù)渲染樹狀結(jié)構(gòu)圖。例如:如圖1所示,一個子節(jié)點同時有兩個父節(jié)點,就會渲染成兩個獨立的樹狀結(jié)構(gòu)。以此類推,多個子節(jié)點同時擁有多個父節(jié)點,就會渲染出多個獨立樹狀結(jié)構(gòu),在頁面上就會出現(xiàn)多個樹狀結(jié)構(gòu)圖。
3、但是,上述生成樹狀結(jié)構(gòu)的方法只支持單個父節(jié)點的設(shè)計,在處理一個子節(jié)點同時擁有多個父節(jié)點的情況時,由于需要渲染成多個獨立的樹狀結(jié)構(gòu),會導(dǎo)致樹狀結(jié)構(gòu)的渲染次數(shù)較多,頁面的渲染速度較慢,并且會出現(xiàn)數(shù)據(jù)之間的割裂的問題。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,本發(fā)明提供一種樹狀結(jié)構(gòu)的生成方法及裝置,主要目的是為了實現(xiàn)減少樹狀結(jié)構(gòu)的渲染次數(shù),提高頁面的渲染速度,而且數(shù)據(jù)展示更加直觀,避免了數(shù)據(jù)之間的割裂。
2、為解決上述技術(shù)問題,本發(fā)明提出以下方案:
3、第一方面,本發(fā)明提供一種樹狀結(jié)構(gòu)的生成方法,所述方法包括:
4、獲取節(jié)點數(shù)據(jù)和節(jié)點關(guān)系數(shù)據(jù);
5、基于所述節(jié)點數(shù)據(jù)和所述節(jié)點關(guān)系數(shù)據(jù),獲取待生成目標(biāo)樹狀結(jié)構(gòu)的最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點;
6、基于所述最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點,生成所述待生成目標(biāo)樹狀結(jié)構(gòu)中的主樹狀結(jié)構(gòu);其中,所述主樹狀結(jié)構(gòu)中每個子節(jié)點對應(yīng)一個父節(jié)點;
7、當(dāng)所述主樹狀結(jié)構(gòu)存在至少一個第一子節(jié)點時,則在所述主樹狀結(jié)構(gòu)的所述第一子節(jié)點上添加至少一個對應(yīng)的父節(jié)點,生成所述目標(biāo)樹狀結(jié)構(gòu),所述第一子節(jié)點是對應(yīng)多個父節(jié)點的子節(jié)點。
8、第二方面,本發(fā)明提供一種樹狀結(jié)構(gòu)的生成裝置,包括:
9、第一獲取單元,用于獲取節(jié)點數(shù)據(jù)和節(jié)點關(guān)系數(shù)據(jù);
10、第二獲取單元,用于基于所述節(jié)點數(shù)據(jù)和所述節(jié)點關(guān)系數(shù)據(jù),獲取待生成目標(biāo)樹狀結(jié)構(gòu)的最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點;
11、第一生成單元,用于基于所述最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點,生成所述待生成目標(biāo)樹狀結(jié)構(gòu)中的主樹狀結(jié)構(gòu);其中,所述主樹狀結(jié)構(gòu)中每個子節(jié)點對應(yīng)一個父節(jié)點;
12、第二生成單元,用于當(dāng)所述主樹狀結(jié)構(gòu)存在至少一個第一子節(jié)點時,則在所述主樹狀結(jié)構(gòu)的所述第一子節(jié)點上添加至少一個對應(yīng)的父節(jié)點,生成所述目標(biāo)樹狀結(jié)構(gòu),所述第一子節(jié)點是對應(yīng)多個父節(jié)點的子節(jié)點。
13、為了實現(xiàn)上述目的,根據(jù)本發(fā)明的第三方面,提供了一種存儲介質(zhì),所述存儲介質(zhì)包括存儲的程序,其中,在所述程序運行時控制所述存儲介質(zhì)所在設(shè)備執(zhí)行上述第一方面所述樹狀結(jié)構(gòu)的生成方法。
14、為了實現(xiàn)上述目的,根據(jù)本發(fā)明的第四方面,提供了一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如第一方面所述用于樹狀結(jié)構(gòu)的生成方法的全部或部分步驟。
15、為了實現(xiàn)上述目的,根據(jù)本發(fā)明的第五方面,提供了一種計算機程序產(chǎn)品,包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)第一方面所述方法的步驟。
16、借由上述技術(shù)方案,本發(fā)明提供的樹狀結(jié)構(gòu)的生成方法及裝置,是由于目前生成樹狀結(jié)構(gòu)的方法只支持單個父節(jié)點的設(shè)計。為此,本發(fā)明通過獲取節(jié)點數(shù)據(jù)和節(jié)點關(guān)系數(shù)據(jù);基于所述節(jié)點數(shù)據(jù)和所述節(jié)點關(guān)系數(shù)據(jù),獲取待生成目標(biāo)樹狀結(jié)構(gòu)的最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點;基于所述最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點,生成所述待生成目標(biāo)樹狀結(jié)構(gòu)中的主樹狀結(jié)構(gòu);其中,所述主樹狀結(jié)構(gòu)中每個子節(jié)點對應(yīng)一個父節(jié)點;當(dāng)所述主樹狀結(jié)構(gòu)存在至少一個子節(jié)點時,則在所述主樹狀結(jié)構(gòu)的所述子節(jié)點上添加至少一個對應(yīng)的父節(jié)點,生成所述目標(biāo)樹狀結(jié)構(gòu),所述第一子節(jié)點是對應(yīng)多個父節(jié)點的子節(jié)點。本發(fā)明通過計算最大層級的主樹狀結(jié)構(gòu),然后通過節(jié)點關(guān)系數(shù)據(jù)渲染子節(jié)點,避免節(jié)點的重復(fù)渲染以及樹狀結(jié)構(gòu)的重復(fù)渲染,提高了頁面的渲染速度,更加直觀的展示節(jié)點之間的關(guān)系,避免了數(shù)據(jù)之間的割裂。
17、上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
1.一種樹狀結(jié)構(gòu)的生成方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述節(jié)點數(shù)據(jù)和所述節(jié)點關(guān)系數(shù)據(jù),獲取待生成目標(biāo)樹狀結(jié)構(gòu)的最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述最大層數(shù)和每個節(jié)點對應(yīng)的所有父節(jié)點,生成所述待生成目標(biāo)樹狀結(jié)構(gòu)中的主樹狀結(jié)構(gòu),包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述當(dāng)所述主樹狀結(jié)構(gòu)存在至少一個第一子節(jié)點時,則在所述主樹狀結(jié)構(gòu)的所述第一子節(jié)點上添加至少一個對應(yīng)的父節(jié)點,生成所述目標(biāo)樹狀結(jié)構(gòu),所述第一子節(jié)點是對應(yīng)多個父節(jié)點的子節(jié)點,包括:
5.根據(jù)權(quán)利要求1-4任一所述的方法,其特征在于,在當(dāng)所述主樹狀結(jié)構(gòu)存在至少一個第一子節(jié)點時,則在所述主樹狀結(jié)構(gòu)的所述第一子節(jié)點上添加至少一個對應(yīng)的父節(jié)點,生成所述目標(biāo)樹狀結(jié)構(gòu),所述第一子節(jié)點是對應(yīng)多個父節(jié)點的子節(jié)點之后,所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括:
7.一種樹狀結(jié)構(gòu)的生成裝置,其特征在于,包括:
8.一種存儲介質(zhì),所述存儲介質(zhì)包括存儲的程序,其特征在于,在所述程序運行時控制所述存儲介質(zhì)所在設(shè)備執(zhí)行權(quán)利要求1至權(quán)利要求6中任一項所述樹狀結(jié)構(gòu)的生成方法。
9.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述程序時實現(xiàn)如權(quán)利要求1至權(quán)利要求6中任一項所述樹狀結(jié)構(gòu)的生成方法的全部或部分步驟。
10.一種計算機程序產(chǎn)品,包括計算機程序/指令,其特征在于,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至權(quán)利要求6中任一項所述樹狀結(jié)構(gòu)的生成方法的步驟。