`
lisonghua2010
  • 浏览: 109407 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

【更新】easyui版的工作流设计器源码

 
阅读更多

接上贴: http://www.iteye.com/topic/1114540

 

     好久没来更新,一直在忙公司的项目,应广大JQuery爱好者的要求,弄了个HTML版的设计器 目前只实现了UserTask节点,其他节点类似(请参照Activiti工作流引擎),一下代码仅供参考, 有兴趣可以一起交流。

 

2014年1月6日 更新

已实现:

1.根据Activit设计器实现了除User Task外的其余节点。

2.重构的JS脚本,更利于扩展。

未实现:

1.文档还没有来得及写。

2.子流程没有实现。

目前存在的问题:

1.由于是静态页面并且使用了easyui跨域脚本调用,Chrom浏览器安全级别的要求所以无法打开属性配置页面。如果放到站点中没有此问题。

2.时间有限,开发文档没有完成。

 

最新的代码见附件

 

分享到:
评论
27 楼 晓天123 2018-04-30  
放到项目里运行,draw2D未定义的错误 
26 楼 reallikesoft 2015-02-07  
请问为什么打开没有sequence flow,无法连线啊
25 楼 zhujianpengzha 2014-12-11  
楼主好,这个web设计器里面,可以在用户任务里面添加动态表单,但是可以在Start开始节点上添加表单吗?我双击Start右侧没有出来对应的面板呀?
24 楼 lisonghua2010 2014-12-02  
zhujianpengzha 写道
楼主,我看了candidateUsersConfig.html 页面中,加载人员数据是这样写的,可是我没找见数据来源,是从哪个js,哪里请求得到的数据呢?

function loadTaskCandidateUsers(){
var candidateUsers = task.candidateUsers;
var candidate_users_grid_rows=[];
//alert(listeners.getSize());
for(var i=0;i<candidateUsers.getSize();i++){
var candidateUser = candidateUsers.get(i);
var user = {
id:candidateUser.userId,
sso:candidateUser.sso,
name:candidateUser.name,
action:''
};
candidate_users_grid_rows[i]=user;
};
//alert(listener_grid_rows);
var candidate_users_grid_data={
total:candidateUsers.getSize(),
rows:candidate_users_grid_rows
};
_task_candidate_users_list.datagrid('loadData',candidate_users_grid_data);
}

这个函数的数据源是js对象,是在内存中的
23 楼 zhujianpengzha 2014-12-01  
楼主,我看了candidateUsersConfig.html 页面中,加载人员数据是这样写的,可是我没找见数据来源,是从哪个js,哪里请求得到的数据呢?

function loadTaskCandidateUsers(){
var candidateUsers = task.candidateUsers;
var candidate_users_grid_rows=[];
//alert(listeners.getSize());
for(var i=0;i<candidateUsers.getSize();i++){
var candidateUser = candidateUsers.get(i);
var user = {
id:candidateUser.userId,
sso:candidateUser.sso,
name:candidateUser.name,
action:''
};
candidate_users_grid_rows[i]=user;
};
//alert(listener_grid_rows);
var candidate_users_grid_data={
total:candidateUsers.getSize(),
rows:candidate_users_grid_rows
};
_task_candidate_users_list.datagrid('loadData',candidate_users_grid_data);
}
22 楼 zhujianpengzha 2014-12-01  
十分感谢楼主耐心解答,我目前流程已经发布成功了,也可以启动流程了,还要请教个问题,流程每个节点怎么选择操作人?
21 楼 lisonghua2010 2014-11-28  
zhujianpengzha 写道
另外,我把设计器画好流程后得到的xml,放到项目里面,用repositoryService.createDeployment().addClasspathResource(url).deploy();方式发布,还是失败的,是xml格式有啥问题,还是我的用法错了?

这个是我的Service实现
public Deployment deployProcessDefDecriptor(String processName, String descriptor) {
		Deployment dm = extRepositoryService.createDeployment().name(processName + ".bar")
				.addString(processName + ".bpmn20.xml", descriptor).deploy();
		return dm;
	}
20 楼 zhujianpengzha 2014-11-27  
另外,我把设计器画好流程后得到的xml,放到项目里面,用repositoryService.createDeployment().addClasspathResource(url).deploy();方式发布,还是失败的,是xml格式有啥问题,还是我的用法错了?
19 楼 zhujianpengzha 2014-11-27  
楼主,你的service中,workflowManager.deployProcessDefDescriptor(processName, descriptor);  这个方法调用api中的哪个方法呀,我尝试调用repositoryService.createDeployment().addString(resourceName, text).deploy();
其中text是xml字符串,结果是流程定义保存不到数据库里面去,你是怎么做的呢?
18 楼 lisonghua2010 2014-11-26  
big_scorpio 写道
这样的话  如果要修改流程图,如何根据.xml映射到画布中? 

需要将xml解析然后再动态显示流程图
17 楼 lisonghua2010 2014-11-26  
zhujianpengzha 写道
楼主,saveProcessDescriptor.action这个方法里面,调用的那个方法来保存流程呢??

Map<String, Object> json = new HashMap<String, Object>();
		String xml = this.getRequest().getParameter("processDescriptor");
		String name = this.getRequest().getParameter("processName");
		String variables = this.getRequest().getParameter("processVariables");
		try {
			String defId = procdefService.deployProcessDefDescriptor(name, xml, variables);
			if (!StringUtils.isEmpty(defId))
				json.put("result", true);
			else
				json.put("result", false);
		} catch (Exception e) {
			e.printStackTrace();
			json.put("result", false);
			json.put("message", e.getMessage());
		}
		Struts2Utils.renderJson(json);

这是Action中的代码
public String deployProcessDefDescriptor(String processName, String descriptor, String variables) {
		String pid = workflowManager.deployProcessDefDescriptor(processName, descriptor);
		JSONArray jsonArray = JSONArray.fromObject(variables);
		for (int i = 0; i < jsonArray.size(); i++) {
			JSONObject variableJSONObj = jsonArray.getJSONObject(i);
			if (!variableJSONObj.isNullObject()) {
				Procvaraible varaible = new Procvaraible();
				varaible.setProcId(pid);
				varaible.setName(variableJSONObj.getString("name"));
				varaible.setType(variableJSONObj.getString("type"));
				varaible.setScope(variableJSONObj.getString("scope"));
				varaible.setDefaultValue(variableJSONObj.getString("defaultValue").equalsIgnoreCase("null") ? null
						: variableJSONObj.getString("defaultValue"));
				varaible.setRemark(variableJSONObj.getString("remark").equalsIgnoreCase("null") ? null
						: variableJSONObj.getString("remark"));
				procvaraibleManager.saveProcvaraible(varaible);
			}
		}
		return pid;
	}

这个是service的代码
其实就是调用activiti的流程部署接口把xml部署
16 楼 zhujianpengzha 2014-11-25  
楼主,saveProcessDescriptor.action这个方法里面,调用的那个方法来保存流程呢??
15 楼 big_scorpio 2014-07-16  
这样的话  如果要修改流程图,如何根据.xml映射到画布中? 
14 楼 lisonghua2010 2014-05-22  
jing1059373137 写道
你好,请问撤销,重做使用什么方法做的

用Draw2d里面提供的方法,非常简单:
function redo(){
	workflow.getCommandStack().redo();
}
function undo(){
	workflow.getCommandStack().undo();
}
13 楼 jing1059373137 2014-05-20  
你好,请问撤销,重做使用什么方法做的
12 楼 lisonghua2010 2014-04-11  
xiangyuely 写道
请问,页面中的xml如何导出成activiti可以使用的xml文件?

在定制器的画布旁边有一个Tab是XML这个xml实际上就字符串,只不过是格式化好的字符串,你把这个字符串提交到服务端,然后服务端把这个字符串通过调用Activiti的Api发布到数据库中就可以了,我会在未来的博文中讲到的!
11 楼 xiangyuely 2014-04-10  
请问,页面中的xml如何导出成activiti可以使用的xml文件?
10 楼 sunj2ee 2014-03-17  
感谢楼主分享
9 楼 lxhxklyy 2014-03-17  
mark,谢谢分享
8 楼 lisonghua2010 2013-01-10  
BeMyself_wangl 写道
代码还没仔细看,楼主请教下, 画线是采用什么的?
是不是svg +vml

不是,Draw2D一个JS会图库,跨浏览器的

相关推荐

    easyui版的工作流设计器源码--HTML版

    《基于EasyUI的HTML工作流设计器源码解析与应用》 在信息技术日益发展的今天,工作流管理系统已经成为企业管理、协作和自动化的重要工具。EasyUI作为一款轻量级的前端框架,以其简洁的API和丰富的组件库,深受...

    【更新】easyui版的工作流设计器

    【更新】easyui版的工作流设计器 在信息技术领域,工作流设计是开发业务流程管理系统(BPM)不可或缺的一部分。EasyUI是一种基于JavaScript的轻量级前端框架,它为开发者提供了丰富的UI组件,使得构建交互式的Web...

    asp.net BS 开发框架源码 MVC4 WEB EasyUI BS系统 工作流说明文档

    在本项目中,工作流说明文档可能会涵盖如何设计、实现和管理各种业务流程,如审批流程、任务分配等。这有助于提高团队协作效率,确保业务流程的规范性和一致性。 项目包含的资源有: 1. 数据库:可能是一个SQL ...

    BS拖拽工作流设计及研发源码

    综合以上分析,这个项目是一个使用C#和ASP.NET开发的BS架构工作流设计器,集成了jQuery EasyUI和Bootstrap框架,提供拖拽功能来设计工作流,并且包含了用户账户管理功能。通过解压并研究提供的源码,开发者可以学习...

    spring mvc easyui-POI导出excel封装源码

    总结来说,"spring mvc easyui-POI导出excel封装源码"项目是将Spring MVC的后端处理能力与EasyUI的前端展示效果以及POI的Excel处理功能相结合,实现了一个功能强大且界面美观的Excel数据导出功能。这个项目对于需要...

    ASP.NET C#系统源码 Easyui通用权限框架.zip

    总之,"ASP.NET C#系统源码 Easyui通用权限框架.zip"是一个涵盖了后端开发、前端设计、数据库管理、权限控制等多个领域的综合项目,对于提升开发者在这些方面的技能大有裨益。通过深入学习和实践,开发者不仅可以...

    最新版ASP.NET MVC5+EF6后台管理系统 Ymnets快速开发框架源码 带工作流

    综上所述,Ymnets快速开发框架结合了ASP.NET MVC5、EF6、IOC容器、EasyUI和工作流等技术,提供了一个高效、可扩展且易于使用的后台管理系统,是开发企业级应用的理想选择。通过这个框架,开发者可以大大减少重复工作...

    jquery-easyui-1.10.1.zip

    `src`目录则包含了EasyUI的源代码,对源码进行深入研究可以帮助开发者更全面地理解其工作原理,并可能进行定制化开发。 最后,`plugins`目录包含了额外的插件,这些插件是对EasyUI组件的扩展,如表单验证、日期选择...

    基于springMVC+mybatis+easyui的留言板源码

    通过这个简单的留言板项目,开发者可以深入理解SpringMVC、MyBatis和EasyUI的协同工作,掌握从前端到后端的完整流程。这将为后续的Web开发打下坚实的基础。文件名为“message_board”的压缩包内,包含了这个系统的...

    jeecg-framework 源代码

    • 工作流设计器让业务系统更灵活 • 各种共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类) • 兼容IE 6、IE 8+和Google等浏览器 支持SQL Server、Oracle和MySQL等主流数据库 这个版本只是试用...

    Jeecg最新源码,Maven版本

    2. **插件化设计**:Jeecg采用模块化、插件化的设计,方便开发者根据项目需求灵活扩展功能,如报表插件、工作流插件等,使开发更具灵活性。 3. **前后端分离**:Jeecg支持前后端分离的开发模式,后端提供RESTful ...

    MVC权限管理流程审批系统源码

    这对于学习MVC架构、权限管理和工作流设计有极大的帮助。如果你打算深入研究这个项目,可以从以下几个方面入手: 1. 阅读模型层的代码,理解业务逻辑和数据操作。 2. 分析控制器的代码,了解如何处理HTTP请求和响应...

    c#计算机软件.net网站开发平台mvc5全套源码

    源码中的“阿帕奇MVC5+EasyUi+WorkFlow权限管理、流程审批系统源码”展示了如何在实际项目中整合Apache服务器、MVC5、EasyUI前端框架以及工作流(WorkFlow)权限管理。EasyUI是一个基于jQuery的前端UI库,提供丰富的...

    jeecg代码生成器

    工作流设计器让业务系统更灵活 • 常用共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类等..) • 兼容IE 6、IE 8+和Google等浏览器 • 支持SQL Server、Oracle和MySQL等主流数据库

    jeecg-framework-v2.0 (最新源码)

    • 工作流设计器让业务系统更灵活 • 常用共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类等..) • 兼容IE 6、IE 8+和Google等浏览器 • 支持SQL Server、Oracle和MySQL等主流数据库

    基于SSM+EasyUI+Mysql的个人博客系统项目源码.zip

    8. **学习价值**:通过此项目,你可以学习到如何使用SSM框架搭建一个完整的web应用,理解MVC模式的工作原理,熟悉数据库设计和SQL操作,以及掌握前端UI设计的基本技巧。同时,这也是实践项目开发流程、版本控制(如...

    .net源码 MVC5仓库管理系统最新版 VS2015

    《.NET源码MVC5仓库管理系统最新版VS2015详解》 在软件开发领域,.NET框架是微软公司推出的一种强大的开发平台,它提供了丰富的类库和工具,使得开发者可以高效地构建各种类型的应用程序。在这个系统中,我们将深入...

    请假审批系统++ssh+oracle +easyui .zip

    1. **jbpm(JBoss Business Process Management)**:jbpm 是一个开源的工作流和业务流程管理系统,它允许开发者设计、执行、管理和优化业务流程。在请假审批系统中,jbpm 负责定义和执行请假流程,包括请假申请、...

    基于hibernate,spring,struts,shiro,activiti,easyui框架的物流系统,可做毕业设计

    5. **Activiti**:Activiti是一个工作流和业务流程管理(BPM)引擎,它可以处理流程定义和流程实例的执行。在物流系统中,Activiti可能被用来处理复杂的业务流程,例如订单审批、货物跟踪等,使得流程自动化,提高...

    毕业设计,基于SSM+MySql+Bootstrap+EasyUI开发的开放性实验室管理系统,内含Java完整源代码,数据库脚本

    JSP基于SSM开放性实验室管理系统设计毕业源码案例设计 开发技术:SpringMVC + MyBatis + Jquery EasyUI 开发工具环境:(B/S架构MVC模型),jsp技术,myeclipse/Eclipse/Idea都可以,tomcat7.0以上服务器,mysql...

Global site tag (gtag.js) - Google Analytics