新益公司
diff --git a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/echarts.js b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/echarts.js
index 5edb898..37b585c 100644
--- a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/echarts.js
+++ b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/echarts.js
@@ -6,7 +6,6 @@ export const initEcharts1 = (main1Ref, chartInstance, data) => {
const companyNames = data.map(item => item.name);
const hazardCounts = data.map(item => item.hazardCount);
const unrectifiedCounts = data.map(item => item.unrectifiedCount);
- const rectificationRates = data.map(item => item.rectificationRate);
const option = {
tooltip: {
@@ -22,7 +21,7 @@ export const initEcharts1 = (main1Ref, chartInstance, data) => {
bottom: "25%",
},
legend: {
- data: ["隐患数量", "未整改数量", "整改率"],
+ data: ["已评分", "未评分"],
top: "0%",
right: "3%",
textStyle: {
@@ -67,7 +66,6 @@ export const initEcharts1 = (main1Ref, chartInstance, data) => {
yAxis: [
{
type: "value",
- name: "数量",
nameTextStyle: {
color: "#FFFFFF",
fontSize: 12,
@@ -91,31 +89,10 @@ export const initEcharts1 = (main1Ref, chartInstance, data) => {
fontSize: 12,
},
},
- {
- type: "value",
- name: "整改率(%)",
- nameTextStyle: {
- color: "#FFFFFF",
- fontSize: 12,
- },
- min: 0,
- max: 100,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLabel: {
- show: true,
- color: "#FFFFFF",
- fontSize: 12,
- },
- },
],
series: [
{
- name: "隐患数量",
+ name: "已评分",
type: "bar",
barWidth: 10,
yAxisIndex: 0,
@@ -125,7 +102,7 @@ export const initEcharts1 = (main1Ref, chartInstance, data) => {
data: hazardCounts,
},
{
- name: "未整改数量",
+ name: "未评分",
type: "bar",
barWidth: 10,
yAxisIndex: 0,
@@ -134,30 +111,6 @@ export const initEcharts1 = (main1Ref, chartInstance, data) => {
},
data: unrectifiedCounts,
},
- {
- name: "整改率",
- type: "line",
- yAxisIndex: 1,
- showAllSymbol: true,
- symbol: "circle",
- symbolSize: 10,
- itemStyle: {
- color: "#33FFFF",
- },
- label: {
- show: true,
- position: "top",
- formatter: "{c}%",
- color: "#FFFFCC",
- fontSize: 12,
- },
- lineStyle: {
- color: "#33FFFF",
- shadowBlur: 1,
- },
- z: 18,
- data: rectificationRates,
- },
],
};
diff --git a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/index.js
index 52e2abe..5e469f4 100644
--- a/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/index.js
+++ b/src/pages/Container/Map/components/Content/IndexInfo/LeftPanel/index.js
@@ -1,5 +1,5 @@
import { useMount } from "ahooks";
-import { useRef, useState } from "react";
+import { useEffect, useRef, useState } from "react";
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
import img9 from "~/assets/images/public/bigScreen/bg9.png";
import img8 from "~/assets/images/public/bigScreen/bg10.png";
@@ -9,12 +9,13 @@ import img5 from "~/assets/images/public/bigScreen/tablebg1.png";
import img6 from "~/assets/images/public/bigScreen/tablebg2.png";
import img3 from "~/assets/images/public/bigScreen/w_ico1.png";
import img4 from "~/assets/images/public/bigScreen/w_ico2.png";
-import img2 from "~/assets/images/public/weather/1.png";
import Title from "~/pages/Container/Map/components/Content/IndexInfo/Title";
+import { getWeather, getWeatherIcon } from "~/utils/weather";
import { initEcharts1 } from "./echarts";
import "./index.less";
function LeftScreen() {
+ const [weather, setWeather] = useState({});
const [block1List, setBlock1List] = useState([
{ id: 1, companyName: "新益公司", status: 0, preventiveMeasures: "远离大树、电线杆、简易房等..." },
{ id: 2, companyName: "华泰化工", status: 1, preventiveMeasures: "加固设备、检查管道连接..." },
@@ -43,18 +44,30 @@ function LeftScreen() {
const chartInstance = useRef(null);
const main1Ref = useRef(null);
+ const loadWeather = async () => {
+ const result = await getWeather();
+
+ setWeather({
+ ...result.now,
+ alertTitle: result.alerts?.[0]?.title || "当前暂无气象预警",
+ });
+ };
+ useEffect(() => {
+ loadWeather();
+ }, []);
+
useMount(() => {
initEcharts1(main1Ref, chartInstance, [
- { name: "新益公司", hazardCount: 123, unrectifiedCount: 23, rectificationRate: 81.3 },
- { name: "华泰化工", hazardCount: 85, unrectifiedCount: 15, rectificationRate: 82.4 },
- { name: "宏达制造", hazardCount: 67, unrectifiedCount: 12, rectificationRate: 82.1 },
- { name: "金鼎能源", hazardCount: 156, unrectifiedCount: 32, rectificationRate: 79.5 },
- { name: "瑞丰新材料", hazardCount: 42, unrectifiedCount: 8, rectificationRate: 81.0 },
- { name: "恒通物流", hazardCount: 78, unrectifiedCount: 18, rectificationRate: 76.9 },
- { name: "天成建筑", hazardCount: 93, unrectifiedCount: 23, rectificationRate: 75.3 },
- { name: "绿源环保", hazardCount: 56, unrectifiedCount: 11, rectificationRate: 80.4 },
- { name: "安泰消防", hazardCount: 112, unrectifiedCount: 22, rectificationRate: 80.4 },
- { name: "创新科技", hazardCount: 71, unrectifiedCount: 16, rectificationRate: 77.5 },
+ { name: "新益公司", hazardCount: 123, unrectifiedCount: 23 },
+ { name: "华泰化工", hazardCount: 85, unrectifiedCount: 15 },
+ { name: "宏达制造", hazardCount: 67, unrectifiedCount: 12 },
+ { name: "金鼎能源", hazardCount: 156, unrectifiedCount: 32 },
+ { name: "瑞丰新材料", hazardCount: 42, unrectifiedCount: 8 },
+ { name: "恒通物流", hazardCount: 78, unrectifiedCount: 18 },
+ { name: "天成建筑", hazardCount: 93, unrectifiedCount: 23 },
+ { name: "绿源环保", hazardCount: 56, unrectifiedCount: 11 },
+ { name: "安泰消防", hazardCount: 112, unrectifiedCount: 22 },
+ { name: "创新科技", hazardCount: 71, unrectifiedCount: 16 },
]);
return () => {
@@ -72,32 +85,30 @@ function LeftScreen() {
-
-
晴
+
+
{weather?.text || "暂无数据"}
温度:
-
28.5°
+
{weather?.temp ? `${weather?.temp}℃` : "--"}
风速:
-
8级
+
{weather?.wind_class || "--"}
-
- 秦皇岛市气象台发布大风橙色预警[工级/严重]
-
+
{weather?.alertTitle || "天气数据加载失败"}
公司名称
-
处置状态
-
预防措施
+
报警处置状态
+
应急报警信息
@@ -172,13 +183,13 @@ function LeftScreen() {
-
+
diff --git a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/index.js b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/index.js
index 9df8660..4ab51e3 100644
--- a/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/index.js
+++ b/src/pages/Container/Map/components/Content/IndexInfo/RightPanel/index.js
@@ -6,9 +6,9 @@ import img2 from "~/assets/images/public/bigScreen/ico6.png";
import img3 from "~/assets/images/public/bigScreen/ico7.png";
import img4 from "~/assets/images/public/bigScreen/ico8.png";
import img7 from "~/assets/images/public/bigScreen/ico9.png";
+import rightbg from "~/assets/images/public/bigScreen/leftbg.png";
import img5 from "~/assets/images/public/bigScreen/tablebg1.png";
import img6 from "~/assets/images/public/bigScreen/tablebg2.png";
-import rightbg from "~/assets/images/public/bigScreen/leftbg.png";
import Title from "~/pages/Container/Map/components/Content/IndexInfo/Title";
import "./index.less";
@@ -42,14 +42,14 @@ function RightScreen() {
-
+
-
单位名称
-
待审批项目数
-
待提交培训人员数
-
待培训人数
+
相关方单位名称
+
资质申请情况
+
项目执行情况
+
执行人员情况
@@ -67,7 +67,7 @@ function RightScreen() {
-
+
@@ -157,9 +157,9 @@ function RightScreen() {
-
公司名称
-
检测系统
-
报警原因
+
设备类型
+
所属单位
+
报警类型
处置状态
diff --git a/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/index.js b/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/index.js
index 8578154..c24e72b 100644
--- a/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/index.js
+++ b/src/pages/Container/Map/components/Content/branchOffice/IndexLeft/index.js
@@ -3,67 +3,13 @@ import { useEffect, useRef, useState } from "react";
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
import icon1 from "~/assets/images/public/bigScreen/img10.png";
import icon2 from "~/assets/images/public/bigScreen/img11.png";
-import SunIcon from "~/assets/images/public/weather/1.png";
-import CloudIcon from "~/assets/images/public/weather/2.png";
-import CloudSunIcon from "~/assets/images/public/weather/3.png";
-import ThunderstormIcon from "~/assets/images/public/weather/4.png";
-import MildRainIcon from "~/assets/images/public/weather/5.png";
-import ModerateRainIcon from "~/assets/images/public/weather/6.png";
-import HeavyRainIcon from "~/assets/images/public/weather/7.png";
-import StormRainIcon from "~/assets/images/public/weather/8.png";
-import SnowIcon from "~/assets/images/public/weather/9.png";
-import ModerateSnowIcon from "~/assets/images/public/weather/10.png";
-import HeavySnowIcon from "~/assets/images/public/weather/11.png";
-import SnowRainIcon from "~/assets/images/public/weather/12.png";
-import FogIcon from "~/assets/images/public/weather/13.png";
-import HazeIcon from "~/assets/images/public/weather/14.png";
-import DustIcon from "~/assets/images/public/weather/15.png";
-import DuststormIcon from "~/assets/images/public/weather/16.png";
import Title from "~/pages/Container/Map/components/Content/branchOffice/Title";
+import { getAlertColor, getWeather, getWeatherIcon } from "~/utils/weather";
import { initEcharts1 } from "./echarts";
import "./index.less";
-export const weatherIconMap = {
- 晴天: SunIcon,
- 晴: SunIcon,
- 多云: CloudSunIcon,
- 阴: CloudIcon,
- 雷阵雨: ThunderstormIcon,
- 小雨: MildRainIcon,
- 中雨: ModerateRainIcon,
- 大雨: HeavyRainIcon,
- 暴雨: StormRainIcon,
- 小雪: SnowIcon,
- 中雪: ModerateSnowIcon,
- 大雪: HeavySnowIcon,
- 雨夹雪: SnowRainIcon,
- 雾: FogIcon,
- 霾: HazeIcon,
- 浮尘: DustIcon,
- 沙尘暴: DuststormIcon,
- 默认: SunIcon,
-};
-
-export const getWeatherIcon = (weatherName) => {
- for (const [key, icon] of Object.entries(weatherIconMap)) {
- if (weatherName.includes(key))
- return icon;
- }
- return weatherIconMap["默认"];
-};
-
-export const getAlertColor = (level) => {
- return { 蓝色预警: "#1E90FF", 黄色预警: "#FFA500", 橙色预警: "#FF4500", 红色预警: "#FF0000" }[level] || "#fff";
-};
-
function IndexLeft() {
- const [weatherData, setWeatherData] = useState({
- text: "晴天",
- temp: "36.5",
- wind_class: "3级",
- wind_dir: "西南风",
- wind_angle: 229,
- });
+ const [weatherData, setWeatherData] = useState({});
const [alert, setAlert] = useState([]);
const [block1List, setBlock1List] = useState([
{ department: "技术部", requiredDevices: 150, anchoredDevices: 142 },
@@ -100,15 +46,9 @@ function IndexLeft() {
const main1Ref = useRef(null);
const getWeatherData = async () => {
- try {
- const response = await fetch("https://api.map.baidu.com/weather/v1/?district_id=130300&data_type=all&ak=dIqOi34IlTg5FkNck1vqoBpLhPAj36S1");
- const data = await response.json();
- setWeatherData(data.result.now);
- setAlert(Array.isArray(data.result.alerts) ? data.result.alerts : []);
- }
- catch (error) {
- console.error("获取天气数据失败:", error);
- }
+ const result = await getWeather();
+ setWeatherData(result.now);
+ setAlert(Array.isArray(result.alerts) ? result.alerts : []);
};
const getLevelColor = (level) => {
@@ -151,7 +91,7 @@ function IndexLeft() {
-
{weatherData.text}
+
{weatherData.text || "暂无数据"}
@@ -160,7 +100,7 @@ function IndexLeft() {
温度:
-
{`${weatherData.temp}℃`}
+
{weatherData.temp ? `${weatherData.temp}℃` : "--"}
@@ -169,7 +109,7 @@ function IndexLeft() {
风速:
-
{weatherData.wind_class}
+
{weatherData.wind_class || "--"}
diff --git a/src/pages/Container/Map/components/Content/branchOffice/QiXiang/index.js b/src/pages/Container/Map/components/Content/branchOffice/QiXiang/index.js
index 1fd8e57..7571fc8 100644
--- a/src/pages/Container/Map/components/Content/branchOffice/QiXiang/index.js
+++ b/src/pages/Container/Map/components/Content/branchOffice/QiXiang/index.js
@@ -3,19 +3,12 @@ import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
import icon3 from "~/assets/images/public/bigScreen/ico21.png";
import icon1 from "~/assets/images/public/bigScreen/img10.png";
import icon2 from "~/assets/images/public/bigScreen/img11.png";
-import { getAlertColor, getWeatherIcon } from "~/pages/Container/Map/components/Content/branchOffice/IndexLeft";
import Title from "~/pages/Container/Map/components/Content/branchOffice/Title";
+import { getAlertColor, getWeather, getWeatherIcon } from "~/utils/weather";
import "./index.less";
function QiXiang() {
- const [weatherData, setWeatherData] = useState({
- text: "晴天",
- temp: "36.5",
- wind_class: "3级",
- wind_dir: "西南风",
- wind_angle: 229,
- prec_1h: 0,
- });
+ const [weatherData, setWeatherData] = useState({});
const [alert, setAlert] = useState([]);
const [block1List, setBlock1List] = useState([
{ department: "技术部", requiredDevices: 150, anchoredDevices: 142 },
@@ -43,15 +36,9 @@ function QiXiang() {
]);
const getWeatherData = async () => {
- try {
- const response = await fetch("https://api.map.baidu.com/weather/v1/?district_id=130300&data_type=all&ak=dIqOi34IlTg5FkNck1vqoBpLhPAj36S1");
- const data = await response.json();
- setWeatherData(data.result.now);
- setAlert(Array.isArray(data.result.alerts) ? data.result.alerts : []);
- }
- catch (error) {
- console.error("获取天气数据失败:", error);
- }
+ const result = await getWeather();
+ setWeatherData(result.now);
+ setAlert(Array.isArray(result.alerts) ? result.alerts : []);
};
useEffect(() => {
@@ -68,7 +55,7 @@ function QiXiang() {
-
{weatherData.text}
+
{weatherData.text || "暂无数据"}
@@ -77,7 +64,7 @@ function QiXiang() {
温度:
-
{`${weatherData.temp}℃`}
+
{weatherData.temp ? `${weatherData.temp}℃` : "--"}
@@ -86,7 +73,7 @@ function QiXiang() {
风速:
-
{weatherData.wind_class}
+
{weatherData.wind_class || "--"}
@@ -95,7 +82,7 @@ function QiXiang() {
降水量:
-
{`${weatherData.prec_1h}毫米`}
+
{weatherData.prec_1h ? `${weatherData.prec_1h}毫米` : "--"}
diff --git a/src/pages/Container/White/BranchOffice/components/CenterPanel/index.js b/src/pages/Container/White/BranchOffice/components/CenterPanel/index.js
index c6ee354..8c2e1ea 100644
--- a/src/pages/Container/White/BranchOffice/components/CenterPanel/index.js
+++ b/src/pages/Container/White/BranchOffice/components/CenterPanel/index.js
@@ -1,21 +1,14 @@
import { useEventListener, useMount } from "ahooks";
import { useEffect, useRef, useState } from "react";
import SeamlessScroll from "zy-react-library/components/SeamlessScroll";
-import { getAlertColor, getWeatherIcon } from "~/pages/Container/Map/components/Content/branchOffice/IndexLeft";
import Title from "~/pages/Container/White/BranchOffice/components/Title";
+import { getAlertColor, getWeather, getWeatherIcon } from "~/utils/weather";
import { initEcharts1, initEcharts2, initEcharts3, initEcharts4, initEcharts5 } from "./echarts";
import "./index.less";
const block3_2TabsList = ["年度", "季度"];
function CenterPanel() {
- const [weatherData, setWeatherData] = useState({
- text: "晴天",
- temp: "36.5",
- wind_class: "3级",
- wind_dir: "西南风",
- wind_angle: 229,
- prec_1h: 0,
- });
+ const [weatherData, setWeatherData] = useState({});
const [alert, setAlert] = useState([]);
const [block1_2List, setBlock1_2List] = useState([
{ department: "技术部", requiredDevices: 150, anchoredDevices: 142 },
@@ -49,15 +42,9 @@ function CenterPanel() {
const main5Ref = useRef(null);
const getWeatherData = async () => {
- try {
- const response = await fetch("https://api.map.baidu.com/weather/v1/?district_id=130300&data_type=all&ak=dIqOi34IlTg5FkNck1vqoBpLhPAj36S1");
- const data = await response.json();
- setWeatherData(data.result.now);
- setAlert(Array.isArray(data.result.alerts) ? data.result.alerts : []);
- }
- catch (error) {
- console.error("获取天气数据失败:", error);
- }
+ const result = await getWeather();
+ setWeatherData(result.now);
+ setAlert(Array.isArray(result.alerts) ? result.alerts : []);
};
useEffect(() => {
@@ -197,19 +184,19 @@ function CenterPanel() {
-
{weatherData.text}
+
{weatherData.text || "暂无数据"}
温度:
-
{`${weatherData.temp}℃`}
+
{weatherData?.temp ? `${weatherData?.temp}℃` : "--"}
风速:
-
{weatherData.wind_class}
+
{weatherData.wind_class || "--"}
diff --git a/src/utils/weather.js b/src/utils/weather.js
new file mode 100644
index 0000000..c3168b6
--- /dev/null
+++ b/src/utils/weather.js
@@ -0,0 +1,79 @@
+import { message } from "antd";
+import SunIcon from "~/assets/images/public/weather/1.png";
+import CloudIcon from "~/assets/images/public/weather/2.png";
+import CloudSunIcon from "~/assets/images/public/weather/3.png";
+import ThunderstormIcon from "~/assets/images/public/weather/4.png";
+import MildRainIcon from "~/assets/images/public/weather/5.png";
+import ModerateRainIcon from "~/assets/images/public/weather/6.png";
+import HeavyRainIcon from "~/assets/images/public/weather/7.png";
+import StormRainIcon from "~/assets/images/public/weather/8.png";
+import SnowIcon from "~/assets/images/public/weather/9.png";
+import ModerateSnowIcon from "~/assets/images/public/weather/10.png";
+import HeavySnowIcon from "~/assets/images/public/weather/11.png";
+import SnowRainIcon from "~/assets/images/public/weather/12.png";
+import FogIcon from "~/assets/images/public/weather/13.png";
+import HazeIcon from "~/assets/images/public/weather/14.png";
+import DustIcon from "~/assets/images/public/weather/15.png";
+import DuststormIcon from "~/assets/images/public/weather/16.png";
+
+const WEATHER_URL = "https://api.map.baidu.com/weather/v1/?district_id=130300&data_type=all&ak=dIqOi34IlTg5FkNck1vqoBpLhPAj36S1";
+
+/**
+ * 获取秦皇岛市天气数据。
+ * 统一校验 HTTP 状态和百度接口业务状态,调用方只处理页面展示状态。
+ * @param {{ signal?: AbortSignal }} options 请求配置,可传入 signal 取消请求。
+ * @returns {Promise
} 百度天气接口 result 数据。
+ */
+export async function getWeather(options = {}) {
+ return {}; // TODO: Remove this line
+
+ const response = await fetch(WEATHER_URL, { signal: options.signal });
+ if (!response.ok) {
+ message.error("天气接口请求失败,请检查网络或稍后再试");
+ return;
+ }
+
+ const data = await response.json();
+ if (data.status !== 0 || !data.result?.now) {
+ message.error(data.message || "天气接口返回数据异常");
+ return;
+ }
+
+ return data.result;
+}
+
+export const weatherIconMap = {
+ 晴天: SunIcon,
+ 晴: SunIcon,
+ 多云: CloudSunIcon,
+ 阴: CloudIcon,
+ 雷阵雨: ThunderstormIcon,
+ 小雨: MildRainIcon,
+ 中雨: ModerateRainIcon,
+ 大雨: HeavyRainIcon,
+ 暴雨: StormRainIcon,
+ 小雪: SnowIcon,
+ 中雪: ModerateSnowIcon,
+ 大雪: HeavySnowIcon,
+ 雨夹雪: SnowRainIcon,
+ 雾: FogIcon,
+ 霾: HazeIcon,
+ 浮尘: DustIcon,
+ 沙尘暴: DuststormIcon,
+ 默认: SunIcon,
+};
+
+export const getWeatherIcon = (weatherName) => {
+ if (!weatherName)
+ return weatherIconMap["默认"];
+
+ for (const [key, icon] of Object.entries(weatherIconMap)) {
+ if (weatherName.includes(key))
+ return icon;
+ }
+ return weatherIconMap["默认"];
+};
+
+export const getAlertColor = (level) => {
+ return { 蓝色预警: "#1E90FF", 黄色预警: "#FFA500", 橙色预警: "#FF4500", 红色预警: "#FF0000" }[level] || "#fff";
+};