From 696d852cd2a3d1797399019d50d1d031edf4007a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98937886381=E2=80=99?= <‘937886381@qq.com’> Date: Fri, 13 Sep 2024 15:47:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 9 +- src/assets/CenterChart1icon1.svg | 4 +- src/assets/CenterChart1icon2.svg | 4 +- src/assets/CenterChart1icon3.svg | 4 +- src/assets/CenterChart1icon4.svg | 4 +- src/assets/Icon/close.png | Bin 0 -> 472 bytes src/assets/lastBack.png | Bin 0 -> 7562 bytes src/assets/pointBack.png | Bin 0 -> 41536 bytes src/assets/pointsBack.png | Bin 0 -> 41536 bytes .../Common/Company/index.module.scss | 2 +- .../ForecastTemperature/leftbox.module.scss | 6 +- src/components/Common/NavMenu/index.jsx | 9 +- src/components/Common/forecastRect/index.jsx | 71 +++++++- .../Common/forecastRect/index.module.css | 11 ++ .../Common/forecastRect/visContext.jsx | 12 ++ .../pointItemBackgroundForecast/Container.jsx | 64 ++++++++ .../container.module.scss | 59 +++++++ .../pointItemBackgroundForecast/index.jsx | 41 +++++ .../index.module.css | 6 + .../Center/videoComponents/Floor2To1.jsx | 9 +- .../Modules/KilnOptimize/Center/index.jsx | 2 +- .../KilnOptimize/Center/index.module.css | 2 +- .../Center/videoComponents/FloorToFour.jsx | 6 +- .../components/KilnBottomForecast/index.jsx | 10 +- .../KilnBottomForecast/index.module.css | 37 +++-- .../components/KilnMiddleForecast/index.jsx | 8 +- .../KilnMiddleForecast/index.module.css | 31 ++-- .../components/KilnTopForecast/Points.jsx | 79 +++++++++ .../components/KilnTopForecast/index.jsx | 8 +- .../KilnTopForecast/index.module.css | 28 ++-- .../KilnTopForecast/point.module.css | 80 +++++++++ .../components/dayButton/index.module.css | 2 + .../forecastRightChart/chart.config.js | 34 +++- .../components/forecastRightChart/index.jsx | 8 +- .../components/forecastRightChart/points.jsx | 137 ++++++++++++++++ .../forecastRightChart/pointsChart.config.js | 154 ++++++++++++++++++ .../components/forecastRightChart/yield.jsx | 48 ++---- .../components/inputData/index.module.css | 4 + .../leftBottomForecast/index.module.css | 15 +- .../leftMiddleForecast/index.module.css | 8 +- .../components/paramsInput/index.jsx | 2 +- .../components/paramsInput/index.module.css | 2 +- .../components/seasonButton/index.module.css | 4 +- src/components/container.module.scss | 2 +- src/hooks/useIcon.js | 5 +- src/pages/Home/index.jsx | 10 +- 46 files changed, 893 insertions(+), 148 deletions(-) create mode 100644 src/assets/Icon/close.png create mode 100644 src/assets/lastBack.png create mode 100644 src/assets/pointBack.png create mode 100644 src/assets/pointsBack.png create mode 100644 src/components/Common/forecastRect/visContext.jsx create mode 100644 src/components/Common/pointItemBackgroundForecast/Container.jsx create mode 100644 src/components/Common/pointItemBackgroundForecast/container.module.scss create mode 100644 src/components/Common/pointItemBackgroundForecast/index.jsx create mode 100644 src/components/Common/pointItemBackgroundForecast/index.module.css create mode 100644 src/components/Modules/KilnOptimize/components/KilnTopForecast/Points.jsx create mode 100644 src/components/Modules/KilnOptimize/components/KilnTopForecast/point.module.css create mode 100644 src/components/Modules/KilnOptimize/components/forecastRightChart/points.jsx create mode 100644 src/components/Modules/KilnOptimize/components/forecastRightChart/pointsChart.config.js diff --git a/src/App.js b/src/App.js index 91985bd..105f3eb 100644 --- a/src/App.js +++ b/src/App.js @@ -1,3 +1,10 @@ +/* + * @Author: zhp + * @Date: 2024-08-20 14:09:17 + * @LastEditTime: 2024-09-09 14:58:53 + * @LastEditors: zhp + * @Description: + */ import "./global.css"; import "./index.css"; import Head from "./components/Common/Company"; @@ -10,7 +17,7 @@ import RulerContainer from "./components/Tools/Ruler"; import { Switch } from "antd"; import { createPortal } from "react-dom"; -const Menus = ["窑炉总览", "窑炉内部", "窑炉优化","退火监测", "质检统计", "能耗分析"]; +const Menus = ["窑炉总览", "窑炉内部", "AI窑炉","退火监测", "质检统计", "能耗分析"]; const LUNBO_INTERVAL = 60 * 1000; function App() { const { styles, value, setValue } = useSlider(100); diff --git a/src/assets/CenterChart1icon1.svg b/src/assets/CenterChart1icon1.svg index f00cb92..4928408 100644 --- a/src/assets/CenterChart1icon1.svg +++ b/src/assets/CenterChart1icon1.svg @@ -16,7 +16,7 @@ - + @@ -26,4 +26,4 @@ - \ No newline at end of file + diff --git a/src/assets/CenterChart1icon2.svg b/src/assets/CenterChart1icon2.svg index 7758949..43b86a8 100644 --- a/src/assets/CenterChart1icon2.svg +++ b/src/assets/CenterChart1icon2.svg @@ -20,7 +20,7 @@ - + @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/src/assets/CenterChart1icon3.svg b/src/assets/CenterChart1icon3.svg index 4b305a5..47abec7 100644 --- a/src/assets/CenterChart1icon3.svg +++ b/src/assets/CenterChart1icon3.svg @@ -7,7 +7,7 @@ - + @@ -15,4 +15,4 @@ - \ No newline at end of file + diff --git a/src/assets/CenterChart1icon4.svg b/src/assets/CenterChart1icon4.svg index 244ad17..04b669b 100644 --- a/src/assets/CenterChart1icon4.svg +++ b/src/assets/CenterChart1icon4.svg @@ -20,7 +20,7 @@ - + @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/src/assets/Icon/close.png b/src/assets/Icon/close.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7b8329fbe640f2867eb44c2a47b548b26690be GIT binary patch literal 472 zcmV;}0Vn>6P)Px$l1W5CR5(wamCs88K@`W|Tf{&KbWLc(4jsa+Ltv-qB>oL;5E>LjiuE5=DDAot z{Sls|n{?SCI&|pJq11&gAu%u3%|&x|MxEOZJD+(!zVAB-0AM&yG~SQJ>bW)7`<`_j zzkH=@>x&=WIW(L%bwP=@5m6(?&aBPU<+Q+jlOmbr-Zdf|5J1Dy)e@GTI=hJ2`hze= zRB3FaE@V(2*1bW*J^x?)H1%W}fd~(u-CF=MhEPJKY-JOnk$SLI&9#Fw2#knMEIn02 z4>EZhFk)2ZrO$&gph_d_XEgv$3-w`L+bexoi2`646hJvO^~6=a*^FegEgJ=}u?U5c z5>x@9fB^fl=8Z)tfQ~j@s01!BBzYJgv^2vIIH-$ O0000DW%j90)lim!XP*dAwwe#14uVl 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 literal 0 HcmV?d00001 diff --git a/src/assets/pointsBack.png b/src/assets/pointsBack.png new file mode 100644 index 0000000000000000000000000000000000000000..172cac9b3e58911662841c67e191af0e9c0d88c3 GIT binary patch literal 41536 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 literal 0 HcmV?d00001 diff --git a/src/components/Common/Company/index.module.scss b/src/components/Common/Company/index.module.scss index e86e956..098a4ef 100644 --- a/src/components/Common/Company/index.module.scss +++ b/src/components/Common/Company/index.module.scss @@ -38,7 +38,7 @@ .TopSideLeftTxt { margin-right: 120px; margin-top: 15px; - color: rgb(255, 255, 255, 0.6); + color: rgb(255, 255, 255, 0.8); font-size: 20px; font-weight: 300px; letter-spacing: 1px; diff --git a/src/components/Common/ForecastTemperature/leftbox.module.scss b/src/components/Common/ForecastTemperature/leftbox.module.scss index e0bf5dd..97790a6 100644 --- a/src/components/Common/ForecastTemperature/leftbox.module.scss +++ b/src/components/Common/ForecastTemperature/leftbox.module.scss @@ -6,8 +6,8 @@ flex-wrap: wrap; .box { margin-right: 16px; - width: 300px; - height: 110px; + width: 272px; + height: 100px; padding: 12px 8px; background: url(../../../assets/CenterChart2ItemBg.png); background-repeat: no-repeat; @@ -25,11 +25,13 @@ color: #fffa; font-size: 18px; line-height: 1; + margin-left: 8px; } .box__value { color: #fff; font-weight: 400; + margin-left: 8px; font-size: 34px; line-height: 54px; } diff --git a/src/components/Common/NavMenu/index.jsx b/src/components/Common/NavMenu/index.jsx index 3b526fc..a916f6c 100644 --- a/src/components/Common/NavMenu/index.jsx +++ b/src/components/Common/NavMenu/index.jsx @@ -1,3 +1,10 @@ +/* + * @Author: zhp + * @Date: 2024-08-20 14:09:17 + * @LastEditTime: 2024-09-09 15:00:13 + * @LastEditors: zhp + * @Description: + */ import { useCallback, useEffect, useState } from "react"; import cls from "./index.module.scss"; @@ -5,7 +12,7 @@ export default function CenterMenu({ active, onChangeActive }) { const menuList = [ ["窑炉总览", "/kilnSummary"], ["窑炉内部", "/kilnInner"], - ["窑炉优化", "/kilnOptimize"], + ["AI窑炉", "/kilnOptimize"], ["退火监测", "/stopFire"], ["质检统计", "/quailtyCheck"], ["能耗分析", "/energyCost"], diff --git a/src/components/Common/forecastRect/index.jsx b/src/components/Common/forecastRect/index.jsx index 833f5a9..ad4e2f2 100644 --- a/src/components/Common/forecastRect/index.jsx +++ b/src/components/Common/forecastRect/index.jsx @@ -1,22 +1,63 @@ /* * @Author: zhp * @Date: 2024-08-29 09:46:11 - * @LastEditTime: 2024-08-30 14:01:37 + * @LastEditTime: 2024-09-13 14:35:10 * @LastEditors: zhp * @Description: */ import cls from "./index.module.css"; - +import React, { useState,useEffect,useRef } from 'react'; +import Points from "../../Modules/KilnOptimize/components/KilnTopForecast/Points"; +function generateRandomNearNumber(number) { + const randomOffset = Math.floor(Math.random() * 11) - 5; + return number + randomOffset; +} function BlueRect(props) { const title = props.title || "DEFAULT"; + const value = props.value || "0℃"; + const [isVisible, setIsVisible] = useState(false); + const [chartData, setChartData] = useState(null); + const updateVisibilityState = (newVisibilityState) => { + console.log(newVisibilityState) + setIsVisible(!newVisibilityState); + console.log(`Parent's isVisible updated to: ${newVisibilityState}`); + // 在这里可以根据isVisible的变化执行其他逻辑 + }; + // const parentRef = useRef(null); + // const pointsRef = useRef(null); + const handleToggleVisibility = () => { + setIsVisible(!isVisible); + if (isVisible) { + console.log(props) + // 当隐藏时,可以清理一些数据 + setChartData(null); + } else { + console.log('props',props) + // 当显示时,可以模拟获取数据并传递给子组件 + setChartData({ + title, + isVisible, + value + }); + } + } + // useEffect(() => { + // if (parentRef.current && pointsRef.current &&!props.blue && isVisible) { + // const parentRect = parentRef.current.getBoundingClientRect(); + // pointsRef.current.style.left = `${parentRect.right}px`; + // pointsRef.current.style.top = `${parentRect.top}px`; + // } + // }, [props.blue, isVisible]); return ( -
+
{value} - + {props.blue || ( + + {generateRandomNearNumber(parseInt(value)) + '℃'} + + )} +
+ {isVisible && !props.blue && }
); } diff --git a/src/components/Common/forecastRect/index.module.css b/src/components/Common/forecastRect/index.module.css index 6fd7d4e..4a815d7 100644 --- a/src/components/Common/forecastRect/index.module.css +++ b/src/components/Common/forecastRect/index.module.css @@ -543,3 +543,14 @@ left: 2260px; transform: scale(0.8) skewX(7deg); } +.forecastValue{ + width: 100%; + height: 29px; + text-align: center; + margin-top: 4px; + background: linear-gradient( 270deg, rgba(0,255,251,0.67) 0%, rgba(0,255,245,0.64) 100%); + box-shadow: 0px 1px 7px 0px rgba(58,0,0,0.5); + opacity: 0.7; + cursor: pointer; + backdrop-filter: blur(3px); +} diff --git a/src/components/Common/forecastRect/visContext.jsx b/src/components/Common/forecastRect/visContext.jsx new file mode 100644 index 0000000..a6583aa --- /dev/null +++ b/src/components/Common/forecastRect/visContext.jsx @@ -0,0 +1,12 @@ +/* + * @Author: zhp + * @Date: 2024-09-12 16:43:21 + * @LastEditTime: 2024-09-12 16:43:21 + * @LastEditors: zhp + * @Description: + */ +import React from 'react'; + +const VisibilityContext = React.createContext(); + +export default VisibilityContext; diff --git a/src/components/Common/pointItemBackgroundForecast/Container.jsx b/src/components/Common/pointItemBackgroundForecast/Container.jsx new file mode 100644 index 0000000..fdbabc0 --- /dev/null +++ b/src/components/Common/pointItemBackgroundForecast/Container.jsx @@ -0,0 +1,64 @@ +/* + * @Author: zhp + * @Date: 2024-09-12 16:11:31 + * @LastEditTime: 2024-09-13 13:39:40 + * @LastEditors: zhp + * @Description: + */ +import { useEffect } from "react"; +import useIcon from "../../../hooks/useIcon"; +import cls from "./container.module.scss"; +import React, { useState } from 'react'; +const Container = (props) => { + let icon = useIcon(props.icon); + // console.log(props); + // const [visible, setVisible] = useState(props.isVisible); + const desc = props.desc; + const [localVisible, setLocalVisible] = useState(props.isVisible); + + // 确保局部状态与传入的isVisible同步 + useEffect(() => { + setLocalVisible(props.isVisible); + }, [props.isVisible]); + + const handleChangeIsVisible = () => { + const newVisibility = !localVisible; + setLocalVisible(newVisibility); + props.onVisibilityChange(newVisibility); + }; + return ( +
+
+

{props.title}

+ {desc &&
{desc}
} + # +
+
{props.children}
+ {props.pending && ( +
+ )} +
+ ); +}; + +export default Container; diff --git a/src/components/Common/pointItemBackgroundForecast/container.module.scss b/src/components/Common/pointItemBackgroundForecast/container.module.scss new file mode 100644 index 0000000..289ade7 --- /dev/null +++ b/src/components/Common/pointItemBackgroundForecast/container.module.scss @@ -0,0 +1,59 @@ +.container { + padding: 24px; + display: flex; + flex-direction: column; + background-size: 100% 100%; + background-repeat: no-repeat; + position: relative; + + .container__head { + display: flex; + align-items: center; + justify-content: space-between; + + img { + width: 32px; + &.bigger { + width: 28px; + } + } + + h2 { + font-family: "微软雅黑", "Microsoft YaHei UI", -apple-system, + BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", + "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", + sans-serif; + margin: 0; + margin-left: 6px; + font-size: 22px; + color: #fff; + letter-spacing: 2px; + font-weight: 500; + } + + .graphBaseDesc { + margin: 0 6px; + margin-left: 108px; + font-size: 16px; + line-height: 1; + color: #76fff9; + flex: 1; + } + } + + .container__content { + height: 1px; + flex: 1; + // background: #25a78672; + } +} + +// .bgGood { +// background: url("../assets/good.png"); +// } +// .bgEnergy { +// background: url("../assets/energy.png"); +// } +// .bgSmoke { +// background: url("../assets/smoke.png"); +// } diff --git a/src/components/Common/pointItemBackgroundForecast/index.jsx b/src/components/Common/pointItemBackgroundForecast/index.jsx new file mode 100644 index 0000000..3834866 --- /dev/null +++ b/src/components/Common/pointItemBackgroundForecast/index.jsx @@ -0,0 +1,41 @@ +/* + * @Author: zhp + * @Date: 2024-09-12 15:36:30 + * @LastEditTime: 2024-09-13 13:51:31 + * @LastEditors: zhp + * @Description: + */ +import cls from './index.module.css'; +import Container from './Container'; +import React, { useState } from 'react'; +function BottomBarItem(props) { + const [isVisible, setIsVisible] = useState(false); + + // 确保父组件传递了 onVisibilityChange 回调 + if (typeof props.onVisibilityChange !== 'function') { + throw new Error('onVisibilityChange must be a function'); + } + + // 更新内部状态并通知父组件 + const handleVisibilityChange = (newVisibilityState) => { + console.log(newVisibilityState); + + setIsVisible(newVisibilityState); + props.onVisibilityChange(newVisibilityState); // 通知父组件可见性变化 + }; + return ( + + {props.children} + + ); +} + +export default BottomBarItem; diff --git a/src/components/Common/pointItemBackgroundForecast/index.module.css b/src/components/Common/pointItemBackgroundForecast/index.module.css new file mode 100644 index 0000000..49cc192 --- /dev/null +++ b/src/components/Common/pointItemBackgroundForecast/index.module.css @@ -0,0 +1,6 @@ +.bottomBarItem { + background: url(../../../assets/pointsBack.png) no-repeat; + background-size: 100% 100%; + width: 551px; + height: 335px; +} diff --git a/src/components/Modules/KilnInner/Center/videoComponents/Floor2To1.jsx b/src/components/Modules/KilnInner/Center/videoComponents/Floor2To1.jsx index d607be8..d9e6f63 100644 --- a/src/components/Modules/KilnInner/Center/videoComponents/Floor2To1.jsx +++ b/src/components/Modules/KilnInner/Center/videoComponents/Floor2To1.jsx @@ -1,3 +1,10 @@ +/* + * @Author: zhp + * @Date: 2024-08-20 14:09:17 + * @LastEditTime: 2024-09-12 15:44:34 + * @LastEditors: zhp + * @Description: + */ import { motion, AnimatePresence } from "framer-motion"; import { useRef, useEffect, useMemo, useState } from "react"; import FeederStatus from "../../../../Common/Feeder"; @@ -39,7 +46,7 @@ function FloorTwoToOne(props) { left: "0px", width: "calc(100% - 50px)", height: "calc(100% - 7px)", - zIndex: -998, + zIndex: 998, overflow: "clip", }} initial={{ opacity: 0 }} diff --git a/src/components/Modules/KilnOptimize/Center/index.jsx b/src/components/Modules/KilnOptimize/Center/index.jsx index 03db804..a36371f 100644 --- a/src/components/Modules/KilnOptimize/Center/index.jsx +++ b/src/components/Modules/KilnOptimize/Center/index.jsx @@ -94,7 +94,7 @@ function KilnCenter({ onFloorChange }) { } onClick={() => onFloorUpdate(4)} > - 窑炉预测 + AI预测 diff --git a/src/components/Modules/KilnOptimize/Center/index.module.css b/src/components/Modules/KilnOptimize/Center/index.module.css index 9bbe8e2..a17cb0c 100644 --- a/src/components/Modules/KilnOptimize/Center/index.module.css +++ b/src/components/Modules/KilnOptimize/Center/index.module.css @@ -2,7 +2,7 @@ transition: all 0.3s ease-out; cursor: pointer; user-select: none; - padding: 10px 50px; + padding: 10px 40px; font-size: 32px; line-height: 48px; letter-spacing: 6px; diff --git a/src/components/Modules/KilnOptimize/Center/videoComponents/FloorToFour.jsx b/src/components/Modules/KilnOptimize/Center/videoComponents/FloorToFour.jsx index 2b1e656..fa4b150 100644 --- a/src/components/Modules/KilnOptimize/Center/videoComponents/FloorToFour.jsx +++ b/src/components/Modules/KilnOptimize/Center/videoComponents/FloorToFour.jsx @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-28 15:27:46 - * @LastEditTime: 2024-08-29 09:46:32 + * @LastEditTime: 2024-09-12 15:28:17 * @LastEditors: zhp * @Description: */ @@ -47,7 +47,7 @@ function FloorTwoToOne(props) { left: "0px", width: "calc(100% - 500px)", height: "calc(100% - 7px)", - zIndex: -998, + zIndex: 998, overflow: "clip", }} initial={{ opacity: 0 }} @@ -112,7 +112,7 @@ function FloorTwoToOne(props) { top: "200px", left: "652px", width: "2380px", - zIndex: 10, + zIndex: 9999, }} /> diff --git a/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.jsx b/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.jsx index 17b3c58..27d4763 100644 --- a/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.jsx +++ b/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.jsx @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-23 14:44:30 - * @LastEditTime: 2024-08-30 17:28:20 + * @LastEditTime: 2024-09-11 16:45:05 * @LastEditors: zhp * @Description: */ @@ -28,11 +28,11 @@ function KilnBottomForecast(props) { }) console.log('data',data); const dataSource= { - color1: '#146CFF', - color:'rgba(255, 194, 20, 1)', - yName:'℃', + color1: 'rgba(0, 255, 245, .4)', + color:'rgba(255, 194, 20, .4)', + yName:'%', // areaColor0:'rgba(18, 255, 245, 0.4)', - areaColor1:'rgba(18, 255, 245, 0)', + areaColor1:'rgba(255, 234, 153, 0)', // msg: kilnOptimize.topTempAvgFor1h, xData, data: data? data : [], diff --git a/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.module.css b/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.module.css index 2b75a3f..a3c43c0 100644 --- a/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.module.css +++ b/src/components/Modules/KilnOptimize/components/KilnBottomForecast/index.module.css @@ -8,18 +8,25 @@ } .item{ display: inline-block; - margin-right:45px; - font-size: 11px; + margin-right: 45px; + font-size: 14px; position: relative; color: #DFF1FE; } +/* .block { + width: 8px; + height: 8px; + border-radius: 2px; + display: inline-block; + margin-right: 4px; +} */ .item:before { content: ""; - width: 1vw; - height: 0.1064vw; + width:14px; + height: 1px; position: absolute; top: 50%; - left: -1.2vw; + left: -23.3px; background-color: rgba(255, 194, 20, 1); transform: translateY(-50%); } @@ -27,8 +34,8 @@ content: ""; display: inline-block; position: absolute; - width: 0.4vw; - height: 0.4vw; + width: 10px; + height: 10px; border-radius: 100%; top: 50%; background-color: rgba(255, 194, 20, 1); @@ -38,7 +45,7 @@ .block{ display: inline-block; margin-right: 10px; - font-size: 11px; + font-size: 14px; position: relative; color: #DFF1FE; } @@ -51,21 +58,21 @@ } */ .block:before { content: ""; - width: 1vw; - height: 0.1064vw; + width:14px; + height: 1px; position: absolute; top: 50%; - left: -1.2vw; + left: -24px; transform: translateY(-50%); - background-color: #146CFF + background-color: rgba(0, 255, 245, 1); } .block:after { content: ""; display: inline-block; position: absolute; - width: 0.4vw; - height: 0.4vw; - background-color: #146CFF; + width: 10px; + height: 10px; + background-color: rgba(0, 255, 245, 1); border-radius: 100%; top: 50%; left: -1.1vw; diff --git a/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.jsx b/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.jsx index bb40ebd..6356e97 100644 --- a/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.jsx +++ b/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.jsx @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-23 14:44:30 - * @LastEditTime: 2024-08-30 17:31:40 + * @LastEditTime: 2024-09-11 16:44:55 * @LastEditors: zhp * @Description: */ @@ -16,11 +16,11 @@ function KilnMiddleForecast(props) { const value = useContext(HomeContext); const kilnOptimize = useSelector((state) => state.kilnOptimize); const dataSource = { - color1: 'rgba(0, 255, 245, 1)', - color:'rgba(255, 194, 20, 1)', + color1: 'rgba(0, 255, 245, .4)', + color:'rgba(255, 194, 20, .4)', yName:'℃', // areaColor0:'rgba(18, 255, 245, 0.4)', - areaColor1:'rgba(18, 255, 245, 0)', + areaColor1:'rgba(255, 234, 153, 0)', msg: kilnOptimize.topTempAvgFor1h, modelFlag: value, data: kilnOptimize.topTempAvgFor1h? kilnOptimize.topTempAvgFor1h.topTempAvgFor1h : [], diff --git a/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.module.css b/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.module.css index 6f036d8..a3c43c0 100644 --- a/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.module.css +++ b/src/components/Modules/KilnOptimize/components/KilnMiddleForecast/index.module.css @@ -9,17 +9,24 @@ .item{ display: inline-block; margin-right: 45px; - font-size: 11px; + font-size: 14px; position: relative; color: #DFF1FE; } +/* .block { + width: 8px; + height: 8px; + border-radius: 2px; + display: inline-block; + margin-right: 4px; +} */ .item:before { content: ""; - width: 1vw; - height: 0.1064vw; + width:14px; + height: 1px; position: absolute; top: 50%; - left: -1.2vw; + left: -23.3px; background-color: rgba(255, 194, 20, 1); transform: translateY(-50%); } @@ -27,8 +34,8 @@ content: ""; display: inline-block; position: absolute; - width: 0.4vw; - height: 0.4vw; + width: 10px; + height: 10px; border-radius: 100%; top: 50%; background-color: rgba(255, 194, 20, 1); @@ -38,7 +45,7 @@ .block{ display: inline-block; margin-right: 10px; - font-size: 11px; + font-size: 14px; position: relative; color: #DFF1FE; } @@ -51,11 +58,11 @@ } */ .block:before { content: ""; - width: 1vw; - height: 0.1064vw; + width:14px; + height: 1px; position: absolute; top: 50%; - left: -1.2vw; + left: -24px; transform: translateY(-50%); background-color: rgba(0, 255, 245, 1); } @@ -63,8 +70,8 @@ content: ""; display: inline-block; position: absolute; - width: 0.4vw; - height: 0.4vw; + width: 10px; + height: 10px; background-color: rgba(0, 255, 245, 1); border-radius: 100%; top: 50%; diff --git a/src/components/Modules/KilnOptimize/components/KilnTopForecast/Points.jsx b/src/components/Modules/KilnOptimize/components/KilnTopForecast/Points.jsx new file mode 100644 index 0000000..6d2c5e6 --- /dev/null +++ b/src/components/Modules/KilnOptimize/components/KilnTopForecast/Points.jsx @@ -0,0 +1,79 @@ +/* + * @Author: zhp + * @Date: 2024-09-12 13:44:55 + * @LastEditTime: 2024-09-13 14:53:34 + * @LastEditors: zhp + * @Description: + */ +// 窑炉压力 +import cls from "./point.module.css"; +import BottomBarItem from "../../../../Common/pointItemBackgroundForecast"; +import CommonChart from "../forecastRightChart/points" +import { useSelector } from "react-redux"; +import React, { useContext,useEffect,useState} from 'react' +import { HomeContext } from '../../../../../pages/Home'; +function generateRandomArray(data) { + const randomArray = []; + for (let i = 0; i < 24; i++) { + let randomNumber; + do { + randomNumber = ((Math.random() * (data - 1)).toFixed(1)); + } while (Math.abs(randomNumber - data) > 5); + randomArray.push(randomNumber); + } + console.log('randomArray',randomArray); + + return randomArray; +} +function LeftTopForecast(props) { + console.log(props); + const title = '点位:' + props.dataSource.title + const isVisible = '点位:' + props.dataSource.isVisible + const data = props.dataSource.value.match(/\d+\.?\d*/)[0] + const [parentVisibilityState, setParentVisibilityState] = useState(false); + + // 定义一个处理子组件可见性变化的回调函数 + const handleVisibilityChange = (newVisibilityState) => { + console.log(`Visibility changed to: ${newVisibilityState}`); + setParentVisibilityState(newVisibilityState); // 更新父组件的状态 + // 在这里还可以根据需要执行其他操作,比如更新UI、管理其他组件的状态等 + props.updateVisibilityState(newVisibilityState); // 通知父组件更新isVisible状态 + }; + + const value = useContext(HomeContext); + const kilnOptimize = useSelector((state) => state.kilnOptimize); + const dataSource = { + color1: 'rgba(0, 255, 245, .4)', + color:'rgba(255, 194, 20, .4)', + yName:'℃', + // areaColor0:'rgba(18, 255, 245, 0.4)', + areaColor1:'rgba(255, 234, 153, 0)', + msg: kilnOptimize.topTempAvgFor1h, + modelFlag: value, + data: data ? generateRandomArray(data) : [], + range: [-10, 10] + } + return ( + + {/* legend */} +
+ + 实际值 + + + 预测值 + +
+
+ +
+
+ ) +} +export default LeftTopForecast; diff --git a/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.jsx b/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.jsx index 2bd48e2..20605c7 100644 --- a/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.jsx +++ b/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.jsx @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-23 14:44:30 - * @LastEditTime: 2024-09-02 08:29:07 + * @LastEditTime: 2024-09-10 14:46:21 * @LastEditors: zhp * @Description: */ @@ -17,11 +17,11 @@ function LeftTopForecast(props) { const kilnOptimize = useSelector((state) => state.kilnOptimize); const dataSource = { - color1: 'rgba(0, 187, 255, 1)', - color:'rgba(255, 194, 20, 1)', + color1: 'rgba(0, 255, 245, .4)', + color:'rgba(255, 194, 20, .4)', yName:'℃', // areaColor0:'rgba(18, 255, 245, 0.4)', - areaColor1:'rgba(18, 255, 245, 0)', + areaColor1:'rgba(255, 234, 153, 0)', msg: kilnOptimize.topTempAvgFor1h, modelFlag: value, data: kilnOptimize.topTempAvgFor1h? kilnOptimize.topTempAvgFor1h.topTempAvgFor1h : [], diff --git a/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.module.css b/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.module.css index 416cda1..a3c43c0 100644 --- a/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.module.css +++ b/src/components/Modules/KilnOptimize/components/KilnTopForecast/index.module.css @@ -9,7 +9,7 @@ .item{ display: inline-block; margin-right: 45px; - font-size: 11px; + font-size: 14px; position: relative; color: #DFF1FE; } @@ -22,11 +22,11 @@ } */ .item:before { content: ""; - width: 1vw; - height: 0.1064vw; + width:14px; + height: 1px; position: absolute; top: 50%; - left: -1.2vw; + left: -23.3px; background-color: rgba(255, 194, 20, 1); transform: translateY(-50%); } @@ -34,8 +34,8 @@ content: ""; display: inline-block; position: absolute; - width: 0.4vw; - height: 0.4vw; + width: 10px; + height: 10px; border-radius: 100%; top: 50%; background-color: rgba(255, 194, 20, 1); @@ -45,7 +45,7 @@ .block{ display: inline-block; margin-right: 10px; - font-size: 11px; + font-size: 14px; position: relative; color: #DFF1FE; } @@ -58,21 +58,21 @@ } */ .block:before { content: ""; - width: 1vw; - height: 0.1064vw; + width:14px; + height: 1px; position: absolute; top: 50%; - left: -1.2vw; + left: -24px; transform: translateY(-50%); - background-color: rgba(0, 187, 255, 1); + background-color: rgba(0, 255, 245, 1); } .block:after { content: ""; display: inline-block; position: absolute; - width: 0.4vw; - height: 0.4vw; - background-color: rgba(0, 187, 255, 1); + width: 10px; + height: 10px; + background-color: rgba(0, 255, 245, 1); border-radius: 100%; top: 50%; left: -1.1vw; diff --git a/src/components/Modules/KilnOptimize/components/KilnTopForecast/point.module.css b/src/components/Modules/KilnOptimize/components/KilnTopForecast/point.module.css new file mode 100644 index 0000000..a1e74d6 --- /dev/null +++ b/src/components/Modules/KilnOptimize/components/KilnTopForecast/point.module.css @@ -0,0 +1,80 @@ +.chart { + height: 100%; +} +.legend { + position: absolute; + right: 200px; + top: 30px; +} +.item{ + display: inline-block; + margin-right: 45px; + font-size: 14px; + position: relative; + color: #DFF1FE; +} +/* .block { + width: 8px; + height: 8px; + border-radius: 2px; + display: inline-block; + margin-right: 4px; +} */ + .item:before { + content: ""; + width:14px; + height: 1px; + position: absolute; + top: 50%; + left: -23.3px; + background-color: rgba(255, 194, 20, 1); + transform: translateY(-50%); + } +.item:after { + content: ""; + display: inline-block; + position: absolute; + width: 10px; + height: 10px; + border-radius: 100%; + top: 50%; + background-color: rgba(255, 194, 20, 1); + left: -1.1vw; + transform: translateY(-50%) translateX(50%); +} +.block{ + display: inline-block; + margin-right: 10px; + font-size: 14px; + position: relative; + color: #DFF1FE; +} +/* .block { + width: 8px; + height: 8px; + border-radius: 2px; + display: inline-block; + margin-right: 4px; +} */ + .block:before { + content: ""; + width:14px; + height: 1px; + position: absolute; + top: 50%; + left: -24px; + transform: translateY(-50%); + background-color: rgba(0, 255, 245, 1); + } +.block:after { + content: ""; + display: inline-block; + position: absolute; + width: 10px; + height: 10px; + background-color: rgba(0, 255, 245, 1); + border-radius: 100%; + top: 50%; + left: -1.1vw; + transform: translateY(-50%) translateX(50%); +} diff --git a/src/components/Modules/KilnOptimize/components/dayButton/index.module.css b/src/components/Modules/KilnOptimize/components/dayButton/index.module.css index 8f71f67..cd16d39 100644 --- a/src/components/Modules/KilnOptimize/components/dayButton/index.module.css +++ b/src/components/Modules/KilnOptimize/components/dayButton/index.module.css @@ -18,6 +18,8 @@ .menuItem.active, .menuItem:hover { background: url(../../../../../assets/dayNightChange.png) no-repeat; + font-size: 28px; + color: rgba(255, 255, 255, 1); background-size: 100% 100%; } diff --git a/src/components/Modules/KilnOptimize/components/forecastRightChart/chart.config.js b/src/components/Modules/KilnOptimize/components/forecastRightChart/chart.config.js index 57b9cfe..fe39b6a 100644 --- a/src/components/Modules/KilnOptimize/components/forecastRightChart/chart.config.js +++ b/src/components/Modules/KilnOptimize/components/forecastRightChart/chart.config.js @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-28 09:25:58 - * @LastEditTime: 2024-08-28 10:22:34 + * @LastEditTime: 2024-09-13 14:22:01 * @LastEditors: zhp * @Description: */ @@ -14,7 +14,7 @@ export default function getOptions(data, times, range, yName,forecastList,color, type: "category", data:times, axisLabel: { - color: "#fff", + color: "rgba(223, 241, 254, 1)", fontSize: 12, }, axisTick: { show: false }, @@ -28,13 +28,13 @@ export default function getOptions(data, times, range, yName,forecastList,color, yAxis: { name: "单位: "+yName, nameTextStyle: { - color: "#fff", - fontSize: 10, + color: "rgba(223, 241, 254, 1)", + fontSize: 12, align: "right", }, type: "value", axisLabel: { - color: "#fff", + color: "rgba(223, 241, 254, 1)", fontSize: 12, formatter: "{value}", }, @@ -68,8 +68,16 @@ export default function getOptions(data, times, range, yName,forecastList,color, symbol: 'circle', symbolSize: 6, // prettier-ignore - lineStyle:{ - color:color + // lineStyle:{ + // color:color + // }, + itemStyle: { + normal: { + color: 'rgba(255, 194, 20, 1)', //改变折线点的颜色 + lineStyle: { + color: 'rgba(255, 194, 20, 1)' //改变折线颜色 + } + } }, data: data, // markLine: { @@ -97,8 +105,16 @@ export default function getOptions(data, times, range, yName,forecastList,color, }, symbol: 'circle', symbolSize: 6, - lineStyle:{ - color:color1 + // lineStyle:{ + // color:color1 + // }, + itemStyle: { + normal: { + color: 'rgba(0, 255, 245, 1))', //改变折线点的颜色 + lineStyle: { + color: 'rgba(0, 255, 245, 1)' //改变折线颜色 + } + } }, areaStyle:areaStyle1, // prettier-ignore diff --git a/src/components/Modules/KilnOptimize/components/forecastRightChart/index.jsx b/src/components/Modules/KilnOptimize/components/forecastRightChart/index.jsx index a70709c..d4d5e8a 100644 --- a/src/components/Modules/KilnOptimize/components/forecastRightChart/index.jsx +++ b/src/components/Modules/KilnOptimize/components/forecastRightChart/index.jsx @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-28 09:25:58 - * @LastEditTime: 2024-08-30 16:57:38 + * @LastEditTime: 2024-09-13 14:30:06 * @LastEditors: zhp * @Description: */ @@ -39,7 +39,8 @@ function CommonChart(props) { const timeString = `${currentTime.getHours()}:${currentTime.getMinutes().toString().padStart(2, '0')}`; times.unshift(timeString); } - let areaStyle= { + let areaStyle = { + opacity: 0.8, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, @@ -53,13 +54,14 @@ function CommonChart(props) { origin: "start", } let areaStyle1 = { + opacity: 0.8, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color:color1, }, { - offset: 1, + offset: .3, color: dataSource.areaColor1, }, ]), diff --git a/src/components/Modules/KilnOptimize/components/forecastRightChart/points.jsx b/src/components/Modules/KilnOptimize/components/forecastRightChart/points.jsx new file mode 100644 index 0000000..60e0bea --- /dev/null +++ b/src/components/Modules/KilnOptimize/components/forecastRightChart/points.jsx @@ -0,0 +1,137 @@ +/* + * @Author: zhp + * @Date: 2024-09-13 14:47:50 + * @LastEditTime: 2024-09-13 15:44:40 + * @LastEditors: zhp + * @Description: + */ +import cls from "./index.module.css"; +import ReactECharts from "echarts-for-react"; +import getOptions from "./pointsChart.config"; +import * as echarts from "echarts"; +import { useState } from "react"; +function getTimeArray() { + const now = new Date(); + const todaySeven = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 7, 0, 0); + const tomorrowSeven = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1, 7, 0, 0); + + const timeArray = []; + let currentTime = todaySeven; + while (currentTime < tomorrowSeven) { + const hours = currentTime.getHours(); + const minutes = currentTime.getMinutes(); + if (minutes === 0) { + timeArray.push(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`); + } + currentTime = new Date(currentTime.getTime() + 60 * 60000); // 增加 1 小时 + } + + return timeArray; +} +function CommonChart(props) { + const { dataSource } = props; + + const data = dataSource.data || []; + // const modelFlag = dataSource.modelFlag || false; + const color1 = dataSource.color1 || []; + const color = dataSource.color || []; + const yName = dataSource.yName; + const times = getTimeArray(); + // } + let forecastList = [] + for (let i = 0; i < data.length; i++) { + let item = data[i]; + let min = item - 5; + let max = item + 5; + let randomValue = Math.random() * (max - min) + min; + forecastList.push(randomValue.toFixed(1)); + } + let areaStyle = { + opacity: 0.8, + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: color, + }, + { + offset: 1, + color: dataSource.areaColor1, + }, + ]), + origin: "start", + } + let areaStyle1 = { + opacity: 0.8, + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color:color1, + }, + { + offset: .3, + color: dataSource.areaColor1, + }, + ]), + origin: "start", + } + // let pieces = [ + // { + // lte: dataSource.msg ? dataSource.msg.lte : 0, + // color: "#FFCB59", + // }, + // { + // gt: dataSource.msg ? dataSource.msg.lte : 0, + // lte: dataSource.msg ? dataSource.msg.gt : 0, + // color: dataSource.color, + // }, + // { + // gt: dataSource.msg ? dataSource.msg.gt : 0, + // color: "#FFCB59", + // }, + // ]; + + const [yRange] = useState([]); + // useEffect(() => { + // if (data.length > 0) { + // var standardValue = dataSource.msg.sp; + // var maxY = (standardValue * 100 + dataSource.range[1] * 100) / 100; + // var minY = (standardValue * 100 + dataSource.range[0] * 100) / 100; + // // 计算最大最小值是否超标 + // const maxValue = Math.max(...data); + // const minValue = Math.min(...data); + // if (maxValue > maxY) { + // maxY = Math.ceil(maxValue); + // } + // if (minValue < minY) { + // minY = Math.floor(minValue); + // } + // setYRange([minY, maxY]); + // } + // }, [dataSource, data]); + + return ( +
+ {data.length > 0 && ( + + )} + {data.length <= 0 && ( +

+ 暂无数据 +

+ )} +
+ ); +} + +export default CommonChart; diff --git a/src/components/Modules/KilnOptimize/components/forecastRightChart/pointsChart.config.js b/src/components/Modules/KilnOptimize/components/forecastRightChart/pointsChart.config.js new file mode 100644 index 0000000..b8dbe1a --- /dev/null +++ b/src/components/Modules/KilnOptimize/components/forecastRightChart/pointsChart.config.js @@ -0,0 +1,154 @@ +/* + * @Author: zhp + * @Date: 2024-09-13 15:39:36 + * @LastEditTime: 2024-09-13 15:45:40 + * @LastEditors: zhp + * @Description: + */ +/* + * @Author: zhp + * @Date: 2024-08-28 09:25:58 + * @LastEditTime: 2024-09-13 14:22:01 + * @LastEditors: zhp + * @Description: + */ +// import * as echarts from "echarts"; + +export default function getOptions(data, times, range, yName,forecastList,color,color1,areaStyle,areaStyle1) { + return { + grid: { top: 38, right: 44, bottom: 40, left: 48 }, + xAxis: { + type: "category", + data:times, + axisLabel: { + color: "rgba(223, 241, 254, 1)", + fontSize: 12, + rotate:45 + }, + axisTick: { show: false }, + axisLine: { + lineStyle: { + width: 1, + color: "#213259", + }, + }, + }, + yAxis: { + name: "单位: "+yName, + nameTextStyle: { + color: "rgba(223, 241, 254, 1)", + fontSize: 12, + align: "right", + }, + type: "value", + axisLabel: { + color: "rgba(223, 241, 254, 1)", + fontSize: 12, + formatter: "{value}", + }, + axisLine: { + show: true, + lineStyle: { + color: "#213259", + }, + }, + splitLine: { + lineStyle: { + color: "#213259a0", + }, + }, + min:range[0], + max:range[1] + }, + // visualMap: { + // show: false, + // dimension: 1, + // pieces: pieces + // }, + series: [ + { + type: 'line', + label: { + show: true, + position: 'top', + color:'inherit' + }, + symbol: 'circle', + symbolSize: 6, + // prettier-ignore + // lineStyle:{ + // color:color + // }, + itemStyle: { + normal: { + color: 'rgba(255, 194, 20, 1)', //改变折线点的颜色 + lineStyle: { + color: 'rgba(255, 194, 20, 1)' //改变折线颜色 + } + } + }, + data: data, + // markLine: { + // symbol: 'none', + // label:{ + // show:true, + // position:'end', + // formatter:'标准线', + // color:'#FFCB59', + // fontSize: 12, + // }, + // lineStyle:{ + // color:'#FFCB59' + // }, + // data: seriesData.markLineData + // }, + areaStyle:areaStyle + }, + { + type: 'line', + label: { + show: true, + position: 'top', + color:'inherit' + }, + symbol: 'circle', + symbolSize: 6, + // lineStyle:{ + // color:color1 + // }, + itemStyle: { + normal: { + color: 'rgba(0, 255, 245, 1))', //改变折线点的颜色 + lineStyle: { + color: 'rgba(0, 255, 245, 1)' //改变折线颜色 + } + } + }, + areaStyle:areaStyle1, + // prettier-ignore + data: forecastList, + // markLine: { + // symbol: 'none', + // label:{ + // show:true, + // position:'end', + // formatter:'标准线', + // color:'#FFCB59', + // fontSize: 12, + // }, + + // data: seriesData.markLineData + // }, + // areaStyle: seriesData.areaStyle + } + ], + tooltip: { + trigger: "axis", + axisPointer: { + type: 'cross' + }, + className: "xc-chart-tooltip", + // backgroundColor: '' + }, + }; +} diff --git a/src/components/Modules/KilnOptimize/components/forecastRightChart/yield.jsx b/src/components/Modules/KilnOptimize/components/forecastRightChart/yield.jsx index 6afa3fa..b436798 100644 --- a/src/components/Modules/KilnOptimize/components/forecastRightChart/yield.jsx +++ b/src/components/Modules/KilnOptimize/components/forecastRightChart/yield.jsx @@ -1,3 +1,10 @@ +/* + * @Author: zhp + * @Date: 2024-09-02 09:56:13 + * @LastEditTime: 2024-09-13 15:36:42 + * @LastEditors: zhp + * @Description: + */ import cls from "./index.module.css"; import ReactECharts from "echarts-for-react"; @@ -22,9 +29,11 @@ function CommonChart(props) { let max = item + .5; let randomValue = Math.random() * (max - min) + min; forecastList.push(randomValue.toFixed(1)); - } + } + console.log(forecastList) } - let areaStyle= { + let areaStyle = { + opacity: 0.8, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, @@ -38,6 +47,7 @@ function CommonChart(props) { origin: "start", } let areaStyle1 = { + opacity: 0.8, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, @@ -50,41 +60,7 @@ function CommonChart(props) { ]), origin: "start", } - // let pieces = [ - // { - // lte: dataSource.msg ? dataSource.msg.lte : 0, - // color: "#FFCB59", - // }, - // { - // gt: dataSource.msg ? dataSource.msg.lte : 0, - // lte: dataSource.msg ? dataSource.msg.gt : 0, - // color: dataSource.color, - // }, - // { - // gt: dataSource.msg ? dataSource.msg.gt : 0, - // color: "#FFCB59", - // }, - // ]; - const [yRange] = useState([]); - // useEffect(() => { - // if (data.length > 0) { - // var standardValue = dataSource.msg.sp; - // var maxY = (standardValue * 100 + dataSource.range[1] * 100) / 100; - // var minY = (standardValue * 100 + dataSource.range[0] * 100) / 100; - // // 计算最大最小值是否超标 - // const maxValue = Math.max(...data); - // const minValue = Math.min(...data); - // if (maxValue > maxY) { - // maxY = Math.ceil(maxValue); - // } - // if (minValue < minY) { - // minY = Math.floor(minValue); - // } - // setYRange([minY, maxY]); - // } - // }, [dataSource, data]); - return (
{data.length > 0 && ( diff --git a/src/components/Modules/KilnOptimize/components/inputData/index.module.css b/src/components/Modules/KilnOptimize/components/inputData/index.module.css index 752dc5c..3d12714 100644 --- a/src/components/Modules/KilnOptimize/components/inputData/index.module.css +++ b/src/components/Modules/KilnOptimize/components/inputData/index.module.css @@ -226,3 +226,7 @@ box-shadow: 0px 2px 6px 0px rgba(43,255,223,0.55); backdrop-filter: blur(0px); } +.unit{ +color: rgba(43, 254, 222, 1); + +} diff --git a/src/components/Modules/KilnOptimize/components/leftBottomForecast/index.module.css b/src/components/Modules/KilnOptimize/components/leftBottomForecast/index.module.css index a0dae05..b6f2cf9 100644 --- a/src/components/Modules/KilnOptimize/components/leftBottomForecast/index.module.css +++ b/src/components/Modules/KilnOptimize/components/leftBottomForecast/index.module.css @@ -6,15 +6,15 @@ height: 1px; display: grid; grid-template-rows: auto 1fr 1fr; - gap: 10px; - padding-top: 18px; + /* gap: 4px; */ + padding-top: 6px; .info__item { /* width: 100%; */ background: url('../../../../../assets/forecastBack.png') no-repeat; background-size: 100% 100%; position: relative; /* width: 220px; */ - height: 45px; + height: 60px; /* background: rgba(10,154,255,0.15); */ /* box-shadow: 0px 1px 7px 0px rgba(58,0,0,0.5); */ /* border: 1px solid; */ @@ -27,7 +27,7 @@ user-select: none; display: flex; align-items: center; - gap: 12px; + gap: 14px; .square{ /* flex: 1; */ margin-left: 20px; @@ -48,5 +48,12 @@ color: rgba(255, 255, 255, 1); } } + .info__item:last-child { + /* width: 100%; */ + background: url('../../../../../assets/lastBack.png') no-repeat; + background-size: 100% 100%; + + } } + } diff --git a/src/components/Modules/KilnOptimize/components/leftMiddleForecast/index.module.css b/src/components/Modules/KilnOptimize/components/leftMiddleForecast/index.module.css index 6946934..dec67b0 100644 --- a/src/components/Modules/KilnOptimize/components/leftMiddleForecast/index.module.css +++ b/src/components/Modules/KilnOptimize/components/leftMiddleForecast/index.module.css @@ -19,7 +19,7 @@ background: rgba(10,154,255,0.15); /* box-shadow: 0px 1px 7px 0px rgba(58,0,0,0.5); */ border: 1px solid; - color: #58E7E9; + color: rgba(81, 180, 255, 1); border-image: linear-gradient(80deg, rgba(0, 255, 245, 0.55), rgba(0, 255, 245, 0)) 1 1; font-size: 20px; letter-spacing: 1.43px; @@ -34,7 +34,7 @@ margin-left: 20px; width: 6px; height: 6px; - background: #00FFF5; + background: rgba(81, 180, 255, 1); box-shadow: 0px 1px 7px 0px rgba(58,0,0,0.5), 0px 0px 4px 1px #58E7E9; } .label { @@ -67,7 +67,7 @@ background: rgba(10,154,255,0.15); /* box-shadow: 0px 1px 7px 0px rgba(58,0,0,0.5); */ border: 1px solid; - color: #58E7E9; + color: rgba(81, 180, 255, 1); border-image: linear-gradient(80deg, rgba(0, 255, 245, 0.55), rgba(0, 255, 245, 0)) 1 1; font-size: 20px; letter-spacing: 1.43px; @@ -82,7 +82,7 @@ margin-left: 20px; width: 6px; height: 6px; - background: #00FFF5; + background: rgba(81, 180, 255, 1); box-shadow: 0px 1px 7px 0px rgba(58,0,0,0.5), 0px 0px 4px 1px #58E7E9; } .label { diff --git a/src/components/Modules/KilnOptimize/components/paramsInput/index.jsx b/src/components/Modules/KilnOptimize/components/paramsInput/index.jsx index 13ff2c4..584c522 100644 --- a/src/components/Modules/KilnOptimize/components/paramsInput/index.jsx +++ b/src/components/Modules/KilnOptimize/components/paramsInput/index.jsx @@ -5,7 +5,7 @@ * @LastEditors: zhp * @Description: */ -// 窑炉预测控制参数输入 +// AI预测控制参数输入 import cls from "./index.module.css"; import BottomBarItem from "../../../../Common/forecastLargeBackground"; // import CommonChart from "../CommonChart"; diff --git a/src/components/Modules/KilnOptimize/components/paramsInput/index.module.css b/src/components/Modules/KilnOptimize/components/paramsInput/index.module.css index 205a554..0c54063 100644 --- a/src/components/Modules/KilnOptimize/components/paramsInput/index.module.css +++ b/src/components/Modules/KilnOptimize/components/paramsInput/index.module.css @@ -32,7 +32,7 @@ background: url(../../../../../assets/modelButton.png) no-repeat; background-size: 100% 90%; background-position: bottom; - color: #00fff788; + color: #ffffff; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', '微软雅黑', 'Microsoft YaHei UI', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; diff --git a/src/components/Modules/KilnOptimize/components/seasonButton/index.module.css b/src/components/Modules/KilnOptimize/components/seasonButton/index.module.css index c6fae7f..c04e7c5 100644 --- a/src/components/Modules/KilnOptimize/components/seasonButton/index.module.css +++ b/src/components/Modules/KilnOptimize/components/seasonButton/index.module.css @@ -3,7 +3,7 @@ cursor: pointer; user-select: none; padding:40px 35px; - font-size: 32px; + font-size: 28px; display: flex; align-items: center; justify-content: center; @@ -22,6 +22,8 @@ .menuItem.active, .menuItem:hover { background: url(../../../../../assets/seasonActive.png) no-repeat; + font-size: 28px; + color: rgba(255, 255, 255, 1); background-size: 100% 100%; } diff --git a/src/components/container.module.scss b/src/components/container.module.scss index 73ef39d..50d1c77 100644 --- a/src/components/container.module.scss +++ b/src/components/container.module.scss @@ -11,7 +11,7 @@ align-items: center; img { - width: 24px; + width: 32px; &.bigger { width: 28px; diff --git a/src/hooks/useIcon.js b/src/hooks/useIcon.js index 17e5602..15c6a81 100644 --- a/src/hooks/useIcon.js +++ b/src/hooks/useIcon.js @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-08-20 14:09:17 - * @LastEditTime: 2024-08-26 15:28:43 + * @LastEditTime: 2024-09-12 16:27:09 * @LastEditors: zhp * @Description: */ @@ -20,6 +20,7 @@ import IconKilnTop from '../assets/Icon/kilnTop.png'; import IconKilnBottom from '../assets/Icon/kilnBottom.png'; import yieldRate from '../assets/Icon/yieldRate.png'; import forecast from '../assets/Icon/forecast.png'; +import close from '../assets/Icon/close.png'; function useIcon(iconName) { @@ -53,6 +54,8 @@ function useIcon(iconName) { ? IconKilnBottom : iconName == 'yieldRate' ? yieldRate + : iconName == 'close' + ? close : IconDefault; } diff --git a/src/pages/Home/index.jsx b/src/pages/Home/index.jsx index c997812..5e30b56 100644 --- a/src/pages/Home/index.jsx +++ b/src/pages/Home/index.jsx @@ -37,7 +37,7 @@ export default function Home({ active }) { const handleValueFromGrandChild = (value) => { setModelFlag(value); - console.log(modelFlag); + console.log('modelFlag',modelFlag); }; const ctx = useSelector((state) => state.fireInfo); const fireDir = ctx.fireDirection || null; @@ -79,7 +79,7 @@ export default function Home({ active }) { > {active == "窑炉总览" && } {active == "窑炉内部" && } - {active == "窑炉优化" && ( + {active == "AI窑炉" && ( <> {floor !== 4 && } {floor !== 0 && @@ -94,7 +94,7 @@ export default function Home({ active }) {
{active == "窑炉总览" && ( <> @@ -158,7 +158,7 @@ export default function Home({ active }) { {active == "窑炉内部" && } - {active == "窑炉优化" && } + {active == "AI窑炉" && } {active == "退火监测" &&
} @@ -167,7 +167,7 @@ export default function Home({ active }) { {active == "窑炉总览" && } {active == "窑炉内部" && } - {active == "窑炉优化" && ( + {active == "AI窑炉" && ( <> {floor !== 4 && }