Files
dashboard/.qoder/repowiki/zh/content/前端组件/页面组件/首页仪表板.md
T
2026-07-20 18:39:33 +08:00

509 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 首页仪表板
<cite>
**本文引用的文件列表**
- [frontend/src/views/home/index.vue](file://frontend/src/views/home/index.vue)
- [frontend/src/views/home/modules/card-data.vue](file://frontend/src/views/home/modules/card-data.vue)
- [frontend/src/views/home/modules/header-banner.vue](file://frontend/src/views/home/modules/header-banner.vue)
- [frontend/src/views/home/modules/line-chart.vue](file://frontend/src/views/home/modules/line-chart.vue)
- [frontend/src/views/home/modules/pie-chart.vue](file://frontend/src/views/home/modules/pie-chart.vue)
- [frontend/src/views/home/modules/project-news.vue](file://frontend/src/views/home/modules/project-news.vue)
- [frontend/src/views/home/modules/creativity-banner.vue](file://frontend/src/views/home/modules/creativity-banner.vue)
- [frontend/src/service/api/dashboard.ts](file://frontend/src/service/api/dashboard.ts)
- [frontend/src/hooks/common/echarts.ts](file://frontend/src/hooks/common/echarts.ts)
- [frontend/src/store/modules/app/index.ts](file://frontend/src/store/modules/app/index.ts)
- [frontend/src/router/guard/route.ts](file://frontend/src/router/guard/route.ts)
- [frontend/src/layouts/base-layout/index.vue](file://frontend/src/layouts/base-layout/index.vue)
- [frontend/src/layouts/modules/global-header/index.vue](file://frontend/src/layouts/modules/global-header/index.vue)
- [frontend/src/layouts/modules/global-menu/index.vue](file://frontend/src/layouts/modules/global-menu/index.vue)
- [frontend/src/layouts/modules/global-tab/index.vue](file://frontend/src/layouts/modules/global-tab/index.vue)
- [frontend/src/theme/settings.ts](file://frontend/src/theme/settings.ts)
- [frontend/src/constants/env.ts](file://frontend/src/constants/env.ts)
- [backend/src/routes/dashboard.js](file://backend/src/routes/dashboard.js)
- [backend/src/utils/response.js](file://backend/src/utils/response.js)
- [backend/src/models/Model.js](file://backend/src/models/Model.js)
- [backend/src/models/Ota.js](file://backend/src/models/Ota.js)
</cite>
## 更新摘要
**变更内容**
- 首页仪表板进行了小幅更新,主要涉及导航元素优化和耳机管理相关组件的改进
- 更新了全局头部导航组件的用户交互体验
- 优化了侧边栏菜单系统的响应式行为
- 改进了标签页管理组件的性能表现
- 增强了主题切换功能的稳定性
## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构总览](#架构总览)
5. [组件详细分析](#组件详细分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考量](#性能考量)
8. [故障排查指南](#故障排查指南)
9. [结论](#结论)
10. [附录](#附录)
## 简介
本文件面向"首页仪表板"页面,系统性阐述其功能布局、数据展示机制、数据获取流程、响应式布局与样式定制、快捷入口配置与路由跳转、生命周期与错误处理、以及性能优化最佳实践。目标读者既包括前端开发者,也包括需要理解整体工作流的产品与运营人员。
**最新更新**:首页仪表板进行了小幅更新,重点优化了导航元素和耳机管理相关的仪表板组件。这些更新提升了用户交互体验,改进了系统稳定性和响应式性能,同时保持了原有的模块化架构设计和技术栈。
## 项目结构
首页位于前端单页应用中,采用 Vue 3 + TypeScript + Naive UI 组合,后端基于 Express + Sequelize 提供接口。首页通过模块化组件结构组织,每个功能模块独立封装,通过API获取"今日新增"数据,并在页面上以卡片网格和图表形式展示;同时提供快捷入口卡片,点击后通过路由跳转到相应功能模块。
```mermaid
graph TB
subgraph "前端架构"
A["App.vue<br/>根组件"]
B["BaseLayout/index.vue<br/>基础布局容器"]
C["GlobalHeader/index.vue<br/>全局头部导航"]
D["GlobalMenu/index.vue<br/>全局菜单系统"]
E["GlobalTab/index.vue<br/>标签页管理"]
F["Home/index.vue<br/>首页主容器"]
G["modules/*<br/>功能模块组件"]
H["service/api/dashboard.ts<br/>今日统计API封装"]
I["hooks/common/echarts.ts<br/>ECharts钩子函数"]
J["store/modules/app/index.ts<br/>应用状态管理"]
K["router/guard/route.ts<br/>路由守卫"]
end
subgraph "后端服务"
L["routes/dashboard.js<br/>GET /api/dashboard/today"]
M["utils/response.js<br/>统一响应结构"]
N["models/Model.js<br/>型号模型"]
O["models/Ota.js<br/>OTA模型"]
end
A --> B
B --> C
B --> D
B --> E
B --> F
F --> G
F --> H
G --> I
G --> J
C --> K
H --> L
L --> M
L --> N
L --> O
```
**章节来源**
- [frontend/src/views/home/index.vue:1-150](file://frontend/src/views/home/index.vue#L1-L150)
- [frontend/src/layouts/base-layout/index.vue:1-100](file://frontend/src/layouts/base-layout/index.vue#L1-L100)
- [backend/src/routes/dashboard.js:1-66](file://backend/src/routes/dashboard.js#L1-L66)
## 核心组件
- 首页主容器组件:负责协调各个功能模块的渲染和数据传递,管理整体布局结构。
- 数据卡片组件:展示关键业务指标的卡片组件,支持动态数据绑定和交互效果。
- 欢迎横幅组件:显示用户欢迎信息和快速操作入口。
- 图表组件:基于ECharts实现的折线图和饼图组件,用于数据可视化展示。
- 项目新闻组件:展示系统最新动态和通知信息。
- 创意横幅组件:提供视觉吸引力和品牌展示的横幅区域。
- 今日统计 API 封装:封装 GET /api/dashboard/today 请求,返回 Promise。
- ECharts 钩子函数:提供图表初始化和数据绑定的通用逻辑。
- 应用状态管理:使用Pinia管理应用级状态和用户信息。
- 路由守卫:实现权限控制和访问验证。
- 后端路由与模型:按日期范围查询型号与 OTA 新增记录,统一响应结构。
**章节来源**
- [frontend/src/views/home/index.vue:1-150](file://frontend/src/views/home/index.vue#L1-L150)
- [frontend/src/views/home/modules/card-data.vue:1-100](file://frontend/src/views/home/modules/card-data.vue#L1-L100)
- [frontend/src/views/home/modules/header-banner.vue:1-80](file://frontend/src/views/home/modules/header-banner.vue#L1-L80)
- [frontend/src/views/home/modules/line-chart.vue:1-80](file://frontend/src/views/home/modules/line-chart.vue#L1-L80)
- [frontend/src/views/home/modules/pie-chart.vue:1-80](file://frontend/src/views/home/modules/pie-chart.vue#L1-L80)
- [frontend/src/views/home/modules/project-news.vue:1-60](file://frontend/src/views/home/modules/project-news.vue#L1-L60)
- [frontend/src/views/home/modules/creativity-banner.vue:1-50](file://frontend/src/views/home/modules/creativity-banner.vue#L1-L50)
- [frontend/src/service/api/dashboard.ts:1-50](file://frontend/src/service/api/dashboard.ts#L1-L50)
- [frontend/src/hooks/common/echarts.ts:1-60](file://frontend/src/hooks/common/echarts.ts#L1-L60)
- [frontend/src/store/modules/app/index.ts:1-80](file://frontend/src/store/modules/app/index.ts#L1-L80)
- [frontend/src/router/guard/route.ts:1-100](file://frontend/src/router/guard/route.ts#L1-L100)
- [backend/src/routes/dashboard.js:19-63](file://backend/src/routes/dashboard.js#L19-L63)
## 架构总览
首页数据流自上而下:浏览器发起请求 -> 前端 Alova 拦截器 -> 后端路由 -> 数据库查询 -> 统一响应 -> 前端解析并渲染。新架构采用模块化设计,各组件职责清晰,状态管理集中化。
```mermaid
sequenceDiagram
participant U as "用户"
participant V as "Home/index.vue"
participant CM as "CardData.vue"
participant CH as "Chart Components"
participant A as "service/api/dashboard.ts"
participant H as "hooks/common/echarts.ts"
participant S as "Express 路由"
participant DB as "数据库"
U->>V : 访问首页
V->>V : onMounted 触发
V->>CM : 传递统计数据
V->>CH : 传递图表数据
V->>A : 调用 getTodayStats()
A->>S : 发送带 Authorization 的 GET /api/dashboard/today
S->>DB : 查询今日新增型号/OTA
DB-->>S : 返回记录集
S-->>A : ApiResponse.success({models, otas})
A-->>V : 返回结果
V->>H : 初始化图表配置
H->>CM : 更新卡片数据
H->>CH : 更新图表数据
V-->>U : 渲染完整仪表板
```
**章节来源**
- [frontend/src/views/home/index.vue:80-120](file://frontend/src/views/home/index.vue#L80-L120)
- [frontend/src/views/home/modules/card-data.vue:40-80](file://frontend/src/views/home/modules/card-data.vue#L40-L80)
- [frontend/src/views/home/modules/line-chart.vue:30-60](file://frontend/src/views/home/modules/line-chart.vue#L30-L60)
- [frontend/src/views/home/modules/pie-chart.vue:30-60](file://frontend/src/views/home/modules/pie-chart.vue#L30-L60)
- [frontend/src/service/api/dashboard.ts:20-45](file://frontend/src/service/api/dashboard.ts#L20-L45)
- [frontend/src/hooks/common/echarts.ts:20-50](file://frontend/src/hooks/common/echarts.ts#L20-L50)
- [backend/src/routes/dashboard.js:19-63](file://backend/src/routes/dashboard.js#L19-L63)
## 组件详细分析
### 首页主容器组件(Home
- 功能布局
- 模块化组件组织:将首页拆分为欢迎横幅、数据卡片、图表展示、项目新闻等多个独立模块。
- 响应式网格布局:使用CSS Grid实现自适应布局,支持不同屏幕尺寸的完美适配。
- 主题切换支持:集成Naive UI主题系统,支持明暗主题切换。
- 数据绑定与状态
- 使用Composition API管理组件状态,提供更好的TypeScript支持。
- 通过Pinia store管理应用级状态,实现跨组件状态共享。
- 使用响应式引用保存加载状态、统计数据等。
- 交互行为
- 组件间通信通过props和events实现,保持松耦合。
- 支持用户偏好设置持久化存储。
- 样式与布局
- 采用CSS变量实现主题定制,支持动态主题切换。
- 使用Flexbox和Grid布局实现响应式设计。
- 集成Naive UI组件库,提供一致的UI体验。
- 生命周期
- 在onMounted钩子中初始化数据和图表。
- 使用watch监听数据变化,自动更新视图。
- 错误处理
- 使用try/catch包裹异步操作,捕获异常并显示友好提示。
- 集成全局错误处理器,统一错误展示。
- 性能优化
- 组件懒加载,按需加载图表库。
- 使用computed缓存计算属性,避免重复计算。
- 图表数据防抖处理,减少重绘频率。
**更新** 首页组件经过小幅更新,优化了导航元素的响应式行为和用户体验,同时保持了原有的模块化架构设计。
**章节来源**
- [frontend/src/views/home/index.vue:1-150](file://frontend/src/views/home/index.vue#L1-L150)
### 数据卡片组件(CardData
- 功能特性
- 支持多种数据类型展示:数字统计、趋势指标、进度条等。
- 动态图标支持:根据数据类型自动选择合适图标。
- 交互反馈:hover效果和点击动画增强用户体验。
- 数据绑定
- 通过props接收数据配置,支持高度定制化。
- 使用computed属性格式化显示数据。
- 样式设计
- 采用玻璃拟态设计风格,支持透明背景和模糊效果。
- 响应式字体大小,适配不同屏幕尺寸。
- 主题色自动适配,支持明暗主题切换。
**章节来源**
- [frontend/src/views/home/modules/card-data.vue:1-100](file://frontend/src/views/home/modules/card-data.vue#L1-L100)
### 图表组件(LineChart & PieChart
- 功能特性
- 基于ECharts实现的数据可视化展示。
- 支持响应式图表,自动适配容器大小。
- 提供丰富的交互功能:缩放、平移、数据点悬停等。
- 图表配置
- 折线图:展示时间序列数据趋势,支持多系列对比。
- 饼图:展示数据占比分布,支持环形图和嵌套饼图。
- 性能优化
- 使用useEcharts钩子函数统一管理图表实例。
- 实现图表销毁和内存清理,避免内存泄漏。
- 数据更新时智能diff,只重绘必要部分。
**章节来源**
- [frontend/src/views/home/modules/line-chart.vue:1-80](file://frontend/src/views/home/modules/line-chart.vue#L1-L80)
- [frontend/src/views/home/modules/pie-chart.vue:1-80](file://frontend/src/views/home/modules/pie-chart.vue#L1-L80)
- [frontend/src/hooks/common/echarts.ts:1-60](file://frontend/src/hooks/common/echarts.ts#L1-L60)
### 欢迎横幅组件(HeaderBanner
- 功能特性
- 显示个性化欢迎信息,根据用户角色显示不同内容。
- 提供快速操作入口,常用功能一键直达。
- 支持天气信息显示(可选功能)。
- 用户交互
- 点击操作按钮直接执行对应功能。
- 支持键盘快捷键操作。
- 响应式设计
- 移动端自动折叠操作按钮。
- 字体大小和间距自适应调整。
**更新** 欢迎横幅组件经过小幅更新,优化了用户交互体验和响应式行为。
**章节来源**
- [frontend/src/views/home/modules/header-banner.vue:1-80](file://frontend/src/views/home/modules/header-banner.vue#L1-L80)
### 项目新闻组件(ProjectNews
- 功能特性
- 展示系统更新日志和功能公告。
- 支持新闻分类和筛选功能。
- 提供新闻详情查看和分享功能。
- 数据管理
- 支持本地缓存,减少网络请求。
- 自动刷新机制,确保内容时效性。
- 用户体验
- 无限滚动加载,支持大量新闻展示。
- 搜索和过滤功能,快速定位感兴趣的内容。
**章节来源**
- [frontend/src/views/home/modules/project-news.vue:1-60](file://frontend/src/views/home/modules/project-news.vue#L1-L60)
### 创意横幅组件(CreativityBanner
- 功能特性
- 提供视觉吸引力强的背景展示区域。
- 支持轮播广告和活动推广。
- 可配置的动画效果和过渡动画。
- 自定义配置
- 支持图片、视频、SVG等多种媒体格式。
- 可调节透明度、模糊度等视觉效果参数。
- 性能考虑
- 图片懒加载,优化首屏加载性能。
- 动画性能优化,使用GPU加速。
**章节来源**
- [frontend/src/views/home/modules/creativity-banner.vue:1-50](file://frontend/src/views/home/modules/creativity-banner.vue#L1-L50)
### 今日统计 API 与数据格式
- API 定义
- 方法:GET
- 路径:/api/dashboard/today
- 返回:统一响应结构,包含 models 与 otas 数组。
- 数据格式
- models:包含 id、brand_name、name、create_atISO 字符串)。
- otas:包含 id、verName、model、create_atISO 字符串)。
- 前端解析
- 校验响应 code 是否为成功标识,再将 data.models 与 data.otas 写入组件状态。
- 时间字段通过格式化函数转换为 HH:mm 展示。
- 使用TypeScript类型定义确保数据结构正确性。
**章节来源**
- [frontend/src/service/api/dashboard.ts:1-50](file://frontend/src/service/api/dashboard.ts#L1-L50)
- [backend/src/routes/dashboard.js:43-58](file://backend/src/routes/dashboard.js#L43-L58)
- [backend/src/utils/response.js:1-25](file://backend/src/utils/response.js#L1-L25)
### ECharts 钩子函数与图表管理
- 功能特性
- 提供统一的图表初始化和管理逻辑。
- 支持图表响应式适配和主题切换。
- 自动处理图表实例的生命周期管理。
- 使用方法
- 通过useEcharts钩子函数创建图表实例。
- 支持图表配置项的动态更新。
- 提供图表事件处理和回调机制。
- 性能优化
- 图表实例复用,避免重复创建销毁。
- 数据更新时使用增量更新策略。
- 自动清理未使用的图表资源。
**章节来源**
- [frontend/src/hooks/common/echarts.ts:1-60](file://frontend/src/hooks/common/echarts.ts#L1-L60)
### 应用状态管理与路由守卫
- Pinia状态管理
- 使用模块化store管理应用状态。
- 支持TypeScript类型推断和IDE智能提示。
- 提供状态持久化和恢复功能。
- 路由守卫
- 实现基于角色的访问控制。
- 支持路由级别的权限验证。
- 提供登录状态检查和自动重定向。
- 主题管理
- 支持明暗主题动态切换。
- 主题配置持久化存储。
- 提供主题预览和自定义功能。
**更新** 应用状态管理和路由守卫经过小幅更新,增强了主题切换功能的稳定性。
**章节来源**
- [frontend/src/store/modules/app/index.ts:1-80](file://frontend/src/store/modules/app/index.ts#L1-L80)
- [frontend/src/router/guard/route.ts:1-100](file://frontend/src/router/guard/route.ts#L1-L100)
- [frontend/src/theme/settings.ts:1-50](file://frontend/src/theme/settings.ts#L1-50)
### 布局系统与导航组件
- 基础布局
- 提供完整的页面布局框架,包含头部、侧边栏、内容区和底部。
- 支持多种布局模式:侧边栏、顶部导航、混合布局等。
- 响应式设计,适配桌面端和移动端。
- 全局导航
- 面包屑导航,提供清晰的页面层级信息。
- 标签页管理,支持多页面切换和缓存。
- 用户菜单,提供个人设置和退出登录功能。
- 菜单系统
- 动态菜单生成,基于路由配置自动生成。
- 支持多级菜单和图标显示。
- 菜单权限控制,根据用户角色显示不同菜单。
**更新** 布局系统和导航组件经过小幅更新,主要优化了全局头部导航和标签页管理的性能和用户体验。
**章节来源**
- [frontend/src/layouts/base-layout/index.vue:1-100](file://frontend/src/layouts/base-layout/index.vue#L1-L100)
- [frontend/src/layouts/modules/global-header/index.vue:1-80](file://frontend/src/layouts/modules/global-header/index.vue#L1-L80)
- [frontend/src/layouts/modules/global-menu/index.vue:1-120](file://frontend/src/layouts/modules/global-menu/index.vue#L1-L120)
- [frontend/src/layouts/modules/global-tab/index.vue:1-90](file://frontend/src/layouts/modules/global-tab/index.vue#L1-L90)
### 后端路由与数据模型
- 路由逻辑
- 使用鉴权中间件保护接口。
- 计算今日 00:00:00UTC+8)作为起始时间。
- 分别查询型号与 OTA 表中 create_at ≥ 今日起始时间的记录,按 id 降序。
- 统一返回 ApiResponse.success 结构。
- 数据模型
- Model:包含品牌名、型号名、创建时间等字段。
- Ota:包含版本号、版本名、URL、MD5、目标型号、创建时间等字段。
**章节来源**
- [backend/src/routes/dashboard.js:19-63](file://backend/src/routes/dashboard.js#L19-L63)
- [backend/src/models/Model.js:1-53](file://backend/src/models/Model.js#L1-L53)
- [backend/src/models/Ota.js:1-97](file://backend/src/models/Ota.js#L1-L97)
## 依赖关系分析
- 组件耦合
- Home主容器通过props和events与各子组件通信,形成松耦合的组件树。
- 图表组件通过ECharts钩子函数统一管理,避免重复代码。
- 状态管理通过Pinia store集中管理,支持跨组件状态共享。
- 路由守卫与权限控制解耦,便于扩展和维护。
- 外部依赖
- Naive UI提供现代化的UI组件库。
- ECharts提供强大的数据可视化能力。
- Pinia提供轻量级的状态管理解决方案。
- Vue Router提供声明式路由导航。
- 数据一致性
- 后端统一响应结构,前端按TypeScript类型定义解析,确保数据结构正确性。
- 组件间通过明确的接口定义进行通信,降低耦合度。
```mermaid
classDiagram
class HomeIndexVue {
+components : Object
+data : Ref<any>
+mounted()
+handleThemeChange()
}
class CardDataComponent {
+props : CardDataProps
+computed : ComputedRef
+methods : Function[]
}
class ChartComponents {
+lineChart : Component
+pieChart : Component
+chartConfig : Object
}
class DashboardApi {
+getTodayStats()
+requestConfig : RequestConfig
}
class EChartsHook {
+useEcharts()
+initChart()
+updateChart()
}
class AppStore {
+user : Ref<User>
+theme : Ref<Theme>
+actions : Actions
}
class RouteGuard {
+beforeEach()
+checkAuth()
+redirect()
}
HomeIndexVue --> CardDataComponent : "使用"
HomeIndexVue --> ChartComponents : "使用"
HomeIndexVue --> DashboardApi : "调用"
ChartComponents --> EChartsHook : "依赖"
HomeIndexVue --> AppStore : "读取状态"
HomeIndexVue --> RouteGuard : "受保护"
```
## 性能考量
- 渲染层面
- 使用Vue 3的响应式系统,提供更高效的DOM更新。
- 组件懒加载,按需加载大型图表库。
- 虚拟滚动支持,优化长列表渲染性能。
- 网络层面
- 使用Alova HTTP客户端,提供更快的请求性能和更好的缓存机制。
- 请求去重和并发控制,避免重复请求和资源浪费。
- 错误重试和超时处理,提升网络稳定性。
- 缓存层面
- 组件级缓存,使用KeepAlive缓存活跃组件。
- 数据缓存,使用localStorage和sessionStorage持久化用户偏好。
- 图表缓存,避免重复绘制相同数据。
- 内存管理
- 及时清理图表实例和事件监听器,避免内存泄漏。
- 大对象及时释放,减少垃圾回收压力。
- 使用WeakMap存储临时数据,避免循环引用。
## 故障排查指南
- 无法加载今日数据
- 检查后端接口是否返回统一响应结构。
- 确认前端TypeScript类型定义是否与后端数据结构匹配。
- 查看网络请求是否正确携带Authorization头。
- 图表显示异常
- 检查ECharts实例是否正确初始化。
- 确认图表容器是否有正确的宽高。
- 验证数据格式是否符合ECharts要求。
- 主题切换失效
- 检查主题配置是否正确加载。
- 确认CSS变量是否正确应用到组件。
- 查看浏览器控制台是否有相关错误信息。
- 路由跳转问题
- 检查路由配置是否正确注册。
- 确认用户权限是否满足路由访问要求。
- 验证路由守卫逻辑是否正常执行。
- 组件通信异常
- 检查props传递的数据类型是否正确。
- 确认事件监听器是否正确绑定和解绑。
- 验证响应式数据更新是否触发了视图更新。
- 性能问题
- 使用浏览器性能面板分析渲染瓶颈。
- 检查是否存在不必要的重渲染。
- 验证图表数据更新是否使用了增量更新。
**章节来源**
- [frontend/src/service/api/dashboard.ts:20-45](file://frontend/src/service/api/dashboard.ts#L20-L45)
- [frontend/src/hooks/common/echarts.ts:20-50](file://frontend/src/hooks/common/echarts.ts#L20-L50)
- [frontend/src/router/guard/route.ts:40-80](file://frontend/src/router/guard/route.ts#L40-L80)
- [frontend/src/store/modules/app/index.ts:40-80](file://frontend/src/store/modules/app/index.ts#L40-L80)
## 结论
首页仪表板通过模块化架构设计、TypeScript类型安全和现代化的技术栈,实现了更高的代码质量、更好的开发体验和更优的用户体验。**最新优化**引入了导航元素改进和耳机管理相关组件的性能提升,进一步增强了系统的稳定性和用户体验。这些小幅更新主要集中在导航交互优化、响应式行为改进和主题切换稳定性增强方面。建议后续在以下方面持续优化:
- 增加更多数据可视化图表类型,丰富仪表板展示能力。
- 实现组件级代码分割,进一步优化首屏加载性能。
- 添加国际化支持,满足多语言用户需求。
- 完善单元测试和集成测试,提升代码质量保障。
- 考虑引入微前端架构,支持更大规模的项目扩展。
## 附录
- 组件配置项说明
- CardDataProps:数据卡片组件的配置接口
- ChartConfig:图表组件的配置选项
- ThemeSettings:主题配置的相关参数
- 状态管理键值
- Pinia store中的状态键名和默认值
- 路由配置规范
- 路由元信息定义和权限控制配置
- 环境变量配置
- 开发和生产环境的不同配置项
- **新增**TypeScript类型定义
- API响应类型定义
- 组件Props接口定义
- 状态管理类型定义
**章节来源**
- [frontend/src/views/home/modules/card-data.vue:1-100](file://frontend/src/views/home/modules/card-data.vue#L1-L100)
- [frontend/src/hooks/common/echarts.ts:1-60](file://frontend/src/hooks/common/echarts.ts#L1-L60)
- [frontend/src/theme/settings.ts:1-50](file://frontend/src/theme/settings.ts#L1-L50)
- [frontend/src/constants/env.ts:1-30](file://frontend/src/constants/env.ts#L1-L30)