From beb457a884cb815fed38ea6eab25eec0ab505c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=AE=E6=A3=83?= Date: Wed, 26 Feb 2025 09:05:39 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20=E7=A1=AE=E4=BF=9D=E5=90=8C?= =?UTF-8?q?=E4=B8=80=E6=97=B6=E9=97=B4=E5=8F=AA=E8=83=BD=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #144 --- src/components/userScripts/tus-mission.vue | 25 ++++++++++++++++++++-- src/pages/User/Scripts.vue | 11 +++++----- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/components/userScripts/tus-mission.vue b/src/components/userScripts/tus-mission.vue index c7404b08..85fc5abd 100644 --- a/src/components/userScripts/tus-mission.vue +++ b/src/components/userScripts/tus-mission.vue @@ -3,8 +3,8 @@
米游币任务({{ todayPoints }}/{{ totalPoints }})
- 刷新 - 执行 + 刷新 + 执行
@@ -55,6 +55,9 @@ const parseMissions = shallowRef>([]); const missionList = shallowRef>([]); const todayPoints = ref(0); const totalPoints = ref(0); +const loadScript = defineModel(); +const loadState = ref(false); +const loadMission = ref(false); function mergeMission( list: Array, @@ -90,6 +93,12 @@ function mergeMission( } async function tryRefresh(): Promise { + if (loadScript.value) { + showSnackbar.warn("任务正在执行中,请稍后再试"); + return; + } + loadScript.value = true; + loadState.value = true; await TGLogger.ScriptSep("米游币任务"); await TGLogger.Script("[米游币任务]刷新任务状态"); if (!cookie.value) { @@ -105,9 +114,17 @@ async function tryRefresh(): Promise { }; await refreshState(ck); await TGLogger.ScriptSep("米游币任务", false); + loadScript.value = false; + loadState.value = false; } async function tryAuto(): Promise { + if (loadScript.value) { + showSnackbar.warn("任务正在执行中,请稍后再试"); + return; + } + loadScript.value = true; + loadMission.value = true; await TGLogger.ScriptSep("米游币任务"); await TGLogger.Script("[米游币任务]开始执行任务"); if (!cookie.value) { @@ -133,6 +150,8 @@ async function tryAuto(): Promise { if (postFilter.every((i) => i.status)) { await TGLogger.Script("[米游币任务]所有任务已完成"); await TGLogger.ScriptSep("米游币任务", false); + loadScript.value = false; + loadMission.value = false; return; } let isShare = false; @@ -202,6 +221,8 @@ async function tryAuto(): Promise { await TGLogger.Script("[米游币任务]任务执行完毕,即将刷新任务状态"); await refreshState(ck); await TGLogger.ScriptSep("米游币任务", false); + loadScript.value = false; + loadMission.value = false; } async function refreshState(ck: Record): Promise { diff --git a/src/pages/User/Scripts.vue b/src/pages/User/Scripts.vue index ee73fd77..339c1e7a 100644 --- a/src/pages/User/Scripts.vue +++ b/src/pages/User/Scripts.vue @@ -47,16 +47,16 @@
脚本列表
- +
@@ -70,7 +70,7 @@ import TusMission from "@comp/userScripts/tus-mission.vue"; import TusOutput from "@comp/userScripts/tus-output.vue"; import TSUserAccount from "@Sqlite/modules/userAccount.js"; import { storeToRefs } from "pinia"; -import { onMounted, shallowRef } from "vue"; +import { onMounted, ref, shallowRef } from "vue"; import { useUserStore } from "@/store/modules/user.js"; import apiHubReq from "@/web/request/apiHubReq.js"; @@ -78,6 +78,7 @@ import apiHubReq from "@/web/request/apiHubReq.js"; const { uid, briefInfo, cookie, account } = storeToRefs(useUserStore()); const accounts = shallowRef>([]); const curAccount = shallowRef(); +const runScript = ref(false); onMounted(async () => { accounts.value = await TSUserAccount.account.getAllAccount();