mirror of
https://github.com/Funkoala14/KnowledgeBase_OOIN.git
synced 2025-06-08 04:58:13 +08:00
commit
2c60863882
@ -73,7 +73,7 @@ const DocumentList = ({ knowledgeBaseId }) => {
|
||||
<td>
|
||||
<div className='btn-group' role='group'>
|
||||
<button
|
||||
className='btn btn-sm btn-outline-primary me-2 d-none'
|
||||
className='btn btn-sm btn-outline-dark me-2'
|
||||
onClick={() => handlePreviewDocument(doc.document_id)}
|
||||
>
|
||||
预览
|
||||
|
@ -72,14 +72,14 @@ const DocumentPreviewModal = ({ show, documentId, knowledgeBaseId, onClose }) =>
|
||||
maxWidth: '90%',
|
||||
maxHeight: '80vh',
|
||||
padding: '20px',
|
||||
overflow: 'auto',
|
||||
overflow: 'hidden',
|
||||
}}
|
||||
>
|
||||
<div className='modal-header d-flex justify-content-between align-items-center mb-3'>
|
||||
<h5 className='modal-title m-0'>{documentContent?.document_info?.name || '文档预览'}</h5>
|
||||
<button type='button' className='btn-close' onClick={onClose} aria-label='Close'></button>
|
||||
</div>
|
||||
<div className='modal-body'>
|
||||
<div className='modal-body' style={{ overflow: 'auto' }}>
|
||||
{loading ? (
|
||||
<div className='text-center py-4'>
|
||||
<div className='spinner-border text-primary' role='status'>
|
||||
@ -118,7 +118,7 @@ const DocumentPreviewModal = ({ show, documentId, knowledgeBaseId, onClose }) =>
|
||||
)}
|
||||
</div>
|
||||
<div className='modal-footer'>
|
||||
<button type='button' className='btn btn-outline-secondary' onClick={onClose}>
|
||||
<button type='button' className='btn btn-outline-dark' onClick={onClose}>
|
||||
关闭
|
||||
</button>
|
||||
</div>
|
||||
|
@ -127,7 +127,7 @@ const KnowledgeBaseForm = ({
|
||||
</div>
|
||||
|
||||
{/* 仅当不是私有知识库时才显示部门选项 */}
|
||||
{formData.type === 'member' && (
|
||||
{formData.type === 'member' || formData.type === 'leader' && (
|
||||
<div className='mb-3'>
|
||||
<label htmlFor='department' className='form-label'>
|
||||
部门 {isAdmin && <span className='text-danger'>*</span>}
|
||||
@ -246,7 +246,7 @@ const KnowledgeBaseForm = ({
|
||||
)}
|
||||
|
||||
<div className='d-flex justify-content-between mt-4'>
|
||||
<button type='submit' className='btn btn-primary' disabled={isSubmitting|| !formData.permissions.can_edit}>
|
||||
<button type='submit' className='btn btn-dark' disabled={isSubmitting|| !formData.permissions.can_edit}>
|
||||
{isSubmitting ? (
|
||||
<>
|
||||
<span
|
||||
@ -262,7 +262,7 @@ const KnowledgeBaseForm = ({
|
||||
</button>
|
||||
<button
|
||||
type='button'
|
||||
className='btn btn-danger'
|
||||
className='btn btn-outline-danger'
|
||||
onClick={onDelete}
|
||||
// disabled='true'
|
||||
disabled={isSubmitting || !formData.permissions.can_edit}
|
||||
|
@ -282,41 +282,63 @@ export const createChatRecord = createAsyncThunk(
|
||||
// 获取知识库信息
|
||||
const state = getState();
|
||||
const availableDatasets = state.chat.availableDatasets.items || [];
|
||||
const existingChats = state.chat.history.items || [];
|
||||
|
||||
// 创建一个新的聊天记录对象添加到历史列表
|
||||
const newChatEntry = {
|
||||
conversation_id: chatInfo.conversation_id,
|
||||
datasets: dataset_id_list.map((id) => {
|
||||
// 尝试查找知识库名称
|
||||
const formattedId = id.includes('-')
|
||||
? id
|
||||
: id.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
|
||||
const dataset = availableDatasets.find((ds) => ds.id === formattedId);
|
||||
return {
|
||||
id: formattedId,
|
||||
name: dataset?.name || '新知识库对话',
|
||||
};
|
||||
}),
|
||||
create_time: new Date().toISOString(),
|
||||
last_message: question,
|
||||
message_count: 2, // 用户问题和助手回复
|
||||
};
|
||||
// 检查是否已存在此会话ID的记录
|
||||
const existingChat = existingChats.find((chat) => chat.conversation_id === chatInfo.conversation_id);
|
||||
|
||||
// 更新当前聊天
|
||||
dispatch({
|
||||
type: 'chat/fetchChats/fulfilled',
|
||||
payload: {
|
||||
results: [newChatEntry],
|
||||
total: 1,
|
||||
append: true, // 标记为追加,而不是替换
|
||||
},
|
||||
});
|
||||
// 只有在不存在相同会话ID的记录时才创建新的记录
|
||||
if (!existingChat) {
|
||||
console.log('创建新的聊天sidebar记录:', chatInfo.conversation_id);
|
||||
|
||||
// 创建一个新的聊天记录对象添加到历史列表
|
||||
const newChatEntry = {
|
||||
conversation_id: chatInfo.conversation_id,
|
||||
datasets: dataset_id_list.map((id) => {
|
||||
// 尝试查找知识库名称
|
||||
const formattedId = id.includes('-')
|
||||
? id
|
||||
: id.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
|
||||
const dataset = availableDatasets.find((ds) => ds.id === formattedId);
|
||||
return {
|
||||
id: formattedId,
|
||||
name: dataset?.name || '新知识库对话',
|
||||
};
|
||||
}),
|
||||
create_time: new Date().toISOString(),
|
||||
last_message: question,
|
||||
message_count: 2, // 用户问题和助手回复
|
||||
};
|
||||
|
||||
// 更新当前聊天
|
||||
dispatch({
|
||||
type: 'chat/fetchChats/fulfilled',
|
||||
payload: {
|
||||
results: [newChatEntry],
|
||||
total: 1,
|
||||
append: true, // 标记为追加,而不是替换
|
||||
},
|
||||
});
|
||||
} else {
|
||||
console.log('聊天sidebar记录已存在,不再创建:', chatInfo.conversation_id);
|
||||
}
|
||||
|
||||
// 设置为当前聊天
|
||||
dispatch(
|
||||
setCurrentChat({
|
||||
conversation_id: chatInfo.conversation_id,
|
||||
datasets: newChatEntry.datasets,
|
||||
datasets: existingChat
|
||||
? existingChat.datasets
|
||||
: dataset_id_list.map((id) => {
|
||||
const formattedId = id.includes('-')
|
||||
? id
|
||||
: id.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
|
||||
const dataset = availableDatasets.find((ds) => ds.id === formattedId);
|
||||
return {
|
||||
id: formattedId,
|
||||
name: dataset?.name || '新知识库对话',
|
||||
};
|
||||
}),
|
||||
})
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user