调整界面

调整脚本
增加功能:备份、恢复、清空
This commit is contained in:
2026-04-03 14:05:18 +08:00
parent 4d0ce274e0
commit 51d607d970
15 changed files with 1494 additions and 679 deletions

404
README.md
View File

@@ -1,221 +1,277 @@
[![star](https://gitee.com/dromara/electron-egg/badge/star.svg?theme=gvp)](https://gitee.com/dromara/electron-egg/stargazers)
# PQS-9100 Tool Client
<div align=center>
<h3>🎉🎉🎉 ElectronEgg V4 已发布! 🎉🎉🎉</h3>
</div>
<br>
## 项目简介
<div align=center>
<img src="./public/images/example/logo.png" width="150" height="150" />
</div>
这是一个基于 Electron 的桌面端小工具,用于离线生成和管理设备激活码。
<div align=center>
<h3><strong>一个入门简单、跨平台、企业级桌面软件开发框架</strong></h3>
</div>
<br>
项目定位:
<!-- ## 🌏 [English](https://www.yuque.com/u34495/ee-doc) | [中文](https://www.kaka996.com/) -->
- 面向 C 端桌面使用场景
- 不依赖后端服务
- 数据保存在本地内置 SQLite 数据库
- 当前核心业务为设备激活记录管理
## 📋 介绍
该项目是在 `electron-egg` 模板基础上裁剪和扩展得到,现阶段实际业务代码集中在“设备激活”模块。
> 框架已经广泛应用于记账、政务、企业、医疗、学校、股票交易、ERP、娱乐、视频等领域客户端请放心使用
## 技术栈
## 👦 谁可以使用
- 桌面框架Electron 31
- Electron 应用框架electron-egg / ee-core
- 前端框架Vue 3
- UI 组件库Ant Design Vue
- 构建工具Vite 6
- 本地数据库better-sqlite3
- 日期处理dayjs
- 加解密jsencrypt
项目已经有 5 个交流群,覆盖`前端``java``go``python``php` 等开发者。
## 项目结构
无论你是前端、服务端、运维、游戏、客户端等,都可以很快入门,
```text
.
├─electron/ Electron 主进程代码
│ ├─config/ 应用配置
│ ├─controller/ IPC 控制器
│ ├─preload/ 应用启动与 preload 逻辑
│ ├─service/ 主进程服务
│ │ ├─database/ 本地数据库封装
│ │ └─os/ 托盘、窗口、安全、更新等系统能力
│ └─main.ts Electron 入口
├─frontend/ Vue 前端应用
│ ├─src/
│ │ ├─api/ IPC 路由定义
│ │ ├─assets/ 静态资源与样式
│ │ ├─layouts/ 页面布局
│ │ ├─router/ 路由配置
│ │ ├─utils/ 工具函数
│ │ └─views/activate/ 激活业务页面
│ ├─.env.development 开发环境变量
│ ├─.env.production 生产环境变量
│ └─vite.config.ts 前端构建配置
├─build/ 打包资源
├─cmd/ electron-builder 配置
├─public/ Electron 公共资源
├─package.json 根脚本与 Electron 依赖
└─README.md 项目说明
```
## 🐶 精彩案例
## 核心功能
- [**点击查看**](#项目案例)
### 1. 设备激活码生成
## 📺 特点
- 🍩 **为什么使用?** 桌面软件(办公方向、 个人工具仍然是未来十几年PC端需求之一提高工作效率
- 🍉 **简单:** 只需懂 JavaScript
- 🍑 **愿景:** 所有开发者都能学会桌面软件研发
- 🍰 **gitee** https://gitee.com/dromara/electron-egg **5100+**
- 🍨 **github** https://github.com/dromara/electron-egg **1800+**
- 🏆 码云最有价值开源项目
![](./public/images/example/ee-zs.png)
前端页面提供以下能力:
## 📚 文档
- 快速体验:[教程文档](https://www.kaka996.com/)
![](./public/images/example/v3-home.png)
- 录入设备申请码
- 选择需要激活的模块
- 生成设备激活码
- 复制激活码
- 填写备注
## 📦 特性
1. 🍄 跨平台一套代码可以打包成windows版、Mac版、Linux版、国产UOS、Deepin、麒麟等
2. 🌹 架构:单业务进程/模块化/多任务(进程,线程,渲染进程),让开发大型项目变的简单。
3. 🌱 简单高效:只需学习 js 语言
4. 🌴 前端独立理论上支持任何前端技术vue、react、html等等
5. 🍁 工程化:可以用前端、服务端的开发思维,来编写桌面软件
6. 🌷 高性能事件驱动、非阻塞式IO
7. 🌰 功能丰富:配置、通信、插件、数据库、升级、打包、工具... 应有尽有
8. 💐 安全:支持字节码加密、压缩混淆加密
9. 🌻 功能demo桌面软件常见功能框架集成或提供demo
当前支持的模块有:
## ✈️ 使用场景
- `simulate`
- `digital`
- `contrast`
### 1. 🚀 常规桌面软件
- 🚖 windows平台
### 2. 激活记录管理
![](./public/images/example/ee-win-home.png)
激活记录页面支持:
- 🚍 macOS平台
![](./public/images/example/ee-mac-home.png)
- `macAddress` 查询
- 按模块组合查询
- 查看历史激活记录
- 复制历史记录中的激活码
- 将新生成的激活记录保存到本地数据库
- 🚔 linux平台 - 国产UOS、Deepin
![](./public/images/example/uos-home.png)
### 3. 本地数据库存储
- 🚔 linux平台 - ubuntu
![](./public/images/example/ubuntu-db.png)
项目不依赖后端,激活记录直接写入本地 SQLite。
### 🚐 2. vue、react、angular、web 转换成桌面软件
- 🚙 vue-ant-design本地
当前数据库文件名:
![](./public/images/example/vue-antd.png)
- `pqs9100-tool.db`
- 🚙 禅道项目管理web项目地址
当前表:
![](./public/images/example/ee-project-7.png)
- `activate_record`
### 🚂 3. 游戏h5相关技术开发
- 🚊 忍者100层
主要字段:
![](./public/images/example/ee_game_1.png)
- `id`
- `macAddress`
- `applicationCode`
- `module`
- `activationCode`
- `createTime`
- `remark`
## 业务流程
## 📒 开始使用
整体流程如下:
- ✒️ [安装文档](https://www.kaka996.com/pages/e64ff6/)
## 项目案例
- 🐟 框架已经应用于医疗、学校、政务、股票交易、ERP、娱乐、视频、企业等领域客户端
1. 用户在前端输入设备申请码。
2. 前端使用 RSA 私钥解密申请码,解析出设备信息。
3. 用户选择需要激活的模块。
4. 前端组装激活码明文后,再用 RSA 公钥加密生成激活码。
5. 用户点击保存后,前端通过 IPC 调用主进程。
6. 主进程将记录写入本地 SQLite 数据库。
7. 列表页面通过 IPC 查询本地数据库并展示历史记录。
### 🐸 远控
## 核心代码说明
- RQ Center
![](./public/images/example/rq-1.png)
![](./public/images/example/rq-2.png)
### Electron 主进程
### 🐸 云盘
- `electron/main.ts`
- 应用启动入口
- 注册生命周期与 preload
- FM Cloud
![](./public/images/example/fm-p2.png)
![](./public/images/example/fm-p1.png)
![](./public/images/example/fm-p4.png)
- `electron/preload/index.ts`
- 启动时初始化托盘
- 初始化安全服务
- 初始化自动更新服务
- 初始化本地数据库
### 🐸 IM
- `electron/preload/lifecycle.ts`
- 控制应用 ready、窗口 ready、关闭前等生命周期行为
- 启动后自动设置主窗口大小和位置
- Cede IM
![](./public/images/example/im-p1.png)
![](./public/images/example/im-p5.png)
![](./public/images/example/im-p1.png)
### 数据库相关
### 🐸 壁纸
- `electron/service/database/basedb.ts`
- SQLite 基础封装
- 负责数据库文件路径和连接初始化
- warpar
![](./public/images/example/aw-3.png)
- `electron/service/database/activateRecord.ts`
- `activate_record` 表初始化
- 保存激活记录
- 查询激活记录
- 删除记录等数据库操作
### 🐸 英雄联盟助手
- `electron/controller/activateRecord.ts`
- 暴露激活记录相关 IPC 接口
- Serendlplty
![](./public/images/example/lol-zhanji.png)
### 前端相关
### 🐸 更多
- `frontend/src/main.ts`
- Vue 应用入口
- 注册 Ant Design Vue 和全局组件
- [更多案例](https://www.kaka996.com/pages/eadf46/)
- `frontend/src/router/routerMap.ts`
- 当前仅注册一个业务页面:`/activate`
## 💬 交流
1. [讨论](https://www.kaka996.com/pages/c2720e/)
- `frontend/src/layouts/AppSider.vue`
- 左侧菜单布局
- 当前只包含“设备激活”菜单
## 📌 关于pr
请前往[GitHub项目](https://github.com/dromara/electron-egg)提pr避免代码同步后pr被覆盖掉感谢
- `frontend/src/views/activate/index.vue`
- 激活记录查询页面
- 激活记录展示、查询、复制、保存入口
地址https://github.com/dromara/electron-egg
- `frontend/src/views/activate/ActiveForm.vue`
- 激活码生成表单
- 处理申请码解析、模块选择、激活码生成
## 📔 框架核心包 ee-core
ee-core[https://github.com/wallace5303/ee-core](https://github.com/wallace5303/ee-core)
- `frontend/src/utils/rsa.ts`
- RSA 加解密封装
## 📚 Dromara 成员项目
- `frontend/src/utils/ipcRenderer.ts`
- 渲染进程 IPC 调用封装
<p align="center">
<a href="https://gitee.com/dromara/TLog" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/tlog2.png" title="一个轻量级的分布式日志标记追踪神器10分钟即可接入自动对日志打标签完成微服务的链路追踪" width="15%">
</a>
<a href="https://gitee.com/dromara/liteFlow" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/liteflow.png" title="轻量,快速,稳定,可编排的组件式流程引擎" width="15%">
</a>
<a href="https://hutool.cn/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/hutool.jpg" title="小而全的Java工具类库使Java拥有函数式语言般的优雅让Java语言也可以“甜甜的”。" width="15%">
</a>
<a href="https://sa-token.dev33.cn/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/sa-token.png" title="一个轻量级 java 权限认证框架,让鉴权变得简单、优雅!" width="15%">
</a>
<a href="https://gitee.com/dromara/hmily" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/hmily.png" title="高性能一站式分布式事务解决方案。" width="15%">
</a>
<a href="https://gitee.com/dromara/Raincat" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/raincat.png" title="强一致性分布式事务解决方案。" width="15%">
</a>
</p>
<p align="center">
<a href="https://gitee.com/dromara/myth" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/myth.png" title="可靠消息分布式事务解决方案。" width="15%">
</a>
<a href="https://cubic.jiagoujishu.com/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/cubic.png" title="一站式问题定位平台以agent的方式无侵入接入应用完整集成arthas功能模块致力于应用级监控帮助开发人员快速定位问题" width="15%">
</a>
<a href="https://maxkey.top/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/maxkey.png" title="业界领先的身份管理和认证产品" width="15%">
</a>
<a href="http://forest.dtflyx.com/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/forest-logo.png" title="Forest能够帮助您使用更简单的方式编写Java的HTTP客户端" width="15%">
</a>
<a href="https://jpom.io/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/jpom.png" title="一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件" width="15%">
</a>
<a href="https://su.usthe.com/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/sureness.png" title="面向 REST API 的高性能认证鉴权框架" width="15%">
</a>
</p>
<p align="center">
<a href="https://easy-es.cn/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/easy-es2.png" title="傻瓜级ElasticSearch搜索引擎ORM框架" width="15%">
</a>
<a href="https://gitee.com/dromara/northstar" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/northstar_logo.png" title="Northstar盈富量化交易平台" width="15%">
</a>
<a href="https://hertzbeat.com/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/hertzbeat_brand.jpg" title="易用友好的云监控系统" width="15%">
</a>
<a href="https://plugins.sheng90.wang/fast-request/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/fast-request.gif" title="Idea 版 Postman为简化调试API而生" width="15%">
</a>
<a href="https://www.jeesuite.com/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/mendmix.png" title="开源分布式云原生架构一站式解决方案" width="15%">
</a>
<a href="https://gitee.com/dromara/koalas-rpc" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/koalas-rpc2.png" title="企业生产级百亿日PV高可用可拓展的RPC框架。" width="15%">
</a>
</p>
<p align="center">
<a href="https://async.sizegang.cn/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/gobrs-async.png" title="配置极简功能强大的异步任务动态编排框架" width="15%">
</a>
<a href="https://dynamictp.cn/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/dynamic-tp.png" title="基于配置中心的轻量级动态可监控线程池" width="15%">
</a>
<a href="https://www.x-easypdf.cn" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/x-easypdf.png" title="一个用搭积木的方式构建pdf的框架基于pdfbox" width="15%">
</a>
<a href="http://dromara.gitee.io/image-combiner" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/image-combiner.png" title="一个专门用于图片合成的工具,没有很复杂的功能,简单实用,却不失强大" width="15%">
</a>
<a href="https://www.herodotus.cn/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/dante-cloud2.png" title="Dante-Cloud 是一款企业级微服务架构和服务能力开发平台。" width="15%">
</a>
<a href="https://dromara.org/zh/projects/" target="_blank">
<img src="https://oss.dev33.cn/sa-token/link/dromara.png" title="让每一位开源爱好者,体会到开源的快乐。" width="15%">
</a>
</p>
## 路由与界面
当前前端只有一条实际业务路由:
- `/activate` 设备激活页面
左侧菜单当前也只有一个入口:
- 设备激活
因此,整个系统目前可以理解为“单页面桌面工具”,所有主要功能都集中在这一个界面中完成。
当前页面的详细说明已单独整理到:
- `docs/current-page.md`
## 配置说明
### 根目录脚本
常用命令:
- `npm run dev` 启动 Electron + 前端开发环境
- `npm run dev-frontend` 仅启动前端
- `npm run dev-electron` 仅启动 Electron
- `npm run build` 构建前端、Electron 并执行加密
- `npm run build-w` 构建 Windows 安装包
### 前端环境变量
位于:
- `frontend/.env.development`
- `frontend/.env.production`
当前已使用的变量主要有:
- `VITE_TITLE`
- `VITE_RSA_PUBLIC_KEY`
- `VITE_RSA_PRIVATE_KEY`
- `VITE_RSA_CAN_EDIT`
## 数据存储说明
数据库由主进程在应用启动时初始化。
数据库初始化入口:
- `electron/preload/index.ts`
数据库基础路径由 `ee-core` 提供的数据目录决定,实际数据库文件保存在应用数据目录下的 `db` 子目录中。
## 当前项目特征总结
从当前代码看,项目有以下特点:
- 业务功能集中,当前只有激活工具这一个主要模块
- 没有后端依赖,所有数据均在本地处理和存储
- 前端负责激活码的生成逻辑
- 主进程负责数据库初始化与数据持久化
- 项目仍保留部分 `electron-egg` 模板能力和示例代码
- 现有目录中存在一些当前业务未直接使用的模板模块,可在后续按需要继续裁剪
## 适合后续演进的方向
结合当前项目现状,后续工作更适合围绕以下方向展开:
- 梳理并精简模板残留代码
- 完善激活记录管理能力
- 增加导入、导出、删除、编辑等本地数据操作
- 统一页面文案、编码和可维护性
- 补充更明确的项目文档与交付说明
## 运行说明
### 开发环境
```bash
npm install
npm run dev
```
### 构建
```bash
npm run build
```
Windows 安装包构建:
```bash
npm run build-w
```
## 补充说明
- 原仓库中的 `README.zh-CN.md` 更偏向上游模板说明
- 当前 `README.md` 旨在描述本项目自身,而不是 `electron-egg` 模板本身
- 如果后续继续迭代业务,建议优先维护本文件,保证项目文档与实际实现一致