From 1f8f47f94687c0a158ccc2e8f4a970e2c7ec2b0f Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Mon, 27 Jul 2026 10:16:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(api):=20=E7=BB=9F=E4=B8=80=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC=E4=B8=BAnull=E6=88=96undef?= =?UTF-8?q?ined=E6=97=B6=E7=9A=84=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整多个接口调用中解构data时去掉默认空数组或空对象,改用逻辑或操作符进行兼容处理 - 防止data为null或undefined导致程序异常,保证数据显示和渲染安全 - 相关组件和业务逻辑中增加了对data字段的非空判断和安全访问 - 更新图表和列表渲染初始化逻辑,避免因数据缺失导致的异常 - 优化请求数据接收后赋值流程,提升代码的鲁棒性与稳定性 --- .../Map/components/BottomUtils/index.js | 4 ++-- .../Bottom/RecordStatsPanel/index.js | 4 ++-- .../Bottom/VideoPatrolPanel/index.js | 10 +++++----- .../LeftPanel/RectificationPanel/index.js | 4 ++-- .../IndexInfo/LeftPanel/WeatherPanel/index.js | 4 ++-- .../LeftPanel/WorkStatusPanel/index.js | 4 ++-- .../IndexInfo/RightPanel/AlarmPanel/index.js | 4 ++-- .../RightPanel/PartnerPanel/index.js | 4 ++-- .../IndexInfo/RightPanel/WorkPanel/index.js | 18 ++++++++--------- .../Content/branchOffice/Camera/VideoItem.js | 2 +- .../Content/branchOffice/Camera/index.js | 4 ++-- .../IndexRight/AreaAlarmPanel/index.js | 4 ++-- .../IndexRight/KeyWorkStatsPanel/index.js | 6 +++--- .../MenJin/ClosedAreaStatsPanel/index.js | 4 ++-- .../MenJin/GateApplicationPanel/index.js | 4 ++-- .../WeiXian/DangerWorkDataPanel/index.js | 4 ++-- .../WeiXian/DepartmentWorkPanel/index.js | 6 +++--- .../WeiXian/KeyWorkPanel/index.js | 20 +++++++++---------- .../WeiXian/KeyWorkStatsPanel/index.js | 14 ++++++------- .../XiaoFang/FireAlarmRecordPanel/index.js | 4 ++-- .../XiaoFang/FireDeviceStatusPanel/index.js | 6 +++--- .../XiaoFang/VolunteerFireTeamPanel/index.js | 4 ++-- .../ZhongDian/ContractProjectPanel/index.js | 4 ++-- .../ZhongDian/MobileMonitoringPanel/index.js | 8 ++++---- .../ZhongDian/ProjectProgressPanel/index.js | 4 ++-- .../ZhongDian/ProjectStatsPanel/index.js | 8 ++++---- .../Content/modal/KeyProject/index.js | 4 ++-- .../port/Index/BasicInfoPanel/index.js | 8 ++++---- .../port/Index/PersonnelStatsPanel/index.js | 4 ++-- .../port/Index/RiskStatsPanel/index.js | 4 ++-- .../port/MenJin/GateStatsPanel/index.js | 4 ++-- .../port/WeiXian/WorkRecordPanel/index.js | 4 ++-- .../port/WeiXian/WorkStatusPanel/index.js | 8 ++++---- .../port/WeiXian/WorkTrendPanel/index.js | 4 ++-- .../XiaoFang/FireDeviceListPanel/index.js | 4 ++-- .../port/ZhongDian/KeyProjectPanel/index.js | 4 ++-- .../ZhongDian/VideoLocationPanel/index.js | 4 ++-- src/pages/Container/Map/js/mapMethods.js | 4 ++-- 38 files changed, 109 insertions(+), 109 deletions(-) diff --git a/src/pages/Container/Map/components/BottomUtils/index.js b/src/pages/Container/Map/components/BottomUtils/index.js index d72c042..8c98cd4 100644 --- a/src/pages/Container/Map/components/BottomUtils/index.js +++ b/src/pages/Container/Map/components/BottomUtils/index.js @@ -130,8 +130,8 @@ function BottomUtils(props) { if (gateTypes.includes(item1.type)) { requestParams.gateType = item1.type; } - const { data = [] } = await props[item1.request](requestParams); - pointData = [...data]; + const { data } = await props[item1.request](requestParams); + pointData = [...(data || [])]; if (dangerWorkTypes.includes(item1.type)) { for (let i = 0; i < pointData.length; i++) { pointData[i].latitude = pointData[i].info.latitude; diff --git a/src/pages/Container/Map/components/Content/IndexInfo/Bottom/RecordStatsPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/Bottom/RecordStatsPanel/index.js index 554fe1e..ebf95ef 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/Bottom/RecordStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/Bottom/RecordStatsPanel/index.js @@ -12,8 +12,8 @@ function RecordStatsPanel(props) { const [data, setData] = useState([]); useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getXgfStatisticsListRecordProjectStatistics(); - setData(data); + const { data } = await props.getXgfStatisticsListRecordProjectStatistics(); + setData(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/IndexInfo/Bottom/VideoPatrolPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/Bottom/VideoPatrolPanel/index.js index 5e04413..9a9d971 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/Bottom/VideoPatrolPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/Bottom/VideoPatrolPanel/index.js @@ -14,11 +14,11 @@ function VideoPatrolPanel(props) { const [active, setActive] = useState(""); const [playUrl, setPlayUrl] = useState(""); const loadPlayUrl = async (cameraNumber) => { - const { data = {}, success } = await props.getFixedCameraPlayUrl({ + const { data, success } = await props.getFixedCameraPlayUrl({ indexCode: cameraNumber, }); if (success && data) - setPlayUrl(data.url); + setPlayUrl(data?.url || ""); }; const selectCorp = (item) => { setActive(item.corpinfoName); @@ -35,9 +35,9 @@ function VideoPatrolPanel(props) { }; useEffect(() => { const loadVideoList = async () => { - const { data = [] } = await props.getFixedCameraVideoList(); - setList(data); - if (data.length) { + const { data } = await props.getFixedCameraVideoList(); + setList(data || []); + if (data?.length) { selectCorp(data[0]); } }; diff --git a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/RectificationPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/RectificationPanel/index.js index 3770be3..bc40d6f 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/RectificationPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/RectificationPanel/index.js @@ -13,11 +13,11 @@ function RectificationPanel(props) { const [data, setData] = useState([]); useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getHiddenStatisticsByPortArea({ + const { data } = await props.getHiddenStatisticsByPortArea({ pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WeatherPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WeatherPanel/index.js index 92af71f..6ed4e70 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WeatherPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/WeatherPanel/index.js @@ -24,11 +24,11 @@ function WeatherPanel(props) { alertTitle: result.alerts?.[0]?.title || "当前暂无气象预警", }); - const { data = [] } = await props.getEventReportListUnfinished({ + const { data } = await props.getEventReportListUnfinished({ pageIndex: 1, pageSize: 9999, }); - setEmergencyList(data); + setEmergencyList(data || []); }; loadData(); }, []); 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 2b33103..8e7e05e 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 @@ -137,8 +137,8 @@ function WorkStatusPanel(props) { }; useMount(() => { const loadData = async () => { - const { data = [] } = await props.getProjectTaskScoreCount(); - initEcharts(chartRef, chartInstance, data); + const { data } = await props.getProjectTaskScoreCount(); + initEcharts(chartRef, chartInstance, data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/AlarmPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/AlarmPanel/index.js index 02d3ed2..c6f0ecd 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/AlarmPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/AlarmPanel/index.js @@ -13,11 +13,11 @@ function AlarmPanel(props) { const [data, setData] = useState([]); useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage({ + const { data } = await props.getAlarmRecordScreenIotDeviceAlarmPage({ pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/PartnerPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/PartnerPanel/index.js index 0a4580c..9f54d8b 100644 --- a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/PartnerPanel/index.js +++ b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/PartnerPanel/index.js @@ -13,11 +13,11 @@ function PartnerPanel(props) { const [data, setData] = useState([]); useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getXgfStatisticsListCorpStatistics({ + const { data } = await props.getXgfStatisticsListCorpStatistics({ pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(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 14b283f..59968ca 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 @@ -29,22 +29,22 @@ function WorkPanel(props) { ]); useEffect(() => { const loadData = async () => { - const [{ data: eightWorkData = [] }, { data: keyProjectData = [] }] = await Promise.all([ + const [{ data: eightWorkData }, { data: keyProjectData }] = await Promise.all([ props.getEightWorkInfoDangerWorkStatistics(), props.getKeyProjectLargeScreenStatistics(), ]); setData((prevState) => { - prevState[1].doingCount = eightWorkData.doingCount; - prevState[1].appliedCount = eightWorkData.appliedCount; + prevState[1].doingCount = eightWorkData?.doingCount; + prevState[1].appliedCount = eightWorkData?.appliedCount; - prevState[0].doingCount = keyProjectData.morePeopleStartCount; - prevState[0].appliedCount = keyProjectData.morePeopleApplyCount; + prevState[0].doingCount = keyProjectData?.morePeopleStartCount; + prevState[0].appliedCount = keyProjectData?.morePeopleApplyCount; - prevState[2].doingCount = keyProjectData.fourNewHomeworkStartCount; - prevState[2].appliedCount = keyProjectData.fourNewHomeworkApplyCount; + prevState[2].doingCount = keyProjectData?.fourNewHomeworkStartCount; + prevState[2].appliedCount = keyProjectData?.fourNewHomeworkApplyCount; - prevState[3].doingCount = keyProjectData.nightWorkStartCount; - prevState[3].appliedCount = keyProjectData.nightWorkApplyCount; + prevState[3].doingCount = keyProjectData?.nightWorkStartCount; + prevState[3].appliedCount = keyProjectData?.nightWorkApplyCount; return [...prevState]; }); diff --git a/src/pages/Container/Map/components/Content/branchOffice/Camera/VideoItem.js b/src/pages/Container/Map/components/Content/branchOffice/Camera/VideoItem.js index 550f9eb..0454107 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/Camera/VideoItem.js +++ b/src/pages/Container/Map/components/Content/branchOffice/Camera/VideoItem.js @@ -12,7 +12,7 @@ function VideoItem({ cameraNumber, videoName, getFixedCameraPlayUrl }) { const loadPlayUrl = async () => { setLoading(true); setPlayUrl(""); - const { data = {}, success } = await getFixedCameraPlayUrl({ indexCode: cameraNumber }); + const { data, success } = await getFixedCameraPlayUrl({ indexCode: cameraNumber }); if (!isUnmounted && success) setPlayUrl(data?.url || ""); diff --git a/src/pages/Container/Map/components/Content/branchOffice/Camera/index.js b/src/pages/Container/Map/components/Content/branchOffice/Camera/index.js index c6c63dc..8ce8d49 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/Camera/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/Camera/index.js @@ -26,7 +26,7 @@ function Camera(props) { const [videoList, setVideoList] = useState([]); const loadData = async () => { - const [dictionaryData, { data = [] }] = await Promise.all([ + const [dictionaryData, { data }] = await Promise.all([ getDictionary({ dictValue: "videoLevel" }), props.getFixedCameraVideoInfoPage({ portArea, @@ -36,7 +36,7 @@ function Camera(props) { }), ]); setLevelList(dictionaryData); - setVideoList(data); + setVideoList(data || []); }; useEffect(() => { diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/AreaAlarmPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/AreaAlarmPanel/index.js index 11eee07..4377c20 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/IndexRight/AreaAlarmPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/IndexRight/AreaAlarmPanel/index.js @@ -16,13 +16,13 @@ function AreaAlarmPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage({ + const { data } = await props.getAlarmRecordScreenIotDeviceAlarmPage({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); }; loadData(); }, []); 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 73f0d47..fb28859 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: eightWorkData = [] }, { data: keyProjectData = [] }] + const [{ data: eightWorkData }, { data: keyProjectData }] = await Promise.all([ props.getEightWorkInfoScreenDepartmentStatistics({ portArea, @@ -26,7 +26,7 @@ function KeyWorkStatsPanel(props) { }), ]); const departmentMap = new Map( - keyProjectData.map(item => [ + (keyProjectData || []).map(item => [ item.departmentId, { departmentName: item.departmentName, @@ -36,7 +36,7 @@ function KeyWorkStatsPanel(props) { }, ]), ); - eightWorkData.forEach((item) => { + (eightWorkData || []).forEach((item) => { const department = departmentMap.get(item.departmentId) || { departmentName: item.departmentName, fourNewHomeworkCount: 0, 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 9905f3f..24dbd2a 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 @@ -27,11 +27,11 @@ function ClosedAreaStatsPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getPrimeportClosedAreaCorpStat({ portArea, corpinfoId: currentBranchOffice }); + const { data } = await props.getPrimeportClosedAreaCorpStat({ portArea, corpinfoId: currentBranchOffice }); setData(statistics.map(item => ({ ...item, - count: item.field ? data[item.field] || 0 : item.count, + count: item.field ? (data || {})[item.field] || 0 : item.count, }))); }; diff --git a/src/pages/Container/Map/components/Content/branchOffice/MenJin/GateApplicationPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/MenJin/GateApplicationPanel/index.js index 7e59c83..b88e58b 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/MenJin/GateApplicationPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/MenJin/GateApplicationPanel/index.js @@ -19,13 +19,13 @@ function GateApplicationPanel(props) { const loadData = async (activeIndex) => { setIsVisible(false); - const { data = [] } = await props[activeIndex === 1 ? "getPrimeportClosedAreaCarApplyScreenList" : "getPrimeportClosedAreaPersonApplyScreenList"]({ + const { data } = await props[activeIndex === 1 ? "getPrimeportClosedAreaCarApplyScreenList" : "getPrimeportClosedAreaPersonApplyScreenList"]({ pageIndex: 1, pageSize: 9999, portArea, corpinfoId: currentBranchOffice, }); - setData(data); + setData(data || []); setIsVisible(true); }; diff --git a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DangerWorkDataPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DangerWorkDataPanel/index.js index df33b7f..e1021c8 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DangerWorkDataPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/WeiXian/DangerWorkDataPanel/index.js @@ -13,12 +13,12 @@ function DangerWorkDataPanel(props) { const [data, setData] = useState([]); useEffect(() => { const loadData = async () => { - const { data = [] } + const { data } = await props.getEightWorkInfoScreenDangerWorkDataStatistics({ portArea, corpinfoId: currentBranchOffice, }); - setData(data); + setData(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 6bbe5f4..7011c8f 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 @@ -13,7 +13,7 @@ function DepartmentWorkPanel(props) { const [data, setData] = useState([]); useEffect(() => { const loadData = async () => { - const [{ data: eightWorkData = [] }, { data: keyProjectData = [] }] + const [{ data: eightWorkData }, { data: keyProjectData }] = await Promise.all([ props.getEightWorkInfoScreenDepartmentStatistics({ portArea, @@ -25,7 +25,7 @@ function DepartmentWorkPanel(props) { }), ]); const departmentMap = new Map( - keyProjectData.map(item => [ + (keyProjectData || []).map(item => [ item.departmentId, { departmentName: item.departmentName, @@ -35,7 +35,7 @@ function DepartmentWorkPanel(props) { }, ]), ); - eightWorkData.forEach((item) => { + (eightWorkData || []).forEach((item) => { const department = departmentMap.get(item.departmentId) || { departmentName: item.departmentName, fourNewHomeworkCount: 0, 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 4e2fdfb..d39ee35 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 @@ -54,7 +54,7 @@ function KeyWorkPanel(props) { const [data, setData] = useState(defaultStatistics); useEffect(() => { const loadData = async () => { - const [{ data: eightWorkData = {} }, { data: keyProjectData = {} }] + const [{ data: eightWorkData }, { data: keyProjectData }] = await Promise.all([ props.getEightWorkInfoDangerWorkStatistics({ portArea, @@ -68,21 +68,21 @@ function KeyWorkPanel(props) { setData([ { ...defaultStatistics[0], - currentCount: keyProjectData.fourNewHomeworkStartCount, - doingCount: keyProjectData.fourNewHomeworkDoingCount, - archivedCount: keyProjectData.fourNewHomeworkArchiveCount, + currentCount: keyProjectData?.fourNewHomeworkStartCount, + doingCount: keyProjectData?.fourNewHomeworkDoingCount, + archivedCount: keyProjectData?.fourNewHomeworkArchiveCount, }, { ...defaultStatistics[1], - currentCount: eightWorkData.doingCount, - doingCount: eightWorkData.workingCount, - archivedCount: eightWorkData.archivedCount, + currentCount: eightWorkData?.doingCount, + doingCount: eightWorkData?.workingCount, + archivedCount: eightWorkData?.archivedCount, }, { ...defaultStatistics[2], - currentCount: keyProjectData.morePeopleStartCount, - doingCount: keyProjectData.morePeopleDoingCount, - archivedCount: keyProjectData.morePeopleArchiveCount, + currentCount: keyProjectData?.morePeopleStartCount, + doingCount: keyProjectData?.morePeopleDoingCount, + archivedCount: keyProjectData?.morePeopleArchiveCount, }, ]); }; 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 deef6de..8f5a5d1 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 @@ -28,7 +28,7 @@ function KeyWorkStatsPanel(props) { useEffect(() => { const loadData = async () => { - const [{ data: eightWorkData = {} }, { data: keyProjectData = {} }] + const [{ data: eightWorkData }, { data: keyProjectData }] = await Promise.all([ props.getEightWorkInfoDangerWorkStatistics({ portArea, @@ -42,18 +42,18 @@ function KeyWorkStatsPanel(props) { setData([ { ...defaultStatistics[0], - currentCount: keyProjectData.fourNewHomeworkStartCount, - applyCount: keyProjectData.fourNewHomeworkApplyCount, + currentCount: keyProjectData?.fourNewHomeworkStartCount, + applyCount: keyProjectData?.fourNewHomeworkApplyCount, }, { ...defaultStatistics[1], - currentCount: eightWorkData.workingCount, - applyCount: eightWorkData.appliedCount, + currentCount: eightWorkData?.workingCount, + applyCount: eightWorkData?.appliedCount, }, { ...defaultStatistics[2], - currentCount: keyProjectData.morePeopleStartCount, - applyCount: keyProjectData.morePeopleApplyCount, + currentCount: keyProjectData?.morePeopleStartCount, + applyCount: keyProjectData?.morePeopleApplyCount, }, ]); }; diff --git a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireAlarmRecordPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireAlarmRecordPanel/index.js index 71dca6e..0ffdc6e 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireAlarmRecordPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireAlarmRecordPanel/index.js @@ -16,13 +16,13 @@ function FireAlarmRecordPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getAlarmRecordScreenIotDeviceAlarmPage({ + const { data } = await props.getAlarmRecordScreenIotDeviceAlarmPage({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); }; loadData(); }, []); diff --git a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireDeviceStatusPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireDeviceStatusPanel/index.js index 9d7b646..cfb9d04 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireDeviceStatusPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/FireDeviceStatusPanel/index.js @@ -17,13 +17,13 @@ function FireDeviceStatusPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getSensorDeviceFireSituation({ + const { data } = await props.getSensorDeviceFireSituation({ portArea, corpinfoId: currentBranchOffice, }); setData({ - totalCount: data.totalCount || 0, - statusList: data.statusList || [], + totalCount: data?.totalCount || 0, + statusList: data?.statusList || [], }); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/VolunteerFireTeamPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/VolunteerFireTeamPanel/index.js index 96f8f45..4936e28 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/VolunteerFireTeamPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/XiaoFang/VolunteerFireTeamPanel/index.js @@ -14,13 +14,13 @@ function VolunteerFireTeamPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getFireBrigadeMemberScreenList({ + const { data } = await props.getFireBrigadeMemberScreenList({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); }; loadData(); }, []); 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 2bd0186..795dcae 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 @@ -159,13 +159,13 @@ function ContractProjectPanel(props) { useMount(() => { const loadData = async () => { - const { data = [] } = await props.getProjectContractProjectStatistics({ + const { data } = await props.getProjectContractProjectStatistics({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999, }); - initEcharts(chartRef, chartInstance, data); + initEcharts(chartRef, chartInstance, data || []); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/MobileMonitoringPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/MobileMonitoringPanel/index.js index e5b6a86..bb58451 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/MobileMonitoringPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/MobileMonitoringPanel/index.js @@ -15,21 +15,21 @@ function MobileMonitoringPanel(props) { useEffect(() => { const loadPlayUrl = async (cameraNumber) => { - const { data = {}, success } = await props.getFixedCameraPlayUrl({ + const { data, success } = await props.getFixedCameraPlayUrl({ indexCode: cameraNumber, }); if (success && data) { - setPlayUrl(data.url); + setPlayUrl(data?.url || ""); } }; const loadCamera = async () => { - const { data = [] } = await props.getFixedCameraVideoInfoPage({ + const { data } = await props.getFixedCameraVideoInfoPage({ portArea, corpinfoId: currentBranchOffice, pageIndex: 1, pageSize: 9999, }); - if (data.length) { + if (data?.length) { loadPlayUrl(data[Math.floor(randoms(0, data.length - 1))].cameraNumber); } }; diff --git a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectProgressPanel/index.js b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectProgressPanel/index.js index 08ac1bc..26ab362 100644 --- a/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectProgressPanel/index.js +++ b/src/pages/Container/Map/components/Content/branchOffice/ZhongDian/ProjectProgressPanel/index.js @@ -14,11 +14,11 @@ function ProjectProgressPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getKeyProjectLargeScreenProjectProgress({ + const { data } = await props.getKeyProjectLargeScreenProjectProgress({ portArea, corpinfoId: currentBranchOffice, }); - setData(data); + setData(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 43a8cd3..4046f49 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 @@ -21,14 +21,14 @@ function ProjectStatsPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getProjectVisualProjectStatistics({ + const { data } = await props.getProjectVisualProjectStatistics({ portArea, corpinfoId: currentBranchOffice, }); setData([ - { ...defaultStatistics[0], value: data.totalProjectCount }, - { ...defaultStatistics[1], value: data.pendingProjectCount }, - { ...defaultStatistics[2], value: data.executingProjectCount }, + { ...defaultStatistics[0], value: data?.totalProjectCount }, + { ...defaultStatistics[1], value: data?.pendingProjectCount }, + { ...defaultStatistics[2], value: data?.executingProjectCount }, ]); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/modal/KeyProject/index.js b/src/pages/Container/Map/components/Content/modal/KeyProject/index.js index eceaa98..643f8b5 100644 --- a/src/pages/Container/Map/components/Content/modal/KeyProject/index.js +++ b/src/pages/Container/Map/components/Content/modal/KeyProject/index.js @@ -54,8 +54,8 @@ const KeyProject = (props) => { const [info, setInfo] = useState({}); const getData = async () => { - const { data = {} } = await props.keyProjectInfo({ id: props.id }); - console.log(data); + const { data } = await props.keyProjectInfo({ id: props.id }); + const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["168"], eqForeignKey: data.keyProjectId, 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 06cdead..baebad3 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 @@ -24,11 +24,11 @@ function BasicInfoPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getCorpInfoCorpUserSummary({ portArea }); + const { data } = await props.getCorpInfoCorpUserSummary({ portArea }); const counts = [ - data.branchCorpCount, - data.relatedCorpCount, - data.userCount, + data?.branchCorpCount, + data?.relatedCorpCount, + data?.userCount, ]; setData( diff --git a/src/pages/Container/Map/components/Content/port/Index/PersonnelStatsPanel/index.js b/src/pages/Container/Map/components/Content/port/Index/PersonnelStatsPanel/index.js index 54ead38..d96ffbe 100644 --- a/src/pages/Container/Map/components/Content/port/Index/PersonnelStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/Index/PersonnelStatsPanel/index.js @@ -20,13 +20,13 @@ function PersonnelStatsPanel(props) { const loadData = async (enterpriseType) => { setIsVisible(false); - const { data = [] } = await props.getCorpInfoCorpUserStatisticPage({ + const { data } = await props.getCorpInfoCorpUserStatisticPage({ portArea, enterpriseType, pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); setIsVisible(true); }; diff --git a/src/pages/Container/Map/components/Content/port/Index/RiskStatsPanel/index.js b/src/pages/Container/Map/components/Content/port/Index/RiskStatsPanel/index.js index 14be10a..1c7f5c3 100644 --- a/src/pages/Container/Map/components/Content/port/Index/RiskStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/Index/RiskStatsPanel/index.js @@ -51,9 +51,9 @@ function RiskStatsPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getRiskPointCorpRiskLevel({ portArea }); + const { data } = await props.getRiskPointCorpRiskLevel({ portArea }); const countByLevel = Object.fromEntries( - data.map(item => [item.level, item.count]), + (data || []).map(item => [item.level, item.count]), ); setData( diff --git a/src/pages/Container/Map/components/Content/port/MenJin/GateStatsPanel/index.js b/src/pages/Container/Map/components/Content/port/MenJin/GateStatsPanel/index.js index 98ddf61..d011725 100644 --- a/src/pages/Container/Map/components/Content/port/MenJin/GateStatsPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/MenJin/GateStatsPanel/index.js @@ -21,11 +21,11 @@ function GateStatsPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getPrimeportMkmjStatistics({ portArea }); + const { data } = await props.getPrimeportMkmjStatistics({ portArea }); // 根据固定区域模板重新生成状态,避免直接修改 React 保存的上一轮统计数据。 setData(statistics.map((item) => { - const currentStatistics = data.find(statisticsItem => statisticsItem.areaType === item.areaType) || {}; + const currentStatistics = (data || []).find(statisticsItem => statisticsItem.areaType === item.areaType) || {}; return { ...item, diff --git a/src/pages/Container/Map/components/Content/port/WeiXian/WorkRecordPanel/index.js b/src/pages/Container/Map/components/Content/port/WeiXian/WorkRecordPanel/index.js index b6a1221..f95d183 100644 --- a/src/pages/Container/Map/components/Content/port/WeiXian/WorkRecordPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/WeiXian/WorkRecordPanel/index.js @@ -16,12 +16,12 @@ function WorkRecordPanel(props) { useEffect(() => { const loadData = async () => { - const { data = [] } = await props.getEightWorkInfoScreenWorkRecord({ + const { data } = await props.getEightWorkInfoScreenWorkRecord({ portArea, pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); }; loadData(); 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 7083336..7a5fa03 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 @@ -25,13 +25,13 @@ function WorkStatusPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getEightWorkInfoScreenStatusStatistics({ + const { data } = await props.getEightWorkInfoScreenStatusStatistics({ portArea, }); const counts = [ - data.appliedCount, - data.approvingCount, - data.archivedCount, + data?.appliedCount, + data?.approvingCount, + data?.archivedCount, ]; setData( defaultStatistics.map((item, index) => ({ diff --git a/src/pages/Container/Map/components/Content/port/WeiXian/WorkTrendPanel/index.js b/src/pages/Container/Map/components/Content/port/WeiXian/WorkTrendPanel/index.js index ed9da20..fd40378 100644 --- a/src/pages/Container/Map/components/Content/port/WeiXian/WorkTrendPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/WeiXian/WorkTrendPanel/index.js @@ -115,10 +115,10 @@ function WorkTrendPanel(props) { useMount(() => { const loadData = async () => { - const { data = [] } = await props.getEightWorkInfoScreenWorkTrend({ + const { data } = await props.getEightWorkInfoScreenWorkTrend({ portArea, }); - initEcharts(chartRef, chartInstance, formatWorkTrendData(data)); + initEcharts(chartRef, chartInstance, formatWorkTrendData(data || [])); }; loadData(); diff --git a/src/pages/Container/Map/components/Content/port/XiaoFang/FireDeviceListPanel/index.js b/src/pages/Container/Map/components/Content/port/XiaoFang/FireDeviceListPanel/index.js index 30f75fd..b5d9cdb 100644 --- a/src/pages/Container/Map/components/Content/port/XiaoFang/FireDeviceListPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/XiaoFang/FireDeviceListPanel/index.js @@ -17,13 +17,13 @@ function FireDeviceListPanel(props) { useEffect(() => { const loadData = async () => { setIsVisible(false); - const { data = [] } = await props.getFirePointDeviceList({ + const { data } = await props.getFirePointDeviceList({ portArea, ...queryParams, pageIndex: 1, pageSize: 9999, }); - setData(data); + setData(data || []); setIsVisible(true); }; 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 cbbaafc..04edeed 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 @@ -23,10 +23,10 @@ function KeyProjectPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getKeyProjectLargeScreenProjectStatistics({ + const { data } = await props.getKeyProjectLargeScreenProjectStatistics({ portArea, }); - const counts = [data.totalProjectCount, data.startCount]; + const counts = [data?.totalProjectCount, data?.startCount]; setData( defaultStatistics.map((item, index) => ({ ...item, diff --git a/src/pages/Container/Map/components/Content/port/ZhongDian/VideoLocationPanel/index.js b/src/pages/Container/Map/components/Content/port/ZhongDian/VideoLocationPanel/index.js index a324843..7ba5582 100644 --- a/src/pages/Container/Map/components/Content/port/ZhongDian/VideoLocationPanel/index.js +++ b/src/pages/Container/Map/components/Content/port/ZhongDian/VideoLocationPanel/index.js @@ -21,10 +21,10 @@ function VideoLocationPanel(props) { useEffect(() => { const loadData = async () => { - const { data = {} } = await props.getFixedCameraVideoLocationStat({ + const { data } = await props.getFixedCameraVideoLocationStat({ portArea, }); - const counts = [data.totalCount, data.onlineCount, data.offlineCount]; + const counts = [data?.totalCount, data?.onlineCount, data?.offlineCount]; setData( defaultStatistics.map((item, index) => ({ ...item, diff --git a/src/pages/Container/Map/js/mapMethods.js b/src/pages/Container/Map/js/mapMethods.js index fefb010..970766e 100644 --- a/src/pages/Container/Map/js/mapMethods.js +++ b/src/pages/Container/Map/js/mapMethods.js @@ -132,8 +132,8 @@ export default function useMapMethods(viewerRef, request) { const addBranchOfficePoint = async (portArea = "", pointInfo = null) => { let requestData = []; if (!pointInfo) { - const { data = [] } = await request.getCorpInfoListAll({ eqPortArea: portArea, inType: [0, 1, 2, 6] }); - requestData = data; + const { data } = await request.getCorpInfoListAll({ eqPortArea: portArea, inType: [0, 1, 2, 6] }); + requestData = data || []; } mitt.emit(changeCoverMaskVisibleMittKey, true); let branchOfficePoint = [];