diff --git a/react-ui/public/assets/images/component-icon-9-Failed.png b/react-ui/public/assets/images/component-icon-9-Failed.png new file mode 100644 index 00000000..64fae87a Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9-Failed.png differ diff --git a/react-ui/public/assets/images/component-icon-9-Omitted.png b/react-ui/public/assets/images/component-icon-9-Omitted.png new file mode 100644 index 00000000..2b2911c6 Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9-Omitted.png differ diff --git a/react-ui/public/assets/images/component-icon-9-Pending.png b/react-ui/public/assets/images/component-icon-9-Pending.png new file mode 100644 index 00000000..a684bdc0 Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9-Pending.png differ diff --git a/react-ui/public/assets/images/component-icon-9-Running.png b/react-ui/public/assets/images/component-icon-9-Running.png new file mode 100644 index 00000000..b96deabe Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9-Running.png differ diff --git a/react-ui/public/assets/images/component-icon-9-Skipped.png b/react-ui/public/assets/images/component-icon-9-Skipped.png new file mode 100644 index 00000000..2b2911c6 Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9-Skipped.png differ diff --git a/react-ui/public/assets/images/component-icon-9-Succeeded.png b/react-ui/public/assets/images/component-icon-9-Succeeded.png new file mode 100644 index 00000000..f18af9c9 Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9-Succeeded.png differ diff --git a/react-ui/public/assets/images/component-icon-9.png b/react-ui/public/assets/images/component-icon-9.png new file mode 100644 index 00000000..92dae064 Binary files /dev/null and b/react-ui/public/assets/images/component-icon-9.png differ diff --git a/react-ui/src/components/ParameterSelect/config.tsx b/react-ui/src/components/ParameterSelect/config.tsx index 757e2a11..2548f44c 100644 --- a/react-ui/src/components/ParameterSelect/config.tsx +++ b/react-ui/src/components/ParameterSelect/config.tsx @@ -1,7 +1,10 @@ +import { ServiceData } from '@/pages/ModelDeployment/types'; import { getDatasetList, getModelList } from '@/services/dataset/index.js'; +import { getServiceListReq } from '@/services/modelDeployment'; import { getComputingResourceReq } from '@/services/pipeline'; import { ComputingResource } from '@/types'; import { type SelectProps } from 'antd'; +import { pick } from 'lodash'; // 过滤资源规格 const filterResourceStandard: SelectProps['filterOption'] = ( @@ -62,6 +65,25 @@ export const paramSelectConfig: Record = { }, optionFilterProp: 'name', }, + service: { + getOptions: async () => { + const res = await getServiceListReq({ + page: 0, + size: 1000, + }); + return ( + res?.data?.content?.map((item: ServiceData) => ({ + label: item.service_name, + value: JSON.stringify(pick(item, ['id', 'service_name'])), + })) ?? [] + ); + }, + fieldNames: { + label: 'label', + value: 'value', + }, + optionFilterProp: 'label', + }, resource: { getOptions: async () => { const res = await getComputingResourceReq({ diff --git a/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx b/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx index 60ac8fe8..56aeb333 100644 --- a/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx +++ b/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx @@ -24,7 +24,7 @@ import SessionStorage from '@/utils/sessionStorage'; import { modalConfirm } from '@/utils/ui'; import { PlusOutlined } from '@ant-design/icons'; import { useNavigate, useParams } from '@umijs/max'; -import { App, Button, Col, Flex, Form, Input, Row, Select } from 'antd'; +import { App, Button, Col, Flex, Form, Input, InputNumber, Row, Select } from 'antd'; import { omit, pick } from 'lodash'; import { useEffect, useState } from 'react'; import { @@ -120,11 +120,11 @@ function CreateServiceVersion() { // 创建版本 const createServiceVersion = async (formData: FormData) => { - const envList = formData['env_variables'] ?? []; + const envList = formData['env_variables']; const image = formData['image']; const model = formData['model']; const codeConfig = formData['code_config']; - const envVariables = envList.reduce((acc, cur) => { + const envVariables = envList?.reduce((acc, cur) => { acc[cur.key] = cur.value; return acc; }, {} as Record); @@ -139,9 +139,11 @@ function CreateServiceVersion() { pick(model, ['id', 'name', 'version', 'path', 'identifier', 'owner', 'showValue']), { showValue: 'show_value' }, ), - code_config: changePropertyName(pick(codeConfig, ['code_path', 'branch', 'showValue']), { - showValue: 'show_value', - }), + code_config: codeConfig + ? changePropertyName(pick(codeConfig, ['code_path', 'branch', 'showValue']), { + showValue: 'show_value', + }) + : undefined, service_id: serviceInfo?.id, }; @@ -334,17 +336,7 @@ function CreateServiceVersion() { - + - + diff --git a/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx b/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx index 07d40de5..2b21b20a 100644 --- a/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx +++ b/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx @@ -117,6 +117,11 @@ function ServiceInfo() { const [res] = await to(getServiceVersionsReq(params)); if (res && res.data) { const { content = [], totalElements = 0 } = res.data; + content.forEach((item: ServiceVersionData) => { + if (item.model && !item.model.show_value) { + item.model.show_value = `${item.model.name}:${item.model.version}`; + } + }); setTableData(content); setTotal(totalElements); } diff --git a/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx b/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx index f741f750..32497e13 100644 --- a/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx +++ b/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx @@ -27,7 +27,7 @@ function BasicInfo({ info }: BasicInfoProps) { }; const formatCodeConfig = () => { - if (info && info.code_config) { + if (info && info.code_config && info.code_config.code_path) { const { code_path, branch } = info.code_config; const url = getGitUrl(code_path, branch); return ( @@ -36,7 +36,7 @@ function BasicInfo({ info }: BasicInfoProps) { ); } - return undefined; + return '--'; }; const formatResource = () => { diff --git a/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx b/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx index 2eae5c64..8cc9f441 100644 --- a/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx +++ b/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx @@ -43,22 +43,34 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete if (!open) { // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_values, error] = await to(form.validateFields()); + // 不管是否验证成功,都需要获取表单数据 const fields = form.getFieldsValue(); - const control_strategy = JSON.stringify(fields.control_strategy); - const in_parameters = JSON.stringify(fields.in_parameters); - const out_parameters = JSON.stringify(fields.out_parameters); + + // 保存字段顺序 + const control_strategy = { + ...stagingItem.control_strategy, + ...fields.control_strategy, + }; + const in_parameters = { + ...stagingItem.in_parameters, + ...fields.in_parameters, + }; + const out_parameters = { + ...stagingItem.out_parameters, + ...fields.out_parameters, + }; + // console.log('getFieldsValue', fields); const res = { ...stagingItem, ...fields, - control_strategy: control_strategy, - in_parameters: in_parameters, - out_parameters: out_parameters, + control_strategy: JSON.stringify(control_strategy), + in_parameters: JSON.stringify(in_parameters), + out_parameters: JSON.stringify(out_parameters), formError: !!error, }; - - console.log('res', res); + // console.log('res', res); onFormChange(res); } };