activiti modeler 自定义节点属性
最近在弄activiti modeler ,由于项目需求,需要设置个性化的属性,现将modeler上面的修改记录下来,只使用与前端的修改,后端servlet改造后续补上吧(相比前台的修改后台改动还是挺简单的),如果有坑友同样需要自定义节点属性,希望能节省你的时间。
工程的模板基本上是咖啡兔的kft-activiti-demo,只是拿了合适的部分使用
|
|
现有节点中增加activit modeler中自定义属性
操作步骤
1.在stencilset.json文件中增加自己的property属性
|
|
注意选取合适的type属性,type属性在properties.js文件中进行定义。
2.如果需要新增type,在properties.js文件中加入自定义的type对应的定义
stencilset.json片段
|
|
properties.js片段
|
|
3.增加type对应的html和js
multiinstance-property-select-write-template.html
|
|
properties-multiinstance-select-controller.js
|
|
将js加入modeler.html中
4.如果需要从后台获取数据在url-config.js配置对应url
|
|
具体使用见上面的js模板,后端servlet返回json数据
5.如果预设属性不够,可以自定义属性。
自定义步骤:已stencilset.json中自定义的multiinstance_selet举例,自定义了一个options属性。
|
|
在stencil-controller.js文件第300行加入你的新增属性,并可赋默认值
|
|
在oryx.debug.js中添加对自定义type的支持
oryx.debug.js 1918行加入
|
|
oryx.debug.js 12942行加入 新增type对应的处理方式,此处应该为页面初始化时候在指定的properties中如何展示值
|
|
如果节点需要初始化rootscop数据,在app.js中初始化
app.js 111行
|
|
备注:
将返回的xml文件转换成json后,已经无法使用下面进行转换的对象进行操作,因为自定义的属性无法获取,
|
|
使用jackson进行解析其实操作更方便,只是需要自己逐级解析了