基於jquery的web線上流程圖設計器gooFlow

来源:http://www.cnblogs.com/jianjianwoshi/archive/2016/01/14/5130078.html
-Advertisement-
Play Games

1、Gooflow特點1.1 跨瀏覽器可相容IE7--IE10, FireFox, Chrome, Opera等幾大內核的瀏覽器,且不需要瀏覽器再加裝任何控制項。1.2 多系統相容性、可移植性由於只包括前臺UI,因此二次開發者可很方便將本插件用在任何一種需要流程圖的B/S系統應用上,流程圖的詳細實現邏...


1、Gooflow特點

1.1 跨瀏覽器

可相容IE7--IE10, FireFox, Chrome, Opera等幾大內核的瀏覽器,且不需要瀏覽器再加裝任何控制項。

1.2 多系統相容性、可移植性

由於只包括前臺UI,因此二次開發者可很方便將本插件用在任何一種需要流程圖的B/S系統應用上,流程圖的詳細實現邏輯完全交於後臺程式開發者自己實現;對於後臺,只要能返回/接收能被本插件解析的JSON格式數據即可.所以本插件可用於不同的伺服器語言建立的後臺上.

1.3 跨領域

流程圖設計器不止用在電信領域,在其它需要IT進行技術支持的領域中都有重大作用. 

2、Gooflow實現

  • 頁面頂部欄、左邊側邊欄均可自定義;
  • 當左邊的側邊欄設為不顯示時,為只讀狀態,此時的視圖區可當作是一個查看器而非編輯器。
  • 側邊工具欄除了基本和一些流程節點按鈕外,還自定義新的節點按鈕,自定義節點都可以有自有的圖標、類型名稱,定義後在使用可可在工作區內增加這些自定義節點。
  • 頂部欄可顯示流程圖數據組的標題,也可提供一些常用操作按鈕。
  • 頂部欄的按鈕,除了撤銷、重做按鈕外,其餘按鈕均可自定義點擊事件。
  • 可畫直線、折線;折線還可以左右/上下移動其中段。
  • 具有區域劃分功能,能讓用戶更直觀地瞭解哪些節點及其相互間的轉換,是屬於何種自定義區域內的。
  • 具有標註功能,用橙紅色標註某個結點或者轉換線,一般用在展示流程進度時。
  • 能直接雙擊結點、連線、分組區域中的文字進行編輯
  • 在對結點、連線、分組區域的各種編輯操作,如新增/刪除/修改名稱/重設樣式或大小/移動/標註時,均可捕捉到事件,並觸發自定義事件,如果自定義事件執行的方法返回FALSE,則會阻止操作。
  • 具有操作事務序列控制功能,在工作區內的各種有效操作都能記錄到一個棧中,然後可以進行撤銷(undo())或重做(redo()),像典型的C/S軟體一樣。
  • 0.8版,取消原來的擬物化頁面,變成如今的扁平化頁面,並且支持主要位置的顏色自定義功能(如果想沿用原來老版本中的擬物化頁面,只需保留原來的GooFlow.css文件即可);修正0.7版中的畫線BUG。

3、Gooflow界面

如上圖所示:工作區寬度高度均為可見區的2倍,X,Y軸的方向如圖所示,於CSS樣式中頂距top和左距left是一樣的;
左邊是流程圖繪製工具欄,從上至下依次為:選擇指針、轉換連接線、開始節點、結束節點、任務節點、自動節點、決策節點、狀態節點、擴展附加節點、分支結點、聚合結點、複合子流程結點;最後一個不是節點,而是節點連線編輯與分組區域編輯兩種工作區狀態的切換開關,當切換至分組區域編輯後,只能操作分組區域塊,節點與連線都被鎖定;反之即然。
頂部是展示流程圖標題和放置一些功能按鈕的操作欄,這些按鈕除了系統自帶的外,還可由用戶自定義。
如果初始化中設置不要左邊工具欄和頂部的操作按鈕,則該UI就變成了一個流程圖查看/跟蹤器。


開始節點、結束節點為圓形,複合節點是綠色,其餘結點均是淡藍色圓角矩形,雙擊節點中的文字,可直接進行編輯;
轉換連線和直接和中段可上下移動的折線、中段可左右移動的折線共三種樣式,雙擊線條可直接編輯線條的文字說明內容;
分組區域需要左下角的開關被按下後才可編輯,有四種隨機顏色,點擊左上角的圓形圖標後可改變顏色,雙擊文本可直接編輯。

節點被選中時:

 

連線被選中時:

 

分組區域變為可操作時:

4、Goolflow構造函數

這裡color可配置的主要部分的顏色,分別為:繪圖器HEAD/圖標的顏色、結點背景色、連線/結點選中時邊框顏色、連線被選中/元素都標註時顏色、複合結點自定義背景顏色、字體顏色。

如果這些都不定義,則自動使用預設顏色。

5、Gooflow對象內部屬性

如有需要瞭解的可在附件中查看

