feat: apply standard login page design
ci / gitleaks (push) Successful in 1m27s
ci / docker (push) Successful in 9m25s

This commit is contained in:
2026-09-20 09:11:35 +08:00
parent ed123b710f
commit f7e7404c31
4 changed files with 59 additions and 9 deletions
+7 -5
View File
@@ -1511,13 +1511,15 @@ onUnmounted(() => {
<template>
<div v-if="!authReady" class="center loading-brand"><img class="loading-logo" src="/dodo-logo.svg" alt=""><span class="loader" /><span>正在打开 dodo</span></div>
<div v-else-if="!authenticated" class="auth-shell">
<section class="auth-card">
<div class="brand brand-lockup"><img class="brand-logo" src="/dodo-logo.svg" alt=""><span class="brand-wordmark">dodo</span></div><p>{{ initialized ? '欢迎回来,继续把生活理顺。' : '创建你的 dodo' }}</p>
<form class="auth-card" aria-labelledby="auth-title" @submit.prevent="submitAuth">
<div class="auth-brand"><div class="brand brand-lockup"><img class="brand-logo" src="/dodo-logo.svg" alt=""><span class="brand-wordmark">dodo</span></div></div>
<div class="auth-heading"><h1 id="auth-title">{{ initialized ? '欢迎回来' : '创建你的 dodo' }}</h1><p>{{ initialized ? '登录后继续处理今天的事项。' : '创建账号后开始整理你的事项。' }}</p></div>
<label>用户名<input v-model="username" autocomplete="username" placeholder="你的用户名"></label>
<label>密码<input v-model="password" type="password" autocomplete="current-password" placeholder="至少 12 位" @keyup.enter="submitAuth"></label>
<button class="primary" @click="submitAuth">{{ initialized ? '登录' : '开始使用' }}</button>
<label>密码<input v-model="password" type="password" autocomplete="current-password" placeholder="至少 12 位"></label>
<button type="submit" class="primary">{{ initialized ? '登录' : '开始使用' }}</button>
<small v-if="error" role="alert">{{ error }}</small>
</section>
<p v-if="initialized" class="auth-footnote">登录后继续你的清单</p>
</form>
</div>
<div v-else class="shell" :class="{ 'today-active': activeView==='today', 'sidebar-collapsed': sidebarCollapsed, 'detail-open': Boolean(selectedTask), 'memo-detail-open': activeView==='memos' && memoDetailOpen, 'mobile-sidebar-open': mobileSidebar }">
<div v-if="mobileSidebar || mobileDetail" class="scrim" @click="mobileSidebar=false;mobileDetail=false" />