# SkcDeskTools
**Repository Path**: macplus/skc-desk-tools
## Basic Information
- **Project Name**: SkcDeskTools
- **Description**: skc桌面工具,支持skc升级等操作
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-22
- **Last Updated**: 2026-05-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SKC 桌面升级工具
[](LICENSE)
[](https://nodejs.org/)
[](https://vuejs.org/)
[](https://www.electronjs.org/)
[](https://element-plus.org/)
基于 Electron + Vite + Vue 3 + TypeScript 构建的现代化 SKC 桌面管理工具
---
## 📋 项目简介
**SKC 桌面升级工具**是一款专为 SKC 系统设计的桌面辅助应用,提供版本管理、数据库配置、备份恢复等核心功能,简化 SKC 系统的日常维护和升级操作。
### ✨ 核心特性
- 🔄 **智能升级**: 自动检测版本差异,执行增量升级
- 💾 **数据备份**: 支持部署文件和数据库的完整备份与恢复
- 🔧 **配置管理**: 可视化的数据库配置查看与连接测试
- 📊 **版本对比**: 实时显示当前版本与新版本信息
- 🎨 **现代界面**: 基于 Element Plus 的优雅用户界面
- 🔒 **安全可靠**: 遵循 Electron 安全最佳实践
---
## 🛠️ 技术架构
### 核心技术栈
| 技术 | 版本 | 说明 |
|------|------|------|
| Electron | 41.0.3 | 跨平台桌面应用框架 |
| Vite | 8.0.9 | 极速前端构建工具 |
| Vue | 3.5.32 | 渐进式 JavaScript 框架 |
| TypeScript | 6.0.2 | 类型安全的 JavaScript |
| Element Plus | 2.13.7 | Vue 3 组件库 |
| electron-builder | 26.8.1 | 应用打包工具 |
| mysql2 | ^3.22.2 | MySQL 数据库驱动 |
### 项目结构
```
deskTool/
├── packages/
│ ├── main/ # Electron 主进程 (TypeScript)
│ │ └── src/
│ │ ├── modules/ # 功能模块 (窗口管理、自动更新等)
│ │ └── index.ts # 主进程入口
│ ├── preload/ # 预加载脚本 (IPC 桥接)
│ └── renderer/ # Vue 3 渲染进程 (前端界面)
│ └── src/
│ ├── page/ # 页面组件
│ ├── utils/ # 工具函数
│ └── router/ # 路由配置
├── config/ # 配置文件
├── buildResources/ # 构建资源
├── tests/ # E2E 测试
└── types/ # TypeScript 类型定义
```
---
## 🚀 快速开始
### 环境要求
- **Node.js** >= 23.0.0
- **npm** >= 10.0.0
- **Windows** 7 或更高版本 (64位)
### 安装与运行
```bash
# 1. 克隆项目
git clone https://gitee.com/macplus/skc-desk-tools.git
cd deskTool
# 2. 安装依赖
npm install
# 3. 启动开发模式
npm start
# 4. 编译打包 (生成可执行文件)
npm run compile
```
打包完成后,可在 `dist` 目录找到安装程序:
- Windows: `root-{version}-win-x64.exe`
### 常用命令
| 命令 | 说明 |
|------|------|
| `npm start` | 启动开发服务器 (支持热重载) |
| `npm run compile` | 编译并打包应用 |
| `npm run build` | 仅构建所有包 |
| `npm run typecheck` | TypeScript 类型检查 |
| `npm test` | 运行 E2E 测试 |
---
## 📖 功能说明
### 1. 系统设置 (`setting_page`)
- **路径配置**: 设置新版本安装包路径、当前部署路径、备份目录路径
- **版本信息**: 自动读取并显示当前版本和新版本信息
- **数据库配置**: 读取并展示数据库连接配置
- **连接测试**: 支持测试数据库连接是否正常
### 2. 版本升级 (`upgrade_page`)
- **智能检测**: 自动识别版本差异
- **增量升级**: 按版本号顺序执行 SQL 升级脚本
- **升级顺序**: 先升级数据库,后升级部署包
- **进度展示**: 实时显示升级进度和状态
### 3. 备份管理
#### 部署备份 (`backup_deploy_page`)
- 备份当前部署的 webapps 文件
- 支持选择历史备份进行恢复
#### 数据库备份 (`backup_database_page`)
- 使用 mysqldump 工具备份数据库
- 支持查看和恢复历史备份
#### 备份恢复 (`restore_page`)
- 查看备份列表 (按版本组织)
- 支持恢复指定版本的备份
### 4. 工具集 (`tools_page`)
提供常用的系统维护工具和快捷操作。
---
## 🔌 进程通信
### 渲染进程 → 主进程
```typescript
// renderer - 调用主进程方法
import { FarmParasUtils } from '../utils/farmParasUtils'
const result = await FarmParasUtils.selectDirectory({
title: '选择目录'
})
```
### 主进程暴露 API
``typescript
// preload - 桥接层
contextBridge.exposeInMainWorld('farmParasAPI', {
selectDirectory: (options) => ipcRenderer.invoke('select-directory', options),
// ... 其他 API
})
```
---
## 📝 开发规范
### 代码风格
- ✅ 使用 TypeScript 编写所有代码
- ✅ Vue 组件使用 Composition API (`