# 智能物联网设备后台管理系统 - 实施规范 (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 无(新项目,无需移除功能)