0.1.2 • Published 2 years ago

process-designer-my v0.1.2

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

jeeagile-process-designer

基于BPMN、VUE、ELEMENT-UI定制的个性化在线流程编辑器

在线体验地址: http://process.jeeagile.vip

更新日志

  • 2022-01-06
    • 优化自定义属性配置支持自定义实现
  • 2021-12-31
    • 自定义节点属性设置完成
  • 2021-11-29 * 基于BPMN、VUE、ELEMENT-UI定制的个性化在线流程编辑器

使用说明

使用方法

<template>
  <div id="app">
    <process-designer
      v-model="processXml"
      :process-id="processId"
      :process-name="processName"
      :process-desc="processDesc"
      :process-xml="processXml"
      :process-prefix="processPrefix"
      :process-properties="processProperties"/>
  </div>
</template>

<script>
  import ProcessDesigner from './components/process-designer'
  import CustomProcessProperties from './custom/CustomProperties'

  export default {
    name: 'App',
    components: {
      ProcessDesigner
    },
    data() {
      return {
         processId: `process_${new Date().getTime()}`,
         processName: `流程_${new Date().getTime()}`,
         processPrefix: 'activiti',
         processDesc: '',
         processXml: null,
         processProperties: CustomProcessProperties
      }
    }
  }
</script>

process-prefix工作流类型目前支持activiti、camunda、flowable

process-properties自定义节点属性配置分组,已内置属性分组(可覆盖)

属性配置模版

<template>
  <div class="properties-item__content">
    <el-form v-model="templateInfo" :inline="false" label-width="100px" size="small" label-position="right">
      <el-form-item label="模板:">
        <el-input v-model="templateInfo.id" @change="updateBaseInfo('id')"/>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
  import processHelper from '../../helper/ProcessHelper'

  export default {
    name: 'Template',
    props: {
      processModeler: {  // 流程Modeler
        type: Object,
        required: true
      },
      processInfo: {    // 流程基础信息
        type: Object,
        required: true
      },
      activeElement: {  // 当前选中元素
        type: Object,
        required: true
      }
    },
    data() {
      return {
        templateInfo: {}
      }
    },
    watch: {
      activeElement: {
        handler() {
          if (this.activeElement) {
            let businessObject = this.activeElement.businessObject
            this.templateInfo = JSON.parse(JSON.stringify(businessObject))
          }
        },
        deep: true,
        immediate: true
      }
    },
    methods: {
      updateBaseInfo(key) {
        const properties = Object.create(null)
        properties[key] = this.templateInfo[key]
        processHelper.updateProperties(this.activeElement, properties)
      }
    }
  }
</script>
<style lang='scss'>
</style>

已内置节点属性配置项,可根据name进行覆盖

nametitlesort
base基本设置0
process流程设置1
userTask用户设置2
receiveTask接收设置3
sendTask发送设置4
scriptTask脚本设置5
form表单设置6
instance会签配置7
async持续异步8
condition条件流转9
taskListeners任务监听10
executeListeners执行监听11
button按钮配置12
input输入参数13
output输出参数14
extensions扩展属性15
documentation元素文档16

属性分组是根据节点类型进行分组配置,将根据节点类型获取对应的属性配置分组,如果name相同自定义的将覆盖默认配置

import UserTask from './properties/UserTask'

/** 用户任务 */
export const UserTaskProperties = {
  name: 'userTask',
  title: '用户设置',
  icon: 'el-icon-user',
  sort: 2,
  component: UserTask
}


/** 用户任务 属性分组 */
export const UserTaskPropertiesGroup = [
  UserTaskProperties
]

export default {
  /** 用户任务 */
  'bpmn:UserTask': UserTaskPropertiesGroup
}

安装依赖

npm install

启动服务

npm run serve

编译发布

npm run build