由於歷史原因,在之前實現樹表格時,我們有點偷懶,本來應該是層級嵌套的樹結構,被我們硬生生的拉平了,請看:
可以看到,basic目錄的子節點和basic是在同一級別的,因為此目錄尚未展開,所以這些子節點被標識為隱藏(f-hidden)。
這樣做的好處,就是處理方便,因為可以沿用之前表格的一套邏輯代碼。
但終究是不夠優雅,而且遇到子節點比較多的情況,折疊展開就是顯示隱藏一大堆節點,怎么都給人很low的感覺。
這不,我們一直惦記着這個事情,來看下下個版本(v5.6.0)的樹表格DOM結構:
可以看出,子節點被包含在一個 f-grid-treegroup 的節點中,這時再折疊展開目錄只需要改變一個節點的樣式類即可了!
結構看着很清楚,但是實現起來就麻煩多了,因為和表格默認的平面TR不同,這里涉及到嵌套,而且這個嵌套可能就不是一級了,比如:
這里的 common.css 節點就被嵌套在兩個 table.f-grid-table,因此我們的代碼要Cover這些邏輯少不了一些遞歸了。
更重要的是,打破了單層 TR 的局限,以后我們可以給表格增加更豐富的功能!
這次的樹表格重構,也算是為更美好的未來打下堅實基礎,希望你能喜歡這次的更新!
加入知識星球下載FineUIPro/Mvc/Core的基礎版!
不忘初心,砥礪前行!