From be65466375d0f9bf0da4a0cfb17aa66d9b0fae52 Mon Sep 17 00:00:00 2001 From: susie-laptop Date: Sat, 29 Mar 2025 14:44:32 -0400 Subject: [PATCH 1/2] Update vite.config.js --- vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index f2ecfab..dbe53d6 100644 --- a/vite.config.js +++ b/vite.config.js @@ -14,7 +14,7 @@ export default defineConfig(({ mode }) => { port: env.VITE_PORT, proxy: { '/api': { - target: env.VITE_API_URL || 'http://81.69.223.133:3000', + target: env.VITE_API_URL || 'http://81.69.223.133:58008', changeOrigin: true, }, }, From ccdc3ee217facf2226ba3bcec3da8ae1a9450f3d Mon Sep 17 00:00:00 2001 From: susie-laptop Date: Sat, 29 Mar 2025 19:44:45 -0400 Subject: [PATCH 2/2] [dev]error notification fix... --- src/components/Snackbar.jsx | 2 +- .../KnowledgeBase/Detail/SettingsTab.jsx | 7 ++++--- .../Detail/components/DeleteConfirmModal.jsx | 2 +- .../Detail/components/KnowledgeBaseForm.jsx | 8 ++++++-- src/pages/KnowledgeBase/KnowledgeBase.jsx | 2 +- src/store/auth/auth.thunk.js | 8 +++----- src/store/chat/chat.messages.thunks.js | 4 ++-- src/store/chat/chat.thunks.js | 4 ++-- .../knowledgeBase/knowledgeBase.thunks.js | 20 ++++++++++--------- 9 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/components/Snackbar.jsx b/src/components/Snackbar.jsx index 8930889..7c26224 100644 --- a/src/components/Snackbar.jsx +++ b/src/components/Snackbar.jsx @@ -28,7 +28,7 @@ const Snackbar = ({ type = 'primary', message, duration = 3000, onClose }) => { return (
diff --git a/src/pages/KnowledgeBase/Detail/SettingsTab.jsx b/src/pages/KnowledgeBase/Detail/SettingsTab.jsx index bc59dc0..98454f6 100644 --- a/src/pages/KnowledgeBase/Detail/SettingsTab.jsx +++ b/src/pages/KnowledgeBase/Detail/SettingsTab.jsx @@ -33,6 +33,7 @@ export default function SettingsTab({ knowledgeBase }) { // State for knowledge base form const [knowledgeBaseForm, setKnowledgeBaseForm] = useState({ + permissions: knowledgeBase.permissions, name: knowledgeBase.name, desc: knowledgeBase.desc || knowledgeBase.description || '', type: knowledgeBase.type || 'private', // 默认为私有知识库 @@ -227,7 +228,7 @@ export default function SettingsTab({ knowledgeBase }) { .catch((error) => { dispatch( showNotification({ - message: `类型更新失败: ${error.message || '未知错误'}`, + message: `类型更新失败: ${error || '未知错误'}`, type: 'danger', }) ); @@ -276,7 +277,7 @@ export default function SettingsTab({ knowledgeBase }) { .catch((error) => { dispatch( showNotification({ - message: `更新失败: ${error.message || '未知错误'}`, + message: `更新失败: ${error || '未知错误'}`, type: 'danger', }) ); @@ -305,7 +306,7 @@ export default function SettingsTab({ knowledgeBase }) { .catch((error) => { dispatch( showNotification({ - message: `删除失败: ${error.message || '未知错误'}`, + message: `删除失败: ${error || '未知错误'}`, type: 'danger', }) ); diff --git a/src/pages/KnowledgeBase/Detail/components/DeleteConfirmModal.jsx b/src/pages/KnowledgeBase/Detail/components/DeleteConfirmModal.jsx index e8550f1..0d3c1fa 100644 --- a/src/pages/KnowledgeBase/Detail/components/DeleteConfirmModal.jsx +++ b/src/pages/KnowledgeBase/Detail/components/DeleteConfirmModal.jsx @@ -43,7 +43,7 @@ const DeleteConfirmModal = ({ show, title, isSubmitting, onCancel, onConfirm })

您确定要删除知识库 "{title}" 吗?此操作不可撤销。

-
+
diff --git a/src/pages/KnowledgeBase/Detail/components/KnowledgeBaseForm.jsx b/src/pages/KnowledgeBase/Detail/components/KnowledgeBaseForm.jsx index ff747d1..065a70a 100644 --- a/src/pages/KnowledgeBase/Detail/components/KnowledgeBaseForm.jsx +++ b/src/pages/KnowledgeBase/Detail/components/KnowledgeBaseForm.jsx @@ -59,6 +59,10 @@ const KnowledgeBaseForm = ({ // 是否显示类型更改按钮 const showTypeChangeButton = hasTypeChanged || (isAdmin && hasDepartmentOrGroupChanged); + console.log(formData); + + + return (
@@ -262,8 +266,8 @@ const KnowledgeBaseForm = ({ type='button' className='btn btn-danger' onClick={onDelete} - disabled='true' - // disabled={isSubmitting} + // disabled='true' + disabled={isSubmitting} > 删除知识库 diff --git a/src/pages/KnowledgeBase/KnowledgeBase.jsx b/src/pages/KnowledgeBase/KnowledgeBase.jsx index 0d87f4f..40b42c6 100644 --- a/src/pages/KnowledgeBase/KnowledgeBase.jsx +++ b/src/pages/KnowledgeBase/KnowledgeBase.jsx @@ -418,7 +418,7 @@ export default function KnowledgeBase() { .catch((error) => { dispatch( showNotification({ - message: `删除失败: ${error.message || '未知错误'}`, + message: `删除失败: ${error || '未知错误'}`, type: 'danger', }) ); diff --git a/src/store/auth/auth.thunk.js b/src/store/auth/auth.thunk.js index 3c7b20a..e816d44 100644 --- a/src/store/auth/auth.thunk.js +++ b/src/store/auth/auth.thunk.js @@ -11,13 +11,12 @@ export const loginThunk = createAsyncThunk( async ({ username, password }, { rejectWithValue, dispatch }) => { try { const { message, data, code } = await post('/auth/login/', { username, password }); - console.log('code', code); if (code !== 200) { - throw new Error(message || 'Something went wrong'); + throw new Error(message); } if (!data) { - throw new Error(message || 'Something went wrong'); + throw new Error(message); } const { token } = data; // encrypt token @@ -27,7 +26,6 @@ export const loginThunk = createAsyncThunk( return data; } catch (error) { const errorMessage = error.response?.data?.message || 'Something went wrong'; - console.log(errorMessage); dispatch( showNotification({ message: errorMessage, @@ -88,7 +86,7 @@ export const checkAuthThunk = createAsyncThunk('auth/verify', async (_, { reject return user; } catch (error) { dispatch(logout()); - return rejectWithValue(error.response?.data || 'Token verification failed'); + return rejectWithValue(error.response?.data?.message || 'Token verification failed'); } }); diff --git a/src/store/chat/chat.messages.thunks.js b/src/store/chat/chat.messages.thunks.js index e59e461..7beea0c 100644 --- a/src/store/chat/chat.messages.thunks.js +++ b/src/store/chat/chat.messages.thunks.js @@ -16,7 +16,7 @@ export const fetchMessages = createAsyncThunk('chat/fetchMessages', async (chatI return response.data?.messages || []; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to fetch messages'); + return rejectWithValue(error.response?.data?.message || 'Failed to fetch messages'); } }); @@ -40,6 +40,6 @@ export const sendMessage = createAsyncThunk('chat/sendMessage', async ({ chatId, return response.data || {}; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to send message'); + return rejectWithValue(error.response?.data?.message || 'Failed to send message'); } }); diff --git a/src/store/chat/chat.thunks.js b/src/store/chat/chat.thunks.js index 3a29ba8..a9f3dd8 100644 --- a/src/store/chat/chat.thunks.js +++ b/src/store/chat/chat.thunks.js @@ -46,7 +46,7 @@ export const createChat = createAsyncThunk('chat/createChat', async (chatData, { return response.data?.chat || {}; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to create chat'); + return rejectWithValue(error.response?.data?.message || 'Failed to create chat'); } }); @@ -67,7 +67,7 @@ export const updateChat = createAsyncThunk('chat/updateChat', async ({ id, data return response.data?.chat || {}; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to update chat'); + return rejectWithValue(error.response?.data?.message || 'Failed to update chat'); } }); diff --git a/src/store/knowledgeBase/knowledgeBase.thunks.js b/src/store/knowledgeBase/knowledgeBase.thunks.js index 00cb565..187af7f 100644 --- a/src/store/knowledgeBase/knowledgeBase.thunks.js +++ b/src/store/knowledgeBase/knowledgeBase.thunks.js @@ -12,14 +12,16 @@ export const fetchKnowledgeBases = createAsyncThunk( 'knowledgeBase/fetchKnowledgeBases', async ({ page = 1, page_size = 10 } = {}, { rejectWithValue }) => { try { - const response = await get('/knowledge-bases/', { params: { page, page_size } }); + const response = await get('/knowledge-bases', { params: { page, page_size } }); // 处理新的返回格式 if (response.data && response.data.code === 200) { return response.data.data; } return response.data; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to fetch knowledge bases'); + console.log(error); + + return rejectWithValue(error.response?.data.error.message || 'Failed to fetch knowledge bases'); } } ); @@ -48,7 +50,7 @@ export const searchKnowledgeBases = createAsyncThunk('knowledgeBase/search', asy } return response.data; } catch (error) { - return rejectWithValue(error.response?.data || error.message); + return rejectWithValue(error.response?.data?.message || error.message); } }); @@ -68,7 +70,7 @@ export const createKnowledgeBase = createAsyncThunk( return response.data; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to create knowledge base'); + return rejectWithValue(error.response?.data?.message || 'Failed to create knowledge base'); } } ); @@ -87,7 +89,7 @@ export const getKnowledgeBaseById = createAsyncThunk( } return response.data; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to get knowledge base details'); + return rejectWithValue(error.response?.data?.message || 'Failed to get knowledge base details'); } } ); @@ -111,7 +113,7 @@ export const updateKnowledgeBase = createAsyncThunk( return response.data; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to update knowledge base'); + return rejectWithValue(error.response?.data?.message || 'Failed to update knowledge base'); } } ); @@ -127,7 +129,7 @@ export const deleteKnowledgeBase = createAsyncThunk( await del(`/knowledge-bases/${id}/`); return id; } catch (error) { - return rejectWithValue(error.response?.data || 'Failed to delete knowledge base'); + return rejectWithValue(error.response?.data?.message || 'Failed to delete knowledge base'); } } ); @@ -157,7 +159,7 @@ export const changeKnowledgeBaseType = createAsyncThunk( return response.data; } catch (error) { - return rejectWithValue(error.response?.data || '修改知识库类型失败'); + return rejectWithValue(error.response?.data?.message || '修改知识库类型失败'); } } ); @@ -190,7 +192,7 @@ export const requestKnowledgeBaseAccess = createAsyncThunk( message: error.response?.data?.detail || '权限申请失败,请稍后重试', }) ); - return rejectWithValue(error.response?.data || error.message); + return rejectWithValue(error.response?.data?.message || error.message); } } );