zcloud-gbs-emergencyRescue-.../src/pages/Container/Enterprise/EmergencyResource/EmergencyShelter/Add/index.js

80 lines
3.0 KiB
JavaScript
Raw Normal View History

2026-04-03 17:35:22 +08:00
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { message } from "antd";
import { useEffect, useState } from "react";
import AreaCascader from "zy-react-library/components/Cascader/Area";
import FormBuilder from "zy-react-library/components/FormBuilder";
import Map from "zy-react-library/components/Map";
import Page from "zy-react-library/components/Page";
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { PHONE, TEL_PHONE } from "zy-react-library/regular";
import { NS_EMERGENCY_SHELTER, NS_GLOBAL } from "~/enumerate/namespace";
function Add(props) {
const query = useGetUrlQuery();
const [form] = FormBuilder.useForm();
const [corpInfoList, setCorpInfoList] = useState([]);
const getData = async () => {
if (!query.id)
return;
const { data } = await props["emergencyShelterInfo"]({ id: query.id });
form.setFieldsValue(data);
};
const getCorpInfoList = async () => {
const { data } = await props["corpInfoListAll"]({ enterpriseType: 2 });
setCorpInfoList(data);
};
useEffect(() => {
getData();
getCorpInfoList();
}, []);
const onSubmit = async (values) => {
const { success } = await props[query.id ? "emergencyShelterUpdate" : "emergencyShelterAdd"]({
...values,
id: query.id,
});
if (success) {
message.success(query.id ? "编辑成功" : "新增成功");
props.history.goBack();
}
};
return (
<Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
<FormBuilder
loading={props.emergencyShelter.emergencyShelterLoading}
options={[
{ name: "todo", label: "避难所名称" },
{ name: "todo", label: "场所类型", render: (<DictionarySelect dictValue="emergencyShelterType" />) },
{ name: "todo", label: "详情地址", required: false, span: 24 },
{ key: "map", customizeRender: true, span: 24, render: (<Map />) },
{ name: "todo", label: "联系人" },
{ name: "todo", label: "联系人固定电话", rules: [{ pattern: TEL_PHONE, message: "请输入正确的电话号码" }] },
{ name: "todo", label: "联系人移动电话", required: false, rules: [{ pattern: PHONE, message: "请输入正确的手机号" }] },
{ name: "todo", label: "企业名称", required: false },
{ name: "todo", label: "所属区域", render: (<AreaCascader />), required: false },
{
name: "todo",
label: "所属单位",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: corpInfoList,
itemsField: { labelKey: "corpName", valueKey: "id" },
required: false,
},
]}
form={form}
onFinish={onSubmit}
/>
</Page>
);
}
export default Connect([NS_EMERGENCY_SHELTER, NS_GLOBAL], true)(Add);