From 943ea9a263dd02021e1000317227b4d74dfb6e2b Mon Sep 17 00:00:00 2001 From: Seven Date: Mon, 19 Jan 2026 17:09:14 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E5=92=8C=E7=BB=91=E5=AE=9A=E9=82=80=E8=AF=B7=E7=A0=81=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=87=BD=E6=95=B0=EF=BC=8C=E6=8F=90=E5=8D=87=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/check_in/index.vue | 15 ++++++--- src/views/invite/bind.vue | 8 ++++- src/views/invite/index.vue | 65 +++++++++++++++++++++++++++++++++--- 3 files changed, 78 insertions(+), 10 deletions(-) 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() {