From 2e897baa45190d1373ae04452f124fb44dbaece3 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Sun, 18 Jan 2026 20:56:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E5=A4=A9=E5=8F=AA=E8=83=BD=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E4=B8=80=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 2 -- src/shared/components/LoginSummaryModal.vue | 12 +++++------- src/shared/layout/default.vue | 2 ++ src/shared/store/loginSummary.ts | 16 ++++++++++++++++ src/utils/constants.ts | 7 ++++--- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/App.vue b/src/App.vue index 08713ec..baf7621 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,7 +6,6 @@ import { useConfigStore } from "shared/store/config" import { useConfigUpdate } from "shared/composables/configUpdate" import { useMaxKB } from "shared/composables/maxkb" import { useUserStore } from "shared/store/user" -import LoginSummaryModal from "shared/components/LoginSummaryModal.vue" const isDark = useDark() const configStore = useConfigStore() @@ -61,7 +60,6 @@ provide("hljs", hljsInstance) > - diff --git a/src/shared/components/LoginSummaryModal.vue b/src/shared/components/LoginSummaryModal.vue index 8c1a608..7c07947 100644 --- a/src/shared/components/LoginSummaryModal.vue +++ b/src/shared/components/LoginSummaryModal.vue @@ -8,14 +8,12 @@ import { parseTime } from "utils/functions" const loginSummaryStore = useLoginSummaryStore() const { isDesktop } = useBreakpoints() -const rangeText = computed(() => { +const lastLoginTime = computed(() => { const summary = loginSummaryStore.summary - if (!summary?.start || !summary?.end) { + if (!summary?.start) { return "" } - const start = parseTime(summary.start, "YYYY-MM-DD HH:mm") - const end = parseTime(summary.end, "YYYY-MM-DD HH:mm") - return `${start} - ${end}` + return parseTime(summary.start, "YYYY-MM-DD HH:mm") }) const hasAnalysis = computed(() => !!loginSummaryStore.analysis) @@ -31,7 +29,7 @@ const hasAnalysis = computed(() => !!loginSummaryStore.analysis) > - 统计区间:{{ rangeText }} + 上次登录时间:{{ lastLoginTime }} !!loginSummaryStore.analysis) /> diff --git a/src/shared/layout/default.vue b/src/shared/layout/default.vue index 6319311..c314529 100644 --- a/src/shared/layout/default.vue +++ b/src/shared/layout/default.vue @@ -3,6 +3,7 @@ import Beian from "../components/Beian.vue" import Header from "../components/Header.vue" import Login from "../components/Login.vue" import Signup from "../components/Signup.vue" +import LoginSummaryModal from "../components/LoginSummaryModal.vue" diff --git a/src/shared/store/loginSummary.ts b/src/shared/store/loginSummary.ts index e57d924..810168b 100644 --- a/src/shared/store/loginSummary.ts +++ b/src/shared/store/loginSummary.ts @@ -1,4 +1,6 @@ import { getAILoginSummary } from "oj/api" +import { STORAGE_KEY } from "utils/constants" +import storage from "utils/storage" interface LoginSummary { start: string @@ -17,6 +19,14 @@ export const useLoginSummaryStore = defineStore("loginSummary", () => { const analysis = ref("") const analysisError = ref("") + function getTodayKey() { + const now = new Date() + const year = now.getFullYear() + const month = String(now.getMonth() + 1).padStart(2, "0") + const day = String(now.getDate()).padStart(2, "0") + return `${year}-${month}-${day}` + } + async function fetchSummary() { loading.value = true analysis.value = "" @@ -34,6 +44,12 @@ export const useLoginSummaryStore = defineStore("loginSummary", () => { } async function open() { + const today = getTodayKey() + const lastShown = storage.get(STORAGE_KEY.LOGIN_SUMMARY_LAST_SHOWN) + if (lastShown === today) { + return + } + storage.set(STORAGE_KEY.LOGIN_SUMMARY_LAST_SHOWN, today) show.value = true await fetchSummary() } diff --git a/src/utils/constants.ts b/src/utils/constants.ts index eed74c1..cdeb2dc 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -130,6 +130,7 @@ export const STORAGE_KEY = { LEARN_CURRENT_STEP: "learnStep", ADMIN_PROBLEM: "adminProblem", ADMIN_PROBLEM_TAGS: "adminProblemTags", + LOGIN_SUMMARY_LAST_SHOWN: "login-summary-last-shown", } export const DIFFICULTY = { @@ -205,8 +206,8 @@ const cTemplate = `//TEMPLATE BEGIN #include int main() { - printf("黄岩一职"); - return 0; + printf("黄岩一职"); + return 0; } //TEMPLATE END` @@ -214,7 +215,7 @@ const cppTemplate = `//TEMPLATE BEGIN #include int main() { - return 0; + return 0; } //TEMPLATE END`