import { invoke } from "@tauri-apps/api/tauri"; import { appWindow } from "@tauri-apps/api/window"; import { postLogoutBeforeQuit } from "../utils/service"; import { clearSession } from "./session"; /** * 最小化当前窗口。 */ export async function minimizeWindow(): Promise { try { await appWindow.minimize(); } catch (error) { throw new Error(`最小化窗口失败: ${String(error)}`); } } /** * 关闭应用进程(避免隐藏窗口残留导致进程驻留)。 */ export async function closeWindow(): Promise { try { await postLogoutBeforeQuit(); } finally { try { await clearSession(); } catch { // 忽略 } try { await invoke("quit_app"); } catch (error) { throw new Error(`关闭窗口失败: ${String(error)}`); } } } /** * 开始拖拽当前窗口。 */ export async function startWindowDragging(): Promise { try { await appWindow.startDragging(); } catch (error) { throw new Error(`拖拽窗口失败: ${String(error)}`); } } /** * 打开或聚焦票号列表窗口。 */ export async function openTicketListWindow(): Promise { try { await invoke("open_ticket_window"); } catch (error) { throw new Error(`打开票号列表窗口失败: ${String(error)}`); } } /** * 关闭(隐藏)票号列表窗口。 */ export async function closeTicketListWindow(): Promise { try { await invoke("close_ticket_window"); } catch (error) { throw new Error(`关闭票号列表窗口失败: ${String(error)}`); } } /** * 关闭(隐藏)办税员窗口。 */ export async function closeTaxerInfoWindow(): Promise { try { await invoke("close_taxer_info_window"); } catch (error) { throw new Error(`关闭办税员窗口失败: ${String(error)}`); } } /** * 聚焦指定窗口。 */ export async function focusNamedWindow(label: string): Promise { try { await invoke("focus_window", { label }); } catch (error) { throw new Error(`聚焦窗口失败: ${String(error)}`); } } /** * 登录成功后显示主窗口并关闭登录窗口。 */ export async function openMainWindow(): Promise { try { await invoke("open_main_window"); } catch (error) { throw new Error(`打开主窗口失败: ${String(error)}`); } } /** * 退出登录后显示登录窗口并隐藏主窗口。 */ export async function openLoginWindow(): Promise { try { await invoke("open_login_window"); } catch (error) { throw new Error(`打开登录窗口失败: ${String(error)}`); } } /** * 打开或聚焦办税员窗口。 */ export async function openTaxerInfoWindow(): Promise { try { await invoke("open_taxer_info_window"); } catch (error) { throw new Error(`打开办税员窗口失败: ${String(error)}`); } } /** * 退出整个应用进程。 */ export async function quitApplication(): Promise { try { await postLogoutBeforeQuit(); } finally { try { await clearSession(); } catch { // 忽略 } try { await invoke("quit_app"); } catch (error) { throw new Error(`退出应用失败: ${String(error)}`); } } }