# 启动画面功能说明 ## 功能概述 启动画面功能为应用提供了优雅的启动体验,包括品牌展示、加载动画和初始化过程。 ## 文件结构 ``` src/ ├── config/ │ └── splash.js # 启动画面配置文件 ├── utils/ │ └── splashManager.js # 启动画面管理器 pages/ ├── splash/ │ └── splash.vue # 启动画面页面 └── splash-test/ └── splash-test.vue # 启动画面测试页面 ``` ## 功能特性 ### 1. 智能启动控制 - **冷启动**: 首次启动或应用被完全关闭后重新启动 - **热启动**: 应用在后台被重新激活 - **自动判断**: 系统自动判断启动类型,决定是否显示启动画面 ### 2. 优雅的视觉效果 - **渐变背景**: 使用紫色渐变背景,营造现代感 - **浮动动画**: 背景圆形元素的浮动动画效果 - **毛玻璃效果**: 使用 `backdrop-filter` 实现毛玻璃质感 - **脉冲动画**: Logo图标的脉冲呼吸效果 ### 3. 加载步骤管理 - **分步加载**: 将启动过程分为多个步骤 - **实时反馈**: 显示当前加载步骤和进度 - **错误处理**: 单个步骤失败不影响整体启动流程 ### 4. 可配置性 - **显示时间**: 可配置最小和最大显示时间 - **加载步骤**: 可自定义加载步骤和文本 - **主题样式**: 可配置颜色、字体等视觉元素 ## 配置说明 ### 基本配置 ```javascript // src/config/splash.js export const splashConfig = { app: { name: '企业办公', nameEn: 'Enterprise Office', version: '1.0.0', logo: '🏢' }, display: { minDuration: 2000, // 最小显示时间 maxDuration: 5000, // 最大显示时间 showOnWarmStart: false, // 热启动时是否显示 showVersion: true // 是否显示版本信息 } } ``` ### 加载步骤配置 ```javascript loadingSteps: [ { text: '正在初始化...', duration: 800, action: 'init', icon: '⚙️' }, { text: '加载用户数据...', duration: 1000, action: 'loadUserData', icon: '👤' } ] ``` ## 使用方法 ### 1. 基本使用 启动画面会自动在应用启动时显示,无需额外配置。 ### 2. 自定义配置 ```javascript import { updateSplashConfig } from '@/src/config/splash.js' // 更新配置 updateSplashConfig({ display: { minDuration: 3000, showOnWarmStart: true } }) ``` ### 3. 添加自定义加载步骤 ```javascript import { updateSplashConfig } from '@/src/config/splash.js' updateSplashConfig({ loadingSteps: [ // 现有步骤... { text: '同步云端数据...', duration: 1200, action: 'syncCloudData', icon: '☁️' } ] }) ``` ### 4. 实现自定义加载逻辑 ```javascript // src/utils/splashManager.js async function syncCloudData() { // 实现云端数据同步逻辑 await syncUserData() await syncWorkData() console.log('云端数据同步完成') } ``` ## 测试功能 访问 `/pages/splash-test/splash-test` 页面可以: - 测试启动画面效果 - 重置启动状态 - 模拟冷启动/热启动 - 查看当前配置信息 ## 技术实现 ### 1. 启动检测 ```javascript // 检查是否应该显示启动画面 export function shouldShowSplash() { const isColdStart = !getApp().globalData?.isWarmStart return isColdStart } ``` ### 2. 步骤执行 ```javascript // 执行加载步骤 export async function executeLoadingStep(step) { try { switch (step.action) { case 'init': await initializeApp() break case 'loadUserData': await loadUserData() break } return true } catch (error) { console.error(`步骤 ${step.action} 执行失败:`, error) return false } } ``` ### 3. 动画效果 ```scss // 浮动动画 @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.7; } 50% { transform: translateY(-20px) rotate(180deg); opacity: 0.3; } } // 脉冲动画 @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } ``` ## 注意事项 1. **性能优化**: 启动画面不应包含过重的计算或网络请求 2. **错误处理**: 确保单个步骤失败不会影响整体启动流程 3. **用户体验**: 避免启动画面显示时间过长 4. **兼容性**: 确保在不同设备和平台上都能正常显示 ## 扩展功能 ### 1. 添加品牌动画 可以在启动画面中添加更复杂的品牌动画效果。 ### 2. 多语言支持 根据用户语言设置显示不同的启动文本。 ### 3. 主题切换 根据用户设置显示不同主题的启动画面。 ### 4. 网络检测 根据网络状态调整加载步骤和显示内容。