公司研發(fā)的管理系統(tǒng)有工作流圖形化設(shè)計和查看功能,這個功能的開發(fā)歷史比較久遠。在那個暗無天日的年月里,IE幾乎一統(tǒng)江湖,所以順理成章地采用了當(dāng)時紅極一時的VML技術(shù)。
后來的事情大家都知道了,IE開始走下坡路,VML這個技術(shù)現(xiàn)在早已滅絕,導(dǎo)致原來的工作流圖形化功能完全不能使用,所以需要采用新技術(shù)來重寫工作流圖形化功能。
多方對比之后,決定采用zrender庫來實現(xiàn)(關(guān)于zrender庫的介紹,請看http://ecomfe.github.io/zrender/),花了一天的時間,終于做出了一個大致的效果模型,如下圖所示:
流程圖由兩類部件組成:活動部件和連接弧部件,每一類部件包含多個性狀不同的部件。
以活動部件為例,圓形的是開始活動,平行四邊形是自動活動,長方形是人工活動,等等。
在代碼實現(xiàn)上,定義了Unit(部件基類),所有的部件都繼承自這個基類。通過Graph類來管理整個流程圖,包括所有部件、上下文菜單等等都由Graph來統(tǒng)一管理和調(diào)度,代碼如下:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式