From 4f64335773c661dc9eabcf111fe36462700e12e5 Mon Sep 17 00:00:00 2001 From: lishenfeng Date: Sun, 8 Feb 2026 10:37:07 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=9B=9B=E7=AE=A1=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SiGuan/components/Maintenance/index.js | 13 ++++++++----- .../components/ReservoirDemarcation/index.js | 18 +++++++++++------- .../components/SafetyAppraisal/index.less | 2 +- .../SiGuan/components/SafetyHazard/index.js | 12 +++++++----- .../components/TermiteControl/index.less | 2 +- .../components/AllWeatherControl/index.js | 4 +++- .../components/ManagementCycle/index.js | 4 +++- .../components/MonitoringElements/index.js | 4 +++- .../components/SupervisionCoverage/index.js | 4 +++- .../components/Business/SiQuan/index.less | 2 +- .../SiZhi/components/SoundMechanism/index.js | 19 +++---------------- 11 files changed, 44 insertions(+), 40 deletions(-) diff --git a/src/views/Home/components/Business/SiGuan/components/Maintenance/index.js b/src/views/Home/components/Business/SiGuan/components/Maintenance/index.js index aea2881..5bbf171 100644 --- a/src/views/Home/components/Business/SiGuan/components/Maintenance/index.js +++ b/src/views/Home/components/Business/SiGuan/components/Maintenance/index.js @@ -164,13 +164,16 @@ const Maintenance = ({ year }) => { chartInstance.current.setOption(option); - const handleResize = () => { - chartInstance.current?.resize(); - }; - window.addEventListener('resize', handleResize); + const resizeObserver = new ResizeObserver(() => { + chartInstance.current && chartInstance.current.resize(); + }); + + if (chartRef.current) { + resizeObserver.observe(chartRef.current); + } return () => { - window.removeEventListener('resize', handleResize); + resizeObserver.disconnect(); }; }, [activeIndex, selectedPieItem, startAngle, chartData]); diff --git a/src/views/Home/components/Business/SiGuan/components/ReservoirDemarcation/index.js b/src/views/Home/components/Business/SiGuan/components/ReservoirDemarcation/index.js index ec9ab14..c483cd0 100644 --- a/src/views/Home/components/Business/SiGuan/components/ReservoirDemarcation/index.js +++ b/src/views/Home/components/Business/SiGuan/components/ReservoirDemarcation/index.js @@ -1,4 +1,5 @@ import React, { useEffect, useRef,useState } from 'react'; +import { useSelector } from 'react-redux'; import * as echarts from 'echarts'; import arrowIcon from '@/assets/images/card/arrow.png'; import glfwBg from '@/assets/images/business/glfw.png'; @@ -9,6 +10,7 @@ import { httpget } from '@/utils/request'; import './index.less'; const ReservoirDemarcation = () => { + const isFullScreen = useSelector(s => s.runtime.isFullScreen); const chartRef = useRef(null); const chartInstance = useRef(null); const [info, setInfo] = useState({ @@ -49,8 +51,8 @@ const ReservoirDemarcation = () => { min: 0, max: maxVal, splitNumber: 40, - radius: '125%', - center: ['50%', '65%'], + radius: isFullScreen ? '90%' : '125%', + center: isFullScreen ? ['50%', '55%'] : ['50%', '65%'], axisLine: { show: true, lineStyle: { @@ -106,16 +108,18 @@ const ReservoirDemarcation = () => { chartInstance.current.setOption(option); - const handleResize = () => { + const resizeObserver = new ResizeObserver(() => { chartInstance.current && chartInstance.current.resize(); - }; + }); - window.addEventListener('resize', handleResize); + if (chartRef.current) { + resizeObserver.observe(chartRef.current); + } return () => { - window.removeEventListener('resize', handleResize); + resizeObserver.disconnect(); }; - }, [info]); + }, [info, isFullScreen]); // Clean up chart instance on unmount useEffect(() => { diff --git a/src/views/Home/components/Business/SiGuan/components/SafetyAppraisal/index.less b/src/views/Home/components/Business/SiGuan/components/SafetyAppraisal/index.less index cb6c65d..949b463 100644 --- a/src/views/Home/components/Business/SiGuan/components/SafetyAppraisal/index.less +++ b/src/views/Home/components/Business/SiGuan/components/SafetyAppraisal/index.less @@ -39,7 +39,7 @@ } .location-text { - font-size: 14px; + font-size: 16px; line-height: 1.4; } } diff --git a/src/views/Home/components/Business/SiGuan/components/SafetyHazard/index.js b/src/views/Home/components/Business/SiGuan/components/SafetyHazard/index.js index 4f930de..ddaec87 100644 --- a/src/views/Home/components/Business/SiGuan/components/SafetyHazard/index.js +++ b/src/views/Home/components/Business/SiGuan/components/SafetyHazard/index.js @@ -98,14 +98,16 @@ const SafetyHazard = ({ year }) => { chartInstance.current.setOption(option); - const handleResize = () => { + const resizeObserver = new ResizeObserver(() => { chartInstance.current && chartInstance.current.resize(); - }; - - window.addEventListener('resize', handleResize); + }); + + if (chartRef.current) { + resizeObserver.observe(chartRef.current); + } return () => { - window.removeEventListener('resize', handleResize); + resizeObserver.disconnect(); }; }, [info]); diff --git a/src/views/Home/components/Business/SiGuan/components/TermiteControl/index.less b/src/views/Home/components/Business/SiGuan/components/TermiteControl/index.less index b68ac4f..c250a73 100644 --- a/src/views/Home/components/Business/SiGuan/components/TermiteControl/index.less +++ b/src/views/Home/components/Business/SiGuan/components/TermiteControl/index.less @@ -87,7 +87,7 @@ .label { font-size: 14px; - color: rgba(255, 255, 255, 0.8); + color: rgba(255, 255, 255); } } } diff --git a/src/views/Home/components/Business/SiQuan/components/AllWeatherControl/index.js b/src/views/Home/components/Business/SiQuan/components/AllWeatherControl/index.js index 1b88ed4..09e8034 100644 --- a/src/views/Home/components/Business/SiQuan/components/AllWeatherControl/index.js +++ b/src/views/Home/components/Business/SiQuan/components/AllWeatherControl/index.js @@ -1,4 +1,5 @@ import React, { useState, useEffect } from 'react'; +import { useSelector } from 'react-redux'; import { Table } from 'antd'; import CommonModal from '@/views/Home/components/UI/CommonModal'; import arrowIcon from '@/assets/images/card/arrow.png'; @@ -13,6 +14,7 @@ import VideoList from '../ModalComponents/VideoList' import UAVModal from '../ModalComponents/UAVModal'; const AllWeatherControl = () => { + const isFullScreen = useSelector(s => s.runtime.isFullScreen); const [reservoirItem, setReservoirItem] = useState({}) const [rainList, setRainList] = useState([]) const [detailVisible, setDetailVisible] = useState(false) @@ -102,7 +104,7 @@ const AllWeatherControl = () => { } return ( -
+
{/* 雨情 Section */}
diff --git a/src/views/Home/components/Business/SiQuan/components/ManagementCycle/index.js b/src/views/Home/components/Business/SiQuan/components/ManagementCycle/index.js index 46199a6..1c32fb8 100644 --- a/src/views/Home/components/Business/SiQuan/components/ManagementCycle/index.js +++ b/src/views/Home/components/Business/SiQuan/components/ManagementCycle/index.js @@ -1,4 +1,5 @@ import React,{useState,useEffect} from 'react'; +import { useSelector } from 'react-redux'; import smallCard from '@/assets/images/card/smallCard.png'; import apiurl from '@/service/apiurl'; import { httpget } from '@/utils/request'; @@ -6,6 +7,7 @@ import PdfView from '@/views/Home/components/UI/PdfView'; import './index.less'; const ManagementCycle = () => { + const isFullScreen = useSelector(s => s.runtime.isFullScreen); const [info, setInfo] = useState({}) const [pdfVisible, setPdfVisible] = useState(false); const [pdfConfig, setPdfConfig] = useState({ title: '', url: '', fileId: '' }); @@ -63,7 +65,7 @@ const ManagementCycle = () => { }, []) return ( -
+
{data.map((item, index) => (
{ + const isFullScreen = useSelector(s => s.runtime.isFullScreen); const reservoirInfo = [ { label: '总库容(万m³):', value: '', highlight: false,type:1 }, { label: '承雨面积(km²):', value: '', highlight: true,type:2 }, @@ -42,7 +44,7 @@ const MonitoringElements = ({ data }) => { return ( -
+
{/* Section 1: 水库信息 */}
diff --git a/src/views/Home/components/Business/SiQuan/components/SupervisionCoverage/index.js b/src/views/Home/components/Business/SiQuan/components/SupervisionCoverage/index.js index fcf76be..2bb6c6e 100644 --- a/src/views/Home/components/Business/SiQuan/components/SupervisionCoverage/index.js +++ b/src/views/Home/components/Business/SiQuan/components/SupervisionCoverage/index.js @@ -1,4 +1,5 @@ import React,{useState,useEffect, useMemo} from 'react'; +import { useSelector } from 'react-redux'; import { UserOutlined } from '@ant-design/icons'; import arrowIcon from '@/assets/images/card/arrow.png'; import textBg from '@/assets/images/card/textbg.png'; @@ -6,6 +7,7 @@ import moment from 'moment'; import './index.less'; const SupervisionCoverage = ({ data }) => { + const isFullScreen = useSelector(s => s.runtime.isFullScreen); const responsibles = [ { label: '地方政府责任人:', value: '-', type: 'gov' }, { label: '主管部门责任人:', value: '-', type: 'dept' }, @@ -43,7 +45,7 @@ const SupervisionCoverage = ({ data }) => { }, [data]); return ( -
+
{/* Section 1: 责任人信息 */}
diff --git a/src/views/Home/components/Business/SiQuan/index.less b/src/views/Home/components/Business/SiQuan/index.less index 8db0733..7652176 100644 --- a/src/views/Home/components/Business/SiQuan/index.less +++ b/src/views/Home/components/Business/SiQuan/index.less @@ -1,6 +1,6 @@ .siquan-view { width: 100%; - height: 0; + height: 100%; position: relative; @import "../common.less"; diff --git a/src/views/Home/components/Business/SiZhi/components/SoundMechanism/index.js b/src/views/Home/components/Business/SiZhi/components/SoundMechanism/index.js index bf7d9d2..2cec3e3 100644 --- a/src/views/Home/components/Business/SiZhi/components/SoundMechanism/index.js +++ b/src/views/Home/components/Business/SiZhi/components/SoundMechanism/index.js @@ -2,7 +2,6 @@ import React, { useState,useEffect } from 'react'; import moment from 'moment'; import arrowIcon from '@/assets/images/card/arrow.png'; import smallCard from '@/assets/images/card/smallCard.png'; -import homeImg from '@/assets/images/home.png'; // Placeholder for gallery import jingfeiIcon from '@/assets/images/card/jingfei.png'; import lightBg from '@/assets/images/card/light.png'; import GalleryModal from './GalleryModal'; @@ -10,7 +9,7 @@ import MaterialModal from './MaterialModal'; import YearSelect from '@/views/Home/components/UI/YearSelect'; import apiurl from '@/service/apiurl'; import { httpget } from '@/utils/request'; -import { config } from '@/config'; +import { config } from '@/config/index'; import './index.less'; const SoundMechanism = () => { @@ -19,19 +18,9 @@ const SoundMechanism = () => { const [materialVisible, setMaterialVisible] = useState(false); const [modalTitle, setModalTitle] = useState(''); const [galleryData, setGalleryData] = useState([]); - - const [manageInfo, setManageInfo] = useState({}) //管理设施 const [budgetInfo, setBudgetInfo] = useState({}) //经费 - // Mock data for gallery - const houseImages = [ - { name: '管理用房.jpg', url: homeImg }, - { name: '监控室.jpg', url: homeImg }, - { name: '水库全景.jpg', url: homeImg }, - { name: '会议室.jpg', url: homeImg }, - { name: '值班室.jpg', url: homeImg }, - { name: '物资仓库.jpg', url: homeImg }, - ]; + @@ -56,8 +45,6 @@ const SoundMechanism = () => { setModalVisible(true); } }; - - // Funding Data (Mocked as per UI) const fundingData = [ { label: '年度收入预算', value: budgetInfo?.annualExpenditureBudget ?? '-', unit: '万元' }, { label: '年度支出预算', value: budgetInfo?.annualIncomeBudget ?? '-', unit: '万元' }, @@ -82,7 +69,7 @@ const SoundMechanism = () => { if (result.code == 200) { const files = result.data?.files || []; if (files.length > 0) { - setGalleryData(files.map(item=>({name:item.fileName,url:config.minioIp +item.filePath}))) + setGalleryData(files.map(item => ({ name: item.fileName, url: config.minioIp + item.filePath }))) setModalTitle('管理用房'); setModalVisible(true); }