发布 0.1.0:通知渠道、告警规则与多项体验修复
CI / test (push) Successful in 27s
Release / release (push) Successful in 26s

This commit is contained in:
Wang Defa
2026-07-10 17:31:19 +08:00
parent 9d0c116ce3
commit 5464d2dfea
68 changed files with 1604 additions and 359 deletions
+27 -1
View File
@@ -8,12 +8,15 @@ import { ApiError } from '@/api/request'
import AppLogo from '@/components/AppLogo.vue'
import FullPageBackdrop from '@/components/FullPageBackdrop.vue'
import OauthProviderIcon from '@/components/OauthProviderIcon.vue'
import { useThemeRipple } from '@/composables/useThemeRipple'
import { useAuthStore } from '@/stores/auth'
import type { OauthProviderInfo } from '@/types/api'
const auth = useAuthStore()
const route = useRoute()
const router = useRouter()
// 点击 logo 切换明暗主题,新主题自 logo 向外扩散
const { toggleDarkFrom } = useThemeRipple()
const username = ref('admin')
const password = ref('')
@@ -123,7 +126,15 @@ async function oauthLogin(provider: string) {
<div class="fpb-ring fpb-ring-dash" style="width: 430px; height: 430px; left: calc(50% - 215px); top: calc(50% - 215px)"></div>
</div>
<div class="flex items-center gap-3">
<span class="floaty flex-none"><AppLogo :size="58" /></span>
<button
type="button"
class="floaty logo-btn flex-none"
title="切换明暗主题"
aria-label="切换明暗主题"
@click="toggleDarkFrom"
>
<AppLogo :size="58" />
</button>
<span>
<span class="block font-serif text-2xl font-semibold">OCI Portal</span>
<span class="mt-px block text-[12.5px] text-ink-3">自托管 · Self-hosted</span>
@@ -240,6 +251,21 @@ async function oauthLogin(provider: string) {
height: 7px;
border-radius: 50%;
}
/* logo 即主题开关:去按钮底色,悬停轻微放大提示可点 */
.logo-btn {
cursor: pointer;
border: none;
background: none;
padding: 0;
line-height: 0;
transition: scale 0.25s ease;
}
.logo-btn:hover {
scale: 1.06;
}
.logo-btn:active {
scale: 0.96;
}
@media (prefers-reduced-motion: no-preference) {
.floaty {
animation: login-fl 7s ease-in-out infinite;