对号 jo!
  1. 四、开发说明
对号 jo!
  • 一、项目说明
  • 二、接口说明
  • 三、应用模块接口
    • 3.1 系统相关API
    • 3.2 网盘文件API
    • 3.3 媒体相关API
    • 3.4 资源相关API
    • 3.5 用户相关API
    • 3.6 分享管理API
  • 四、开发说明
    • 4.1 技术开发总述
    • 4.2 通用数据库接口说明
    • 4.3 前端 API 调用示例
    • 4.3 后端API实现
  1. 四、开发说明

4.1 技术开发总述

1. 项目概述#

对号 Jo! 是一个基于 Vue 3 + TypeScript + Vite + Tauri 构建的现代化桌面应用,采用主应用 + 子应用的微前端架构,提供了一站式的个人数字资产管理和效率工具集成平台。

1.1 核心功能#

系统概览:提供应用整体状态和快捷入口
NAS网盘管理:文件存储、管理和分享
网站库:个性化导航和网站管理
资源追踪:网络资源搜索和管理
智能记录:笔记和文档管理
钱册:个人财务管理
语音秘书:语音助手功能
U盘制作:启动盘制作工具

1.2 技术栈#

前端框架:Vue 3 + TypeScript
构建工具:Vite 6
UI 库:Element Plus
图标库:Font Awesome
桌面应用:Tauri 2
样式:Tailwind CSS
状态管理:Vue 3 Composition API
路由:Vue Router 4

2. 项目架构#

2.1 目录结构#

├── apps/             # 子应用目录
│   ├── disk/         # 网盘子应用
│   ├── search/       # 搜索子应用
│   └── urls/         # 网站库子应用
├── appui/            # 构建输出目录(用于 Tauri)
├── dist/             # 主应用构建输出目录
├── public/           # 主应用静态资源
├── src/              # 主应用源代码
│   ├── components/   # 主应用组件
│   ├── config/       # 主应用配置
│   ├── interfaces/   # TypeScript 接口定义
│   └── views/        # 主应用页面
├── src-tauri/        # Tauri 应用源代码(Rust)
├── subapp.config.ts  # 子应用端口配置
└── package.json      # 项目依赖和脚本

2.2 主应用架构#

主应用负责整体布局、应用管理和子应用集成,采用以下架构:
1.
核心组件:
Layout.vue:主应用布局组件
SubAppLoader.vue:内嵌式子应用加载器
NoLayout.vue:全屏式子应用加载器
2.
配置管理:
src/config/index.ts:应用列表和配置
subapp.config.ts:子应用端口配置
3.
路由管理:
动态生成路由:根据 apps 配置自动生成
子应用路由:通过 SubAppLoader 和 NoLayout 加载

2.3 子应用架构#

每个子应用都是一个独立的 Vue 应用,具有完整的项目结构:
1.
核心文件:
main.ts:应用入口
App.vue:根组件
router.ts:路由配置
2.
目录结构:
src/components/:子应用组件
src/views/:子应用页面
src/api/:API 调用
src/utils/:工具函数
src/config/:子应用配置
3.
构建配置:
vite.config.ts:Vite 构建配置
package.json:子应用依赖

3. 核心功能模块#

3.1 主应用功能#

3.1.1 应用管理#

主应用通过 src/config/index.ts 中的 apps 配置管理所有应用,包括:
应用列表展示
应用类型区分(页面类型和应用类型)
应用目标方式(内嵌或全屏)
动态路由生成

3.1.2 子应用加载#

主应用提供两种子应用加载方式:
1.
内嵌式加载:通过 SubAppLoader.vue 组件,在主应用布局内加载子应用
2.
全屏式加载:通过 NoLayout.vue 组件,全屏加载子应用

3.1.3 代理配置#

主应用通过 Vite 代理配置,实现开发环境下子应用的无缝集成:
动态生成子应用代理规则
支持子应用资源文件的正确加载
确保子应用 API 请求的正确转发

3.2 子应用功能#

3.2.1 网盘子应用(disk)#

文件管理:浏览、上传、下载文件
媒体播放:音乐、视频在线播放
资源分类:按类型分类管理资源
文件分享:生成分享链接

3.2.2 网站库子应用(urls)#

网站管理:添加、编辑、删除网站
分类管理:网站分类和标签
快速访问:常用网站快捷入口

3.2.3 搜索子应用(search)#

资源搜索:网络资源搜索
结果管理:搜索结果筛选和管理

4. 开发指南#

4.1 环境准备#

1.
安装依赖:
2.
安装子应用依赖:

