forgeplus-react/src/forge/SoftwareFactory/index.jsx

90 lines
2.5 KiB
JavaScript

import React ,{ useEffect , useState } from "react";
import { SnackbarHOC } from "educoder";
import { CNotificationHOC } from "../../modules/courses/common/CNotificationHOC";
import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC";
import { withRouter } from "react-router";
import { ImageLayerOfCommentHOC } from "../../modules/page/layers/ImageLayerOfCommentHOC";
import Home from './components/Home/index'
import ProjectStatus from './components/ProjectStatus/index'
import { getNewsAllList, getMainInfos } from '../Information/api';
import next from "./img/next.png";
import Slider from "react-slick";
import './index.scss';
const setting = {
dots: false,
infinite: true,
speed: 2000,
slidesToShow: 1,
slidesToScroll: 1,
pauseOnDotsHover: true,
autoplaySpeed: Number(localStorage.getItem('pageLoopSpeed')) || 30000,
// pauseOnFocus: false,
autoplay: true,
arrows: false,
pauseOnHover:false,
dotsClass:'fac-dots'
// prevArrow: <img className="slick-prev slick-arrow" src={next} alt="" />,
// nextArrow: <img className="slick-next slick-arrow" src={next} alt="" />,
// afterChange: (index) => setTag(index),
};
function Index(props){
const [id,setId] = useState(undefined)
const [newsList,setNewsList] = useState([])
const homeDom = React.useRef(null)
const proDom = React.useRef(null)
useEffect(()=>{
getId()
},[])
useEffect(()=>{
let timer = null
if(id){
getNewsList()
timer = setInterval(()=>{
getNewsList()
},Number(localStorage.getItem('apiTime')) || 300000)
return () =>{
clearInterval(timer)
}
}
},[id])
function getNewsList() {
getNewsAllList(id).then(result => {
if (result) {
let rows = result.data.rows;
setNewsList(rows);
}
}).catch(error => { })
}
function getId(){
getMainInfos('xjykyzx').then(result=>{
console.log('result', result)
if(result){
let data = result.data.data;
if(data && data.id){
setId(data.id);
}
}
}).catch(console.error())
}
return (<div className="softFc-wrap">
<Slider {...setting} >
<Home newsList={newsList} key="home" ref={homeDom}/>
<ProjectStatus key="project" ref={proDom}/>
</Slider>
</div>)
}
export default withRouter((CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(ImageLayerOfCommentHOC({
imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget",
parentSelector: ".newContainer",
})(Index)))))
);