
diff --git a/src/home/ThirdEdition.jsx b/src/home/ThirdEdition.jsx
index 7759f501..4cc924af 100644
--- a/src/home/ThirdEdition.jsx
+++ b/src/home/ThirdEdition.jsx
@@ -1,4 +1,5 @@
import React,{ useState , useEffect , useMemo } from 'react';
+import { Spin , Skeleton } from 'antd';
import T311 from './Img/3-1-1.png';
import T312 from './Img/3-1-2.png';
import T321 from './Img/3-2-1.png';
@@ -13,55 +14,32 @@ import bg33 from './Img/3-3.png';
import bg34 from './Img/3-4.png';
import './Index.scss';
-
-const list1 = [
- {name:"CCF开源发展委员会首批执行委员名单发布",src:"https://forum.trustie.net/forums/4666/detail",count:32,time:"2021-09-22"},
- {name:"GitLink项目协同开发模块使用说明及问题反馈",src:"https://forum.trustie.net/forums/4665/detail",count:4,time:"2021-09-22"},
- {name:"MindSpore框架介绍及赛题说明",src:"https://forum.trustie.net/forums/4664/detail",count:3,time:"2021-09-22"},
- {name:"OpenHarmony系统介绍及赛题说明",src:"https://forum.trustie.net/forums/4663/detail",count:4,time:"2021-09-22"},
- {name:"openGauss系统介绍及赛题说明",src:"https://forum.trustie.net/forums/4662/detail",count:5,time:"2021-09-22"},
-]
-const list2 = [
- {name:"Gitlink/Gitlink",src:"https://forgeplus.trustie.net/Gitlink/forgeplus",count:304},
- {name:"泛在操作系统实验室/矽璓工业物联操作系统XiUOS",src:"https://forgeplus.trustie.net/xuos/xiuos",count:50},
- {name:"华为技术有限公司/openGauss-operator",src:"https://forgeplus.trustie.net/Huawei_Technology/openGauss-operator",count:100},
- {name:"开放原子开源基金会/BitXHub",src:"https://forgeplus.trustie.net/openatom_foundation/bitxhub",count:40},
- {name:"华为技术有限公司/openEuler-datenlord",src:"https://forgeplus.trustie.net/Huawei_Technology/openEuler-datenlord",count:98},
-]
-const list3 = [
- {name:"Gitlink平台DevOps模块使用说明",src:"https://forum.trustie.net/forums/4682/detail",count:10,time:"2021-09-23"},
- {name:"Gitlink如何将临时分支push到远端对应的新分支?",src:"https://forum.trustie.net/forums/4705/detail",count:8,time:"2021-09-23"},
- {name:"了解什么是 DevOps?",src:"https://forum.trustie.net/forums/4704/detail",count:4,time:"2021-09-23"},
- {name:"EduCoder平台简介",src:"https://forum.trustie.net/forums/4701/detail",count:26,time:"2021-09-23"},
- {name:"Webhooks指南",src:"https://forum.trustie.net/forums/4683/detail",count:3,time:"2021-09-23"},
-]
-const list4 = [
- {name:"小学生都能读懂的网络协议之:WebSocket",src:"https://forum.trustie.net/forums/4708/detail",count:4,time:"2021-09-23"},
- {name:"容器神话 Docker 是如何一分为二的",src:"https://forum.trustie.net/forums/4707/detail",count:5,time:"2021-09-23"},
- {name:"一文揭示,DevOps与企业数字化究竟有何联系?",src:"https://forum.trustie.net/forums/4706/detail",count:3,time:"2021-09-23"},
- {name:"GitHub上最流行的10000个Java都使用了哪些库?",src:"https://forum.trustie.net/forums/4703/detail",count:8,time:"2021-09-23"},
- {name:"如何正确下载CentOS各个版本镜像",src:"https://forum.trustie.net/forums/4684/detail",count:2,time:"2021-09-23"},
-]
+import Axios from 'axios';
function ThirdEdition() {
const [ active , setActive ] = useState(1);
+ const [ isSpin , setIsSpin ] = useState(true);
const [ flag , setFlag ] = useState(true);
+ const [ list1, setList1 ] = useState([]);
+ const [ list2, setList2 ] = useState([]);
+ const [ list3, setList3 ] = useState([]);
+ const [ list4, setList4 ] = useState([]);
const doubleFlag = useMemo(()=>{
return flag;
},[flag])
useEffect(()=>{
- // let box = document.getElementById('thirdUl');
- // var myTimer = setTimeout(intervalActive, 2500);
- // box.onmouseover = () => {
- // clearTimeout(myTimer);
- // setFlag(false);
- // }
- // box.onmouseleave = () => {
- // myTimer = setTimeout(intervalActive, 2500);
- // setFlag(true);
- // }
+ let box = document.getElementById('thirdUl');
+ var myTimer = setTimeout(intervalActive, 2500);
+ box.onmouseover = () => {
+ clearTimeout(myTimer);
+ setFlag(false);
+ }
+ box.onmouseleave = () => {
+ myTimer = setTimeout(intervalActive, 2500);
+ setFlag(true);
+ }
},[active,flag])
function intervalActive() {
@@ -75,6 +53,41 @@ function ThirdEdition() {
}
}
+ useEffect(()=>{
+ if(active){
+ getList(active);
+ }
+ },[active])
+
+ function getList(a) {
+ let params = a === 1 ? "activity_forum" : a===2 ? "excellent_project" : a=== 3 ? "pinned_forum" : "experience_forum";
+ if(a===1 && (list1 && list1.length>0)){return}
+ if(a===2 && (list2 && list2.length>0)){return}
+ if(a===3 && (list3 && list3.length>0)){return}
+ if(a===4 && (list4 && list4.length>0)){return}
+ setIsSpin(true);
+ const url = `/topics.json?topic_type=${params}`;
+ Axios.get(url,{
+ params:{
+ limit:5
+ }
+ }).then(result=>{
+ if(result){
+ let l = result.data.topics;
+ if(a===1){
+ setList1(l);
+ }else if(a===2){
+ setList2(l);
+ }else if(a===3){
+ setList3(l);
+ }else{
+ setList4(l);
+ }
+ setIsSpin(false);
+ }
+ }).catch(error=>{})
+ }
+
return(
开发者的家园
@@ -111,65 +124,95 @@ function ThirdEdition() {
-

-
-
- {active === 1 ? "GitLink分享最新平台资讯、社区活动通知、开源竞赛信息,把握开源生态发展脉搏"
- : active===2 ? "GitLink汇聚精英企业仓库、前沿技术仓库、人气热门仓库,孵化优质开源创新成果"
- :active===3 ? "GitLink集萃社区精选项目介绍、平台使用技巧等优秀文章,助力开源开放协同创新"
- :"GitLink甄选技术研究、心得体会、经验交流等高质量内容,推动社区健康稳定发展"}
-
- {
- active === 1&&
- list1.map((i,k)=>{
- return(
-
- {i.name}
- {i.count}
- {i.time}
-
- )
- })
- }
- {
- active === 2&&
- list2.map((i,k)=>{
- return(
-
- {i.name}
- {i.count}
- {/* {i.time} */}
-
- )
- })
- }
- {
- active === 3&&
- list3.map((i,k)=>{
- return(
-
- {i.name}
- {i.count}
- {i.time}
-
- )
- })
- }
- {
- active === 4&&
- list4.map((i,k)=>{
- return(
-
- {i.name}
- {i.count}
- {i.time}
-
- )
- })
- }
+

+
+
+ {active === 1 ? "GitLink分享最新平台资讯、社区活动通知、开源竞赛信息,把握开源生态发展脉搏"
+ : active===2 ? "GitLink汇聚精英企业仓库、前沿技术仓库、人气热门仓库,孵化优质开源创新成果"
+ :active===3 ? "GitLink集萃社区精选项目介绍、平台使用技巧等优秀文章,助力开源开放协同创新"
+ :"GitLink甄选技术研究、心得体会、经验交流等高质量内容,推动社区健康稳定发展"}
+
+
+ {
+ active === 1 &&
+
+ {
+ list1 && list1.length > 0 ? list1.map((i,k)=>{
+ return(
+
+ {i.title}
+ {i.visits}
+ {i.time}
+
+ )
+ }):""
+ }
+ {
+ list1 && list1.length === 0 &&
+ }
+
+ }
+ {
+ active === 2 &&
+
+ {
+ list2 && list2.length > 0? list2.map((i,k)=>{
+ return(
+
+ {i.title}
+ {i.visits}
+ {/* {i.time} */}
+
+ )
+ }):""
+ }
+ {
+ list2 && list2.length === 0 &&
+ }
+
+ }
+ {
+ active === 3 &&
+
+ {
+ list3 && list3.length > 0 ? list3.map((i,k)=>{
+ return(
+
+ {i.title}
+ {i.visits}
+ {i.time}
+
+ )
+ }):""
+ }
+ {
+ list3 && list3.length === 0 &&
+ }
+
+ }
+ {
+ active === 4 &&
+
+ {
+ list4 && list4.length > 0 ? list4.map((i,k)=>{
+ return(
+
+ {i.title}
+ {i.visits}
+ {i.time}
+
+ )
+ }):""
+ }
+ {
+ list4 && list4.length === 0 &&
+ }
+
+ }
+
+
-
)
}
diff --git a/src/home/TopEdition.jsx b/src/home/TopEdition.jsx
index 99f32779..d24ad15c 100644
--- a/src/home/TopEdition.jsx
+++ b/src/home/TopEdition.jsx
@@ -1,5 +1,8 @@
-import React from 'react';
+import React , { useEffect , useState } from 'react';
import Slider from 'react-slick';
+import axios from 'axios';
+import { getImageUrl } from 'educoder';
+
let setting={
dots:true,
infinite: true,
@@ -15,15 +18,45 @@ let setting={
nextArrow:
}
function TopEdition({register,current_user}) {
+
+ const [ bannerList , setBannerList ] = useState(undefined);
+
+ useEffect(()=>{
+ getBanner();
+ },[])
+
+ function getBanner() {
+ const url = `/topics.json?topic_type=banner`;
+ axios.get(url,{
+ params:{
+ limit:4
+ }
+ }).then(result=>{
+ if(result){
+ setBannerList(result.data.topics);
+ }
+ }).catch(error=>{})
+ }
return(