From dbe87198b25a315f618dc2fe6fb332c15547477c Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Wed, 29 Jul 2026 11:35:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor(map):=207=E6=9C=8828=E6=97=A5=E9=9C=80?= =?UTF-8?q?=E6=B1=82=E4=BF=AE=E6=94=B9=20=E5=AF=B9=E6=8E=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/biStatistics/index.js | 24 +++++++++ .../LeftPanel/WorkStatusPanel/index.js | 6 +-- .../IndexInfo/RightPanel/WorkPanel/index.js | 4 +- .../FengBi/ClosedAreaStatsPanel/index.js | 4 +- .../FengBi/EntryExitTrendPanel/index.js | 6 +-- .../DepartmentResponsibilityPanel/index.js | 6 +-- .../IndexLeft/RiskHazardPanel/index.js | 4 +- .../IndexLeft/WeatherPreventionPanel/index.js | 38 +++++++++----- .../GateAndClosedAreaPanel/index.js | 4 +- .../IndexRight/KeyWorkStatsPanel/index.js | 15 ++---- .../IndexRight/KeyWorkStatsPanel/index.less | 2 +- .../MenJin/ClosedAreaStatsPanel/index.js | 4 +- .../MenJin/EntryExitTrendPanel/index.js | 6 +-- .../RenYuan/AlarmTypeChartPanel/index.js | 6 +-- .../RenYuan/ClosedAreaPersonnelPanel/index.js | 6 +-- .../WeiXian/DepartmentWorkPanel/index.js | 13 ++--- .../WeiXian/KeyWorkPanel/index.js | 42 ++++++++------- .../WeiXian/KeyWorkStatsPanel/index.js | 25 ++++----- .../WeiXian/KeyWorkStatsPanel/index.less | 10 ++-- .../FireInspectionRecordPanel/index.js | 52 +++++++++++-------- .../ZhongDian/ContractProjectPanel/index.js | 6 +-- .../ZhongDian/ProjectStatsPanel/index.js | 4 +- .../port/FengBi/ClosedAreaStatsPanel/index.js | 4 +- .../port/FengBi/EntryExitRecordPanel/index.js | 4 +- .../port/FengBi/EntryExitTrendPanel/index.js | 6 +-- .../port/Index/BasicInfoPanel/index.js | 4 +- .../port/Index/PersonnelStatsPanel/index.js | 2 +- .../port/MenJin/EntryExitTrendPanel/index.js | 6 +-- .../port/MenJin/GateRecordPanel/index.js | 2 +- .../port/QiXiang/DeviceDetailPanel/index.js | 2 +- .../port/QiXiang/DeviceStatusPanel/index.js | 4 +- .../port/QiXiang/WeatherDataPanel/index.js | 4 +- .../port/RenYuan/LocationInfoPanel/index.js | 4 +- .../RenYuan/OnlineLocationInfoPanel/index.js | 4 +- .../port/WeiXian/WorkStatusPanel/index.js | 4 +- .../port/WeiXian/WorkTrendPanel/index.js | 6 +-- .../port/ZhongDian/KeyProjectPanel/index.js | 4 +- .../ZhongDian/VideoLocationPanel/index.js | 4 +- src/pages/Container/Map/index.js | 5 ++ 39 files changed, 202 insertions(+), 154 deletions(-) diff --git a/src/api/biStatistics/index.js b/src/api/biStatistics/index.js index ca9e08d..0632679 100644 --- a/src/api/biStatistics/index.js +++ b/src/api/biStatistics/index.js @@ -164,3 +164,27 @@ export const getPersonLocationCompanyOnlineStat = declareRequest( "getPersonLocationCompanyOnlineStatLoading", "Post > @/personnelPosition/bi/personLocation/companyOnlineStat", ); +export const getPersonStatistics = declareRequest( + "getPersonStatisticsLoading", + "Post > @/xgfManager/project/personStatistics", +); +export const getScreenWorkStatusStatistics = declareRequest( + "getScreenWorkStatusStatisticsLoading", + "Post > @/eightwork/eightworkInfo/screenWorkStatusStatistics", +); +export const getScreenWorkPieStatistics = declareRequest( + "getScreenWorkPieStatisticsLoading", + "Post > @/eightwork/eightworkInfo/screenWorkPieStatistics", +); +export const getScreenXgfStatistics = declareRequest( + "getScreenXgfStatisticsLoading", + "Post > @/keyProject/keyProject/largeScreenXgfStatistics", +); +export const getScreenWorkPage = declareRequest( + "getScreenWorkPageLoading", + "Post > @/eightwork/eightworkInfo/screenWorkPage", +); +export const getScreenFireCheckList = declareRequest( + "getScreenFireCheckListLoading", + "Post > @/fireCheck/fireCheckList/screen/list", +); diff --git a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WorkStatusPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WorkStatusPanel/index.js index 8e7e05e..9fe38ac 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WorkStatusPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WorkStatusPanel/index.js @@ -11,8 +11,8 @@ import "./index.less"; function WorkStatusPanel(props) { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (main1Ref, chartInstance, data) => { - chartInstance.current = echarts.init(main1Ref.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const domainTypeName = data.map(item => item.domainTypeName); const scoredCount = data.map(item => item.scoredCount); @@ -138,7 +138,7 @@ function WorkStatusPanel(props) { useMount(() => { const loadData = async () => { const { data } = await props.getProjectTaskScoreCount(); - initEcharts(chartRef, chartInstance, data || []); + initEcharts(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/WorkPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/WorkPanel/index.js index 8bc632d..7a75ac9 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/WorkPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/WorkPanel/index.js @@ -58,8 +58,8 @@ function WorkPanel(props) { spinning={props.biStatistics.getEightWorkInfoDangerWorkStatisticsLoading || props.biStatistics.getKeyProjectLargeScreenStatisticsLoading} >
- {data.map(item => ( -
+ {data.map((item, index) => ( +
{item.name} diff --git a/src/pages/Container/Map/components/Content/branchOffice/FengBi/ClosedAreaStatsPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/FengBi/ClosedAreaStatsPanel/index.js index 65f04eb..b66b7a1 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/FengBi/ClosedAreaStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/FengBi/ClosedAreaStatsPanel/index.js @@ -15,10 +15,10 @@ function ClosedAreaStatsPanel() { return (
- {statistics.map(item => ( + {statistics.map((item, index) => (
diff --git a/src/pages/Container/Map/components/Content/branchOffice/FengBi/EntryExitTrendPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/FengBi/EntryExitTrendPanel/index.js index 8c1d5be..9138cd0 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/FengBi/EntryExitTrendPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/FengBi/EntryExitTrendPanel/index.js @@ -24,8 +24,8 @@ function EntryExitTrendPanel() { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const inData = data.map(item => Number.parseInt(item.IN)); const outData = data.map(item => Number.parseInt(item.OUT)); @@ -164,7 +164,7 @@ function EntryExitTrendPanel() { }; useMount(() => { - initEcharts(chartRef, chartInstance, records); + initEcharts(records); return () => { if (chartInstance.current) { diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/DepartmentResponsibilityPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/DepartmentResponsibilityPanel/index.js index e571dfe..50092d1 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/DepartmentResponsibilityPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/DepartmentResponsibilityPanel/index.js @@ -15,8 +15,8 @@ function DepartmentResponsibilityPanel(props) { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const option = { color: ["#7d4449", "#009944", "#167ce4", "#00ffff"], @@ -143,7 +143,7 @@ function DepartmentResponsibilityPanel(props) { useMount(() => { const loadData = async () => { const { data } = await props.getDepartmentDuty({ portArea, corpinfoId: currentBranchOffice }); - initEcharts(chartRef, chartInstance, data); + initEcharts(data); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/RiskHazardPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/RiskHazardPanel/index.js index 7706734..aa94ae5 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/RiskHazardPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/RiskHazardPanel/index.js @@ -32,12 +32,12 @@ function RiskHazardPanel(props) {
- {data.map((item) => { + {data.map((item, index) => { const color = levelColor[item.level]; return (
{ const loadData = async () => { - const { result = {} } = await props.getWeather(); + const [{ result }, { data }] = await Promise.all([ + await props.getWeather(), + await props.getPersonStatistics({ portArea, corpinfoId: currentBranchOffice }), + ]); setWeather(result.now || {}); setAlerts(Array.isArray(result.alerts) ? result.alerts : []); + setData(statistics.map(item => ({ ...item, value: (data || {})[item.key] || 0 }))); }; loadData(); }, []); return ( - -
+
+
@@ -80,9 +88,11 @@ function WeatherPreventionPanel(props) { :
当前暂无气象预警
}
- -
- + + + + +
); } @@ -105,11 +115,11 @@ function WeatherMetric({ icon, label, value }) { } /** 天气预防区块内的部门及相关方统计块。 */ -function Statistics() { +function Statistics({ data }) { return (
- {statistics.map(item => ( -
+ {data.map((item, index) => ( +
{item.label}
{item.value}
diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/GateAndClosedAreaPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/GateAndClosedAreaPanel/index.js index 12256f6..b2ed7a0 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/GateAndClosedAreaPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/GateAndClosedAreaPanel/index.js @@ -43,10 +43,10 @@ function GateAndClosedAreaPanel() { return (
- {records.map(item => ( + {records.map((item, index) => (
diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.js index 6be4b34..1d23dda 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.js @@ -14,7 +14,7 @@ function KeyWorkStatsPanel(props) { useEffect(() => { const loadData = async () => { - const { data } = await props.getKeyProjectLargeScreenDepartmentStatistics({ + const { data } = await props.getScreenXgfStatistics({ portArea, corpinfoId: currentBranchOffice, }); @@ -31,29 +31,22 @@ function KeyWorkStatsPanel(props) {
-
部门名称
+
相关方名称
三人以上作业数
夜间作业数
-
其他作业数
四新作业数
- + {data.map((item, index) => (
-
{item.departmentName}
+
{item.xgfCorpinfoName}
{item.morePeopleCount}
{item.nightWorkCount}
-
{item.otherWorkCount}
{item.fourNewHomeworkCount}
))} diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.less b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.less index c1e2a5b..0d2c255 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.less +++ b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/KeyWorkStatsPanel/index.less @@ -17,7 +17,7 @@ .branch-office-key-work-stats__row { display: grid; - grid-template-columns: 1fr 1.5fr 1fr 1fr 1fr; + grid-template-columns: repeat(4, 1fr); margin-top: 5px; background-color: rgba(17, 51, 112, 0.8); } diff --git a/src/pages/Container/Map/components/Content/branchOffice/MenJin/ClosedAreaStatsPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/MenJin/ClosedAreaStatsPanel/index.js index 24dbd2a..3ea118b 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/MenJin/ClosedAreaStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/MenJin/ClosedAreaStatsPanel/index.js @@ -42,8 +42,8 @@ function ClosedAreaStatsPanel(props) {
- {data.map(item => ( -
+ {data.map((item, index) => ( +
diff --git a/src/pages/Container/Map/components/Content/branchOffice/MenJin/EntryExitTrendPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/MenJin/EntryExitTrendPanel/index.js index 98cfc93..574be9f 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/MenJin/EntryExitTrendPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/MenJin/EntryExitTrendPanel/index.js @@ -24,8 +24,8 @@ function EntryExitTrendPanel() { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const inData = data.map(item => Number.parseInt(item.IN)); const outData = data.map(item => Number.parseInt(item.OUT)); @@ -164,7 +164,7 @@ function EntryExitTrendPanel() { }; useMount(() => { - initEcharts(chartRef, chartInstance, records); + initEcharts(records); return () => { if (chartInstance.current) { diff --git a/src/pages/Container/Map/components/Content/branchOffice/RenYuan/AlarmTypeChartPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/RenYuan/AlarmTypeChartPanel/index.js index 6be5eaa..07d7759 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/RenYuan/AlarmTypeChartPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/RenYuan/AlarmTypeChartPanel/index.js @@ -15,8 +15,8 @@ function AlarmTypeChartPanel(props) { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const option = { tooltip: { @@ -49,7 +49,7 @@ function AlarmTypeChartPanel(props) { useMount(() => { const loadData = async () => { const { data } = await props.getAlarmType({ portArea, corpinfoId: currentBranchOffice }); - initEcharts(chartRef, chartInstance, data || []); + initEcharts(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/branchOffice/RenYuan/ClosedAreaPersonnelPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/RenYuan/ClosedAreaPersonnelPanel/index.js index 1cd4675..e051438 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/RenYuan/ClosedAreaPersonnelPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/RenYuan/ClosedAreaPersonnelPanel/index.js @@ -15,8 +15,8 @@ function ClosedAreaPersonnelPanel(props) { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const unitPersonnelData = data.map(item => Number.parseInt(item.unitCount)); const relatedPartyPersonnelData = data.map(item => Number.parseInt(item.relatedCount)); @@ -157,7 +157,7 @@ function ClosedAreaPersonnelPanel(props) { useMount(() => { const loadData = async () => { const { data } = await props.getPersonStat({ portArea, corpinfoId: currentBranchOffice }); - initEcharts(chartRef, chartInstance, data || []); + initEcharts(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DepartmentWorkPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DepartmentWorkPanel/index.js index cc88699..c85d8a2 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DepartmentWorkPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DepartmentWorkPanel/index.js @@ -11,12 +11,15 @@ import "./index.less"; function DepartmentWorkPanel(props) { const { portArea, currentBranchOffice } = useContext(Context); const [data, setData] = useState([]); + useEffect(() => { const loadData = async () => { - + const { data } = await props.getScreenWorkPage({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999 }); + setData(data); }; loadData(); }, []); + return ( 作业状态
- + {data.map((item, index) => (
{item.departmentName}
-
{item.fourNewHomeworkCount}
-
{item.eightWorkCount}
+
{item.workTypeName}
+
{item.currentStep}
))}
diff --git a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkPanel/index.js index 18f9a12..289f9e5 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkPanel/index.js @@ -1,27 +1,20 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Spin } from "antd"; import * as echarts from "echarts"; -import { useEffect, useRef } from "react"; +import { useContext, useEffect, useRef } from "react"; import { NS_BI_STATISTICS } from "~/enumerate/namespace"; import Panel from "~/pages/Container/Map/components/Content/branchOffice/Panel"; +import { Context } from "~/pages/Container/Map/js/context"; import "./index.less"; -const records = [ - { name: "动火作业", archivedCount: 24, workingCount: 6, approvalCount: 3 }, - { name: "受限空间", archivedCount: 18, workingCount: 4, approvalCount: 2 }, - { name: "高处作业", archivedCount: 32, workingCount: 8, approvalCount: 5 }, - { name: "吊装作业", archivedCount: 16, workingCount: 3, approvalCount: 1 }, - { name: "临时用电", archivedCount: 27, workingCount: 7, approvalCount: 4 }, - { name: "动土作业", archivedCount: 12, workingCount: 2, approvalCount: 2 }, - { name: "断路作业", archivedCount: 15, workingCount: 5, approvalCount: 3 }, - { name: "盲板抽堵", archivedCount: 9, workingCount: 1, approvalCount: 1 }, -]; - /** 展示八类危险作业在已归档、作业中和审批中三个状态下的数量。 */ -function KeyWorkPanel() { +function KeyWorkPanel(props) { + const { portArea, currentBranchOffice } = useContext(Context); + const chartRef = useRef(null); const chartInstance = useRef(null); - useEffect(() => { + const initEcharts = (data) => { chartInstance.current = echarts.init(chartRef.current); chartInstance.current.setOption({ color: ["#74CB3F", "#00AEFF", "#FFA800"], @@ -49,7 +42,7 @@ function KeyWorkPanel() { }, xAxis: { type: "category", - data: records.map(item => item.name), + data: data.map(item => item.workTypeName), axisTick: { show: false }, axisLine: { lineStyle: { color: "rgba(255, 255, 255, 0.25)" }, @@ -75,11 +68,20 @@ function KeyWorkPanel() { }, }, series: [ - { name: "已归档", type: "bar", barMaxWidth: 14, data: records.map(item => item.archivedCount) }, - { name: "作业中", type: "bar", barMaxWidth: 14, data: records.map(item => item.workingCount) }, - { name: "审批中", type: "bar", barMaxWidth: 14, data: records.map(item => item.approvalCount) }, + { name: "已归档", type: "bar", barMaxWidth: 14, data: data.map(item => item.archivedCount) }, + { name: "作业中", type: "bar", barMaxWidth: 14, data: data.map(item => item.workingCount) }, + { name: "审批中", type: "bar", barMaxWidth: 14, data: data.map(item => item.approvingCount) }, ], }); + }; + + useEffect(() => { + const loadData = async () => { + const { data } = await props.getScreenWorkPieStatistics({ portArea, corpinfoId: currentBranchOffice }); + initEcharts(data || []); + }; + + loadData(); return () => { chartInstance.current?.dispose(); @@ -89,7 +91,9 @@ function KeyWorkPanel() { return ( -
+ +
+ ); } diff --git a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.js index c6ac4ae..3fb8c6a 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.js @@ -10,39 +10,40 @@ import Panel from "~/pages/Container/Map/components/Content/branchOffice/Panel"; import { Context } from "~/pages/Container/Map/js/context"; import "./index.less"; -const defaultStatistics = [ - { title: "审批中", icon: fourNewIcon, count: 0 }, - { title: "作业中", icon: dangerIcon, count: 0 }, - { title: "已归档", icon: multiPersonIcon, count: 0 }, +const statistics = [ + { title: "审批中", icon: fourNewIcon, count: 0, key: "approvingCount" }, + { title: "作业中", icon: dangerIcon, count: 0, key: "workingCount" }, + { title: "已归档", icon: multiPersonIcon, count: 0, key: "archivedCount" }, ]; /** 负责查询并展示重点作业当前数量与申请数量。 */ function KeyWorkStatsPanel(props) { const { portArea, currentBranchOffice } = useContext(Context); - const [data, setData] = useState(defaultStatistics); + const [data, setData] = useState(statistics); useEffect(() => { const loadData = async () => { - + const { data } = await props.getScreenWorkStatusStatistics({ portArea, corpinfoId: currentBranchOffice }); + setData(statistics.map(item => ({ ...item, count: (data || {})[item.key] || 0 }))); }; loadData(); }, []); return ( - +
- {data.map(item => ( + {data.map((item, index) => (
-
- {item.title} -
+
+ {item.title} +
diff --git a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.less b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.less index 4fcba2a..2e4be1e 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.less +++ b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/KeyWorkStatsPanel/index.less @@ -1,19 +1,19 @@ .branch-office-key-work-stats__list { display: flex; align-items: center; - justify-content: space-between; + justify-content: space-around; padding: 10px 15px; color: #fff; } -.branch-office-key-work-stats__title { - font-size: 14px; - font-weight: bold; +.branch-office-key-work-stats__icon { text-align: center; } -.branch-office-key-work-stats__icon { +.branch-office-key-work-stats__title { margin-top: 13px; + font-size: 14px; + font-weight: bold; text-align: center; } diff --git a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireInspectionRecordPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireInspectionRecordPanel/index.js index 6db63ac..47988fc 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireInspectionRecordPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireInspectionRecordPanel/index.js @@ -1,19 +1,27 @@ +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 { NS_BI_STATISTICS } from "~/enumerate/namespace"; import Panel from "~/pages/Container/Map/components/Content/branchOffice/Panel"; +import { Context } from "~/pages/Container/Map/js/context"; import "./index.less"; -const records = [ - { inspectionForm: "码头消防点位检查表", principal: "张建国", pointCount: 28, status: "已完成" }, - { inspectionForm: "堆场消防点位检查表", principal: "李海峰", pointCount: 36, status: "已完成" }, - { inspectionForm: "仓储区消防点位检查表", principal: "王立新", pointCount: 22, status: "点检中" }, - { inspectionForm: "办公区消防点位检查表", principal: "赵明远", pointCount: 18, status: "待点检" }, - { inspectionForm: "散货区消防点位检查表", principal: "陈志强", pointCount: 31, status: "已完成" }, - { inspectionForm: "危化品区消防点位检查表", principal: "刘海涛", pointCount: 16, status: "异常" }, - { inspectionForm: "维修区消防点位检查表", principal: "孙志伟", pointCount: 24, status: "点检中" }, -]; +const STATE = { 0: "启用", 1: "禁用" }; /** 展示消防点位检查表的负责人、点位数量和当前点检状态。 */ -function FireInspectionRecordPanel() { +function FireInspectionRecordPanel(props) { + const { portArea, currentBranchOffice } = useContext(Context); + const [data, setData] = useState([]); + + useEffect(() => { + const loadData = async () => { + const { data } = await props.getScreenFireCheckList({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999 }); + setData(data); + }; + loadData(); + }, []); + return (
@@ -25,16 +33,18 @@ function FireInspectionRecordPanel() {
状态
- - {records.map(item => ( -
-
{item.inspectionForm}
-
{item.principal}
-
{item.pointCount}
-
{item.status}
-
- ))} -
+ + + {data.map((item, index) => ( +
+
{item.fireCheckName}
+
{item.userName}
+
{item.firePointCount}
+
{STATE[item.state]}
+
+ ))} +
+
@@ -42,4 +52,4 @@ function FireInspectionRecordPanel() { ); } -export default FireInspectionRecordPanel; +export default Connect([NS_BI_STATISTICS], true)(FireInspectionRecordPanel); diff --git a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ContractProjectPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ContractProjectPanel/index.js index 795dcae..de556e6 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ContractProjectPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ContractProjectPanel/index.js @@ -14,8 +14,8 @@ function ContractProjectPanel(props) { const chartInstance = useRef(null); const chartRef = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const waitStartData = data.map(item => Number.parseInt(item.pendingProjectCount), @@ -165,7 +165,7 @@ function ContractProjectPanel(props) { pageIndex: 1, pageSize: 9999, }); - initEcharts(chartRef, chartInstance, data || []); + initEcharts(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectStatsPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectStatsPanel/index.js index 4046f49..cba2610 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectStatsPanel/index.js @@ -39,10 +39,10 @@ function ProjectStatsPanel(props) {
- {data.map(item => ( + {data.map((item, index) => (
diff --git a/src/pages/Container/Map/components/Content/port/FengBi/ClosedAreaStatsPanel/index.js b/src/pages/Container/Map/components/Content/port/FengBi/ClosedAreaStatsPanel/index.js index 32c4baa..bbde79b 100644 --- a/src/pages/Container/Map/components/Content/port/FengBi/ClosedAreaStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/FengBi/ClosedAreaStatsPanel/index.js @@ -17,8 +17,8 @@ function ClosedAreaStatsPanel() { return (
- {statistics.map(item => ( -
+ {statistics.map((item, index) => ( +
- {records.map(item => ( -
+ {records.map((item, index) => ( +
{item.NAME}
diff --git a/src/pages/Container/Map/components/Content/port/FengBi/EntryExitTrendPanel/index.js b/src/pages/Container/Map/components/Content/port/FengBi/EntryExitTrendPanel/index.js index 0d4999b..ab67d51 100644 --- a/src/pages/Container/Map/components/Content/port/FengBi/EntryExitTrendPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/FengBi/EntryExitTrendPanel/index.js @@ -24,8 +24,8 @@ function EntryExitTrendPanel() { const chartRef = useRef(null); const chartInstance = useRef(null); - const initEcharts = (mainRef, chartInstance, data) => { - chartInstance.current = echarts.init(mainRef.current); + const initEcharts = (data) => { + chartInstance.current = echarts.init(chartRef.current); const inData = data.map(item => Number.parseInt(item.IN)); const outData = data.map(item => Number.parseInt(item.OUT)); @@ -120,7 +120,7 @@ function EntryExitTrendPanel() { }; useMount(() => { - initEcharts(chartRef, chartInstance, records); + initEcharts(records); return () => chartInstance.current?.dispose(); }); diff --git a/src/pages/Container/Map/components/Content/port/Index/BasicInfoPanel/index.js b/src/pages/Container/Map/components/Content/port/Index/BasicInfoPanel/index.js index baebad3..bda2810 100644 --- a/src/pages/Container/Map/components/Content/port/Index/BasicInfoPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/Index/BasicInfoPanel/index.js @@ -46,8 +46,8 @@ function BasicInfoPanel(props) {
- {data.map(item => ( -
+ {data.map((item, index) => ( +
{tabs.map((item, index) => (
{ + const initEcharts = (data) => { const xAxisData = data.map(item => item.AREA_NAME); const enterData = data.map( item => Number(item.CAR_IN) + Number(item.PEOPLE_IN), @@ -70,7 +70,7 @@ function EntryExitTrendPanel() { const exitData = data.map( item => Number(item.CAR_OUT) + Number(item.PEOPLE_OUT), ); - chartInstance.current = echarts.init(mainRef.current); + chartInstance.current = echarts.init(chartRef.current); chartInstance.current.setOption({ tooltip: { trigger: "axis", axisPointer: { type: "shadow" } }, grid: { @@ -171,7 +171,7 @@ function EntryExitTrendPanel() { }; useMount(() => { - initEcharts(chartRef, chartInstance, records); + initEcharts(records); return () => chartInstance.current?.dispose(); }); diff --git a/src/pages/Container/Map/components/Content/port/MenJin/GateRecordPanel/index.js b/src/pages/Container/Map/components/Content/port/MenJin/GateRecordPanel/index.js index 56e5f2a..fcf7a03 100644 --- a/src/pages/Container/Map/components/Content/port/MenJin/GateRecordPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/MenJin/GateRecordPanel/index.js @@ -147,7 +147,7 @@ function GateRecordPanel() {
{tabs.map((item, index) => (
{tabs.map((item, index) => (
- {defaultStatistics.map(item => ( -
+ {defaultStatistics.map((item, index) => ( +
{item.title}
diff --git a/src/pages/Container/Map/components/Content/port/QiXiang/WeatherDataPanel/index.js b/src/pages/Container/Map/components/Content/port/QiXiang/WeatherDataPanel/index.js index cdf1d6e..88f1411 100644 --- a/src/pages/Container/Map/components/Content/port/QiXiang/WeatherDataPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/QiXiang/WeatherDataPanel/index.js @@ -39,8 +39,8 @@ function WeatherDataPanel() { className="port-weather-data__background" style={{ backgroundImage: `url(${weatherBackground})` }} /> - {statistics.map(item => ( -
+ {statistics.map((item, index) => ( +
{item.title} : diff --git a/src/pages/Container/Map/components/Content/port/RenYuan/LocationInfoPanel/index.js b/src/pages/Container/Map/components/Content/port/RenYuan/LocationInfoPanel/index.js index 3c22458..70e6098 100644 --- a/src/pages/Container/Map/components/Content/port/RenYuan/LocationInfoPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/RenYuan/LocationInfoPanel/index.js @@ -38,8 +38,8 @@ function LocationInfoPanel(props) {
- {data.map(item => ( -
+ {data.map((item, index) => ( +
- {records.map(item => ( -
+ {records.map((item, index) => ( +
{item.corpName}
{item.onlinePersonnelCount}
{item.onlineVehicleCount}
diff --git a/src/pages/Container/Map/components/Content/port/WeiXian/WorkStatusPanel/index.js b/src/pages/Container/Map/components/Content/port/WeiXian/WorkStatusPanel/index.js index 7a5fa03..f9cf8da 100644 --- a/src/pages/Container/Map/components/Content/port/WeiXian/WorkStatusPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/WeiXian/WorkStatusPanel/index.js @@ -48,8 +48,8 @@ function WorkStatusPanel(props) {
- {data.map(item => ( -
+ {data.map((item, index) => ( +
{ + const initEcharts = (data) => { const colors = [ "29,128,219", "1,245,255", @@ -69,7 +69,7 @@ function WorkTrendPanel(props) { }, data: seriesData, })); - chartInstance.current = echarts.init(mainRef.current); + chartInstance.current = echarts.init(chartRef.current); chartInstance.current.setOption({ tooltip: { trigger: "axis" }, legend: { @@ -118,7 +118,7 @@ function WorkTrendPanel(props) { const { data } = await props.getEightWorkInfoScreenWorkTrend({ portArea, }); - initEcharts(chartRef, chartInstance, formatWorkTrendData(data || [])); + initEcharts(formatWorkTrendData(data || [])); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/port/ZhongDian/KeyProjectPanel/index.js b/src/pages/Container/Map/components/Content/port/ZhongDian/KeyProjectPanel/index.js index 04edeed..3fd6a64 100644 --- a/src/pages/Container/Map/components/Content/port/ZhongDian/KeyProjectPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/ZhongDian/KeyProjectPanel/index.js @@ -42,8 +42,8 @@ function KeyProjectPanel(props) {
- {data.map(item => ( -
+ {data.map((item, index) => ( +
- {data.map(item => ( + {data.map((item, index) => (
diff --git a/src/pages/Container/Map/index.js b/src/pages/Container/Map/index.js index 84b95a9..0f9eedd 100644 --- a/src/pages/Container/Map/index.js +++ b/src/pages/Container/Map/index.js @@ -105,6 +105,11 @@ function Map(props) { mapMethods.current.addPortPoint(); }, 500); } + }).catch(() => { + setTimeout(() => { + mapMethods.current.flyTo(); + mapMethods.current.addPortPoint(); + }, 500); }).finally(() => { setIsRenderContent(true); });