From ec26ab7c96efea8882a73683c2ae4126bf91e1e8 Mon Sep 17 00:00:00 2001 From: cp3hnu Date: Tue, 6 Aug 2024 09:02:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/FullScreenFrame/index.tsx | 4 +-- react-ui/src/components/IFramePage/index.tsx | 13 ++++++++ .../DevelopmentEnvironment/Editor/index.tsx | 30 ++----------------- react-ui/src/pages/Experiment/status.ts | 2 ++ .../components/ExperimentTable/index.tsx | 6 ++-- 5 files changed, 22 insertions(+), 33 deletions(-) diff --git a/react-ui/src/components/FullScreenFrame/index.tsx b/react-ui/src/components/FullScreenFrame/index.tsx index 7593c904..a5c3413a 100644 --- a/react-ui/src/components/FullScreenFrame/index.tsx +++ b/react-ui/src/components/FullScreenFrame/index.tsx @@ -5,8 +5,8 @@ type FullScreenFrameProps = { url: string; className?: string; style?: React.CSSProperties; - onload?: () => void; - onerror?: () => void; + onload?: (e?: React.SyntheticEvent) => void; + onerror?: (e?: React.SyntheticEvent) => void; }; function FullScreenFrame({ url, className, style, onload, onerror }: FullScreenFrameProps) { diff --git a/react-ui/src/components/IFramePage/index.tsx b/react-ui/src/components/IFramePage/index.tsx index f1140136..4db0c7ba 100644 --- a/react-ui/src/components/IFramePage/index.tsx +++ b/react-ui/src/components/IFramePage/index.tsx @@ -2,6 +2,11 @@ import FullScreenFrame from '@/components/FullScreenFrame'; import KFSpin from '@/components/KFSpin'; import { getLabelStudioUrl } from '@/services/developmentEnvironment'; import { to } from '@/utils/promise'; +import { + editorUrlKey, + getSessionStorageItem, + removeSessionStorageItem, +} from '@/utils/sessionStorage'; import classNames from 'classnames'; import { useEffect, useState } from 'react'; import './index.less'; @@ -9,6 +14,7 @@ import './index.less'; export enum IframePageType { DatasetAnnotation = 'DatasetAnnotation', // 数据标注 AppDevelopment = 'AppDevelopment', // 应用开发 + DevEnv = 'DevEnv', // 开发环境 } const getRequestAPI = (type: IframePageType): (() => Promise) => { @@ -17,6 +23,8 @@ const getRequestAPI = (type: IframePageType): (() => Promise) => { return getLabelStudioUrl; case IframePageType.AppDevelopment: return () => Promise.resolve({ code: 200, data: 'http://172.20.32.181:30080/' }); + case IframePageType.DevEnv: + return () => Promise.resolve({ code: 200, data: getSessionStorageItem(editorUrlKey) || '' }); } }; @@ -31,6 +39,11 @@ function IframePage({ type, className, style }: IframePageProps) { const [loading, setLoading] = useState(false); useEffect(() => { requestIframeUrl(); + return () => { + if (type === IframePageType.DevEnv) { + removeSessionStorageItem(editorUrlKey); + } + }; }, []); const requestIframeUrl = async () => { setLoading(true); diff --git a/react-ui/src/pages/DevelopmentEnvironment/Editor/index.tsx b/react-ui/src/pages/DevelopmentEnvironment/Editor/index.tsx index 35143e72..ad9afbee 100644 --- a/react-ui/src/pages/DevelopmentEnvironment/Editor/index.tsx +++ b/react-ui/src/pages/DevelopmentEnvironment/Editor/index.tsx @@ -4,35 +4,9 @@ * @Description: 开发环境 */ -import { - editorUrlKey, - getSessionStorageItem, - removeSessionStorageItem, -} from '@/utils/sessionStorage'; -// import { getJupyterUrl } from '@/services/developmentEnvironment'; -// import { to } from '@/utils/promise'; -import { useEffect, useState } from 'react'; +import IframePage, { IframePageType } from '@/components/IFramePage'; function DevEditor() { - const [iframeUrl, setIframeUrl] = useState(''); - useEffect(() => { - const url = getSessionStorageItem(editorUrlKey) || ''; - setIframeUrl(url); - return () => { - removeSessionStorageItem(editorUrlKey); - }; - // requestJupyterUrl(); - }, []); - - // const requestJupyterUrl = async () => { - // const [res, error] = await to(getJupyterUrl()); - // if (res) { - // setIframeUrl(res.data as string); - // } else { - // console.log(error); - // } - // }; - - return ; + return ; } export default DevEditor; diff --git a/react-ui/src/pages/Experiment/status.ts b/react-ui/src/pages/Experiment/status.ts index 6f8f930b..c6e2c0a5 100644 --- a/react-ui/src/pages/Experiment/status.ts +++ b/react-ui/src/pages/Experiment/status.ts @@ -1,6 +1,8 @@ import { ExperimentStatus } from '@/enums'; import themes from '@/styles/theme.less'; +export { ExperimentStatus }; + export interface ExperimentStatusInfo { label: string; color: string; diff --git a/react-ui/src/pages/Workspace/components/ExperimentTable/index.tsx b/react-ui/src/pages/Workspace/components/ExperimentTable/index.tsx index b182659d..af940b75 100644 --- a/react-ui/src/pages/Workspace/components/ExperimentTable/index.tsx +++ b/react-ui/src/pages/Workspace/components/ExperimentTable/index.tsx @@ -1,5 +1,5 @@ import KFIcon from '@/components/KFIcon'; -import { ExperimentStatusValues, experimentStatusInfo } from '@/pages/Experiment/status'; +import { ExperimentStatus, experimentStatusInfo } from '@/pages/Experiment/status'; import { ExperimentInstance } from '@/types'; import { elapsedTime, formatDate } from '@/utils/date'; import { useNavigate } from '@umijs/max'; @@ -13,7 +13,7 @@ type ExperimentTableProps = { function ExperimentTable({ tableData = [], style }: ExperimentTableProps) { const navigate = useNavigate(); const gotoExperiment = (record: ExperimentInstance) => { - navigate(`/pipeline/experiment/${record.workflow_id}/${record.id}`); + navigate(`/pipeline/experiment/instance/${record.workflow_id}/${record.id}`); }; return ( @@ -28,7 +28,7 @@ function ExperimentTable({ tableData = [], style }: ExperimentTableProps) {