style(map): port MenJin 对接统计接口、点位接口、点位详情弹窗
|
|
@ -40,3 +40,15 @@ export const getFixedCameraVideoList = declareRequest(
|
||||||
"biFullLoading",
|
"biFullLoading",
|
||||||
"Post > @/videopatrol/fixedCamera/getVideoInfoPage",
|
"Post > @/videopatrol/fixedCamera/getVideoInfoPage",
|
||||||
);
|
);
|
||||||
|
export const getPrimeportMkmjScreenList = declareRequest(
|
||||||
|
"biFullLoading",
|
||||||
|
"Post > @/primeport/mkmj/screenList",
|
||||||
|
);
|
||||||
|
export const getPrimeportMkmjGateScreenList = declareRequest(
|
||||||
|
"biFullLoading",
|
||||||
|
"Post > @/primeport/mkmjGate/screenList",
|
||||||
|
);
|
||||||
|
export const getPrimeportVideoScreenList = declareRequest(
|
||||||
|
"biFullLoading",
|
||||||
|
"Post > @/primeport/video/screenList",
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -44,3 +44,15 @@ export const getFixedCameraPlayUrl = declareRequest(
|
||||||
"biFullLoading",
|
"biFullLoading",
|
||||||
"Get > /videopatrol/fixedCamera/getPlayUrl",
|
"Get > /videopatrol/fixedCamera/getPlayUrl",
|
||||||
);
|
);
|
||||||
|
export const firstLevelDoorInfoInfo = declareRequest(
|
||||||
|
"firstLevelDoorInfoLoading",
|
||||||
|
`Get > /primeport/mkmj/{id}`,
|
||||||
|
);
|
||||||
|
export const firstLevelDoorInfoFareGateInfo = declareRequest(
|
||||||
|
"firstLevelDoorInfoFareGateLoading",
|
||||||
|
`Get > /primeport/mkmjGate/{id}`,
|
||||||
|
);
|
||||||
|
export const firstLevelDoorInfoCameraInfo = declareRequest(
|
||||||
|
"firstLevelDoorInfoCameraLoading",
|
||||||
|
`Get > /primeport/video/{id}`,
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -116,3 +116,7 @@ export const getFireBrigadeMemberScreenList = declareRequest(
|
||||||
"getFireBrigadeMemberScreenListLoading",
|
"getFireBrigadeMemberScreenListLoading",
|
||||||
"Post > @/fireAlarm/fireBrigade/member/screen/list",
|
"Post > @/fireAlarm/fireBrigade/member/screen/list",
|
||||||
);
|
);
|
||||||
|
export const getPrimeportMkmjStatistics = declareRequest(
|
||||||
|
"getPrimeportMkmjStatisticsLoading",
|
||||||
|
"Get > /primeport/mkmj/statistics",
|
||||||
|
);
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
|
@ -19,7 +19,9 @@ import pointIco19 from "~/assets/images/map_bi/point/ico19.png";
|
||||||
import pointIco30 from "~/assets/images/map_bi/point/ico30.png";
|
import pointIco30 from "~/assets/images/map_bi/point/ico30.png";
|
||||||
import pointIco31 from "~/assets/images/map_bi/point/ico31.png";
|
import pointIco31 from "~/assets/images/map_bi/point/ico31.png";
|
||||||
import pointIco32 from "~/assets/images/map_bi/point/ico32.png";
|
import pointIco32 from "~/assets/images/map_bi/point/ico32.png";
|
||||||
import pointIco33 from "~/assets/images/map_bi/point/ico33.png";
|
import pointIco34 from "~/assets/images/map_bi/point/ico34.png";
|
||||||
|
import pointIco35 from "~/assets/images/map_bi/point/ico35.png";
|
||||||
|
import pointIco36 from "~/assets/images/map_bi/point/ico36.png";
|
||||||
|
|
||||||
export const branchOfficeUtilsList = [
|
export const branchOfficeUtilsList = [
|
||||||
{
|
{
|
||||||
|
|
@ -93,7 +95,7 @@ export const branchOfficeUtilsList = [
|
||||||
{
|
{
|
||||||
label: "摄像头",
|
label: "摄像头",
|
||||||
check: false,
|
check: false,
|
||||||
type: "camera",
|
type: "dangerCamera",
|
||||||
markIcon: pointIco3,
|
markIcon: pointIco3,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
@ -106,35 +108,45 @@ export const branchOfficeUtilsList = [
|
||||||
label: "口门",
|
label: "口门",
|
||||||
check: false,
|
check: false,
|
||||||
markIcon: pointIco1,
|
markIcon: pointIco1,
|
||||||
type: "car",
|
type: "doorway",
|
||||||
|
request: "getPrimeportMkmjScreenList",
|
||||||
|
titleKey: "mkmjName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "人员",
|
label: "人员",
|
||||||
check: false,
|
check: false,
|
||||||
markIcon: pointIco33,
|
markIcon: pointIco36,
|
||||||
type: "person",
|
type: "person",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "车辆",
|
label: "车辆",
|
||||||
check: false,
|
check: false,
|
||||||
markIcon: pointIco2,
|
markIcon: pointIco34,
|
||||||
type: "car",
|
type: "car",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "人员闸机",
|
label: "人员闸机",
|
||||||
check: false,
|
check: false,
|
||||||
type: "personMachine",
|
markIcon: pointIco35,
|
||||||
|
type: "HGKM_MKMJ_GATE_TYPE_PERSON",
|
||||||
|
request: "getPrimeportMkmjGateScreenList",
|
||||||
|
titleKey: "gateName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "车辆闸机",
|
label: "车辆闸机",
|
||||||
check: false,
|
check: false,
|
||||||
type: "carMachine",
|
markIcon: pointIco2,
|
||||||
|
type: "HGKM_MKMJ_GATE_TYPE_CAR",
|
||||||
|
request: "getPrimeportMkmjGateScreenList",
|
||||||
|
titleKey: "gateName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "摄像头",
|
label: "摄像头",
|
||||||
check: false,
|
check: false,
|
||||||
type: "camera",
|
type: "doorCamera",
|
||||||
markIcon: pointIco3,
|
markIcon: pointIco3,
|
||||||
|
request: "getPrimeportVideoScreenList",
|
||||||
|
titleKey: "videoResourceName",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,10 @@ const dangerWorkTypes = [
|
||||||
"hoisting_work",
|
"hoisting_work",
|
||||||
"blindboard_work",
|
"blindboard_work",
|
||||||
];
|
];
|
||||||
|
const gateTypes = [
|
||||||
|
"HGKM_MKMJ_GATE_TYPE_PERSON",
|
||||||
|
"HGKM_MKMJ_GATE_TYPE_CAR",
|
||||||
|
];
|
||||||
|
|
||||||
const bottomUtilsAnimation = {
|
const bottomUtilsAnimation = {
|
||||||
initial: { y: 100, opacity: 0 },
|
initial: { y: 100, opacity: 0 },
|
||||||
|
|
@ -123,6 +127,9 @@ function BottomUtils(props) {
|
||||||
if (dangerWorkTypes.includes(item1.type)) {
|
if (dangerWorkTypes.includes(item1.type)) {
|
||||||
requestParams.workType = item1.type;
|
requestParams.workType = item1.type;
|
||||||
}
|
}
|
||||||
|
if (gateTypes.includes(item1.type)) {
|
||||||
|
requestParams.gateType = item1.type;
|
||||||
|
}
|
||||||
const { data = [] } = await props[item1.request](requestParams);
|
const { data = [] } = await props[item1.request](requestParams);
|
||||||
pointData = [...data];
|
pointData = [...data];
|
||||||
if (dangerWorkTypes.includes(item1.type)) {
|
if (dangerWorkTypes.includes(item1.type)) {
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,12 @@ import ico28 from "~/assets/images/map_bi/bottom_utils/second/ico28.png";
|
||||||
import ico28On from "~/assets/images/map_bi/bottom_utils/second/ico28_on.png";
|
import ico28On from "~/assets/images/map_bi/bottom_utils/second/ico28_on.png";
|
||||||
import ico29 from "~/assets/images/map_bi/bottom_utils/second/ico29.png";
|
import ico29 from "~/assets/images/map_bi/bottom_utils/second/ico29.png";
|
||||||
import ico29On from "~/assets/images/map_bi/bottom_utils/second/ico29_on.png";
|
import ico29On from "~/assets/images/map_bi/bottom_utils/second/ico29_on.png";
|
||||||
|
import ico30 from "~/assets/images/map_bi/bottom_utils/second/ico30.png";
|
||||||
|
import ico30On from "~/assets/images/map_bi/bottom_utils/second/ico30_on.png";
|
||||||
|
import ico31 from "~/assets/images/map_bi/bottom_utils/second/ico31.png";
|
||||||
|
import ico31On from "~/assets/images/map_bi/bottom_utils/second/ico31_on.png";
|
||||||
|
import ico32 from "~/assets/images/map_bi/bottom_utils/second/ico32.png";
|
||||||
|
import ico32On from "~/assets/images/map_bi/bottom_utils/second/ico32_on.png";
|
||||||
// 地图点位图片资源
|
// 地图点位图片资源
|
||||||
import pointIco1 from "~/assets/images/map_bi/point/ico1.png";
|
import pointIco1 from "~/assets/images/map_bi/point/ico1.png";
|
||||||
import pointIco2 from "~/assets/images/map_bi/point/ico2.png";
|
import pointIco2 from "~/assets/images/map_bi/point/ico2.png";
|
||||||
|
|
@ -83,7 +89,9 @@ import pointIco19 from "~/assets/images/map_bi/point/ico19.png";
|
||||||
import pointIco30 from "~/assets/images/map_bi/point/ico30.png";
|
import pointIco30 from "~/assets/images/map_bi/point/ico30.png";
|
||||||
import pointIco31 from "~/assets/images/map_bi/point/ico31.png";
|
import pointIco31 from "~/assets/images/map_bi/point/ico31.png";
|
||||||
import pointIco32 from "~/assets/images/map_bi/point/ico32.png";
|
import pointIco32 from "~/assets/images/map_bi/point/ico32.png";
|
||||||
import pointIco33 from "~/assets/images/map_bi/point/ico33.png";
|
import pointIco34 from "~/assets/images/map_bi/point/ico34.png";
|
||||||
|
import pointIco35 from "~/assets/images/map_bi/point/ico35.png";
|
||||||
|
import pointIco36 from "~/assets/images/map_bi/point/ico36.png";
|
||||||
|
|
||||||
export const portUtilsList = [
|
export const portUtilsList = [
|
||||||
{
|
{
|
||||||
|
|
@ -98,45 +106,55 @@ export const portUtilsList = [
|
||||||
img: ico1,
|
img: ico1,
|
||||||
checkImg: ico1On,
|
checkImg: ico1On,
|
||||||
markIcon: pointIco1,
|
markIcon: pointIco1,
|
||||||
type: "car",
|
type: "doorway",
|
||||||
|
request: "getPrimeportMkmjScreenList",
|
||||||
|
titleKey: "mkmjName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "人员",
|
label: "人员",
|
||||||
check: false,
|
check: false,
|
||||||
img: ico2,
|
img: ico30,
|
||||||
checkImg: ico2On,
|
checkImg: ico30On,
|
||||||
markIcon: pointIco33,
|
markIcon: pointIco36,
|
||||||
type: "person",
|
type: "person",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "车辆",
|
label: "车辆",
|
||||||
check: false,
|
check: false,
|
||||||
img: ico2,
|
img: ico31,
|
||||||
checkImg: ico2On,
|
checkImg: ico31On,
|
||||||
markIcon: pointIco2,
|
markIcon: pointIco34,
|
||||||
type: "car",
|
type: "car",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "人员闸机",
|
label: "人员闸机",
|
||||||
check: false,
|
check: false,
|
||||||
img: ico1,
|
img: ico32,
|
||||||
checkImg: ico1On,
|
checkImg: ico32On,
|
||||||
type: "personMachine",
|
markIcon: pointIco35,
|
||||||
|
type: "HGKM_MKMJ_GATE_TYPE_PERSON",
|
||||||
|
request: "getPrimeportMkmjGateScreenList",
|
||||||
|
titleKey: "gateName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "车辆闸机",
|
label: "车辆闸机",
|
||||||
check: false,
|
check: false,
|
||||||
img: ico2,
|
img: ico2,
|
||||||
checkImg: ico2On,
|
checkImg: ico2On,
|
||||||
type: "carMachine",
|
markIcon: pointIco2,
|
||||||
|
type: "HGKM_MKMJ_GATE_TYPE_CAR",
|
||||||
|
request: "getPrimeportMkmjGateScreenList",
|
||||||
|
titleKey: "gateName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "摄像头",
|
label: "摄像头",
|
||||||
check: false,
|
check: false,
|
||||||
type: "camera",
|
type: "doorCamera",
|
||||||
img: ico3,
|
img: ico3,
|
||||||
checkImg: ico3On,
|
checkImg: ico3On,
|
||||||
markIcon: pointIco3,
|
markIcon: pointIco3,
|
||||||
|
request: "getPrimeportVideoScreenList",
|
||||||
|
titleKey: "videoResourceName",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
@ -297,7 +315,7 @@ export const portUtilsList = [
|
||||||
{
|
{
|
||||||
label: "摄像头",
|
label: "摄像头",
|
||||||
check: false,
|
check: false,
|
||||||
type: "camera",
|
type: "dangerCamera",
|
||||||
img: ico3,
|
img: ico3,
|
||||||
checkImg: ico3On,
|
checkImg: ico3On,
|
||||||
markIcon: pointIco3,
|
markIcon: pointIco3,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { Descriptions } from "antd";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { NS_BI_MARK_INFO } from "~/enumerate/namespace";
|
||||||
|
|
||||||
|
const DoorCamera = (props) => {
|
||||||
|
const [info, setInfo] = useState({});
|
||||||
|
|
||||||
|
const getData = async () => {
|
||||||
|
const { data } = await props.firstLevelDoorInfoCameraInfo({ id: props.id });
|
||||||
|
setInfo(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Descriptions
|
||||||
|
column={1}
|
||||||
|
bordered
|
||||||
|
items={[
|
||||||
|
{ label: "视频名称", children: info.videoResourceName },
|
||||||
|
{ label: "摄像头编号", children: info.videoResourceCode },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Connect([NS_BI_MARK_INFO], true)(DoorCamera);
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { Descriptions } from "antd";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { getLabelName } from "zy-react-library/utils";
|
||||||
|
import { NS_BI_MARK_INFO } from "~/enumerate/namespace";
|
||||||
|
|
||||||
|
const AREA_STATUS_ENUM = [
|
||||||
|
{ name: "正常", bianma: "2" },
|
||||||
|
{ name: "停用", bianma: "1" },
|
||||||
|
];
|
||||||
|
const Doorway = (props) => {
|
||||||
|
const [info, setInfo] = useState({});
|
||||||
|
|
||||||
|
const getData = async () => {
|
||||||
|
const { data } = await props.firstLevelDoorInfoInfo({ id: props.id });
|
||||||
|
setInfo(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Descriptions
|
||||||
|
column={1}
|
||||||
|
bordered
|
||||||
|
items={[
|
||||||
|
{ label: "所属区域", children: info.hgAuthAreaName },
|
||||||
|
{ label: "口门名称", children: info.mkmjName },
|
||||||
|
{ label: "口门类型", children: info.mkmjTypeName },
|
||||||
|
{ label: "口门位置", children: info.remarks },
|
||||||
|
{ label: "口门状态", children: getLabelName({ list: AREA_STATUS_ENUM, status: info.mkmjStatus }) },
|
||||||
|
{
|
||||||
|
label: "位置",
|
||||||
|
children: (
|
||||||
|
<>
|
||||||
|
<span>{info.longitude}</span>
|
||||||
|
<span>--</span>
|
||||||
|
<span>{info.latitude}</span>
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Connect([NS_BI_MARK_INFO], true)(Doorway);
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { Descriptions } from "antd";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { getLabelName } from "zy-react-library/utils";
|
||||||
|
import { NS_BI_MARK_INFO } from "~/enumerate/namespace";
|
||||||
|
|
||||||
|
const FARE_GATE_STATUS_ENUM = [
|
||||||
|
{ name: "正常", bianma: "2" },
|
||||||
|
{ name: "停用", bianma: "1" },
|
||||||
|
];
|
||||||
|
const Gate = (props) => {
|
||||||
|
const [info, setInfo] = useState({});
|
||||||
|
|
||||||
|
const getData = async () => {
|
||||||
|
const { data } = await props.firstLevelDoorInfoFareGateInfo({ id: props.id });
|
||||||
|
setInfo(data);
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
getData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Descriptions
|
||||||
|
column={1}
|
||||||
|
bordered
|
||||||
|
items={[
|
||||||
|
{ label: "闸机类型", children: info.gateTypeName },
|
||||||
|
{ label: "闸机名称", children: info.gateName },
|
||||||
|
{ label: "闸机类别", children: info.gateCategoryName },
|
||||||
|
{ label: "闸机型号", children: info.gateModel },
|
||||||
|
{ label: "闸机位置", children: info.gatePosition },
|
||||||
|
{
|
||||||
|
label: "地理位置",
|
||||||
|
children: (
|
||||||
|
<>
|
||||||
|
<span>{info.longitude}</span>
|
||||||
|
<span>--</span>
|
||||||
|
<span>{info.latitude}</span>
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{ label: "闸机状态", children: getLabelName({ list: FARE_GATE_STATUS_ENUM, status: info.gateStatus }) },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Connect([NS_BI_MARK_INFO], true)(Gate);
|
||||||
|
|
@ -6,12 +6,15 @@ import BlindBoardWork from "./BlindBoardWork";
|
||||||
import BreakGroundWork from "./BreakgroundWork";
|
import BreakGroundWork from "./BreakgroundWork";
|
||||||
import ConfinedSpaceWork from "./ConfinedSpaceWork";
|
import ConfinedSpaceWork from "./ConfinedSpaceWork";
|
||||||
import CutRoadWork from "./CutRoadWork";
|
import CutRoadWork from "./CutRoadWork";
|
||||||
|
import DoorCamera from "./DoorCamera";
|
||||||
|
import Doorway from "./Doorway";
|
||||||
import ElectricityWork from "./ElectricityWork";
|
import ElectricityWork from "./ElectricityWork";
|
||||||
import FireControlRoom from "./FireControlRoom";
|
import FireControlRoom from "./FireControlRoom";
|
||||||
import FirePointLocation from "./FirePointLocation";
|
import FirePointLocation from "./FirePointLocation";
|
||||||
import FirePumpRoom from "./FirePumpRoom";
|
import FirePumpRoom from "./FirePumpRoom";
|
||||||
import FireRescueTeam from "./FireRescueTeam";
|
import FireRescueTeam from "./FireRescueTeam";
|
||||||
import FireWaterSource from "./FireWaterSource";
|
import FireWaterSource from "./FireWaterSource";
|
||||||
|
import Gate from "./Gate";
|
||||||
import HighWork from "./HighWork";
|
import HighWork from "./HighWork";
|
||||||
import HoistingWork from "./HoistingWork";
|
import HoistingWork from "./HoistingWork";
|
||||||
import HotWork from "./HotWork";
|
import HotWork from "./HotWork";
|
||||||
|
|
@ -26,12 +29,12 @@ const CustomModal = () => {
|
||||||
const markType = modalData.markType?.replace("标记点_", "");
|
const markType = modalData.markType?.replace("标记点_", "");
|
||||||
return {
|
return {
|
||||||
meteorologicalMonitoring: <MeteorologicalMonitoring />, // 气象监测
|
meteorologicalMonitoring: <MeteorologicalMonitoring />, // 气象监测
|
||||||
fireRescueTeam: <FireRescueTeam id={modalData.id} />, // 消防救援队
|
fireRescueTeam: <FireRescueTeam id={modalData.id} />, // 消防管控-消防救援队
|
||||||
fireControlRoom: <FireControlRoom id={modalData.id} />, // 消防控制室
|
fireControlRoom: <FireControlRoom id={modalData.id} />, // 消防管控-消防控制室
|
||||||
firePumpRoom: <FirePumpRoom id={modalData.id} />, // 消防泵房
|
firePumpRoom: <FirePumpRoom id={modalData.id} />, // 消防管控-消防泵房
|
||||||
fireWaterSource: <FireWaterSource id={modalData.id} />, // 消防水源
|
fireWaterSource: <FireWaterSource id={modalData.id} />, // 消防管控-消防水源
|
||||||
firePointLocation: <FirePointLocation id={modalData.id} />, // 消防点位
|
firePointLocation: <FirePointLocation id={modalData.id} />, // 消防管控-消防点位
|
||||||
alarmEquipment: <AlarmEquipment id={modalData.id} />, // 报警设备
|
alarmEquipment: <AlarmEquipment id={modalData.id} />, // 消防管控-报警设备
|
||||||
hot_work: <HotWork id={modalData.id} workId={modalData.workId} />, // 动火作业
|
hot_work: <HotWork id={modalData.id} workId={modalData.workId} />, // 动火作业
|
||||||
confinedspace_work: <ConfinedSpaceWork id={modalData.id} workId={modalData.workId} />, // 受限空间作业
|
confinedspace_work: <ConfinedSpaceWork id={modalData.id} workId={modalData.workId} />, // 受限空间作业
|
||||||
electricity_work: <ElectricityWork id={modalData.id} workId={modalData.workId} />, // 临时用电作业
|
electricity_work: <ElectricityWork id={modalData.id} workId={modalData.workId} />, // 临时用电作业
|
||||||
|
|
@ -40,9 +43,13 @@ const CustomModal = () => {
|
||||||
breakground_work: <BreakGroundWork id={modalData.id} workId={modalData.workId} />, // 动土作业
|
breakground_work: <BreakGroundWork id={modalData.id} workId={modalData.workId} />, // 动土作业
|
||||||
hoisting_work: <HoistingWork id={modalData.id} workId={modalData.workId} />, // 吊装作业
|
hoisting_work: <HoistingWork id={modalData.id} workId={modalData.workId} />, // 吊装作业
|
||||||
blindboard_work: <BlindBoardWork id={modalData.id} workId={modalData.workId} />, // 盲板抽堵作业
|
blindboard_work: <BlindBoardWork id={modalData.id} workId={modalData.workId} />, // 盲板抽堵作业
|
||||||
keyProject: <KeyProject id={modalData.id} />, // 重点工程定位
|
keyProject: <KeyProject id={modalData.id} />, // 重点工程-重点工程定位
|
||||||
video: <VideoPlay cameraNumber={modalData.cameraNumber} />, // 重点工程-视频定位
|
video: <VideoPlay cameraNumber={modalData.cameraNumber} />, // 重点工程-视频定位
|
||||||
platCamera: <VideoPlay cameraNumber={modalData.cameraNumber} />, // 视频巡屏-摄像头
|
platCamera: <VideoPlay cameraNumber={modalData.cameraNumber} />, // 视频巡屏-摄像头
|
||||||
|
doorway: <Doorway id={modalData.id} />, // 门口门禁-口门
|
||||||
|
HGKM_MKMJ_GATE_TYPE_CAR: <Gate id={modalData.id} />, // 门口门禁-车辆闸机
|
||||||
|
HGKM_MKMJ_GATE_TYPE_PERSON: <Gate id={modalData.id} />, // 门口门禁-人员闸机
|
||||||
|
doorCamera: <DoorCamera id={modalData.id} />, // 门口门禁-摄像头
|
||||||
}[markType];
|
}[markType];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,47 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { useContext, useEffect, useState } from "react";
|
||||||
import gateIcon from "~/assets/images/map_bi/content/img7.png";
|
import gateIcon from "~/assets/images/map_bi/content/img7.png";
|
||||||
import barrierIcon from "~/assets/images/map_bi/content/img8.png";
|
import barrierIcon from "~/assets/images/map_bi/content/img8.png";
|
||||||
|
import { NS_BI_STATISTICS } from "~/enumerate/namespace";
|
||||||
import Panel from "~/pages/Container/Map/components/Content/port/Panel";
|
import Panel from "~/pages/Container/Map/components/Content/port/Panel";
|
||||||
|
import { Context } from "~/pages/Container/Map/js/context";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
|
|
||||||
const statistics = [
|
const statistics = [
|
||||||
{ image: gateIcon, gateCount: 0, vehicleGateCount: 0, peopleGateCount: 0 },
|
{ areaType: "QHD_GQ_DGQ", image: gateIcon, gateCount: 0, vehicleGateCount: 0, peopleGateCount: 0 },
|
||||||
{ image: barrierIcon, gateCount: 0, vehicleGateCount: 0, peopleGateCount: 0 },
|
{ areaType: "QHD_GQ_XGQ", image: barrierIcon, gateCount: 0, vehicleGateCount: 0, peopleGateCount: 0 },
|
||||||
];
|
];
|
||||||
|
|
||||||
/** 展示口门、车辆闸机和人员闸机的基础统计。 */
|
/** 展示口门、车辆闸机和人员闸机的基础统计。 */
|
||||||
function GateStatsPanel() {
|
function GateStatsPanel(props) {
|
||||||
|
const { portArea } = useContext(Context);
|
||||||
|
|
||||||
|
const [data, setData] = useState(statistics);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const loadData = async () => {
|
||||||
|
const { data = [] } = await props.getPrimeportMkmjStatistics({ portArea });
|
||||||
|
|
||||||
|
// 根据固定区域模板重新生成状态,避免直接修改 React 保存的上一轮统计数据。
|
||||||
|
setData(statistics.map((item) => {
|
||||||
|
const currentStatistics = data.find(statisticsItem => statisticsItem.areaType === item.areaType) || {};
|
||||||
|
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
gateCount: currentStatistics.mkmjCount || 0,
|
||||||
|
vehicleGateCount: currentStatistics.carPassageCount || 0,
|
||||||
|
peopleGateCount: currentStatistics.personPassageCount || 0,
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
loadData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Panel title="口门统计">
|
<Panel title="口门统计">
|
||||||
<div className="port-gate-stats__options">
|
<div className="port-gate-stats__options">
|
||||||
{statistics.map((item, index) => (
|
{data.map((item, index) => (
|
||||||
<div key={index} className="port-gate-stats__option">
|
<div key={index} className="port-gate-stats__option">
|
||||||
<img src={item.image} className="port-gate-stats__image" alt="" />
|
<img src={item.image} className="port-gate-stats__image" alt="" />
|
||||||
<div className="port-gate-stats__info">
|
<div className="port-gate-stats__info">
|
||||||
|
|
@ -37,4 +65,4 @@ function GateStatsPanel() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default GateStatsPanel;
|
export default Connect([NS_BI_STATISTICS], true)(GateStatsPanel);
|
||||||
|
|
|
||||||