diff --git a/src/views/check_in/index.vue b/src/views/check_in/index.vue index 8558b55..74e89aa 100644 --- a/src/views/check_in/index.vue +++ b/src/views/check_in/index.vue @@ -5,17 +5,23 @@ import { checkmarkCircleOutline } from "ionicons/icons"; import { client, safeClient } from "@/api"; const [start, end] = [dayjs().startOf("month"), dayjs().endOf("month")]; -const { data } = await safeClient(client.api.checkIns.get({ +const { data, execute: fetchCheckIns } = await safeClient(() => client.api.checkIns.get({ query: { startDate: start.toISOString(), endDate: end.toISOString(), }, })); -const { data: current_streak } = await safeClient(client.api.checkIns.current_streak.get()); -const { data: total_count } = await safeClient(client.api.checkIns.total_days.get()); -const { data: today_checkin } = await safeClient(client.api.checkIns.today.get({ query: { timezone: "IANA" } })); +const { data: current_streak, execute: fetchCurrentStreak } = await safeClient(() => client.api.checkIns.current_streak.get()); +const { data: total_count, execute: fetchTotalCount } = await safeClient(() => client.api.checkIns.total_days.get()); +const { data: today_checkin, execute: fetchTodayCheckin } = await safeClient(() => client.api.checkIns.today.get({ query: { timezone: "IANA" } })); +function loadData() { + fetchCheckIns(); + fetchCurrentStreak(); + fetchTotalCount(); + fetchTodayCheckin(); +} const checkedInDates = computed(() => { if (!data.value?.data) return new Set(); @@ -29,6 +35,7 @@ function isCheckedIn(day: number) { async function handleSignup() { await safeClient(client.api.checkIns.post()); + loadData(); toastController.create({ message: "签到成功!", duration: 2000, diff --git a/src/views/invite/bind.vue b/src/views/invite/bind.vue index f5893e2..40ed57e 100644 --- a/src/views/invite/bind.vue +++ b/src/views/invite/bind.vue @@ -140,9 +140,15 @@ function nextPage() {