Easy Process使用手册Easy Process使用手册
项目源码
示例项目
示例项目源码
项目源码
示例项目
示例项目源码
  • 介绍
  • 版本历史
  • 节点类型
  • 安装
  • 快速开始
  • 流程数据结构
  • 全局配置
  • 节点校验
  • 自定义节点
  • 全局事件
  • 流程控制器

快速开始

导入组件

// main.js
import { createApp } from 'vue'
import App from './App.vue'

// easy-process
import EasyProcess from 'qx-easy-process'
import 'qx-easy-process/dist/css/style.css'

// svg图标
import 'virtual:svg-icons-register'

const app = createApp(App)

app.use(EasyProcess, {
  // 指定节点视图实现和节点配置实现目录
  nodeImplPath: import.meta.glob('src/views/node/**')
})
app.mount('#app')

配置vite-plugin-svg-icons

// vite.config.js
import { defineConfig } from 'vite';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import path from 'path';
 
export default defineConfig({
  plugins: [
    createSvgIconsPlugin({
      // 指定qx-easy-process图标文件夹
      iconDirs: [path.resolve(process.cwd(), 'node_modules/qx-easy-process/dist/assets/icons')],
      // 指定symbolId格式
      symbolId: 'icon-[dir]-[name]',
    })
  ],
});

实现节点组件

为了提高可扩展性,内置的各类型节点仅是定义了其存在,并未实现节点在流程设计器中展示的内容及配置内容,需要使用者自行实现。

注意:网关节点 为内置逻辑组件不需要对其实现节点视图和节点配置组件。

节点命名规范

节点视图组件文件格式: [nodeType]-node.vue

节点配置组件文件格式: [nodeType]-drawer.vue

实现节点视图组件

以开始节点为例,开始节点的nodeType=start,则在/src/views/node/start目录下创建start-node.vue文件, 内容如下:

// start-node.vue
<template>
  <!-- 发起人节点 -->
  <div>
    发起人: {{node.config.name}}
  </div>
</template>

<script setup name="start-node">
import {getCurrentInstance, inject} from "vue";
import {KEY_PROCESS_DATA, KEY_VALIDATOR} from "qx-easy-process/dist/config/provide-keys.js"

const props = defineProps({
  node: { // 传入的流程配置数据
    type: Object,
    default: {}
  }
});

const { proxy } = getCurrentInstance();

// 获取流程数据
const processData = inject(KEY_PROCESS_DATA)
// 获取流程验证器实例
const validator = inject(KEY_VALIDATOR)

// 注册验证器
validator.register(props.node.tmpNodeId, () => {
  return {
    "valid": props.node.config.name ? true : false,
    "message": "请选择发起人"
  }
})
</script>

<style lang="less" scoped>

</style>

实现节点配置组件

以开始节点为例,开始节点的nodeType=start,则在/src/views/node/start目录下创建start-drawer.vue文件, 内容如下:

<template>
  <!-- 发起人配置 -->
  <div>
    发起人:<input v-model="props.config.name" />
  </div>
</template>

<script setup name="start-drawer">
import {getCurrentInstance, inject} from "vue";
import {KEY_PROCESS_DATA} from "qx-easy-process/dist/config/provide-keys.js"

const props = defineProps({
  config: { // 传入的流程配置数据
    type: Object,
    default: {}
  },
});

const { proxy } = getCurrentInstance();

// 获取流程数据
const processData = inject(KEY_PROCESS_DATA)
</script>

<style lang="less" scoped>

</style>

使用组件

<ep-designer ref="process" :data="processData"/>

processData:流程数据,为空时会默认创建一个开始节点

获取流程数据结果

import {getCurrentInstance} from "vue";
const { proxy } = getCurrentInstance();

let result = proxy.$refs.process.getResult();
Last Updated: 2025/9/3 16:57
Contributors: 高阳
Prev
安装
Next
流程数据结构