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();