## 界面布局结构
- palette(工具栏) :提供拖拽工具、框选工具、连线工具、基本图元等
- contextPad(上下文面板):可以理解为快捷面板
- propertiesPanel(属性面板):定义流程图中图形元素属性
- shape(图形) 是所有图形的基类(比如Connection,Root)
## 导入与导出
````
## 导入
// 异步方式(推荐)
let result = await bpmnModeler.importXML(xml)
// 回调方式
bpmnModeler.importXML(xml, (result) => {} )
### 导出xml
// 异步方式
let { xml } = await bpmnModeler.saveXML()
// 回调方式
bpmnModeler.saveXML({ format: false },({ xml }) => {})
// 格式化导出的xml
let { xml } = await bpmnModeler.saveXML({ format: true })
### 导出svg
// 异步方式
let { svg } = await bpmnModeler.saveSVG()
// 回调方式
bpmnModeler.saveXML(( { svg } )=>{ })
## 导入的生命周期事件如下:
import.parse.start (即将从xml读取模型)
import.parse.complete (模型读取完成)
import.render.start (图形导入开始)
import.render.complete (图形导入完成)
import.done (一切都完成)
````
## 内部模块/供应商/服务
- eventBus - 事件总线,管理bpmn实例中所有事件
- canvas - 画布,管理svg元素、连线/图形的添加/删除、缩放等
- commandStack - 命令堆栈,管理bpmn内部所有命令操作,提供撤销、重做功能等
- elementRegistry - 元素注册表,管理bpmn内部所有元素
- moddle - 模型管理,用于管理bpmn的xml结构
- modeling - 建模器,绘图时用到,提供用于更新画布上元素的 API(移动、删除)
````
## 获取一个模块
// 第一个参数为模块名称,第二参数表示是否严格模式
bpmnModeler.get("模块名称",false)
````
## 事件总线 - eventBus
````
## 获取事件总线模块
let eventBus = bpmnModeler.get("eventBus")
## 监听事件
// 监听事件
eventBus.on('element.changed', (ev) => {})
// 监听多个事件
eventBus.on(
['shape.added', 'connection.added', 'shape.removed', 'connection.removed'],
(ev) => {
}
)
// 设置优先级
eventBus.on('element.changed', 100, (ev) => {})
// 传入上下文
eventBus.on('element.changed', (ev) => {}, that)
// 使用所有参数
eventBus.on('事件名称', 优先级(可选), 回调函数, 上下文(可选))
## 只监听一次事件
// 用法同on
eventBus.once('事件名称', 优先级(可选), 回调函数, 上下文(可选))
## 取消监听事件
// 取消监听
eventBus.off('element.changed', callback)
// 取消监听多个事件
eventBus.off(['shape.added', 'connection.added', 'shape.removed', 'connection.removed'], callback)
## 触发事件
eventBus.fire('element.changed', data)
````
## 画布 - canvas
````
## 获取画布模块
let canvas = bpmnModeler.get("canvas")
## 缩放
/**
*
* @param {'fit-viewport' | 'fit-content' | number} lvl
* @param {'auto'|{ x: number, y: number }} center
*/
function zoom(lvl, center) {
let canvas = bpmnModeler.get('canvas')
canvas.zoom(lvl, center)
}
// 适应容器缩放
zoom('fit-canvas','auto')
// 完全显示内容
zoom('fit-content','auto')
## 对齐(选择多个元素使用shift+鼠标左键)
/**
* 获取当前选集并对齐
* @param {'left'|'right'|'top'|'bottom'|'middle'|'center'} mode
*/
function align(mode) {
const align = bpmnModeler.get('alignElements')
const selection = bpmnModeler.get('selection')
const elements = selection.get()
if (!elements || elements.length === 0) {
return
}
align.trigger(elements, mode)
}
````
## 元素注册表 - elementRegistry
````
## 获取元素注册表模块
let elementRegistry = bpmnModeler.get('elementRegistry')
## 遍历所有元素
elementRegistry.forEach((shape, svgElement) => { })
## 获取指定元素
let shape = elementRegistry.get(元素id或者SVGElement)
## 获取过滤后的元素
let shapes = elementRegistry.filter((shape) => shape.type === 'bpmn:Task')
## 更新元素ID
elementRegistry.updateId(shape, "123xxxxsssd")
## 删除一个元素
elementRegistry .remove(传入SVGElement)
## 模型 - moddle
基本上没有用到,具体类型定义见此
## 建模器 - modeling
获取建模器模块
let modeling= bpmnModeler.get('modeling')
## 修改元素显示文本(常用)
modeling.updateLabel(shape, '审核')
## 修改元素属性(常用)
modeling.updateProperties(shape, { 属性名称: 属性值 })
## 对齐元素集合
const selection = bpmnModeler.get('selection')
const elements = selection.get()
modeling.updateProperties(selection, 'left')
````
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目基于 RuoYi-Vue-Plus 进行二次开发,采用 Flowable 扩展工作流应用场景,支持在线表单设计和丰富的工作流程设计能力的一套完整项目。 主要针对Flowable工作流场景开发,前端采用vue3框架。 直接可以整合到自己的项目中。
资源推荐
资源详情
资源评论
收起资源包目录
工作流流程引擎flowable+springboot+vue3完整项目 (744个子文件)
ry.bat 2KB
run.bat 229B
package.bat 156B
package.bat 141B
build.bat 117B
run-web.bat 112B
clean.bat 102B
no-manual-task-incorrect.bpmn 854B
no-manual-task-correct.bpmn 850B
designer.style.css 148KB
.env.development 176B
若依环境使用手册.docx 418KB
401.gif 160KB
.gitignore 655B
.gitignore 256B
.gitignore 12B
ie.html 23KB
index.html 5KB
favicon.ico 6KB
FlowTaskServiceImpl.java 96KB
ExcelUtil.java 58KB
FlowableUtils.java 44KB
Convert.java 25KB
HTMLFilter.java 19KB
CustomProcessDiagramGenerator.java 17KB
GenTableServiceImpl.java 17KB
StringUtils.java 15KB
CustomProcessDiagramCanvas.java 15KB
SysUserServiceImpl.java 15KB
SysMenuServiceImpl.java 15KB
UUID.java 15KB
ReflectUtils.java 14KB
VelocityUtils.java 14KB
FindNextNodeUtil.java 13KB
FlowDefinitionServiceImpl.java 12KB
SysRoleServiceImpl.java 11KB
IpUtils.java 11KB
FlowTaskController.java 11KB
SysDeptServiceImpl.java 9KB
HttpUtils.java 9KB
SysUserController.java 9KB
Base64.java 9KB
SysRoleController.java 9KB
LogAspect.java 9KB
FileUtils.java 8KB
FlowDefinitionController.java 8KB
GenUtils.java 8KB
GenTableColumn.java 8KB
GenTable.java 8KB
FileUploadUtils.java 7KB
SysJobController.java 7KB
GenController.java 7KB
SysJobServiceImpl.java 7KB
SysLoginService.java 7KB
SysUser.java 7KB
RedisCache.java 6KB
Server.java 6KB
TokenService.java 6KB
SysConfigServiceImpl.java 6KB
SecurityConfig.java 6KB
DataScopeAspect.java 6KB
SysDictTypeServiceImpl.java 6KB
FlowInstanceServiceImpl.java 6KB
CommonController.java 6KB
SysRole.java 6KB
BaseController.java 6KB
JobInvokeUtil.java 6KB
SysMenu.java 5KB
ServletUtils.java 5KB
SysOperLog.java 5KB
MyBatisConfig.java 5KB
TestController.java 5KB
DictUtils.java 5KB
SysFlowCategoryServiceImpl.java 5KB
GlobalExceptionHandler.java 5KB
IFlowTaskService.java 5KB
SysProfileController.java 5KB
ScheduleUtils.java 5KB
SysMenuController.java 5KB
SysDeptController.java 5KB
DateUtils.java 5KB
PermissionService.java 5KB
DruidConfig.java 5KB
CacheController.java 5KB
FlowFormFieldDto.java 5KB
SysJob.java 5KB
SwaggerConfig.java 5KB
LoginUser.java 4KB
SpringUtils.java 4KB
ISysUserService.java 4KB
SysConfigController.java 4KB
EscapeUtil.java 4KB
AjaxResult.java 4KB
SysDictTypeController.java 4KB
SysDictData.java 4KB
SysDept.java 4KB
SysPostController.java 4KB
SysPostServiceImpl.java 4KB
Excel.java 4KB
CaptchaConfig.java 4KB
共 744 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
- 卧底老板与废柴程序员2024-02-07感谢大佬,让我及时解决了当下的问题,解燃眉之急,必须支持!
hhzz
- 粉丝: 3w+
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功