-
爬虫集群状态
+
爬虫状态
{{ stats.active_sources }} 个源运行中
diff --git a/frontend/src/views/LoginView.vue b/frontend/src/views/LoginView.vue
index 96cda2f..d02b31c 100644
--- a/frontend/src/views/LoginView.vue
+++ b/frontend/src/views/LoginView.vue
@@ -19,6 +19,8 @@ const showPassword = ref(false)
const errorMessage = ref('')
const successMessage = ref('')
const countdown = ref(0)
+const isSubmitting = ref(false)
+const isSendingCode = ref(false)
const form = reactive({
email: '',
@@ -83,6 +85,7 @@ async function handleSendLoginCode() {
return
}
+ isSendingCode.value = true
try {
const result = await authStore.sendLoginVerificationCode(form.email.trim())
successMessage.value = result.message || '验证码已发送'
@@ -93,6 +96,8 @@ async function handleSendLoginCode() {
startCooldown(retryAfter)
}
errorMessage.value = error instanceof Error ? error.message : '验证码发送失败,请稍后重试'
+ } finally {
+ isSendingCode.value = false
}
}
@@ -106,6 +111,7 @@ async function handleSubmit() {
return
}
+ isSubmitting.value = true
try {
if (loginMode.value === 'password') {
await authStore.loginWithPassword({
@@ -123,6 +129,8 @@ async function handleSubmit() {
await router.replace(redirect)
} catch (error) {
errorMessage.value = error instanceof Error ? error.message : '登录失败,请稍后重试'
+ } finally {
+ isSubmitting.value = false
}
}
@@ -146,6 +154,30 @@ onUnmounted(() => {
聚合多平台趋势,自动完成热点归并与摘要。你可以用密码登录,也可以直接使用邮箱验证码快速登录。
+
+
+
+
🚀
+
+ 实时热搜追踪
+ 分钟级更新,覆盖微博、知乎、抖音等主流平台
+
+
+
+
🤖
+
+ AI 智能聚类
+ 自动识别同源事件,告别重复阅读的信息轰炸
+
+
+
+
✨
+
+ 核心内容摘要
+ 一键获取事件全貌,省时省力掌握核心脉络
+
+
+
@@ -204,9 +236,9 @@ onUnmounted(() => {
placeholder="请输入密码"
autocomplete="current-password"
/>
-