From 3714621173c606c4c58439ed8941100ce9ddea14 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 05 十一月 2025 15:10:49 +0800
Subject: [PATCH] bug
---
web/src/views/login/index.vue | 80 +++++++++++++++++++++++++++++++++++----
1 files changed, 71 insertions(+), 9 deletions(-)
diff --git a/web/src/views/login/index.vue b/web/src/views/login/index.vue
index 995bd4f..a714cc8 100644
--- a/web/src/views/login/index.vue
+++ b/web/src/views/login/index.vue
@@ -2,6 +2,7 @@
<div class="login-container">
<div class="login-box">
<div class="login-header">
+ <img src="/logo.jpg" alt="钃夋槗鍒汱ogo" class="logo" />
<h2>钃夋槗鍒涚鐞嗙郴缁�</h2>
<p>姣旇禌绠$悊骞冲彴</p>
</div>
@@ -62,6 +63,8 @@
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus'
+// import { loginApi } from '@/utils/graphql'
+import { setToken, setUserInfo } from '@/utils/auth'
const router = useRouter()
const loginFormRef = ref<FormInstance>()
@@ -93,17 +96,68 @@
await loginFormRef.value.validate()
loading.value = true
- // TODO: 璋冪敤鐧诲綍API
- // 妯℃嫙鐧诲綍
- setTimeout(() => {
- localStorage.setItem('token', 'mock-token-' + Date.now())
- ElMessage.success('鐧诲綍鎴愬姛')
- router.push('/')
- loading.value = false
- }, 1000)
+ // 璋冪敤RESTful鐧诲綍API
+ const response = await fetch('/api/auth/web-login', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ phone: loginForm.phone,
+ password: loginForm.password
+ })
+ })
- } catch (error) {
+ console.log('Response status:', response.status)
+ console.log('Response headers:', response.headers)
+
+ // 妫�鏌ュ搷搴旀槸鍚︿负绌�
+ const responseText = await response.text()
+ console.log('Response text:', responseText)
+
+ if (!responseText) {
+ throw new Error('鏈嶅姟鍣ㄨ繑鍥炵┖鍝嶅簲')
+ }
+
+ let result
+ try {
+ result = JSON.parse(responseText)
+ } catch (jsonError) {
+ console.error('JSON瑙f瀽閿欒:', jsonError)
+ console.error('鍝嶅簲鍐呭:', responseText)
+ throw new Error('鏈嶅姟鍣ㄥ搷搴旀牸寮忛敊璇�')
+ }
+
+ if (!response.ok) {
+ throw new Error(result.message || '鐧诲綍澶辫触')
+ }
+
+ // 淇濆瓨token鍜岀敤鎴蜂俊鎭�
+ setToken(result.token)
+ setUserInfo(result.userInfo)
+
+ ElMessage.success('鐧诲綍鎴愬姛')
+ router.push('/')
+
+ } catch (error: any) {
console.error('鐧诲綍澶辫触:', error)
+
+ // 鏄剧ず閿欒淇℃伅
+ let errorMessage = '鐧诲綍澶辫触'
+ if (error.message) {
+ if (error.message.includes('鐢ㄦ埛涓嶅瓨鍦�')) {
+ errorMessage = '鐢ㄦ埛涓嶅瓨鍦紝璇锋鏌ユ墜鏈哄彿'
+ } else if (error.message.includes('瀵嗙爜涓嶆纭�')) {
+ errorMessage = '瀵嗙爜涓嶆纭紝璇烽噸鏂拌緭鍏�'
+ } else if (error.message.includes('娌℃湁鏉冮檺')) {
+ errorMessage = '鎮ㄦ病鏈夎闂潈闄愶紝璇疯仈绯荤鐞嗗憳'
+ } else {
+ errorMessage = error.message
+ }
+ }
+
+ ElMessage.error(errorMessage)
+ } finally {
loading.value = false
}
}
@@ -130,6 +184,14 @@
text-align: center;
margin-bottom: 30px;
+ .logo {
+ width: 80px;
+ height: 80px;
+ object-fit: contain;
+ margin-bottom: 20px;
+ border-radius: 8px;
+ }
+
h2 {
color: #303133;
font-size: 24px;
--
Gitblit v1.8.0