Blame view

docs/项目架构图.md 9.33 KB
fe9e5fc5   wuxw   v1.9 加入一些开发相关说明,方...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
  # 物业管理系统 - 项目架构图
  
  ## 🏗️ 整体架构
  
  ```
  ┌─────────────────────────────────────────────────────────────┐
  │                        前端应用层                            │
  ├─────────────────────────────────────────────────────────────┤
  │  Vue 2 + Element UI + Vue Router + Vuex + Axios            │
  ├─────────────────────────────────────────────────────────────┤
  │                        业务逻辑层                            │
  ├─────────────────────────────────────────────────────────────┤
  │  用户管理 │ 社区管理 │ 费用管理 │ 工单管理 │ 设备管理        │
  ├─────────────────────────────────────────────────────────────┤
  │                        数据访问层                            │
  ├─────────────────────────────────────────────────────────────┤
  │  HTTP 请求 │ 本地存储 │ 权限验证 │ 错误处理                │
  ├─────────────────────────────────────────────────────────────┤
  │                        后端服务层                            │
  └─────────────────────────────────────────────────────────────┘
  ```
  
  ## 📁 目录结构详解
  
  ### 1. 源码目录 (src/)
  
  ```
  src/
  ├── api/                    # API 接口层
  │   ├── community/         # 社区管理接口
  │   ├── fee/              # 费用管理接口
  │   ├── work/             # 工单管理接口
  │   ├── user/             # 用户管理接口
  │   ├── room/             # 房屋管理接口
  │   ├── owner/            # 业主管理接口
  │   ├── resource/         # 资源管理接口
  │   ├── system/           # 系统管理接口
  │   └── ...
  ├── components/            # 公共组件库
  │   ├── common/           # 通用组件
  │   ├── fee/              # 费用相关组件
  │   ├── room/             # 房屋相关组件
  │   ├── upload/           # 上传组件
  │   └── ...
  ├── views/                 # 页面组件
  │   ├── index/            # 首页仪表板
  │   ├── layout/           # 主布局框架
  │   ├── user/             # 用户相关页面
  │   ├── community/        # 社区管理页面
  │   ├── fee/              # 费用管理页面
  │   ├── work/             # 工单管理页面
  │   └── ...
  ├── router/                # 路由配置
  │   ├── index.js          # 主路由配置
  │   ├── feeRouter.js      # 费用管理路由
  │   ├── workRouter.js     # 工单管理路由
  │   └── ...
  ├── i18n/                  # 国际化配置
  │   ├── index.js          # 国际化主配置
  │   ├── commonLang.js     # 通用语言包
  │   ├── feeI18n.js        # 费用管理语言包
  │   └── ...
  ├── utils/                 # 工具函数
  │   ├── request.js        # HTTP 请求封装
  │   ├── dateUtil.js       # 日期工具函数
  │   ├── moneyUtil.js      # 金额工具函数
  │   └── ...
  ├── conf/                  # 配置文件
  │   └── config.js         # 应用配置
  ├── App.vue               # 根组件
  └── main.js               # 应用入口
  ```
  
  ### 2. 配置文件
  
  ```
  项目根目录/
  ├── package.json          # 项目依赖配置
  ├── vue.config.js         # Vue CLI 配置
  ├── .eslintrc.js          # ESLint 配置
  ├── .gitignore            # Git 忽略文件
  └── README.md             # 项目说明
  ```
  
  ## 🔄 数据流架构
  
  ### 1. 单向数据流
  
  ```
  用户操作 → 组件事件 → API 调用 → 数据更新 → 视图渲染
      ↓           ↓         ↓         ↓         ↓
    触发事件   事件处理   后端接口   状态变更   响应式更新
  ```
  
  ### 2. 组件通信
  
  ```
  父组件 ←→ 子组件
     ↓         ↓
  Props    Events
     ↓         ↓
  数据传递   事件通知
  ```
  
  ### 3. 状态管理
  
  ```
  组件内部状态 (data) ←→ 全局状态 (Vue.prototype)
          ↓                      ↓
     响应式数据             全局方法/属性
          ↓                      ↓
     自动更新视图           权限检查/工具函数
  ```
  
  ## 🌐 网络架构
  
  ### 1. 请求流程
  
  ```
  前端组件 → Axios 实例 → 请求拦截器 → 后端 API → 响应拦截器 → 组件
      ↓           ↓           ↓           ↓           ↓         ↓
    发起请求   统一配置   添加认证头   处理业务   统一处理   更新状态
  ```
  
  ### 2. 代理配置
  
  ```javascript
  // vue.config.js
  proxy: {
    '/app': {
      target: 'http://demo.homecommunity.cn/app',
      changeOrigin: true,
      pathRewrite: { '^/app': '' }
    },
    '/callComponent': {
      target: 'http://demo.homecommunity.cn/callComponent',
      changeOrigin: true,
      pathRewrite: { '^/callComponent': '' }
    }
  }
  ```
  
  ## 🔐 权限架构
  
  ### 1. 权限控制流程
  
  ```
  用户登录 → 获取权限列表 → 存储到 localStorage → 组件权限检查 → 功能控制
      ↓           ↓              ↓              ↓           ↓
    身份验证   后端返回权限    本地缓存权限    调用 hasPrivilege   显示/隐藏
  ```
  
  ### 2. 权限检查实现
  
  ```javascript
  Vue.prototype.hasPrivilege = function(_privaleges) {
    const privilegesToCheck = Array.isArray(_privaleges) ? _privaleges : [_privaleges];
    let userPrivileges = localStorage.getItem('hc_staff_privilege');
    
    if (userPrivileges) {
      userPrivileges = userPrivileges.split(',');
    } else {
      return false;
    }
    
    return privilegesToCheck.some(item => userPrivileges.includes(item));
  }
  ```
  
  ## 🎨 UI 架构
  
  ### 1. 组件层次结构
  
  ```
  App.vue (根组件)
  
  Layout.vue (主布局)
  
  Router View (路由视图)
  
  页面组件 (如 RoomList.vue)
  
  业务组件 (如 RoomTree.vue)
  
  Element UI 组件 (如 el-table, el-form)
  ```
  
  ### 2. 样式架构
  
  ```
  全局样式 (App.vue)
  
  Element UI 主题样式
  
  页面级样式 (scoped)
  
  组件级样式 (scoped)
  ```
  
  ## 📱 响应式架构
  
  ### 1. 移动端适配
  
  - 使用 Element UI 的响应式栅格系统
  - 媒体查询适配不同屏幕尺寸
  - 触摸友好的交互设计
  
  ### 2. 浏览器兼容性
  
  - 支持现代浏览器 (Chrome, Firefox, Safari, Edge)
  - 使用 Babel 转译 ES6+ 语法
  - Polyfill 支持旧版本浏览器
  
  ## 🚀 性能优化架构
  
  ### 1. 代码分割
  
  ```javascript
  // 路由懒加载
  component: () => import('@/views/room/roomList.vue')
  
  // 组件懒加载
  components: {
    RoomTree: () => import('@/components/room/roomTree.vue')
  }
  ```
  
  ### 2. 资源优化
  
  - 图片懒加载
  - CSS/JS 压缩
  - 静态资源 CDN 加速
  - 浏览器缓存策略
  
  ### 3. 运行时优化
  
  - Vue 虚拟 DOM 优化
  - 计算属性缓存
  - 事件委托
  - 防抖节流处理
  
  ## 🔧 开发工具架构
  
  ### 1. 构建工具
  
  ```
  Vue CLI 4.5.0
  
  Webpack 4
  
  Babel + ESLint + Sass
  
  开发/生产环境构建
  ```
  
  ### 2. 代码质量
  
  - ESLint: 代码规范检查
  - Prettier: 代码格式化
  - Git Hooks: 提交前检查
  - 代码审查流程
  
  ### 3. 调试工具
  
  - Vue DevTools: Vue 组件调试
  - Chrome DevTools: 浏览器调试
  - 控制台日志: 开发调试
  - 网络面板: API 调试
  
  ## 📊 监控架构
  
  ### 1. 错误监控
  
  ```javascript
  // 全局错误处理
  Vue.config.errorHandler = function(err, vm, info) {
    console.error('Vue Error:', err, info);
    // 上报错误信息
  }
  ```
  
  ### 2. 性能监控
  
  - 页面加载时间
  - API 响应时间
  - 用户交互响应时间
  - 内存使用情况
  
  ### 3. 用户行为监控
  
  - 页面访问统计
  - 功能使用统计
  - 错误操作统计
  - 用户反馈收集
  
  ## 🔄 部署架构
  
  ### 1. 开发环境
  
  ```
  本地开发 → 热重载 → 代理转发 → 后端服务
      ↓         ↓         ↓         ↓
    npm run dev  实时更新   本地代理   测试环境
  ```
  
  ### 2. 生产环境
  
  ```
  代码构建 → 资源优化 → 静态部署 → CDN 加速
      ↓         ↓         ↓         ↓
    npm run build  压缩优化   服务器部署   全球加速
  ```
  
  ### 3. 环境配置
  
  ```javascript
  // 环境变量配置
  NODE_ENV=development  // 开发环境
  NODE_ENV=production   // 生产环境
  
  // API 地址配置
  BASE_API=http://localhost:8008  // 开发环境
  BASE_API=https://api.example.com  // 生产环境
  ```
  
  ---
  
  这个架构图展示了项目的整体结构和技术实现,帮助开发者快速理解项目的组织方式和各个模块之间的关系。