fix(admin-web): 优化授权页面错误提示,显示后端真实错误信息

问题:创建授权失败时只显示"Request failed with status code 400"
用户无法了解失败的真实原因(如用户未种树、授权冲突等)

修复:
- handleCreate和handleRevoke的catch块优先从err.response.data.message提取后端错误
- 后端已有完善的错误提示如"用户尚未认种任何树,无法授权"
- 前端现在能正确显示这些提示帮助管理员了解真实情况

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-08 21:38:00 -08:00
parent 4d944b06e5
commit 00264a721e
1 changed files with 18 additions and 4 deletions

View File

@ -146,9 +146,16 @@ export default function AuthorizationPage() {
region: '',
skipAssessment: false,
});
} catch (err) {
} catch (err: unknown) {
console.error('创建授权失败:', err);
const errorMessage = err instanceof Error ? err.message : '创建授权失败';
// 优先从后端响应中获取错误信息
let errorMessage = '创建授权失败';
if (err && typeof err === 'object' && 'response' in err) {
const axiosError = err as { response?: { data?: { message?: string } } };
errorMessage = axiosError.response?.data?.message || errorMessage;
} else if (err instanceof Error) {
errorMessage = err.message;
}
toast.error(errorMessage);
}
};
@ -166,9 +173,16 @@ export default function AuthorizationPage() {
setShowRevokeModal(false);
setRevokeTarget(null);
setRevokeReason('');
} catch (err) {
} catch (err: unknown) {
console.error('撤销授权失败:', err);
toast.error('撤销授权失败');
let errorMessage = '撤销授权失败';
if (err && typeof err === 'object' && 'response' in err) {
const axiosError = err as { response?: { data?: { message?: string } } };
errorMessage = axiosError.response?.data?.message || errorMessage;
} else if (err instanceof Error) {
errorMessage = err.message;
}
toast.error(errorMessage);
}
};