4.2 开发命令#

4.2.1 主应用开发#

启动主应用开发服务器,访问地址:http://localhost:1620

4.2.2 子应用开发#

单独启动子应用:
批量启动子应用:
启动所有应用:

4.3 构建命令#

4.3.1 构建子应用#

单独构建子应用:
批量构建子应用:

4.3.2 构建所有应用#

5. 子应用开发指南#

5.1 创建新子应用#

1.
创建子应用目录:
2.
初始化子应用:
3.
配置子应用:
创建 vite.config.ts 文件,配置端口和构建选项
创建 src/main.ts、src/App.vue 等核心文件
创建 index.html 入口文件
4.
注册子应用:
在 subapp.config.ts 中添加子应用端口配置
在 src/config/index.ts 中的 apps 数组中添加子应用配置

5.2 子应用集成#

1.
端口配置:
子应用的端口必须在 subapp.config.ts 中配置
主应用会自动读取并使用这些端口配置
2.
路由配置:
主应用会根据 apps 配置自动生成子应用路由
子应用路由应该使用相对路径,避免与主应用路由冲突
3.
通信机制:
子应用可以通过 postMessage 与主应用通信
主应用通过 handleMessage 函数处理子应用消息

5.3 子应用最佳实践#

1.
独立开发:
子应用应该可以独立开发和运行
避免直接依赖主应用的代码和资源
2.
资源管理:
子应用应该使用相对路径引用资源
避免使用绝对路径,确保在主应用中正确加载
3.
样式隔离:
子应用应该使用命名空间或 CSS Modules 隔离样式
避免样式冲突影响主应用
4.
构建优化:
子应用构建输出应该放在 apps/[子应用名称]/dist 目录
构建产物会被主应用的构建脚本自动复制到 appui/[子应用名称] 目录

6. 项目配置#

6.1 主应用配置#

src/config/index.ts:
apps 数组:定义所有应用的配置,包括 id、name、title、icon、type、url、target 等属性
appPorts:从 subapp.config.ts 导入的子应用端口配置

6.2 子应用端口配置#

subapp.config.ts:
集中管理所有子应用的端口配置
主应用和构建脚本都会使用这些配置

6.3 构建脚本#

apps-build.js:
自动发现和构建所有子应用
构建完成后复制产物到 appui 目录
dev-apps.js:
自动发现和启动所有子应用的开发服务器

6.4 Vite 配置#

vite.config.ts:
主应用的 Vite 构建配置
包含开发服务器配置、代理配置、构建选项等

7. 常见问题与解决方案#

7.1 子应用加载失败#

问题:子应用无法正常加载,显示空白或错误
解决方案:
1.
确保子应用开发服务器已启动:npm run dev:apps
2.
检查子应用端口配置是否正确:subapp.config.ts
3.
检查主应用代理配置是否正确:vite.config.ts
4.
检查子应用路由配置是否正确:apps/[子应用名称]/src/router.ts

7.2 子应用样式冲突#

问题:子应用样式影响主应用或其他子应用
解决方案:
1.
子应用使用命名空间或 CSS Modules 隔离样式
2.
避免使用全局样式选择器
3.
使用 Tailwind CSS 的前缀配置,为子应用样式添加前缀

7.3 构建失败#

问题:构建过程中出现错误
解决方案:
1.
确保所有依赖已安装:npm install
2.
检查 TypeScript 类型错误:npm run build 前会自动检查
3.
检查子应用构建配置是否正确
4.
检查文件路径和导入语句是否正确

8. 未来规划#

1.
更多子应用集成:
扩展子应用生态,集成更多实用工具
提供子应用开发模板和脚手架
2.
性能优化:
子应用懒加载和按需加载
构建产物优化和缓存策略
3.
功能增强:
主应用与子应用的深度集成
跨子应用数据共享和通信
个性化配置和主题系统
4.
多平台支持:
完善 Tauri 桌面应用体验
考虑 Web 版本和移动版本

9. 总结#

对号 Jo! 项目采用现代化的微前端架构,通过主应用 + 子应用的方式,实现了功能模块化和开发团队的并行工作。这种架构不仅提高了代码的可维护性和可扩展性,也为用户提供了更加灵活和个性化的使用体验。
通过本文档的指导,开发人员可以快速了解项目结构和开发流程,从而更加高效地参与到项目开发中。同时,项目的模块化设计也为未来的功能扩展和技术升级奠定了良好的基础。
修改于 2026-01-21 21:30:05
上一页
3.6 分享管理API
下一页
4.2 通用数据库接口说明
Built with