2025-06-19 14:32:04 +08:00
|
|
|
|
# XNSim 门户网站
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
一个基于 Node.js 的现代化门户系统,集成了 C++ 动态库认证功能,专为 XNSim 项目设计。
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## 📋 目录
|
|
|
|
|
|
|
|
|
|
- [功能特点](#功能特点)
|
|
|
|
|
- [系统架构](#系统架构)
|
|
|
|
|
- [环境要求](#环境要求)
|
|
|
|
|
- [快速开始](#快速开始)
|
|
|
|
|
- [API 文档](#api-文档)
|
|
|
|
|
- [权限管理](#权限管理)
|
|
|
|
|
- [技术栈](#技术栈)
|
|
|
|
|
- [常见问题](#常见问题)
|
|
|
|
|
|
|
|
|
|
## ✨ 功能特点
|
|
|
|
|
|
|
|
|
|
### 🔐 认证系统
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
|
|
|
|
- 美观的响应式登录界面
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- 跨平台动态库支持(Windows/Linux)
|
|
|
|
|
- 基于权限级别的用户角色管理
|
|
|
|
|
- 记住登录状态功能
|
|
|
|
|
|
|
|
|
|
### 🔧 接口配置管理
|
|
|
|
|
|
|
|
|
|
- 完整的 CRUD 操作支持
|
|
|
|
|
- Excel 文件批量导入功能
|
|
|
|
|
- 多维度筛选(构型、ATA 章节、结构体名等)
|
|
|
|
|
- 分页显示和批量操作
|
|
|
|
|
- 数据验证和错误处理
|
|
|
|
|
|
|
|
|
|
### 📊 系统监控
|
|
|
|
|
|
|
|
|
|
- 实时数据监控
|
|
|
|
|
- 系统日志管理
|
|
|
|
|
- 用户行为追踪
|
|
|
|
|
- 性能指标展示
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## 🏗️ 系统架构
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
```
|
|
|
|
|
XNSimPortal/
|
|
|
|
|
├── assets/ # 静态资源文件
|
|
|
|
|
├── components/ # 前端组件
|
|
|
|
|
├── routes/ # API 路由
|
|
|
|
|
├── utils/ # 工具函数
|
|
|
|
|
├── server.js # 主服务器文件
|
|
|
|
|
└── main.html # 主页面
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 📋 环境要求
|
|
|
|
|
|
|
|
|
|
### 必需软件
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- **Node.js**: 14.x 或更高版本
|
|
|
|
|
- **SQLite**: 5.7 或更高版本
|
|
|
|
|
- **操作系统**: Windows 10+ / Linux / macOS
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 环境变量
|
|
|
|
|
|
|
|
|
|
必须设置 `XNCore` 环境变量,指向 XNSim 安装根目录:
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
|
|
|
|
```bash
|
2025-06-19 14:32:04 +08:00
|
|
|
|
# Linux/macOS
|
2025-04-28 12:25:20 +08:00
|
|
|
|
export XNCore=/path/to/xncore/directory
|
|
|
|
|
|
|
|
|
|
# Windows (CMD)
|
|
|
|
|
set XNCore=C:\path\to\xncore\directory
|
|
|
|
|
|
|
|
|
|
# Windows (PowerShell)
|
|
|
|
|
$env:XNCore = "C:\path\to\xncore\directory"
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 动态库文件
|
|
|
|
|
|
|
|
|
|
确保在 `$XNCore/lib` 目录下存在相应动态库:
|
|
|
|
|
|
|
|
|
|
| 操作系统 | 文件名 | 说明 |
|
|
|
|
|
| -------- | ------------- | ------------------ |
|
|
|
|
|
| Windows | `login.dll` | Windows 动态链接库 |
|
|
|
|
|
| Linux | `liblogin.so` | Linux 共享对象库 |
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## 🚀 快速开始
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 1. 克隆项目
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone <repository-url>
|
|
|
|
|
cd XNSimPortal
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. 安装依赖
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npm install
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 3. 配置数据库
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
创建 `.env` 文件并配置数据库连接:
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
|
|
|
|
```env
|
|
|
|
|
DB_HOST=localhost
|
|
|
|
|
DB_USER=your_username
|
|
|
|
|
DB_PASSWORD=your_password
|
|
|
|
|
DB_NAME=xnsim_db
|
2025-06-19 14:32:04 +08:00
|
|
|
|
DB_PORT=3306
|
2025-05-07 13:46:48 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 4. 启动服务
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npm start
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 5. 访问应用
|
|
|
|
|
|
|
|
|
|
打开浏览器访问:http://localhost:3000
|
|
|
|
|
|
|
|
|
|
## 📚 API 文档
|
|
|
|
|
|
|
|
|
|
### 认证 API
|
|
|
|
|
|
|
|
|
|
#### 用户登录
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
POST /api/login
|
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"username": "string",
|
|
|
|
|
"password": "string",
|
|
|
|
|
"remember": boolean
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**响应示例:**
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"success": true,
|
|
|
|
|
"message": "登录成功",
|
|
|
|
|
"permissionLevel": 3,
|
|
|
|
|
"role": "管理员"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 接口配置 API
|
|
|
|
|
|
|
|
|
|
#### 获取接口列表
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
GET /api/interface/list?page=1&limit=10&filter=...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 添加接口
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
POST /api/interface/add
|
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"configuration": "string",
|
|
|
|
|
"ataChapter": "string",
|
|
|
|
|
"structName": "string",
|
|
|
|
|
"interfaceName": "string",
|
|
|
|
|
"dataType": "string",
|
|
|
|
|
"arraySize": "string",
|
|
|
|
|
"description": "string"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 更新接口
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
PUT /api/interface/update
|
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"currentData": {...},
|
|
|
|
|
"originalData": {...}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 删除接口
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
DELETE /api/interface/delete?id=123
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 导入接口配置
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
POST /api/interface/import
|
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"data": [...]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 下载导入模板
|
|
|
|
|
|
|
|
|
|
```http
|
|
|
|
|
GET /api/interface/template
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🔐 权限管理
|
|
|
|
|
|
|
|
|
|
系统采用五级权限体系:
|
|
|
|
|
|
|
|
|
|
| 级别 | 角色 | 权限描述 |
|
|
|
|
|
| ---- | ---------- | ---------------- |
|
|
|
|
|
| 0 | 访客 | 仅可查看公开信息 |
|
|
|
|
|
| 1 | 普通用户 | 基础功能访问权限 |
|
|
|
|
|
| 2 | 高级用户 | 扩展功能访问权限 |
|
|
|
|
|
| 3 | 管理员 | 系统管理权限 |
|
|
|
|
|
| 4 | 超级管理员 | 完全系统控制权限 |
|
|
|
|
|
|
|
|
|
|
## 🛠️ 技术栈
|
|
|
|
|
|
|
|
|
|
### 前端
|
|
|
|
|
|
|
|
|
|
- **HTML5** - 语义化标记
|
|
|
|
|
- **CSS3** - 样式和动画
|
|
|
|
|
- **JavaScript ES6+** - 交互逻辑
|
|
|
|
|
- **Web Components** - 组件化开发
|
|
|
|
|
|
|
|
|
|
### 后端
|
|
|
|
|
|
|
|
|
|
- **Node.js** - 运行时环境
|
|
|
|
|
- **Express.js** - Web 框架
|
|
|
|
|
- **MySQL** - 关系型数据库
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 核心库
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- **ffi-napi** - C++ 动态库调用
|
|
|
|
|
- **xlsx** - Excel 文件处理
|
|
|
|
|
- **mysql2** - 数据库驱动
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## ❓ 常见问题
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### Q: 动态库加载失败怎么办?
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
A: 请检查:
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
1. `XNCore` 环境变量是否正确设置
|
|
|
|
|
2. 动态库文件是否存在于 `$XNCore/lib` 目录
|
|
|
|
|
3. 动态库是否包含 `Login_validateUser` 导出函数
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### Q: 数据库连接失败?
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
A: 请确认:
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
1. MySQL 服务是否正在运行
|
|
|
|
|
2. `.env` 文件中的数据库配置是否正确
|
|
|
|
|
3. 数据库用户是否有足够权限
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### Q: 接口配置导入失败?
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
A: 请检查:
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
1. Excel 文件格式是否符合模板要求
|
|
|
|
|
2. 必填字段是否完整
|
|
|
|
|
3. 数据格式是否符合验证规则
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## 📝 开发规范
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 代码风格
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- 使用 ES6+ 语法
|
|
|
|
|
- 遵循 JavaScript 标准规范
|
|
|
|
|
- 添加适当的注释和文档
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 数据验证
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- 接口名称必须符合 C++ 命名规范
|
|
|
|
|
- 数组大小必须大于 1
|
|
|
|
|
- 必填字段不能为空
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## 🔄 更新日志
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### v0.31.0.250619_alpha (当前版本)
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- ✅ 基础登录认证功能
|
|
|
|
|
- ✅ 接口配置管理
|
|
|
|
|
- ✅ Excel 导入导出
|
|
|
|
|
- ✅ 权限管理系统
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
### 计划功能
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- 🔄 IDL 文件导入支持
|
|
|
|
|
- 🔄 实时数据监控
|
|
|
|
|
- 🔄 用户行为分析
|
|
|
|
|
- 🔄 API 文档自动生成
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
## 📞 支持
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
如有问题或建议,请通过以下方式联系:
|
2025-04-28 12:25:20 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
- 提交 Issue
|
|
|
|
|
- 发送邮件至技术支持
|
|
|
|
|
- 查看项目 Wiki
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
---
|
2025-05-07 13:46:48 +08:00
|
|
|
|
|
2025-06-19 14:32:04 +08:00
|
|
|
|
**注意**: 本系统需要正确配置 C++ 动态库才能正常工作。确保动态库包含 `Login_validateUser` 函数,该函数接受用户名和密码参数,返回权限级别(负值表示失败)。
|