天天看點

Grails樹形菜單(1)

這幾天研究多級樹的設計,學到了點東西,分享一下心得:

表設計:

分組表(MasGroup)

這裡面特意增加了root屬性,如果目前組是根元素的話,設定為true,主要是友善定位樹根。

使用者表(MasUser)

OK,由于每個組可以有多個子組,獨立設計了樹根組(GroupTree)

讓Grails自動建表,分組資訊會獨立存放到group-tree表中。

下面是建立目錄樹的算法,之前琢磨了好久,用到節點深度、節點兄弟等好幾種,剛剛開竅,思路是這樣:

定位一個節點,先查找有沒有子節點,有則建立ul樹枝,然後遞歸循環孫子節點,沒有則直接輸出節點。

這個跑起來之後,添加一些測試資料,能得到期望的結果,我使用了JQuery-treeview插件生成樹目錄,截圖如下:

Grails樹形菜單(1)

接下來做前台。