日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用mxGraph绘制流程图

發布時間:2023/12/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用mxGraph绘制流程图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mxGraph是一個強大的JavaScript流程圖前端庫,可以快速創建交互式圖表和圖表應用程序,國內外著名的ProcessOne和draw.io都是使用該庫創建的強大的在線流程圖繪制網站.

這個庫相當強大和復雜,以至于初次接觸會無從下手,不過官方的文檔是相當強大和完善的,還有眾多的示例可以參考,因此,做出簡單的效果是沒有問題的,我主要介紹一下我自己在項目中遇到的問題。

  • 1.HTML元素作為流程圖元素

在項目中,我們要實現如下所示的流程圖。每個節點左側是圖標,中間是文字描述,右側是狀態展示,這種樣式使用HTML是很好處理的,那么在mxGraph中節點可以使用HTML嗎,當然是可以的。

首先,我們需要設置使用HTML標簽

graph.htmlLabels = true;

然后,在創建cell的時候傳入HTML,大小,以及樣式即可,如下:

var style = 'text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;';var html = '<table class="cellTable">' +' <tr>' +' <td>' +' <div class="cellIcon"><div></div></div>' +' </td>' +' <td class="cellLabel"></td>' +' <td class="cellState"><i class="fa"></i></td>' +' </tr>' +' </table>'; //創建cellvar cell = new mxCell(html, new mxGeometry(0, 0, 293, 89), style);cell.vertex = true;

使用HTML元素作為節點,可以很好的控制樣式,而且HTML節點也能很方便的添加事件和其他操作,十分方便。

  • 2.流程圖自動布局
    mxGraph提供了多種流程圖布局算法,常用緊湊樹布局算法即可,即

    new mxCompactTreeLayout(graph);

    不過這種算法只針對只有一個根節點的,對于這種有多個節點的,如下面這種:


則需要使用另外的算法來完成布局:

new mxHierarchicalLayout(graph, mxConstants.DIRECTION_NORTH);

通過根節點的數量來選擇不同的布局算法,以上。
又爛尾了,寫不下去,綜上,可以用HTML節點,以及根節點數量不同要選用不同的布局算法。

總結

以上是生活随笔為你收集整理的使用mxGraph绘制流程图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。