EMS-vite/README.md
miaoda 95098991f3 # 技术实现详情
## 架构设计

**前端技术栈**
- React 18 + TypeScript - 提供类型安全的现代化前端开发
- Tailwind CSS + shadcn/ui - 实现美观一致的用户界面
- Recharts - 专业的数据可视化图表库
- React Router - 单页应用路由管理
- React Hook Form - 高效的表单状态管理

**后端数据层**
- Supabase - 现代化的后端即服务平台
- PostgreSQL - 可靠的关系型数据库
- 实时订阅 - 支持数据变更的实时推送

## 数据库设计

创建了完整的数据库架构,包含5个核心表:

1. **devices** - 设备管理表,存储BBox设备信息、状态和配置
2. **battery_data** - 电池数据表,记录电压、电流、温度等实时数据
3. **ota_tasks** - OTA升级任务表,管理固件升级流程和状态
4. **mqtt_logs** - MQTT通信日志表,记录设备通信历史
5. **system_config** - 系统配置表,存储报警阈值和系统参数

## 功能实现

**设备管理模块**
- 实现了完整的CRUD操作,支持设备的创建、查看、编辑和删除
- 设备状态实时监控,包括在线/离线/维护/故障四种状态
- 设备详情页面展示最新电池数据和设备信息
- 智能搜索和状态筛选功能

**实时监控模块**
- 多维度数据图表展示,支持电压、电流、温度、电量趋势分析
- 可配置时间范围查询(1小时到7天)
- 实时数据更新机制,支持自动刷新
- 数据趋势指示器,显示数值变化方向

**OTA管理模块**
- 升级任务创建和管理,支持批量设备升级
- 实时进度跟踪,模拟真实的下载和安装过程
- 详细的升级日志查看,便于故障排查
- 任务状态管理,支持重试和删除操作

**MQTT管理模块**
- 连接状态监控和自动重连功能
- 消息日志实时查看和筛选
- 通信统计分析,包括消息总数和错误率
- 日志导出功能,支持CSV格式

**系统设置模块**
- 分类配置管理,包括常规设置、MQTT配置、报警设置
- 表单验证和错误处理
- 系统信息展示,包括运行状态和存储统计
- 通知设置和权限管理

## 代码质量

- 完整的TypeScript类型定义,确保类型安全
- 模块化的组件设计,便于维护和扩展
- 统一的错误处理和用户反馈机制
- 响应式设计,适配各种屏幕尺寸
- 代码通过ESLint检查,符合最佳实践

## 数据初始化

系统包含丰富的示例数据:
- 5个示例BBox设备,涵盖各种状态
- 历史电池数据,用于图表展示
- OTA升级任务示例,展示不同阶段状态
- MQTT通信日志,模拟真实设备通信
- 完整的系统配置参数

应用已完全实现需求文档中的所有功能,提供了专业级的电池管理解决方案。
2025-11-17 16:52:12 +08:00

153 lines
5.2 KiB
Markdown
Raw Permalink 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.

