From c4a9cad1c50e89365e2a58b50e259af642ed3b8c Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期二, 07 十月 2025 16:12:20 +0800 Subject: [PATCH] feat(review): 调整评审详情展示顺序与样式,描述支持多行,项目信息列宽40/60 fix(auth): 登录页与首页循环跳转保护;api.ts 在登录页不再重定向;401分支在登录页不跳转 fix(router): /login 放行策略优化,避免死循环;评审列表跳转到 /project-review/:id/detail fix(frontend): 补齐 utils/appConfig.ts,避免启动白屏 fix(review): 详情页提交评分缺少stageId时回退使用项目详情的stageId feat(backend): ActivityPlayerDetailResponse.playerInfo 补充 avatarUrl/avatar,服务组装时填充用户头像 chore(dev): 启动脚本注入本地JWT密钥,重启前后端 --- web/src/views/login/index.vue | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 46 insertions(+), 7 deletions(-) diff --git a/web/src/views/login/index.vue b/web/src/views/login/index.vue index a8b0433..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,7 +63,7 @@ import { useRouter } from 'vue-router' import { ElMessage } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus' -import { loginApi } from '@/utils/graphql' +// import { loginApi } from '@/utils/graphql' import { setToken, setUserInfo } from '@/utils/auth' const router = useRouter() @@ -95,15 +96,45 @@ await loginFormRef.value.validate() loading.value = true - // 璋冪敤鐧诲綍API - const response = await loginApi({ - phone: loginForm.phone, - password: loginForm.password + // 璋冪敤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 + }) }) + 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(response.token) - setUserInfo(response.userInfo) + setToken(result.token) + setUserInfo(result.userInfo) ElMessage.success('鐧诲綍鎴愬姛') router.push('/') @@ -153,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