|
@@ -0,0 +1,336 @@
|
|
1
|
+# CMC智联云枢办公系统(oa-ui) 技术架构文档
|
|
2
|
+
|
|
3
|
+## 1. 项目概述
|
|
4
|
+
|
|
5
|
+CMC智联云枢办公系统前端(oa-ui)是基于Vue.js 2.x构建的企业级办公管理系统,主要服务于CMC企业的日常办公管理需求,包括项目管理、车辆管理、设备管理、合同管理、流程审批等多个业务模块。
|
|
6
|
+
|
|
7
|
+### 1.1 基本信息
|
|
8
|
+- **项目名称**: CMC智联云枢办公系统
|
|
9
|
+- **版本**: 3.8.7
|
|
10
|
+- **描述**: CMC智联云枢办公系统
|
|
11
|
+- **开发框架**: Vue.js 2.6.12 + Element UI 2.15.14
|
|
12
|
+- **构建工具**: Vue CLI 4.4.6
|
|
13
|
+
|
|
14
|
+## 2. 技术栈
|
|
15
|
+
|
|
16
|
+### 2.1 核心技术
|
|
17
|
+- **前端框架**: Vue.js 2.6.12
|
|
18
|
+- **UI组件库**: Element UI 2.15.14
|
|
19
|
+- **状态管理**: Vuex 3.6.0
|
|
20
|
+- **路由管理**: Vue Router 3.4.9
|
|
21
|
+- **HTTP客户端**: Axios 0.24.0
|
|
22
|
+- **构建工具**: Vue CLI 4.4.6
|
|
23
|
+- **样式预处理器**: Sass 1.32.13
|
|
24
|
+
|
|
25
|
+### 2.2 特色功能库
|
|
26
|
+- **流程图设计**: bpmn-js 11.1.0 (支持BPMN流程设计)
|
|
27
|
+- **地图组件**: OpenLayers 7.1.0 (GIS地图功能)
|
|
28
|
+- **图表可视化**: ECharts 5.4.0 + ECharts GL 2.0.9
|
|
29
|
+- **富文本编辑**: Quill 1.3.7 + TinyMCE
|
|
30
|
+- **文档预览**: @vue-office系列 (支持PDF、Excel、Word预览)
|
|
31
|
+- **视频播放**: Video.js 8.21.0
|
|
32
|
+
|
|
33
|
+### 2.3 工具库
|
|
34
|
+- **文件操作**: file-saver 2.0.5
|
|
35
|
+- **加密解密**: jsencrypt 3.0.0-rc.1
|
|
36
|
+- **剪贴板**: clipboard 2.0.8
|
|
37
|
+- **日期处理**: 内置日期工具
|
|
38
|
+- **拖拽功能**: vuedraggable 2.24.3 + sortablejs 1.10.2
|
|
39
|
+
|
|
40
|
+## 3. 项目架构
|
|
41
|
+
|
|
42
|
+### 3.1 目录结构
|
|
43
|
+```
|
|
44
|
+oa-ui/
|
|
45
|
+├── public/ # 静态资源
|
|
46
|
+├── src/
|
|
47
|
+│ ├── api/ # API接口层
|
|
48
|
+│ │ ├── flowable/ # 工作流相关接口
|
|
49
|
+│ │ ├── oa/ # 办公系统业务接口
|
|
50
|
+│ │ ├── system/ # 系统管理接口
|
|
51
|
+│ │ └── monitor/ # 系统监控接口
|
|
52
|
+│ ├── assets/ # 静态资源
|
|
53
|
+│ │ ├── icons/ # SVG图标
|
|
54
|
+│ │ ├── images/ # 图片资源
|
|
55
|
+│ │ ├── styles/ # 全局样式
|
|
56
|
+│ │ └── datas/ # 静态数据
|
|
57
|
+│ ├── components/ # 公共组件
|
|
58
|
+│ │ ├── Process/ # 流程设计组件
|
|
59
|
+│ │ ├── FileUpload/ # 文件上传组件
|
|
60
|
+│ │ ├── ImageUpload/ # 图片上传组件
|
|
61
|
+│ │ └── ... # 其他通用组件
|
|
62
|
+│ ├── directive/ # 自定义指令
|
|
63
|
+│ ├── layout/ # 布局组件
|
|
64
|
+│ ├── plugins/ # 插件配置
|
|
65
|
+│ ├── router/ # 路由配置
|
|
66
|
+│ ├── store/ # Vuex状态管理
|
|
67
|
+│ ├── utils/ # 工具类
|
|
68
|
+│ ├── views/ # 页面组件
|
|
69
|
+│ │ ├── oa/ # 办公系统业务页面
|
|
70
|
+│ │ ├── flowable/ # 工作流页面
|
|
71
|
+│ │ ├── system/ # 系统管理页面
|
|
72
|
+│ │ └── monitor/ # 系统监控页面
|
|
73
|
+│ ├── App.vue # 根组件
|
|
74
|
+│ ├── main.js # 入口文件
|
|
75
|
+│ └── permission.js # 权限控制
|
|
76
|
+├── package.json # 项目配置
|
|
77
|
+└── babel.config.js # Babel配置
|
|
78
|
+```
|
|
79
|
+
|
|
80
|
+### 3.2 分层架构
|
|
81
|
+
|
|
82
|
+#### 3.2.1 表现层 (Presentation Layer)
|
|
83
|
+- **Views层**: 业务页面组件,负责用户界面展示和交互
|
|
84
|
+- **Components层**: 可复用的UI组件
|
|
85
|
+- **Layout层**: 页面布局组件(侧边栏、导航栏、内容区域)
|
|
86
|
+
|
|
87
|
+#### 3.2.2 业务逻辑层 (Business Logic Layer)
|
|
88
|
+- **Store/Vuex**: 全局状态管理,包含用户信息、权限、应用配置等
|
|
89
|
+- **Router**: 路由管理,支持动态路由和权限控制
|
|
90
|
+- **Directive**: 自定义指令,如权限指令、拖拽指令等
|
|
91
|
+
|
|
92
|
+#### 3.2.3 数据访问层 (Data Access Layer)
|
|
93
|
+- **API层**: 封装HTTP请求,统一管理后端接口调用
|
|
94
|
+- **Utils层**: 工具函数,包含请求拦截器、数据处理、权限验证等
|
|
95
|
+
|
|
96
|
+## 4. 核心模块详解
|
|
97
|
+
|
|
98
|
+### 4.1 认证与权限模块
|
|
99
|
+
|
|
100
|
+#### 4.1.1 认证机制
|
|
101
|
+- 基于JWT Token的认证方式
|
|
102
|
+- 支持Token自动刷新
|
|
103
|
+- 登录状态持久化存储
|
|
104
|
+
|
|
105
|
+#### 4.1.2 权限控制
|
|
106
|
+```javascript
|
|
107
|
+// 权限指令示例
|
|
108
|
+v-hasPermi="['system:user:add']" // 菜单权限
|
|
109
|
+v-hasRole="['admin']" // 角色权限
|
|
110
|
+```
|
|
111
|
+
|
|
112
|
+#### 4.1.3 路由守卫
|
|
113
|
+- 全局前置守卫验证登录状态
|
|
114
|
+- 动态路由生成基于用户权限
|
|
115
|
+- 白名单路由支持
|
|
116
|
+
|
|
117
|
+### 4.2 状态管理 (Vuex)
|
|
118
|
+
|
|
119
|
+#### 4.2.1 模块结构
|
|
120
|
+```javascript
|
|
121
|
+store/
|
|
122
|
+├── modules/
|
|
123
|
+│ ├── app.js # 应用配置状态
|
|
124
|
+│ ├── user.js # 用户信息状态
|
|
125
|
+│ ├── permission.js # 权限路由状态
|
|
126
|
+│ ├── tagsView.js # 标签页状态
|
|
127
|
+│ ├── settings.js # 系统设置状态
|
|
128
|
+│ ├── dict.js # 字典数据状态
|
|
129
|
+│ ├── projectProcess.js # 项目流程状态
|
|
130
|
+│ └── ol.js # 地图组件状态
|
|
131
|
+├── getters.js # 全局getter
|
|
132
|
+└── index.js # store入口
|
|
133
|
+```
|
|
134
|
+
|
|
135
|
+#### 4.2.2 核心状态
|
|
136
|
+- **用户信息**: 包含用户基本信息、角色、权限等
|
|
137
|
+- **应用配置**: 侧边栏状态、设备类型、主题设置等
|
|
138
|
+- **路由权限**: 动态路由、菜单权限等
|
|
139
|
+- **字典数据**: 系统字典缓存
|
|
140
|
+
|
|
141
|
+### 4.3 网络请求模块
|
|
142
|
+
|
|
143
|
+#### 4.3.1 请求拦截器
|
|
144
|
+- 自动添加Authorization header
|
|
145
|
+- 请求重复提交控制
|
|
146
|
+- 请求参数处理
|
|
147
|
+
|
|
148
|
+#### 4.3.2 响应拦截器
|
|
149
|
+- 统一错误处理
|
|
150
|
+- 登录状态过期处理
|
|
151
|
+- 文件下载处理
|
|
152
|
+
|
|
153
|
+#### 4.3.3 API组织结构
|
|
154
|
+```javascript
|
|
155
|
+api/
|
|
156
|
+├── flowable/ # 工作流相关
|
|
157
|
+├── oa/ # 业务模块
|
|
158
|
+│ ├── project/ # 项目管理
|
|
159
|
+│ ├── car/ # 车辆管理
|
|
160
|
+│ ├── device/ # 设备管理
|
|
161
|
+│ ├── contract/ # 合同管理
|
|
162
|
+│ └── ... # 其他业务模块
|
|
163
|
+├── system/ # 系统管理
|
|
164
|
+└── monitor/ # 系统监控
|
|
165
|
+```
|
|
166
|
+
|
|
167
|
+### 4.4 组件体系
|
|
168
|
+
|
|
169
|
+#### 4.4.1 全局组件
|
|
170
|
+- **Pagination**: 分页组件
|
|
171
|
+- **RightToolbar**: 表格工具栏
|
|
172
|
+- **DictTag**: 字典标签
|
|
173
|
+- **FileUpload**: 文件上传
|
|
174
|
+- **ImageUpload**: 图片上传
|
|
175
|
+- **Editor**: 富文本编辑器
|
|
176
|
+
|
|
177
|
+#### 4.4.2 业务组件
|
|
178
|
+- **Process**: BPMN流程设计器
|
|
179
|
+- **Calendar**: 日历组件
|
|
180
|
+- **IconSelect**: 图标选择器
|
|
181
|
+- **HeaderSearch**: 头部搜索
|
|
182
|
+
|
|
183
|
+#### 4.4.3 布局组件
|
|
184
|
+- **Sidebar**: 侧边栏导航
|
|
185
|
+- **Navbar**: 顶部导航栏
|
|
186
|
+- **TagsView**: 标签页导航
|
|
187
|
+- **AppMain**: 主内容区域
|
|
188
|
+
|
|
189
|
+## 5. 业务模块架构
|
|
190
|
+
|
|
191
|
+### 5.1 工作流模块 (Flowable)
|
|
192
|
+- **流程定义**: 支持BPMN 2.0标准的流程设计
|
|
193
|
+- **任务管理**: 待办、已办、我的流程
|
|
194
|
+- **表单管理**: 动态表单配置和渲染
|
|
195
|
+- **流程监控**: 流程实例跟踪和管理
|
|
196
|
+
|
|
197
|
+### 5.2 项目管理模块
|
|
198
|
+- **项目台账**: 项目基础信息管理
|
|
199
|
+- **项目预算**: 预算编制和管控
|
|
200
|
+- **项目进度**: 进度跟踪和报告
|
|
201
|
+- **项目变更**: 变更申请和审批
|
|
202
|
+
|
|
203
|
+### 5.3 资源管理模块
|
|
204
|
+- **车辆管理**: 车辆信息、使用申请、费用管理
|
|
205
|
+- **设备管理**: 设备台账、领用归还、维修保养
|
|
206
|
+- **人员管理**: 员工信息、薪资管理、绩效考核
|
|
207
|
+
|
|
208
|
+### 5.4 合同管理模块
|
|
209
|
+- **承接合同**: 合同基础信息、支付管理
|
|
210
|
+- **分包合同**: 分包管理、结算管理
|
|
211
|
+- **合同档案**: 合同文档管理
|
|
212
|
+
|
|
213
|
+### 5.5 财务管理模块
|
|
214
|
+- **借款管理**: 借款申请、审批、还款
|
|
215
|
+- **费用管理**: 各类费用申请和报销
|
|
216
|
+- **预算管控**: 预算编制、执行、分析
|
|
217
|
+
|
|
218
|
+## 6. 技术特色
|
|
219
|
+
|
|
220
|
+### 6.1 工作流集成
|
|
221
|
+- 深度集成Flowable工作流引擎
|
|
222
|
+- 支持复杂业务流程的可视化设计
|
|
223
|
+- 提供完整的流程生命周期管理
|
|
224
|
+
|
|
225
|
+### 6.2 GIS地图功能
|
|
226
|
+- 基于OpenLayers的地图组件
|
|
227
|
+- 支持多种地图底图和图层
|
|
228
|
+- 提供空间数据的可视化展示
|
|
229
|
+
|
|
230
|
+### 6.3 多媒体支持
|
|
231
|
+- 支持多种文档格式在线预览
|
|
232
|
+- 集成视频播放功能
|
|
233
|
+- 提供图片预览和编辑功能
|
|
234
|
+
|
|
235
|
+### 6.4 移动端适配
|
|
236
|
+- 响应式布局设计
|
|
237
|
+- 支持移动端设备访问
|
|
238
|
+- 提供良好的移动端用户体验
|
|
239
|
+
|
|
240
|
+## 7. 性能优化
|
|
241
|
+
|
|
242
|
+### 7.1 代码分割
|
|
243
|
+- 路由级别的代码分割
|
|
244
|
+- 组件异步加载
|
|
245
|
+- 第三方库按需引入
|
|
246
|
+
|
|
247
|
+### 7.2 缓存策略
|
|
248
|
+- 字典数据缓存
|
|
249
|
+- 用户权限信息缓存
|
|
250
|
+- 静态资源缓存
|
|
251
|
+
|
|
252
|
+### 7.3 请求优化
|
|
253
|
+- 请求防抖处理
|
|
254
|
+- 重复请求取消
|
|
255
|
+- 批量请求合并
|
|
256
|
+
|
|
257
|
+## 8. 安全机制
|
|
258
|
+
|
|
259
|
+### 8.1 前端安全
|
|
260
|
+- XSS攻击防护
|
|
261
|
+- CSRF攻击防护
|
|
262
|
+- 敏感信息加密传输
|
|
263
|
+
|
|
264
|
+### 8.2 权限控制
|
|
265
|
+- 基于RBAC的权限模型
|
|
266
|
+- 前端路由权限控制
|
|
267
|
+- 接口级别的权限验证
|
|
268
|
+
|
|
269
|
+### 8.3 数据安全
|
|
270
|
+- 前端数据脱敏
|
|
271
|
+- 安全的文件上传处理
|
|
272
|
+- 用户操作日志记录
|
|
273
|
+
|
|
274
|
+## 9. 开发规范
|
|
275
|
+
|
|
276
|
+### 9.1 代码规范
|
|
277
|
+- ESLint代码质量检查
|
|
278
|
+- 统一的代码格式化
|
|
279
|
+- Git提交规范
|
|
280
|
+
|
|
281
|
+### 9.2 组件规范
|
|
282
|
+- 组件命名规范
|
|
283
|
+- Props和Events定义规范
|
|
284
|
+- 组件文档化要求
|
|
285
|
+
|
|
286
|
+### 9.3 API规范
|
|
287
|
+- 统一的接口命名规范
|
|
288
|
+- 标准的请求响应格式
|
|
289
|
+- 完整的错误码定义
|
|
290
|
+
|
|
291
|
+## 10. 部署架构
|
|
292
|
+
|
|
293
|
+### 10.1 开发环境
|
|
294
|
+- 本地开发服务器
|
|
295
|
+- 热重载支持
|
|
296
|
+- 开发调试工具集成
|
|
297
|
+
|
|
298
|
+### 10.2 生产环境
|
|
299
|
+- 静态资源CDN部署
|
|
300
|
+- Gzip压缩优化
|
|
301
|
+- 缓存策略配置
|
|
302
|
+
|
|
303
|
+### 10.3 持续集成
|
|
304
|
+- 自动化构建流程
|
|
305
|
+- 代码质量检查
|
|
306
|
+- 自动化部署
|
|
307
|
+
|
|
308
|
+## 11. 扩展性设计
|
|
309
|
+
|
|
310
|
+### 11.1 插件化架构
|
|
311
|
+- 组件插件化
|
|
312
|
+- 功能模块插件化
|
|
313
|
+- 第三方集成插件化
|
|
314
|
+
|
|
315
|
+### 11.2 国际化支持
|
|
316
|
+- 多语言切换
|
|
317
|
+- 本地化资源管理
|
|
318
|
+- 区域化配置
|
|
319
|
+
|
|
320
|
+### 11.3 主题定制
|
|
321
|
+- 多主题切换
|
|
322
|
+- 自定义主题配置
|
|
323
|
+- 品牌化定制支持
|
|
324
|
+
|
|
325
|
+## 12. 总结
|
|
326
|
+
|
|
327
|
+CMC综合办公系统前端架构采用了现代化的Vue.js技术栈,通过模块化、组件化的设计理念,构建了一个功能完善、扩展性强、维护性好的企业级办公管理系统。系统具有以下特点:
|
|
328
|
+
|
|
329
|
+1. **技术先进**: 采用Vue.js 2.x + Element UI构建,技术栈成熟稳定
|
|
330
|
+2. **功能丰富**: 涵盖项目管理、资源管理、流程审批等多个业务领域
|
|
331
|
+3. **架构清晰**: 分层架构设计,职责分离,便于开发和维护
|
|
332
|
+4. **扩展性强**: 插件化设计,支持功能模块的灵活扩展
|
|
333
|
+5. **用户体验**: 响应式设计,支持PC和移动端访问
|
|
334
|
+6. **安全可靠**: 完善的权限控制和安全防护机制
|
|
335
|
+
|
|
336
|
+该架构为企业数字化办公提供了强有力的技术支撑,能够满足企业不断增长的业务需求和技术演进要求。
|