xuchang-new/src/pages/Home/index.jsx
‘937886381’ b27d70f0fc 修改
2024-09-13 16:52:40 +08:00

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