mirror of
https://github.com/Funkoala14/KnowledgeBase_OOIN.git
synced 2025-06-08 04:58:13 +08:00
[dev]error notification fix...
This commit is contained in:
parent
be65466375
commit
ccdc3ee217
@ -28,7 +28,7 @@ const Snackbar = ({ type = 'primary', message, duration = 3000, onClose }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={`snackbar alert alert-${type} d-flex align-items-center justify-content-between position-fixed top-10 start-50 translate-middle w-50 z-2 gap-2`}
|
className={`snackbar alert alert-${type} d-flex align-items-center justify-content-between position-fixed top-10 start-50 translate-middle w-50 z-2 gap-2 z-3`}
|
||||||
role='alert'
|
role='alert'
|
||||||
>
|
>
|
||||||
<SvgIcon className={icons[type]} />
|
<SvgIcon className={icons[type]} />
|
||||||
|
@ -33,6 +33,7 @@ export default function SettingsTab({ knowledgeBase }) {
|
|||||||
|
|
||||||
// State for knowledge base form
|
// State for knowledge base form
|
||||||
const [knowledgeBaseForm, setKnowledgeBaseForm] = useState({
|
const [knowledgeBaseForm, setKnowledgeBaseForm] = useState({
|
||||||
|
permissions: knowledgeBase.permissions,
|
||||||
name: knowledgeBase.name,
|
name: knowledgeBase.name,
|
||||||
desc: knowledgeBase.desc || knowledgeBase.description || '',
|
desc: knowledgeBase.desc || knowledgeBase.description || '',
|
||||||
type: knowledgeBase.type || 'private', // 默认为私有知识库
|
type: knowledgeBase.type || 'private', // 默认为私有知识库
|
||||||
@ -227,7 +228,7 @@ export default function SettingsTab({ knowledgeBase }) {
|
|||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
dispatch(
|
dispatch(
|
||||||
showNotification({
|
showNotification({
|
||||||
message: `类型更新失败: ${error.message || '未知错误'}`,
|
message: `类型更新失败: ${error || '未知错误'}`,
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -276,7 +277,7 @@ export default function SettingsTab({ knowledgeBase }) {
|
|||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
dispatch(
|
dispatch(
|
||||||
showNotification({
|
showNotification({
|
||||||
message: `更新失败: ${error.message || '未知错误'}`,
|
message: `更新失败: ${error || '未知错误'}`,
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -305,7 +306,7 @@ export default function SettingsTab({ knowledgeBase }) {
|
|||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
dispatch(
|
dispatch(
|
||||||
showNotification({
|
showNotification({
|
||||||
message: `删除失败: ${error.message || '未知错误'}`,
|
message: `删除失败: ${error || '未知错误'}`,
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -43,7 +43,7 @@ const DeleteConfirmModal = ({ show, title, isSubmitting, onCancel, onConfirm })
|
|||||||
<div className='modal-body'>
|
<div className='modal-body'>
|
||||||
<p>您确定要删除知识库 "{title}" 吗?此操作不可撤销。</p>
|
<p>您确定要删除知识库 "{title}" 吗?此操作不可撤销。</p>
|
||||||
</div>
|
</div>
|
||||||
<div className='modal-footer'>
|
<div className='modal-footer gap-2'>
|
||||||
<button type='button' className='btn btn-secondary' onClick={onCancel} disabled={isSubmitting}>
|
<button type='button' className='btn btn-secondary' onClick={onCancel} disabled={isSubmitting}>
|
||||||
取消
|
取消
|
||||||
</button>
|
</button>
|
||||||
|
@ -59,6 +59,10 @@ const KnowledgeBaseForm = ({
|
|||||||
// 是否显示类型更改按钮
|
// 是否显示类型更改按钮
|
||||||
const showTypeChangeButton = hasTypeChanged || (isAdmin && hasDepartmentOrGroupChanged);
|
const showTypeChangeButton = hasTypeChanged || (isAdmin && hasDepartmentOrGroupChanged);
|
||||||
|
|
||||||
|
console.log(formData);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='card border-0 shadow-sm'>
|
<div className='card border-0 shadow-sm'>
|
||||||
<div className='card-body'>
|
<div className='card-body'>
|
||||||
@ -262,8 +266,8 @@ const KnowledgeBaseForm = ({
|
|||||||
type='button'
|
type='button'
|
||||||
className='btn btn-danger'
|
className='btn btn-danger'
|
||||||
onClick={onDelete}
|
onClick={onDelete}
|
||||||
disabled='true'
|
// disabled='true'
|
||||||
// disabled={isSubmitting}
|
disabled={isSubmitting}
|
||||||
>
|
>
|
||||||
删除知识库
|
删除知识库
|
||||||
</button>
|
</button>
|
||||||
|
@ -418,7 +418,7 @@ export default function KnowledgeBase() {
|
|||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
dispatch(
|
dispatch(
|
||||||
showNotification({
|
showNotification({
|
||||||
message: `删除失败: ${error.message || '未知错误'}`,
|
message: `删除失败: ${error || '未知错误'}`,
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -11,13 +11,12 @@ export const loginThunk = createAsyncThunk(
|
|||||||
async ({ username, password }, { rejectWithValue, dispatch }) => {
|
async ({ username, password }, { rejectWithValue, dispatch }) => {
|
||||||
try {
|
try {
|
||||||
const { message, data, code } = await post('/auth/login/', { username, password });
|
const { message, data, code } = await post('/auth/login/', { username, password });
|
||||||
console.log('code', code);
|
|
||||||
|
|
||||||
if (code !== 200) {
|
if (code !== 200) {
|
||||||
throw new Error(message || 'Something went wrong');
|
throw new Error(message);
|
||||||
}
|
}
|
||||||
if (!data) {
|
if (!data) {
|
||||||
throw new Error(message || 'Something went wrong');
|
throw new Error(message);
|
||||||
}
|
}
|
||||||
const { token } = data;
|
const { token } = data;
|
||||||
// encrypt token
|
// encrypt token
|
||||||
@ -27,7 +26,6 @@ export const loginThunk = createAsyncThunk(
|
|||||||
return data;
|
return data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage = error.response?.data?.message || 'Something went wrong';
|
const errorMessage = error.response?.data?.message || 'Something went wrong';
|
||||||
console.log(errorMessage);
|
|
||||||
dispatch(
|
dispatch(
|
||||||
showNotification({
|
showNotification({
|
||||||
message: errorMessage,
|
message: errorMessage,
|
||||||
@ -88,7 +86,7 @@ export const checkAuthThunk = createAsyncThunk('auth/verify', async (_, { reject
|
|||||||
return user;
|
return user;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
dispatch(logout());
|
dispatch(logout());
|
||||||
return rejectWithValue(error.response?.data || 'Token verification failed');
|
return rejectWithValue(error.response?.data?.message || 'Token verification failed');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ export const fetchMessages = createAsyncThunk('chat/fetchMessages', async (chatI
|
|||||||
|
|
||||||
return response.data?.messages || [];
|
return response.data?.messages || [];
|
||||||
} catch (error) {
|
} 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 || {};
|
return response.data || {};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return rejectWithValue(error.response?.data || 'Failed to send message');
|
return rejectWithValue(error.response?.data?.message || 'Failed to send message');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -46,7 +46,7 @@ export const createChat = createAsyncThunk('chat/createChat', async (chatData, {
|
|||||||
|
|
||||||
return response.data?.chat || {};
|
return response.data?.chat || {};
|
||||||
} catch (error) {
|
} 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 || {};
|
return response.data?.chat || {};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return rejectWithValue(error.response?.data || 'Failed to update chat');
|
return rejectWithValue(error.response?.data?.message || 'Failed to update chat');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -12,14 +12,16 @@ export const fetchKnowledgeBases = createAsyncThunk(
|
|||||||
'knowledgeBase/fetchKnowledgeBases',
|
'knowledgeBase/fetchKnowledgeBases',
|
||||||
async ({ page = 1, page_size = 10 } = {}, { rejectWithValue }) => {
|
async ({ page = 1, page_size = 10 } = {}, { rejectWithValue }) => {
|
||||||
try {
|
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) {
|
if (response.data && response.data.code === 200) {
|
||||||
return response.data.data;
|
return response.data.data;
|
||||||
}
|
}
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} 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;
|
return response.data;
|
||||||
} catch (error) {
|
} 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;
|
return response.data;
|
||||||
} catch (error) {
|
} 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;
|
return response.data;
|
||||||
} catch (error) {
|
} 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;
|
return response.data;
|
||||||
} catch (error) {
|
} 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}/`);
|
await del(`/knowledge-bases/${id}/`);
|
||||||
return id;
|
return id;
|
||||||
} catch (error) {
|
} 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;
|
return response.data;
|
||||||
} catch (error) {
|
} 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 || '权限申请失败,请稍后重试',
|
message: error.response?.data?.detail || '权限申请失败,请稍后重试',
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
return rejectWithValue(error.response?.data || error.message);
|
return rejectWithValue(error.response?.data?.message || error.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user