跳到主要内容

邮轮穿舱件管理系统-小程序端核心功能模块分析

文档概述

本文档基于对邮轮穿舱件管理系统-小程序端的pages目录结构分析,详细阐述了系统的核心功能模块架构、代码依赖关系和数据流模式。通过深入分析用户认证、任务管理、工件管理、消息系统和个人中心等关键模块,为开发人员提供全面的技术参考。

系统架构概览

整体架构图

flowchart TD
subgraph 前端层
A[登录认证模块] --> B[任务管理模块]
A --> C[工件管理模块]
A --> D[消息系统模块]
A --> E[个人中心模块]
end

subgraph 业务逻辑层
B --> F[任务列表页面]
B --> G[任务详情页面]
C --> H[工件详情页面]
D --> I[消息列表页面]
E --> J[个人信息页面]
end

subgraph 数据访问层
F --> K[API请求模块]
G --> K
H --> K
I --> K
J --> K
end

subgraph 后端服务
K --> L[RESTful API]
L --> M[数据库服务]
end

核心模块依赖关系

flowchart TD
A[登录页面] --> B[用户绑定页面]
A --> C[任务列表页面]
C --> D[任务详情页面]
D --> E[工件详情页面]
A --> F[个人中心页面]
F --> B
F --> G[消息页面]

H[API请求模块] --> A
H --> B
H --> C
H --> D
H --> E
H --> F
H --> G

style A fill:#e1f5fe
style C fill:#f3e5f5
style D fill:#e8f5e8
style E fill:#fff3e0

用户认证模块分析

登录功能架构

sequenceDiagram
participant U as 用户
participant L as 登录页面
participant W as 微信API
participant S as 后端服务

U->>L: 输入账号密码/微信登录
L->>W: 调用wx.login()获取code
W-->>L: 返回授权code
L->>S: 发送登录请求(账号密码+code)
S-->>L: 返回access_token
L->>L: 存储token到本地
L->>U: 跳转到个人中心页面

关键代码实现

登录模块支持两种认证方式:

  • 密码登录:传统用户名密码认证
  • 微信登录:基于微信授权码的快速登录

核心功能函数

  • passwordLogin(): 处理密码登录逻辑
  • wechatLogin(): 处理微信登录逻辑
  • changeSubmit(): 动态控制提交按钮状态

引用文件:

用户绑定功能

stateDiagram-v2
[*] --> 未绑定状态
未绑定状态 --> 绑定表单: 显示绑定界面
绑定表单 --> 验证中: 提交绑定信息
验证中 --> 绑定成功: 验证通过
验证中 --> 绑定失败: 验证失败
绑定成功 --> [*]: 重新登录
绑定失败 --> 绑定表单: 重新输入

引用文件:

任务管理模块分析

任务列表页面架构

classDiagram
class TaskPage {
-data: Object
+userInfo: Object
+userScopes: Array
+taskList: Array
+allTaskList: Array
+filterType: String
+loadUserInfo()
+loadTaskList()
+applyFilter()
+onTaskClick()
}

class TaskItem {
+ticket_id: String
+ticket_status: String
+ticket_type: String
+target_workpiece: String
+ticket_tos: Array
+statusText: String
+typeText: String
+formattedTime: String
}

TaskPage "1" *-- "many" TaskItem : contains

任务筛选机制

系统支持两种任务筛选模式:

  • 全部任务:显示所有可见任务
  • 分配给我:仅显示分配给当前用户的任务

筛选逻辑实现

// 根据用户ID筛选分配任务
filteredList = allTaskList.filter(task => {
if (Array.isArray(task.ticket_tos)) {
return task.ticket_tos.includes(userInfo.id);
}
// 其他格式处理逻辑...
});

引用文件:

任务详情页面

flowchart TD
A[任务列表] --> B{点击任务项}
B --> C[加载任务详情]
C --> D[获取工件信息]
C --> E[加载相关图片]
D --> F[显示工件详情]
E --> G[显示任务图片]
F --> H[任务操作面板]
G --> H
H --> I[开始作业]
H --> J[取消作业]
H --> K[提交汇报]

任务状态流转

stateDiagram-v2
[*] --> open: 创建任务
open --> running: 开始作业
running --> closed: 完成汇报
running --> issue: 问题汇报
running --> open: 取消作业
issue --> running: 重新处理
closed --> [*]: 任务结束

引用文件:

工件管理模块分析

工件详情页面架构

