Fork me on Gitee

GooFlow is a online process designer for building flowcharts on web-side. There are currently three editions of Js Native, Vue and React. You can use it to design any variety of flow diagrams, or be applicated in systems which are needed to achieve the function of the process. The excellent experience makes the operation interface easy to use, and it can be easily used by both the initiator and the user. It's also compatible with the cross-browser (ie11, edge, chrome, firefox).
  The Jquery Edition was renamed Js Native Edition, no longer dependent on Jquery, and the support for IE8 was cancelled.
  The GooFlow of Vue3.x Edition is ready!

Forward Demo         
star
fork

Features


  • Cross-browser

    GooFlow is compatible with IE11, Edge, FireFox, Chrome, etc.
  • Strong Versatility

    GooFlow is easily applied to design workflow engine or other process business in various of fields.
  • Easy And Good UE

    It uses like Desktop App with good UE, and describes flowcharts with easy Json.
  • Lightweight

    The main file is less than 120KB after compressed, additional extension package are less than 180KB.
  • Customizable Style

    Open color config, flexible node icon style settings; developers can also modify the css file directly.
  • Ample API Function

    GooFlow provides a plenty of method APIs and event APIs, so that you can develop a IDE application with it.

Guide To Start


Step 1: Use it (with traditional methods)

Firstly introduce the Css file at the beginning of the page, and introduce the central files of jquery and GooFlow at the end of the body.

<head>
    <link rel="stylesheet" type="text/css" href="./dist/assets/GooFlow.min.css"/>
</head>
<body>
    <div id="demo"></div>
    ……
    <script type="text/javascript" src="./dist/GooFlow.js"></script>
    <!-- Optional, a extension file of exporting the flowchart into a picture file.  -- export.js -->
    <script type="text/javascript" src="./dist/extends/export.js"></script>
    <!-- Optional, a extension file of print the flowchart or save flowchart as a PDF file.  -- print.js -->
    <script type="text/javascript" src="./dist/extends/print.js"></script>
    <script type="text/javascript" src="./main.js"></script>
</body>
Then call GooFlow methods in the business js file.
/** main.js **/
	var options = {
		toolBtns:["start round mix","end round","task","node","chat","state","plug","join","fork","complex mix"],
		haveHead:true,
		headLabel:true,
		headBtns:["new","open","save","undo","redo","reload","print"],// define header's buttons when haveHead=true
		haveTool:true,
		haveDashed:true,
		haveGroup:true,
		useOperStack:true
	};
	var demo = GooFlow.init("#demo",options);
    demo.setNodeRemarks(remark); //remarks is a title prompt definition for the left toolbar buttons
	demo.loadData(jsondata); //jsondata is a json data for expressing the detail of flowcharts

Step 2: Use it (in AMD modular)

Take RequireJsas an example, first add the following settings to the RequireJs in the repository's unified configuration file, you need to use the require-css(css.min.js)plugin.
/** require.config.js **/
requirejs.config({
    map: {
		'*': {
			'css': 'https://cdn.bootcss.com/require-css/0.1.10/css.min.js' // https://github.com/guybedford/require-css, RequireJs's plugin
		}
	},
    paths: {
        GooFlow: './dist/GooFlow',
        'GooFlow.export': './dist/extends/export',  // Optional, a extension file of exporting the flowchart into a picture file.
        'GooFlow.print': './dist/extends/print',    // Optional, a extension file of print the flowchart or save flowchart as a PDF file.
        //// ……
    },
    //// ……
    shim: {
        GooFlow: {
            deps:['css!./dist/assets/GooFlow.min.css']
        }
    },
});

In the html file that will asynchronously import the main.js entry business file, add this segment to the body's end;

<body>
    <div id="demo"></div>
    ……
    <script data-main="main.js" src="https://cdn.bootcss.com/require.js/2.3.5/require.min.js"></script>
	<script src="../assets/js/require.config.js"></script>
</body>
Then in the business js file, import packages and make initialization.
/** main.js **/
require(['GooFlow'], function ( GooFlow ) {
    // code for init
    var property = { …… };
    var demo = GooFlow.init("#demo",options);
    demo.setNodeRemarks(remark); //remarks is a title prompt definition for the left toolbar buttons
    demo.loadData(jsondata);     //jsondata is a json data for expressing the detail of flowcharts
});
If you want to use the functions provided by other extension packages, please be sure to load the corresponding extension packages after loading GooFlow.js to ensure that the corresponding function is enable.
/** main.js using extension packages **/
require(['GooFlow'], function ( GooFlow ) {
    require(['GooFlow.export','GooFlow.print'], function (){
        // code for init
        var options = { …… };
        var demo = GooFlow.init("#demo",options);
        demo.setNodeRemarks(remark);         //remarks is a title prompt definition for the left toolbar buttons
        demo.setHeadToolsRemarks(headBtns);  //headBtns is a title prompt definition for the header bar's buttons
        demo.loadData(jsondata);             //jsondata is a json data for expressing the detail of flowcharts
        demo.onBtnSaveClick=function(){
            demo.exportDiagram('myFile');//the function of exporting a png file
        }
        demo.onPrintClick=function(){
			demo.print();//the function of printing or save flowchart as a PDF file
        }
    });
});

To learn more, please refer to API Document of Js Native Edition , API Document of Vue Edition or API Document of React Edition.

