diff --git a/packages/global/core/dataset/constants.ts b/packages/global/core/dataset/constants.ts
index a417ae748..337d1c446 100644
--- a/packages/global/core/dataset/constants.ts
+++ b/packages/global/core/dataset/constants.ts
@@ -12,17 +12,17 @@ export const DatasetTypeMap = {
collectionLabel: 'common.Folder'
},
[DatasetTypeEnum.dataset]: {
- icon: 'core/dataset/commonDataset',
+ icon: 'core/dataset/commonDatasetOutline',
label: 'common_dataset',
collectionLabel: 'common.File'
},
[DatasetTypeEnum.websiteDataset]: {
- icon: 'core/dataset/websiteDataset',
+ icon: 'core/dataset/websiteDatasetOutline',
label: 'website_dataset',
collectionLabel: 'common.Website'
},
[DatasetTypeEnum.externalFile]: {
- icon: 'core/dataset/externalDataset',
+ icon: 'core/dataset/externalDatasetOutline',
label: 'external_file',
collectionLabel: 'common.File'
}
diff --git a/packages/web/components/common/Icon/constants.ts b/packages/web/components/common/Icon/constants.ts
index a94f868d5..32b7d7fe9 100644
--- a/packages/web/components/common/Icon/constants.ts
+++ b/packages/web/components/common/Icon/constants.ts
@@ -8,6 +8,10 @@ export const iconPaths = {
collectionLight: () => import('./icons/collectionLight.svg'),
collectionSolid: () => import('./icons/collectionSolid.svg'),
'common/add2': () => import('./icons/common/add2.svg'),
+ 'common/setting': () => import('./icons/common/setting.svg'),
+ 'common/addUser': () => import('./icons/common/addUser.svg'),
+ 'common/monitor': () => import('./icons/common/monitor.svg'),
+ 'common/list': () => import('./icons/common/list.svg'),
'common/addCircleLight': () => import('./icons/common/addCircleLight.svg'),
'common/addLight': () => import('./icons/common/addLight.svg'),
'common/backFill': () => import('./icons/common/backFill.svg'),
@@ -37,8 +41,10 @@ export const iconPaths = {
'common/language/en': () => import('./icons/common/language/en.svg'),
'common/language/zh': () => import('./icons/common/language/zh.svg'),
'common/leftArrowLight': () => import('./icons/common/leftArrowLight.svg'),
+ 'common/arrowLeft': () => import('./icons/common/arrowLeft.svg'),
'common/lineChange': () => import('./icons/common/lineChange.svg'),
'common/linkBlue': () => import('./icons/common/linkBlue.svg'),
+ 'common/folderImport': () => import('./icons/common/folderImport.svg'),
'common/loading': () => import('./icons/common/loading.svg'),
'common/logLight': () => import('./icons/common/logLight.svg'),
'common/navbar/pluginFill': () => import('./icons/common/navbar/pluginFill.svg'),
diff --git a/packages/web/components/common/Icon/icons/common/addUser.svg b/packages/web/components/common/Icon/icons/common/addUser.svg
new file mode 100644
index 000000000..cc5d5a18e
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/common/addUser.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/packages/web/components/common/Icon/icons/common/arrowLeft.svg b/packages/web/components/common/Icon/icons/common/arrowLeft.svg
new file mode 100644
index 000000000..e48bd5d7d
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/common/arrowLeft.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/web/components/common/Icon/icons/common/folderImport.svg b/packages/web/components/common/Icon/icons/common/folderImport.svg
new file mode 100644
index 000000000..a05312cc0
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/common/folderImport.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/web/components/common/Icon/icons/common/list.svg b/packages/web/components/common/Icon/icons/common/list.svg
new file mode 100644
index 000000000..a4f9d158b
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/common/list.svg
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/packages/web/components/common/Icon/icons/common/monitor.svg b/packages/web/components/common/Icon/icons/common/monitor.svg
new file mode 100644
index 000000000..1479b96db
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/common/monitor.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/packages/web/components/common/Icon/icons/common/setting.svg b/packages/web/components/common/Icon/icons/common/setting.svg
new file mode 100644
index 000000000..ffd6215f9
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/common/setting.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/packages/web/components/common/Tabs/LightRowTabs.tsx b/packages/web/components/common/Tabs/LightRowTabs.tsx
index 09a1773fd..7395fe5a3 100644
--- a/packages/web/components/common/Tabs/LightRowTabs.tsx
+++ b/packages/web/components/common/Tabs/LightRowTabs.tsx
@@ -9,6 +9,7 @@ type Props = Omit & {
value: ValueType;
size?: 'sm' | 'md' | 'lg';
inlineStyles?: FlexProps;
+ activatedColor?: string;
onChange: (value: ValueType) => void;
};
@@ -16,6 +17,7 @@ const LightRowTabs = ({
list,
size = 'md',
value,
+ activatedColor = 'primary.600',
onChange,
inlineStyles,
...props
@@ -64,13 +66,12 @@ const LightRowTabs = ({
borderBottom={'2px solid transparent'}
px={3}
whiteSpace={'nowrap'}
- {...inlineStyles}
{...(value === item.value
? {
- color: 'primary.600',
+ color: activatedColor,
cursor: 'default',
fontWeight: 'bold',
- borderBottomColor: 'primary.600'
+ borderBottomColor: activatedColor
}
: {
cursor: 'pointer'
@@ -79,13 +80,14 @@ const LightRowTabs = ({
if (value === item.value) return;
onChange(item.value);
}}
+ {...inlineStyles}
>
{item.icon && (
<>
-
+
>
)}
- {typeof item.label === 'string' ? t(item.label as any) : item.label}
+ {typeof item.label === 'string' ? t(item.label as any) : item.label}
))}
diff --git a/packages/web/i18n/en/common.json b/packages/web/i18n/en/common.json
index 00447dc5c..4c9889e64 100644
--- a/packages/web/i18n/en/common.json
+++ b/packages/web/i18n/en/common.json
@@ -221,6 +221,7 @@
"Select Avatar": "Click to select avatar",
"Select Failed": "Select avatar failed"
},
+ "base_config": "Basic configuration",
"choosable": "Choosable",
"confirm": {
"Common Tip": "Operation confirmation"
@@ -782,7 +783,8 @@
"QA mode": "Question and answer split",
"Vector queue": "Index queue",
"Waiting": "Estimated 5 minutes",
- "Website Sync": "Web site sync"
+ "Website Sync": "Web site sync",
+ "tag": "queue situation"
},
"website": {
"Base Url": "Base URL",
diff --git a/packages/web/i18n/zh/common.json b/packages/web/i18n/zh/common.json
index 54b800351..aeb8ecdc2 100644
--- a/packages/web/i18n/zh/common.json
+++ b/packages/web/i18n/zh/common.json
@@ -119,6 +119,7 @@
"Cancel": "取消",
"Choose": "选择",
"Close": "关闭",
+ "base_config": "基础配置",
"Config": "配置",
"Confirm": "确认",
"Confirm Create": "确认创建",
@@ -638,8 +639,7 @@
"success": "开始同步"
}
},
- "training": {
- }
+ "training": {}
},
"data": {
"Auxiliary Data": "辅助数据",
@@ -775,6 +775,7 @@
"test result tip": "根据知识库内容与测试文本的相似度进行排序,你可以根据测试结果调整对应的文本。\n注意:测试记录中的数据可能已经被修改过,点击某条测试数据后将展示最新的数据。"
},
"training": {
+ "tag": "排队情况",
"Agent queue": "QA 训练排队",
"Auto mode": "增强处理(实验)",
"Auto mode Tip": "通过子索引以及调用模型生成相关问题与摘要,来增加数据块的语义丰富度,更利于检索。需要消耗更多的存储空间和增加 AI 调用次数。",
diff --git a/projects/app/src/components/common/Modal/EditResourceModal.tsx b/projects/app/src/components/common/Modal/EditResourceModal.tsx
index 935ef13dc..95aaf218c 100644
--- a/projects/app/src/components/common/Modal/EditResourceModal.tsx
+++ b/projects/app/src/components/common/Modal/EditResourceModal.tsx
@@ -85,7 +85,7 @@ const EditResourceModal = ({
w={'2rem'}
h={'2rem'}
cursor={'pointer'}
- borderRadius={'md'}
+ borderRadius={'sm'}
onClick={onOpenSelectFile}
/>
diff --git a/projects/app/src/components/core/dataset/DatasetTypeTag.tsx b/projects/app/src/components/core/dataset/DatasetTypeTag.tsx
index 13a76cdea..682ef0952 100644
--- a/projects/app/src/components/core/dataset/DatasetTypeTag.tsx
+++ b/projects/app/src/components/core/dataset/DatasetTypeTag.tsx
@@ -15,9 +15,10 @@ const DatasetTypeTag = ({ type, ...props }: { type: `${DatasetTypeEnum}` } & Fle
bg={'myGray.100'}
borderWidth={'1px'}
borderColor={'myGray.200'}
- px={4}
- py={'6px'}
- borderRadius={'md'}
+ px={3}
+ py={1.5}
+ h={'1.75rem'}
+ borderRadius={'sm'}
fontSize={'xs'}
alignItems={'center'}
{...props}
diff --git a/projects/app/src/components/support/permission/DefaultPerList/index.tsx b/projects/app/src/components/support/permission/DefaultPerList/index.tsx
index c0c284229..60feeb466 100644
--- a/projects/app/src/components/support/permission/DefaultPerList/index.tsx
+++ b/projects/app/src/components/support/permission/DefaultPerList/index.tsx
@@ -1,4 +1,4 @@
-import { Box, BoxProps } from '@chakra-ui/react';
+import { Box, BoxProps, ButtonProps } from '@chakra-ui/react';
import MySelect from '@fastgpt/web/components/common/MySelect';
import React from 'react';
import type { PermissionValueType } from '@fastgpt/global/support/permission/type';
@@ -20,6 +20,7 @@ type Props = Omit & {
writePer?: PermissionValueType;
onChange: (v: PermissionValueType) => Promise | any;
isInheritPermission?: boolean;
+ isDisabled?: boolean;
hasParent?: boolean;
};
@@ -31,6 +32,7 @@ const DefaultPermissionList = ({
onChange,
isInheritPermission = false,
hasParent,
+ isDisabled = false,
...styles
}: Props) => {
const { ConfirmModal, openConfirm } = useConfirm({});
@@ -63,6 +65,8 @@ const DefaultPermissionList = ({
return onRequestChange(per);
}
}}
+ isDisabled={isDisabled}
+ fontSize={styles?.fontSize}
/>
diff --git a/projects/app/src/pages/dataset/component/MemberManager.tsx b/projects/app/src/pages/dataset/component/MemberManager.tsx
index cb392933b..3d61275a7 100644
--- a/projects/app/src/pages/dataset/component/MemberManager.tsx
+++ b/projects/app/src/pages/dataset/component/MemberManager.tsx
@@ -1,4 +1,4 @@
-import { Box, Button, Flex } from '@chakra-ui/react';
+import { Box, Button, Flex, FormLabel } from '@chakra-ui/react';
import React from 'react';
import CollaboratorContextProvider, {
MemberManagerInputPropsType
@@ -9,29 +9,38 @@ import { useTranslation } from 'next-i18next';
function MemberManager({ managePer }: { managePer: MemberManagerInputPropsType }) {
const { t } = useTranslation();
return (
-
+
{({ MemberListCard, onOpenManageModal, onOpenAddMember }) => {
return (
<>
-
- }
- onClick={onOpenManageModal}
- >
- {t('common:permission.Manage')}
-
- }
- onClick={onOpenAddMember}
- >
- {t('common:common.Add')}
-
+
+ {t('common:permission.Collaborator')}
+
+
+
+
+
+
+
+
diff --git a/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx b/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx
index 039c4c879..f2e063d88 100644
--- a/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx
+++ b/projects/app/src/pages/dataset/detail/components/CollectionCard/Header.tsx
@@ -39,6 +39,7 @@ const FileSourceSelector = dynamic(() => import('../Import/components/FileSource
const Header = ({}: {}) => {
const { t } = useTranslation();
const theme = useTheme();
+
const { setLoading, feConfigs } = useSystemStore();
const datasetDetail = useContextSelector(DatasetPageContext, (v) => v.datasetDetail);
@@ -110,35 +111,43 @@ const Header = ({}: {}) => {
successToast: t('common:common.Create Success'),
errorToast: t('common:common.Create Failed')
});
+ const isWebSite = datasetDetail?.type === DatasetTypeEnum.websiteDataset;
return (
-
+
({
parentId: path.parentId,
parentName: i === paths.length - 1 ? `${path.parentName}` : path.parentName
}))}
FirstPathDom={
- <>
-
+
+
+ {!isWebSite && }
{t(DatasetTypeMap[datasetDetail?.type]?.collectionLabel as any)}({total})
-
+
{datasetDetail?.websiteConfig?.url && (
-
+
{t('common:core.dataset.website.Base Url')}:
{datasetDetail.websiteConfig.url}
)}
- >
+
}
onClick={(e) => {
router.replace({
@@ -202,18 +211,26 @@ const Header = ({}: {}) => {
fontSize={['sm', 'md']}
>
-
- {t('common:dataset.collections.Create And Import')}
+
+
+
+
+ {t('common:dataset.collections.Create And Import')}
+
}
@@ -323,18 +340,26 @@ const Header = ({}: {}) => {
fontSize={['sm', 'md']}
>
-
- {t('common:dataset.collections.Create And Import')}
+
+
+
+
+ {t('common:dataset.collections.Create And Import')}
+
}
diff --git a/projects/app/src/pages/dataset/detail/components/CollectionCard/HeaderTagPopOver.tsx b/projects/app/src/pages/dataset/detail/components/CollectionCard/HeaderTagPopOver.tsx
index efe6acf84..14d2ad4de 100644
--- a/projects/app/src/pages/dataset/detail/components/CollectionCard/HeaderTagPopOver.tsx
+++ b/projects/app/src/pages/dataset/detail/components/CollectionCard/HeaderTagPopOver.tsx
@@ -121,7 +121,7 @@ const HeaderTagPopOver = () => {
setSearchTag(e.target.value)}
diff --git a/projects/app/src/pages/dataset/detail/components/CollectionCard/TagManageModal.tsx b/projects/app/src/pages/dataset/detail/components/CollectionCard/TagManageModal.tsx
index 05de61fff..fa607c7a8 100644
--- a/projects/app/src/pages/dataset/detail/components/CollectionCard/TagManageModal.tsx
+++ b/projects/app/src/pages/dataset/detail/components/CollectionCard/TagManageModal.tsx
@@ -246,7 +246,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => {
flex={'1'}
_hover={{ bg: 'myGray.100' }}
alignItems={'center'}
- borderRadius={'4px'}
+ borderRadius={'xs'}
>
void }) => {
bg={'#DBF3FF'}
color={'#0884DD'}
fontSize={'xs'}
- borderRadius={'6px'}
+ borderRadius={'sm'}
>
{item.tag}
@@ -299,7 +299,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => {
_hover={{ bg: '#1118240D' }}
mr={2}
p={1}
- borderRadius={'6px'}
+ borderRadius={'sm'}
onClick={() => {
setCurrentAddTag({ ...item, collections });
}}
@@ -313,7 +313,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => {
_hover={{ bg: '#1118240D' }}
mr={2}
p={1}
- borderRadius={'6px'}
+ borderRadius={'sm'}
cursor={'pointer'}
onClick={(e) => {
setCurrentEditTag(item);
@@ -332,7 +332,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => {
display="none"
_hover={{ bg: '#1118240D' }}
p={1}
- borderRadius={'6px'}
+ borderRadius={'sm'}
cursor={'pointer'}
>
@@ -441,7 +441,7 @@ const AddTagToCollections = ({
bg={'#DBF3FF'}
color={'#0884DD'}
fontSize={'sm'}
- borderRadius={'6px'}
+ borderRadius={'sm'}
>
{currentAddTag.tag}
@@ -496,7 +496,7 @@ const AddTagToCollections = ({
: {})
}}
alignItems={'center'}
- borderRadius={'4px'}
+ borderRadius={'xs'}
key={collection.id}
cursor={'pointer'}
onClick={() => {
@@ -525,7 +525,7 @@ const AddTagToCollections = ({
isChecked={selectedCollections.includes(collection.id)}
/>
-
+
{collection.name}
diff --git a/projects/app/src/pages/dataset/detail/components/CollectionCard/TagsPopOver.tsx b/projects/app/src/pages/dataset/detail/components/CollectionCard/TagsPopOver.tsx
index 97662481a..08eaba0f8 100644
--- a/projects/app/src/pages/dataset/detail/components/CollectionCard/TagsPopOver.tsx
+++ b/projects/app/src/pages/dataset/detail/components/CollectionCard/TagsPopOver.tsx
@@ -161,7 +161,7 @@ const TagsPopOver = ({
fontWeight={'500'}
bg={'#F0FBFF'}
color={'#0884DD'}
- borderRadius={'4px'}
+ borderRadius={'xs'}
>
{item.tag}
@@ -197,7 +197,7 @@ const TagsPopOver = ({
onBlur={() => setIsFocusInput(false)}
pl={2}
h={7}
- borderRadius={'4px'}
+ borderRadius={'xs'}
value={searchTag}
placeholder={t('dataset:tag.searchOrAddTag')}
onChange={(e) => setSearchTag(e.target.value)}
@@ -217,7 +217,7 @@ const TagsPopOver = ({
// setCheckedTags([...checkedTags, item]);
}}
>
-
+
{t('dataset:tag.add') + ` "${searchTag}"`}
@@ -277,7 +277,7 @@ const TagsPopOver = ({
fontSize={'11px'}
bg={'#F0FBFF'}
color={'#0884DD'}
- borderRadius={'4px'}
+ borderRadius={'xs'}
>
{tag.tag}
diff --git a/projects/app/src/pages/dataset/detail/components/CollectionCard/index.tsx b/projects/app/src/pages/dataset/detail/components/CollectionCard/index.tsx
index e73a1170a..6a93416d0 100644
--- a/projects/app/src/pages/dataset/detail/components/CollectionCard/index.tsx
+++ b/projects/app/src/pages/dataset/detail/components/CollectionCard/index.tsx
@@ -186,12 +186,12 @@ const CollectionCard = () => {
return (
-
+
{/* header */}
{/* collection table */}
-
+
diff --git a/projects/app/src/pages/dataset/detail/components/DataCard.tsx b/projects/app/src/pages/dataset/detail/components/DataCard.tsx
index ecacdca77..93deb5ea2 100644
--- a/projects/app/src/pages/dataset/detail/components/DataCard.tsx
+++ b/projects/app/src/pages/dataset/detail/components/DataCard.tsx
@@ -7,12 +7,6 @@ import {
Grid,
Button,
useTheme,
- Drawer,
- DrawerBody,
- DrawerFooter,
- DrawerHeader,
- DrawerOverlay,
- DrawerContent,
useDisclosure,
HStack
} from '@chakra-ui/react';
@@ -52,6 +46,8 @@ import MyBox from '@fastgpt/web/components/common/MyBox';
import { useSystem } from '@fastgpt/web/hooks/useSystem';
import TagsPopOver from './CollectionCard/TagsPopOver';
import { useSystemStore } from '@/web/common/system/useSystemStore';
+import MyDivider from '@fastgpt/web/components/common/MyDivider';
+import index from '../../../index';
const DataCard = () => {
const BoxRef = useRef(null);
@@ -67,7 +63,6 @@ const DataCard = () => {
const { feConfigs } = useSystemStore();
const { t } = useTranslation();
- const { datasetT } = useI18n();
const [searchText, setSearchText] = useState('');
const { toast } = useToast();
const { openConfirm, ConfirmModal } = useConfirm({
@@ -132,66 +127,6 @@ const DataCard = () => {
const canWrite = useMemo(() => datasetDetail.permission.hasWritePer, [datasetDetail]);
- const metadataList = useMemo(() => {
- if (!collection) return [];
-
- const webSelector =
- collection?.datasetId?.websiteConfig?.selector || collection?.metadata?.webPageSelector;
-
- return [
- {
- label: t('common:core.dataset.collection.metadata.source'),
- value: t(DatasetCollectionTypeMap[collection.type]?.name as any)
- },
- {
- label: t('common:core.dataset.collection.metadata.source name'),
- value: collection.file?.filename || collection?.rawLink || collection?.name
- },
- {
- label: t('common:core.dataset.collection.metadata.source size'),
- value: collection.file ? formatFileSize(collection.file.length) : '-'
- },
- {
- label: t('common:core.dataset.collection.metadata.Createtime'),
- value: formatTime2YMDHM(collection.createTime)
- },
- {
- label: t('common:core.dataset.collection.metadata.Updatetime'),
- value: formatTime2YMDHM(collection.updateTime)
- },
- {
- label: t('common:core.dataset.collection.metadata.Raw text length'),
- value: collection.rawTextLength ?? '-'
- },
- {
- label: t('common:core.dataset.collection.metadata.Training Type'),
- value: t(TrainingTypeMap[collection.trainingType]?.label as any)
- },
- {
- label: t('common:core.dataset.collection.metadata.Chunk Size'),
- value: collection.chunkSize || '-'
- },
- ...(webSelector
- ? [
- {
- label: t('common:core.dataset.collection.metadata.Web page selector'),
- value: webSelector
- }
- ]
- : []),
- {
- ...(collection.tags
- ? [
- {
- label: datasetT('collection_tags'),
- value: collection.tags?.join(', ') || '-'
- }
- ]
- : [])
- }
- ];
- }, [collection, datasetT, t]);
-
const { run: onUpdate, loading } = useRequest2(putDatasetDataById, {
onSuccess() {
getData(pageNum);
@@ -205,23 +140,6 @@ const DataCard = () => {
{/* Header */}
- }
- variant={'whitePrimary'}
- size={'smSquare'}
- borderRadius={'50%'}
- aria-label={''}
- onClick={() =>
- router.replace({
- query: {
- datasetId: router.query.datasetId,
- parentId: router.query.parentId,
- currentTab: TabEnum.collectionCard
- }
- })
- }
- />
@@ -234,12 +152,6 @@ const DataCard = () => {
textDecoration={'none'}
/>
)}
-
- {t('common:core.dataset.collection.id')}:{' '}
-
- {collection?._id}
-
-
{feConfigs?.isPlus && !!collection?.tags?.length && (
@@ -250,7 +162,6 @@ const DataCard = () => {
)}
- {isPc && (
-
- }
- aria-label={''}
- onClick={onOpen}
- />
-
- )}
-
-
-
+
+
+
+
+
+
+
{t('core.dataset.data.Total Amount', { total })}
-
+
{
name="common/searchLight"
position={'absolute'}
w={'14px'}
- color={'myGray.500'}
+ color={'myGray.600'}
/>
}
+ bg={'myGray.25'}
+ borderColor={'myGray.200'}
+ color={'myGray.500'}
w={['200px', '300px']}
placeholder={t('common:core.dataset.data.Search data placeholder')}
value={searchText}
@@ -300,45 +207,59 @@ const DataCard = () => {
{/* data */}
-
- {datasetDataList.map((item) => (
+
+ {datasetDataList.map((item, index) => (
{
if (!collection) return;
setEditDataId(item._id);
}}
>
-
- # {item.chunkIndex ?? '-'}
-
-
+
- ID:{item._id}
-
+ #{item.chunkIndex ?? '-'}
+
+ ID:{item._id}
+
+
+
{/* {item.forbid ? (
{datasetT('Disabled')}
@@ -390,54 +311,69 @@ const DataCard = () => {
-
-
-
- {item.q.length + (item.a?.length || 0)}
-
-
- {/*
- ID:{item._id}
- */}
- {canWrite && (
- }
- variant={'whiteDanger'}
- size={'xsSquare'}
- aria-label={'delete'}
- onClick={(e) => {
- e.stopPropagation();
- openConfirm(async () => {
- try {
- await delOneDatasetDataById(item._id);
- getData(pageNum);
- } catch (error) {
- toast({
- title: getErrText(error),
- status: 'error'
- });
- }
- })();
- }}
- />
- )}
-
+
+
+ {item.q.length + (item.a?.length || 0)}
+
+ {canWrite && (
+ }
+ variant={'whiteDanger'}
+ size={'xsSquare'}
+ aria-label={'delete'}
+ onClick={(e) => {
+ e.stopPropagation();
+ openConfirm(async () => {
+ try {
+ await delOneDatasetDataById(item._id);
+ getData(pageNum);
+ } catch (error) {
+ toast({
+ title: getErrText(error),
+ status: 'error'
+ });
+ }
+ })();
+ }}
+ />
+ )}
))}
-
+
{total > pageSize && (
@@ -447,38 +383,6 @@ const DataCard = () => {
- {/* metadata drawer */}
-
-
-
-
- {t('common:core.dataset.collection.metadata.metadata')}
-
-
-
- {metadataList.map((item, i) => (
-
-
- {item.label}
-
- {item.value}
-
- ))}
- {collection?.sourceId && (
-
- )}
-
-
-
-
-
-
-
-
{editDataId !== undefined && collection && (
{feConfigs?.show_pay && (
-
+
{priceTip}
diff --git a/projects/app/src/pages/dataset/detail/components/Info.tsx b/projects/app/src/pages/dataset/detail/components/Info.tsx
index ff9a381b2..2cfd3b2df 100644
--- a/projects/app/src/pages/dataset/detail/components/Info.tsx
+++ b/projects/app/src/pages/dataset/detail/components/Info.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState } from 'react';
import { useRouter } from 'next/router';
import { Box, Flex, Button, IconButton, Input, Textarea, HStack } from '@chakra-ui/react';
import { DeleteIcon } from '@chakra-ui/icons';
@@ -16,15 +16,15 @@ import { useRequest } from '@fastgpt/web/hooks/useRequest';
import { MongoImageTypeEnum } from '@fastgpt/global/common/file/image/constants';
import AIModelSelector from '@/components/Select/AIModelSelector';
import { postRebuildEmbedding } from '@/web/core/dataset/api';
-import { useI18n } from '@/web/context/I18n';
import type { VectorModelItemType } from '@fastgpt/global/core/ai/model.d';
import { useContextSelector } from 'use-context-selector';
import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext';
import MyDivider from '@fastgpt/web/components/common/MyDivider/index';
-import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants';
+import { DatasetTypeEnum, DatasetTypeMap } from '@fastgpt/global/core/dataset/constants';
import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip';
import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel';
import DefaultPermissionList from '@/components/support/permission/DefaultPerList';
+import MyIcon from '@fastgpt/web/components/common/Icon';
import {
DatasetDefaultPermissionVal,
DatasetPermissionList
@@ -35,18 +35,23 @@ import {
postUpdateDatasetCollaborators,
deleteDatasetCollaborators
} from '@/web/core/dataset/api/collaborator';
+import DatasetTypeTag from '@/components/core/dataset/DatasetTypeTag';
+import dynamic from 'next/dynamic';
+import { EditResourceInfoFormType } from '@/components/common/Modal/EditResourceModal';
+const EditResourceModal = dynamic(() => import('@/components/common/Modal/EditResourceModal'));
const Info = ({ datasetId }: { datasetId: string }) => {
+ const router = useRouter();
+ const [openBaseConfig, setOpenBaseConfig] = useState(true);
+ const [openPermissionConfig, setOpenPermissionConfig] = useState(true);
const { t } = useTranslation();
- const { datasetT, commonT } = useI18n();
const { datasetDetail, loadDatasetDetail, updateDataset, rebuildingCount, trainingCount } =
useContextSelector(DatasetPageContext, (v) => v);
-
+ const [editedDataset, setEditedDataset] = useState();
const refetchDatasetTraining = useContextSelector(
DatasetPageContext,
(v) => v.refetchDatasetTraining
);
-
const { setValue, register, handleSubmit, watch } = useForm({
defaultValues: datasetDetail
});
@@ -57,16 +62,13 @@ const Info = ({ datasetId }: { datasetId: string }) => {
const defaultPermission = watch('defaultPermission');
const { datasetModelList, vectorModelList } = useSystemStore();
-
- const router = useRouter();
-
const { openConfirm: onOpenConfirmDel, ConfirmModal: ConfirmDelModal } = useConfirm({
content: t('common:core.dataset.Delete Confirm'),
type: 'delete'
});
const { openConfirm: onOpenConfirmRebuild, ConfirmModal: ConfirmRebuildModal } = useConfirm({
title: t('common:common.confirm.Common Tip'),
- content: datasetT('confirm_to_rebuild_embedding_tip'),
+ content: t('dataset:confirm_to_rebuild_embedding_tip'),
type: 'delete'
});
@@ -87,13 +89,10 @@ const Info = ({ datasetId }: { datasetId: string }) => {
errorToast: t('common:common.Delete Failed')
});
- const { mutate: onclickSave, isLoading: isSaving } = useRequest({
+ const { mutate: onSave, isLoading: isSaving } = useRequest({
mutationFn: (data: DatasetItemType) => {
return updateDataset({
id: datasetId,
- name: data.name,
- avatar: data.avatar,
- intro: data.intro,
agentModel: data.agentModel,
externalReadUrl: data.externalReadUrl,
defaultPermission: data.defaultPermission
@@ -133,156 +132,191 @@ const Info = ({ datasetId }: { datasetId: string }) => {
refetchDatasetTraining();
loadDatasetDetail(datasetId);
},
- successToast: datasetT('rebuild_embedding_start_tip'),
+ successToast: t('dataset:rebuild_embedding_start_tip'),
errorToast: t('common:common.Update Failed')
});
- const btnLoading = isSelecting || isDeleting || isSaving || isRebuilding;
+ const totalLoading = isSelecting || isDeleting || isSaving || isRebuilding;
return (
-
-
-
- {t('common:core.dataset.Dataset ID')}
-
- {datasetDetail._id}
-
-
-
- {t('common:core.ai.model.Vector Model')}
-
-
-
- 0 || trainingCount > 0
- ? datasetT('the_knowledge_base_has_indexes_that_are_being_trained_or_being_rebuilt')
- : undefined
+
+
+
+
+
+
+ {datasetDetail.name}
+
+
+
+ setEditedDataset({
+ id: datasetDetail._id,
+ name: datasetDetail.name,
+ avatar: datasetDetail.avatar,
+ intro: datasetDetail.intro
+ })
}
- list={vectorModelList.map((item) => ({
- label: item.name,
- value: item.model
- }))}
- onchange={(e) => {
- const vectorModel = vectorModelList.find((item) => item.model === e);
- if (!vectorModel) return;
- onOpenConfirmRebuild(() => {
- setValue('vectorModel', vectorModel);
- onRebuilding(vectorModel);
- })();
- }}
/>
-
-
-
-
- {t('common:core.Max Token')}
-
- {vectorModel.maxToken}
-
-
-
- {t('common:core.ai.model.Dataset Agent Model')}
-
-
-
- ({
- label: item.name,
- value: item.model
- }))}
- onchange={(e) => {
- const agentModel = datasetModelList.find((item) => item.model === e);
- if (!agentModel) return;
- setValue('agentModel', agentModel);
- }}
- />
-
-
-
-
-
- {datasetDetail.type === DatasetTypeEnum.externalFile && (
- <>
-
-
- {datasetT('external_read_url')}
-
-
-
+
+ {DatasetTypeMap[datasetDetail.type] && (
+
+
-
- >
- )}
-
-
-
- {t('common:core.dataset.Avatar')}
-
-
-
-
-
+ )}
+
+ {datasetDetail.intro || t('common:core.dataset.Intro Placeholder')}
-
-
-
- {t('common:core.dataset.Name')}
-
-
-
-
- {t('common:common.Intro')}
-
-
+
+
+
+
+
+
+
+ {t('common:common.base_config')}
+
+ setOpenBaseConfig(!openBaseConfig)}
+ />
+
+
+ {t('common:core.dataset.Dataset ID')}
+ {datasetDetail._id}
+
+
+
+ {t('common:core.ai.model.Vector Model')}
+
+ 0 || trainingCount > 0
+ ? t(
+ 'dataset:the_knowledge_base_has_indexes_that_are_being_trained_or_being_rebuilt'
+ )
+ : undefined
+ }
+ list={vectorModelList.map((item) => ({
+ label: item.name,
+ value: item.model
+ }))}
+ onchange={(e) => {
+ const vectorModel = vectorModelList.find((item) => item.model === e);
+ if (!vectorModel) return;
+ onOpenConfirmRebuild(() => {
+ setValue('vectorModel', vectorModel);
+ onRebuilding(vectorModel);
+ })();
+ }}
+ />
+
+
+
+
+
+ {t('common:core.Max Token')}
+
+
+ {vectorModel.maxToken}
+
+
+
+
+ {t('common:core.ai.model.Dataset Agent Model')}
+
+ ({
+ label: item.name,
+ value: item.model
+ }))}
+ fontSize={'mini'}
+ onchange={(e) => {
+ const agentModel = datasetModelList.find((item) => item.model === e);
+ if (!agentModel) return;
+ setValue('agentModel', agentModel);
+ handleSubmit((data) => onSave({ ...data, agentModel: agentModel }))();
+ }}
+ isDisabled={totalLoading}
+ />
+
+
+
+ {/* */}
+
+ {datasetDetail.type === DatasetTypeEnum.externalFile && (
+ <>
+
+
+ {t('dataset:external_read_url')}
+
+
+ onSave(data))}
+ />
+
+ >
+ )}
+
{datasetDetail.permission.hasManagePer && (
<>
-
+
+
+
+
+ {t('common:permission.Permission config')}
+
+ setOpenPermissionConfig(!openPermissionConfig)}
+ />
+
-
-
- {commonT('permission.Default permission')}
-
- setValue('defaultPermission', v)}
- />
-
+
+
+ {t('common:permission.Default permission')}
+
+ {
+ setValue('defaultPermission', v);
+ handleSubmit((data) => onSave({ ...data, defaultPermission: v }))();
+ }}
+ />
+
-
-
- {commonT('permission.Collaborator')}
-
-
+
{
}}
/>
-
+
>
)}
-
-
-
- {datasetDetail.permission.isOwner && (
- }
- aria-label={''}
- variant={'whiteDanger'}
- size={'smSquare'}
- onClick={onOpenConfirmDel(onclickDelete)}
- />
- )}
-
-
+ {editedDataset && (
+ {
+ setEditedDataset(undefined);
+ }}
+ onEdit={async (data) => {
+ await updateDataset({
+ id: editedDataset.id,
+ name: data.name,
+ intro: data.intro,
+ avatar: data.avatar
+ });
+ setEditedDataset(undefined);
+ }}
+ />
+ )}
);
};
diff --git a/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx b/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx
new file mode 100644
index 000000000..83176636d
--- /dev/null
+++ b/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx
@@ -0,0 +1,123 @@
+import React, { useMemo, useState } from 'react';
+import { Box, Flex, Button, IconButton, Input, Textarea, HStack } from '@chakra-ui/react';
+import { DeleteIcon } from '@chakra-ui/icons';
+import { useTranslation } from 'next-i18next';
+import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
+import { getDatasetCollectionById } from '@/web/core/dataset/api';
+import { useRouter } from 'next/router';
+import MyBox from '@fastgpt/web/components/common/MyBox';
+import { formatFileSize } from '@fastgpt/global/common/file/tools';
+import { formatTime2YMDHM } from '@fastgpt/global/common/string/time';
+import { DatasetCollectionTypeMap, TrainingTypeMap } from '@fastgpt/global/core/dataset/constants';
+import { getCollectionSourceAndOpen } from '@/web/core/dataset/hooks/readCollectionSource';
+
+const MetaDataCard = ({ datasetId }: { datasetId: string }) => {
+ const { t } = useTranslation();
+ const router = useRouter();
+ const { collectionId = '' } = router.query as {
+ collectionId: string;
+ datasetId: string;
+ };
+ const readSource = getCollectionSourceAndOpen(collectionId);
+ const { data: collection, loading: isLoading } = useRequest2(
+ () => getDatasetCollectionById(collectionId),
+ {
+ onError: () => {
+ router.replace({
+ query: {
+ datasetId
+ }
+ });
+ },
+ manual: false
+ }
+ );
+ const metadataList = useMemo(() => {
+ if (!collection) return [];
+
+ const webSelector =
+ collection?.datasetId?.websiteConfig?.selector || collection?.metadata?.webPageSelector;
+
+ return [
+ {
+ label: t('common:core.dataset.collection.metadata.source'),
+ value: t(DatasetCollectionTypeMap[collection.type]?.name as any)
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.source name'),
+ value: collection.file?.filename || collection?.rawLink || collection?.name
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.source size'),
+ value: collection.file ? formatFileSize(collection.file.length) : '-'
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.Createtime'),
+ value: formatTime2YMDHM(collection.createTime)
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.Updatetime'),
+ value: formatTime2YMDHM(collection.updateTime)
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.Raw text length'),
+ value: collection.rawTextLength ?? '-'
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.Training Type'),
+ value: t(TrainingTypeMap[collection.trainingType]?.label as any)
+ },
+ {
+ label: t('common:core.dataset.collection.metadata.Chunk Size'),
+ value: collection.chunkSize || '-'
+ },
+ ...(webSelector
+ ? [
+ {
+ label: t('common:core.dataset.collection.metadata.Web page selector'),
+ value: webSelector
+ }
+ ]
+ : []),
+ {
+ ...(collection.tags
+ ? [
+ {
+ label: t('dataset:collection_tags'),
+ value: collection.tags?.join(', ') || '-'
+ }
+ ]
+ : [])
+ }
+ ];
+ }, [collection, t]);
+
+ return (
+
+
+ {t('common:core.dataset.collection.metadata.metadata')}
+
+
+ {t('common:core.dataset.collection.id')}:{' '}
+
+ {collection?._id}
+
+
+ {metadataList.map((item, i) => (
+
+
+ {item.label}
+
+ {item.value}
+
+ ))}
+ {collection?.sourceId && (
+
+ )}
+
+ );
+};
+
+export default React.memo(MetaDataCard);
diff --git a/projects/app/src/pages/dataset/detail/components/NavBar.tsx b/projects/app/src/pages/dataset/detail/components/NavBar.tsx
new file mode 100644
index 000000000..99f9aa754
--- /dev/null
+++ b/projects/app/src/pages/dataset/detail/components/NavBar.tsx
@@ -0,0 +1,212 @@
+import React, { useCallback } from 'react';
+import { useTranslation } from 'next-i18next';
+import { Box, Flex, IconButton, useTheme, Progress } from '@chakra-ui/react';
+import MyIcon from '@fastgpt/web/components/common/Icon';
+import { useRouter } from 'next/router';
+import { useContextSelector } from 'use-context-selector';
+import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext';
+import LightRowTabs from '@fastgpt/web/components/common/Tabs/LightRowTabs';
+import { useI18n } from '@/web/context/I18n';
+import { useSystem } from '@fastgpt/web/hooks/useSystem';
+import MyPopover from '@fastgpt/web/components/common/MyPopover';
+
+export enum TabEnum {
+ dataCard = 'dataCard',
+ collectionCard = 'collectionCard',
+ test = 'test',
+ info = 'info',
+ import = 'import'
+}
+
+const NavBar = ({ currentTab }: { currentTab: TabEnum }) => {
+ const theme = useTheme();
+ const { t } = useTranslation();
+ const { datasetT } = useI18n();
+ const router = useRouter();
+ const query = router.query;
+ const { isPc } = useSystem();
+ const { datasetDetail, vectorTrainingMap, agentTrainingMap, rebuildingCount } =
+ useContextSelector(DatasetPageContext, (v) => v);
+
+ const tabList = [
+ {
+ label: t('common:core.dataset.Collection'),
+ value: TabEnum.collectionCard
+ },
+ { label: t('common:core.dataset.test.Search Test'), value: TabEnum.test },
+ ...(datasetDetail.permission.hasManagePer && !isPc
+ ? [{ label: t('common:common.Config'), value: TabEnum.info }]
+ : [])
+ ];
+
+ const setCurrentTab = useCallback(
+ (tab: TabEnum) => {
+ router.replace({
+ query: {
+ datasetId: query.datasetId,
+ currentTab: tab
+ }
+ });
+ },
+ [query, router]
+ );
+
+ return (
+ <>
+ {isPc ? (
+
+ {
+ if (currentTab !== TabEnum.dataCard) router.replace('/dataset/list');
+ else
+ router.replace({
+ query: {
+ datasetId: router.query.datasetId,
+ parentId: router.query.parentId,
+ currentTab: TabEnum.collectionCard
+ }
+ });
+ }}
+ >
+ }
+ bg={'white'}
+ size={'smSquare'}
+ borderRadius={'50%'}
+ aria-label={''}
+ _hover={'none'}
+ />
+
+ {currentTab !== TabEnum.dataCard
+ ? t('common:core.dataset.All Dataset')
+ : datasetDetail.name}
+
+
+
+
+ px={4}
+ py={1}
+ visibility={currentTab === TabEnum.dataCard ? 'hidden' : 'visible'}
+ flex={1}
+ mx={'auto'}
+ w={'100%'}
+ list={tabList}
+ value={currentTab}
+ activatedColor="blue.700"
+ onChange={setCurrentTab}
+ inlineStyles={{
+ fontSize: '1rem',
+ lineHeight: '1.5rem',
+ fontWeight: 500,
+ border: 'none',
+ _hover: {
+ bg: 'myGray.05',
+ color: 'blue.700'
+ },
+ borderRadius: '6px'
+ }}
+ />
+
+
+ {/* 训练情况hover弹窗 */}
+
+
+
+ {t('common:core.dataset.training.tag')}
+
+
+ }
+ >
+ {({ onClose }) => (
+
+ {rebuildingCount > 0 && (
+
+
+ {datasetT('rebuilding_index_count', { count: rebuildingCount })}
+
+
+ )}
+
+
+ {t('common:core.dataset.training.Agent queue')}({agentTrainingMap.tip})
+
+
+
+
+
+ {t('common:core.dataset.training.Vector queue')}({vectorTrainingMap.tip})
+
+
+
+
+ )}
+
+
+ ) : (
+
+
+ m={'auto'}
+ w={'full'}
+ size={'sm'}
+ list={tabList}
+ value={currentTab}
+ onChange={setCurrentTab}
+ />
+
+ )}
+ >
+ );
+};
+
+export default NavBar;
diff --git a/projects/app/src/pages/dataset/detail/components/Slider.tsx b/projects/app/src/pages/dataset/detail/components/Slider.tsx
deleted file mode 100644
index 3c58aad4f..000000000
--- a/projects/app/src/pages/dataset/detail/components/Slider.tsx
+++ /dev/null
@@ -1,165 +0,0 @@
-import React, { useCallback } from 'react';
-import { useTranslation } from 'next-i18next';
-import { Box, Flex, IconButton, useTheme, Progress } from '@chakra-ui/react';
-import { useSystemStore } from '@/web/common/system/useSystemStore';
-import Avatar from '@fastgpt/web/components/common/Avatar';
-import { DatasetTypeMap } from '@fastgpt/global/core/dataset/constants';
-import DatasetTypeTag from '@/components/core/dataset/DatasetTypeTag';
-import MyIcon from '@fastgpt/web/components/common/Icon';
-import SideTabs from '@/components/SideTabs';
-import { useRouter } from 'next/router';
-import { useContextSelector } from 'use-context-selector';
-import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext';
-import LightRowTabs from '@fastgpt/web/components/common/Tabs/LightRowTabs';
-import { useI18n } from '@/web/context/I18n';
-import { useSystem } from '@fastgpt/web/hooks/useSystem';
-
-export enum TabEnum {
- dataCard = 'dataCard',
- collectionCard = 'collectionCard',
- test = 'test',
- info = 'info',
- import = 'import'
-}
-
-const Slider = ({ currentTab }: { currentTab: TabEnum }) => {
- const theme = useTheme();
- const { t } = useTranslation();
- const { datasetT } = useI18n();
- const router = useRouter();
- const query = router.query;
- const { isPc } = useSystem();
- const { datasetDetail, vectorTrainingMap, agentTrainingMap, rebuildingCount } =
- useContextSelector(DatasetPageContext, (v) => v);
-
- const tabList = [
- {
- label: t('common:core.dataset.Collection'),
- value: TabEnum.collectionCard,
- icon: 'common/overviewLight'
- },
- { label: t('common:core.dataset.test.Search Test'), value: TabEnum.test, icon: 'kbTest' },
- ...(datasetDetail.permission.hasManagePer
- ? [{ label: t('common:common.Config'), value: TabEnum.info, icon: 'common/settingLight' }]
- : [])
- ];
-
- const setCurrentTab = useCallback(
- (tab: TabEnum) => {
- router.replace({
- query: {
- datasetId: query.datasetId,
- currentTab: tab
- }
- });
- },
- [query, router]
- );
-
- return (
- <>
- {isPc ? (
-
-
-
-
-
- {datasetDetail.name}
-
-
- {DatasetTypeMap[datasetDetail.type] && (
-
-
-
- )}
-
-
- px={4}
- flex={1}
- mx={'auto'}
- w={'100%'}
- list={tabList}
- value={currentTab}
- onChange={setCurrentTab}
- />
-
- {rebuildingCount > 0 && (
-
-
- {datasetT('rebuilding_index_count', { count: rebuildingCount })}
-
-
- )}
-
-
- {t('common:core.dataset.training.Agent queue')}({agentTrainingMap.tip})
-
-
-
-
-
- {t('common:core.dataset.training.Vector queue')}({vectorTrainingMap.tip})
-
-
-
-
-
- router.replace('/dataset/list')}
- >
- }
- bg={'white'}
- boxShadow={'1px 1px 9px rgba(0,0,0,0.15)'}
- size={'smSquare'}
- borderRadius={'50%'}
- aria-label={''}
- />
- {t('common:core.dataset.All Dataset')}
-
-
- ) : (
-
-
- m={'auto'}
- w={'full'}
- size={isPc ? 'md' : 'sm'}
- list={tabList}
- value={currentTab}
- onChange={setCurrentTab}
- />
-
- )}
- >
- );
-};
-
-export default Slider;
diff --git a/projects/app/src/pages/dataset/detail/components/Test.tsx b/projects/app/src/pages/dataset/detail/components/Test.tsx
index 38aecbd9e..58c4768d1 100644
--- a/projects/app/src/pages/dataset/detail/components/Test.tsx
+++ b/projects/app/src/pages/dataset/detail/components/Test.tsx
@@ -141,7 +141,6 @@ const Test = ({ datasetId }: { datasetId: string }) => {
flex={1}
maxW={'500px'}
py={4}
- borderRight={['none', theme.borders.base]}
>
{
-
+
import('./components/CollectionCard/index'));
const DataCard = dynamic(() => import('./components/DataCard'));
@@ -39,6 +40,7 @@ const Detail = ({ datasetId, currentTab }: Props) => {
const { t } = useTranslation();
const { toast } = useToast();
const router = useRouter();
+ const { isPc } = useSystem();
const datasetDetail = useContextSelector(DatasetPageContext, (v) => v.datasetDetail);
const loadDatasetDetail = useContextSelector(DatasetPageContext, (v) => v.loadDatasetDetail);
const loadAllDatasetTags = useContextSelector(DatasetPageContext, (v) => v.loadAllDatasetTags);
@@ -60,25 +62,71 @@ const Detail = ({ datasetId, currentTab }: Props) => {
return (
<>
-
-
-
- {!!datasetDetail._id && (
-
+ {isPc ? (
+
+
+ {currentTab !== TabEnum.import && }
+
{currentTab === TabEnum.collectionCard && (
)}
- {currentTab === TabEnum.dataCard && }
{currentTab === TabEnum.test && }
- {currentTab === TabEnum.info && }
+ {currentTab === TabEnum.dataCard && }
{currentTab === TabEnum.import && }
+
+ {currentTab !== TabEnum.import && (
+
+ {currentTab === TabEnum.dataCard ? (
+
+ ) : (
+
+ )}
+
)}
-
-
+
+ ) : (
+
+
+
+
+ {!!datasetDetail._id && (
+
+ {currentTab === TabEnum.collectionCard && (
+
+
+
+ )}
+ {currentTab === TabEnum.dataCard && }
+ {currentTab === TabEnum.test && }
+ {currentTab === TabEnum.info && }
+ {currentTab === TabEnum.import && }
+
+ )}
+
+
+ )}
>
);
};
diff --git a/projects/app/src/pages/dataset/list/component/CreateModal.tsx b/projects/app/src/pages/dataset/list/component/CreateModal.tsx
index 1fcac96e4..f79e76097 100644
--- a/projects/app/src/pages/dataset/list/component/CreateModal.tsx
+++ b/projects/app/src/pages/dataset/list/component/CreateModal.tsx
@@ -118,7 +118,7 @@ const CreateModal = ({
-
+
{t('common:core.dataset.Create dataset', { name: databaseNameMap[type] })}
}
@@ -127,9 +127,9 @@ const CreateModal = ({
isCentered={!isPc}
w={'490px'}
>
-
+
-
+
{t('common:common.Set Name')}
@@ -226,7 +226,7 @@ const CreateModal = ({
)}
-
+
diff --git a/projects/app/src/pages/dataset/list/component/List.tsx b/projects/app/src/pages/dataset/list/component/List.tsx
index 3cb191515..c153de80b 100644
--- a/projects/app/src/pages/dataset/list/component/List.tsx
+++ b/projects/app/src/pages/dataset/list/component/List.tsx
@@ -229,7 +229,7 @@ function List() {
>
-
+
{dataset.name}
@@ -264,7 +264,7 @@ function List() {
h={'24px'}
alignItems={'center'}
justifyContent={'space-between'}
- fontSize={'12px'}
+ fontSize={'sm'}
fontWeight={500}
color={'myGray.500'}
>
diff --git a/projects/app/src/pages/dataset/list/component/SideTag.tsx b/projects/app/src/pages/dataset/list/component/SideTag.tsx
index 9b107e4b3..ce1b7264c 100644
--- a/projects/app/src/pages/dataset/list/component/SideTag.tsx
+++ b/projects/app/src/pages/dataset/list/component/SideTag.tsx
@@ -28,7 +28,7 @@ const SideTag = ({ type, ...props }: { type: `${DatasetTypeEnum}` } & FlexProps)
return (
{
placement="bottom-end"
Button={