主界面修改及代理模块初始化
This commit is contained in:
@@ -66,12 +66,12 @@ Thing/
|
||||
### 第一阶段:主体架构(当前阶段)
|
||||
|
||||
- [x] 项目初始化
|
||||
- [ ] 主界面布局(左侧模块导航 + 右侧内容区域)
|
||||
- [ ] 基础设置模块(主题切换、开机自启、语言设置)
|
||||
- [ ] 系统托盘(Tray)
|
||||
- [ ] 日志系统(Log)
|
||||
- [ ] 进程管理架构(子进程生命周期管理)
|
||||
- [ ] 模块注册机制
|
||||
- [x] 主界面布局(左侧模块导航 + 右侧内容区域)
|
||||
- [x] 基础设置模块(主题切换、开机自启)
|
||||
- [x] 系统托盘基础(Tray)
|
||||
- [x] 日志系统(Log)
|
||||
- [x] 进程管理架构(子进程生命周期管理)
|
||||
- [x] 模块注册机制
|
||||
|
||||
### 第二阶段:核心模块开发
|
||||
|
||||
@@ -127,11 +127,57 @@ Thing/
|
||||
|
||||
## 模块管理架构
|
||||
|
||||
项目采用模块化架构,每个模块独立开发,通过统一的注册机制接入主界面:
|
||||
项目采用统一的模块注册机制,每个模块通过 `index.ts` 自描述其配置,由中央注册表统一管理:
|
||||
|
||||
1. **左侧导航栏**:显示所有已注册模块的名称和图标
|
||||
2. **右侧内容区域**:显示当前选中模块的详细设置和功能界面
|
||||
3. **模块注册**:通过配置文件或代码注册模块信息(名称、图标、组件路径、权限等)
|
||||
### 核心文件
|
||||
|
||||
| 文件 | 职责 |
|
||||
|------|------|
|
||||
| `src/types/module.ts` | 模块配置类型定义(`ModuleConfig`、`ModuleMeta`、`ModuleProcessConfig` 等) |
|
||||
| `src/modules/registry.ts` | 模块注册表单例,提供注册、查询、组件懒加载等功能 |
|
||||
| `src/modules/index.ts` | 模块聚合入口,导入并注册所有模块 |
|
||||
| `src/modules/icons.ts` | 模块图标映射表 |
|
||||
| `src/modules/<name>/index.ts` | 各模块的配置声明(名称、图标、组件、搜索项、进程配置等) |
|
||||
|
||||
### 模块配置示例
|
||||
|
||||
```typescript
|
||||
// src/modules/proxy/index.ts
|
||||
export const moduleConfig: ModuleConfig = {
|
||||
id: 'proxy',
|
||||
name: '代理管理',
|
||||
icon: 'proxy',
|
||||
description: '系统代理切换、订阅管理与延迟测速',
|
||||
category: 'network',
|
||||
loader: () => import('./ProxyModule.vue'),
|
||||
searchItems: [...],
|
||||
process: {
|
||||
name: 'mihomo',
|
||||
executable: '',
|
||||
autoStart: false,
|
||||
restartOnCrash: true,
|
||||
maxRestarts: 3
|
||||
},
|
||||
order: 10
|
||||
}
|
||||
```
|
||||
|
||||
### 进程管理架构
|
||||
|
||||
需要管理外部子进程的模块(如代理的 mihomo、下载器的 aria2)通过 `ModuleProcessConfig` 声明进程配置,由 Rust 端的 `ProcessManager` 统一管理生命周期:
|
||||
|
||||
- **Rust 端** (`src-tauri/src/process_manager.rs`):管理子进程的启动、停止、重启和崩溃检测
|
||||
- **前端** (`src/stores/processStore.ts`):Pinia store,通过 Tauri IPC 调用 Rust 命令,监听进程状态变更事件
|
||||
- **后台监控线程**:每 3 秒检查进程状态,崩溃时自动重启(可配置),并通过 Tauri 事件通知前端
|
||||
- **应用退出清理**:退出时自动停止所有子进程
|
||||
|
||||
### 新增模块流程
|
||||
|
||||
1. 创建 `src/modules/<name>/` 目录,编写 `ModuleComponent.vue` 和 `index.ts`
|
||||
2. 在 `index.ts` 中导出 `moduleConfig: ModuleConfig`
|
||||
3. 在 `src/modules/index.ts` 中添加导入
|
||||
4. 在 `src/modules/icons.ts` 中添加图标映射
|
||||
5. 如需 Rust 命令,在 `src-tauri/src/` 中创建对应模块
|
||||
|
||||
## 构建与运行
|
||||
|
||||
|
||||
Reference in New Issue
Block a user