From eb365fef448da76e06a893d0dc473237be1769a5 Mon Sep 17 00:00:00 2001 From: Jiangween <145003935+Jiangween@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:25:00 +0800 Subject: [PATCH] Update i18n files and Upload component (#3040) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update i18n files and Upload component * 完善 i18n 和优化 Upload.tsx 文件 * 修改Upload.tsx 文件的问题... --- packages/web/i18n/en/common.json | 5 +- packages/web/i18n/zh/common.json | 5 +- .../Import/commonProgress/Upload.tsx | 100 ++++++++++++++---- 3 files changed, 88 insertions(+), 22 deletions(-) diff --git a/packages/web/i18n/en/common.json b/packages/web/i18n/en/common.json index 6b387c3ce..8626a21ad 100644 --- a/packages/web/i18n/en/common.json +++ b/packages/web/i18n/en/common.json @@ -184,6 +184,7 @@ "common.Update Successful": "Updated Successfully", "common.Username": "Username", "common.Waiting": "Waiting", + "common.Error": "Error", "common.Warning": "Warning", "common.Website": "Website", "common.all_result": "Full Results", @@ -569,10 +570,12 @@ "core.dataset.import.Select source": "Select Source", "core.dataset.import.Source name": "Source Name", "core.dataset.import.Sources list": "Source List", + "core.dataset.import.Continue upload": "Continue upload", + "core.dataset.import.Upload complete": "Upload complete", "core.dataset.import.Start upload": "Start Upload", "core.dataset.import.Total files": "Total {{total}} Files", "core.dataset.import.Training mode": "Training Mode", - "core.dataset.import.Upload data": "Upload Data", + "core.dataset.import.Upload data": "Confirm Upload", "core.dataset.import.Upload file progress": "File Upload Progress", "core.dataset.import.Upload status": "Status", "core.dataset.import.Web link": "Web Link", diff --git a/packages/web/i18n/zh/common.json b/packages/web/i18n/zh/common.json index 970979880..39762c250 100644 --- a/packages/web/i18n/zh/common.json +++ b/packages/web/i18n/zh/common.json @@ -191,6 +191,7 @@ "common.Update Successful": "更新成功", "common.Username": "用户名", "common.Waiting": "等待中", + "common.Error": "错误", "common.Warning": "警告", "common.Website": "网站", "common.all_result": "完整结果", @@ -575,10 +576,12 @@ "core.dataset.import.Select source": "选择来源", "core.dataset.import.Source name": "来源名", "core.dataset.import.Sources list": "来源列表", + "core.dataset.import.Continue upload": "继续上传", + "core.dataset.import.Upload complete": "完成上传", "core.dataset.import.Start upload": "开始上传", "core.dataset.import.Total files": "共 {{total}} 个文件", "core.dataset.import.Training mode": "训练模式", - "core.dataset.import.Upload data": "上传数据", + "core.dataset.import.Upload data": "确认上传", "core.dataset.import.Upload file progress": "文件上传进度", "core.dataset.import.Upload status": "状态", "core.dataset.import.Web link": "网页链接", diff --git a/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx b/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx index 52c3e7a16..a4c27c531 100644 --- a/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx +++ b/projects/app/src/pages/dataset/detail/components/Import/commonProgress/Upload.tsx @@ -1,4 +1,5 @@ -import React from 'react'; +import React, { useMemo } from 'react'; +import { QuestionOutlineIcon } from '@chakra-ui/icons'; import { Box, TableContainer, @@ -9,7 +10,9 @@ import { Td, Tbody, Flex, - Button + Button, + IconButton, + Tooltip } from '@chakra-ui/react'; import { ImportDataSourceEnum } from '@fastgpt/global/core/dataset/constants'; import { useTranslation } from 'next-i18next'; @@ -42,6 +45,32 @@ const Upload = () => { const { handleSubmit } = processParamsForm; + const { totalFilesCount, waitingFilesCount, allFinished, hasCreatingFiles } = useMemo(() => { + const totalFilesCount = sources.length; + + const { waitingFilesCount, allFinished, hasCreatingFiles } = sources.reduce( + (acc, file) => { + if (file.createStatus === 'waiting') acc.waitingFilesCount++; + if (file.createStatus === 'creating') acc.hasCreatingFiles = true; + if (file.createStatus !== 'finish') acc.allFinished = false; + return acc; + }, + { waitingFilesCount: 0, allFinished: true, hasCreatingFiles: false } + ); + + return { totalFilesCount, waitingFilesCount, allFinished, hasCreatingFiles }; + }, [sources]); + + const buttonText = useMemo(() => { + if (waitingFilesCount === totalFilesCount) { + return t('common:core.dataset.import.Start upload'); + } else if (allFinished) { + return t('common:core.dataset.import.Upload complete'); + } else { + return t('common:core.dataset.import.Continue upload'); + } + }, [waitingFilesCount, totalFilesCount, allFinished, t]); + const { mutate: startUpload, isLoading } = useRequest({ mutationFn: async ({ mode, customSplitChar, qaPrompt, webSelector }: ImportFormType) => { if (sources.length === 0) return; @@ -117,10 +146,12 @@ const Upload = () => { } }, onSuccess() { - toast({ - title: t('common:core.dataset.import.Import success'), - status: 'success' - }); + if (!sources.some((file) => file.errorMsg !== undefined)) { + toast({ + title: t('common:core.dataset.import.Import success'), + status: 'success' + }); + } // close import page router.replace({ @@ -130,13 +161,14 @@ const Upload = () => { } }); }, - onError() { + onError(error) { setSources((state) => state.map((source) => source.createStatus === 'creating' ? { ...source, - createStatus: 'waiting' + createStatus: 'waiting', + errorMsg: error.message || fileT('upload_failed') } : source ) @@ -157,6 +189,9 @@ const Upload = () => {