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
This commit is contained in:
hiderfong
2026-04-23 11:19:00 +08:00
parent 3b50ccc7e1
commit dd49c9679d
3 changed files with 9 additions and 9 deletions
+2 -2
View File
@@ -20,9 +20,9 @@ export interface UserInfo {
} }
export function login(username: string, password: string): Promise<LoginRes> { export function login(username: string, password: string): Promise<LoginRes> {
return request.post('/auth/login', { username, password }) return request.post('/auth/login', { username, password }).then((res: any) => res.data)
} }
export function getMe(): Promise<UserInfo> { export function getMe(): Promise<UserInfo> {
return request.get('/users/me') return request.get('/users/me').then((res: any) => res.data)
} }
+6 -6
View File
@@ -207,10 +207,10 @@ function handleEdit(row: DataSourceItem) {
async function handleTest() { async function handleTest() {
try { try {
const res: any = await testConnection({ ...form }) const res: any = await testConnection({ ...form })
if (res.success) { if (res.data?.success) {
ElMessage.success(res.message) ElMessage.success(res.data?.message)
} else { } else {
ElMessage.error(res.message) ElMessage.error(res.data?.message || '测试失败')
} }
} catch (e: any) { } catch (e: any) {
ElMessage.error(e?.message || '测试失败') ElMessage.error(e?.message || '测试失败')
@@ -254,10 +254,10 @@ async function handleSync(row: DataSourceItem) {
try { try {
await ElMessageBox.confirm('确认同步该数据源的元数据?', '提示', { type: 'info' }) await ElMessageBox.confirm('确认同步该数据源的元数据?', '提示', { type: 'info' })
const res: any = await syncMetadata(row.id) const res: any = await syncMetadata(row.id)
if (res.success) { if (res.data?.success) {
ElMessage.success(res.message) ElMessage.success(res.data?.message)
} else { } else {
ElMessage.error(res.message) ElMessage.error(res.data?.message || '同步失败')
} }
} catch (e: any) { } catch (e: any) {
if (e !== 'cancel') ElMessage.error(e?.message || '同步失败') if (e !== 'cancel') ElMessage.error(e?.message || '同步失败')
+1 -1
View File
@@ -194,7 +194,7 @@ async function handleSubmit() {
async function handleAutoClassify(p: ProjectItem) { async function handleAutoClassify(p: ProjectItem) {
try { try {
const res: any = await autoClassifyProject(p.id) const res: any = await autoClassifyProject(p.id)
ElMessage.success(res.message || '自动分类完成') ElMessage.success(res.data?.message || '自动分类完成')
fetchData() fetchData()
} catch (e: any) { } catch (e: any) {
ElMessage.error(e?.message || '自动分类失败') ElMessage.error(e?.message || '自动分类失败')