Browse Source

Merge pull request '合并' (#250) from dev-zw into dev-check

pull/268/head
cp3hnu 8 months ago
parent
commit
bcff86269b
5 changed files with 60 additions and 18 deletions
  1. +27
    -11
      react-ui/src/components/IFramePage/index.tsx
  2. +3
    -3
      react-ui/src/pages/AutoML/components/ExperimentList/index.tsx
  3. +1
    -1
      react-ui/src/pages/ModelDeployment/VersionInfo/index.tsx
  4. +1
    -1
      react-ui/src/pages/Pipeline/Info/index.jsx
  5. +28
    -2
      react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx

+ 27
- 11
react-ui/src/components/IFramePage/index.tsx View File

@@ -58,6 +58,8 @@ type IframePageProps = {
url?: string;
/** 是否可以在页签上打开 */
openInTab?: boolean;
/** 是否显示加载 */
showLoading?: boolean;
/** 自定义样式类名 */
className?: string;
/** 自定义样式 */
@@ -65,40 +67,54 @@ type IframePageProps = {
};

/** 系统内嵌 iframe,目前系统有数据标注、应用开发、开发环境、GitLink 四个子系统,使用时可以添加其他子系统 */
function IframePage({ type, url, openInTab = false, className, style }: IframePageProps) {
function IframePage({
type,
url,
showLoading = true,
openInTab = false,
className,
style,
}: IframePageProps) {
const [iframeUrl, setIframeUrl] = useState('');
// const [loading, setLoading] = useState(false);

useEffect(() => {
const requestIframeUrl = async (type: IframePageType) => {
// setLoading(true);
Loading.show();
if (showLoading) {
Loading.show();
}
const [res] = await to(getRequestAPI(type)());
if (res && res.data) {
setIframeUrl(res.data);
} else {
Loading.hide();
// setLoading(false);
if (showLoading) {
Loading.hide();
}
}
};

if (type) {
requestIframeUrl(type);
} else if (url) {
Loading.show();
if (showLoading) {
Loading.show();
}

setIframeUrl(url);
}
}, [type, url]);
}, [type, url, showLoading]);

const handleLoad = () => {
// setLoading(false);
Loading.hide();
if (showLoading) {
Loading.hide();
}
};

const handleError = (error?: React.SyntheticEvent<HTMLIFrameElement, Event>) => {
// setLoading(false);
console.log('error', error);
Loading.hide();
if (showLoading) {
Loading.hide();
}
};

return (


+ 3
- 3
react-ui/src/pages/AutoML/components/ExperimentList/index.tsx View File

@@ -395,9 +395,9 @@ function ExperimentList({ type }: ExperimentListProps) {
},
...diffColumns,
{
title: '创建时间',
dataIndex: 'create_time',
key: 'create_time',
title: '更新时间',
dataIndex: 'update_time',
key: 'update_time',
width: '20%',
render: tableCellRender(true, TableCellValueType.Date),
},


+ 1
- 1
react-ui/src/pages/ModelDeployment/VersionInfo/index.tsx View File

@@ -58,7 +58,7 @@ function ServiceVersionInfo() {
key: ModelDeploymentTabKey.Predict,
label: '预测',
icon: <KFIcon type="icon-yuce" />,
children: <IframePage url={versionInfo?.page_path}></IframePage>,
children: <IframePage url={versionInfo?.page_path} showLoading={false}></IframePage>,
});
}



+ 1
- 1
react-ui/src/pages/Pipeline/Info/index.jsx View File

@@ -110,7 +110,7 @@ const EditPipeline = () => {
// console.log(data);
const errorNode = data.nodes.find((item) => item.formError === true);
if (errorNode) {
message.error(`【${errorNode.label}】节点必填项必须配置`);
message.error(`【${errorNode.label}】节点配置验证失败`);
const graphNode = graph.findById(errorNode.id);
if (graphNode) {
openNodeDrawer(graphNode, true);


+ 28
- 2
react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx View File

@@ -19,6 +19,7 @@ import { openAntdModal } from '@/utils/modal';
import { to } from '@/utils/promise';
import { INode } from '@antv/g6';
import { Button, Drawer, Form, Input, MenuProps } from 'antd';
import { RuleObject } from 'antd/es/form';
import { NamePath } from 'antd/es/form/interface';
import { forwardRef, useImperativeHandle, useState } from 'react';
import PropsLabel from '../PropsLabel';
@@ -309,16 +310,41 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete
);
};

// 模型部署-服务版本验证
const serviceVersionValidator = (_rule: RuleObject, value: any) => {
// 输入参数值都是对象,如果是手动输入,要求 /^[a-zA-Z0-9._-]+$/
if (
typeof value === 'object' &&
value &&
!value.fromSelect &&
value.value &&
!/^[a-zA-Z0-9._-]+$/.test(value.value)
) {
return Promise.reject('服务版本只支持字母、数字、点(.)、下划线(_)、中横线(-)');
}

return Promise.resolve();
};

// 必填项校验规则
const getFormRules = (item: { key: string; value: PipelineNodeModelParameter }) => {
return item.value.require
const id = form.getFieldValue('id') as string;
const rules = item.value.require
? [
{
validator: requiredValidator,
message: '必填项',
},
]
: [];

// 模型部署-服务版本验证
if (id.startsWith('model-deploy') && item.key === '--version') {
rules.push({
validator: serviceVersionValidator,
});
}

return rules;
};

// 控制策略


Loading…
Cancel
Save