拉取测试版分支代码,且更新gitlink首页
50
src/App.js
|
@ -97,8 +97,8 @@ const ProjectIndex = Loadable({
|
|||
loading: Loading,
|
||||
});
|
||||
|
||||
const CreateMerge = Loadable({
|
||||
loader: () => import('./forge/Merge/NewMerge'),
|
||||
const Home = Loadable({
|
||||
loader: () => import('./home/Index'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
|
@ -353,34 +353,28 @@ class App extends Component {
|
|||
{/* 判断为用户/组织,并进入对应页面 */}
|
||||
{
|
||||
pathType === 'User' ?
|
||||
<Route exact path="/:username"
|
||||
render={
|
||||
(props) => {
|
||||
return (<InfosIndex {...this.props} {...this.state} />)
|
||||
}
|
||||
<Route exact path="/:username"
|
||||
render={
|
||||
(props) => {
|
||||
return (<InfosIndex {...this.props} {...this.state} />)
|
||||
}
|
||||
/> : pathType === 'Organization' ? <Route path={"/:OIdentifier"}
|
||||
render={
|
||||
(props) => {
|
||||
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
|
||||
}
|
||||
}>
|
||||
</Route> : pathType === '404' ? <Route component={Shixunnopage} />:
|
||||
<Route exact path="/"
|
||||
render={
|
||||
(props) => (
|
||||
personal && personal.length > 0 ?
|
||||
<InfosIndex {...this.props} {...props} />
|
||||
:
|
||||
<ProjectIndex {...this.props} {...props} />
|
||||
)
|
||||
}
|
||||
/>
|
||||
// <Route path="/" component={Loading} />
|
||||
// <Route path="/" component={Shixunnopage} />
|
||||
}
|
||||
/> : pathType === 'Organization' ? <Route path={"/:OIdentifier"}
|
||||
render={
|
||||
(props) => {
|
||||
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
|
||||
}
|
||||
}>
|
||||
</Route> : pathType === '404' ? <Route component={Shixunnopage} />:
|
||||
""
|
||||
}
|
||||
|
||||
|
||||
<Route exact path="/"
|
||||
render={
|
||||
(props) => (
|
||||
<Home {...props} {...this.props} {...this.state}/>
|
||||
)
|
||||
}
|
||||
/>
|
||||
|
||||
{/* 个人主页 */}
|
||||
<Route path="/:username"
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
import React from 'react';
|
||||
import './Index.scss';
|
||||
|
||||
function HeadNav() {
|
||||
return(
|
||||
<div className="headNav">
|
||||
<div className="headNavDiv">
|
||||
<ul className="headlist">
|
||||
<li>协同开发</li>
|
||||
<li>教学实践</li>
|
||||
<li>论坛交流</li>
|
||||
<li>关于我们</li>
|
||||
</ul>
|
||||
<div>
|
||||
<a className="color-white">登录</a>
|
||||
<a className="regBtn">注册</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
export default HeadNav;
|
After Width: | Height: | Size: 2.5 MiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 483 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 345 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 5.3 MiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 2.2 MiB |
After Width: | Height: | Size: 4.6 MiB |
After Width: | Height: | Size: 3.8 MiB |
After Width: | Height: | Size: 2.8 MiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 84 KiB |
|
@ -0,0 +1,84 @@
|
|||
import React from 'react';
|
||||
import "./Index.scss";
|
||||
import HeadNav from './Headnav';
|
||||
import TopEdition from './TopEdition';
|
||||
import ThirdEdition from './ThirdEdition';
|
||||
import { Anchor } from 'antd';
|
||||
import F41 from './Img/4-1.png';
|
||||
import F42 from './Img/4-2.png';
|
||||
import F43 from './Img/4-1.png';
|
||||
import F44 from './Img/4-2.png';
|
||||
import SecondEdition from './SecondEdition';
|
||||
|
||||
|
||||
function Index(props) {
|
||||
return(
|
||||
<div className="homePage">
|
||||
<div className="topEdition">
|
||||
<HeadNav />
|
||||
<TopEdition />
|
||||
<ul className="topEditionUl">
|
||||
<li>
|
||||
<p className="task-hide font-18">CCF开源发展成立大会即将召开!</p>
|
||||
<p>此处为活动详情内容</p>
|
||||
</li>
|
||||
<li>
|
||||
<p className="task-hide font-18">CCF开源发展成立大会即将召开!</p>
|
||||
<p>此处为活动详情内容</p>
|
||||
</li>
|
||||
<li>
|
||||
<p className="task-hide font-18">CCF开源发展成立大会即将召开!</p>
|
||||
<p>此处为活动详情内容此处为活动详情内容此处为活动详情内容此处为活动详情内容</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="secondEdition">
|
||||
<p className="theTitle">Gitlink,新一代开源创新服务平台</p>
|
||||
<Anchor>
|
||||
<li className="active"><a>分布式协作开发</a></li>
|
||||
<li><a>一站式过程管理</a></li>
|
||||
<li><a>高效流水线运维</a></li>
|
||||
<li><a>多层次代码分析</a></li>
|
||||
<li><a>多维度用户画像</a></li>
|
||||
</Anchor>
|
||||
<SecondEdition />
|
||||
</div>
|
||||
|
||||
<ThirdEdition />
|
||||
|
||||
<div className="forthEdition">
|
||||
<p className="theTitle">加入Gitlink,和社区伙伴们一起踏上开源创新的辉煌旅程!</p>
|
||||
<a className="qulikyreg">快速注册</a>
|
||||
<ul className="forthUl">
|
||||
<li>
|
||||
<img src={F41} alt="" width={"100px"}/>
|
||||
<span className="forthtitle">发现</span>
|
||||
<span className="forthsubtitle">探索丰富优质的开发资源</span>
|
||||
</li>
|
||||
<li>
|
||||
<img src={F42} alt="" width={"101px"}/>
|
||||
<span className="forthtitle">加入</span>
|
||||
<span className="forthsubtitle">寻找志同道合的协作伙伴</span>
|
||||
</li>
|
||||
<li>
|
||||
<img src={F43} alt="" width={"104px"}/>
|
||||
<span className="forthtitle">合作</span>
|
||||
<span className="forthsubtitle">开启开放共享的协同之旅</span>
|
||||
</li>
|
||||
<li>
|
||||
<img src={F44} alt="" width={"87px"}/>
|
||||
<span className="forthtitle">贡献</span>
|
||||
<span className="forthsubtitle">书写开源创新的精彩成就</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="fifthEdition">
|
||||
<p className="title">开源生态</p>
|
||||
<p className="subtitle">Gitlink与各大企业、高校、科研机构开展广泛的技术合作,推动我国开源软件生态的快速构建与发展</p>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
export default Index;
|
|
@ -0,0 +1,512 @@
|
|||
|
||||
body{
|
||||
overflow: auto!important;
|
||||
background-color: #fff;
|
||||
}
|
||||
.homePage{
|
||||
background-color: #fff;
|
||||
}
|
||||
.topEdition{
|
||||
position: relative;
|
||||
background-image: linear-gradient(to right,#081843,#000A1D);
|
||||
margin-bottom: 159px;
|
||||
.headNav{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top:0px;
|
||||
left: 0px;
|
||||
color: #FFFFFF;
|
||||
background-color: rgba(225,225,225,0.03);
|
||||
z-index: 10000;
|
||||
.headNavDiv{
|
||||
width: 1200px;
|
||||
margin:0px auto;
|
||||
height: 72px;
|
||||
line-height: 72px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.headlist{
|
||||
display: flex;
|
||||
font-weight: 400;
|
||||
margin-left: 30px;
|
||||
li{
|
||||
margin-right: 38px;
|
||||
}
|
||||
}
|
||||
.regBtn{
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
color: #fff!important;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
border-radius: 5px;
|
||||
background-color: #466AFF;
|
||||
margin-left: 20px;
|
||||
&:hover{
|
||||
background-color: rgba(70,106,255,0.85);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.slick-track{
|
||||
height: 679px;
|
||||
.slick-slide{
|
||||
position: relative;
|
||||
div{
|
||||
height: 100%;
|
||||
.regform1{
|
||||
background:url('./Img/banner1.png') no-repeat center center;
|
||||
background-size:cover;
|
||||
}
|
||||
.regform2{
|
||||
background:url('./Img/banner2.png') no-repeat center center;
|
||||
background-size:cover;
|
||||
}
|
||||
.regform3{
|
||||
background:url('./Img/banner4.png') no-repeat center center;
|
||||
background-size:cover;
|
||||
}
|
||||
}
|
||||
.regPrg{
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
width: 1200px;
|
||||
left: 50%;
|
||||
margin-left: -600px;
|
||||
top:50%;
|
||||
margin-top: -23px;
|
||||
a{
|
||||
color: #fff!important;
|
||||
display: inline-block;
|
||||
background-color: #466AFF;
|
||||
border-radius: 5px;
|
||||
height: 46px;
|
||||
line-height: 46px;
|
||||
width: 98px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
}
|
||||
img{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top:0px;
|
||||
left: 0px;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
.ant-carousel{
|
||||
min-width: 1200px;
|
||||
}
|
||||
.ant-carousel .slick-dots{
|
||||
width: 1200px;
|
||||
text-align: left;
|
||||
left: 50%;
|
||||
margin-left: -600px;
|
||||
bottom: 25%;
|
||||
li{
|
||||
margin:0px;
|
||||
margin-right: 15px;
|
||||
margin-left: 5px;
|
||||
button{
|
||||
background-color: rgba(225,225,225,0.45);
|
||||
}
|
||||
button,&.slick-active button{
|
||||
width: 46px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.topEditionUl{
|
||||
position: absolute;
|
||||
width: 1244px;
|
||||
background-image: url('./Img/top-bg.png');
|
||||
height: 244px;
|
||||
bottom: -139px;
|
||||
left: 50%;
|
||||
margin-left: -622px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
li{
|
||||
background-image: url('./Img/top-2.png');
|
||||
height: 163px;
|
||||
width: 377px;
|
||||
padding:36px 35px;
|
||||
color: #fff;
|
||||
margin:0px 5px;
|
||||
p{
|
||||
line-height: 25px;
|
||||
&:first-child{
|
||||
margin-bottom: 12px!important;
|
||||
}
|
||||
}
|
||||
&:first-child{
|
||||
background-image: url('./Img/top-1.png');
|
||||
}
|
||||
&:last-child{
|
||||
background-image: url('./Img/top-3.png');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.secondEdition{
|
||||
.theTitle{
|
||||
height: 53px;
|
||||
line-height: 53px;
|
||||
font-size: 38px;
|
||||
font-weight: 500;
|
||||
color: #1E1E1E;
|
||||
text-align: center;
|
||||
margin: 42px 0px 30px!important;
|
||||
}
|
||||
.ant-anchor-wrapper{
|
||||
width: 1200px;
|
||||
margin:0px auto;
|
||||
.ant-anchor{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.ant-anchor-ink{
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: #D8D8D8;
|
||||
border: 1px solid rgba(153, 153, 153, 0.5);
|
||||
bottom: 0px;
|
||||
top:initial;
|
||||
}
|
||||
li{
|
||||
padding:18px 19px;
|
||||
margin:0px 10px;
|
||||
position: relative;
|
||||
font-size: 18px;
|
||||
a{
|
||||
color: #333333!important;
|
||||
}
|
||||
&.active::after{
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
bottom: 2px;
|
||||
height:2px;
|
||||
background-color: #466AFF;
|
||||
content: "";
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.secondEditionContent{
|
||||
padding:65px 0px;
|
||||
width: 1200px;
|
||||
margin:0px auto;
|
||||
.hadoop{
|
||||
background:url('./Img/2-1bg.png') no-repeat center center;
|
||||
background-size:cover;
|
||||
min-height: 753px;
|
||||
padding:50px 56px;
|
||||
display: flex;
|
||||
.descBox{
|
||||
max-width: 352px;
|
||||
word-break: break-all;
|
||||
.desc1{
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
font-size: 36px;
|
||||
font-weight: 600;
|
||||
color: #FFFFFF;
|
||||
background: -webkit-linear-gradient(90deg, #50EDFF 0%, #557CFF 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
.desc2{
|
||||
height: 72px;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #69DAF5;
|
||||
line-height: 36px;
|
||||
margin-top: 97px;
|
||||
}
|
||||
.desc3{
|
||||
height: 108px;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
line-height: 36px;
|
||||
margin-top: 70px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.oneStop{
|
||||
text-align: center;
|
||||
.oneStopContent{
|
||||
display: flex;
|
||||
.osLeftMain{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
position: relative;
|
||||
margin-bottom: 182px;
|
||||
.osleftPosi1,.osleftPosi2{
|
||||
position: absolute;
|
||||
right:10px;
|
||||
top:102px;
|
||||
}
|
||||
.osleftPosi2{
|
||||
top:217px;
|
||||
right:20px;
|
||||
}
|
||||
}
|
||||
.osRightMain{
|
||||
margin-left: 22px;
|
||||
text-align: left;
|
||||
.osRightTitle{
|
||||
height: 50px;
|
||||
font-size: 36px;
|
||||
font-weight: 600;
|
||||
color: #FFFFFF;
|
||||
line-height: 50px;
|
||||
background: -webkit-linear-gradient(112deg, #FF8B75 0%, #DD2476 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
margin-top: 28px;
|
||||
}
|
||||
p{
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #637497;
|
||||
line-height: 36px;
|
||||
margin-top: 50px;
|
||||
margin-bottom: 0px!important;
|
||||
span{
|
||||
color: #1E1E1E;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.highDevops{
|
||||
text-align: center;
|
||||
.highDoTitle{
|
||||
display: inline-block;
|
||||
height: 90px;
|
||||
line-height: 90px;
|
||||
padding: 0px 66px;
|
||||
font-size: 36px;
|
||||
font-weight: 600;
|
||||
color: #FFFFFF;
|
||||
background: -webkit-linear-gradient(112deg, #D57CA0 0%, #4877F3 51%, #20C3EF 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
position: relative;
|
||||
&::after{
|
||||
position: absolute;
|
||||
top: -3px; bottom: -3px;
|
||||
left: -3px; right: -3px;
|
||||
background: linear-gradient(135deg,#000781, #23b7cb);
|
||||
border-radius: 30px;
|
||||
content: '';
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thirdEdition{
|
||||
background:url('./Img/3-bg.png') no-repeat center center;
|
||||
background-size:cover;
|
||||
min-height: 846px;
|
||||
min-width: 1200px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.title{
|
||||
height: 53px;
|
||||
font-size: 38px;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
line-height: 53px;
|
||||
margin-bottom: 13px;
|
||||
}
|
||||
.subtitle{
|
||||
height: 39px;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
line-height: 39px;
|
||||
}
|
||||
.thirdUl{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 50px;
|
||||
margin-bottom: 25px!important;
|
||||
li{
|
||||
margin:0px 67px;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
&.active::after{
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
background-color: #466AFF;
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
bottom: -25px;
|
||||
}
|
||||
&>span{
|
||||
font-weight: 500;
|
||||
font-size: 22px;
|
||||
margin-top:10px;
|
||||
display: block;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
&>div{
|
||||
position: relative;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
margin:0px 20px;
|
||||
img{
|
||||
position: absolute;
|
||||
&:first-child{
|
||||
z-index: 2;
|
||||
}
|
||||
&:last-child{
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.thirdLists{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 48px;
|
||||
.listbox{
|
||||
margin-left: 54px;
|
||||
.listTitle{
|
||||
height: 30px;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
line-height: 30px;
|
||||
position: relative;
|
||||
margin-bottom: 75px!important;
|
||||
&::after{
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
width: 39px;
|
||||
height: 3px;
|
||||
content: "";
|
||||
bottom: -20px;
|
||||
background-color: #466AFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
li{
|
||||
display: flex;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
margin-bottom: 30px!important;
|
||||
a{
|
||||
flex:1;
|
||||
color: #fff!important;
|
||||
}
|
||||
span{
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.forthEdition{
|
||||
background:url('./Img/4-bg.png') no-repeat center center;
|
||||
background-size:cover;
|
||||
min-height: 621px;
|
||||
min-width: 1200px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.theTitle{
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
font-size: 30px;
|
||||
font-weight: 500;
|
||||
color: #1E1E1E;
|
||||
margin-bottom: 50px!important;
|
||||
}
|
||||
.qulikyreg{
|
||||
display: inline-block;
|
||||
width: 137px;
|
||||
text-align: center;
|
||||
height: 58px;
|
||||
line-height: 58px;
|
||||
color: #fff!important;
|
||||
background-color: #466AFF;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 80px;
|
||||
font-size: 18px;
|
||||
}
|
||||
.forthUl{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
li{
|
||||
margin:0px 40px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.forthtitle{
|
||||
height: 30px;
|
||||
font-size: 22px;
|
||||
font-weight: 500;
|
||||
color: #1E1E1E;
|
||||
line-height: 30px;
|
||||
display: block;
|
||||
margin-top: 25px;
|
||||
}
|
||||
.forthsubtitle{
|
||||
height: 22px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #1E1E1E;
|
||||
line-height: 22px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fifthEdition{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding:68px 0px;
|
||||
min-width: 1200px;
|
||||
.title{
|
||||
height: 53px;
|
||||
font-size: 38px;
|
||||
font-weight: 500;
|
||||
color: #000000;
|
||||
line-height: 53px;
|
||||
}
|
||||
.subtitle{
|
||||
height: 39px;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #1E1E1E;
|
||||
line-height: 39px;
|
||||
margin-top: 13px;
|
||||
margin-bottom: 54px;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
import React from 'react';
|
||||
import Img1 from './Img/2-2-1.png';
|
||||
import ImgHead from './Img/2-2-head.png';
|
||||
import Img2 from './Img/2-2-2.png';
|
||||
import Img3 from './Img/2-2-3.png';
|
||||
import Imgring from './Img/2-2-ring.png';
|
||||
|
||||
function SecondEdition(params) {
|
||||
return(
|
||||
<div className="secondEditionContent">
|
||||
<div className="hadoop">
|
||||
<div className="descBox">
|
||||
<p className="desc1">分布式协作开发</p>
|
||||
<p className="desc2">基于Git打造分布式代码托管环境,提供免费公、私有代码仓库;</p>
|
||||
<p className="desc3">支持在线文件编辑、代码分支管理、协作贡献统计、代码仓库复刻(Fork)、贡献合并请求(PR)、群智贡献审阅等功能;</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="oneStop">
|
||||
<div className="oneStopContent">
|
||||
<div className="osLeftMain">
|
||||
<img src={Img1} alt="" width="494px"/>
|
||||
<img src={ImgHead} alt="" width="213px" style={{marginLeft:"-12px"}}/>
|
||||
<img src={Img2} alt="" width="627px" className="osleftPosi1"/>
|
||||
<img src={Img3} alt="" width="412px" className="osleftPosi2"/>
|
||||
</div>
|
||||
<div className="osRightMain">
|
||||
<p className="osRightTitle">一站式过程管理</p>
|
||||
<p>提供<span>易修(Issue)、里程碑、通知提醒、标签归档</span>等多样化任务管理工具,支持各类开发任务的发布、指派与跟踪;</p>
|
||||
<p>同时提供<span>在线Wiki文档、组织多粒度管理</span>等功能,为您搭建一站式的项目过程管理环境;</p>
|
||||
<p><span>让您的团队协作更高效、过程更透明!</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<img src={Imgring} alt="" height="83px"/>
|
||||
</div>
|
||||
<div className="highDevops">
|
||||
<span className="highDoTitle">高效流水线运维</span>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
export default SecondEdition
|
|
@ -0,0 +1,85 @@
|
|||
import React,{ useState , useEffect } from 'react';
|
||||
import T311 from './Img/3-1-1.png';
|
||||
import T312 from './Img/3-1-2.png';
|
||||
import T321 from './Img/3-2-1.png';
|
||||
import T322 from './Img/3-2-2.png';
|
||||
import T331 from './Img/3-3-1.png';
|
||||
import T332 from './Img/3-3-2.png';
|
||||
import T341 from './Img/3-4-1.png';
|
||||
import T342 from './Img/3-4-2.png';
|
||||
import bg3 from './Img/3-1.png';
|
||||
|
||||
import './Index.scss';
|
||||
|
||||
function ThirdEdition(params) {
|
||||
const [ active , setActive ] = useState(1);
|
||||
|
||||
return(
|
||||
<div className="thirdEdition">
|
||||
<p className="title">开发者的家园</p>
|
||||
<p className="subtitle">一个实现100%开源,产学研联合面向软件创新的开源社区</p>
|
||||
<ul className="thirdUl">
|
||||
<li className={active===1?"active":""}onClick={()=>setActive(1)}>
|
||||
<div style={{marginTop:"-10px"}}>
|
||||
<img src={T311} alt="" height="41px" style={{top:"8px",left:"10px"}}/>
|
||||
<img src={T312} alt="" width="36px"/>
|
||||
</div>
|
||||
<span style={{marginTop:"20px"}}>平台动态</span>
|
||||
</li>
|
||||
<li className={active===2?"active":""}onClick={()=>setActive(2)}>
|
||||
<div>
|
||||
<img src={T321} alt="" width="32px" style={{left:"8px"}}/>
|
||||
<img src={T322} alt="" width="26px" style={{top:"8px"}}/>
|
||||
</div>
|
||||
<span>优秀仓库</span>
|
||||
</li>
|
||||
<li className={active===3?"active":""}onClick={()=>setActive(3)}>
|
||||
<div>
|
||||
<img src={T331} alt="" width="33px" style={{right:"3px"}}/>
|
||||
<img src={T332} alt="" width="29px"/>
|
||||
</div>
|
||||
<span>精选文章</span>
|
||||
</li>
|
||||
<li className={active===4?"active":""}onClick={()=>setActive(4)}>
|
||||
<div>
|
||||
<img src={T341} alt="" width="42px"/>
|
||||
<img src={T342} alt="" width="26px" style={{top:"13px",left:"7px"}}/>
|
||||
</div>
|
||||
<span>经验分享</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div className="thirdLists">
|
||||
<img src={bg3} alt="" width="336px"/>
|
||||
<div className="listbox">
|
||||
<p className="listTitle">Gitlink分享最新平台资讯、社区活动通知、开源竞赛信息,把握开源生态发展脉搏</p>
|
||||
<li>
|
||||
<a>第四届中国软件开源创新大赛——Gitlink赛道</a>
|
||||
<span><i className="iconfont "></i>4561</span>
|
||||
<span>2021-08-26</span>
|
||||
</li>
|
||||
<li>
|
||||
<a>第四届中国软件开源创新大赛——Gitlink赛道</a>
|
||||
<span><i className="iconfont "></i>4561</span>
|
||||
<span>2021-08-26</span>
|
||||
</li>
|
||||
<li>
|
||||
<a>第四届中国软件开源创新大赛——Gitlink赛道</a>
|
||||
<span><i className="iconfont "></i>4561</span>
|
||||
<span>2021-08-26</span>
|
||||
</li>
|
||||
<li>
|
||||
<a>第四届中国软件开源创新大赛——Gitlink赛道</a>
|
||||
<span><i className="iconfont "></i>4561</span>
|
||||
<span>2021-08-26</span>
|
||||
</li>
|
||||
<li>
|
||||
<a>第四届中国软件开源创新大赛——Gitlink赛道</a>
|
||||
<span><i className="iconfont "></i>4561</span>
|
||||
<span>2021-08-26</span>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
export default ThirdEdition;
|
|
@ -0,0 +1,15 @@
|
|||
import React from 'react';
|
||||
import { Carousel } from 'antd';
|
||||
|
||||
function TopEdition() {
|
||||
return(
|
||||
<Carousel autoplay>
|
||||
<div className="regform1"></div>
|
||||
<div className="regform2"></div>
|
||||
<div className="regform3">
|
||||
<p className="regPrg"><a>注册</a></p>
|
||||
</div>
|
||||
</Carousel>
|
||||
)
|
||||
}
|
||||
export default TopEdition;
|