2025-03-06 17:24:11 +08:00
|
|
|
import React, { useEffect, useState } from "react";
|
|
|
|
|
import { Route, Switch } from "react-router-dom";
|
|
|
|
|
import { withRouter } from "react-router";
|
|
|
|
|
import centerBg from "../../img/center_title_bg.png";
|
2025-03-07 17:30:37 +08:00
|
|
|
import "./index.scss";
|
|
|
|
|
import ProjectCard from "./ProjectCard";
|
2025-03-11 13:52:23 +08:00
|
|
|
import { projectSituation } from "../../api";
|
2025-03-06 17:24:11 +08:00
|
|
|
function ProjectStatus(props) {
|
|
|
|
|
const {} = props;
|
2025-03-11 13:52:23 +08:00
|
|
|
const [projectList, setProjectList] = useState([]);
|
|
|
|
|
|
|
|
|
|
const ProjectCardDom = React.useRef(null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
getProjectList();
|
|
|
|
|
//项目信息五分钟更新一次
|
|
|
|
|
let timer = setInterval(()=>{
|
|
|
|
|
getProjectList();
|
|
|
|
|
}, Number(localStorage.getItem('apiTime')) || 300000)
|
|
|
|
|
return ()=>{
|
|
|
|
|
clearInterval(timer)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
function getProjectList() {
|
|
|
|
|
projectSituation().then((res) => {
|
|
|
|
|
if (res.data.code === 200) {
|
|
|
|
|
let list =
|
|
|
|
|
res.data.data.length > 10
|
|
|
|
|
? res.data.data.slice(0, 10)
|
|
|
|
|
: res.data.data;
|
|
|
|
|
setProjectList(list);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getShadowCls(idx) {
|
|
|
|
|
switch (idx) {
|
|
|
|
|
case 5:
|
|
|
|
|
return "shadow-left";
|
|
|
|
|
case 6:
|
|
|
|
|
case 7:
|
|
|
|
|
case 8:
|
|
|
|
|
return "shadow-center";
|
|
|
|
|
case 9:
|
|
|
|
|
return "shadow-right";
|
|
|
|
|
default:
|
|
|
|
|
return ''
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-06 17:24:11 +08:00
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className="project-wrap">
|
|
|
|
|
<div className="project-head">
|
2025-03-11 13:52:23 +08:00
|
|
|
<div className="center-title-wrap">
|
|
|
|
|
<img src={centerBg} alt="" />
|
2025-03-06 17:24:11 +08:00
|
|
|
<div className="center-title">可控开源创新中心</div>
|
|
|
|
|
<div className="center-sub-title">
|
|
|
|
|
Controllable open source innovation center software factory work
|
|
|
|
|
situation
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="soft-title">软件工厂工作态势</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="project-sub-t-wrap">
|
|
|
|
|
<div className="project-sub-t">
|
|
|
|
|
<div className="project-sub-inner">项目研发状态</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-03-11 13:52:23 +08:00
|
|
|
<div className="project-bottom-wrap">
|
2025-03-06 17:24:11 +08:00
|
|
|
<div className="project-list-wrap">
|
2025-03-11 13:52:23 +08:00
|
|
|
{projectList.map((item, idx) => {
|
|
|
|
|
return (
|
|
|
|
|
<ProjectCard
|
|
|
|
|
ref={ProjectCardDom}
|
|
|
|
|
key={idx}
|
|
|
|
|
mgRight={idx !== 4 && idx !== 9}
|
|
|
|
|
shadow={getShadowCls(idx)}
|
|
|
|
|
dataMap={item}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
|
|
|
|
|
{/* <ProjectCard mgRight={true} />
|
2025-03-07 17:30:37 +08:00
|
|
|
<ProjectCard mgRight={true} />
|
|
|
|
|
<ProjectCard mgRight={true} />
|
|
|
|
|
<ProjectCard mgRight={false} />
|
|
|
|
|
<ProjectCard mgRight={true} shadow="shadow-left" />
|
|
|
|
|
<ProjectCard mgRight={true} shadow="shadow-center" />
|
|
|
|
|
<ProjectCard mgRight={true} shadow="shadow-center" />
|
|
|
|
|
<ProjectCard mgRight={true} shadow="shadow-center" />
|
2025-03-11 13:52:23 +08:00
|
|
|
<ProjectCard mgRight={false} shadow="shadow-right" /> */}
|
2025-03-06 17:24:11 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
export default ProjectStatus;
|