iotsaas/uniapp/README.md
2995840376 0ce191c448 chore: 初始化 iotsaas 版本库基线
纳入范围:
- backend/  Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth)
- frontend/admin/  Vue3 + Element Plus 管理后台
- Android/   涂鸦原生 APP (com.xhai.iot)
- backend/sql/  Flyway 风格迁移脚本(V2~V21)
- docs/       对接文档与设计文档

排除范围:
- 构建产物: node_modules/ target/ build/ dist/ .gradle/
- 签名密钥: *.jks *.keystore (严禁入库)
- 本机配置: Android/local.properties
- 运行日志: logs/ *.log
- AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/

.gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
2026-10-27 12:00:41 +08:00

199 lines
5.4 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.

# IoT智能家居 APP
基于 uni-app + Vue 3 + TypeScript 开发的企业级物联网平台手机客户端。
## ✨ 核心特性
- 🎨 **一次开发,多端发布**:H5 / iOS / Android / 微信小程序
- 🌐 **多平台设备**:涂鸦、Google Home、Amazon Alexa、本地IoT设备统一管理
- ⚡ **智能联动**:可视化自动化场景编辑
- 📊 **实时数据**:设备状态、历史数据可视化
- 🔔 **告警推送**:多渠道告警通知
- 🏠 **场景管理**:一键执行预置场景
## 🏗️ 项目结构
```
uniapp/
├── src/
│ ├── pages/ # 页面
│ │ ├── index/ # 首页
│ │ ├── login/ # 登录
│ │ ├── device/ # 设备管理
│ │ │ ├── list.vue # 设备列表
│ │ │ ├── detail.vue # 设备详情(控制面板)
│ │ │ └── add.vue # 添加设备(配网)
│ │ ├── rule/ # 联动规则
│ │ │ ├── list.vue # 规则列表
│ │ │ └── edit.vue # 规则编辑
│ │ ├── alarm/ # 告警消息
│ │ │ └── list.vue
│ │ └── profile/ # 我的
│ │ ├── profile.vue
│ │ ├── setting.vue
│ │ └── about.vue
│ ├── services/ # 业务服务
│ │ ├── tuyaService.ts # 涂鸦OpenAPI
│ │ ├── googleHomeService.ts # Google Home
│ │ ├── alexaService.ts # Amazon Alexa
│ │ └── deviceService.ts # 设备统一抽象
│ ├── stores/ # Pinia状态管理
│ │ ├── user.ts
│ │ ├── device.ts
│ │ ├── rule.ts
│ │ └── alarm.ts
│ ├── utils/ # 工具类
│ │ ├── request.ts # 网络请求
│ │ ├── config.ts # 全局配置
│ │ ├── tuyaSign.ts # 涂鸦签名
│ │ └── auth.ts # 辅助函数
│ ├── static/ # 静态资源
│ │ ├── styles/
│ │ └── tabbar/ # 底部导航图标
│ ├── App.vue
│ ├── main.ts
│ ├── manifest.json # uni-app配置
│ └── pages.json # 页面路由
├── index.html
├── package.json
├── tsconfig.json
└── vite.config.ts
```
## 🚀 快速开始
### 环境要求
- **Node.js** 16+
- **HBuilderX** (推荐) 或 VSCode
- 微信开发者工具(小程序调试)
### 安装依赖
```bash
cd f:/work/iotsaas/uniapp
npm install
```
### H5 开发
```bash
npm run dev:h5
# 访问 http://localhost:9000
```
### 微信小程序开发
```bash
npm run dev:mp-weixin
# 用微信开发者工具打开 dist/dev/mp-weixin 目录
```
### App 开发(Android/iOS)
推荐使用 **HBuilderX** 打开项目,运行 → 真机/模拟器。
## ⚙️ 平台配置
### 1. 涂鸦智能
1. 在 [涂鸦IoT开发平台](https://iot.tuya.com/) 创建应用
2. 获取 `Client ID` 和 `Client Secret`
3. 修改 `src/utils/config.ts`:
```ts
TUYA: {
CLIENT_ID: '你的ClientID',
CLIENT_SECRET: '你的ClientSecret',
...
}
```
### 2. Google Home
1. 在 [Google Cloud Console](https://console.cloud.google.com/) 创建项目
2. 启用 **Smart Device Management API**
3. 创建 OAuth 2.0 客户端ID
4. 修改 `src/utils/config.ts`:
```ts
GOOGLE_HOME: {
CLIENT_ID: '你的ClientID',
CLIENT_SECRET: '你的ClientSecret',
...
}
```
### 3. Amazon Alexa
1. 在 [Amazon Developer Console](https://developer.amazon.com/) 创建 Smart Home Skill
2. 配置 Account Linking(OAuth 2.0)
3. 修改 `src/utils/config.ts`:
```ts
ALEXA: {
CLIENT_ID: '你的ClientID',
CLIENT_SECRET: '你的ClientSecret',
...
}
```
## 📱 功能列表
### 已实现 ✅
- [x] 多端登录(账号 + 第三方OAuth)
- [x] 设备列表(多平台聚合)
- [x] 设备详情(涂鸦控制面板)
- [x] 设备控制(开关/亮度/色温/颜色/温度/窗帘)
- [x] Wi-Fi配网(EZ/AP/蓝牙模式)
- [x] 联动规则管理
- [x] 告警消息查看
- [x] 第三方账号绑定
### 待开发 🚧
- [ ] Google Home 设备控制(Phase 2)
- [ ] Alexa 设备控制(Phase 3)
- [ ] 数据可视化图表
- [ ] WebSocket实时推送
- [ ] 语音控制集成
- [ ] Apple HomeKit 原生插件(Phase 4)
## 🎨 设备类型支持
| 类型 | 涂鸦 | Google | Alexa |
|------|------|--------|-------|
| 灯(开关/亮度/色温/颜色) | ✅ | ✅ | ✅ |
| 开关/插座 | ✅ | ✅ | ✅ |
| 空调/温控 | ✅ | ✅ | ✅ |
| 窗帘 | ✅ | ✅ | ✅ |
| 门锁 | ✅ | ✅ | ✅ |
| 摄像头 | ✅ | ✅ | ✅ |
| 传感器 | ✅ | ✅ | - |
## 🔐 安全说明
- 所有第三方平台的 `Client Secret` 建议保存在自家后端
- Token 存储使用 `uni.storage` 加密保存
- 生产环境应启用 HTTPS + 证书校验
- 用户授权应使用 PKCE 流程
## 📋 开发规范
- 使用 **Vue 3 Composition API** + `<script setup>` 语法
- TypeScript 严格模式
- 状态管理统一使用 **Pinia**
- 样式使用 **SCSS**,遵循 BEM 命名
- API 请求统一使用 `utils/request.ts`
## 🔗 相关项目
- [后端服务](../backend) - Spring Boot 微服务
- [管理后台](../frontend/admin) - Vue 3 桌面端
- [Docker 配置](../docker) - 基础设施
## 📄 许可
Copyright © 2026 IoT Platform. All rights reserved.