6、Gooflow數據格式

{
    "title":"普通稿件審核流程",
    "initNum":10,
    "nodes":{
       "appFlow_node_1":{"name":"開始","left":84,"top":196,"type":"task","width":86,"height":24},
       "appFlow_node_2":{"name":"普通編輯審核","left":261,"top":39,"type":"task","width":108,"height":28},
       "appFlow_node_3":{"name":"編輯主任審核","left":444,"top":197,"type":"task","width":96,"height":26},
       "appFlow_node_4":{"name":"值班主任","left":616,"top":37,"type":"task","width":88,"height":25},
       "appFlow_node_5":{"name":"結束","left":772,"top":202,"type":"task","width":84,"height":22}
   },
    "lines":{
       "appFlow_line_6":{"type":"sl","from":"appFlow_node_1","to":"appFlow_node_2","name":"採寫","marked":false},
       "appFlow_line_7":{"type":"sl","from":"appFlow_node_2","to":"appFlow_node_3","name":"初審","marked":false},
       "appFlow_line_8":{"type":"sl","from":"appFlow_node_3","to":"appFlow_node_4","name":"再審","marked":false},
       "appFlow_line_9":{"type":"sl","from":"appFlow_node_4","to":"appFlow_node_5","name":"結束流轉","marked":false}
    },
    "areas":{
       "demo_area_8": {"name":"area_8","left":35,"top":20,"color":"red","width":850,"height":220}
    }
 }

7、angularjs指令——goo-flow

7.1 goo-flow指令功能

增加一個流程編輯器,可自行配置相關屬性

7.2 gooflow指令使用方法

1、配置config

在父級controller中對config.property和config.remark進行配置

2、準備編輯器數據jsondata

在父級controller中獲取路由resolve中的數據並保存

3、引入goo-flow指令且傳傳入參數config和jsondata

<goo-flow jsondata="jsondata" config="config"></goo-flow>

指令的link函數會根據config和jsondata初始化流程編輯器載入數據

7.3 指令詳細說明

7.3.1、父級controller中定義了配置和數據

config:對象中有兩個屬性

  • property   定義工具欄、編輯器相關屬性
  • remark     定義工具欄提示

jsondata:後臺返回的編輯器json數據,具體格式請參照數據格式

 

7.3.2、指令goo-flow

link函數中定義了一個方法editnodes

editnodes:雙擊編輯節點,打開模態框,在模態框中編輯節點相關信息

  • 創建圖類$.createGooFlow

prams1{element}元素節點
prams2{property}配置對象

 

  • 工具欄提示信息setNodeRemarks           

prams{remark}提示信息對象

 

exportData():是導出json數據

7.3.3、模態框控制器

可根據節點名稱判斷相關作用,具體的功能還沒有寫,所以暫時是這樣

8、附件

附件一:gooflow詳細API設計器API說明書.doc

附件二:gooflow demogooflow0.8.zip

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 安裝Nginx和Passenger(參考:https://www.phusionpassenger.com/library/install/nginx/install/oss/el6/)sudo yum install -y epel-release pygpgme curlsudo curl...
  • 題目:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For example, given the...
  • 北京尚學堂提供Java是目前最流行的編程語言之一——它可以用來編寫Windows程式或者是Web應用,移動應用,網路程式,消費電子產品,機頂盒設備,它無處不在。有超過30億的設備是運行在Java之上的。根據Oracle的統計數據,光是使用中的Java Card就有有50億。超過900萬程式員選擇使用...
  • PHP代碼: $arr = array(1,2,3,4,5,6,7); $x = 1; $y = 0; foreach($arr as $k => $v){ $data[$y][] = $v; //4 就是沒個li顯示4條數據,如果顯示3條,改成3即可。 ...
  • 使用 Firmonkey 在顯示 emoji 字元時,有些 emoji 並無法顯示彩色,見下圖:經查 FMX 源碼,是因為判斷 emoji 的字元區段不足造成的,經過修改後,便可顯示,見下圖:修改方法:將 FMX.FontGlyphs.iOS.pas 複製到自己的工程目錄下。找到 function ...
  • 單例模式在程式設計中非常的常見,一般來說,某些類,我們希望在程式運行期間有且只有一個實例,原因可能是該類的創建需要消耗系統過多的資源、花費很多的時間,或者業務上客觀就要求了只能有一個實例。一個場景就是:我們的應用程式有一些配置文件,我們希望只在系統啟動的時候讀取這些配置文件,並將這些配置保存在內.....
  • .h文件:#pragma once/****************************** @filename: Singleton.h* @author: kzf* @version: 1.0* @date: 2011/11/14 * @describe...
  • meta相關:CSS相關: -webkit-overflow-scrolling:touch;快速滾動和回彈的效果,看上去和原生app的效率都有得一拼。-webkit-overflow-scrolling創建了帶有硬體加速的系統級控制項,所以效率很高。但是這相對是耗更多記憶體的,最好在產生了非常大面積的...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...