You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# Flow Platform React
这是一个基于 React 和 Next.js 构建的可视化流程编辑平台。该平台提供了丰富的组件和工具,用于创建、编辑和管理复杂的业务流程。
## 项目概述
Flow Platform React 是一个功能强大的流程编辑器,支持拖拽式操作、组件连接、循环结构、条件判断等多种功能。平台内置了多种组件类型,包括基础组件、复合组件、系统组件等,可以满足各种业务场景的需求。
## 技术栈
- [Next.js ](https://nextjs.org/ ) - React 框架
- [React ](https://reactjs.org/ ) - JavaScript UI 库
- [TypeScript ](https://www.typescriptlang.org/ ) - JavaScript 的超集,提供类型安全
- [@xyflow/react ](https://reactflow.dev/ ) - 可视化流程图库
- [@arco-design/web-react ](https://arco.design/react ) - React UI 组件库
- [Redux Toolkit ](https://redux-toolkit.js.org/ ) - 状态管理
## 功能特性
- 🎨 可视化流程编辑器,支持拖拽和连接节点
- 🔗 多种节点类型:开始/结束节点、基础节点、循环节点、条件节点等
- ⚙️ 组件库管理,支持自定义组件
- 🔄 流程执行和状态跟踪
- 📊 实时数据监控和可视化
- 🎯 精确的对齐辅助线
- 📚 丰富的组件市场
- 🧩 复合组件支持
## 快速开始
### 环境要求
- Node.js >= 16.20.0
- pnpm
### 安装依赖
```bash
pnpm install
```
### 开发模式
```bash
pnpm run dev
```
打开浏览器访问 [http://localhost:4121 ](http://localhost:4121 ) 查看应用。
### 构建生产版本
```bash
# 构建服务端渲染
pnpm run build
# 构建服务端渲染, 同时输出dist文件供静态部署
pnpm run export
```
### 启动生产服务器
```bash
pnpm run start
```
## 项目结构
```
src/
├── api/ # API 接口定义
├── components/ # 公共组件
├── hooks/ # 自定义 React Hooks
├── pages/ # 页面组件
├── routes/ # 路由配置
├── store/ # Redux 状态管理
├── utils/ # 工具函数
└── ...
```
## 核心模块
### 流程编辑器
流程编辑器是本项目的核心功能,提供了以下特性:
- 节点拖拽和自由布局
- 连接线绘制和管理
- 循环结构支持( LOOP_START/LOOP_END)
- 条件分支支持
- 实时对齐辅助线
- 撤销/重做功能
- 流程执行状态跟踪
### 组件库
项目提供了丰富的组件库:
- 基础组件库:包含常用的业务组件
- 复合组件库:由多个基础组件组合而成的复杂组件
- 组件市场:可共享和复用的组件
### 状态管理
使用 Redux Toolkit 进行全局状态管理,主要包括:
- 用户信息
- 流程数据
- 组件库数据
- 画布状态
- 执行状态
## 开发指南
### 添加新节点类型
1. 在 `src/components/FlowEditor/node/` 目录下创建新的节点组件
2. 在 `src/utils/flowCommon.ts` 中的 `getNodeComponent` 函数中注册新节点类型
3. 在 `src/components/FlowEditor/node/types/defaultType.ts` 中定义节点类型
### 添加新组件
1. 在相应的组件目录中创建新组件
2. 在路由和菜单中注册新组件
3. 添加必要的状态管理和 API 接口
## 部署
项目使用静态导出模式,可以部署到任何支持静态文件托管的服务上:
```bash
pnpm run export
```
构建后的文件将位于 `dist/` 目录中。
## 环境配置
项目使用环境变量进行配置,创建 `.env` 文件:
```env
NEXT_PUBLIC_DEV_SERVER_HOST = http://localhost:8080
```
## 代码规范
项目使用 ESLint 和 Prettier 进行代码规范检查:
```bash
pnpm run eslint
pnpm run stylelint
```