新增: - ForgotPasswordModal — 手机号+短信验证码重置密码 (AuthAPI.resetPassword) - ChangePasswordModal — 当前密码验证后修改密码 (AuthAPI.changePassword) - useSmsCooldown Hook — 通用短信发送冷却逻辑,供注册/忘记密码复用 - PasswordSetting — 设置页账号安全区块,双选项:修改密码 / 短信验证码重置 修改: - LoginForm \"忘记密码?\" 链接接入 ForgotPasswordModal(替换 TODO) - LoginPage 移除 edition 业务版本 UI 区分,登录/注册 Tab 全局统一 - 设置页 Section 组件移入 blocks/ 子目录(git mv 保留历史) - auth.ts sendSms URL 修正: /sms/send → /send-sms 清理: - settings/index.ts 移除 4 个未使用 re-export,精简为仅 SettingsPage - navbar/index.ts 移除未使用 re-export,精简为仅 NavBar 文档: - WORKLOG.md 新增 2026-06-08 工作日志 - ARCHITECTURE.md / PROJECT.md 更新设置页目录结构与新组件 - TODO.md 忘记密码流程标记已完成 + 短信人机验证列入后期优化
170 lines
6.5 KiB
Markdown
170 lines
6.5 KiB
Markdown
# 船长·HeiXiu
|
||
|
||
> 桌面效率工作台 — Electron + React 19 + TypeScript + Ant Design + Tailwind CSS
|
||
|
||
---
|
||
|
||
## 技术栈
|
||
|
||
| 层 | 技术 |
|
||
|----|--------------------------------|
|
||
| 框架 | Electron 42 |
|
||
| 前端 | React 19 + TypeScript + Vite 8 |
|
||
| UI | Ant Design 6 + Tailwind CSS 4 |
|
||
| 主题 | 蓝紫渐变(亮色 / 暗色) |
|
||
| 更新 | 自定义 API + 阿里云 OSS |
|
||
| 打包 | electron-builder + NSIS |
|
||
|
||
---
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 开发模式(Electron + HMR)
|
||
npm run dev
|
||
|
||
# 打包(Windows 个人版)
|
||
npm run build:win
|
||
```
|
||
|
||
---
|
||
|
||
## 构建命令
|
||
|
||
### 打包
|
||
|
||
```bash
|
||
npm run build:win # Windows 个人版
|
||
npm run build:win:enterprise # Windows 企业版
|
||
npm run build:mac # macOS 个人版
|
||
npm run build:linux # Linux 个人版
|
||
```
|
||
|
||
### 构建总管 `build.mjs`
|
||
|
||
所有打包命令最终调用 `build.mjs`,支持灵活组合操作:
|
||
|
||
```bash
|
||
# 查看帮助
|
||
node build.mjs --help
|
||
|
||
# 仅打包
|
||
node build.mjs --win --personal
|
||
|
||
# 打包 + 上传 OSS + 发布到 API
|
||
node build.mjs --win --personal --upload --publish
|
||
|
||
# 全流程(清理 → 构建 → 签名 → 上传 → 发布)
|
||
node build.mjs --win --enterprise --all
|
||
|
||
# 带签名打包
|
||
node build.mjs --win --personal --sign --cert ./cert.pfx --cert-password xxx
|
||
|
||
# 先清理再构建
|
||
node build.mjs --win --personal --clean --build
|
||
```
|
||
|
||
| 操作 | 说明 |
|
||
|-------------|---------------------------------------------------------|
|
||
| `--build` | 构建(默认:tsc + vite + electron-builder + update-info.json) |
|
||
| `--clean` | 构建前清理 release/ dist/ dist-electron/ |
|
||
| `--sign` | 代码签名(需配合 `--cert` 或 `CSC_LINK` 环境变量) |
|
||
| `--upload` | 上传安装包到 OSS |
|
||
| `--publish` | POST 版本信息到后端 API |
|
||
| `--all` | 全流程 |
|
||
|
||
### 工具命令
|
||
|
||
```bash
|
||
npm run build:clean # 清理所有构建产物
|
||
node scripts/upload-oss.mjs win32 personal 0.1.0 # 手动上传 OSS
|
||
node scripts/publish-release.mjs win32 personal 0.1.0 # 手动发布到 API
|
||
node scripts/generate-update-info.mjs win32 personal 0.1.0 # 重新生成 info
|
||
```
|
||
|
||
---
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
ele-heixiu/
|
||
├ build.mjs # 构建总管
|
||
├ CHANGELOG.md # 更新日志
|
||
├ UpdateA.md # 发布手册(后端 API / 签名 / 发版流程)
|
||
├ package.json # 项目配置
|
||
├ electron-builder.json5 # 打包配置
|
||
├ electron/ # Electron 主进程
|
||
│ ├ main.ts # 入口
|
||
│ ├ preload.ts # 预加载脚本
|
||
│ └ main/
|
||
│ ├ updater.ts # 自动更新模块
|
||
│ ├ menu/ # 菜单
|
||
│ └ utils/ # 工具函数
|
||
├ src/ # 渲染进程
|
||
│ ├ App.tsx # 根组件
|
||
│ ├ main.tsx # 渲染入口
|
||
│ ├ components/ # 组件
|
||
│ │ ├ navbar/ # 自定义导航栏
|
||
│ │ └ LegalTextModal.tsx # 协议弹窗
|
||
│ ├ pages/
|
||
│ │ └ login/ # 登录 / 注册
|
||
│ ├ hooks/ # Hooks
|
||
│ │ ├ use-theme.tsx # 主题切换
|
||
│ │ ├ use-updater.ts # 更新状态
|
||
│ │ └ ...
|
||
│ ├ theme/ # 主题配置
|
||
│ │ ├ tokens.ts # 设计令牌
|
||
│ │ ├ globals.css # Tailwind + CSS 变量
|
||
│ │ └ adapters/ # Ant Design 适配
|
||
│ ├ services/ # API 服务(axios)
|
||
│ ├ utils/ # 工具函数
|
||
│ └ assets/ # 静态资源
|
||
├ shared/ # 主进程 & 渲染进程共享
|
||
│ ├ types/ # 类型定义
|
||
│ ├ constants/ # 常量
|
||
│ └ utils/ # 通用工具
|
||
├ scripts/ # 构建辅助脚本
|
||
│ ├ clean.mjs # 清理产物
|
||
│ ├ generate-update-info.mjs # 生成 API 信息 JSON
|
||
│ ├ upload-oss.mjs # OSS 上传
|
||
│ └ publish-release.mjs # 发布到 API
|
||
└ release/ # 构建产物
|
||
└ {version}/
|
||
├ xxx-Setup.exe
|
||
└ xxx-update-info.json
|
||
```
|
||
|
||
---
|
||
|
||
## 环境变量
|
||
|
||
主进程加载顺序:`.env.{mode}` → `.env.local` → OS 环境变量 → 代码默认值。
|
||
|
||
| 变量 | 默认值 | 用途 |
|
||
|-------------------------|--------------------------------------------------------|---------------|
|
||
| `UPDATE_API_URL` | `https://www.heixiu.com` | 版本检查 API |
|
||
| `UPDATE_API_KEY` | — | 发布 API 鉴权 |
|
||
| `UPDATE_DOWNLOAD_BASE` | `https://heixiu.oss-cn-hangzhou.aliyuncs.com/releases` | OSS 下载基地址 |
|
||
| `OSS_ENDPOINT` | — | OSS endpoint |
|
||
| `OSS_BUCKET` | — | OSS bucket |
|
||
| `OSS_ACCESS_KEY_ID` | — | OSS AccessKey |
|
||
| `OSS_ACCESS_KEY_SECRET` | — | OSS Secret |
|
||
| `CSC_LINK` | — | 签名证书路径 |
|
||
| `CSC_KEY_PASSWORD` | — | 签名证书密码 |
|
||
| `VITE_API_BASE_URL` | `http://8.160.179.64:8000`(dev) | 业务 API 基地址 |
|
||
|
||
> **`.env.local`**(不进 git)用于个人特殊配置,如打包后覆盖 `UPDATE_API_URL` 指向本地测试服务器。
|
||
|
||
---
|
||
|
||
## 相关文档
|
||
|
||
| 文档 | 面向 | 内容 |
|
||
|--------------------------------------------------|-------|-----------------------|
|
||
| [PROJECT.md](./PROJECT.md) | 开发者 | 技术架构、更新系统、环境变量架构、测试流程 |
|
||
| [UpdateA.md](./UpdateA.md) | 前端发版 | 构建命令、发版流程、代码签名 |
|
||
| [test-server/README.md](./test-server/README.md) | 后端程序员 | API 规格、数据库表结构、实现清单 |
|