|
|
# Mermaid 流程图实现说明
|
|
|
|
|
|
## 📋 项目概述
|
|
|
|
|
|
本文档说明了在资金使用管理系统中实现的 **Mermaid 水平排列流程图** 功能。
|
|
|
|
|
|
## ✅ 已完成的工作
|
|
|
|
|
|
### 1. 创建主流程图页面
|
|
|
**文件**: `ui/pages/flowcharts.html`
|
|
|
|
|
|
**功能特点**:
|
|
|
- ✅ 支持水平排列(LR 方向)的流程图展示
|
|
|
- ✅ 4 个标签页分类展示不同业务流程
|
|
|
- 支付流程(直接支付、非直接支付)
|
|
|
- 预算管理(预算执行、预算申报)
|
|
|
- 审批流程(事前审批、多级审批)
|
|
|
- 权限管理(用户权限、访问控制)
|
|
|
- ✅ 响应式设计,自适应各种屏幕尺寸
|
|
|
- ✅ 流程图导出功能(SVG 格式)
|
|
|
- ✅ 精美的配色方案和节点样式
|
|
|
- ✅ 每个流程图都有详细的文字说明
|
|
|
|
|
|
### 2. 创建模板和示例页面
|
|
|
**文件**: `ui/pages/flowchart-template.html`
|
|
|
|
|
|
**包含内容**:
|
|
|
- ✅ 6 种常用流程图模板
|
|
|
- 基础水平流程
|
|
|
- 带判断的流程
|
|
|
- 树状结构
|
|
|
- 多路径复杂流程
|
|
|
- 节点形状示例
|
|
|
- 连接线样式示例
|
|
|
- ✅ 每个示例都包含源代码展示
|
|
|
- ✅ 快速开始模板,复制即用
|
|
|
|
|
|
### 3. 编写使用说明文档
|
|
|
**文件**: `ui/pages/README-Flowcharts.md`
|
|
|
|
|
|
**文档内容**:
|
|
|
- ✅ 功能概述和特点介绍
|
|
|
- ✅ 详细的使用方法
|
|
|
- ✅ 技术实现说明
|
|
|
- ✅ 添加新流程图的步骤指南
|
|
|
- ✅ 自定义样式方法
|
|
|
- ✅ 常见问题解答
|
|
|
- ✅ Mermaid 语法速查
|
|
|
- ✅ 最佳实践建议
|
|
|
|
|
|
### 4. 集成到导航系统
|
|
|
**修改文件**: `ui/layout.html`
|
|
|
|
|
|
**修改内容**:
|
|
|
- ✅ 在左侧导航菜单添加 "业务流程图" 入口
|
|
|
- ✅ 添加 "新" 标签突出显示新功能
|
|
|
- ✅ 保持与现有菜单风格一致
|
|
|
|
|
|
## 🎯 功能亮点
|
|
|
|
|
|
### 1. 水平排列(LR 方向)
|
|
|
```mermaid
|
|
|
graph LR
|
|
|
A[开始] --> B[处理] --> C[结束]
|
|
|
```
|
|
|
- 使用 `graph LR` 语法实现从左到右排列
|
|
|
- 符合中文阅读习惯
|
|
|
- 适合展示线性流程和树状结构
|
|
|
|
|
|
### 2. 精美的视觉设计
|
|
|
- 🔵 蓝色 - 开始/输入节点
|
|
|
- 🟢 绿色 - 完成/成功节点
|
|
|
- 🟠 橙红 - 退回/修改节点
|
|
|
- 🟡 黄色 - 判断/审核节点
|
|
|
|
|
|
### 3. 完整的业务流程覆盖
|
|
|
包含以下业务流程图:
|
|
|
1. **支付流程**
|
|
|
- 直接支付流程
|
|
|
- 非直接支付(北京支付)流程
|
|
|
|
|
|
2. **预算管理**
|
|
|
- 预算执行管理流程
|
|
|
- 预算申报审批流程
|
|
|
|
|
|
3. **审批流程**
|
|
|
- 事前审批流程
|
|
|
- 多级审批流程
|
|
|
|
|
|
4. **权限管理**
|
|
|
- 用户权限管理流程
|
|
|
- 访问控制流程
|
|
|
|
|
|
## 📁 文件结构
|
|
|
|
|
|
```
|
|
|
czemc-budget-execution-frontend/
|
|
|
├── ui/
|
|
|
│ ├── layout.html # ✏️ 已修改:添加导航链接
|
|
|
│ └── pages/
|
|
|
│ ├── flowcharts.html # ✨ 新增:主流程图页面
|
|
|
│ ├── flowchart-template.html # ✨ 新增:模板和示例
|
|
|
│ └── README-Flowcharts.md # ✨ 新增:使用说明文档
|
|
|
└── Mermaid流程图实现说明.md # ✨ 新增:本文档
|
|
|
```
|
|
|
|
|
|
## 🚀 使用方法
|
|
|
|
|
|
### 访问流程图页面
|
|
|
|
|
|
1. **通过导航菜单**
|
|
|
- 登录系统
|
|
|
- 在左侧导航找到 "业务流程图" 菜单项(带 "新" 标签)
|
|
|
- 点击进入
|
|
|
|
|
|
2. **直接访问**
|
|
|
```
|
|
|
http://localhost:3000/#/flowcharts
|
|
|
或
|
|
|
在 iframe 中加载:ui/pages/flowcharts.html
|
|
|
```
|
|
|
|
|
|
### 查看示例和模板
|
|
|
|
|
|
直接访问模板页面:
|
|
|
```
|
|
|
ui/pages/flowchart-template.html
|
|
|
```
|
|
|
|
|
|
### 添加新流程图
|
|
|
|
|
|
参考 `ui/pages/README-Flowcharts.md` 文档中的详细步骤。
|
|
|
|
|
|
## 🛠️ 技术栈
|
|
|
|
|
|
| 技术 | 版本 | 用途 |
|
|
|
|------|------|------|
|
|
|
| Mermaid.js | v10 | 流程图渲染引擎 |
|
|
|
| Bootstrap | 5.3.0 | UI 框架 |
|
|
|
| Bootstrap Icons | 1.11.0 | 图标库 |
|
|
|
| ES Module | - | 模块化加载 |
|
|
|
|
|
|
## 📊 Mermaid 配置
|
|
|
|
|
|
```javascript
|
|
|
mermaid.initialize({
|
|
|
startOnLoad: true,
|
|
|
theme: 'default',
|
|
|
flowchart: {
|
|
|
curve: 'basis', // 曲线类型
|
|
|
padding: 20, // 内边距
|
|
|
nodeSpacing: 50, // 节点间距
|
|
|
rankSpacing: 80, // 层级间距
|
|
|
diagramPadding: 20, // 图表边距
|
|
|
useMaxWidth: true // 响应式宽度
|
|
|
},
|
|
|
themeVariables: {
|
|
|
fontSize: '14px',
|
|
|
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif'
|
|
|
}
|
|
|
});
|
|
|
```
|
|
|
|
|
|
## 🎨 配色方案
|
|
|
|
|
|
### 主要颜色定义
|
|
|
|
|
|
```css
|
|
|
开始节点:fill:#E3F2FD, stroke:#1976D2 /* 蓝色系 */
|
|
|
成功节点:fill:#C8E6C9, stroke:#388E3C /* 绿色系 */
|
|
|
失败节点:fill:#FFCCBC, stroke:#E64A19 /* 橙红系 */
|
|
|
判断节点:fill:#FFF9C4, stroke:#F9A825 /* 黄色系 */
|
|
|
处理节点:fill:#B2DFDB, stroke:#00897B /* 青色系 */
|
|
|
```
|
|
|
|
|
|
### 模块分类颜色
|
|
|
|
|
|
```css
|
|
|
预算管理:#4CAF50 /* 绿色 */
|
|
|
预算执行:#FF9800 /* 橙色 */
|
|
|
监督检查:#F44336 /* 红色 */
|
|
|
管理员: #EF5350 /* 深红 */
|
|
|
财务: #66BB6A /* 绿色 */
|
|
|
审批人: #AB47BC /* 紫色 */
|
|
|
普通用户:#42A5F5 /* 蓝色 */
|
|
|
```
|
|
|
|
|
|
## 💡 最佳实践
|
|
|
|
|
|
### 1. 流程图设计原则
|
|
|
- ✅ 保持简洁,单个流程图不超过 20 个节点
|
|
|
- ✅ 使用统一的配色方案
|
|
|
- ✅ 为关键节点添加文字说明
|
|
|
- ✅ 合理使用不同的节点形状
|
|
|
|
|
|
### 2. 性能优化
|
|
|
- ✅ 避免在一个页面渲染过多复杂图表
|
|
|
- ✅ 使用标签页分组展示
|
|
|
- ✅ 按需加载(标签页切换时渲染)
|
|
|
|
|
|
### 3. 可维护性
|
|
|
- ✅ 为每个流程图添加注释
|
|
|
- ✅ 使用有意义的节点 ID
|
|
|
- ✅ 保持代码格式统一
|
|
|
|
|
|
## 🔧 常见问题
|
|
|
|
|
|
### 1. 如何修改流程图?
|
|
|
|
|
|
编辑 `ui/pages/flowcharts.html` 文件,找到对应的 `<div class="mermaid">` 标签,修改其中的 Mermaid 语法。
|
|
|
|
|
|
### 2. 如何添加新的流程图?
|
|
|
|
|
|
参考 `ui/pages/flowchart-template.html` 中的模板,复制代码并修改内容。
|
|
|
|
|
|
### 3. 如何更改配色?
|
|
|
|
|
|
修改流程图末尾的 `style` 语句:
|
|
|
```mermaid
|
|
|
style 节点ID fill:#颜色,stroke:#边框色,stroke-width:2px
|
|
|
```
|
|
|
|
|
|
### 4. 如何导出流程图?
|
|
|
|
|
|
点击流程图右上角的 "导出" 按钮,会下载 SVG 格式文件。
|
|
|
|
|
|
## 📚 参考资源
|
|
|
|
|
|
- [Mermaid 官方文档](https://mermaid.js.org/)
|
|
|
- [Mermaid 在线编辑器](https://mermaid.live/)
|
|
|
- [Flowchart 语法参考](https://mermaid.js.org/syntax/flowchart.html)
|
|
|
- [Bootstrap 5 文档](https://getbootstrap.com/docs/5.3/)
|
|
|
|
|
|
## 📝 示例代码
|
|
|
|
|
|
### 基础水平流程
|
|
|
|
|
|
```mermaid
|
|
|
graph LR
|
|
|
A[开始] --> B[处理]
|
|
|
B --> C[结束]
|
|
|
|
|
|
style A fill:#E3F2FD,stroke:#1976D2,stroke-width:2px
|
|
|
style C fill:#C8E6C9,stroke:#388E3C,stroke-width:2px
|
|
|
```
|
|
|
|
|
|
### 带判断的流程
|
|
|
|
|
|
```mermaid
|
|
|
graph LR
|
|
|
A[输入] --> B{判断}
|
|
|
B -->|通过| C[处理A]
|
|
|
B -->|拒绝| D[处理B]
|
|
|
C --> E[结束]
|
|
|
D --> E
|
|
|
|
|
|
style A fill:#E3F2FD,stroke:#1976D2,stroke-width:2px
|
|
|
style E fill:#C8E6C9,stroke:#388E3C,stroke-width:2px
|
|
|
style B fill:#FFF9C4,stroke:#F9A825,stroke-width:2px
|
|
|
```
|
|
|
|
|
|
### 树状结构
|
|
|
|
|
|
```mermaid
|
|
|
graph LR
|
|
|
Root[根节点] --> A[分支A]
|
|
|
Root --> B[分支B]
|
|
|
Root --> C[分支C]
|
|
|
|
|
|
A --> A1[子节点A1]
|
|
|
A --> A2[子节点A2]
|
|
|
|
|
|
B --> B1[子节点B1]
|
|
|
B --> B2[子节点B2]
|
|
|
|
|
|
style Root fill:#1976D2,color:#fff,stroke:#0D47A1,stroke-width:3px
|
|
|
style A fill:#4CAF50,color:#fff,stroke:#2E7D32,stroke-width:2px
|
|
|
style B fill:#FF9800,color:#fff,stroke:#E65100,stroke-width:2px
|
|
|
style C fill:#F44336,color:#fff,stroke:#B71C1C,stroke-width:2px
|
|
|
```
|
|
|
|
|
|
## 🎉 功能演示
|
|
|
|
|
|
访问以下页面查看完整功能:
|
|
|
|
|
|
1. **主流程图页面**
|
|
|
- 路径:`ui/pages/flowcharts.html`
|
|
|
- 包含 8 个完整的业务流程图
|
|
|
|
|
|
2. **模板示例页面**
|
|
|
- 路径:`ui/pages/flowchart-template.html`
|
|
|
- 包含 6 种常用模板和示例
|
|
|
|
|
|
3. **使用说明文档**
|
|
|
- 路径:`ui/pages/README-Flowcharts.md`
|
|
|
- 完整的使用指南和技术文档
|
|
|
|
|
|
## 📱 响应式设计
|
|
|
|
|
|
流程图页面已针对不同屏幕尺寸优化:
|
|
|
|
|
|
- 🖥️ **桌面端** (≥1200px):完整展示所有内容
|
|
|
- 💻 **平板端** (768px-1199px):自适应布局
|
|
|
- 📱 **移动端** (<768px):单列布局,横向滚动查看流程图
|
|
|
|
|
|
## 🔄 浏览器兼容性
|
|
|
|
|
|
| 浏览器 | 版本要求 | 支持状态 |
|
|
|
|--------|----------|----------|
|
|
|
| Chrome | ≥90 | ✅ 完全支持 |
|
|
|
| Firefox | ≥88 | ✅ 完全支持 |
|
|
|
| Safari | ≥14 | ✅ 完全支持 |
|
|
|
| Edge | ≥90 | ✅ 完全支持 |
|
|
|
| IE | - | ❌ 不支持 |
|
|
|
|
|
|
## 📈 下一步计划
|
|
|
|
|
|
- [ ] 添加流程图编辑功能(在线编辑)
|
|
|
- [ ] 支持导出为 PNG/PDF 格式
|
|
|
- [ ] 添加流程图版本管理
|
|
|
- [ ] 集成到后端,从数据库读取流程配置
|
|
|
- [ ] 添加流程图打印优化
|
|
|
- [ ] 支持更多 Mermaid 图表类型(时序图、甘特图等)
|
|
|
|
|
|
## 🙋 技术支持
|
|
|
|
|
|
如有问题或建议,请联系项目开发团队。
|
|
|
|
|
|
---
|
|
|
|
|
|
**文档版本**: v1.0.0
|
|
|
**创建日期**: 2024年1月
|
|
|
**最后更新**: 2024年1月
|
|
|
**维护者**: 项目开发团队
|
|
|
**项目**: 资金使用管理系统
|
|
|
|
|
|
---
|
|
|
|
|
|
## 附录:完整文件清单
|
|
|
|
|
|
### 新增文件
|
|
|
1. `ui/pages/flowcharts.html` - 主流程图页面(约 800 行)
|
|
|
2. `ui/pages/flowchart-template.html` - 模板示例页面(约 500 行)
|
|
|
3. `ui/pages/README-Flowcharts.md` - 使用说明文档(约 400 行)
|
|
|
4. `Mermaid流程图实现说明.md` - 项目实现说明(本文档)
|
|
|
|
|
|
### 修改文件
|
|
|
1. `ui/layout.html` - 添加导航菜单项(新增约 10 行)
|
|
|
|
|
|
### 总代码行数
|
|
|
- 新增代码:约 **1700+ 行**
|
|
|
- 流程图数量:**8 个**完整业务流程图
|
|
|
- 模板数量:**6 个**常用模板
|
|
|
- 文档数量:**2 个**完整文档
|
|
|
|
|
|
---
|
|
|
|
|
|
**项目完成度**: ✅ 100%
|
|
|
**测试状态**: ⏳ 待测试
|
|
|
**部署状态**: ⏳ 待部署
|
|
|
|