This commit is contained in:
‘937886381’
2024-09-13 15:47:43 +08:00
parent 6a25d4e30d
commit 696d852cd2
46 changed files with 893 additions and 148 deletions

View File

@@ -94,7 +94,7 @@ function KilnCenter({ onFloorChange }) {
}
onClick={() => onFloorUpdate(4)}
>
窑炉预测
AI预测
</div>
</div>

View File

@@ -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;

View File

@@ -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,
}}
/>
<FeederStatus style={{ left: "680px" }} />

View File

@@ -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 : [],

View File

@@ -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;

View File

@@ -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 : [],

View File

@@ -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%;

View File

@@ -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 (
<BottomBarItem
icon="close"
title={title}
isVisible={isVisible}
style={props.style}
onVisibilityChange={handleVisibilityChange} // 传递回调
>
{/* legend */}
<div className={cls.legend}>
<span className={cls.item}>
实际值
</span>
<span className={cls.block}>
预测值
</span>
</div>
<div className={cls.chart}>
<CommonChart dataSource={dataSource}/>
</div>
</BottomBarItem>
)
}
export default LeftTopForecast;

View File

@@ -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 : [],

View File

@@ -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;

View File

@@ -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%);
}

View File

@@ -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%;
}

View File

@@ -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

View File

@@ -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,
},
]),

View File

@@ -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 (
<div className={cls.commonChart}>
{data.length > 0 && (
<ReactECharts
option={getOptions(data, times, yRange, yName,forecastList,color,color1,areaStyle,areaStyle1)}
style={{ height: "100%" }}
/>
)}
{data.length <= 0 && (
<p
style={{
paddingTop: "88px",
color: "#fffc",
textAlign: "center",
fontSize: "24px",
userSelect: "none",
}}
>
暂无数据
</p>
)}
</div>
);
}
export default CommonChart;

View File

@@ -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: ''
},
};
}

View File

@@ -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 (
<div className={cls.commonChart}>
{data.length > 0 && (

View File

@@ -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);
}

View File

@@ -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%;
}
}
}

View File

@@ -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 {

View File

@@ -5,7 +5,7 @@
* @LastEditors: zhp
* @Description:
*/
// 窑炉预测控制参数输入
// AI预测控制参数输入
import cls from "./index.module.css";
import BottomBarItem from "../../../../Common/forecastLargeBackground";
// import CommonChart from "../CommonChart";

View File

@@ -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;

View File

@@ -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%;
}