fix: resolve response format mismatches causing data loading failures in Dashboard, ImBots, Promotion, Knowledge pages

This commit is contained in:
qyyfw committed 2026-07-07 17:17:41 +08:00
1 parent 839be8f97f
commit e9ec429d21
4 files changed
+385 -461

No files matched your search

+25 -25
View File
@@ -97,9 +97,9 @@ const ImBots: React.FC = () => {
// Load agents for dropdowns
const loadAgents = useCallback(async () => {
try {
const res = await adminAPI.getAIApps('?type=agent&page_size=100');
if (res.data?.success) {
setAgents(res.data.data?.items || []);
const res = await adminAPI.getAIApps('?type=agent&page_size=100') as any;
if (res?.data) {
setAgents(res.data?.items || []);
}
} catch (e) {
// silently fail
@@ -110,7 +110,7 @@ const ImBots: React.FC = () => {
const loadStats = useCallback(async () => {
try {
const res = await adminAPI.getImBotStats();
if (res.data?.success) setStats(res.data.data);
if ((res as any)?.success) setStats(res.data);
} catch (e) {
console.error('Stats error:', e);
}
@@ -120,7 +120,7 @@ const ImBots: React.FC = () => {
const loadDashboard = useCallback(async () => {
try {
const res = await adminAPI.getImBotDashboard();
if (res.data?.success) setDashboard(res.data.data);
if ((res as any)?.success) setDashboard(res.data);
} catch (e) {
console.error('Dashboard error:', e);
}
@@ -134,9 +134,9 @@ const ImBots: React.FC = () => {
if (filterPlatform) endpoint += `&platform=${filterPlatform}`;
if (filterStatus) endpoint += `&status=${filterStatus}`;
const res = await adminAPI.getImBotChannels(endpoint);
if (res.data?.success) {
setChannels(res.data.data?.items || []);
setChannelsTotal(res.data.data?.total || 0);
if ((res as any)?.success) {
setChannels(res.data?.items || []);
setChannelsTotal(res.data?.total || 0);
}
} catch (e) {
showToast('Failed to load channels', 'error');
@@ -149,7 +149,7 @@ const ImBots: React.FC = () => {
const loadRoutes = useCallback(async () => {
try {
const res = await adminAPI.getImBotRoutes();
if (res.data?.success) setRoutes(res.data.data || []);
if ((res as any)?.success) setRoutes(res.data || []);
} catch (e) {
showToast('Failed to load routes', 'error');
}
@@ -159,8 +159,8 @@ const ImBots: React.FC = () => {
const loadLangbot = useCallback(async () => {
try {
const res = await adminAPI.getLangbotConfig();
if (res.data?.success) {
const configs = res.data.data || [];
if ((res as any)?.success) {
const configs = res.data || [];
setLangbotConfig(configs);
if (configs.length > 0) {
setLangbotForm({ ...langbotForm, ...configs[0] });
@@ -175,9 +175,9 @@ const ImBots: React.FC = () => {
const loadMessages = useCallback(async () => {
try {
const res = await adminAPI.getImBotMessages(`?page=${messagesPage}&page_size=50`);
if (res.data?.success) {
setMessages(res.data.data?.items || []);
setMessagesTotal(res.data.data?.total || 0);
if ((res as any)?.success) {
setMessages(res.data?.items || []);
setMessagesTotal(res.data?.total || 0);
}
} catch (e) {
showToast('Failed to load messages', 'error');
@@ -188,7 +188,7 @@ const ImBots: React.FC = () => {
const loadPlatforms = useCallback(async () => {
try {
const res = await adminAPI.getImBotPlatforms();
if (res.data?.success) setPlatforms(res.data.data || []);
if ((res as any)?.success) setPlatforms(res.data || []);
} catch (e) {
// silently fail
}
@@ -222,8 +222,8 @@ const ImBots: React.FC = () => {
const handleTestChannel = async (channelId: string) => {
try {
const res = await adminAPI.testImBotChannel(channelId);
if (res.data?.success) {
const data = res.data.data;
if ((res as any)?.success) {
const data = res.data;
if (data.passed) {
showToast('Channel test passed!');
} else {
@@ -256,8 +256,8 @@ const ImBots: React.FC = () => {
const handleViewChannel = async (channelId: string) => {
try {
const res = await adminAPI.getImBotChannelDetail(channelId);
if (res.data?.success) {
setSelectedChannel(res.data.data);
if ((res as any)?.success) {
setSelectedChannel(res.data);
setShowChannelDetail(true);
}
} catch (e) {
@@ -269,8 +269,8 @@ const ImBots: React.FC = () => {
const handleGetWebhookUrl = async (platform: string) => {
try {
const res = await adminAPI.getImBotWebhookUrl(platform);
if (res.data?.success) {
setWebhookInfo(res.data.data);
if ((res as any)?.success) {
setWebhookInfo(res.data);
setShowWebhookModal(true);
}
} catch (e) {
@@ -328,8 +328,8 @@ const ImBots: React.FC = () => {
if (setupForm.agent_id) params.append('agent_id', setupForm.agent_id);
if (setupForm.credentials) params.append('credentials', setupForm.credentials);
const res = await adminAPI.imBotQuickSetup('?' + params.toString());
if (res.data?.success) {
const data = res.data.data;
if ((res as any)?.success) {
const data = res.data;
setWebhookInfo({
platform: data.platform,
platform_name: data.platform_name,
@@ -381,8 +381,8 @@ const ImBots: React.FC = () => {
});
if (langbotForm.api_key) params.append('api_key', langbotForm.api_key);
const res = await adminAPI.testLangbot('?' + params.toString());
if (res.data?.success) {
const data = res.data.data;
if ((res as any)?.success) {
const data = res.data;
if (data.reachable) {
showToast(`LangBot reachable! Status: ${data.status_code}`);
} else {