import {Connect} from "@cqsjjb/jjb-dva-runtime";
import {Button, Form, message, Modal, Space, Descriptions} from "antd";
import {useEffect, useState} from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import {FORM_ITEM_RENDER_ENUM} from "zy-react-library/enum/formItemRender";
import useTable from "zy-react-library/hooks/useTable";
import {NS_MKMJAREA} from "~/enumerate/namespace";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import DeleteIcon from "zy-react-library/components/Icon/DeleteIcon";
import LocationIcon from "zy-react-library/components/Icon/LocationIcon";
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import Map from "zy-react-library/components/Map";
import MapSelector from "zy-react-library/components/Map/MapSelector";
const AREA_TYPE = [
{name: "人行口门", bianma: "1"},
{name: "车行口门", bianma: "2"},
{name: "综合口门", bianma: "3"},
]
const AREA_STATUS = [
{name: "停用", bianma: "0"},
{name: "正常", bianma: "1"},
{name: "暂时关闭", bianma: "2"},
]
function MkmjArea(props) {
const [addModalVisible, setAddModalVisible] = useState(false);
const [infoModalVisible, setInfoModalVisible] = useState(false);
const [currentId, setCurrentId] = useState("");
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [form] = Form.useForm();
const {tableProps, getData} = useTable(props["mkmjAreaList"], {
form,
params: {
eqAreaLevel: 1,
}
});
return (
},
]}
/>
setSelectedRowKeys(selectedRowKeys),
}}
toolBarRender={() => (
)}
columns={[
{dataIndex: "areaParentName", title: "所属区域"},
{dataIndex: "areaName", title: "口门名称"},
{dataIndex: "areaType", title: "口门类型",render:(_,record)=>{
return record.areaType === 1 ? "人行口门" : record.areaType === 2 ? "车行口门" : "综合口门";
}},
{dataIndex: "location", title: "地理位置",render:(_,record)=>{
return `${record.latitude || ""}--${record.longitude || ""}`;
}},
{dataIndex: "videoNum", title: "视频个数",render:(_,record)=>{
return record.videoNum || 0;
}},
{
title: "操作",
align: "center",
width: 200,
render: (_, record) => (
),
},
]}
{...tableProps}
/>
{
setAddModalVisible(false);
setCurrentId("");
}}
getData={getData}
/>
{
setInfoModalVisible(false);
setCurrentId("");
}}
getData={getData}
/>
);
}
function AddModalComponent(props) {
const [form] = Form.useForm();
useEffect(() => {
if (props.currentId) {
props["mkmjAreaInfo"]({id: props.currentId}).then((res) => {
form.setFieldsValue({...res.data,
areaType: Number(res.data.areaType),
areaStatus: Number(res.data.areaStatus),
});
});
}
}, [props.currentId]);
const onCancel = () => {
form.resetFields();
props.onCancel();
};
const submit = async (values) => {
await props[!props.currentId ? "mkmjAreaAdd" : "mkmjAreaEdit"]({...values, areaLevel:1, id: props.currentId});
onCancel();
props.getData();
};
return (
form.setFieldValue("areaParentName",label)}/>},
{name: "areaParentName", label: "所属区域",onlyForLabel:true},
{name: "areaRange", label: "口门位置"},
{name: "areaStatus", label: "口门状态",render: FORM_ITEM_RENDER_ENUM.SELECT, items: AREA_STATUS},
{key:"map",customizeRender:true,render:}
]}
/>
);
}
function InfoModalComponent(props) {
const [info, setInfo] = useState({});
const [mapVisible, setMapVisible] = useState(false);
useEffect(() => {
if (props.currentId) {
props["mkmjAreaInfo"]({id: props.currentId}).then((res) => {
setInfo(res.data);
});
}
}, [props.currentId]);
return (
关闭}
title="查看"
loading={props.mkmjArea.loading}
>
{
setMapVisible(true);
}}/>, label: "位置"},
]}
/>
setMapVisible(false)}
longitude={info.longitude}
latitude={info.latitude}
disable={true}
/>
);
}
const AddModal = Connect([NS_MKMJAREA], true)(AddModalComponent);
const InfoModal = Connect([NS_MKMJAREA], true)(InfoModalComponent);
export default Connect([NS_MKMJAREA], true)(MkmjArea);