ui 优化
This commit is contained in:
@@ -12,16 +12,17 @@
|
||||
- [frontend/src/utils/tabs.js](file://frontend/src/utils/tabs.js)
|
||||
- [frontend/src/views/home/index.vue](file://frontend/src/views/home/index.vue)
|
||||
- [frontend/src/views/login/index.vue](file://frontend/src/views/login/index.vue)
|
||||
- [frontend/src/views/toolbox/luxsin-controller/index.vue](file://frontend/src/views/toolbox/luxsin-controller/index.vue)
|
||||
</cite>
|
||||
|
||||
## 更新摘要
|
||||
**所做更改**
|
||||
- 更新了主布局组件以支持全新的玻璃拟态设计系统和深色宇宙主题
|
||||
- 新增了动态背景光球效果,营造沉浸式视觉体验
|
||||
- 重构了侧边栏为悬浮式玻璃面板,支持智能展开/收起交互
|
||||
- 实现了三层导航架构:轨道导航 + 分类菜单 + 面包屑导航
|
||||
- 全面升级了主题系统,采用CSS变量驱动的响应式设计
|
||||
- 优化了组件间的依赖关系和性能表现
|
||||
- 新增了工具箱功能模块,包含Tools和Operation图标的完整支持
|
||||
- 在侧边栏导航中添加了"工具箱"分类菜单项
|
||||
- 实现了luxsin-controller工具页面,提供设备数据同步功能
|
||||
- 更新了路由配置以支持新的工具箱路径
|
||||
- 增强了轨道导航系统,添加工具箱快捷访问入口
|
||||
- 完善了面包屑导航对工具箱页面的支持
|
||||
|
||||
## 目录
|
||||
1. [简介](#简介)
|
||||
@@ -44,6 +45,7 @@
|
||||
- **三层导航架构**:轨道导航 + 分类菜单 + 面包屑导航
|
||||
- **智能交互体验**:自动展开、悬停反馈、流畅过渡动画
|
||||
- **完整主题系统**:基于CSS变量的深色宇宙主题设计
|
||||
- **工具箱功能模块**:新增工具箱分类,集成设备管理工具
|
||||
|
||||
布局组件的核心特色包括:
|
||||
- **玻璃拟态设计**:backdrop-filter模糊效果与半透明背景
|
||||
@@ -52,6 +54,7 @@
|
||||
- **标签页管理**:多标签页浏览和持久化存储
|
||||
- **深色主题**:基于CSS变量的主题系统
|
||||
- **响应式适配**:针对不同屏幕尺寸的优化布局
|
||||
- **工具箱集成**:完整的工具箱功能模块,支持设备数据同步操作
|
||||
|
||||
## 项目结构
|
||||
|
||||
@@ -77,19 +80,21 @@ E --> O[model/]
|
||||
E --> P[ota/]
|
||||
E --> Q[share-code/]
|
||||
E --> R[system/]
|
||||
F --> S[index.js<br/>路由配置]
|
||||
G --> T[lux-theme.css<br/>主题样式]
|
||||
H --> U[tabs.js<br/>标签页工具]
|
||||
E --> S[toolbox/]
|
||||
S --> T[luxsin-controller/<br/>工具箱控制器]
|
||||
F --> U[index.js<br/>路由配置]
|
||||
G --> V[lux-theme.css<br/>主题样式]
|
||||
H --> W[tabs.js<br/>标签页工具]
|
||||
end
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:1-351](file://frontend/src/layout/index.vue#L1-L351)
|
||||
- [frontend/src/router/index.js:1-103](file://frontend/src/router/index.js#L1-L103)
|
||||
- [frontend/src/layout/index.vue:1-365](file://frontend/src/layout/index.vue#L1-L365)
|
||||
- [frontend/src/router/index.js:1-109](file://frontend/src/router/index.js#L1-L109)
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:1-351](file://frontend/src/layout/index.vue#L1-L351)
|
||||
- [frontend/src/router/index.js:1-103](file://frontend/src/router/index.js#L1-L103)
|
||||
- [frontend/src/layout/index.vue:1-365](file://frontend/src/layout/index.vue#L1-L365)
|
||||
- [frontend/src/router/index.js:1-109](file://frontend/src/router/index.js#L1-L109)
|
||||
|
||||
## 核心组件
|
||||
|
||||
@@ -117,13 +122,16 @@ N --> P[LuxMenu<br/>分类菜单]
|
||||
O --> Q[耳机管理图标]
|
||||
O --> R[升级管理图标]
|
||||
O --> S[分享码图标]
|
||||
P --> T[耳机管理子菜单]
|
||||
P --> U[升级管理子菜单]
|
||||
P --> V[分享码子菜单]
|
||||
O --> T[工具箱图标]
|
||||
P --> U[耳机管理子菜单]
|
||||
P --> V[升级管理子菜单]
|
||||
P --> W[分享码子菜单]
|
||||
P --> X[工具箱子菜单]
|
||||
X --> Y[luxsin-controller]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:2-146](file://frontend/src/layout/index.vue#L2-L146)
|
||||
- [frontend/src/layout/index.vue:2-102](file://frontend/src/layout/index.vue#L2-L102)
|
||||
|
||||
### 组件层次结构
|
||||
|
||||
@@ -157,18 +165,31 @@ class ChangePasswordDialog {
|
||||
+visible : Ref
|
||||
+render()
|
||||
}
|
||||
class LuxsinController {
|
||||
+deviceIp : Ref
|
||||
+syncDataLoading : Ref
|
||||
+syncPeqLoading : Ref
|
||||
+rawResponse : Ref
|
||||
+decodedData : Ref
|
||||
+decodeError : Ref
|
||||
+handleSyncData()
|
||||
+handleSyncPeq()
|
||||
+doFetch()
|
||||
}
|
||||
LuxLayout --> SidebarLogo : "使用"
|
||||
LuxLayout --> TabsView : "使用"
|
||||
LuxLayout --> ChangePasswordDialog : "使用"
|
||||
TabsView --> LuxsinController : "渲染"
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:152-233](file://frontend/src/layout/index.vue#L152-L233)
|
||||
- [frontend/src/layout/index.vue:163-246](file://frontend/src/layout/index.vue#L163-L246)
|
||||
- [frontend/src/components/SidebarLogo.vue:52-58](file://frontend/src/components/SidebarLogo.vue#L52-L58)
|
||||
- [frontend/src/components/TabsView.vue:55-63](file://frontend/src/components/TabsView.vue#L55-L63)
|
||||
- [frontend/src/views/toolbox/luxsin-controller/index.vue:73-168](file://frontend/src/views/toolbox/luxsin-controller/index.vue#L73-L168)
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:152-233](file://frontend/src/layout/index.vue#L152-L233)
|
||||
- [frontend/src/layout/index.vue:163-246](file://frontend/src/layout/index.vue#L163-L246)
|
||||
|
||||
## 架构概览
|
||||
|
||||
@@ -183,21 +204,23 @@ participant Router as Vue Router
|
||||
participant Layout as 布局组件
|
||||
participant Tabs as 标签页组件
|
||||
participant View as 页面视图
|
||||
User->>Rail : 点击轨道图标
|
||||
participant Toolbox as 工具箱
|
||||
User->>Rail : 点击工具箱图标
|
||||
Rail->>Layout : handleRailClick()
|
||||
Layout->>Layout : isSidebarCollapsed = false
|
||||
Note over Layout : 自动展开侧边栏
|
||||
User->>Menu : 选择菜单项
|
||||
Menu->>Router : 路由跳转
|
||||
User->>Menu : 选择工具箱菜单
|
||||
Menu->>Router : 路由跳转 /toolbox/luxsin-controller
|
||||
Router->>Layout : 加载布局
|
||||
Layout->>Tabs : 渲染标签页
|
||||
Tabs->>View : 加载页面内容
|
||||
View-->>User : 显示页面
|
||||
Tabs->>Toolbox : 加载工具箱页面
|
||||
Toolbox->>View : 显示设备控制界面
|
||||
View-->>User : 显示工具箱功能
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:195-197](file://frontend/src/layout/index.vue#L195-L197)
|
||||
- [frontend/src/router/index.js:76-100](file://frontend/src/router/index.js#L76-L100)
|
||||
- [frontend/src/layout/index.vue:208-210](file://frontend/src/layout/index.vue#L208-L210)
|
||||
- [frontend/src/router/index.js:68-72](file://frontend/src/router/index.js#L68-L72)
|
||||
|
||||
### 数据流架构
|
||||
|
||||
@@ -210,19 +233,24 @@ B --> |否| E[路由变化监听]
|
||||
E --> F[激活菜单项计算]
|
||||
F --> G[面包屑标题计算]
|
||||
G --> H[侧边栏展开状态]
|
||||
I[页面内容] --> J[标签页管理]
|
||||
J --> K[会话存储持久化]
|
||||
K --> L[页面缓存控制]
|
||||
M[用户菜单] --> N[权限检查]
|
||||
N --> O[功能访问控制]
|
||||
O --> P[页面跳转]
|
||||
I[工具箱功能] --> J[设备IP输入]
|
||||
J --> K[数据同步请求]
|
||||
K --> L[Base64解码处理]
|
||||
L --> M[JSON结果展示]
|
||||
N[页面内容] --> O[标签页管理]
|
||||
O --> P[会话存储持久化]
|
||||
P --> Q[页面缓存控制]
|
||||
R[用户菜单] --> S[权限检查]
|
||||
S --> T[功能访问控制]
|
||||
T --> U[页面跳转]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:174-212](file://frontend/src/layout/index.vue#L174-L212)
|
||||
- [frontend/src/layout/index.vue:185-199](file://frontend/src/layout/index.vue#L185-L199)
|
||||
- [frontend/src/views/toolbox/luxsin-controller/index.vue:126-168](file://frontend/src/views/toolbox/luxsin-controller/index.vue#L126-L168)
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:174-212](file://frontend/src/layout/index.vue#L174-L212)
|
||||
- [frontend/src/layout/index.vue:185-199](file://frontend/src/layout/index.vue#L185-L199)
|
||||
|
||||
## 详细组件分析
|
||||
|
||||
@@ -250,107 +278,150 @@ end
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:2-146](file://frontend/src/layout/index.vue#L2-L146)
|
||||
- [frontend/src/layout/index.vue:2-105](file://frontend/src/layout/index.vue#L2-L105)
|
||||
- [frontend/src/styles/lux-theme.css:80-151](file://frontend/src/styles/lux-theme.css#L80-L151)
|
||||
|
||||
#### 智能导航系统实现
|
||||
|
||||
布局组件实现了智能化的三层导航系统:
|
||||
布局组件实现了智能化的四层导航系统:
|
||||
|
||||
1. **轨道导航层**:轻量化的图标导航,点击后自动展开侧边栏
|
||||
2. **主菜单层**:分类化的三级菜单结构,支持展开/收起
|
||||
2. **主菜单层**:分类化的四级菜单结构,支持展开/收起
|
||||
3. **面包屑导航层**:动态生成面包屑路径,提供清晰的页面定位
|
||||
4. **工具箱集成层**:专门的工具箱功能模块,提供设备管理工具
|
||||
|
||||
**更新** 轨道导航采用普通锚元素配合点击处理器,提供了更灵活的导航行为和更好的用户体验。
|
||||
**更新** 轨道导航现在包含四个主要功能入口:耳机管理、升级管理、分享码和工具箱,每个都配有相应的图标和标题。
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:22-91](file://frontend/src/layout/index.vue#L22-L91)
|
||||
- [frontend/src/layout/index.vue:22-102](file://frontend/src/layout/index.vue#L22-L102)
|
||||
|
||||
### 侧边栏组件分析
|
||||
### 工具箱功能模块分析
|
||||
|
||||
#### 创新的双层设计
|
||||
#### 新增的工具箱分类
|
||||
|
||||
侧边栏采用了创新的玻璃拟态双层设计:
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class SidebarGlass {
|
||||
+width : 64px/220px
|
||||
+backdropFilter : blur(20px)
|
||||
+backgroundColor : rgba(15,23,42,0.60)
|
||||
+borderRight : 1px solid rgba(255,255,255,0.08)
|
||||
+transition : width 0.30s ease
|
||||
+boxShadow : 多层阴影效果
|
||||
}
|
||||
class SidebarRail {
|
||||
+position : absolute
|
||||
+visibility : hidden/visible
|
||||
+opacity : 0/1
|
||||
+pointerEvents : none/auto
|
||||
+railNavItems : Array
|
||||
}
|
||||
class SidebarLogo {
|
||||
+collapsed : Boolean
|
||||
+animation : slide/fade
|
||||
+responsive : true
|
||||
+gradientText : 渐变色文字
|
||||
}
|
||||
class SidebarNavWrap {
|
||||
+position : relative
|
||||
+overflow : hidden
|
||||
+flex : 1
|
||||
}
|
||||
class LuxMenu {
|
||||
+expanded : true/false
|
||||
+activeItem : highlight
|
||||
+hoverEffect : gradient
|
||||
+elSubMenus : Array
|
||||
}
|
||||
SidebarGlass --> SidebarLogo
|
||||
SidebarGlass --> SidebarNavWrap
|
||||
SidebarNavWrap --> SidebarRail
|
||||
SidebarNavWrap --> LuxMenu
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:10-93](file://frontend/src/layout/index.vue#L10-L93)
|
||||
- [frontend/src/styles/lux-theme.css:156-252](file://frontend/src/styles/lux-theme.css#L156-L252)
|
||||
|
||||
#### 智能交互逻辑
|
||||
|
||||
侧边栏的交互逻辑通过Vue的响应式系统实现,新增了智能展开功能:
|
||||
工具箱功能模块作为第四大功能分类,提供了设备管理和数据同步能力:
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[鼠标悬停] --> B{isSidebarCollapsed}
|
||||
B --> |true| C[设置为false]
|
||||
B --> |false| D[保持状态]
|
||||
E[鼠标离开] --> F{isSidebarCollapsed}
|
||||
F --> |false| G[设置为true]
|
||||
F --> |true| H[保持状态]
|
||||
I[轨道导航点击] --> J[handleRailClick()]
|
||||
J --> K[强制展开侧边栏]
|
||||
K --> L[设置isSidebarCollapsed = false]
|
||||
M[菜单点击] --> N[更新activeMenu]
|
||||
N --> O[同步面包屑]
|
||||
O --> P[更新openedMenus]
|
||||
A[工具箱分类] --> B[luxsin-controller]
|
||||
B --> C[设备IP输入]
|
||||
B --> D[数据同步按钮]
|
||||
B --> E[PEQ同步按钮]
|
||||
C --> F[设备连接]
|
||||
D --> G[获取设备信息]
|
||||
E --> H[同步PEQ配置]
|
||||
G --> I[Base64解码]
|
||||
H --> I
|
||||
I --> J[JSON格式化显示]
|
||||
J --> K[原始响应查看]
|
||||
J --> L[解码结果展示]
|
||||
J --> M[错误信息提示]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:13-14](file://frontend/src/layout/index.vue#L13-L14)
|
||||
- [frontend/src/layout/index.vue:195-197](file://frontend/src/layout/index.vue#L195-L197)
|
||||
- [frontend/src/layout/index.vue:181-187](file://frontend/src/layout/index.vue#L181-L187)
|
||||
- [frontend/src/layout/index.vue:92-101](file://frontend/src/layout/index.vue#L92-L101)
|
||||
- [frontend/src/views/toolbox/luxsin-controller/index.vue:1-70](file://frontend/src/views/toolbox/luxsin-controller/index.vue#L1-L70)
|
||||
|
||||
**更新** 新增了`handleRailClick()`函数,当用户点击轨道导航图标时,会自动展开侧边栏,提供更好的用户体验。
|
||||
#### 工具箱页面功能特性
|
||||
|
||||
luxsin-controller页面实现了完整的设备数据同步功能:
|
||||
|
||||
1. **设备连接管理**:支持输入设备IP地址进行连接
|
||||
2. **数据同步操作**:提供基础数据同步和PEQ配置同步
|
||||
3. **响应数据处理**:自定义Base64解码算法处理设备返回数据
|
||||
4. **结果可视化**:同时显示原始响应和解码后的JSON格式
|
||||
5. **错误处理机制**:完善的错误提示和异常处理
|
||||
|
||||
**更新** 工具箱模块引入了全新的Tools和Operation图标,为设备管理功能提供了直观的视觉标识。
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:10-93](file://frontend/src/layout/index.vue#L10-L93)
|
||||
- [frontend/src/views/toolbox/luxsin-controller/index.vue:73-168](file://frontend/src/views/toolbox/luxsin-controller/index.vue#L73-L168)
|
||||
|
||||
### 图标系统集成
|
||||
|
||||
#### 新增图标支持
|
||||
|
||||
布局组件现在支持完整的图标系统,包括新增的工具箱相关图标:
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "图标导入"
|
||||
A["@element-plus/icons-vue"] --> B[Headset]
|
||||
A --> C[Collection]
|
||||
A --> D[List]
|
||||
A --> E[Upload]
|
||||
A --> F[Document]
|
||||
A --> G[Share]
|
||||
A --> H[User]
|
||||
A --> I[Warning]
|
||||
A --> J[Aim]
|
||||
A --> K[Tools]
|
||||
A --> L[Operation]
|
||||
end
|
||||
subgraph "图标应用"
|
||||
K --> M[工具箱分类图标]
|
||||
L --> N[luxsin-controller菜单图标]
|
||||
M --> O[轨道导航图标]
|
||||
N --> P[菜单项图标]
|
||||
end
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:167](file://frontend/src/layout/index.vue#L167)
|
||||
- [frontend/src/layout/index.vue:94-98](file://frontend/src/layout/index.vue#L94-L98)
|
||||
|
||||
#### 图标使用规范
|
||||
|
||||
所有图标都遵循统一的命名和使用规范:
|
||||
- 分类图标使用较大的尺寸(默认大小)
|
||||
- 菜单项图标使用较小的尺寸
|
||||
- 轨道导航图标统一为18px
|
||||
- 图标颜色跟随主题变量自动适配
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:167](file://frontend/src/layout/index.vue#L167)
|
||||
|
||||
### 路由配置更新
|
||||
|
||||
#### 工具箱路由定义
|
||||
|
||||
路由系统已更新以支持新的工具箱功能:
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[根路由 /] --> B[Layout组件]
|
||||
B --> C[Home 首页]
|
||||
B --> D[Brand 品牌管理]
|
||||
B --> E[Model 型号管理]
|
||||
B --> F[Ota OTA管理]
|
||||
B --> G[Blacklist 黑名单]
|
||||
B --> H[OtaTargetDevice 定向升级]
|
||||
B --> I[ShareCodeLog 分享日志]
|
||||
B --> J[SystemUsers 账号管理]
|
||||
B --> K[LuxsinController 工具箱控制器]
|
||||
K --> L[/toolbox/luxsin-controller]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/router/index.js:68-72](file://frontend/src/router/index.js#L68-L72)
|
||||
|
||||
#### 路由元数据配置
|
||||
|
||||
工具箱路由包含了完整的元数据配置:
|
||||
- **路径**:`/toolbox/luxsin-controller`
|
||||
- **名称**:`LuxsinController`
|
||||
- **标题**:`luxsin-controller`
|
||||
- **图标**:`tools`
|
||||
- **懒加载**:支持组件按需加载
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/router/index.js:68-72](file://frontend/src/router/index.js#L68-L72)
|
||||
|
||||
### 导航分类重构
|
||||
|
||||
#### 三大功能模块
|
||||
#### 四大功能模块
|
||||
|
||||
导航系统重构为三个主要功能模块:
|
||||
导航系统现已重构为四个主要功能模块:
|
||||
|
||||
1. **耳机管理模块** (`index="1"`)
|
||||
- 品牌管理 (`/brand`)
|
||||
@@ -364,6 +435,9 @@ O --> P[更新openedMenus]
|
||||
3. **分享码模块** (`index="share-code"`)
|
||||
- 分享日志 (`/share-code/log`)
|
||||
|
||||
4. **工具箱模块** (`index="toolbox"`)
|
||||
- luxsin-controller (`/toolbox/luxsin-controller`)
|
||||
|
||||
#### 智能菜单展开逻辑
|
||||
|
||||
```mermaid
|
||||
@@ -372,18 +446,20 @@ A[路由路径] --> B{路径匹配}
|
||||
B --> |/brand 或 /model| C[展开耳机管理]
|
||||
B --> |/ota 或 /blacklist 或 /ota-target-device| D[展开升级管理]
|
||||
B --> |/share-code/*| E[展开分享码]
|
||||
B --> |其他路径| F[不展开任何菜单]
|
||||
C --> G[openedMenus = ['1']]
|
||||
D --> H[openedMenus = ['upgrade']]
|
||||
E --> I[openedMenus = ['share-code']]
|
||||
F --> J[openedMenus = []]
|
||||
B --> |/toolbox/*| F[展开工具箱]
|
||||
B --> |其他路径| G[不展开任何菜单]
|
||||
C --> H[openedMenus = ['1']]
|
||||
D --> I[openedMenus = ['upgrade']]
|
||||
E --> J[openedMenus = ['share-code']]
|
||||
F --> K[openedMenus = ['toolbox']]
|
||||
G --> L[openedMenus = []]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:174-179](file://frontend/src/layout/index.vue#L174-L179)
|
||||
- [frontend/src/layout/index.vue:185-191](file://frontend/src/layout/index.vue#L185-L191)
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:49-90](file://frontend/src/layout/index.vue#L49-L90)
|
||||
- [frontend/src/layout/index.vue:50-101](file://frontend/src/layout/index.vue#L50-L101)
|
||||
|
||||
### 标签页组件分析
|
||||
|
||||
@@ -397,14 +473,15 @@ participant Route as 路由
|
||||
participant Tabs as 标签页组件
|
||||
participant Storage as 会话存储
|
||||
participant KeepAlive as 缓存管理
|
||||
participant Toolbox as 工具箱页面
|
||||
Route->>Tabs : 路由变化
|
||||
Tabs->>Tabs : upsertTab()
|
||||
Tabs->>Tabs : 更新activeKey
|
||||
Tabs->>Storage : persist()
|
||||
Note over Tabs,Storage : 持久化标签页状态
|
||||
Tabs->>KeepAlive : include更新
|
||||
KeepAlive->>Route : 渲染新页面
|
||||
Route-->>Tabs : 页面加载完成
|
||||
KeepAlive->>Toolbox : 加载工具箱页面
|
||||
Toolbox-->>Tabs : 页面加载完成
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
@@ -459,7 +536,7 @@ O --> P[沉浸式体验]
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/styles/lux-theme.css:11-78](file://frontend/src/styles/lux-theme.css#L11-L78)
|
||||
- [frontend/src/styles/lux-theme.css:98-129](file://frontend/src/styles/lux-theme.css#L98-L129)
|
||||
- [frontend/src/styles/lux-theme.css:98-129](file://frontend/src/styles/lux-theme.css#L98-129)
|
||||
|
||||
#### 样式覆盖策略
|
||||
|
||||
@@ -496,24 +573,26 @@ A --> C[TabsView]
|
||||
A --> D[ChangePasswordDialog]
|
||||
E[Router] --> F[Layout]
|
||||
F --> G[Views]
|
||||
H[ElementPlus] --> I[UI组件库]
|
||||
I --> J[Layout组件]
|
||||
I --> K[Menu组件]
|
||||
I --> L[Dropdown组件]
|
||||
M[Vue Router] --> N[路由导航]
|
||||
N --> O[权限控制]
|
||||
P[Auth Utils] --> Q[用户认证]
|
||||
Q --> R[权限验证]
|
||||
S[Icons] --> T[Headset, Upload, Share等图标]
|
||||
T --> U[轨道导航图标]
|
||||
T --> V[菜单项图标]
|
||||
W[Theme System] --> X[CSS Variables]
|
||||
X --> Y[Glass Effects]
|
||||
Y --> Z[Visual Consistency]
|
||||
G --> H[LuxsinController]
|
||||
I[ElementPlus] --> J[UI组件库]
|
||||
J --> K[Layout组件]
|
||||
J --> L[Menu组件]
|
||||
J --> M[Dropdown组件]
|
||||
N[Vue Router] --> O[路由导航]
|
||||
O --> P[权限控制]
|
||||
Q[Auth Utils] --> R[用户认证]
|
||||
R --> S[权限验证]
|
||||
T[Icons] --> U[Headset, Upload, Share等图标]
|
||||
T --> V[Tools, Operation新图标]
|
||||
U --> W[轨道导航图标]
|
||||
V --> X[工具箱图标]
|
||||
Y[Theme System] --> Z[CSS Variables]
|
||||
Z --> AA[Glass Effects]
|
||||
AA --> AB[Visual Consistency]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:156-160](file://frontend/src/layout/index.vue#L156-L160)
|
||||
- [frontend/src/layout/index.vue:163-171](file://frontend/src/layout/index.vue#L163-L171)
|
||||
- [frontend/src/router/index.js:1-5](file://frontend/src/router/index.js#L1-L5)
|
||||
|
||||
### 外部依赖分析
|
||||
@@ -527,10 +606,10 @@ Y --> Z[Visual Consistency]
|
||||
| 路由管理 | vue-router | 最新版 | 页面导航 |
|
||||
| 图标系统 | @element-plus/icons-vue | 最新版 | 图标组件 |
|
||||
|
||||
**更新** 新增了多个图标组件的使用,包括Headset、Upload、Share等用于新的导航系统。
|
||||
**更新** 新增了Tools和Operation图标的使用,用于工具箱功能的视觉标识。
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:156-160](file://frontend/src/layout/index.vue#L156-L160)
|
||||
- [frontend/src/layout/index.vue:167](file://frontend/src/layout/index.vue#L167)
|
||||
- [frontend/src/router/index.js:1-5](file://frontend/src/router/index.js#L1-L5)
|
||||
|
||||
## 性能考虑
|
||||
@@ -540,11 +619,12 @@ Y --> Z[Visual Consistency]
|
||||
布局组件在性能方面采用了多项优化策略:
|
||||
|
||||
1. **条件渲染**:侧边栏导航条和菜单根据状态动态显示
|
||||
2. **懒加载**:路由级别的组件懒加载
|
||||
2. **懒加载**:路由级别的组件懒加载,包括工具箱页面
|
||||
3. **缓存机制**:标签页内容的KeepAlive缓存
|
||||
4. **事件节流**:侧边栏交互事件的处理
|
||||
5. **计算属性优化**:使用computed缓存导航状态计算结果
|
||||
6. **GPU加速**:CSS变换和透明度动画利用硬件加速
|
||||
7. **图标优化**:图标组件按需加载,减少初始包体积
|
||||
|
||||
### 内存管理
|
||||
|
||||
@@ -562,6 +642,8 @@ L[导航状态变化] --> M[响应式更新]
|
||||
M --> N[最小化重渲染]
|
||||
O[背景光球] --> P[静态CSS动画]
|
||||
P --> Q[无JavaScript开销]
|
||||
R[工具箱页面] --> S[独立组件加载]
|
||||
S --> T[按需资源加载]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
@@ -571,6 +653,20 @@ P --> Q[无JavaScript开销]
|
||||
|
||||
### 常见问题及解决方案
|
||||
|
||||
#### 工具箱功能问题
|
||||
|
||||
**问题**:工具箱菜单无法点击
|
||||
**原因**:路由配置错误或组件导入失败
|
||||
**解决**:检查`/toolbox/luxsin-controller`路由配置和组件路径
|
||||
|
||||
**问题**:设备连接失败
|
||||
**原因**:设备IP地址格式错误或网络不可达
|
||||
**解决**:验证IP地址格式,检查网络连接和设备服务状态
|
||||
|
||||
**问题**:数据解码错误
|
||||
**原因**:Base64编码格式不匹配
|
||||
**解决**:检查设备返回的数据格式,确认自定义Base64编码表
|
||||
|
||||
#### 导航系统问题
|
||||
|
||||
**问题**:轨道导航点击无反应
|
||||
@@ -581,9 +677,9 @@ P --> Q[无JavaScript开销]
|
||||
**原因**:`isSidebarCollapsed`状态异常
|
||||
**解决**:检查watch监听器和状态更新逻辑
|
||||
|
||||
**问题**:菜单分类不正确
|
||||
**问题**:工具箱分类不展开
|
||||
**原因**:`resolveOpenedMenus`函数路径匹配错误
|
||||
**解决**:验证路由路径前缀匹配逻辑
|
||||
**解决**:验证`/toolbox`路径前缀匹配逻辑
|
||||
|
||||
#### 布局显示异常
|
||||
|
||||
@@ -599,6 +695,20 @@ P --> Q[无JavaScript开销]
|
||||
**原因**:浏览器不支持backdrop-filter
|
||||
**解决**:添加polyfill或降级方案
|
||||
|
||||
#### 图标显示问题
|
||||
|
||||
**问题**:工具箱图标不显示
|
||||
**原因**:Tools或Operation图标导入失败
|
||||
**解决**:检查`@element-plus/icons-vue`包安装和图标名称拼写
|
||||
|
||||
**问题**:图标颜色异常
|
||||
**原因**:主题变量冲突
|
||||
**解决**:检查CSS变量定义和继承关系
|
||||
|
||||
**问题**:图标尺寸不正确
|
||||
**原因**:样式覆盖导致
|
||||
**解决**:检查scoped样式和全局样式优先级
|
||||
|
||||
#### 性能问题
|
||||
|
||||
**问题**:页面切换卡顿
|
||||
@@ -614,9 +724,9 @@ P --> Q[无JavaScript开销]
|
||||
**解决**:减少动画帧率或使用CSS动画替代JS动画
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/layout/index.vue:195-197](file://frontend/src/layout/index.vue#L195-L197)
|
||||
- [frontend/src/layout/index.vue:174-187](file://frontend/src/layout/index.vue#L174-L187)
|
||||
- [frontend/src/components/TabsView.vue:276-286](file://frontend/src/components/TabsView.vue#L276-L286)
|
||||
- [frontend/src/layout/index.vue:208-210](file://frontend/src/layout/index.vue#L208-L210)
|
||||
- [frontend/src/layout/index.vue:185-191](file://frontend/src/layout/index.vue#L185-L191)
|
||||
- [frontend/src/views/toolbox/luxsin-controller/index.vue:126-168](file://frontend/src/views/toolbox/luxsin-controller/index.vue#L126-L168)
|
||||
|
||||
## 结论
|
||||
|
||||
@@ -629,14 +739,18 @@ P --> Q[无JavaScript开销]
|
||||
5. **可维护性**:清晰的组件分离和模块化设计
|
||||
6. **可扩展性**:灵活的主题系统和配置选项
|
||||
7. **性能优化**:合理的渲染策略和资源管理
|
||||
8. **工具箱集成**:完整的设备管理工具模块,支持数据同步操作
|
||||
|
||||
**最新更新亮点**:
|
||||
- **玻璃拟态设计系统**:全面的backdrop-filter效果和半透明背景
|
||||
- **动态背景光球**:三个渐变光球的动画效果营造沉浸感
|
||||
- **悬浮式侧边栏**:独立的玻璃面板设计,支持智能展开/收起
|
||||
- **简化的导航结构**:从六个独立菜单项重构为三个主要分类,提升了导航效率
|
||||
- **简化的导航结构**:从六个独立菜单项重构为四个主要分类,提升了导航效率
|
||||
- **创新的轨道导航**:轻量化的图标导航条,提供快速访问入口
|
||||
- **智能的用户体验**:点击轨道图标自动展开侧边栏,减少操作步骤
|
||||
- **灵活的导航实现**:采用普通锚元素配合点击处理器,提供更灵活的导航行为
|
||||
- **工具箱功能模块**:新增完整的工具箱分类,集成设备数据同步功能
|
||||
- **图标系统增强**:支持Tools和Operation等新图标,提升视觉识别度
|
||||
- **路由配置完善**:新增工具箱路由,支持懒加载和权限控制
|
||||
|
||||
该布局组件为整个Dashboard系统提供了坚实的基础,支持未来功能的扩展和定制化需求。通过合理的架构设计和实现细节,确保了系统的稳定性和可维护性。新的玻璃拟态设计不仅提升了用户体验,也为后续的功能扩展提供了良好的架构基础。
|
||||
该布局组件为整个Dashboard系统提供了坚实的基础,支持未来功能的扩展和定制化需求。通过合理的架构设计和实现细节,确保了系统的稳定性和可维护性。新的玻璃拟态设计不仅提升了用户体验,也为后续的功能扩展提供了良好的架构基础。工具箱模块的加入进一步丰富了系统功能,为设备管理和运维工作提供了强大的工具支持。
|
||||
Reference in New Issue
Block a user