feat(componentDeployment): 添加实例编辑功能
parent
7bb321ffb4
commit
693abee9a3
@ -0,0 +1,97 @@
|
|||||||
|
import React, { useEffect } from 'react';
|
||||||
|
import { Modal, Form, Input, Upload, Button } from '@arco-design/web-react';
|
||||||
|
import styles from './style/editInstanceModal.module.less';
|
||||||
|
|
||||||
|
const FormItem = Form.Item;
|
||||||
|
const { TextArea } = Input;
|
||||||
|
|
||||||
|
interface EditInstanceModalProps {
|
||||||
|
visible: boolean;
|
||||||
|
instanceData: any;
|
||||||
|
onCancel: () => void;
|
||||||
|
onOk: (values: any) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const EditInstanceModal: React.FC<EditInstanceModalProps> = ({
|
||||||
|
visible,
|
||||||
|
instanceData,
|
||||||
|
onCancel,
|
||||||
|
onOk
|
||||||
|
}) => {
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
|
||||||
|
// 当 instanceData 变化时,更新表单数据
|
||||||
|
useEffect(() => {
|
||||||
|
if (instanceData && visible) {
|
||||||
|
form.setFieldsValue({
|
||||||
|
name: instanceData.name || '',
|
||||||
|
desc: instanceData.desc || ''
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [instanceData, visible, form]);
|
||||||
|
|
||||||
|
// 处理确定
|
||||||
|
const handleOk = async () => {
|
||||||
|
try {
|
||||||
|
const values = await form.validate();
|
||||||
|
onOk(values);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('表单验证失败:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 处理取消
|
||||||
|
const handleCancel = () => {
|
||||||
|
form.resetFields();
|
||||||
|
onCancel();
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
title="编辑实例信息"
|
||||||
|
visible={visible}
|
||||||
|
onCancel={handleCancel}
|
||||||
|
onOk={handleOk}
|
||||||
|
style={{ width: 600 }}
|
||||||
|
>
|
||||||
|
<Form
|
||||||
|
form={form}
|
||||||
|
layout="vertical"
|
||||||
|
autoComplete="off"
|
||||||
|
>
|
||||||
|
<FormItem
|
||||||
|
label="实例名称:"
|
||||||
|
field="name"
|
||||||
|
rules={[{ required: true, message: '请输入实例名称' }]}
|
||||||
|
>
|
||||||
|
<Input placeholder="请输入实例名称" />
|
||||||
|
</FormItem>
|
||||||
|
|
||||||
|
<FormItem
|
||||||
|
label="实例描述:"
|
||||||
|
field="desc"
|
||||||
|
>
|
||||||
|
<TextArea
|
||||||
|
placeholder="请输入实例描述"
|
||||||
|
autoSize={{ minRows: 3, maxRows: 6 }}
|
||||||
|
/>
|
||||||
|
</FormItem>
|
||||||
|
|
||||||
|
{/*<FormItem label="图标:">*/}
|
||||||
|
{/* <div className={styles['upload-wrapper']}>*/}
|
||||||
|
{/* <Upload*/}
|
||||||
|
{/* accept="image/*"*/}
|
||||||
|
{/* showUploadList={false}*/}
|
||||||
|
{/* >*/}
|
||||||
|
{/* <div className={styles['upload-area']}>*/}
|
||||||
|
{/* <div className={styles['upload-icon']}>+</div>*/}
|
||||||
|
{/* </div>*/}
|
||||||
|
{/* </Upload>*/}
|
||||||
|
{/* </div>*/}
|
||||||
|
{/*</FormItem>*/}
|
||||||
|
</Form>
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default EditInstanceModal;
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
.upload-wrapper {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-area {
|
||||||
|
width: 180px;
|
||||||
|
height: 180px;
|
||||||
|
border: 1px dashed var(--color-border-2);
|
||||||
|
border-radius: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
border-color: rgb(var(--primary-6));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-icon {
|
||||||
|
font-size: 48px;
|
||||||
|
color: var(--color-text-3);
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue