Files
shihezi-admin/src/pages/Area/Subway/UpLine/edit.tsx

120 lines
2.8 KiB
TypeScript
Raw Normal View History

2024-12-05 16:32:02 +08:00
import {
ModalForm,
ProForm,
2025-01-20 17:42:05 +08:00
ProFormDigit,
2024-12-05 16:32:02 +08:00
ProFormText,
} from '@ant-design/pro-components';
2025-01-20 17:42:05 +08:00
import { Form } from 'antd';
2024-12-05 16:32:02 +08:00
import {DictOptionType, DictValueEnumObj} from "@/components/DictTag";
2025-01-20 17:42:05 +08:00
import {useEffect} from 'react'
2024-12-05 16:32:02 +08:00
export type ListFormProps = {
2025-01-20 17:42:05 +08:00
onCancel: (flag?: boolean, formVars?: unknown) => void;
onSubmit: (values: API.AreaSubWay.LinePoint) => Promise<void>;
2024-12-05 16:32:02 +08:00
open: boolean;
2025-01-20 17:42:05 +08:00
values?: Partial<API.AreaSubWay.LinePoint>;
2024-12-05 16:32:02 +08:00
jobGroupOptions?: DictOptionType[];
statusOptions?: DictValueEnumObj;
};
const waitTime = (time: number = 100) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(true);
}, time);
});
};
const SubWayEdit: React.FC<ListFormProps> = (props) => {
2025-01-20 17:42:05 +08:00
const [form] = Form.useForm();
useEffect(() => {
form.resetFields();
if(props.values) {
form.setFieldsValue({
stationName: props.values.stationName,
stationId: props.values.stationId,
longitude: props.values.longitude,
latitude: props.values.latitude,
});
}
}, [form, props]);
2024-12-05 16:32:02 +08:00
const handleCancel = () => {
props.onCancel();
form.resetFields();
};
const handleFinish = async (values: Record<string, any>) => {
2025-01-20 17:42:05 +08:00
props.onSubmit(values as API.AreaSubWay.LinePoint);
2024-12-05 16:32:02 +08:00
};
return (
<ModalForm<{
name: string;
company: string;
}>
2025-01-20 17:42:05 +08:00
title={`${props.values ? '编辑' : '新增'}站点`}
2024-12-05 16:32:02 +08:00
form={form}
// layout="inline"
autoFocusFirstInput
open={props.open}
modalProps={{
destroyOnClose: true,
onCancel: () => handleCancel(),
}}
submitTimeout={2000}
onFinish={handleFinish}
>
2025-01-20 17:42:05 +08:00
<ProFormDigit
name="stationId"
label={'字典主键'}
placeholder="请输入字典主键"
disabled
hidden={true}
/>
2024-12-05 16:32:02 +08:00
<ProForm.Group>
<ProFormText
2025-01-20 17:42:05 +08:00
width="md"
name="stationName"
label="站点名称:"
2024-12-05 16:32:02 +08:00
placeholder="请输入名称"
/>
</ProForm.Group>
2025-01-20 17:42:05 +08:00
<ProForm.Group>
<ProFormDigit
label="纬度"
placeholder="请输入纬度"
name="latitude"
width="md"
min={-90}
max={90}
fieldProps={{ controls: false }}
rules={[
{
required: true,
message: "请输入纬度!" ,
},
]}
/>
<ProFormDigit
label="经度"
placeholder="请输入经度"
name="longitude"
width="md"
min={-180}
max={180}
fieldProps={{ controls: false }}
rules={[
{
required: true,
message: "请输入经度!" ,
},
]}
/>
</ProForm.Group>
2024-12-05 16:32:02 +08:00
</ModalForm>
);
};
export default SubWayEdit