From 0a31ef21da9c4b7fda3a7a712847420f16b8b6df Mon Sep 17 00:00:00 2001 From: ZLY Date: Mon, 10 Nov 2025 16:19:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(component):=20=E5=AE=9E=E7=8E=B0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=8E=A5=E5=8F=A3=E7=9A=84=E5=A2=9E=E5=88=A0=E6=94=B9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../componentList/addApiModal.tsx | 41 +++++++-- .../componentList/addComponentModal.tsx | 84 +++++++++++++++---- 2 files changed, 101 insertions(+), 24 deletions(-) diff --git a/src/pages/componentDevelopment/componentList/addApiModal.tsx b/src/pages/componentDevelopment/componentList/addApiModal.tsx index e5d935a..dfbf255 100644 --- a/src/pages/componentDevelopment/componentList/addApiModal.tsx +++ b/src/pages/componentDevelopment/componentList/addApiModal.tsx @@ -6,7 +6,7 @@ import { updateComponentDesign } from '@/api/componentDevelopProcess'; const FormItem = Form.Item; const TextArea = Input.TextArea; -const AddApiModal = ({ visible, baseInfo, componentDesignProgress, onCancel, onOk }) => { +const AddApiModal = ({ visible, baseInfo, componentDesignProgress, componentDesignData, onUpdateComponentDesign, onCancel, onOk }) => { const [form] = Form.useForm(); const [parametersData, setParametersData] = useState([]); const [responsesData, setResponsesData] = useState([]); @@ -48,20 +48,45 @@ const AddApiModal = ({ visible, baseInfo, componentDesignProgress, onCancel, onO try { await form.validate(); const formData = form.getFields(); + + // 构造要提交的数据 const params = { baseInfo }; - params['operates'] = { - ...formData, - type: 'EVENT', - parameters: parametersData, - responses: responsesData - }; + // 如果是编辑模式且有完整的组件设计数据,需要更新对应的记录 + if (componentDesignProgress && componentDesignData && Array.isArray(componentDesignData)) { + // 更新对应的记录 + const updatedOperates = componentDesignData.map(item => { + if (item.ident === componentDesignProgress.ident) { + // 更新记录 + return { + ...formData, + type: 'EVENT', + parameters: parametersData, + responses: responsesData + }; + } + return item; + }); + + params['operates'] = updatedOperates; + } else { + // 新增模式或没有提供完整数据时,只提交当前表单数据 + params['operates'] = { + ...formData, + type: 'EVENT', + parameters: parametersData, + responses: responsesData + }; + } + const res: any = await updateComponentDesign(params); if (res.code === 200) { - Message.success('新增成功'); + Message.success(componentDesignProgress ? '更新成功' : '新增成功'); + // 调用父组件传递的 onUpdateComponentDesign 回调,用于更新父组件中的数据 + onUpdateComponentDesign && onUpdateComponentDesign(params); } else { Message.error(res.message); diff --git a/src/pages/componentDevelopment/componentList/addComponentModal.tsx b/src/pages/componentDevelopment/componentList/addComponentModal.tsx index 97ebbbd..e028842 100644 --- a/src/pages/componentDevelopment/componentList/addComponentModal.tsx +++ b/src/pages/componentDevelopment/componentList/addComponentModal.tsx @@ -20,7 +20,7 @@ import EditorSection from '@/components/EditorSection'; import AddApiModal from '@/pages/componentDevelopment/componentList/addApiModal'; import { getComponentClassify } from '@/api/componentClassify'; import { compProjectValidate, compSubmit, getTagList } from '@/api/componentBase'; -import { getComponentDesign } from '@/api/componentDevelopProcess'; +import { getComponentDesign, updateComponentDesign } from '@/api/componentDevelopProcess'; const FormItem = Form.Item; const Option = Select.Option; @@ -69,14 +69,63 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => { { title: '操作', dataIndex: 'op', + width: 240, render: (_, record) => ( - + <> + + + ) } ]; @@ -485,10 +534,10 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {

组件接口

}> -