前端jqury脚本实现流程设计,兼容目前主流浏览器

gooflow 默认属性节点只有:id,name,top,left,width,height,type (各个版本不同,属性节点有所增加),但是这些都是和流程设计器本身有关的

实现自定义属性字段:

1、在节点数据对象上加上自己的定义属性字段(我自定义了一个data 属性字段)

2、修改的时候把属性字段填充到对应的对象属性字段中

var focusLine = demo.getItemInfo(focusId, "node");
focusLine.data = $("#ele_data").val();

<!DOCTYPE html>
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程图DEMO</title>
<!--[if lt IE 9]>
<?import namespace="v" implementation="#default#VML" ?>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../codebase/GooFlow.css"/>
<style>
.myForm{display:block;margin:0px;padding:0px;line-height:1.5;border:#ccc 1px solid;font: 12px Arial, Helvetica, sans-serif;margin:5px 5px 0px 0px;border-radius:4px;}
.myForm .form_title{background:#428bca;padding:4px;color:#fff;border-radius:3px 3px 0px 0px;}
.myForm .form_content{padding:4px;background:#fff;}
.myForm .form_content table{border:0px}
.myForm .form_content table td{border:0px}
.myForm .form_content table .th{text-align:right;font-weight:bold}
.myForm .form_btn_div{text-align:center;border-top:#ccc 1px solid;background:#f5f5f5;padding:4px;border-radius:0px 0px 3px 3px;}
#propertyForm{float:right;width:260px}
</style>
<script type="text/javascript" src="child.js"></script>
<script type="text/javascript" src="../plugin/jquery.min.js"></script>
<script type="text/javascript" src="../codebase/GooFunc.js"></script>
<script type="text/javascript" src="../plugin/json2.js"></script>
<link rel="stylesheet" type="text/css" href="default.css"/>
<script type="text/javascript" src="../codebase/GooFlow.js"></script>
<script type="text/javascript" src="../codebase/GooFlow.color.js"></script>
<script type="text/javascript">
var property={width:1072,height:600,toolBtns:["start round","end round","task round","node","chat","state","plug","join","fork","complex mix"],haveHead:true,headBtns:["new","open","save","undo","redo","reload"],//如果haveHead=true,则定义HEAD区的按钮haveTool:true,haveGroup:true,useOperStack:true
};
var remark={cursor:"选择指针",direct:"结点连线",start:"入口结点","end":"结束结点","task":"任务结点",node:"自动结点",chat:"决策结点",state:"状态结点",plug:"附加插件",fork:"分支结点","join":"联合结点","complex mix":"复合结点",group:"组织划分框编辑开关"
};
var demo;
$(document).ready(function(){demo=$.createGooFlow($("#demo"),property);demo.setNodeRemarks(remark);demo.onItemDel=function(id,type){if(confirm("确定要删除该单元吗?")){this.blurItem();return true;}else{return false;}}demo.loadData(jsondata);demo.onItemFocus=function(id,model){console.info(this.$nodeData);$("#ele_model").val(model);$("#ele_id").val(id);if(model=="line"){obj=this.$lineData[id];$("#ele_type").val(obj.M);$("#ele_left").val("");$("#ele_top").val("");$("#ele_width").val("");$("#ele_height").val("");$("#ele_from").val(obj.from);$("#ele_to").val(obj.to);$("#ele_data").val(obj.data);}else if(model=="node"){obj=this.$nodeData[id];$("#ele_type").val(obj.type);$("#ele_left").val(obj.left);$("#ele_top").val(obj.top);$("#ele_width").val(obj.width);$("#ele_height").val(obj.height);$("#ele_from").val("");$("#ele_to").val("");$("#ele_data").val(obj.data);}$("#ele_name").val(obj.name);return true;};demo.onItemBlur=function(id,model){document.getElementById("propertyForm").reset();return true;};
});
var out;
function Export(){document.getElementById("result").value=JSON.stringify(demo.exportData());
}function backConChoose(focusId) {var focusNode = demo.getItemInfo(focusId, "node");focusNode.data = $("#ele_data").val();document.getElementById("result").value=JSON.stringify(demo.exportData());}</script>
</head>
<body style="background:#EEEEEE">
<div id="demo" style="margin:5px;float:left"></div>
<form class="myForm" id="propertyForm">
<div class="form_title">属性设置</div>
<div class="form_content"><table><tr><td class="th">Id:</td><td><input type="text" style="width:120px" id="ele_id"/></td></tr><tr><td class="th">Name:</td><td><input type="text" style="width:120px" id="ele_name"/></td></tr><tr><td class="th">Type:</td><td><input type="text" style="width:120px" id="ele_type"/></td></tr><tr><td class="th">Model:</td><td><input type="text" style="width:120px" id="ele_model"/></td></tr><tr><td class="th">Left-r:</td><td><input type="text" style="width:120px" id="ele_left"/></td></tr><tr><td class="th">Top-r:</td><td><input type="text" style="width:120px" id="ele_top"/></td></tr><tr><td class="th">Width:</td><td><input type="text" style="width:120px" id="ele_width"/></td></tr><tr><td class="th">Height:</td><td><input type="text" style="width:120px" id="ele_height"/></td></tr><tr><td class="th">From:</td><td><input type="text" style="width:120px" id="ele_from"/></td></tr><tr><td class="th">To:</td><td><input type="text" style="width:120px" id="ele_to"/></td></tr><tr><td class="th">Data:</td><td><input type="text" style="width:120px" id="ele_data"/></td></tr></table>
</div>
<div class="form_btn_div"><input type="reset" value="重置"/><input type="button" value="确定" οnclick="backConChoose(demo.$focus)"/>
</div>
</form>
<div style="clear:both">
<input id="submit" type="button" value='导出结果' οnclick="Export()"/>
<textarea id="result" row="6"></textarea>
</div>
</body>
</html>

  

其特点:

1、跨浏览器,可兼容IE7--IE11, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件。 (IE7-IE8时,使用VML;IE9以上,FF,OPERA,CHROME,SAFARI上使用SVG) 
2、 多系统兼容性、可移植性:由于只包括前台UI,因此二次开发者可很方便将本插件用在任何一种需要流程图的B/S系统应用上,流程图的详细实现逻辑完全交于后台程序开发者自己实现;对于后台,只要能返回/接收能被本插件解析的JSON格式数据即可.所以本插件可用于不同的服务器语言建立的后台上. 
3、跨领域:流程图设计器不止用在电信领域,在其它需要IT进行技术支持的领域中都有重大作用.

以下从纯技术实现层面具体描述: 
1、 页面顶部栏、左边侧边栏均可自定义; 
2、当左边的侧边栏设为不显示时,为只读状态,此时的视图区可当作是一个查看器而非编辑器。 
3、侧边工具栏除了基本和一些流程节点按钮外,还自定义新的节点按钮,自定义节点都可以有自有的图标、类型名称,定义后在使用可可在工作区内增加这些自定义节点。 
4、顶部栏可显示流程图数据组的标题,也可提供一些常用操作按钮。 
5、 顶部栏的按钮,除了撤销、重做按钮外,其余按钮均可自定义点击事件。 
6、 可画直线、折线;折线还可以左右/上下移动其中段。 
7、 具有区域划分功能,能让用户更直观地了解哪些节点及其相互间的转换,是属于何种自定义区域内的。 
8、 具有标注功能,用橙红色标注某个结点或者转换线,一般用在展示流程进度时。 
9、 能直接双击结点、连线、分组区域中的文字进行编辑 
10、 在对结点、连线、分组区域的各种编辑操作,如新增/删除/修改名称/重设样式或大小/移动/标注时,均可捕捉到事件,并触发自定义事件,如果自定义事件执行的方法返回FALSE,则会阻止操作。 
11、 具有操作事务序列控制功能,在工作区内的各种有效操作都能记录到一个栈中,然后可以进行撤销(undo())或重做(redo()),像典型的C/S软件一样。

  gooflow 官网:https://gooflow.xyz/docs/index.html#methods

感谢博主:https://www.cnblogs.com/tangxf/p/4227639.html

https://files.cnblogs.com/files/itclw/GooFlow1.1.zip

转载于:https://www.cnblogs.com/itclw/p/9951728.html

gooflow学习笔记相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

  10. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

最新文章

  1. tensorflow1.0代码迁移到2.0官方指导
  2. c++ 低位在前 高位在后_生意社:醋酸市场前三季度区间震荡 四季度一飞冲天
  3. python基础知识选择题-Python练习题(基础知识练习题(一))
  4. 图像处理与计算机视觉开源软件库及学习站点
  5. NIO 之 Channel实现原理
  6. 删除两个字符串中的特定字符使其相等,统计删除的字符的ASCII和
  7. Linux 初始化脚本 (centos6 centos7 通用)
  8. Linux文件IO(文件的读写)
  9. Dropout也能自动化了,谷歌Quoc Le等人利用强化学习自动找寻模型专用Dropout
  10. (Python第七天)实例二玩转函数
  11. 利用UTL_FILE包实现文件I/O操作
  12. Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
  13. Eclipse中代码自动添加注释及代码注释模板
  14. 怎样进入VBA编辑器
  15. Shiro的退出登录状态的方式
  16. Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
  17. 数学牛人们的轶事[下]
  18. CSDN英雄会上会英雄
  19. php采集淘宝店的评论,php采集淘宝店铺的所有评论的实现
  20. 常见的机器学习数据挖掘知识点

热门文章

  1. 代码 设为主页 加入收藏 代码
  2. 大学计算机vb基础知识6,大学计算机基础vb试题大学计算机基础试题和答案.doc
  3. 《中國姓氏大全》【带拼音】
  4. libcurl的封装,支持同步异步请求,支持多线程下载,支持https
  5. Crystal Reports - Add Subreport
  6. Qt中文件读写进文本框出现乱码问题详解(gbk格式出现乱码为例)
  7. 虚幻引擎缓存路径修改
  8. 冯诺依曼元胞计算机,冯诺依曼元胞自动机
  9. 开源实时视频码流分析软件:VideoEye
  10. 网页抓取工具火车头如何采集关键词