Skip to content

Latest commit

 

History

History
186 lines (147 loc) · 5.18 KB

File metadata and controls

186 lines (147 loc) · 5.18 KB

个性化设置功能实施完成

📋 完成的工作

1. ✅ 导航栏菜单更新 (navbar.js)

修改内容:

  • 在"系统管理"子菜单中添加了"🎨 个性化设置"菜单项
  • 链接指向:personalization.html
  • 更新了 settingsPages 数组,添加 'personalization'

修改位置:

  • Lines 147-150: 添加菜单项
  • Line 206: 更新settingsPages数组

2. ✅ 个性化设置主页面 (personalization.html)

功能特性:

  • 登录页海报设置

    • 支持上传JPG、PNG格式
    • 建议尺寸:1920x1080px
    • 实时预览
    • 恢复默认功能
  • 系统Logo设置

    • 支持PNG格式(透明背景)
    • 建议尺寸:800x200px
    • 实时预览
    • 恢复默认功能
  • 能量流图标设置

    • 支持PNG、SVG格式
    • 建议尺寸:512x512px
    • 实时预览
    • 恢复默认功能

用户体验:

  • 响应式卡片布局
  • 拖拽上传支持
  • 文件大小限制(5MB)
  • 未保存更改提醒
  • 页面离开前确认
  • 成功/错误提示
  • 深色主题适配

3. ✅ 演示页面 (personalization-demo.html)

功能:

  • 实时展示自定义设置效果
  • 登录页海报演示
  • Logo显示演示
  • 能量流图标演示
  • 状态指示器(使用自定义/使用默认)
  • 自动刷新功能

4. ✅ 使用指南 (personalization-usage.md)

包含内容:

  • 功能说明
  • 集成代码示例
  • localStorage键名说明
  • 数据格式说明
  • 文件大小限制
  • 重置功能说明
  • 注意事项

5. ✅ 多语言支持 (common.js)

添加翻译:

  • 中文:

    • menuElectricityPrice: '电价设置'
    • menuPersonalization: '个性化设置'
  • 英文:

    • menuElectricityPrice: 'Electricity Pricing'
    • menuPersonalization: 'Personalization'

🗂️ 文件清单

  1. personalization.html - 个性化设置主页面
  2. personalization-demo.html - 演示页面
  3. personalization-usage.md - 使用指南
  4. navbar.js - 已更新(添加菜单项)
  5. common.js - 已更新(添加翻译)

🎯 使用流程

管理员设置流程:

  1. 登录系统
  2. 点击"系统管理" → "个性化设置"
  3. 选择要自定义的项目(海报/Logo/图标)
  4. 点击"上传"按钮选择图片
  5. 预览效果
  6. 点击"保存更改"
  7. 刷新相关页面查看效果

在其他页面应用自定义设置:

示例1 - 登录页应用海报和Logo:

document.addEventListener('DOMContentLoaded', function() {
    // 应用自定义海报
    const customPoster = localStorage.getItem('customPoster');
    if (customPoster) {
        document.querySelector('.login-background').style.backgroundImage = `url(${customPoster})`;
    }

    // 应用自定义Logo
    const customLogo = localStorage.getItem('customLogo');
    if (customLogo) {
        document.querySelector('.logo img').src = customLogo;
    }
});

示例2 - 首页应用能量流图标:

document.addEventListener('DOMContentLoaded', function() {
    const customIcon = localStorage.getItem('customEnergyIcon');
    if (customIcon) {
        document.querySelectorAll('.energy-icon').forEach(el => {
            el.src = customIcon;
        });
    }
});

💾 数据存储

所有自定义设置存储在浏览器的 localStorage 中:

键名 用途 格式
customPoster 登录页海报 Base64 Data URL
customLogo 系统Logo Base64 Data URL
customEnergyIcon 能量流图标 Base64 Data URL

🎨 界面特点

  • 渐变图标:每个设置项都有独特的渐变色图标
  • 卡片式布局:清晰的视觉分隔
  • 实时预览:上传后立即看到效果
  • 保存提示栏:固定在页面底部,提醒用户保存
  • Toast通知:操作成功/失败的即时反馈
  • 深色主题适配:支持系统深色模式

📝 注意事项

  1. 文件大小限制:单个文件最大5MB
  2. 浏览器兼容性:现代浏览器(Chrome、Firefox、Safari、Edge)
  3. 数据持久性:存储在localStorage,清除浏览器数据会丢失
  4. 安全性:图片以Base64存储在本地,不会上传到服务器
  5. 性能影响:大图片可能影响页面加载速度,建议优化图片大小

🔧 技术实现

  • 纯前端实现:无需后端支持
  • FileReader API:读取本地文件
  • localStorage API:持久化存储
  • Base64编码:图片存储格式
  • 事件监听:页面离开前确认
  • CSS Grid布局:响应式设计

🚀 下一步建议

  1. 在登录页(login.html)应用自定义海报和Logo
  2. 在导航栏(navbar.js)应用自定义Logo
  3. 在首页(dashboard.html)应用自定义能量流图标
  4. 添加图片压缩功能,减小存储空间
  5. 添加批量导出/导入功能,方便备份和恢复
  6. 添加更多自定义选项(主题色、字体等)

📞 测试建议

  1. 访问 personalization.html 测试上传功能
  2. 访问 personalization-demo.html 查看实时效果
  3. 尝试上传不同格式和大小的图片
  4. 测试恢复默认功能
  5. 测试页面离开前的提醒功能
  6. 切换浏览器语言测试多语言支持

实施日期: 2025年 状态: ✅ 完成 版本: 1.0.0