diff --git a/web/src/assets/images/CloudUploadOutlined.svg b/web/src/assets/images/CloudUploadOutlined.svg new file mode 100644 index 00000000..86fdf286 --- /dev/null +++ b/web/src/assets/images/CloudUploadOutlined.svg @@ -0,0 +1,26 @@ + + + 编组 12 + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/components/Upload/UploadFiles.tsx b/web/src/components/Upload/UploadFiles.tsx index 68377d4d..36ae859d 100644 --- a/web/src/components/Upload/UploadFiles.tsx +++ b/web/src/components/Upload/UploadFiles.tsx @@ -240,10 +240,10 @@ const UploadFiles = forwardRef(({ if (isCanDrag) { return ( -
+
-
+
{(!isAutoUpload || !hasProgress && (!fileList || !fileList.length)) && <>
diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 43ec05e7..b4ce3681 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -633,6 +633,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 5ffc4134..0eda80e4 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -135,6 +135,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 = () => { exit {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')} -
-