// EditTrip Component - Edit trip information import { apiUpdateTrip } from '@/services/slave/sgw/TripController'; import { ModalForm, ProCard, ProForm, ProFormDatePicker, ProFormDependency, ProFormList, ProFormSelect, ProFormText, } from '@ant-design/pro-components'; import { useModel } from '@umijs/max'; import { Form, message, Typography } from 'antd'; import dayjs from 'dayjs'; import timezone from 'dayjs/plugin/timezone'; import utc from 'dayjs/plugin/utc'; import { useEffect } from 'react'; dayjs.extend(utc); dayjs.extend(timezone); interface EditTripProps { id: string; ship_id?: string; record?: SgwModel.Trip; open: boolean; onOpenChange: (open: boolean) => void; onSuccess?: () => void; } const EditTrip: React.FC = ({ id, ship_id, record, open, onOpenChange, onSuccess, }) => { const [form] = Form.useForm(); const { homeports, getHomeportsByProvinceCode } = useModel( 'slave.sgw.useHomePorts', ); useEffect(() => { getHomeportsByProvinceCode(); }, [getHomeportsByProvinceCode]); console.log('record', record); useEffect(() => { if (record && open) { form.setFieldsValue({ ...record, ship_id, departure_port_id: record.departure_port_id, arrival_port_id: record.arrival_port_id, }); } }, [record, open, ship_id, form]); return ( { try { if (!values.departure_port_id) { message.error('Vui lòng chọn cảng khởi hành!'); return false; } if (!values.arrival_port_id) { message.error('Vui lòng chọn cảng cập bến!'); return false; } console.log('Form values on submit:', values); const params = { name: values.name, departure_time: dayjs(values.departure_time).utc().format(), departure_port_id: values.departure_port_id, arrival_time: dayjs(values.arrival_time).utc().format(), arrival_port_id: values.arrival_port_id, fishing_ground_codes: Array.isArray(values.fishing_ground_codes) ? values.fishing_ground_codes .map((code: string | number) => Number(code)) .filter((n: number) => !isNaN(n)) : [], fishing_gears: values.fishing_gears, trip_cost: values.trip_cost, }; await apiUpdateTrip(id, params); message.success('Cập nhật chuyến đi thành công'); onSuccess?.(); return true; } catch (e) { console.error(e); message.error('Cập nhật thất bại'); return false; } }} layout="horizontal" > {/* Bên trái: Ngư cụ + chi phí */} {/* Danh sách ngư cụ */} {() => (
Tên Số lượng
)}
{/* Danh sách chi phí */} {() => (
Loại Số lượng Đơn vị Chi phí Tổng chi phí
)}
{/* Bên phải: Thông tin chuyến đi */} ({ label: p.name, value: p.id })) : [] } rules={[ { required: true, message: 'Vui lòng chọn cảng khởi hành' }, ]} showSearch /> ({ label: p.name, value: p.id })) : [] } rules={[ { required: true, message: 'Vui lòng chọn cảng cập bến' }, ]} showSearch />
); }; export default EditTrip;