From 08a1d4610205f8d6fcccb93402b0c9a7a7c17dc0 Mon Sep 17 00:00:00 2001 From: zhaowei Date: Fri, 20 Jun 2025 15:51:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E9=9B=86=20&=20?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=8F=AF=E4=BB=A5=E7=BC=96=E8=BE=91=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/EditVersionModal/index.tsx | 121 ++++++++++++++++++ .../Dataset/components/ResourceInfo/index.tsx | 21 +++ react-ui/src/pages/Dataset/config.tsx | 5 + react-ui/src/services/dataset/index.js | 17 +++ 4 files changed, 164 insertions(+) create mode 100644 react-ui/src/pages/Dataset/components/EditVersionModal/index.tsx diff --git a/react-ui/src/pages/Dataset/components/EditVersionModal/index.tsx b/react-ui/src/pages/Dataset/components/EditVersionModal/index.tsx new file mode 100644 index 00000000..f17bf404 --- /dev/null +++ b/react-ui/src/pages/Dataset/components/EditVersionModal/index.tsx @@ -0,0 +1,121 @@ +import KFModal from '@/components/KFModal'; +import { DataSource, ResourceData, ResourceType, resourceConfig } from '@/pages/Dataset/config'; +import { to } from '@/utils/promise'; +import { Form, Input, message, type ModalProps } from 'antd'; + +interface EditVersionModalProps extends Omit { + resourceType: ResourceType; + resourceVersion: ResourceData; + onOk: () => void; +} + +function EditVersionModal({ resourceType, resourceVersion, onOk, ...rest }: EditVersionModalProps) { + const config = resourceConfig[resourceType]; + const { name: resoureName, version, version_desc } = resourceVersion; + + // 修改请求 + const editDatasetVersion = async (params: any) => { + const request = config.editVersion; + const [res] = await to(request(params)); + if (res) { + message.success('编辑成功'); + onOk?.(); + } + }; + + // 提交 + const onFinish = (formData: any) => { + const params = { + ...resourceVersion, + ...formData, + [config.sourceParamKey]: DataSource.Create, + }; + editDatasetVersion(params); + }; + + const name = config.name; + + return ( + +
+ + + + { + if (value === 'master') { + return Promise.reject(`${name}版本不能为 master`); + } else if (value === 'origin') { + return Promise.reject(`${name}版本不能为 origin`); + } + return Promise.resolve(); + }, + }, + ]} + > + + + + + +
+
+ ); +} + +export default EditVersionModal; diff --git a/react-ui/src/pages/Dataset/components/ResourceInfo/index.tsx b/react-ui/src/pages/Dataset/components/ResourceInfo/index.tsx index 2f162f9b..dd5d2ff3 100644 --- a/react-ui/src/pages/Dataset/components/ResourceInfo/index.tsx +++ b/react-ui/src/pages/Dataset/components/ResourceInfo/index.tsx @@ -23,6 +23,7 @@ import { App, Button, Flex, Select, Tabs } from 'antd'; import classNames from 'classnames'; import { useCallback, useEffect, useState } from 'react'; import AddVersionModal from '../AddVersionModal'; +import EditVersionModal from '../EditVersionModal'; import ResourceIntro from '../ResourceIntro'; import ResourceVersion from '../ResourceVersion'; import VersionCompareModal from '../VersionCompareModal'; @@ -132,6 +133,18 @@ const ResourceInfo = ({ resourceType }: ResourceInfoProps) => { }); }; + // 版本编辑 + const showEditVersionModal = () => { + const { close } = openAntdModal(EditVersionModal, { + resourceType: resourceType, + resourceVersion: info, + onOk: () => { + getResourceDetail(); + close(); + }, + }); + }; + // 选择版本 const showVersionSelector = () => { const { close } = openAntdModal(VersionSelectorModal, { @@ -291,6 +304,14 @@ const ResourceInfo = ({ resourceType }: ResourceInfoProps) => { +