From dd49c9679dccca23e5362de25422846c43e65d38 Mon Sep 17 00:00:00 2001 From: hiderfong Date: Thu, 23 Apr 2026 11:19:00 +0800 Subject: [PATCH] fix: login redirect and res.data access in auth/test/sync APIs - Fix auth.ts: login/getMe now unwrap res.data before returning - Fix DataSource.vue: testConnection/syncMetadata use res.data.success/message - Fix Project.vue: autoClassify uses res.data.message - Root cause: request.ts interceptor returns full response body, auth.ts was treating response as if it was already unwrapped --- frontend/src/api/auth.ts | 4 ++-- frontend/src/views/datasource/DataSource.vue | 12 ++++++------ frontend/src/views/project/Project.vue | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/api/auth.ts b/frontend/src/api/auth.ts index b05bc308..0126d3b7 100644 --- a/frontend/src/api/auth.ts +++ b/frontend/src/api/auth.ts @@ -20,9 +20,9 @@ export interface UserInfo { } export function login(username: string, password: string): Promise { - return request.post('/auth/login', { username, password }) + return request.post('/auth/login', { username, password }).then((res: any) => res.data) } export function getMe(): Promise { - return request.get('/users/me') + return request.get('/users/me').then((res: any) => res.data) } diff --git a/frontend/src/views/datasource/DataSource.vue b/frontend/src/views/datasource/DataSource.vue index f09e866c..54d36c21 100644 --- a/frontend/src/views/datasource/DataSource.vue +++ b/frontend/src/views/datasource/DataSource.vue @@ -207,10 +207,10 @@ function handleEdit(row: DataSourceItem) { async function handleTest() { try { const res: any = await testConnection({ ...form }) - if (res.success) { - ElMessage.success(res.message) + if (res.data?.success) { + ElMessage.success(res.data?.message) } else { - ElMessage.error(res.message) + ElMessage.error(res.data?.message || '测试失败') } } catch (e: any) { ElMessage.error(e?.message || '测试失败') @@ -254,10 +254,10 @@ async function handleSync(row: DataSourceItem) { try { await ElMessageBox.confirm('确认同步该数据源的元数据?', '提示', { type: 'info' }) const res: any = await syncMetadata(row.id) - if (res.success) { - ElMessage.success(res.message) + if (res.data?.success) { + ElMessage.success(res.data?.message) } else { - ElMessage.error(res.message) + ElMessage.error(res.data?.message || '同步失败') } } catch (e: any) { if (e !== 'cancel') ElMessage.error(e?.message || '同步失败') diff --git a/frontend/src/views/project/Project.vue b/frontend/src/views/project/Project.vue index a2e8511d..0c68ee3f 100644 --- a/frontend/src/views/project/Project.vue +++ b/frontend/src/views/project/Project.vue @@ -194,7 +194,7 @@ async function handleSubmit() { async function handleAutoClassify(p: ProjectItem) { try { const res: any = await autoClassifyProject(p.id) - ElMessage.success(res.message || '自动分类完成') + ElMessage.success(res.data?.message || '自动分类完成') fetchData() } catch (e: any) { ElMessage.error(e?.message || '自动分类失败')