From 1923fe9acb6578733d28d9ebcd84b103dfd3175e Mon Sep 17 00:00:00 2001 From: VirtualHotBar <96966978+VirtualHotBar@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:02:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E6=8F=8F=E8=BF=B0=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/locales/en.json | 5 +- src-tauri/locales/zh-cn.json | 1 + src-tauri/locales/zh-hant.json | 5 +- src-tauri/src/lib.rs | 19 ++++ src-tauri/tauri.conf.json | 3 +- src/controller/main.ts | 6 +- src/page/home/home.tsx | 4 +- src/page/setting/setting.tsx | 196 +++++++++++++++------------------ 8 files changed, 121 insertions(+), 118 deletions(-) diff --git a/src-tauri/locales/en.json b/src-tauri/locales/en.json index 0731dba..3107531 100644 --- a/src-tauri/locales/en.json +++ b/src-tauri/locales/en.json @@ -694,12 +694,13 @@ "saving": "Saving...", "data_management": "Data Management", "export_config": "Export Configuration", - "export_config_description": "Package current configuration into a ZIP file (excluding logs)", + "export_config_description": "Package current configuration into a ZIP file", "export": "Export", "config_exported": "Configuration exported", "import_config": "Import Configuration", - "import_config_description": "Restore configuration from ZIP file (requires restart)", + "import_config_description": "Restore configuration from ZIP file", "import": "Import", "confirm_import": "Confirm Import", + "export_import_config_description": "Export current configuration or restore configuration from file", "confirm_import_description": "Importing configuration will overwrite all current settings and automatically restart the software. Continue?" } diff --git a/src-tauri/locales/zh-cn.json b/src-tauri/locales/zh-cn.json index 644853e..740c687 100644 --- a/src-tauri/locales/zh-cn.json +++ b/src-tauri/locales/zh-cn.json @@ -701,5 +701,6 @@ "import_config_description": "从 ZIP 文件恢复配置", "import": "导入", "confirm_import": "确认导入", + "export_import_config_description": "导出当前配置或者从文件恢复配置", "confirm_import_description": "导入配置将覆盖当前所有配置并自动重启软件,是否继续?" } diff --git a/src-tauri/locales/zh-hant.json b/src-tauri/locales/zh-hant.json index bdde7a7..7f119bc 100644 --- a/src-tauri/locales/zh-hant.json +++ b/src-tauri/locales/zh-hant.json @@ -694,12 +694,13 @@ "saving": "保存中...", "data_management": "數據管理", "export_config": "導出配置", - "export_config_description": "將當前配置打包為 ZIP 文件(排除日誌)", + "export_config_description": "將當前配置打包為 ZIP 文件", "export": "導出", "config_exported": "配置已導出", "import_config": "導入配置", - "import_config_description": "從 ZIP 文件恢復配置(需要重啓)", + "import_config_description": "從 ZIP 文件恢復配置", "import": "導入", "confirm_import": "確認導入", + "export_import_config_description": "導出當前配置或者從文件恢復配置", "confirm_import_description": "導入配置將覆蓋當前所有配置並自動重啓軟件,是否繼續?" } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index fada9d1..ceda64a 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -245,6 +245,25 @@ pub fn init() -> anyhow::Result<()> { }; app.update_app_config()?; + // 主窗口默认从 tauri.conf 设置为 visible=false,避免前端再隐藏造成闪屏。 + // 在后端读取配置后再决定是否显示窗口。 + let start_hide = app.with_app_state::(|config| { + config + .0 + .get("settings") + .and_then(|s| s.get("startHide")) + .and_then(|v| v.as_bool()) + .unwrap_or(false) + }); + if let Some(window) = app.app_main_window() { + if start_hide { + let _ = window.hide(); + } else { + let _ = window.show(); + let _ = window.set_focus(); + } + } + //开发者工具 #[cfg(debug_assertions)] if let Some(window) = app.app_main_window() { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index a4fc476..0133eff 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -68,7 +68,8 @@ "minHeight": 450, "minWidth": 700, "transparent": true, - "decorations": false + "decorations": false, + "visible": false } ], "trayIcon": { diff --git a/src/controller/main.ts b/src/controller/main.ts index 1ea6aec..9e3ff5b 100644 --- a/src/controller/main.ts +++ b/src/controller/main.ts @@ -5,7 +5,7 @@ import { RcloneVersion } from "../type/rclone/rcloneInfo" import { startUpdateCont } from "./stats/continue" import { reupMount } from "./storage/mount/mount" import { reupStorage } from "./storage/storage" -import { listenWindow, windowsHide } from "./window" +import { listenWindow } from "./window" import { sleep } from "../utils/utils" import { t } from "i18next" import { restartRclone, startRclone, stopRclone } from "../utils/rclone/process" @@ -44,10 +44,6 @@ async function init(setStartStr: SetStartStrFn) { setStartStr(t('read_config')) await readNmConfig() - if (nmConfig.settings.startHide) { - windowsHide() - } - //设置语言 if (nmConfig.settings.language) { await setLocalized(nmConfig.settings.language); diff --git a/src/page/home/home.tsx b/src/page/home/home.tsx index 5ab7599..e8fe816 100644 --- a/src/page/home/home.tsx +++ b/src/page/home/home.tsx @@ -139,7 +139,7 @@ function Home_page() {
- {t('storage')}({isStorageInitPending ? '...' : (isStorageInitFailed ? '--' : storageCount)})
+ {t('storage')}({isStorageInitPending ? '_' : (isStorageInitFailed ? '-' : storageCount)})
@@ -148,7 +148,7 @@ function Home_page() {
- {t('mount')}({isStorageInitPending ? '...' : (isStorageInitFailed ? '--' : rcloneInfo.mountList.length)}) + {t('mount')}({isStorageInitPending ? '_' : (isStorageInitFailed ? '-' : rcloneInfo.mountList.length)})
diff --git a/src/page/setting/setting.tsx b/src/page/setting/setting.tsx index 0c84f95..8cc0227 100644 --- a/src/page/setting/setting.tsx +++ b/src/page/setting/setting.tsx @@ -1,5 +1,5 @@ import { useEffect, useReducer, useState } from 'react' -import { Button, Card, Form, Grid, Input, Link, Message, Modal, Select, Space, Switch } from '@arco-design/web-react' +import { Button, Card, Form, Grid, Input, Link, Message, Modal, Select, Space, Switch, Tooltip } from '@arco-design/web-react' import { nmConfig, osInfo, roConfig, saveNmConfig } from '../../services/config'; import { getAutostartState, setAutostartState, setThemeMode } from '../../controller/setting/setting'; import { useTranslation } from 'react-i18next'; @@ -156,113 +156,97 @@ export default function Setting_page() { - -
-
-
{t('export_config')}
-
- {t('export_config_description')} -
-
- + + +
+ {t('export_import_config_description')}
- -
- -
-
-
{t('import_config')}
-
- {t('import_config_description')} -
-
- -
+ try { + return JSON.stringify(e) + } catch { + return String(e) + } + })() + Message.error(msg) + } + }}>{t('export')} + + + + + +