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