From 2660dc6fa908ae65338462b9586deeee78890a95 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 16 Oct 2026 11:27:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96=20+=20Caddy=20=E5=8F=8D=E4=BB=A3?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- intern-log/src/App.vue | 22 +++--------- intern-log/src/db/auth.ts | 9 ++--- intern-log/src/views/SettingsView.vue | 2 +- server/Caddyfile.example | 12 +++++++ server/DEPLOY.md | 52 +++++++++++++++++++++------ server/docker-compose.yml | 15 ++++++++ 实习工作日志系统-设计方案.md | 1 + 7 files changed, 79 insertions(+), 34 deletions(-) create mode 100644 server/Caddyfile.example diff --git a/intern-log/src/App.vue b/intern-log/src/App.vue index 70e0ee9..2bc1717 100644 --- a/intern-log/src/App.vue +++ b/intern-log/src/App.vue @@ -21,24 +21,12 @@ import { categoryLabel, type Attendance, type LogItem, type Memo } from './db/sc const toasts = useToasts() -// ---- 用户会话 ---- +// ---- 用户会话(持久化登录,退出走顶栏按钮)---- const session = ref(getSession()) -const IDLE_LOGOUT_MS = 30 * 60 * 1000 -let sessionIdleTimer: number | null = null - -function armSessionTimer() { - if (sessionIdleTimer !== null) window.clearTimeout(sessionIdleTimer) - if (!session.value) return - sessionIdleTimer = window.setTimeout(() => { doLogout(true) }, IDLE_LOGOUT_MS) -} -function onActivity() { - if (session.value) armSessionTimer() -} async function onLogin(s: Session) { session.value = s location.hash = '#/calendar' route.value = 'calendar' - armSessionTimer() await refreshClock() await refreshTip() startSyncTimer() @@ -49,12 +37,12 @@ async function onLogin(s: Session) { showToast('已迁移原有数据 ' + mt + ' 条') } } -async function doLogout(auto: boolean) { +async function doLogout() { await logoutUser() session.value = null route.value = 'calendar' location.hash = '#/calendar' - showToast(auto ? '长时间未操作已自动退出' : '已退出登录') + showToast('已退出登录') } // ---- 自动同步:登录后与每 5 分钟,静默执行 ---- @@ -212,10 +200,8 @@ async function refreshTip() { onMounted(async () => { window.addEventListener('keydown', onGlobalKey) - window.addEventListener('click', onActivity) if (session.value) { openUserDatabase(session.value.userId) - armSessionTimer() await refreshClock() await refreshTip() startSyncTimer() @@ -268,7 +254,7 @@ onMounted(async () => { 填写本周周记 {{ session?.username }} - +