diff --git a/src/assets/images/map_bi/content/ico19.png b/src/assets/images/map_bi/content/ico19.png
new file mode 100644
index 0000000..ac67f00
Binary files /dev/null and b/src/assets/images/map_bi/content/ico19.png differ
diff --git a/src/assets/images/map_bi/content/ico20.png b/src/assets/images/map_bi/content/ico20.png
new file mode 100644
index 0000000..314d5f3
Binary files /dev/null and b/src/assets/images/map_bi/content/ico20.png differ
diff --git a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/index.less b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/index.less
index 311c8fb..7ea05e7 100644
--- a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/index.less
+++ b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/index.less
@@ -140,7 +140,7 @@
.tr {
margin-top: 5px;
display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr;
+ grid-template-columns: repeat(4, 1fr);
background-color: rgba(17, 51, 112, 0.8);
.td {
diff --git a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/index.js b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/index.js
new file mode 100644
index 0000000..b958b19
--- /dev/null
+++ b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/index.js
@@ -0,0 +1,189 @@
+import { useState } from "react";
+import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
+import icon1 from "~/assets/images/map_bi/content/ico19.png";
+import icon2 from "~/assets/images/map_bi/content/ico20.png";
+import Title from "~/pages/Container/Map/components/Content/branchOffice/Title";
+import "./index.less";
+
+const block2OptionsNavList = ["消防水罐", "消防泵", "消防管线"];
+function XiaoFang() {
+ const [block1List, setBlock1List] = useState([
+ { title: "火灾监测装置", count1: 34, count2: 12, count3: 15, icon: icon1 },
+ { title: "消防设备", count1: 34, count2: 12, count3: 15, icon: icon2 },
+ ]);
+ const [block2Index, setBlock2Index] = useState(0);
+ const [block2List, setBlock2List] = useState([
+ { pumpRoomName: "一号消防泵房", liquidLevel: 2.5, waterPressure: 0.45, status: 1 },
+ { pumpRoomName: "二号消防泵房", liquidLevel: 1.8, waterPressure: 0.38, status: 1 },
+ { pumpRoomName: "三号消防泵房", liquidLevel: 3.2, waterPressure: 0.52, status: 1 },
+ { pumpRoomName: "四号消防泵房", liquidLevel: 0.5, waterPressure: 0.25, status: 2 },
+ { pumpRoomName: "五号消防泵房", liquidLevel: 2.8, waterPressure: 0.48, status: 1 },
+ { pumpRoomName: "六号消防泵房", liquidLevel: 1.2, waterPressure: 0.32, status: 3 },
+ { pumpRoomName: "七号消防泵房", liquidLevel: 3.5, waterPressure: 0.55, status: 1 },
+ { pumpRoomName: "八号消防泵房", liquidLevel: 2.1, waterPressure: 0.42, status: 1 },
+ { pumpRoomName: "九号消防泵房", liquidLevel: 0.8, waterPressure: 0.28, status: 2 },
+ { pumpRoomName: "十号消防泵房", liquidLevel: 2.9, waterPressure: 0.50, status: 1 },
+ ]);
+ const [block3List, setBlock3List] = useState([
+ { alarmDevice: "火灾探测器", alarmTime: "2024-01-01 10:00:00", alarmArea: "A区", status: 1, disposalStatus: 1 },
+ { alarmDevice: "烟雾传感器", alarmTime: "2024-01-01 10:05:00", alarmArea: "B区", status: 2, disposalStatus: 2 },
+ { alarmDevice: "温度传感器", alarmTime: "2024-01-01 10:10:00", alarmArea: "C区", status: 1, disposalStatus: 1 },
+ { alarmDevice: "火焰探测器", alarmTime: "2024-01-01 10:15:00", alarmArea: "D区", status: 2, disposalStatus: 3 },
+ { alarmDevice: "手动报警按钮", alarmTime: "2024-01-01 10:20:00", alarmArea: "E区", status: 1, disposalStatus: 2 },
+ { alarmDevice: "可燃气体探测器", alarmTime: "2024-01-01 10:25:00", alarmArea: "F区", status: 2, disposalStatus: 1 },
+ { alarmDevice: "红外火焰探测器", alarmTime: "2024-01-01 10:30:00", alarmArea: "G区", status: 1, disposalStatus: 3 },
+ { alarmDevice: "光电感烟探测器", alarmTime: "2024-01-01 10:35:00", alarmArea: "H区", status: 2, disposalStatus: 2 },
+ { alarmDevice: "差定温火灾探测器", alarmTime: "2024-01-01 10:40:00", alarmArea: "I区", status: 1, disposalStatus: 1 },
+ { alarmDevice: "缆式线型感温探测器", alarmTime: "2024-01-01 10:45:00", alarmArea: "J区", status: 2, disposalStatus: 3 },
+ ]);
+ const [block4List, setBlock4List] = useState([
+ { teamName: "第一志愿消防队", age: 43, leader: "张队长", phone: "13800138001" },
+ { teamName: "第二志愿消防队", age: 55, leader: "李队长", phone: "13800138002" },
+ { teamName: "第三志愿消防队", age: 23, leader: "王队长", phone: "13800138003" },
+ { teamName: "第四志愿消防队", age: 54, leader: "赵队长", phone: "13800138004" },
+ { teamName: "第五志愿消防队", age: 65, leader: "刘队长", phone: "13800138005" },
+ { teamName: "第六志愿消防队", age: 34, leader: "陈队长", phone: "13800138006" },
+ { teamName: "第七志愿消防队", age: 24, leader: "杨队长", phone: "13800138007" },
+ { teamName: "第八志愿消防队", age: 52, leader: "黄队长", phone: "13800138008" },
+ { teamName: "第九志愿消防队", age: 23, leader: "周队长", phone: "13800138009" },
+ { teamName: "第十志愿消防队", age: 35, leader: "吴队长", phone: "13800138010" },
+ ]);
+
+ const block2OptionsClick = (index) => {
+ if (index === block2Index)
+ return;
+ setBlock2Index(index);
+ };
+
+ return (
+
+
+
+
+
+ {block1List.map((item, index) => (
+
+
{item.title}
+
+

+
+
+
+ 设备总数:
+ {item.count1}
+
+
+ 设备在线数:
+ {item.count2}
+
+
+ 设备离线数:
+ {item.count3}
+
+
+
+ ))}
+
+
+
+
+
+ {block2OptionsNavList.map((item, index) => (
+ block2OptionsClick(index)}
+ >
+ {item}
+
+ ))}
+
+ )}
+ />
+
+
+
+
泵房名称
+
液位(米)
+
水压(mpa)
+
状态
+
+
+
+ {block2List.map((item, index) => (
+
+
{item.pumpRoomName}
+
{item.liquidLevel}
+
{`${item.waterPressure}MPa`}
+
+ {item.status === 1 ? "正常" : item.status === 2 ? "异常" : "维护中"}
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
报警设备
+
报警时间
+
报警区域
+
状态
+
处置状态
+
+
+
+ {block3List.map((item, index) => (
+
+
{item.alarmDevice}
+
{item.alarmTime}
+
{item.alarmArea}
+
{item.status ? "在线" : "离线"}
+
+ {item.disposalStatus === 1 ? "待确认" : item.disposalStatus === 2 ? "误报" : "已消除"}
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+ {block4List.map((item, index) => (
+
+
{item.leader}
+
{item.age}
+
{item.teamName}
+
{item.phone}
+
+ ))}
+
+
+
+
+
+
+ );
+}
+
+export default XiaoFang;
diff --git a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/index.less b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/index.less
new file mode 100644
index 0000000..6f8aaf3
--- /dev/null
+++ b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/index.less
@@ -0,0 +1,179 @@
+.branch_office_xiaofang {
+ .block1 {
+ background-color: rgba(12, 28, 88, 0.4);
+
+ .options {
+ padding: 10px 15px;
+ border: 1px solid;
+ border-image: linear-gradient(to bottom,
+ rgba(58, 122, 149, 0),
+ rgba(58, 122, 149, 1)) 1;
+ border-top: none;
+
+ .items {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .item {
+ flex: 1;
+ color: #fff;
+
+ .title {
+ font-weight: bold;
+ font-size: 14px;
+ text-align: center;
+ }
+
+ .img {
+ margin-top: 5px;
+ margin-bottom: 10px;
+ text-align: center;
+
+ img {
+ width: 65px;
+ height: 45px;
+ }
+ }
+
+ .info {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 5px 15px;
+ font-size: 12px;
+ }
+ }
+ }
+ }
+ }
+
+ .block2 {
+ background-color: rgba(12, 28, 88, 0.4);
+ margin-top: 10px;
+
+ .tabs {
+ display: flex;
+
+ .tab {
+ background-color: rgba(36, 115, 239, 0.27);
+ padding: 2px 6px;
+ border-radius: 2px;
+ color: #fff;
+ font-size: 12px;
+ border: 1px solid #5d718c;
+ cursor: pointer;
+
+ &.active {
+ background-color: #2473ef;
+ border: 1px solid #2473ef;
+ }
+ }
+ }
+
+ .options {
+ padding: 10px 15px;
+ border: 1px solid;
+ border-image: linear-gradient(to bottom,
+ rgba(58, 122, 149, 0),
+ rgba(58, 122, 149, 1)) 1;
+ border-top: none;
+
+ .table {
+ margin-top: 5px;
+
+ .scroll {
+ height: 155px;
+ overflow-y: hidden;
+ }
+
+ .tr {
+ margin-top: 5px;
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ background-color: rgba(17, 51, 112, 0.8);
+
+ .td {
+ text-align: center;
+ font-size: 12px;
+ color: #fff;
+ padding: 5px;
+ }
+ }
+ }
+ }
+ }
+
+ .block3 {
+ background-color: rgba(12, 28, 88, 0.4);
+ margin-top: 10px;
+
+ .options {
+ padding: 10px 15px;
+ border: 1px solid;
+ border-image: linear-gradient(to bottom,
+ rgba(58, 122, 149, 0),
+ rgba(58, 122, 149, 1)) 1;
+ border-top: none;
+
+ .table {
+ margin-top: 5px;
+
+ .scroll {
+ height: 155px;
+ overflow-y: hidden;
+ }
+
+ .tr {
+ margin-top: 5px;
+ display: grid;
+ grid-template-columns: 1.5fr 2fr 1fr 1fr 1fr;
+ background-color: rgba(17, 51, 112, 0.8);
+
+ .td {
+ text-align: center;
+ font-size: 12px;
+ color: #fff;
+ padding: 5px;
+ }
+ }
+ }
+ }
+ }
+
+ .block4 {
+ background-color: rgba(12, 28, 88, 0.4);
+ margin-top: 10px;
+
+ .options {
+ padding: 10px 15px;
+ border: 1px solid;
+ border-image: linear-gradient(to bottom,
+ rgba(58, 122, 149, 0),
+ rgba(58, 122, 149, 1)) 1;
+ border-top: none;
+
+ .table {
+ margin-top: 5px;
+
+ .scroll {
+ height: 155px;
+ overflow-y: hidden;
+ }
+
+ .tr {
+ margin-top: 5px;
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ background-color: rgba(17, 51, 112, 0.8);
+
+ .td {
+ text-align: center;
+ font-size: 12px;
+ color: #fff;
+ padding: 5px;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/pages/Container/Map/components/Content/index.js b/src/pages/Container/Map/components/Content/index.js
index f6e0061..df7cd0e 100644
--- a/src/pages/Container/Map/components/Content/index.js
+++ b/src/pages/Container/Map/components/Content/index.js
@@ -9,6 +9,7 @@ import BranchOfficeIndexLeft from "~/pages/Container/Map/components/Content/bran
import BranchOfficeIndexRight from "~/pages/Container/Map/components/Content/branchOffice/IndexRight";
import BranchMenJin from "~/pages/Container/Map/components/Content/branchOffice/MenJin";
import BranchWeiXian from "~/pages/Container/Map/components/Content/branchOffice/WeiXian";
+import BranchXiaoFang from "~/pages/Container/Map/components/Content/branchOffice/XiaoFang";
import IndexInfo from "~/pages/Container/Map/components/Content/IndexInfo";
import PortFengBi from "~/pages/Container/Map/components/Content/port/FengBi";
import PortIndex from "~/pages/Container/Map/components/Content/port/Index";
@@ -55,6 +56,8 @@ function Content() {
return ;
if (bottomUtilsCurrentType === "door")
return ;
+ if (bottomUtilsCurrentType === "fire")
+ return ;
};
const renderBranchOfficeContentRight = () => {