refactor(map): dataZoom 支持自定义大小、部分接口添加分页参数、branchOffice 首页对接接口
parent
7135162699
commit
bf11b180f3
|
|
@ -112,3 +112,7 @@ export const getSensorDeviceFireSituation = declareRequest(
|
||||||
"getSensorDeviceFireSituationLoading",
|
"getSensorDeviceFireSituationLoading",
|
||||||
"Post > @/iotalarm/sensorDevice/fireSituation",
|
"Post > @/iotalarm/sensorDevice/fireSituation",
|
||||||
);
|
);
|
||||||
|
export const getFireBrigadeList = declareRequest(
|
||||||
|
"getFireBrigadeListLoading",
|
||||||
|
"Post > @/fireAlarm/fireBrigade/list",
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ function RectificationPanel(props) {
|
||||||
const loadList = async () => {
|
const loadList = async () => {
|
||||||
const { data = [] } = await props.getHiddenStatisticsByCorp({
|
const { data = [] } = await props.getHiddenStatisticsByCorp({
|
||||||
pageIndex: 1,
|
pageIndex: 1,
|
||||||
pageSize: 999,
|
pageSize: 9999,
|
||||||
});
|
});
|
||||||
setList(data);
|
setList(data);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,10 @@ function WeatherPanel(props) {
|
||||||
alertTitle: result.alerts?.[0]?.title || "当前暂无气象预警",
|
alertTitle: result.alerts?.[0]?.title || "当前暂无气象预警",
|
||||||
});
|
});
|
||||||
|
|
||||||
const { data = [] } = await props.getEventReportListUnfinished();
|
const { data = [] } = await props.getEventReportListUnfinished({
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
});
|
||||||
setEmergencyList(data);
|
setEmergencyList(data);
|
||||||
};
|
};
|
||||||
loadData();
|
loadData();
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,10 @@ function AlarmPanel(props) {
|
||||||
const [list, setList] = useState([]);
|
const [list, setList] = useState([]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const loadList = async () => {
|
const loadList = async () => {
|
||||||
const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage();
|
const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage({
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
});
|
||||||
setList(data);
|
setList(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,10 @@ function PartnerPanel(props) {
|
||||||
const [list, setList] = useState([]);
|
const [list, setList] = useState([]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const loadList = async () => {
|
const loadList = async () => {
|
||||||
const { data = [] } = await props.getXgfStatisticsListCorpStatistics();
|
const { data = [] } = await props.getXgfStatisticsListCorpStatistics({
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
});
|
||||||
setList(data);
|
setList(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,15 @@ export const initEcharts1 = (mainRef, chartInstance, data) => {
|
||||||
itemHeight: 10,
|
itemHeight: 10,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,15 @@ export const initEcharts1 = (mainRef, chartInstance, data) => {
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,15 @@ export const initEcharts1 = (mainRef, chartInstance, data) => {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,27 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
import { useMount } from "ahooks";
|
import { useMount } from "ahooks";
|
||||||
import { useRef, useState } from "react";
|
import { Spin } from "antd";
|
||||||
|
import { useContext, useEffect, useRef, useState } from "react";
|
||||||
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
|
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
|
||||||
import bg4 from "~/assets/images/map_bi/content/bg4.png";
|
import bg4 from "~/assets/images/map_bi/content/bg4.png";
|
||||||
import bg5 from "~/assets/images/map_bi/content/bg5.png";
|
import bg5 from "~/assets/images/map_bi/content/bg5.png";
|
||||||
|
import { NS_BI_STATISTICS } from "~/enumerate/namespace";
|
||||||
import Title from "~/pages/Container/Map/components/Content/branchOffice/Title";
|
import Title from "~/pages/Container/Map/components/Content/branchOffice/Title";
|
||||||
|
import { Context } from "~/pages/Container/Map/js/context";
|
||||||
import { initEcharts1 } from "./echarts";
|
import { initEcharts1 } from "./echarts";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
|
|
||||||
function IndexRight() {
|
function IndexRight(props) {
|
||||||
|
const { portArea, currentBranchOffice } = useContext(Context);
|
||||||
|
|
||||||
const [block1List, setBlock1List] = useState([
|
const [block1List, setBlock1List] = useState([
|
||||||
{ title: "口门进出统计", label1: "人数", label2: "车数", count1: 123, count2: 123, bgImg: bg4 },
|
{ title: "口门进出统计", label1: "人数", label2: "车数", count1: 123, count2: 123, bgImg: bg4 },
|
||||||
{ title: "进入申请待审批", label1: "人数", label2: "车数", count1: 123, count2: 123, bgImg: bg4 },
|
{ title: "进入申请待审批", label1: "人数", label2: "车数", count1: 123, count2: 123, bgImg: bg4 },
|
||||||
{ title: "封闭区域人员情况", label1: "区域数", label2: "人数", count1: 123, count2: 123, bgImg: bg5 },
|
{ title: "封闭区域人员情况", label1: "区域数", label2: "人数", count1: 123, count2: 123, bgImg: bg5 },
|
||||||
{ title: "封闭区域作业情况", label1: "区域数", label2: "作业数", count1: 123, count2: 123, bgImg: bg5 },
|
{ title: "封闭区域作业情况", label1: "区域数", label2: "作业数", count1: 123, count2: 123, bgImg: bg5 },
|
||||||
]);
|
]);
|
||||||
const [block3List, setBlock3List] = useState([
|
const [block3List, setBlock3List] = useState([]);
|
||||||
{ name: "A区", requiredDevices: "入侵检测", anchoredDevices: "2024-01-01 10:00:00", status: "1" },
|
const [block4List, setBlock4List] = useState([]);
|
||||||
{ name: "B区", requiredDevices: "烟雾报警", anchoredDevices: "2024-01-01 10:05:00", status: "2" },
|
|
||||||
{ name: "C区", requiredDevices: "温度异常", anchoredDevices: "2024-01-01 10:10:00", status: "1" },
|
|
||||||
{ name: "D区", requiredDevices: "门禁异常", anchoredDevices: "2024-01-01 10:15:00", status: "2" },
|
|
||||||
{ name: "E区", requiredDevices: "视频遮挡", anchoredDevices: "2024-01-01 10:20:00", status: "1" },
|
|
||||||
{ name: "F区", requiredDevices: "入侵检测", anchoredDevices: "2024-01-01 10:25:00", status: "2" },
|
|
||||||
{ name: "G区", requiredDevices: "紧急按钮", anchoredDevices: "2024-01-01 10:30:00", status: "1" },
|
|
||||||
{ name: "H区", requiredDevices: "烟雾报警", anchoredDevices: "2024-01-01 10:35:00", status: "2" },
|
|
||||||
{ name: "I区", requiredDevices: "温度异常", anchoredDevices: "2024-01-01 10:40:00", status: "1" },
|
|
||||||
{ name: "J区", requiredDevices: "门禁异常", anchoredDevices: "2024-01-01 10:45:00", status: "2" },
|
|
||||||
]);
|
|
||||||
const [block4List, setBlock4List] = useState([
|
|
||||||
{ department: "技术部", threeOrMoreWork: 12, dangerousWork: 8, newWork: 5 },
|
|
||||||
{ department: "生产部", threeOrMoreWork: 15, dangerousWork: 10, newWork: 3 },
|
|
||||||
{ department: "安全部", threeOrMoreWork: 5, dangerousWork: 12, newWork: 2 },
|
|
||||||
{ department: "质检部", threeOrMoreWork: 8, dangerousWork: 6, newWork: 4 },
|
|
||||||
{ department: "设备部", threeOrMoreWork: 10, dangerousWork: 15, newWork: 7 },
|
|
||||||
{ department: "维修部", threeOrMoreWork: 18, dangerousWork: 9, newWork: 6 },
|
|
||||||
{ department: "仓储部", threeOrMoreWork: 7, dangerousWork: 5, newWork: 3 },
|
|
||||||
{ department: "物流部", threeOrMoreWork: 9, dangerousWork: 4, newWork: 2 },
|
|
||||||
{ department: "人事部", threeOrMoreWork: 3, dangerousWork: 2, newWork: 1 },
|
|
||||||
{ department: "财务部", threeOrMoreWork: 2, dangerousWork: 1, newWork: 0 },
|
|
||||||
]);
|
|
||||||
|
|
||||||
const chartInstance = useRef(null);
|
const chartInstance = useRef(null);
|
||||||
const main1Ref = useRef(null);
|
const main1Ref = useRef(null);
|
||||||
|
|
@ -64,6 +48,57 @@ function IndexRight() {
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const getAlarmRecordScreenIotDeviceAlarmPage = async () => {
|
||||||
|
const { data } = await props.getAlarmRecordScreenIotDeviceAlarmPage({
|
||||||
|
portArea,
|
||||||
|
corpinfoId: currentBranchOffice,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
});
|
||||||
|
setBlock3List(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
const getBlock4List = async () => {
|
||||||
|
const [{ data: eightWorkData = [] }, { data: keyProjectData = [] }]
|
||||||
|
= await Promise.all([
|
||||||
|
props.getEightWorkInfoScreenDepartmentStatistics({
|
||||||
|
portArea,
|
||||||
|
corpinfoId: currentBranchOffice,
|
||||||
|
}),
|
||||||
|
props.getKeyProjectLargeScreenDepartmentStatistics({
|
||||||
|
portArea,
|
||||||
|
corpinfoId: currentBranchOffice,
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
const departmentMap = new Map(
|
||||||
|
keyProjectData.map(item => [
|
||||||
|
item.departmentId,
|
||||||
|
{
|
||||||
|
departmentName: item.departmentName,
|
||||||
|
fourNewHomeworkCount: item.fourNewHomeworkCount,
|
||||||
|
eightWorkCount: 0,
|
||||||
|
morePeopleCount: item.morePeopleCount,
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
);
|
||||||
|
eightWorkData.forEach((item) => {
|
||||||
|
const department = departmentMap.get(item.departmentId) || {
|
||||||
|
departmentName: item.departmentName,
|
||||||
|
fourNewHomeworkCount: 0,
|
||||||
|
eightWorkCount: 0,
|
||||||
|
morePeopleCount: 0,
|
||||||
|
};
|
||||||
|
department.eightWorkCount = item.workCount || 0;
|
||||||
|
departmentMap.set(item.departmentId, department);
|
||||||
|
});
|
||||||
|
setBlock4List([...departmentMap.values()]);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getAlarmRecordScreenIotDeviceAlarmPage();
|
||||||
|
getBlock4List();
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="branch_office_index_right">
|
<div className="branch_office_index_right">
|
||||||
<div className="block1">
|
<div className="block1">
|
||||||
|
|
@ -109,19 +144,18 @@ function IndexRight() {
|
||||||
<div className="td">处置状态</div>
|
<div className="td">处置状态</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="scroll">
|
<div className="scroll">
|
||||||
|
<Spin spinning={props.biStatistics.getAlarmRecordScreenIotDeviceAlarmPageLoading}>
|
||||||
<SeamlessScroll list={block3List} step={0.5}>
|
<SeamlessScroll list={block3List} step={0.5}>
|
||||||
{block3List.map((item, index) => (
|
{block3List.map((item, index) => (
|
||||||
<div key={index} className="tr">
|
<div key={index} className="tr">
|
||||||
<div className="td">{item.name}</div>
|
<div className="td">{item.fireRegionName}</div>
|
||||||
<div className="td">{item.requiredDevices}</div>
|
<div className="td">{item.alarmTypeName}</div>
|
||||||
<div className="td">{item.anchoredDevices}</div>
|
<div className="td">{item.alarmTime}</div>
|
||||||
<div className="td" style={{ color: item.status === "1" ? "#f18308" : "#60b321" }}>
|
<div className="td">{{ 10: "报警中", 20: "未处置", 30: "已消警" }[item.status]}</div>
|
||||||
{item.status === "1" && "待处置"}
|
|
||||||
{item.status === "2" && "已处置"}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</SeamlessScroll>
|
</SeamlessScroll>
|
||||||
|
</Spin>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -137,16 +171,18 @@ function IndexRight() {
|
||||||
<div className="td">四新作业数</div>
|
<div className="td">四新作业数</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="scroll">
|
<div className="scroll">
|
||||||
|
<Spin spinning={props.biStatistics.getKeyProjectLargeScreenDepartmentStatisticsLoading || props.biStatistics.getEightWorkInfoScreenDepartmentStatisticsLoading}>
|
||||||
<SeamlessScroll list={block4List} step={0.5}>
|
<SeamlessScroll list={block4List} step={0.5}>
|
||||||
{block4List.map((item, index) => (
|
{block4List.map((item, index) => (
|
||||||
<div key={index} className="tr">
|
<div key={index} className="tr">
|
||||||
<div className="td">{item.department}</div>
|
<div className="td">{item.departmentName}</div>
|
||||||
<div className="td">{item.threeOrMoreWork}</div>
|
<div className="td">{item.morePeopleCount}</div>
|
||||||
<div className="td">{item.dangerousWork}</div>
|
<div className="td">{item.eightWorkCount}</div>
|
||||||
<div className="td">{item.newWork}</div>
|
<div className="td">{item.fourNewHomeworkCount}</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</SeamlessScroll>
|
</SeamlessScroll>
|
||||||
|
</Spin>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -155,4 +191,4 @@ function IndexRight() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default IndexRight;
|
export default Connect([NS_BI_STATISTICS], true)(IndexRight);
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,15 @@ export const initEcharts1 = (mainRef, chartInstance, data) => {
|
||||||
itemHeight: 10,
|
itemHeight: 10,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,15 @@ export const initEcharts2 = (mainRef, chartInstance, data) => {
|
||||||
itemHeight: 10,
|
itemHeight: 10,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ function FireAlarmRecordPanel(props) {
|
||||||
const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage({
|
const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage({
|
||||||
portArea,
|
portArea,
|
||||||
corpinfoId: currentBranchOffice,
|
corpinfoId: currentBranchOffice,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
});
|
});
|
||||||
setRecords(data);
|
setRecords(data);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ function FireDeviceStatusPanel(props) {
|
||||||
portArea,
|
portArea,
|
||||||
corpinfoId: currentBranchOffice,
|
corpinfoId: currentBranchOffice,
|
||||||
});
|
});
|
||||||
// 接口以 totalCount 返回总量,statusList 中 bianma 用于匹配状态颜色。
|
|
||||||
setStatistics({
|
setStatistics({
|
||||||
totalCount: data.totalCount || 0,
|
totalCount: data.totalCount || 0,
|
||||||
statusList: data.statusList || [],
|
statusList: data.statusList || [],
|
||||||
|
|
@ -48,7 +47,7 @@ function FireDeviceStatusPanel(props) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="branch-office-fire-device-status__list">
|
<div className="branch-office-fire-device-status__list">
|
||||||
{statistics.statusList.map((item) => (
|
{statistics.statusList.map(item => (
|
||||||
<div
|
<div
|
||||||
className={`branch-office-fire-device-status__item branch-office-fire-device-status__item--${item.bianma.toLocaleLowerCase()}`}
|
className={`branch-office-fire-device-status__item branch-office-fire-device-status__item--${item.bianma.toLocaleLowerCase()}`}
|
||||||
key={item.bianma}
|
key={item.bianma}
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ function FirePumpRoomPanel() {
|
||||||
<Panel
|
<Panel
|
||||||
title="消防泵房状态"
|
title="消防泵房状态"
|
||||||
className="branch-office-fire__pump-room"
|
className="branch-office-fire__pump-room"
|
||||||
extra={
|
extra={(
|
||||||
<div className="branch-office-fire-pump-room__tabs">
|
<div className="branch-office-fire-pump-room__tabs">
|
||||||
{tabs.map((item, index) => (
|
{tabs.map((item, index) => (
|
||||||
<div
|
<div
|
||||||
|
|
@ -87,7 +87,7 @@ function FirePumpRoomPanel() {
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
}
|
)}
|
||||||
>
|
>
|
||||||
<div className="branch-office-fire-pump-room__content">
|
<div className="branch-office-fire-pump-room__content">
|
||||||
<div className="branch-office-fire-pump-room__table">
|
<div className="branch-office-fire-pump-room__table">
|
||||||
|
|
|
||||||
|
|
@ -1,72 +1,30 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { Spin } from "antd";
|
||||||
|
import { useContext, useEffect, useState } from "react";
|
||||||
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
|
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
|
||||||
|
import { NS_BI_STATISTICS } from "~/enumerate/namespace";
|
||||||
import Panel from "~/pages/Container/Map/components/Content/branchOffice/Panel";
|
import Panel from "~/pages/Container/Map/components/Content/branchOffice/Panel";
|
||||||
|
import { Context } from "~/pages/Container/Map/js/context";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
|
|
||||||
const records = [
|
|
||||||
{
|
|
||||||
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",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
/** 负责展示企业志愿消防队伍本地信息。 */
|
/** 负责展示企业志愿消防队伍本地信息。 */
|
||||||
function VolunteerFireTeamPanel() {
|
function VolunteerFireTeamPanel(props) {
|
||||||
|
const { portArea, currentBranchOffice } = useContext(Context);
|
||||||
|
const [records, setRecords] = useState([]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const loadRecords = async () => {
|
||||||
|
const { data = [] } = await props.getFireBrigadeList({
|
||||||
|
portArea,
|
||||||
|
corpId: currentBranchOffice,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
});
|
||||||
|
setRecords(data);
|
||||||
|
};
|
||||||
|
loadRecords();
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Panel
|
<Panel
|
||||||
title="企业志愿消防队伍"
|
title="企业志愿消防队伍"
|
||||||
|
|
@ -76,24 +34,24 @@ function VolunteerFireTeamPanel() {
|
||||||
<div className="branch-office-volunteer-fire-team__table">
|
<div className="branch-office-volunteer-fire-team__table">
|
||||||
<div className="branch-office-volunteer-fire-team__row">
|
<div className="branch-office-volunteer-fire-team__row">
|
||||||
<div>姓名</div>
|
<div>姓名</div>
|
||||||
<div>年龄</div>
|
|
||||||
<div>所属部门</div>
|
<div>所属部门</div>
|
||||||
<div>手机号</div>
|
<div>手机号</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="branch-office-volunteer-fire-team__body">
|
<div className="branch-office-volunteer-fire-team__body">
|
||||||
|
<Spin spinning={props.biStatistics.getFireBrigadeListLoading}>
|
||||||
<SeamlessScroll list={records} step={0.5}>
|
<SeamlessScroll list={records} step={0.5}>
|
||||||
{records.map((item, index) => (
|
{records.map((item, index) => (
|
||||||
<div
|
<div
|
||||||
className="branch-office-volunteer-fire-team__row"
|
className="branch-office-volunteer-fire-team__row"
|
||||||
key={index}
|
key={index}
|
||||||
>
|
>
|
||||||
<div>{item.leader}</div>
|
<div>{item.name}</div>
|
||||||
<div>{item.age}</div>
|
<div>{item.org}</div>
|
||||||
<div>{item.teamName}</div>
|
<div>{item.dutyPhone}</div>
|
||||||
<div>{item.phone}</div>
|
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</SeamlessScroll>
|
</SeamlessScroll>
|
||||||
|
</Spin>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -101,4 +59,4 @@ function VolunteerFireTeamPanel() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default VolunteerFireTeamPanel;
|
export default Connect([NS_BI_STATISTICS], true)(VolunteerFireTeamPanel);
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
.branch-office-volunteer-fire-team__row {
|
.branch-office-volunteer-fire-team__row {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
background-color: rgba(17, 51, 112, 0.8);
|
background-color: rgba(17, 51, 112, 0.8);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,8 @@ function ContractProjectPanel(props) {
|
||||||
const { data = [] } = await props.getProjectContractProjectStatistics({
|
const { data = [] } = await props.getProjectContractProjectStatistics({
|
||||||
portArea,
|
portArea,
|
||||||
corpinfoId: currentBranchOffice,
|
corpinfoId: currentBranchOffice,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
});
|
});
|
||||||
initEcharts(chartRef, chartInstance, data);
|
initEcharts(chartRef, chartInstance, data);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,8 @@ function MobileMonitoringPanel(props) {
|
||||||
const { data = [] } = await props.getFixedCameraVideoInfoPage({
|
const { data = [] } = await props.getFixedCameraVideoInfoPage({
|
||||||
portArea,
|
portArea,
|
||||||
corpinfoId: currentBranchOffice,
|
corpinfoId: currentBranchOffice,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
});
|
});
|
||||||
if (data.length) {
|
if (data.length) {
|
||||||
loadPlayUrl(data[Math.floor(randoms(0, data.length - 1))].cameraNumber);
|
loadPlayUrl(data[Math.floor(randoms(0, data.length - 1))].cameraNumber);
|
||||||
|
|
@ -41,14 +43,16 @@ function MobileMonitoringPanel(props) {
|
||||||
>
|
>
|
||||||
<Spin
|
<Spin
|
||||||
spinning={
|
spinning={
|
||||||
props.biStatistics.getFixedCameraVideoInfoPageLoading ||
|
props.biStatistics.getFixedCameraVideoInfoPageLoading
|
||||||
props.biStatistics.getFixedCameraPlayUrlLoading
|
|| props.biStatistics.getFixedCameraPlayUrlLoading
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<div className="branch-office-mobile-monitoring__content">
|
<div className="branch-office-mobile-monitoring__content">
|
||||||
{playUrl ? (
|
{playUrl
|
||||||
|
? (
|
||||||
<AliPlayer source={playUrl} height="150px" isLive />
|
<AliPlayer source={playUrl} height="150px" isLive />
|
||||||
) : (
|
)
|
||||||
|
: (
|
||||||
<div className="index-info-video-patrol__empty">暂无视频</div>
|
<div className="index-info-video-patrol__empty">暂无视频</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,15 @@ function EntryExitTrendPanel() {
|
||||||
itemHeight: 10,
|
itemHeight: 10,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ function PersonnelStatsPanel(props) {
|
||||||
const { data = [] } = await props.getCorpInfoCorpUserStatisticPage({
|
const { data = [] } = await props.getCorpInfoCorpUserStatisticPage({
|
||||||
portArea,
|
portArea,
|
||||||
enterpriseType,
|
enterpriseType,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 9999,
|
||||||
});
|
});
|
||||||
setStatistics(data);
|
setStatistics(data);
|
||||||
setIsVisible(true);
|
setIsVisible(true);
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,15 @@ function EntryExitTrendPanel() {
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
|
|
@ -444,6 +444,15 @@ export const initEcharts2 = (mainRef, chartInstance, data) => {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
@ -837,6 +846,15 @@ export const initEcharts5 = (mainRef, chartInstance, data) => {
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: "inside",
|
||||||
|
xAxisIndex: 0,
|
||||||
|
start: 0,
|
||||||
|
end: 50,
|
||||||
|
zoomOnMouseWheel: "shift",
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
moveOnMouseMove: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "slider",
|
type: "slider",
|
||||||
height: 6,
|
height: 6,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue