{(!isAutoUpload || !hasProgress && (!fileList || !fileList.length)) &&
<>
diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts
index 4df98709..572fe8ab 100644
--- a/web/src/i18n/en.ts
+++ b/web/src/i18n/en.ts
@@ -630,6 +630,7 @@ export const en = {
documentInfo: 'Document Information',
documentPreview:'Document Preview',
type: 'Type',
+ viewBasicInfo: 'View Basic Information',
permission_id: 'Permission',
status: 'Status',
created_at: 'Created At',
diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts
index 1808c18a..538d25ac 100644
--- a/web/src/i18n/zh.ts
+++ b/web/src/i18n/zh.ts
@@ -133,6 +133,7 @@ export const zh = {
documentInfo: '文档信息',
documentPreview: '文档预览',
type: '类型',
+ viewBasicInfo:'查看基本信息',
permission_id: '权限',
status: '状态',
created_at: '创建时间',
diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx
index 760c4292..e9478481 100644
--- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx
+++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx
@@ -2,6 +2,7 @@ import { useMemo,useRef, useState, useEffect } from 'react';
import { Button, Flex, Radio, Steps, Modal, Input, Spin, message, Checkbox, Select, Form, Progress} from 'antd';
import { useTranslation } from 'react-i18next';
import { useLocation, useNavigate, useParams } from 'react-router-dom';
+import './Private.css';
import Table, { type TableRef } from '@/components/Table'
import type { AnyObject } from 'antd/es/_util/type';
import type { UploadFileResponse,KnowledgeBaseDocumentData } from '@/views/KnowledgeBase/types';
@@ -32,7 +33,7 @@ const { TextArea } = Input;
};
const getActiveRadioStyle = (active: boolean): React.CSSProperties => ({
...radioWrapperBaseStyle,
- border: active ? '1px solid #1677ff' : radioWrapperBaseStyle.border,
+ border: active ? '1px solid #171719' : radioWrapperBaseStyle.border,
});
@@ -549,7 +550,7 @@ const CreateDataset = () => {
<>
{contextHolder}
-
+
{/*
{t('knowledgeBase.createA') + ' ' + t('knowledgeBase.dataset')}
*/}
@@ -557,298 +558,299 @@ const CreateDataset = () => {
{t('common.exit')}
-
-
+
+
-
+
- {current === 0 && (
-
- {source && source === 'local' && (
-
{
- console.log('File list changed:', fileList);
- }}
- onRemove={async (file) => {
- // 如果文件正在上传,取消上传
- const fileUid = file.uid;
- const abortController = abortControllersRef.current.get(fileUid);
- if (abortController) {
- abortController.abort();
- abortControllersRef.current.delete(fileUid);
- console.log('Upload cancelled:', (file as any).name);
- // 取消上传后直接返回 true,允许移除文件
- return true;
- }
-
- // Only delete server file when file upload was successful (has response.id)
- if (file.response?.id) {
- try {
- await deleteDocument(file.response.id);
- setRechunkFileIds(prev => prev.filter(id => id !== file.response.id));
- console.log('Server file deleted:', file.response.id);
+ {current === 0 && (
+
+ {source && source === 'local' && (
+
{
+ console.log('File list changed:', fileList);
+ }}
+ onRemove={async (file) => {
+ // 如果文件正在上传,取消上传
+ const fileUid = file.uid;
+ const abortController = abortControllersRef.current.get(fileUid);
+ if (abortController) {
+ abortController.abort();
+ abortControllersRef.current.delete(fileUid);
+ console.log('Upload cancelled:', (file as any).name);
+ // 取消上传后直接返回 true,允许移除文件
return true;
- } catch (error) {
- console.error('Failed to delete file:', error);
- messageApi.error(t('common.deleteFailed') || 'Failed to delete file');
- return false; // Don't remove file when deletion fails
}
- }
-
- // Also allow removal in other cases (such as failed uploads)
- return true;
- }} />
- )}
- {source && source === 'link' && (
-
+
+ // Only delete server file when file upload was successful (has response.id)
+ if (file.response?.id) {
+ try {
+ await deleteDocument(file.response.id);
+ setRechunkFileIds(prev => prev.filter(id => id !== file.response.id));
+ console.log('Server file deleted:', file.response.id);
+ return true;
+ } catch (error) {
+ console.error('Failed to delete file:', error);
+ messageApi.error(t('common.deleteFailed') || 'Failed to delete file');
+ return false; // Don't remove file when deletion fails
+ }
+ }
+
+ // Also allow removal in other cases (such as failed uploads)
+ return true;
+ }} />
+ )}
+ {source && source === 'link' && (
+
-
- {t('knowledgeBase.webLink')}
-
-
-
- {t('knowledgeBase.webLinkDesc',{count: 5})}
-
-
- {t('knowledgeBase.selectorTutorial')}
-
-
-
- )}
- {source && source === 'text' && (
-
-
-
-
+
+ {t('knowledgeBase.webLink')}
+
+
+
+ {t('knowledgeBase.webLinkDesc',{count: 5})}
+
+
+ {t('knowledgeBase.selectorTutorial')}
+
+
+
+ )}
+ {source && source === 'text' && (
+
+
+
+
-
-
-
-
- {/*
- {t('knowledgeBase.customText')}
-
-
-
- {t('knowledgeBase.customContent')}
-
-
*/}
-
- )}
-
- )}
+
+
+
+
+ {/*
+ {t('knowledgeBase.customText')}
+
+
+
+ {t('knowledgeBase.customContent')}
+
+ */}
+
+ )}
+
+ )}
- {current === 1 && (
-
- {rechunkFileIds.length > 0 && (
-
- {t('knowledgeBase.rechunking')}:
- {rechunkFileIds.map((id) => (
- {id}
- ))}
-
- )}
-
- {t('knowledgeBase.fileParsingSettings')}
-
-
-
setPdfEnhancementEnabled(!pdfEnhancementEnabled)}
- >
-
setPdfEnhancementEnabled(e.target.checked)}
- className='rb:mr-3'
- />
-
- {t('knowledgeBase.pdfEnhancementAnalysis')}
-
- {pdfEnhancementEnabled && (
-
-