新增 luxsin-controller,更新 wiki
This commit is contained in:
@@ -16,11 +16,12 @@
|
||||
|
||||
## 更新摘要
|
||||
**所做更改**
|
||||
- 更新了侧边栏导航系统架构,从六个独立菜单项简化为三个主要分类
|
||||
- 新增了侧边栏轨道导航(Rail Navigation)功能,提供快速展开侧边栏的交互体验
|
||||
- 改进了导航链接实现方式,采用普通锚元素配合点击处理器替代Vue Router链接
|
||||
- 增强了用户体验,实现了自动展开侧边栏的智能交互逻辑
|
||||
- 更新了导航分类结构,重新组织了耳机管理、升级管理和分享码三大功能模块
|
||||
- 更新了主布局组件以支持全新的玻璃拟态设计系统和深色宇宙主题
|
||||
- 新增了动态背景光球效果,营造沉浸式视觉体验
|
||||
- 重构了侧边栏为悬浮式玻璃面板,支持智能展开/收起交互
|
||||
- 实现了三层导航架构:轨道导航 + 分类菜单 + 面包屑导航
|
||||
- 全面升级了主题系统,采用CSS变量驱动的响应式设计
|
||||
- 优化了组件间的依赖关系和性能表现
|
||||
|
||||
## 目录
|
||||
1. [简介](#简介)
|
||||
@@ -37,14 +38,17 @@
|
||||
|
||||
本项目采用现代化的Vue 3 + Element Plus前端技术栈构建,布局组件是整个系统的骨架结构,负责组织页面的整体架构。该布局组件实现了响应式设计,支持桌面端和移动端的自适应布局,提供了完整的导航体系和主题适配功能。
|
||||
|
||||
**最新更新** 导航系统进行了重大改进,采用了创新的三层导航架构:
|
||||
- **侧边栏轨道导航**:轻量化的图标导航条,提供快速访问入口
|
||||
- **主菜单导航**:分类化的三级菜单结构,包含耳机管理、升级管理和分享码三大模块
|
||||
- **顶部面包屑导航**:动态生成的路径导航,增强用户定位能力
|
||||
**最新更新亮点** 布局组件已全面升级为玻璃拟态设计风格:
|
||||
- **沉浸式背景系统**:动态光球动画营造深邃的宇宙空间感
|
||||
- **悬浮式侧边栏**:采用backdrop-filter实现真实的毛玻璃效果
|
||||
- **三层导航架构**:轨道导航 + 分类菜单 + 面包屑导航
|
||||
- **智能交互体验**:自动展开、悬停反馈、流畅过渡动画
|
||||
- **完整主题系统**:基于CSS变量的深色宇宙主题设计
|
||||
|
||||
布局组件的核心特色包括:
|
||||
- **三层导航系统**:轨道导航 + 分类菜单 + 面包屑导航
|
||||
- **智能侧边栏**:支持展开/收起的玻璃拟态设计,具备自动展开功能
|
||||
- **玻璃拟态设计**:backdrop-filter模糊效果与半透明背景
|
||||
- **动态背景系统**:三个渐变光球的动画效果
|
||||
- **智能侧边栏**:支持展开/收起的玻璃面板,具备自动展开功能
|
||||
- **标签页管理**:多标签页浏览和持久化存储
|
||||
- **深色主题**:基于CSS变量的主题系统
|
||||
- **响应式适配**:针对不同屏幕尺寸的优化布局
|
||||
@@ -80,11 +84,11 @@ end
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:1-349](file://frontend/src/layout/index.vue#L1-L349)
|
||||
- [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-349](file://frontend/src/layout/index.vue#L1-L349)
|
||||
- [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)
|
||||
|
||||
## 核心组件
|
||||
@@ -95,27 +99,31 @@ end
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[LuxShell<br/>主容器] --> B[LuxShellBody<br/>主体容器]
|
||||
B --> C[ElContainer<br/>右侧列容器]
|
||||
C --> D[ElHeader<br/>顶部导航栏]
|
||||
C --> E[ElMain<br/>主要内容区]
|
||||
C --> F[ElFooter<br/>底部版权区]
|
||||
B --> G[ElAside<br/>侧边栏容器]
|
||||
G --> H[SidebarInner<br/>侧边栏内部容器]
|
||||
H --> I[SidebarLogo<br/>Logo组件]
|
||||
H --> J[SidebarNavWrap<br/>导航包装器]
|
||||
J --> K[SidebarRail<br/>轨道导航]
|
||||
J --> L[LuxMenu<br/>分类菜单]
|
||||
K --> M[耳机管理图标]
|
||||
K --> N[升级管理图标]
|
||||
K --> O[分享码图标]
|
||||
L --> P[耳机管理子菜单]
|
||||
L --> Q[升级管理子菜单]
|
||||
L --> R[分享码子菜单]
|
||||
A[LuxShell<br/>主容器] --> B[LuxShellBg<br/>背景层]
|
||||
B --> C[LuxOrb1<br/>青色光球]
|
||||
B --> D[LuxOrb2<br/>紫色光球]
|
||||
B --> E[LuxOrb3<br/>珊瑚色光球]
|
||||
A --> F[LuxShellBody<br/>主体容器]
|
||||
F --> G[ElContainer<br/>右侧列容器]
|
||||
G --> H[ElHeader<br/>顶部导航栏]
|
||||
G --> I[ElMain<br/>主要内容区]
|
||||
G --> J[ElFooter<br/>底部版权区]
|
||||
F --> K[ElAside<br/>侧边栏容器]
|
||||
K --> L[SidebarInner<br/>侧边栏内部容器]
|
||||
L --> M[SidebarLogo<br/>Logo组件]
|
||||
L --> N[SidebarNavWrap<br/>导航包装器]
|
||||
N --> O[SidebarRail<br/>轨道导航]
|
||||
N --> P[LuxMenu<br/>分类菜单]
|
||||
O --> Q[耳机管理图标]
|
||||
O --> R[升级管理图标]
|
||||
O --> S[分享码图标]
|
||||
P --> T[耳机管理子菜单]
|
||||
P --> U[升级管理子菜单]
|
||||
P --> V[分享码子菜单]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:9-146](file://frontend/src/layout/index.vue#L9-L146)
|
||||
- [frontend/src/layout/index.vue:2-146](file://frontend/src/layout/index.vue#L2-L146)
|
||||
|
||||
### 组件层次结构
|
||||
|
||||
@@ -220,38 +228,30 @@ O --> P[页面跳转]
|
||||
|
||||
### 主布局组件详解
|
||||
|
||||
#### 三层导航结构设计
|
||||
#### 玻璃拟态设计系统
|
||||
|
||||
主布局组件采用了创新的三层导航架构,通过CSS Grid和Flexbox实现灵活的布局:
|
||||
主布局组件采用了全新的玻璃拟态设计系统,通过CSS变量和backdrop-filter实现:
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "轨道导航层"
|
||||
A[SidebarRail<br/>64px宽度] --> B[三个分类图标]
|
||||
B --> C[耳机管理图标]
|
||||
B --> D[升级管理图标]
|
||||
B --> E[分享码图标]
|
||||
subgraph "背景层"
|
||||
A[LuxShellBg<br/>绝对定位背景] --> B[LuxOrb1<br/>青色光球]
|
||||
A --> C[LuxOrb2<br/>紫色光球]
|
||||
A --> D[LuxOrb3<br/>珊瑚色光球]
|
||||
end
|
||||
subgraph "主菜单层"
|
||||
F[LuxMenu<br/>220px宽度] --> G[耳机管理子菜单]
|
||||
F --> H[升级管理子菜单]
|
||||
F --> I[分享码子菜单]
|
||||
G --> J[品牌管理]
|
||||
G --> K[型号管理]
|
||||
H --> L[OTA管理]
|
||||
H --> M[黑名单管理]
|
||||
H --> N[定向升级]
|
||||
I --> O[分享日志]
|
||||
end
|
||||
subgraph "面包屑层"
|
||||
P[顶部导航] --> Q[动态路径生成]
|
||||
Q --> R[当前页面标识]
|
||||
subgraph "内容层"
|
||||
E[LuxShellBody<br/>相对定位主体] --> F[ElContainer<br/>Flex布局容器]
|
||||
F --> G[ElAside<br/>悬浮侧边栏]
|
||||
F --> H[ElContainer<br/>右侧内容区]
|
||||
H --> I[ElHeader<br/>玻璃头部]
|
||||
H --> J[ElMain<br/>透明主内容]
|
||||
H --> K[ElFooter<br/>玻璃底部]
|
||||
end
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:22-91](file://frontend/src/layout/index.vue#L22-L91)
|
||||
- [frontend/src/layout/index.vue:189-193](file://frontend/src/layout/index.vue#L189-L193)
|
||||
- [frontend/src/layout/index.vue:2-146](file://frontend/src/layout/index.vue#L2-L146)
|
||||
- [frontend/src/styles/lux-theme.css:80-151](file://frontend/src/styles/lux-theme.css#L80-L151)
|
||||
|
||||
#### 智能导航系统实现
|
||||
|
||||
@@ -276,10 +276,11 @@ end
|
||||
classDiagram
|
||||
class SidebarGlass {
|
||||
+width : 64px/220px
|
||||
+backdropFilter : blur(18px)
|
||||
+backgroundColor : rgba(15,23,42,0.6)
|
||||
+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
|
||||
@@ -292,6 +293,7 @@ class SidebarLogo {
|
||||
+collapsed : Boolean
|
||||
+animation : slide/fade
|
||||
+responsive : true
|
||||
+gradientText : 渐变色文字
|
||||
}
|
||||
class SidebarNavWrap {
|
||||
+position : relative
|
||||
@@ -312,7 +314,7 @@ SidebarNavWrap --> LuxMenu
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/layout/index.vue:10-93](file://frontend/src/layout/index.vue#L10-L93)
|
||||
- [frontend/src/styles/lux-theme.css:101-195](file://frontend/src/styles/lux-theme.css#L101-L195)
|
||||
- [frontend/src/styles/lux-theme.css:156-252](file://frontend/src/styles/lux-theme.css#L156-L252)
|
||||
|
||||
#### 智能交互逻辑
|
||||
|
||||
@@ -406,8 +408,8 @@ Route-->>Tabs : 页面加载完成
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/components/TabsView.vue:180-191](file://frontend/src/components/TabsView.vue#L180-L191)
|
||||
- [frontend/src/components/TabsView.vue:276-286](file://frontend/src/components/TabsView.vue#L276-L286)
|
||||
- [frontend/src/components/TabsView.vue:180-191](file://frontend/src/components/TabsView.vue#L180-191)
|
||||
- [frontend/src/components/TabsView.vue:276-286](file://frontend/src/components/TabsView.vue#L276-286)
|
||||
|
||||
#### 标签页持久化机制
|
||||
|
||||
@@ -427,34 +429,37 @@ K --> L[下次访问恢复]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/components/TabsView.vue:143-174](file://frontend/src/components/TabsView.vue#L143-L174)
|
||||
- [frontend/src/components/TabsView.vue:125-141](file://frontend/src/components/TabsView.vue#L125-L141)
|
||||
- [frontend/src/components/TabsView.vue:143-174](file://frontend/src/components/TabsView.vue#L143-174)
|
||||
- [frontend/src/components/TabsView.vue:125-141](file://frontend/src/components/TabsView.vue#L125-141)
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/components/TabsView.vue:55-287](file://frontend/src/components/TabsView.vue#L55-L287)
|
||||
|
||||
### 主题系统分析
|
||||
|
||||
#### 深色主题实现
|
||||
#### 玻璃拟态主题实现
|
||||
|
||||
项目采用了基于CSS变量的主题系统:
|
||||
项目采用了全新的玻璃拟态主题系统,基于CSS变量实现:
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
A[主题变量定义] --> B[:root变量]
|
||||
B --> C[--lux-page-bg: #0a0e14]
|
||||
B --> D[--lux-card-bg: #1e293b]
|
||||
B --> E[--lux-text-strong: #e2e8f0]
|
||||
F[组件样式] --> G[使用CSS变量]
|
||||
G --> H[统一颜色管理]
|
||||
G --> I[主题一致性]
|
||||
J[运行时切换] --> K[变量值替换]
|
||||
K --> L[即时主题更新]
|
||||
B --> D[--lux-glass-bg-card: rgba(30,41,59,0.55)]
|
||||
B --> E[--lux-blur-lg: blur(20px)]
|
||||
B --> F[--lux-cyan: #38bdf8]
|
||||
G[组件样式] --> H[使用CSS变量]
|
||||
H --> I[统一颜色管理]
|
||||
H --> J[主题一致性]
|
||||
K[运行时切换] --> L[变量值替换]
|
||||
L --> M[即时主题更新]
|
||||
N[背景光球] --> O[动态渐变效果]
|
||||
O --> P[沉浸式体验]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/styles/lux-theme.css:10-25](file://frontend/src/styles/lux-theme.css#L10-L25)
|
||||
- [frontend/src/styles/lux-theme.css:27-35](file://frontend/src/styles/lux-theme.css#L27-L35)
|
||||
- [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)
|
||||
|
||||
#### 样式覆盖策略
|
||||
|
||||
@@ -468,14 +473,17 @@ E --> F[子组件样式覆盖]
|
||||
G[主题变量] --> H[--lux-cyan: #38bdf8]
|
||||
H --> I[统一色彩规范]
|
||||
I --> J[一致的视觉体验]
|
||||
K[玻璃效果] --> L[backdrop-filter]
|
||||
L --> M[模糊背景]
|
||||
M --> N[现代UI风格]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
- [frontend/src/styles/lux-theme.css:352-377](file://frontend/src/styles/lux-theme.css#L352-L377)
|
||||
- [frontend/src/layout/index.vue:330-336](file://frontend/src/layout/index.vue#L330-L336)
|
||||
- [frontend/src/styles/lux-theme.css:352-377](file://frontend/src/styles/lux-theme.css#L352-377)
|
||||
- [frontend/src/layout/index.vue:330-336](file://frontend/src/layout/index.vue#L330-336)
|
||||
|
||||
**章节来源**
|
||||
- [frontend/src/styles/lux-theme.css:1-471](file://frontend/src/styles/lux-theme.css#L1-L471)
|
||||
- [frontend/src/styles/lux-theme.css:1-800](file://frontend/src/styles/lux-theme.css#L1-L800)
|
||||
|
||||
## 依赖关系分析
|
||||
|
||||
@@ -499,6 +507,9 @@ 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]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
@@ -533,6 +544,7 @@ T --> V[菜单项图标]
|
||||
3. **缓存机制**:标签页内容的KeepAlive缓存
|
||||
4. **事件节流**:侧边栏交互事件的处理
|
||||
5. **计算属性优化**:使用computed缓存导航状态计算结果
|
||||
6. **GPU加速**:CSS变换和透明度动画利用硬件加速
|
||||
|
||||
### 内存管理
|
||||
|
||||
@@ -548,6 +560,8 @@ I[标签页切换] --> J[KeepAlive缓存]
|
||||
J --> K[避免重复渲染]
|
||||
L[导航状态变化] --> M[响应式更新]
|
||||
M --> N[最小化重渲染]
|
||||
O[背景光球] --> P[静态CSS动画]
|
||||
P --> Q[无JavaScript开销]
|
||||
```
|
||||
|
||||
**图表来源**
|
||||
@@ -581,6 +595,10 @@ M --> N[最小化重渲染]
|
||||
**原因**:路由配置错误
|
||||
**解决**:验证路由配置和组件导入
|
||||
|
||||
**问题**:玻璃效果不显示
|
||||
**原因**:浏览器不支持backdrop-filter
|
||||
**解决**:添加polyfill或降级方案
|
||||
|
||||
#### 性能问题
|
||||
|
||||
**问题**:页面切换卡顿
|
||||
@@ -591,6 +609,10 @@ M --> N[最小化重渲染]
|
||||
**原因**:事件监听器未清理
|
||||
**解决**:确保在组件卸载时清理所有监听器
|
||||
|
||||
**问题**:背景动画影响性能
|
||||
**原因**:光球动画过于复杂
|
||||
**解决**:减少动画帧率或使用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)
|
||||
@@ -600,17 +622,21 @@ M --> N[最小化重渲染]
|
||||
|
||||
本布局组件展现了现代前端开发的最佳实践,通过精心设计的架构实现了:
|
||||
|
||||
1. **创新的三层导航系统**:轨道导航 + 分类菜单 + 面包屑导航,提供丰富的导航体验
|
||||
2. **智能交互设计**:自动展开侧边栏、智能菜单展开、流畅的过渡动画
|
||||
3. **优秀的用户体验**:响应式设计和流畅的交互效果
|
||||
4. **可维护性**:清晰的组件分离和模块化设计
|
||||
5. **可扩展性**:灵活的主题系统和配置选项
|
||||
6. **性能优化**:合理的渲染策略和资源管理
|
||||
1. **创新的玻璃拟态设计**:backdrop-filter模糊效果与半透明背景营造现代感
|
||||
2. **沉浸式背景系统**:动态光球动画营造深邃的宇宙空间感
|
||||
3. **智能交互设计**:自动展开侧边栏、智能菜单展开、流畅的过渡动画
|
||||
4. **优秀的用户体验**:响应式设计和流畅的交互效果
|
||||
5. **可维护性**:清晰的组件分离和模块化设计
|
||||
6. **可扩展性**:灵活的主题系统和配置选项
|
||||
7. **性能优化**:合理的渲染策略和资源管理
|
||||
|
||||
**最新更新亮点**:
|
||||
- **玻璃拟态设计系统**:全面的backdrop-filter效果和半透明背景
|
||||
- **动态背景光球**:三个渐变光球的动画效果营造沉浸感
|
||||
- **悬浮式侧边栏**:独立的玻璃面板设计,支持智能展开/收起
|
||||
- **简化的导航结构**:从六个独立菜单项重构为三个主要分类,提升了导航效率
|
||||
- **创新的轨道导航**:轻量化的图标导航条,提供快速访问入口
|
||||
- **智能的用户体验**:点击轨道图标自动展开侧边栏,减少操作步骤
|
||||
- **灵活的导航实现**:采用普通锚元素配合点击处理器,提供更灵活的导航行为
|
||||
|
||||
该布局组件为整个Dashboard系统提供了坚实的基础,支持未来功能的扩展和定制化需求。通过合理的架构设计和实现细节,确保了系统的稳定性和可维护性。新的导航系统不仅提升了用户体验,也为后续的功能扩展提供了良好的架构基础。
|
||||
该布局组件为整个Dashboard系统提供了坚实的基础,支持未来功能的扩展和定制化需求。通过合理的架构设计和实现细节,确保了系统的稳定性和可维护性。新的玻璃拟态设计不仅提升了用户体验,也为后续的功能扩展提供了良好的架构基础。
|
||||
Reference in New Issue
Block a user