Skip to content

流程系统前端结构说明

本文对流程系统前端的主要功能模块、技术栈及核心逻辑进行拆解说明,用于快速理解系统整体架构与运行机制。


主功能

查询模块

系统主页主要提供基础数据查询能力。
本质上属于标准的 数据库 CRUD(增删改查)功能,用于展示及管理系统中的流程相关数据。

该模块结构相对简单,以列表查询、筛选及基础操作为主。


相关配置

用于维护流程运行过程中所依赖的基础配置数据,例如:

  • 角色配置
  • 权限配置
  • 定时任务
  • 条件配置

这些配置本质上是为流程节点提供可复用的 预设配置集合

从前端实现角度来看,这一类页面结构基本一致:

  • 表单查询
  • 列表展示
  • 数据库增删改查

整体属于 标准后台管理页面模式


编辑版本

用于维护流程的 版本管理体系

该模块主要从三个维度管理流程:

  • 流程版本
  • 流程状态
  • 角色权限

三者共同决定一个流程版本的可用状态与可操作权限。

由于不同配置维度对应的 操作按钮与交互逻辑不同,系统通过维护一份 JSON 配置文件,统一定义各类操作按钮及其行为映射,从而避免在页面中写死逻辑,提高可维护性。


编辑流程

该模块是整个流程平台复杂度最高的部分。

核心能力为 流程图可视化编辑器,用户可以通过图形化方式配置流程节点与节点之间的流转关系。

技术实现上,编辑器基于 AntV X6 图编辑引擎 进行二次封装,并结合系统业务逻辑进行扩展。


流程系统详解

技术栈

系统主要技术栈如下:

  1. React
    用于构建整体前端应用框架。
  2. Redux
    用于全局状态管理,负责跨组件共享数据及流程上下文状态维护。
  3. AntV X6
    图编辑引擎,用于构建流程图编辑器,并进行了业务层二次封装。
  4. 低代码表单平台
    用于节点内部表单配置,实现流程节点表单的动态化生成。

代码逻辑链路

流程系统在运行过程中,大致可以分为三个阶段:

  • 初始化阶段
  • 编辑阶段
  • 运行阶段

1. 初始化阶段

系统加载流程时会执行一系列初始化操作。

内容校验

当从接口获取原始 JSON 数据后,需要进行两层校验:

  1. 格式校验

如果流程 JSON 结构不符合规范,则直接提示用户提交工单,由开发人员进行排查。

  1. 版本校验

如果流程版本与当前系统版本不匹配,则提示用户升级流程版本。
在版本不兼容情况下,系统仅允许用户 只读查看


系统引擎初始化

校验完成后,数据会被传递给 流程引擎

流程引擎负责将原始 JSON 数据转换为 UI 层可渲染的节点结构,并生成图编辑器所需的数据模型。


数据预处理

在初始化阶段,还会加载并缓存一些高频使用的数据,例如:

  • 用户权限
  • 常用配置列表
  • 节点相关上下文数据

由于部分节点配置会依赖整体流程上下文,因此需要在此阶段进行统一处理并缓存。


2. 编辑阶段

在流程编辑过程中,系统主要围绕以下几个方面进行管理。

显示状态管理

根据当前用户权限,系统会控制页面元素的状态:

  • 只读显示
  • 可编辑状态

不同权限用户所能进行的操作不同。


保存机制

系统采用分层保存策略:

  • 流程整体信息(UI结构、节点关系等)
    实时保存
  • 节点内部表单数据
    通过按钮手动保存

这样可以在保证数据安全的同时,减少不必要的接口请求。


错误提示机制

当用户操作导致流程结构异常时,系统会提供可视化提示:

  • 黄色警告

表示某些节点配置失效,并会定位到具体节点。

  • 红色警告

表示流程结构无法形成完整闭环,流程逻辑存在严重错误。


数据联动更新

当节点顺序发生变化时,可能会影响后续节点的表单配置。

系统需要实时检测这种依赖关系,并及时更新相关节点数据,以保证流程配置的正确性。


3. 运行阶段

在流程实际运行时,系统根据以下信息进行展示:

  • 当前流程配置
  • 当前节点状态
  • 当前用户角色

系统会在对应节点展示:

  • 历史填写信息
  • 当前用户可执行的操作按钮
  • 流程流转状态

从而完成整个流程的业务执行。


难点解析

1. 数据流转链路与生命周期管理

这是整个项目的基础。

流程系统涉及大量状态数据,包括:

  • 流程结构数据
  • 节点配置数据
  • 用户输入数据
  • 全局缓存数据

如果开发者不熟悉 数据流转路径与生命周期,在维护过程中很容易:

  • 重复实现已有逻辑
  • 在错误的阶段修改状态
  • 产生隐性 Bug

该部分难度属于 中等,主要难点不在算法,而在:

  • 代码体量较大
  • 状态层级复杂
  • 生命周期较多

开发效率很大程度依赖开发者对项目结构的熟悉程度。

随着 智能代码工具 + IDE 的辅助,这部分理解成本已经有所降低。


2. 版本更新算法

随着项目迭代,流程数据结构会不断演进。

为了兼容历史流程数据,需要维护一套 数据结构升级算法,用于在加载流程时自动完成数据迁移。

其核心工作包括:

  • 旧版本数据结构解析
  • 新结构字段补全
  • 不兼容字段转换

在实现上通常采用 管道式(Pipe)更新机制

旧版本数据

版本1升级函数

版本2升级函数

版本3升级函数

当前版本数据

这种方式可以保证:

  • 每个版本升级逻辑独立
  • 历史数据能够逐步升级
  • 系统可维护性更高

该部分难度同样属于 中等,主要考验开发者:

  • 数据结构设计能力
  • 算法组织能力
  • 代码的可维护性

整体逻辑本身并不复杂,但需要严谨实现。