[dev]preview docs

This commit is contained in:
susie-laptop 2025-04-02 23:57:51 -04:00
parent 8450c98d01
commit b360a91551
4 changed files with 57 additions and 35 deletions

View File

@ -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)}
>
预览

View File

@ -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>

View File

@ -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}

View File

@ -282,6 +282,14 @@ export const createChatRecord = createAsyncThunk(
// 获取知识库信息
const state = getState();
const availableDatasets = state.chat.availableDatasets.items || [];
const existingChats = state.chat.history.items || [];
// 检查是否已存在此会话ID的记录
const existingChat = existingChats.find((chat) => chat.conversation_id === chatInfo.conversation_id);
// 只有在不存在相同会话ID的记录时才创建新的记录
if (!existingChat) {
console.log('创建新的聊天sidebar记录:', chatInfo.conversation_id);
// 创建一个新的聊天记录对象添加到历史列表
const newChatEntry = {
@ -311,12 +319,26 @@ export const createChatRecord = createAsyncThunk(
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 || '新知识库对话',
};
}),
})
);
}