Updated History


  • 1.5 for All :
    Reconstruct some elements and special effects to optimize performance; The newly added slot type node allows users to more flexibly customize the internal rendering content of the node.
  • 1.4 for Lastest :
    The GooFlow of Vue3.x Edition is ready!
  • 1.4 for All :
    Fixed some bugs, optimizing directory structure; Optimize the operation experience. When moving a swimming lane, you can set whether the nodes/lines in the lane follow the movement.
  • 1.4, 1.2 for Vue/React :
    Important update! The polyline can support 5 polyline segments; optimize multi-selection operation experience, remove single/multiple selection switching; optimize node drag operation experience.
  • 1.3.12 :
    Important update! Getting rid of the dependency on Jquery and removing the Ajax method implemented through Jquery, IE8 is no longer supported.
  • 1.1.0 for Vue/React :
    Important update! Increase support for adding block elements by dragging and dropping like Visio.
  • 1.3.11 :
    Important update! Increase support for adding block elements by dragging and dropping like Visio.
  • 1.0.0 for React :
    New React Component Edition Reloading Attacks!
  • 1.0.0 for Vue :
    New Vue Component Edition Reloading Attacks!
  • 1.3.10 :
    Automatically aligns and displays the ability to align guides when moving a block element.
  • 1.3.9 :
    Important update! Add thumbnail navigation map features, including drag positioning and live scrolling. Add the mouse wheel +Ctrl key to control the zoom function of drawing area.
  • 1.3.9r1 :
    Important updates! Fixed some newly discovered bugs; increased support for segments, modified the way of setting for the dashed line; added multi-selection features (for nodes and connections only), and enabled bulk move and deletion of multi-selected collections of elements.
  • 1.3.8rp :
    Fixed some newly discovered bugs and improve the overall operating efficiency; use the new anti-infringement mechanism to replace the original JS mining on the trial version; separate the swimlane support from the core file and form a separate extension function block GooFlow.group.min.js; add note elements (via new function blocks); add custom background image type nodes to adapt to more scenes.
  • 1.3.7 :
    Minor and Small Bonus: Fixed a small BUG of the actual width and height algorithm of the calculation flow chart. When initializing, the property of setting the initial default name prefix of the node and the lane is added.
  • 1.3.6 :
    Enhanced functionality! Fixed the problem that the focus event is triggered twice when a element is selected. Adds the right-clicking the blank area of the drawing area to trigger the operation of the blur event. Adds an interface to set the extended service attribute of an element. After the flowchart loaded, user can use two new interfaces to modify the color or text color of an element.
  • 1.3.5 :
    Feature Update! Grouped lanes have added "milk" color; users can customize special graphics colors and text colors for individual nodes or lines; the designer adds ctrl+c keyword command to copy node and ctrl+v keyword command to paste node.
  • 1.3.4 :
    Important updates! Fixed some bugs in event response, image export, and drawing area scaling; added four special shape nodes: ellipse, rhombus, parallelogram, and capsule.
  • 1.3.3 :
    Important functions on line! New support for flowchart data of XML format under Bpmn2.0 specification is added, which can load or export XML data of Bpmn2.0 specification. Allowed users download flowchart data as a json file or Bpmn2.0's XML file. Further optimize the code.
  • 1.3.2 :
    Optimized the code structure and user experience; Strengthen cohesion, simplify the internal implementation of the process save as picture function and print function, got rid of the dependence on third-party plugins from version 1.1 to 1.2, and exports results more clearly. And could be backwards compatible to IE9; each part of the button could be configured through the built-in interface method; node data added "areaId" optional attribute: indicates which area group (lane) it belongs to. The overall also added support for amd, cmd development model specification.
  • 1.3 :
    Fixed some bugs that affect the user experience and usage, and add flexible annotation configuration functions for all operation buttons in the workspace.
  • 1.2.1 :
    Improved support for IE8; optimize the accuracy of manually resized elements; add functionality to print previews or save as PDFs.
  • 1.2 :
    Major update version! Added method for right-click events and double-click events for nodes, connections, and lane blocks (return false to prevent browser default events from occurring); Add dashed line drawing function method: should be requested by many users Added important flowchart zoom function interface! The scalable range is from 50% to 400% of the original size. (Only provide method interface, you can chooses to bind the third-party's operation element)
  • 1.1 :
    BUG has been further amended; the function of exporting the flow chart in the work area into a picture and allowing the user to download has been added. Currently only IE10, IE edge, Chrome, FireFox, Safari browsers can be supported, and this function needs to load new GooFlow.export.min.js extension package.
  • 1.0.2 :
    Fixed the problem that when a node was originally marked, the marked red mode disappeared after the selection and cancellation.
  • 1.0 :
    The initial official version. Compared with the previous trial version, the BUG has been further revised, more customizable color items are available, and there is no longer a single picture. All icons are evenly shaped as vector fonts.

Purchase Authorization


The version released in the current hosting project is only a trial version, which will make the CPU meaningless idling and energy consumption, and it also contains regular pop-up advertisements that can only be used for local functional testing and must not be put into use in actual projects.

If you want to apply to a software development project, you can only use the pure version without any additional official version, and you need to contact the author himself to purchase the license. Thank for your attention to GooFlow.

( Notes: Please don't try to crack the program no matter that it is official edition or trial edition. It's a nfringement act. )

The official license fee is ¥5,600 RMB / product for Js Native Edition, or ¥6,300 RMB / product for Vue/React Edition. Currently, it supports Alipay and Weixin payment.

The purchase of a license corresponds to only one item of product. (if the license for the 1st period of the project is purchased, it can be used continuously in the second and subsequent periods; the same product can be under one license. Different customized versions are sold to different customers.)

#Trial EditionOfficial Edition
Excellent stability
High efficiency
Low resource occupancy
Timed Advertisement
Replicable Transmission
Advanced Features
Runs demos in local environment only for testing functions
Can be applied to projects
Lifetime upgrade for free
Better technical support
One authorization price: ( for free ) ¥5,600 (Js Native) /
¥6,300 (Vue/React)

To learn more,please click "About Me" in page of top-right to contact me author.


Business Customers