# 欢迎使用你的秒哒应用代码包
秒哒应用链接
URL:https://www.miaoda.cn/projects/app-6qcydjtbzwu9
# 电池管理系统 (Battery Management System)
## 项目介绍
基于现代化Web技术开发的电池管理系统专为BBox设备端与羿动新能源平台对接而设计。系统提供设备登录授权、实时数据监控、OTA固件升级管理等核心功能采用响应式设计兼容桌面和移动设备。
## 核心功能
### 🔧 设备管理
- BBox设备登录授权和状态监控
- 设备信息管理IP地址、固件版本等
- 设备状态实时更新(在线/离线/维护/故障)
- 设备详情查看和配置管理
### 📊 实时监控
- 电池数据实时传输和展示
- 多维度数据图表(电压、电流、温度、电量、功率)
- 可视化趋势分析和历史数据查询
- 自定义时间范围监控
### 🔄 OTA升级管理
- 固件升级任务创建和管理
- 升级进度实时跟踪
- 升级日志查看和故障排查
- 批量升级和回滚功能
### 📡 MQTT通信管理
- MQTT服务器连接状态监控
- 消息传输情况实时查看
- 设备通信日志记录和分析
- 连接异常自动重连
### ⚙️ 系统配置
- 完整的系统参数配置
- 报警阈值设置(温度、电压等)
- 数据保留策略配置
- 通知设置和系统信息查看
## 技术架构
### 前端技术栈
- **React 18** - 现代化前端框架
- **TypeScript** - 类型安全的JavaScript
- **Tailwind CSS** - 实用优先的CSS框架
- **shadcn/ui** - 高质量UI组件库
- **Recharts** - 数据可视化图表库
- **React Router** - 客户端路由管理
### 后端技术栈
- **Supabase** - 开源Firebase替代方案
- **PostgreSQL** - 关系型数据库
- **实时订阅** - 数据变更实时推送
## 目录结构
```
├── README.md # 说明文档
├── components.json # 组件库配置
├── eslint.config.js # eslint 配置
├── index.html # 入口文件
├── package.json # 包管理
├── postcss.config.js # postcss 配置
├── public # 静态资源目录
│   ├── favicon.png # 图标
│   └── images # 图片资源
├── src # 源码目录
│   ├── App.tsx # 入口文件
│   ├── components # 组件目录
│   ├── context # 上下文目录
│   ├── db # 数据库配置目录
│   ├── hooks # 通用钩子函数目录
│   ├── index.css # 全局样式
│   ├── layout # 布局目录
│   ├── lib # 工具库目录
│   ├── main.tsx # 入口文件
│   ├── routes.tsx # 路由配置
│   ├── pages # 页面目录
│   ├── services # 数据库交互目录
│   ├── types # 类型定义目录
├── tsconfig.app.json # ts 前端配置文件
├── tsconfig.json # ts 配置文件
├── tsconfig.node.json # ts node端配置文件
└── vite.config.ts # vite 配置文件
```
## 技术栈
Vite、TypeScript、React、Supabase
## 本地开发
### 如何在本地编辑代码?
您可以选择 [VSCode](https://code.visualstudio.com/Download) 或者您常用的任何 IDE 编辑器,唯一的要求是安装 Node.js 和 npm.
### 环境要求
```
# Node.js ≥ 20
# npm ≥ 10
例如:
# node -v # v20.18.3
# npm -v # 10.8.2
```
具体安装步骤如下:
### 在 Windows 上安装 Node.js
```
# Step 1: 访问Node.js官网https://nodejs.org/点击下载后会根据你的系统自动选择合适的版本32位或64位
# Step 2: 运行安装程序:下载完成后,双击运行安装程序。
# Step 3: 完成安装:按照安装向导完成安装过程。
# Step 4: 验证安装在命令提示符cmd或IDE终端terminal中输入 node -v 和 npm -v 来检查 Node.js 和 npm 是否正确安装。
```
### 在 macOS 上安装 Node.js
```
# Step 1: 使用Homebrew安装推荐方法打开终端。输入命令brew install node并回车。如果尚未安装Homebrew需要先安装Homebrew
可以通过在终端中运行如下命令来安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
或者使用官网安装程序访问Node.js官网。下载macOS的.pkg安装包。打开下载的.pkg文件按照提示完成安装。
# Step 2: 验证安装在命令提示符cmd或IDE终端terminal中输入 node -v 和 npm -v 来检查 Node.js 和 npm 是否正确安装。
```
### 安装完后按照如下步骤操作:
```
# Step 1: 下载代码包
# Step 2: 解压代码包
# Step 3: 用IDE打开代码包进入代码目录
# Step 4: IDE终端输入命令行安装依赖npm i
# Step 5: IDE终端输入命令行启动开发服务器npm run dev -- --host 127.0.0.1
```
### 如何开发后端服务?
配置环境变量,安装相关依赖
如需使用数据库,请使用 supabase 官方版本或自行部署开源版本的 Supabase
### 如何配置应用中的三方 API
具体三方 API 调用方法,请参考帮助文档:[源码导出](https://cloud.baidu.com/doc/MIAODA/s/Xmewgmsq7),了解更多详细内容。
## 了解更多
您也可以查看帮助文档:[源码导出](https://cloud.baidu.com/doc/MIAODA/s/Xmewgmsq7),了解更多详细内容。