- dsa
+
+
Toast 测试
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/admin.vue b/app/pages/admin.vue
index 61e22c2..cb34991 100644
--- a/app/pages/admin.vue
+++ b/app/pages/admin.vue
@@ -15,11 +15,6 @@ const adminNav = [
to: '/admin/scheduler',
icon: 'schedule'
},
- {
- label: '个人资料',
- to: '/admin/profile',
- icon: 'user'
- },
]
const iconPaths: Record
= {
diff --git a/app/pages/auth/login.vue b/app/pages/auth/login.vue
index f24e460..cacba61 100644
--- a/app/pages/auth/login.vue
+++ b/app/pages/auth/login.vue
@@ -4,6 +4,7 @@ definePageMeta({
})
const route = useRoute()
+const { $toast } = useNuxtApp()
const redirect = computed(() => route.query.redirect as string || '/')
const loginForm = reactive({
@@ -19,26 +20,27 @@ const captcha = reactive({
loading: false,
})
-const loginError = ref('')
const loginLoading = ref(false)
const { refresh } = useAuthSession()
async function fetchCaptcha() {
captcha.loading = true
+ const loadingToast = $toast.loading('加载验证码...', { toastId: 'captcha-loading' })
try {
const res = await $fetch<{ code: number; data: { captchaId: string; imageSvg: string } }>('/api/auth/captcha')
captcha.id = res.data.captchaId
captcha.svg = res.data.imageSvg
captcha.answer = ''
+ $toast.update(loadingToast, { render: '验证码加载成功', type: 'success', isLoading: false, autoClose: 1500 })
} catch (e: any) {
console.error('获取验证码失败', e)
+ $toast.update(loadingToast, { render: '验证码加载失败', type: 'error', isLoading: false, autoClose: 3000 })
} finally {
captcha.loading = false
}
}
async function handleLogin() {
- loginError.value = ''
loginLoading.value = true
try {
await $fetch('/api/auth/login', {
@@ -50,10 +52,11 @@ async function handleLogin() {
captchaAnswer: captcha.answer,
},
})
+ $toast.success('登录成功!')
await refresh(true)
await navigateTo(redirect.value)
} catch (e: any) {
- loginError.value = e?.data?.statusMessage || e?.message || '登录失败'
+ $toast.error(e?.data?.statusMessage || e?.message || '登录失败')
await fetchCaptcha()
} finally {
loginLoading.value = false
@@ -87,8 +90,6 @@ onMounted(fetchCaptcha)