Files
smart_grid_iot/.trae/specs/smart-grid-iot-admin/spec.md
T
andyesfly 3d7eb12103 feat: 初始化智能物联网设备管理系统前后端基础项目
完成项目整体结构搭建,包含:
1. 前端Vue3+TS+Vite+Antd项目基础配置与核心依赖
2. 后端MidwayJS+TypeORM+JWT权限认证框架
3. 完整的用户、角色、权限、日志数据库表结构
4. 核心业务模块API与基础服务实现
5. 全局样式、路由、状态管理配置
2026-05-28 16:23:15 +08:00

117 lines
5.2 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.
# 智能物联网设备后台管理系统 - 实施规范 (Spec)
## Why
企业需要一个集中化的智能物联网设备管理平台来统一管理设备、控制访问权限和维护系统配置。当前缺乏这样的管理系统导致设备分散、权限混乱、运维效率低下。
## What Changes
- **初始化前后端分离项目结构**:基于Vue 3 + Midway.js的全栈应用
- **实现认证授权系统**:JWT Token认证 + RBAC三层权限模型
- **构建核心管理模块**:用户管理、角色权限、系统设置、操作日志、仪表盘
- **建立数据库模型**:6张核心表(users, roles, permissions, user_roles, role_permissions, operation_logs)
- **开发RESTful API**:18个标准API接口,包含完整的CRUD操作
- **设计现代化UI界面**:基于Ant Design Vue的后台管理系统界面
## Impact
- Affected specs: 无(新项目)
- Affected code: 全新代码库(client/前端 + server/后端)
## ADDED Requirements
### Requirement: 项目初始化与基础架构
The system SHALL provide a complete full-stack project structure with:
- Vue 3 + TypeScript前端框架(Vite构建工具)
- Midway.js 3.x后端框架(TypeScript)
- Ant Design Vue 4.x UI组件库
- Pinia状态管理 + Vue Router 4.x路由
- Sequelize ORM + MySQL数据库
- Redis缓存支持
- Yarn包管理器(遵循用户规则)
#### Scenario: 成功初始化项目
- **WHEN** 开发者运行初始化命令
- **THEN** 创建完整的前后端项目结构,所有依赖安装成功,开发服务器可正常启动
### Requirement: 用户认证与授权系统
The system SHALL implement secure authentication and authorization:
- JWT Token双Token机制(Access Token 2h + Refresh Token 7d)
- bcrypt密码加密存储(saltRounds=10)
- RBAC三层权限模型(User → Role → Permission)
- 前端路由守卫 + 后端接口鉴权
- 登录失败锁定策略
- IP白名单功能(可选)
#### Scenario: 用户成功登录
- **WHEN** 用户输入正确的账号密码并提交
- **THEN** 系统验证凭据,返回JWT Token和用户信息(含角色权限),跳转到仪表盘页面
#### Scenario: 未授权访问拦截
- **WHEN** 未登录用户或无权限用户尝试访问受保护资源
- **THEN** 系统重定向到登录页或显示403禁止访问提示
### Requirement: 用户管理模块
The system SHALL provide complete user management functionality:
- 用户列表展示(分页、搜索、筛选、排序)
- 新增用户(含角色分配)
- 编辑用户信息(密码修改可选)
- 删除用户(二次确认)
- 启用/禁用用户状态切换
- 批量操作(批量删除、批量启用/禁用)
#### Scenario: 管理员成功创建用户
- **WHEN** 管理员填写完整的用户信息表单(必填项:用户名、密码、昵称、角色)并提交
- **THEN** 系统校验数据合法性,创建用户记录,分配指定角色,刷新用户列表显示新用户
### Requirement: 角色与权限管理模块
The system SHALL implement flexible role-based access control:
- 角色CRUD操作(创建、编辑、删除、查看)
- 权限树形结构展示(菜单权限、按钮权限、API权限)
- 角色-权限关联配置(可视化勾选)
- 角色关联用户数量统计
- 权限继承机制
#### Scenario: 管理员配置角色权限
- **WHEN** 管理员选择某个角色,在权限树中勾选/取消勾选权限节点
- **THEN** 系统保存角色-权限关联关系,拥有该角色的用户立即获得/失去相应权限
### Requirement: 系统设置模块
The system SHALL provide configurable system parameters:
- 基本设置(站点名称、Logo上传、会话超时时间)
- 安全设置(密码策略、登录限制、IP白名单)
- 通知设置(邮件开关、SMTP配置)
- 设置变更实时生效(Redis缓存更新)
#### Scenario: 管理员修改系统参数
- **WHEN** 管理员在设置页面修改某个配置项并保存
- **THEN** 系统验证参数合法性,持久化到数据库,清除相关缓存,返回成功提示
### Requirement: 操作日志模块
The system SHALL record all user operations for audit:
- 自动记录用户操作(增删改查)
- 日志字段:操作人、操作类型、时间、IP地址、请求详情
- 日志查询(按时间范围、操作人、操作类型筛选)
- 日志导出功能(CSV/Excel格式)
- 异步写入保证性能
#### Scenario: 系统自动记录操作日志
- **WHEN** 用户执行任何数据变更操作(创建、编辑、删除)
- **THEN** 系统异步记录完整操作信息到operation_logs表,不影响主业务响应时间
### Requirement: 仪表盘模块
The system SHALL provide data visualization dashboard:
- 关键指标统计卡片(设备总数、在线数、今日告警数、活跃用户数)
- 设备趋势折线图(近7天数据)
- 设备类型分布饼图
- 最近告警滚动列表
- 最近活动时间线
- 数据实时刷新(可配置间隔)
#### Scenario: 用户查看仪表盘
- **WHEN** 已登录用户访问仪表盘页面
- **THEN** 页面加载统计数据和图表,展示系统运营概况,数据每30秒自动刷新
## MODIFIED Requirements
无(新项目,无需修改现有需求)
## REMOVED Requirements
无(新项目,无需移除功能)