feat: 完成 Frpilot 桌面应用核心布局与多语言支持

实现内容:
- 新增多语言支持(中文/英文),包含完整翻译文件
- 适配 Windows 和 macOS 自定义标题栏,支持窗口控制与主题切换
- 新增侧边栏菜单,显示系统 CPU/内存占用与运行状态
- 配置 Tauri 窗口属性与权限,支持窗口拖拽、最大化等操作
- 新增 Pinia 状态管理,处理主题、语言与应用状态
- 新增系统统计数据获取与模拟逻辑,支持 Tauri 后端调用回退
- 新增路由配置,完成页面布局与视图组件初始化
This commit is contained in:
Yuhang Wu
2026-10-12 17:54:05 +08:00
parent b885919b1d
commit 9ca10fdd2f
25 changed files with 907 additions and 92 deletions
+44
View File
@@ -0,0 +1,44 @@
/**
* Tauri 窗口控制封装。
* 在纯浏览器环境(非 Tauri)下调用会被安全忽略,方便 `pnpm dev` 调试。
*/
export function isTauri() {
return typeof window !== "undefined" && "__TAURI_INTERNALS__" in window
}
async function currentWindow() {
if (!isTauri()) return null
const { getCurrentWindow } = await import("@tauri-apps/api/window")
return getCurrentWindow()
}
/** 最小化窗口 */
export async function minimizeWindow() {
const win = await currentWindow()
await win?.minimize()
}
/** 最大化 / 还原窗口 */
export async function toggleMaximizeWindow() {
const win = await currentWindow()
await win?.toggleMaximize()
}
/** 关闭窗口 */
export async function closeWindow() {
const win = await currentWindow()
await win?.close()
}
/** 开始拖拽窗口(配合 data-tauri-drag-region 使用) */
export async function startDragging() {
const win = await currentWindow()
await win?.startDragging()
}
/** 是否已最大化 */
export async function isWindowMaximized() {
const win = await currentWindow()
return (await win?.isMaximized()) ?? false
}