erDiagram
WORKPIECE ||--o{ WORKPIECE_IMAGE : has
WORKPIECE {
string wp_id PK
string wp_firestop_code
string wp_matrial
string wp_size
string wp_fire_rating
string wp_watertightness
string wp_main_vertical_zone
string wp_installation_location
string wp_z_coordinate
string wp_frame_station
string wp_longitudinal_stiffener
string wp_sap1
string wp_sap2
string wp_standard_drawing_catalogue
string wp_extra
}

WORKPIECE_IMAGE {
string image_id PK
string wp_id FK
string image_key
string base64_data
string url
}

字段映射机制

系统使用字段映射表将数据库字段转换为用户友好的显示名称:

数据库字段显示名称数据类型
wp_firestop_code防火板代号String
wp_matrial材料String
wp_size规格String
wp_fire_rating防火等级String
wp_watertightness水密等级String

引用文件:

图片加载流程

sequenceDiagram
participant P as 工件页面
participant S as 后端服务
participant I as 图片服务

P->>S: 请求工件基本信息
S-->>P: 返回工件数据
P->>S: 请求工件图片列表
S-->>P: 返回图片key列表
loop 每张图片
P->>I: 请求图片下载(key)
I-->>P: 返回base64数据
P->>P: 构建图片URL
end
P->>P: 更新界面显示

引用文件:

消息系统模块分析

实时消息架构

flowchart TD
A[消息列表页面] --> B[WebSocket连接]
B --> C[接收实时消息]
C --> D[更新消息状态]
D --> E[刷新未读计数]
E --> F[通知个人中心]

G[聊天页面] --> H[发送消息]
H --> I[通过WebSocket传输]
I --> J[目标用户接收]

消息处理机制

系统采用事件驱动的消息处理模式:

  • 消息接收:通过WebSocket实时接收新消息
  • 状态更新:自动标记已读消息
  • 未读计数:实时计算并更新未读消息数量

引用文件:

个人中心模块分析

用户信息管理

classDiagram
class MyPage {
+personalInfo: Object
+optionalList: Array
+settingList: Array
+onShow()
+onNavigateTo()
+onEleClick()
}

class PersonalInfo {
+name: String
+star: String
+city: String
}

class MenuItem {
+name: String
+icon: String
+type: String
+url: String
}

MyPage "1" *-- "1" PersonalInfo : has
MyPage "1" *-- "many" MenuItem : contains

用户状态识别

系统根据用户信息自动识别不同状态:

  • 绑定状态:通过用户名前缀识别(UNBIND_为未绑定)
  • 权限等级:根据is_system字段区分管理员和普通用户
  • 账户状态:基于status字段判断账户是否活跃

引用文件:

  • my.js - 用户信息处理逻辑

API请求模块分析

统一请求处理

flowchart LR
A[页面组件] --> B[request函数]
B --> C[构建请求头]
C --> D[添加Token认证]
D --> E[发送HTTP请求]
E --> F{状态码判断}
F -->|200/201| G[解析响应数据]
F -->|其他| H[处理错误]
G --> I[返回成功结果]
H --> J[抛出异常]

认证机制实现

系统采用Bearer Token认证方式:

  • 自动从本地存储获取access_token
  • 在请求头中添加Authorization字段
  • 支持JSON格式的数据传输

引用文件:

数据流分析

核心数据流转路径

flowchart TD
A[用户登录] --> B[获取Token]
B --> C[存储到本地]
C --> D[任务列表请求]
D --> E[携带Token认证]
E --> F[获取任务数据]
F --> G[任务详情请求]
G --> H[获取工件信息]
H --> I[加载相关图片]
I --> J[展示完整信息]

状态管理策略

系统采用分层状态管理:

  1. 页面级状态:各页面独立管理的数据状态
  2. 应用级状态:通过本地存储管理的持久化状态
  3. 服务级状态:后端服务维护的业务状态

性能优化建议

图片加载优化

  • 实现图片懒加载机制
  • 使用base64编码减少HTTP请求
  • 添加图片缓存策略

数据请求优化

  • 实现请求去重机制
  • 添加请求缓存层
  • 优化图片下载并发控制

索引

邮轮穿舱件管理系统-小程序端采用模块化架构设计,各功能模块职责清晰,依赖关系明确。系统通过统一的API请求层实现前后端数据交互,采用Token认证机制保障安全性。核心功能模块包括用户认证、任务管理、工件管理、消息系统和个人中心,形成了完整的业务闭环。

关键技术特点

  • 支持多种登录方式,用户体验友好
  • 任务状态管理完善,支持完整的业务流程
  • 工件信息展示详细,支持图片预览
  • 消息系统实时性强,支持未读计数
  • API请求封装统一,错误处理完善

该系统架构合理,代码结构清晰,为后续功能扩展和维护提供了良好的基础。

参考文件列表: