跳到主要内容

更新日志 - 邮轮穿舱件管理系统前端页面

项目概述

邮轮穿舱件管理系统是一个基于Vue.js 2.x开发的后台管理页面(Dashboard),主要用于邮轮穿舱件的图片识别和管理功能。项目采用现代化的前端技术栈,包括Vue Router、Vuex、Vuetify等框架。

参考文件:

版本历史

v0.1.0 - 初始版本

发布日期: 项目初始版本
技术栈:

  • Vue.js 2.6.14
  • Vue Router 3.6.5
  • Vuex 3.6.2
  • Vuetify 2.6.0

核心功能模块:

  • 用户认证与授权系统
  • 路由导航管理
  • 状态管理(Vuex)
  • 响应式UI组件

依赖包配置:

{
"dependencies": {
"axios": "^1.7.5",
"vue": "^2.6.14",
"vue-router": "^3.6.5",
"vuex": "^3.6.2",
"vuetify": "^2.6.0",
"js-cookie": "^3.0.5",
"jwt-decode": "^4.0.0"
}
}

参考文件:

系统架构分析

核心组件架构

flowchart TD
A[App.vue] --> B[Router]
A --> C[Store]
A --> D[Navigator]
A --> E[Footer]

B --> F[HomeView]
B --> G[WorkpieceView]
B --> H[ImageView]
B --> I[DebugView]
B --> J[SearchView]

C --> K[State Management]
C --> L[Authentication]
C --> M[User Info]

路由架构图

flowchart LR
A[根路由 /] --> B[首页 /home]
A --> C[工件管理 /workpiece]
A --> D[图片管理 /image]
A --> E[调试页面 /debug]
A --> F[搜索页面 /search]
A --> G[文章管理 /article]
A --> H[审核页面 /audit]
A --> I[派单管理 /dispatch]
A --> J[用户管理 /user]
A --> K[登录页面 /login]
A --> L[关于页面 /about]
A --> M[注册页面 /register]

C --> N[工件编辑 /workpiece/edit/:id]
I --> O[工单创建 /dispatch/ticket/create]
I --> P[工单编辑 /dispatch/ticket/edit/:id]
I --> Q[工单查看 /dispatch/ticket/view/:id]

参考文件:

状态管理架构

Vuex Store 结构

classDiagram
class VuexStore {
+state: Object
+mutations: Object
+actions: Object
+getters: Object
}

class State {
+navigator_drawer: Boolean
+authenticated: Boolean
+user_info: Object
+user_token: String
}

class Mutations {
+set_user_info(value)
+set_user_token(value)
+set_navigator_drawer(value)
+set_authenticated(value)
+toggle_navigator_drawer()
}

class Actions {
+set_user_info(value)
+set_user_token(value)
+set_navigator_drawer(value)
+set_authenticated(value)
+toggle_navigator_drawer()
}

class Getters {
+get_navigator_drawer()
+get_authenticated()
+get_user_info()
+get_user_token()
}

VuexStore --> State
VuexStore --> Mutations
VuexStore --> Actions
VuexStore --> Getters

参考文件:

认证授权系统

认证流程序列图

sequenceDiagram
participant U as 用户
participant A as App.vue
participant UU as Utils
participant S as Store
participant R as Router

U->>A: 访问应用
A->>UU: checkAuthorizaion()
UU->>UU: 检查Cookie中的token
UU->>UU: 验证token有效性
alt token有效
UU->>S: set_authenticated(true)
UU->>S: set_user_token(token)
A->>R: 正常路由跳转
else token无效/过期
UU->>S: set_authenticated(false)
A->>R: 重定向到登录页
end

工具函数架构

flowchart TD
A[Utils模块] --> B[checkAuthorizaion]
A --> C[loadSessionToken]
A --> D[logout]
A --> E[getUserInfoFromToken]
A --> F[getCurrentUserInfo]

B --> G[Cookie检查]
B --> H[JWT解码]
B --> I[Token验证]

E --> J[用户信息提取]
F --> K[API调用获取完整信息]

参考文件:

组件依赖关系

主要组件导入关系

graph TB
App[App.vue] --> Navigator[NavigatorPage.vue]
App --> Footer[FooterPage.vue]
App --> Utils[utils/index.js]
App --> Store[store/index.js]

Router[router/index.js] --> Store
Router --> Views[所有视图组件]

Store --> Vuex[Vuex]
Router --> VueRouter[Vue Router]

功能模块详细说明

1. 导航管理模块

  • 功能: 应用顶部导航栏和侧边栏管理
  • 核心组件: NavigatorPage.vue
  • 状态管理: 通过Vuex管理导航抽屉状态
  • 交互方式: 点击应用栏图标切换抽屉状态

参考文件:

2. 路由守卫系统

  • 功能: 页面访问权限控制
  • 实现方式: Vue Router的全局前置守卫
  • 认证逻辑: 检查用户认证状态,未认证用户重定向到登录页
  • 调试模式: 开发环境下跳过认证检查

参考文件:

3. 用户认证模块

  • 认证方式: JWT Token + Cookie存储
  • Token管理: Cookie持久化 + SessionStorage临时存储
  • 信息提取: 从JWT Token中解码用户信息
  • 安全机制: Token过期自动失效

技术实现特点

1. 错误处理机制

// 路由重复导航错误处理
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => {
if (err.name !== 'NavigationDuplicated') throw err
})
}

参考文件:

2. 状态管理模式

采用标准的Vuex模式,包含state、mutations、actions、getters四个核心部分,确保状态管理的可预测性和可维护性。

3. 组件懒加载

所有路由组件都使用动态导入,实现代码分割和按需加载:

component: () => import('@/views/HomeView.vue')

项目目录结构

src/
├── App.vue # 根组件
├── main.js # 入口文件
├── components/ # 公共组件
├── views/ # 页面视图
│ ├── admin/ # 管理页面
│ ├── article/ # 文章管理
│ ├── audit/ # 审核功能
│ ├── debug/ # 调试页面
│ ├── dispatch/ # 派单管理
│ ├── image/ # 图片管理
│ ├── project/ # 项目管理
│ ├── search/ # 搜索功能
│ └── workpiece/ # 工件管理
├── router/ # 路由配置
├── store/ # 状态管理
├── utils/ # 工具函数
└── http/ # HTTP请求封装

索引

v0.1.0版本建立了完整的前端基础架构,包括:

  • 现代化的Vue.js技术栈
  • 完善的路由和状态管理
  • 安全的用户认证系统
  • 模块化的组件架构
  • 响应式的UI设计

该版本为后续功能开发奠定了坚实的技术基础,具备良好的可扩展性和维护性。

主要参考文件汇总: