- 数据库:为checklist_templates表添加standard字段,支持检查标准存储 - 后端API:更新POST /api/models/checklist接口,支持保存standard字段 - 前端页面:在型号管理页面添加检查标准列和编辑功能 - 类型定义:更新CLItem接口,添加可选的standard字段 - 数据转换:修复checklistTemplates数据结构,将扁平数组转换为分组对象 - 防御性编程:添加Array.isArray()类型检查,避免运行时错误 - 物料分类:修复DELETE接口参数传递方式,从body改为URL查询参数 |
||
|---|---|---|
| .claude | ||
| .kiro | ||
| .vscode | ||
| dist | ||
| docs | ||
| guidelines | ||
| prisma | ||
| public/uploads/apps | ||
| python_backend | ||
| src | ||
| .env | ||
| .gitattributes | ||
| .gitignore | ||
| API_LICENSE.md | ||
| ARCHITECTURE.md | ||
| ATTRIBUTIONS.md | ||
| CLAUDE.md | ||
| DEMO_GUIDE.md | ||
| IMPLEMENTATION_SUMMARY.md | ||
| QUICKSTART.md | ||
| README.md | ||
| TEST_LICENSE.md | ||
| next-env.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| prisma.config.ts | ||
| tsconfig.json | ||
| tsconfig.tsbuildinfo | ||
README.md
Enterprise SaaS Dashboard Design
This is a code bundle for Enterprise SaaS Dashboard Design. The original project is available at https://www.figma.com/design/SD8ReJmCwErmfmNVnHRlJb/Enterprise-SaaS-Dashboard-Design.
🎯 项目简介
企业级SaaS设备管理平台,提供设备全生命周期管理、授权许可管理、维修工单、固件库及系统配置等功能。
✨ 核心功能
- 设备管理 - 设备注册、列表、详情、BOM清单
- 授权管理 - 授权项配置、授权文件生成、手机APP下载接口 ⭐ NEW
- 配置文件管理 - 设备技术参数配置
- 维修管理 - 维修工单创建、跟踪、统计
- 固件管理 - 固件版本管理、发布
- 报废管理 - 设备报废流程管理
🚀 快速开始
安装依赖
npm i
启动开发服务器
npm run dev
构建生产版本
npm run build
npm run preview
📚 新增功能:授权文件管理
功能概述
本平台现已支持根据授权项和配置文件自动生成JSON格式的授权文件,手机APP可通过API接口根据设备SN号获取对应的授权文件。
核心特性
✅ 智能生成 - 保存授权时自动生成JSON文件
✅ 双重授权 - 支持设备级和型号级两种授权模式
✅ 数字签名 - 每个授权文件包含SHA256签名确保安全性
✅ 完整日志 - 记录每次授权的下载行为
✅ 可视化预览 - 管理后台可直接预览和下载授权文件
相关文档
手机APP集成示例
// APP启动时获取设备授权
const response = await fetch(
`http://your-server.com/api/licenses/download?sn=${deviceSN}`
);
const license = await response.json();
// 启用授权的功能模块
license.authModules.forEach(module => {
if (module.enabled) {
enableFeature(module.id);
}
});
// 应用配置参数
applyConfig(license.config);
🛠️ 技术栈
- 前端框架: Next.js 14 (App Router)
- UI组件: React + Tailwind CSS
- 图标库: lucide-react
- 数据库: SQLite (better-sqlite3)
- 语言: TypeScript
📁 项目结构
src/
├── app/
│ ├── api/ # API路由
│ │ ├── licenses/ # 授权管理API ⭐
│ │ │ ├── route.ts
│ │ │ ├── download/route.ts # 手机APP下载接口
│ │ │ └── [id]/preview/route.ts # 授权预览接口
│ │ ├── devices/ # 设备管理API
│ │ ├── config-files/ # 配置文件API
│ │ └── ...
│ ├── licenses/ # 授权管理页面 ⭐
│ ├── devices/ # 设备管理页面
│ ├── config-files/ # 配置文件页面
│ └── ...
├── lib/
│ ├── db.ts # 数据库操作(含授权文件生成工具)⭐
│ └── ...
└── styles/
🔧 API接口概览
授权管理API
| 接口 | 方法 | 说明 |
|---|---|---|
/api/licenses |
GET | 获取授权列表 |
/api/licenses |
POST | 创建授权(自动生成JSON) |
/api/licenses |
PUT | 更新授权 |
/api/licenses/download?sn=xxx |
GET | ⭐ 手机APP获取授权文件 |
/api/licenses/{id}/preview |
GET | 预览授权文件JSON |
授权文件JSON结构
{
"version": "1.0",
"deviceModel": "GD-30 Supreme",
"deviceSN": "GD30-20260430-001",
"validUntil": "2027-04-30",
"status": "active",
"authModules": [...],
"config": {...},
"signature": {...}
}
📊 数据库表
主要表结构
devices- 设备信息device_models- 设备型号licenses- 授权记录(含license_file字段)⭐config_files- 配置文件license_download_logs- 授权下载日志 ⭐ NEWrepair_orders- 维修工单firmware- 固件版本scrap_records- 报废记录
🔐 安全特性
- 数字签名验证 - 防止授权文件被篡改
- 下载日志审计 - 追踪每次授权下载行为
- 有效期控制 - 只返回未过期的有效授权
- 双重匹配机制 - 设备级优先于型号级授权
📝 开发规范
- 使用TypeScript进行类型检查
- 遵循Next.js App Router规范
- API路由放在
src/app/api/目录下 - 页面组件放在
src/app/对应路由下 - 使用Tailwind CSS进行样式开发
🤝 贡献指南
欢迎提交Issue和Pull Request!
📄 许可证
本项目仅供学习和参考使用。
更新时间: 2026-04-30
版本: v1.1.0 (新增授权文件管理功能)