WuYongJie ff41839238 feat: 实现Apple风格UI系统和产品上传功能
- 完整实现Apple HIG 2025设计系统
- 添加Modal弹窗组件(毛玻璃效果、流畅动画)
- 添加FileUpload文件上传组件(拖拽、批量上传、进度显示)
- 实现产品上传功能(支持DWG/GLB/GLTF文件)
- 优化产品列表展示(可折叠的产品+SKU结构)
- 实现Tab切换功能(3D模型管理、五金件、BOM、文档)
- 修复主题系统hydration错误
- 优化按钮和间距,符合Apple设计规范
- 添加分享页面的Apple风格重设计
- 创建测试数据脚本
2025-12-12 20:16:41 +08:00
..

部署核心库

统一的部署功能模块,支持图形化安装器和命令行脚本。

功能模块

1. 设备连接管理 (connection.ts)

  • SSH 连接 (Linux/NAS)
  • Docker API 连接
  • WinRM 连接 (Windows)
  • 远程命令执行
  • 文件上传下载

2. 硬件检测引擎 (hardware.ts)

  • CPU 信息检测
  • 内存检测
  • 磁盘检测
  • Docker 环境检测
  • 硬件配置分析

3. 配置生成器 (config.ts)

  • 生成 docker-compose.yml
  • 生成 .env 配置文件
  • 支持标准模式和轻量级模式
  • 配置验证

4. Docker 管理器 (docker.ts)

  • Docker 镜像管理
  • 容器启动和停止
  • 服务健康检查
  • 日志查看

使用示例

检测硬件配置

```typescript import { detectHardware } from './hardware'

const connection = { type: 'linux', host: '192.168.1.100', port: 22, username: 'admin', password: 'password', }

const result = await detectHardware(connection)

console.log('推荐部署模式:', result.recommendedMode) console.log('是否可以部署:', result.canDeploy) console.log('警告信息:', result.warnings) ```

生成配置文件

```typescript import { generateDefaultConfig, generateEnvFile, generateDockerCompose } from './config'

const config = generateDefaultConfig('standard') const envFile = generateEnvFile(config) const composeFile = generateDockerCompose('standard')

// 保存到文件 fs.writeFileSync('.env', envFile) fs.writeFileSync('docker-compose.yml', composeFile) ```

部署服务

```typescript import { startDockerServices } from './docker'

const result = await startDockerServices(connection, composeFile)

if (result.success) { console.log('部署成功!') console.log('访问地址:', result.accessUrl) console.log('管理员账号:', result.adminUsername) } else { console.error('部署失败:', result.errors) } ```

开发状态

当前版本为基础框架,部分功能标记为 TODO 需要后续实现:

  • SSH 连接实现 (使用 ssh2 库)
  • WinRM 连接实现 (使用 node-powershell)
  • 远程命令执行完整实现
  • 文件上传下载实现
  • 硬件检测命令实现
  • Docker 服务健康检查解析
  • 单元测试

依赖库

需要安装以下依赖:

```bash npm install ssh2 node-powershell dockerode npm install --save-dev @types/ssh2 @types/dockerode ```

测试

```bash npm test ```