import React, { useEffect, useState } from 'react'; import { Modal, message, Input, Form, Select } from 'antd'; import { request } from '@/utils/http'; import config from '@/utils/config'; const { Option } = Select; const EditScriptNameModal = ({ handleCancel, treeData, visible, }: { visible: boolean; treeData: any[]; handleCancel: (file?: { filename: string; path: string; key: string; }) => void; }) => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [dirs, setDirs] = useState([]); const handleOk = async (values: any) => { setLoading(true); values.path = values.path || ''; request .post(`${config.apiPrefix}scripts`, { data: { filename: values.filename, path: values.path, content: '' }, }) .then(({ code, data }) => { if (code === 200) { message.success('保存文件成功'); handleCancel({ filename: values.filename, path: values.path, key: `${values.path}-${values.filename}`, }); } else { message.error(data); } setLoading(false); }) .finally(() => setLoading(false)); }; useEffect(() => { form.resetFields(); const originDirs = treeData.filter((x) => x.disabled); setDirs([{ key: '' }, ...originDirs]); }, [visible]); return ( { form .validateFields() .then((values) => { handleOk(values); }) .catch((info) => { console.log('Validate Failed:', info); }); }} onCancel={() => handleCancel()} confirmLoading={loading} >
0 ? dirs[0].key : ''} >
); }; export default EditScriptNameModal;