diff --git a/react-ui/src/enums/index.ts b/react-ui/src/enums/index.ts index f652445..c023879 100644 --- a/react-ui/src/enums/index.ts +++ b/react-ui/src/enums/index.ts @@ -17,6 +17,7 @@ export enum ModelDeploymentStatus { Running = 'Running', // 运行中 Stopped = 'Stopped', // 已停止 Failed = 'Failed', // 失败 + Pending = 'Pending', // 挂起中 } export const modelDeploymentStatusOptions = [ @@ -25,4 +26,5 @@ export const modelDeploymentStatusOptions = [ { label: '运行中', value: ModelDeploymentStatus.Running }, { label: '已停止', value: ModelDeploymentStatus.Stopped }, { label: '失败', value: ModelDeploymentStatus.Failed }, + { label: '挂起中', value: ModelDeploymentStatus.Pending }, ]; diff --git a/react-ui/src/hooks/index.ts b/react-ui/src/hooks/index.ts index 4dccabb..1d56a24 100644 --- a/react-ui/src/hooks/index.ts +++ b/react-ui/src/hooks/index.ts @@ -126,13 +126,3 @@ export const useResetFormOnCloseModal = (form: FormInstance, open: boolean) => { } }, [form, prevOpen, open]); }; - -export const useInputModel = (initialValue: T) => { - const [value, setValue] = useState(initialValue); - - const updateValue = useCallback((e: any) => { - setValue(e.target?.value); - }, []); - - return [value, updateValue]; -}; diff --git a/react-ui/src/hooks/resource.ts b/react-ui/src/hooks/resource.ts index b3bd76c..d3957bb 100644 --- a/react-ui/src/hooks/resource.ts +++ b/react-ui/src/hooks/resource.ts @@ -4,6 +4,7 @@ import { to } from '@/utils/promise'; import { type SelectProps } from 'antd'; import { useCallback, useEffect, useState } from 'react'; +// 获取资源规格 export function useComputingResource() { const [resourceStandardList, setResourceStandardList] = useState([]); diff --git a/react-ui/src/hooks/sessionStorage.ts b/react-ui/src/hooks/sessionStorage.ts index 6a2c53e..5c76537 100644 --- a/react-ui/src/hooks/sessionStorage.ts +++ b/react-ui/src/hooks/sessionStorage.ts @@ -1,6 +1,7 @@ import { getSessionStorageItem, removeSessionStorageItem } from '@/utils/sessionStorage'; import { useEffect, useState } from 'react'; +// 获取缓存数据 export function useSessionStorage(key: string, isObject: boolean, initialValue: T) { const [storage, setStorage] = useState(initialValue); diff --git a/react-ui/src/pages/Dataset/components/AddDatasetModal/index.tsx b/react-ui/src/pages/Dataset/components/AddDatasetModal/index.tsx index b55aa08..177bf2a 100644 --- a/react-ui/src/pages/Dataset/components/AddDatasetModal/index.tsx +++ b/react-ui/src/pages/Dataset/components/AddDatasetModal/index.tsx @@ -7,6 +7,7 @@ import { getDictSelectOption } from '@/services/system/dict'; import { to } from '@/utils/promise'; import { getFileListFromEvent, validateUploadFiles } from '@/utils/ui'; import { + App, Button, Form, Input, @@ -14,7 +15,6 @@ import { Select, Upload, UploadFile, - message, type ModalProps, type UploadProps, } from 'antd'; @@ -32,6 +32,7 @@ interface AddDatasetModalProps extends Omit { function AddDatasetModal({ typeList, tagList, onOk, ...rest }: AddDatasetModalProps) { const [uuid] = useState(Date.now()); const [clusterOptions, setClusterOptions] = useState([]); + const { message } = App.useApp(); useEffect(() => { getClusterOptions(); diff --git a/react-ui/src/pages/Dataset/components/AddModelModal/index.tsx b/react-ui/src/pages/Dataset/components/AddModelModal/index.tsx index 5d4125d..f4d68c5 100644 --- a/react-ui/src/pages/Dataset/components/AddModelModal/index.tsx +++ b/react-ui/src/pages/Dataset/components/AddModelModal/index.tsx @@ -6,13 +6,13 @@ import { addModel } from '@/services/dataset/index.js'; import { to } from '@/utils/promise'; import { getFileListFromEvent, validateUploadFiles } from '@/utils/ui'; import { + App, Button, Form, Input, Select, Upload, UploadFile, - message, type ModalProps, type UploadProps, } from 'antd'; @@ -28,6 +28,8 @@ interface AddModelModalProps extends Omit { function AddModelModal({ typeList, tagList, onOk, ...rest }: AddModelModalProps) { const [uuid] = useState(Date.now()); + const { message } = App.useApp(); + // 上传组件参数 const uploadProps: UploadProps = { action: '/api/mmp/models/upload', diff --git a/react-ui/src/pages/Dataset/components/AddVersionModal/index.tsx b/react-ui/src/pages/Dataset/components/AddVersionModal/index.tsx index 839c8e2..c00569f 100644 --- a/react-ui/src/pages/Dataset/components/AddVersionModal/index.tsx +++ b/react-ui/src/pages/Dataset/components/AddVersionModal/index.tsx @@ -5,12 +5,12 @@ import { ResourceType, resourceConfig } from '@/pages/Dataset/types'; import { to } from '@/utils/promise'; import { getFileListFromEvent, validateUploadFiles } from '@/utils/ui'; import { + App, Button, Form, Input, Upload, UploadFile, - message, type ModalProps, type UploadProps, } from 'antd'; @@ -33,6 +33,7 @@ function AddVersionModal({ ...rest }: AddVersionModalProps) { const [uuid] = useState(Date.now()); + const { message } = App.useApp(); // 上传组件参数 const uploadProps: UploadProps = { diff --git a/react-ui/src/pages/Dataset/components/ResourceList/index.tsx b/react-ui/src/pages/Dataset/components/ResourceList/index.tsx index 9797c19..208e18c 100644 --- a/react-ui/src/pages/Dataset/components/ResourceList/index.tsx +++ b/react-ui/src/pages/Dataset/components/ResourceList/index.tsx @@ -5,7 +5,7 @@ import { openAntdModal } from '@/utils/modal'; import { to } from '@/utils/promise'; import { modalConfirm } from '@/utils/ui'; import { useNavigate } from '@umijs/max'; -import { Button, Input, Pagination, PaginationProps, message } from 'antd'; +import { App, Button, Input, Pagination, PaginationProps } from 'antd'; import { Ref, forwardRef, useEffect, useImperativeHandle, useState } from 'react'; import { CategoryData, ResourceData, ResourceType, resourceConfig } from '../../types'; import AddDatasetModal from '../AddDatasetModal'; @@ -53,6 +53,7 @@ function ResourceList( ); const [searchText, setSearchText] = useState(initialSearchText); const [inputText, setInputText] = useState(initialSearchText); + const { message } = App.useApp(); useEffect(() => { getDataList(); diff --git a/react-ui/src/pages/Dataset/intro.jsx b/react-ui/src/pages/Dataset/intro.jsx index e1218b1..6d556c0 100644 --- a/react-ui/src/pages/Dataset/intro.jsx +++ b/react-ui/src/pages/Dataset/intro.jsx @@ -11,7 +11,7 @@ import { downLoadZip } from '@/utils/downloadfile'; import { openAntdModal } from '@/utils/modal'; import { modalConfirm } from '@/utils/ui'; import { useParams, useSearchParams } from '@umijs/max'; -import { Button, Input, Select, Table, Tabs, message } from 'antd'; +import { App, Button, Input, Select, Table, Tabs } from 'antd'; import { useEffect, useRef, useState } from 'react'; import AddVersionModal from './components/AddVersionModal'; import Styles from './intro.less'; @@ -19,6 +19,7 @@ const { Search } = Input; const { TabPane } = Tabs; const Dataset = () => { + const { message } = App.useApp(); const [formList, setFormList] = useState([]); const [datasetDetailObj, setDatasetDetailObj] = useState({}); const [version, setVersion] = useState(null); diff --git a/react-ui/src/pages/Experiment/components/AddExperimentModal/index.tsx b/react-ui/src/pages/Experiment/components/AddExperimentModal/index.tsx index 2300c0f..71ec2f0 100644 --- a/react-ui/src/pages/Experiment/components/AddExperimentModal/index.tsx +++ b/react-ui/src/pages/Experiment/components/AddExperimentModal/index.tsx @@ -97,6 +97,11 @@ function AddExperimentModal({ wrapperCol: { span: 20 }, }; + const paramLayout = { + labelCol: { span: 8 }, + wrapperCol: { span: 16 }, + }; + // 除了流水线选择发生变化 const handleWorkflowChange = (id: string | number) => { const pipeline: Workflow | undefined = workflowList.find((v) => v.id === id); @@ -187,7 +192,7 @@ function AddExperimentModal({ fields.map(({ key, name, ...restField }) => ( { - getComputingResource(); - }, []); - - // 获取资源规格列表数据 - const getComputingResource = async () => { - const params = { - page: 0, - size: 1000, - resource_type: '', - }; - const [res] = await to(getComputingResourceReq(params)); - if (res && res.data && res.data.content) { - setResourceStandardList(res.data.content); - } - }; + const [resourceStandardList] = useComputingResource(); // 资源规模 // 控制策略 const controlStrategyList = Object.entries(nodeData.control_strategy ?? {}).map( diff --git a/react-ui/src/pages/Experiment/index.jsx b/react-ui/src/pages/Experiment/index.jsx index 014a7c5..057eb4e 100644 --- a/react-ui/src/pages/Experiment/index.jsx +++ b/react-ui/src/pages/Experiment/index.jsx @@ -18,7 +18,7 @@ import themes from '@/styles/theme.less'; import { elapsedTime, formatDate } from '@/utils/date'; import { to } from '@/utils/promise'; import { modalConfirm } from '@/utils/ui'; -import { Button, ConfigProvider, Space, Table, message } from 'antd'; +import { App, Button, ConfigProvider, Space, Table } from 'antd'; import classNames from 'classnames'; import { useEffect, useRef, useState } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -47,6 +47,7 @@ function Experiment() { const [isAdd, setIsAdd] = useState(true); const [isModalOpen, setIsModalOpen] = useState(false); const [addFormData, setAddFormData] = useState({}); + const { message } = App.useApp(); useEffect(() => { getList(); diff --git a/react-ui/src/pages/Experiment/status.ts b/react-ui/src/pages/Experiment/status.ts index 1b13649..7199934 100644 --- a/react-ui/src/pages/Experiment/status.ts +++ b/react-ui/src/pages/Experiment/status.ts @@ -18,7 +18,7 @@ export enum ExperimentStatus { export const experimentStatusInfo: Record = { Running: { label: '运行中', - color: '#165bff', + color: '#1664ff', icon: '/assets/images/running-icon.png', }, Succeeded: { @@ -53,7 +53,7 @@ export const experimentStatusInfo: Record { getMirrorInfo(); }, []); + useEffect(() => { getMirrorVersionList(); }, [pagination]); diff --git a/react-ui/src/pages/Mirror/List/index.tsx b/react-ui/src/pages/Mirror/List/index.tsx index 70a5ff1..5f0aa17 100644 --- a/react-ui/src/pages/Mirror/List/index.tsx +++ b/react-ui/src/pages/Mirror/List/index.tsx @@ -15,12 +15,12 @@ import { mirrorNameKey, setSessionStorageItem } from '@/utils/sessionStorage'; import { modalConfirm } from '@/utils/ui'; import { useNavigate } from '@umijs/max'; import { + App, Button, ConfigProvider, Input, Table, Tabs, - message, type TablePaginationConfig, type TableProps, type TabsProps, @@ -64,6 +64,7 @@ function MirrorList() { pageSize: 10, }, ); + const { message } = App.useApp(); useEffect(() => { getMirrorList(); @@ -174,13 +175,14 @@ function MirrorList() { title: '版本数据', dataIndex: 'version_count', key: 'version_count', - width: 100, + width: '15%', render: CommonTableCell(), }, { title: '镜像描述', dataIndex: 'description', key: 'description', + width: '35%', render: CommonTableCell(true), ellipsis: { showTitle: false }, }, @@ -188,7 +190,7 @@ function MirrorList() { title: '创建时间', dataIndex: 'create_time', key: 'create_time', - width: 200, + width: '20%', render: DateTableCell, }, { diff --git a/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.tsx b/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.tsx index 93e64ce..fc0548c 100644 --- a/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.tsx +++ b/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.tsx @@ -1,7 +1,7 @@ /* * @Author: 赵伟 * @Date: 2024-04-18 18:35:41 - * @Description: + * @Description: 镜像状态组件 */ import { MirrorVersionStatus } from '@/enums'; import styles from './index.less'; @@ -26,7 +26,7 @@ const statusInfo: Record = { }, }; -function MirrorStatusCell(status: MirrorVersionStatus) { +function MirrorStatusCell(status?: MirrorVersionStatus | null) { if (status === null || status === undefined || !statusInfo[status]) { return --; } diff --git a/react-ui/src/pages/Model/intro.jsx b/react-ui/src/pages/Model/intro.jsx index f044e46..a7c9d05 100644 --- a/react-ui/src/pages/Model/intro.jsx +++ b/react-ui/src/pages/Model/intro.jsx @@ -12,7 +12,7 @@ import { downLoadZip } from '@/utils/downloadfile'; import { openAntdModal } from '@/utils/modal'; import { modalConfirm } from '@/utils/ui'; import { useParams, useSearchParams } from '@umijs/max'; -import { Button, Input, Select, Table, Tabs, message } from 'antd'; +import { App, Button, Input, Select, Table, Tabs } from 'antd'; import { useEffect, useRef, useState } from 'react'; import Styles from './intro.less'; const { Search } = Input; @@ -26,6 +26,7 @@ const Dataset = () => { const locationParams = useParams(); //新版本获取路由参数接口 const [searchParams] = useSearchParams(); const [wordList, setWordList] = useState([]); + const { message } = App.useApp(); const isPublic = searchParams.get('isPublic') === 'true'; const getModelByDetail = () => { diff --git a/react-ui/src/pages/ModelDeployment/Info/index.tsx b/react-ui/src/pages/ModelDeployment/Info/index.tsx index c4163c1..bd809f6 100644 --- a/react-ui/src/pages/ModelDeployment/Info/index.tsx +++ b/react-ui/src/pages/ModelDeployment/Info/index.tsx @@ -164,7 +164,7 @@ function ModelDeploymentInfo() {
-
资源规格
+
资源规格:
{modelDeployementInfo?.resource ? getResourceDescription(modelDeployementInfo.resource) @@ -174,7 +174,7 @@ function ModelDeploymentInfo() { - +
描  述:
{modelDeployementInfo?.description ?? '--'}
diff --git a/react-ui/src/pages/ModelDeployment/List/index.tsx b/react-ui/src/pages/ModelDeployment/List/index.tsx index ce9cbaf..bc1f03d 100644 --- a/react-ui/src/pages/ModelDeployment/List/index.tsx +++ b/react-ui/src/pages/ModelDeployment/List/index.tsx @@ -249,7 +249,8 @@ function ModelDeployment() { )} {(record.status === ModelDeploymentStatus.Running || - record.status === ModelDeploymentStatus.Init) && ( + record.status === ModelDeploymentStatus.Init || + record.status === ModelDeploymentStatus.Pending) && (