diff --git a/src/composables/useTray.ts b/src/composables/useTray.ts index 647c7af..bf085a0 100644 --- a/src/composables/useTray.ts +++ b/src/composables/useTray.ts @@ -32,7 +32,12 @@ export function useTray() { const { addLog } = useLogStore(); const monitorStore = useMonitorStore(); const { isMonitoring, isPostponed, ticketCounts } = storeToRefs(monitorStore); - const { startMonitoring, stopMonitoring } = monitorStore; + const { + startMonitoring, + stopMonitoring, + postponeMonitoring, + resumeMonitoring, + } = monitorStore; const appName = import.meta.env.VITE_APP_NAME; // 当前托盘图标实例,null 表示尚未初始化 let trayIconInstance: TrayIcon | null = null; @@ -201,6 +206,22 @@ export function useTray() { } }, }), + await MenuItem.new({ + id: "pause_1h", + text: "暂停1小时", + enabled: isMonitoring.value && !isPostponed.value, + action: () => { + postponeMonitoring(); + }, + }), + await MenuItem.new({ + id: "resume_monitor", + text: "恢复监测", + enabled: isMonitoring.value && isPostponed.value, + action: () => { + resumeMonitoring(); + }, + }), await MenuItem.new({ id: "open_website", text: "打开工单网站", diff --git a/src/views/MonitorPage.vue b/src/views/MonitorPage.vue index 78fd640..07a238f 100644 --- a/src/views/MonitorPage.vue +++ b/src/views/MonitorPage.vue @@ -5,11 +5,16 @@ import { BellOutlined, WifiOutlined, ClockCircleOutlined, + PauseCircleOutlined, + PlayCircleOutlined, + LinkOutlined, } from "@ant-design/icons-vue"; +import { openUrl } from "@tauri-apps/plugin-opener"; import dayjs from "dayjs"; import duration from "dayjs/plugin/duration"; import { ref, onMounted, onUnmounted } from "vue"; import { useTray } from "@/composables/useTray"; +import { CRM_URL } from "@/constants/app"; import { useMonitorStore } from "@/stores/monitor"; import { useNetworkStore } from "@/stores/network"; @@ -31,6 +36,10 @@ async function handleMinimizeToTray() { await minimizeToTray(); } +async function handleOpenCrmWebsite() { + await openUrl(CRM_URL); +} + const countdown = ref(""); let countdownTimer: ReturnType | null = null; @@ -107,12 +116,35 @@ onUnmounted(() => { 手动检查 + + + 暂停1小时 + + + + 恢复监测 + 网络检测 + + + 打开工单网站 +