184 lines
7.1 KiB
JavaScript
184 lines
7.1 KiB
JavaScript
import LeftBar from "../../components/Modules/Home/LeftSide"; // 窑炉总览 - 左边
|
|
import BottomBar from "../../components/Modules/Home/Bottom"; // 窑炉总览 - 底部4个框
|
|
import RightBar from "../../components/Modules/Home/RightSide"; // 窑炉总览 - 右部
|
|
import CenterTopData from "../../components/Modules/Home/CenterTop"; // 泡界线监控(左上) + 当前生产线规格(右上角)
|
|
import { AnimatePresence, motion } from "framer-motion"; // 动画
|
|
import KilnCenter from "../../components/Modules/KilnInner/Center"; // 窑炉内部
|
|
import KilnInnerLeft from "../../components/Modules/KilnInner/LeftSide"; // 窑炉内部左侧内容
|
|
import KilnInnerRight from "../../components/Modules/KilnInner/RightSide"; // 窑炉内部右侧内容
|
|
import OptimizeCenter from "../../components/Modules/KilnOptimize/Center"; // 窑炉优化
|
|
import KilnOptimizeLeft from "../../components/Modules/KilnOptimize/LeftSide"; // 窑炉优化左侧内容
|
|
import KilnOptimizeLeftForecast from "../../components/Modules/KilnOptimize/LeftSide/indexForecast"; // 窑炉优化左侧内容
|
|
import KilnOptimizeRight from "../../components/Modules/KilnOptimize/RightSide"; // 窑炉优化右侧内容
|
|
import KilnOptimizeRightForecast from "../../components/Modules/KilnOptimize/forecastRightSide"; // 窑炉优化右侧内容
|
|
import FireCheckLeft from "../../components/Modules/FireCheck/LeftSide"; // 退火监测 - 左边
|
|
import QualityCheckLeft from "../../components/Modules/QualityCheck/LeftSide"; // 质检统计 - 左边
|
|
import FireCheckRight from "../../components/Modules/FireCheck/RightSide";// 退火监测 - 右边
|
|
import QualityCheckRight from "../../components/Modules/QualityCheck/RightSide";// 质检统计 - 右边
|
|
import { useSelector } from "react-redux";
|
|
import { useEffect, useRef,useState,createContext } from "react";
|
|
import useRefresh from "../../hooks/useRefresh";
|
|
import TimeFireDir from "../../components/Common/TimeFireDir";
|
|
|
|
import WarnAlertList from "../../components/Common/WarnAlert/ListContainer";
|
|
|
|
export const HomeContext = createContext();
|
|
export default function Home({ active }) {
|
|
useRefresh(true);
|
|
|
|
const videoUp = useRef(null);
|
|
const videoDown = useRef(null);
|
|
const [floor, setFloor] = useState(null);
|
|
const handleFloorChangeFromKilnCenter = (newFloor) => {
|
|
console.log(newFloor)
|
|
setFloor(newFloor);
|
|
};
|
|
const [modelFlag, setModelFlag] = useState(false);
|
|
|
|
const handleValueFromGrandChild = (value) => {
|
|
setModelFlag(value);
|
|
console.log('modelFlag',value);
|
|
};
|
|
const ctx = useSelector((state) => state.fireInfo);
|
|
const fireDir = ctx.fireDirection || null;
|
|
|
|
useEffect(() => {
|
|
if (fireDir == "东火" && videoUp.current) {
|
|
videoUp.current.playbackRate = 0.3;
|
|
} else {
|
|
videoDown.current && (videoDown.current.playbackRate = 0.3);
|
|
}
|
|
}, [fireDir]);
|
|
|
|
return (
|
|
<div className="Main">
|
|
{active == "窑炉总览" && (
|
|
<div
|
|
style={{
|
|
position: "fixed",
|
|
top: "210px",
|
|
left: "50%",
|
|
transform: "translateX(-40%)",
|
|
}}
|
|
>
|
|
<TimeFireDir />
|
|
</div>
|
|
)}
|
|
{active != "窑炉总览" && <div className="bgDitu"></div>}
|
|
{active == "窑炉总览" && (
|
|
<div className="bgOverview" id="bgOverview"></div>
|
|
)}
|
|
<AnimatePresence mode="wait">
|
|
<div
|
|
className="left-side"
|
|
style={{
|
|
marginLeft: "40px",
|
|
width: "625px",
|
|
height: "100%",
|
|
}}
|
|
>
|
|
{active == "窑炉总览" && <LeftBar key="kiln-total" />}
|
|
{active == "窑炉内部" && <KilnInnerLeft key="kiln-inner" />}
|
|
{active == "AI窑炉" && (
|
|
<>
|
|
{floor !== 4 && <KilnOptimizeLeft key="kiln-optimize" />}
|
|
{floor !== 0 &&
|
|
<KilnOptimizeLeftForecast onGetValueFromGrandChild={handleValueFromGrandChild} key="kiln-optimize-forecast" />
|
|
}
|
|
</>
|
|
)}
|
|
{/* {active == "窑炉优化" && <KilnOptimizeLeft key="kiln-optimize" />} */}
|
|
{active == "退火监测" && <FireCheckLeft key="fire-check" />}
|
|
{active == "质检统计" && <QualityCheckLeft key="quality-check" />}
|
|
</div>
|
|
</AnimatePresence>
|
|
|
|
<div className={
|
|
(floor === 4 && active === 'AI窑炉' ? 'InputCenter' : "Center")
|
|
}>
|
|
{active == "窑炉总览" && (
|
|
<>
|
|
<div id="alarm-list-container">
|
|
<WarnAlertList />
|
|
</div>
|
|
<AnimatePresence>
|
|
<motion.div
|
|
key="center-top"
|
|
className="CenterData"
|
|
initial={{ visibility: "hidden" }}
|
|
animate={{ visibility: "visible" }}
|
|
>
|
|
<CenterTopData />
|
|
</motion.div>
|
|
</AnimatePresence>
|
|
|
|
<div key="v3d" className="V3DBorder" style={{ zIndex: -2 }}>
|
|
{fireDir && fireDir == "东火" && (
|
|
<video
|
|
ref={videoUp}
|
|
src="/video/east_fire.webm"
|
|
muted
|
|
autoPlay
|
|
loop
|
|
width={4200}
|
|
style={{
|
|
position: "absolute",
|
|
top: "-320px",
|
|
left: "-850px",
|
|
zIndex: -1,
|
|
transform: "scale(0.9)",
|
|
}}
|
|
></video>
|
|
)}
|
|
|
|
{fireDir && fireDir == "西火" && (
|
|
<video
|
|
ref={videoDown}
|
|
src="/video/west_fire.webm"
|
|
muted
|
|
autoPlay
|
|
loop
|
|
width={4200}
|
|
style={{
|
|
position: "absolute",
|
|
top: "-320px",
|
|
left: "-850px",
|
|
zIndex: -1,
|
|
transform: "scale(0.9)",
|
|
}}
|
|
></video>
|
|
)}
|
|
</div>
|
|
|
|
<div key="bottom-bar" className="Button">
|
|
<BottomBar />
|
|
</div>
|
|
</>
|
|
)}
|
|
|
|
{active == "窑炉内部" && <KilnCenter />}
|
|
|
|
{active == "AI窑炉" && <OptimizeCenter onFloorChange={handleFloorChangeFromKilnCenter} />}
|
|
|
|
{active == "退火监测" && <div className="bgFire"></div>}
|
|
|
|
{active == "质检统计" && <div className="bgQuality"></div>}
|
|
</div>
|
|
|
|
{active == "窑炉总览" && <RightBar key="right-bar" />}
|
|
{active == "窑炉内部" && <KilnInnerRight key="kiln-inner-right" />}
|
|
{active == "AI窑炉" && (
|
|
<>
|
|
{floor !== 4 && <KilnOptimizeRight key="kiln-optimize-right" />}
|
|
<HomeContext.Provider value={modelFlag}>
|
|
{floor === 4 && <KilnOptimizeRightForecast value={modelFlag} key="kiln-optimize-right-forecast" />}
|
|
</HomeContext.Provider>
|
|
</>
|
|
)}
|
|
{/* {active == "窑炉优化" && <KilnOptimizeRight key="kiln-optimize-right" />} */}
|
|
{active == "退火监测" && <FireCheckRight key="kiln-fire-check-right" />}
|
|
{active == "质检统计" && <QualityCheckRight key="kiln-quality-right" />}
|
|
</div>
|
|
);
|
|
}
|