开源夏令营报名页+帮助页+首页-组织方、联系我们

This commit is contained in:
谢思 2022-04-12 13:48:47 +08:00
parent 60c01d8682
commit 83c2517824
25 changed files with 685 additions and 119 deletions

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1640585290619') format('woff2'),
url('iconfont.woff?t=1640585290619') format('woff'),
url('iconfont.ttf?t=1640585290619') format('truetype');
src: url('iconfont.woff2?t=1649726899310') format('woff2'),
url('iconfont.woff?t=1649726899310') format('woff'),
url('iconfont.ttf?t=1649726899310') format('truetype');
}
.iconfont {
@ -13,6 +13,114 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-bangzhuzhongxinicon:before {
content: "\e926";
}
.icon-kaiyuanxiangmu:before {
content: "\e91d";
}
.icon-luntanjiaoliu:before {
content: "\e91e";
}
.icon-wangzhanpeizhi:before {
content: "\e91f";
}
.icon-weixuanze-chuangkekongjian:before {
content: "\e920";
}
.icon-tubiao:before {
content: "\e921";
}
.icon-gonggaofabu:before {
content: "\e922";
}
.icon-jingsaihuodong:before {
content: "\e923";
}
.icon-yonghuguanli:before {
content: "\e924";
}
.icon-shenpi:before {
content: "\e925";
}
.icon-zhuanli1:before {
content: "\e918";
}
.icon-daimaicon:before {
content: "\e91c";
}
.icon-jiangxiangicon:before {
content: "\e916";
}
.icon-shuju:before {
content: "\e917";
}
.icon-wendang:before {
content: "\e919";
}
.icon-lunwen:before {
content: "\e91a";
}
.icon-zhuanli:before {
content: "\e91b";
}
.icon-gailan1:before {
content: "\e914";
}
.icon-tuandui:before {
content: "\e915";
}
.icon-icon2:before {
content: "\e912";
}
.icon-a-21:before {
content: "\e913";
}
.icon-a-2:before {
content: "\e90f";
}
.icon-a-3:before {
content: "\e910";
}
.icon-icon1:before {
content: "\e911";
}
.icon-ioon:before {
content: "\e90e";
}
.icon-shanchu_tc_icon1:before {
content: "\e90c";
}
.icon-zhuanjiaicon:before {
content: "\e90d";
}
.icon-shengming:before {
content: "\e90b";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,195 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "28888753",
"name": "帮助中心icon",
"font_class": "bangzhuzhongxinicon",
"unicode": "e926",
"unicode_decimal": 59686
},
{
"icon_id": "28163416",
"name": "开源项目",
"font_class": "kaiyuanxiangmu",
"unicode": "e91d",
"unicode_decimal": 59677
},
{
"icon_id": "28163417",
"name": "论坛交流",
"font_class": "luntanjiaoliu",
"unicode": "e91e",
"unicode_decimal": 59678
},
{
"icon_id": "28163418",
"name": "网站配置",
"font_class": "wangzhanpeizhi",
"unicode": "e91f",
"unicode_decimal": 59679
},
{
"icon_id": "28163419",
"name": "未选择-创客空间",
"font_class": "weixuanze-chuangkekongjian",
"unicode": "e920",
"unicode_decimal": 59680
},
{
"icon_id": "28163420",
"name": "图标",
"font_class": "tubiao",
"unicode": "e921",
"unicode_decimal": 59681
},
{
"icon_id": "28163421",
"name": "公告发布",
"font_class": "gonggaofabu",
"unicode": "e922",
"unicode_decimal": 59682
},
{
"icon_id": "28163422",
"name": "竞赛活动",
"font_class": "jingsaihuodong",
"unicode": "e923",
"unicode_decimal": 59683
},
{
"icon_id": "28163423",
"name": "用户管理",
"font_class": "yonghuguanli",
"unicode": "e924",
"unicode_decimal": 59684
},
{
"icon_id": "28163424",
"name": "审批",
"font_class": "shenpi",
"unicode": "e925",
"unicode_decimal": 59685
},
{
"icon_id": "22773568",
"name": "专利",
"font_class": "zhuanli1",
"unicode": "e918",
"unicode_decimal": 59672
},
{
"icon_id": "27680124",
"name": "代码icon",
"font_class": "daimaicon",
"unicode": "e91c",
"unicode_decimal": 59676
},
{
"icon_id": "27664463",
"name": "奖项icon",
"font_class": "jiangxiangicon",
"unicode": "e916",
"unicode_decimal": 59670
},
{
"icon_id": "27664464",
"name": "数据",
"font_class": "shuju",
"unicode": "e917",
"unicode_decimal": 59671
},
{
"icon_id": "27664466",
"name": "文档",
"font_class": "wendang",
"unicode": "e919",
"unicode_decimal": 59673
},
{
"icon_id": "27664467",
"name": "论文",
"font_class": "lunwen",
"unicode": "e91a",
"unicode_decimal": 59674
},
{
"icon_id": "27664468",
"name": "专利",
"font_class": "zhuanli",
"unicode": "e91b",
"unicode_decimal": 59675
},
{
"icon_id": "27664392",
"name": "概览",
"font_class": "gailan1",
"unicode": "e914",
"unicode_decimal": 59668
},
{
"icon_id": "27664393",
"name": "团队",
"font_class": "tuandui",
"unicode": "e915",
"unicode_decimal": 59669
},
{
"icon_id": "27299393",
"name": "icon",
"font_class": "icon2",
"unicode": "e912",
"unicode_decimal": 59666
},
{
"icon_id": "27299394",
"name": "2",
"font_class": "a-21",
"unicode": "e913",
"unicode_decimal": 59667
},
{
"icon_id": "27200759",
"name": "2",
"font_class": "a-2",
"unicode": "e90f",
"unicode_decimal": 59663
},
{
"icon_id": "27200760",
"name": "3",
"font_class": "a-3",
"unicode": "e910",
"unicode_decimal": 59664
},
{
"icon_id": "27200761",
"name": "icon",
"font_class": "icon1",
"unicode": "e911",
"unicode_decimal": 59665
},
{
"icon_id": "27041503",
"name": "ioon",
"font_class": "ioon",
"unicode": "e90e",
"unicode_decimal": 59662
},
{
"icon_id": "26470602",
"name": "shanchu_tc_icon",
"font_class": "shanchu_tc_icon1",
"unicode": "e90c",
"unicode_decimal": 59660
},
{
"icon_id": "26470603",
"name": "专家icon",
"font_class": "zhuanjiaicon",
"unicode": "e90d",
"unicode_decimal": 59661
},
{
"icon_id": "12505154",
"name": "声明",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -16,7 +16,8 @@ import marked from './common/marked';
import moment from 'moment'
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import SiderBar from './forge/Component/SiderBar'
import SiderBar from './forge/Component/SiderBar';
import SiderBarHelp from './glcc/siderBarHelp';
import { SnackbarHOC } from 'educoder';
import { initAxiosInterceptors } from './AppConfig'
@ -285,13 +286,13 @@ class App extends Component {
};
render() {
const { pathType } = this.state;
const { pathType, pathName } = this.state;
return (
<Provider store={store}>
<ConfigProvider locale={zhCN}>
<MuiThemeProvider theme={theme}>
<LoginDialog {...this.props} {...this.state} Modifyloginvalue={() => this.Modifyloginvalue()}></LoginDialog>
<SiderBar />
{pathName && pathName.indexOf("glcc") === -1 ? <SiderBar /> : <SiderBarHelp/>}
{/* <Router> */}
<Switch>
{/* wiki预览 */}

View File

@ -32,8 +32,8 @@ export function initAxiosInterceptors(props) {
// 判断网络是否连接
initOnlineOfflineListener();
// var proxy = "https://testforgeplus.trustie.net";
var proxy = "http://111.8.36.180:8000";
var proxy = "https://testforgeplus.trustie.net";
//响应前的设置
axios.interceptors.request.use(
config => {

View File

@ -23,7 +23,7 @@ export default function javaFetch(actionUrl){
}
if (window.location.port === "3007") {
// 模拟token为登录用户
const token = sessionStorage.token;
const token = cookie.load(TokenKey);
if (config.url.indexOf('?') === -1) {
config.url = `${config.url}?token=${token}`;
} else {

View File

@ -3,45 +3,17 @@ import fetch from './fetch';
// 获取当前用户报名信息
export function getUserApplyInfo(params) {
return fetch({
url: '/api/applyInformation/getUserApplyInfo',
url: `/api/applyInformation/getUserApplyInfo`,
method: 'get',
params
});
}
// 获取单个wiki
export function getWiki(params) {
//报名夏令营
export function applyGlcc(data) {
return fetch({
url: '/api/wiki/getWiki',
method: 'get',
params
});
}
//新增wiki
export function addWiki(data) {
return fetch({
url: '/api/wiki/createWiki',
url: '/api/applyInformation/create',
method: 'post',
data: data
});
}
//更新wiki
export function updateWiki(data) {
return fetch({
url: '/api/wiki/updateWiki',
method: 'PUT',
data: data
});
}
//删除wiki
export function deleteWiki(data) {
return fetch({
url: '/api/wiki/deleteWiki',
method: 'DELETE',
data,
});
}
}

View File

@ -1,18 +1,23 @@
import React , { useCallback, useEffect , useState } from 'react';
import { Breadcrumb, Button, Form, Icon, Input, Select, Upload } from 'antd';
import {classify} from '../static';
import {getUserApplyInfo} from '../api';
import { Breadcrumb, Button, Form, Input, Select, Upload } from 'antd';
import {getUserApplyInfo, applyGlcc} from '../api';
import axios from 'axios';
import './index.scss';
import TextArea from 'antd/lib/input/TextArea';
import { httpUrl } from '../fetch';
import './index.scss';
const Option = Select.Option;
function Apply(props) {
const {form, qzDetail, enrollStatus, setReload, current_user, history} = props;
const {form, current_user, showNotification} = props;
//
// current_user && (current_user.user_id = 1061)
// current_user && (current_user.userName = "")
const {getFieldDecorator, validateFields, setFieldsValue, validateFieldsAndScroll } = form;
const [reload, setReload] = useState(undefined);
const [imageUrl, setImageUrl] = useState(undefined);
const [loading, setLoading] = useState(false);
const [cateList, setCateList] = useState([]);
const [userApplyInfo, setUserApplyInfo] = useState(undefined);
const helper = useCallback(
(label, extra, name, rules, widget) => (
<Form.Item label={label} extra={extra}>
@ -22,19 +27,28 @@ function Apply(props) {
[]
);
//
useEffect(()=>{
//
const url = `/project_categories/pinned_index.json`;
axios.get(url).then(result=>{
if(result && result.data){
setCateList(result.data.project_categories);
}
}).catch(error=>{})
current_user && getUserApplyInfo({userId: current_user.user_id}).then(response=>{
console.log(response);
})
}, [])
useEffect(()=>{
//
current_user && getUserApplyInfo({userId: current_user.user_id}).then(response=>{
if(response && response.message === "success"){
response.data && setFieldsValue({
...response.data
})
setUserApplyInfo(response.data);
}
})
}, [reload])
//
function verify(dataIndex){
validateFields([dataIndex],(error, values)=>{
@ -44,14 +58,56 @@ function Apply(props) {
})
}
//
function handleSubmit(e){
e.preventDefault();
validateFieldsAndScroll((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
const params ={
...values,
projectLogoId: values.logo.file.response.data.id,
userId: current_user.user_id,
userName: current_user.username
}
applyGlcc(params).then(response=>{
if(response && response.message === "success"){
setReload(Math.random());
}
})
}
});
};
//
function beforeUpload(file){
const isLt100M = file.size / 1024 / 1024 < 2;
if (!isLt100M) {
showNotification(`文件大小必须小于${2}MB!`);
}
const isType = file.type === "image/png" || file.type === "image/jpg" || file.type === "image/jpeg";
if (!isType) {
showNotification("只能上传png、jpg、jpeg格式文件");
}
return isLt100M && isType;
}
function getBase64(img, callback) {
const reader = new FileReader();
reader.addEventListener('load', () => callback(reader.result));
reader.readAsDataURL(img);
reader.onload = function(e) {
setImageUrl(e.target.result); //
}
}
//
function handleChange(info){
if(info && info.file && info.file.status === "done"){
getBase64(info.file.originFileObj, imageUrl =>
setImageUrl(imageUrl)
);
}
}
return(
<div className="glcc_apply">
<div className='apply'>
@ -62,50 +118,51 @@ function Apply(props) {
<Form className="pt20 glcc_info_form" onSubmit={handleSubmit}>
{helper('项目名称',
'',
'name',
'projectName',
[{ required: true, message: "请正确输入项目名称" },
{ max: 32, message: '超出限制长度32位字符请重新编辑' }],
<Input placeholder="请输入项目名称" onBlur={()=>{verify("name")}}/>
<Input placeholder="请输入项目名称" onBlur={()=>{verify("name")}} disabled = {userApplyInfo ? true : false} className={userApplyInfo? "disabledInput":""}/>
)}
{helper('项目分类',
'',
'classify',
'projectType',
[],
<Select placeholder="请选择项目分类">
{cateList && cateList.map(item=> {return <Option value={item.id} key={item.id}>{item.name}</Option>})}
<Select placeholder="请选择项目分类" disabled = {userApplyInfo ? true : false} className={userApplyInfo? "disabledInput":""}>
{cateList && cateList.map(item=> {return <Option value={item.name} key={item.id}>{item.name}</Option>})}
</Select>
)}
{helper('官网地址',
'',
'area',
'officialWebsiteUrl',
[],
<Input placeholder="请输入官网地址"/>
<Input placeholder="请输入官网地址" disabled = {userApplyInfo ? true : false} className={userApplyInfo? "disabledInput":""}/>
)}
{helper('GitLink地址',
'',
'gitlink',
'gitlinkUrl',
[{ required: true, message: "请正确输入GitLink地址" }],
<Input placeholder="请输入GitLink地址" onBlur={()=>{verify("gitlink")}}/>
<Input placeholder="请输入GitLink地址" onBlur={()=>{verify("gitlink")}} disabled = {userApplyInfo ? true : false} className={userApplyInfo? "disabledInput":""}/>
)}
<div className='introArea'>{helper('项目简介',
'',
'intro',
'projectIntro',
[{ required: true, message: "请正确输入项目简介" },
{ max: 200, message: '超出限制长度200位字符请重新编辑' }],
<TextArea placeholder="请输入项目简介" onBlur={()=>{verify("intro")}} rows={4}/>
<TextArea placeholder="请输入项目简介" onBlur={()=>{verify("intro")}} rows={4} disabled = {userApplyInfo ? true : false} className={userApplyInfo? "disabledInput":""}/>
)}</div>
<div className='introArea'>{helper('项目logo',
'logo格式为png、jpg、jpeg限制上传大小2m建议上传尺寸为382*228',
'logo',
[{ required: true, message: "请正确输入项目简介" }],
<Upload
name="avatar"
[{ required: true, message: "请正确上传项目logo" }],
userApplyInfo && userApplyInfo.projectLogoId ? <div className='projectLogo'><img src={`${httpUrl}/busiAttachments/download/${userApplyInfo.projectLogoId}`}/></div>
:<Upload
listType="picture-card"
className="avatar-uploader"
showUploadList={false}
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
// beforeUpload={beforeUpload}
// onChange={this.handleChange}
action={`${httpUrl}/busiAttachments/upload`}
accept=".png,.jpg,.jpeg"
beforeUpload={beforeUpload}
onChange={handleChange}
>
{imageUrl ? <img src={imageUrl} alt="avatar" style={{ width: '100%' }} /> : <div>
<i className='iconfont icon-tianjiadaohang font-30'></i>
@ -114,11 +171,11 @@ function Apply(props) {
</Upload>
)}</div>
<p className='introArea tips'>: 课题及导师信息请在Gitlink项目中以issue的形式编辑</p>
<Form.Item className='subInfo introArea'>
{!userApplyInfo && <Form.Item className='subInfo introArea'>
<Button type="primary" htmlType="submit" className='sub'>提交</Button>
</Form.Item>
</Form.Item>}
</Form>
<div className='explain'>
<div className={`explain ${userApplyInfo ? "mt70" : ""}`}>
<p className='font-15 c000'>申请说明</p>
<div>1项目报名时间为<span className='c000'>4月15日5月8日</span>请在报名截止时间北京时间<span className='c000'>2022年5月8日18点</span>前提交报名信息</div>
<div>2本次夏令营使用Gitlink为代码托管平台学员基于Gitlink上项目数量完成课程任务如果您的项目还未在Gitlink中请现将项目迁移到Gitlink迁移事项请查看<a href='https://forum.gitlink.org.cn/forums/7296/detail' target="_blank" className='link'>迁移说明文档</a>如在迁移过程中遇到问题请加qq群: 1071514693 联系qq群管理员</div>

View File

@ -38,6 +38,25 @@
border-color: #b3c3db;
&:hover{border-color:#466aff;}
}
.has-error .ant-input:not([disabled]){
border-color:#ef0000;
}
.disabledInput,.disabledInput .ant-select-selection{
background-color: #e5ebf9 !important;
border: none;
color: #202d40;
}
.projectLogo{
width: 120px;
height: 120px;
border: 1px dashed #b3c3db;
border-radius: 4px;
line-height: 120px;
text-align: center;
img{
width: 100px;
}
}
}
.introArea{
width: 100%;
@ -59,6 +78,16 @@
.sub{
width: 200px;
height: 36px;
background-color: #466aff;
border-color: #466aff;
&:hover{
background-color:#5d7cff;
border-color: #5d7cff;
}
&:active{
background-color:#1140ff;
border-color: #1140ff;
}
}
}
.explain{

View File

@ -5,4 +5,5 @@ let actionUrl = settings && settings.common.glcc;
const service = javaFetch(actionUrl);
export const httpUrl = actionUrl;
export const main_site_url = settings && settings.common.main_site_url
export default service;

View File

@ -11,8 +11,8 @@ function Help(props) {
useEffect(()=>{
wikiPages({
owner: 'innov',
repo: 'PiggyMetrics22',
projectId: '1158'
repo: 'wiki_test',
projectId: '543211'
}).then(res => {
if (res && res.message === "200" && Array.isArray(res.data)) {
setFileArrInit(res.data);

View File

@ -1,6 +1,7 @@
import React from 'react';
import './index.scss';
import gitlink1 from '../../img/gitlink1.png';
import gitlink2 from '../../img/gitlink2.png';
function Contact() {
@ -12,13 +13,23 @@ function Contact() {
<div className="contact-info">
<h4 className="contact-invite">期待你的加入和我们一起推动开源繁荣发展</h4>
<div className="contact-way">
<p>问题资讯12345689@qq.com</p>
<p>合作推广56898989416@hotmail.com</p>
<p>问题资讯: 12345689@qq.com</p>
<p>合作推广: 56898989416@hotmail.com</p>
</div>
</div>
<div className='attention'>
<div className='one'>
<img src={gitlink1}></img>
<p>加入GitLink</p>
<p>社区QQ群</p>
</div>
<div>
<img src={gitlink2}></img>
<p>关注GitLink</p>
<p>微信公众号</p>
</div>
</div>
</div>
<div className="contact-line"></div>
</div>
</div>
)

View File

@ -1,24 +1,22 @@
.contact {
width: 100%;
// height: 5002px;
background-image: linear-gradient(
163.51deg,
#eff3fe 0%,
#ebeffb 9.63%,
#f0f4ff 16.73%,
#e8edfc 33.05%,
#e5ecff 43.93%,
#e3eaf6 72.41%,
#dce8ff 84.35%,
#ffffff 94.79%,
#ecf4ff 100%
);
// background-image: linear-gradient(
// 163.51deg,
// #eff3fe 0%,
// #ebeffb 9.63%,
// #f0f4ff 16.73%,
// #e8edfc 33.05%,
// #e5ecff 43.93%,
// #e3eaf6 72.41%,
// #dce8ff 84.35%,
// #ffffff 94.79%,
// #ecf4ff 100%
// );
background-image: url('../../img/contact_bg.png');
background-size: 100% 100%;
.glcc-content {
padding-bottom: 3.828vw;
}
.contact-info {
padding-bottom: 10vw;
}
.contact-invite {
@ -33,10 +31,23 @@
line-height: 28px;
}
.contact-line {
opacity: 20%;
height: 1px;
background-color: #378eff;
margin-top: 3.125vw;
}
}
.contact-content{
display: flex;
align-items: baseline;
justify-content: space-between;
padding-bottom: 55px;
border-bottom: 1px solid rgba(55, 142, 255, 0.2);
.attention{
display: flex;
div{
text-align: center;
img{
width: 140px;
}
&.one{
margin-right: 80px;
}
}
}
}

View File

@ -2,6 +2,7 @@ import React from 'react';
import './index.scss';
import ccf from '../../img/ccf_logo.png';
import gitlink from '../../img/gitlink.png';
import xjy from '../../img/xjy.png';
function Partner() {
@ -9,23 +10,104 @@ function Partner() {
<div className="partner">
<div className="glcc-content">
<h3 className="glcc-tit">组织方及合作伙伴</h3>
<div className='cont1'>
<div className='cont1 cont mb10'>
<div>
主办方
<div><img src={ccf}/></div>
<div onClick={()=>{window.open("https://www.ccf.org.cn/")}} className='div8b9'><img src={ccf}/></div>
</div>
<div>
承办方
<div><img src={ccf}/></div>
<div onClick={()=>{window.open("https://www.ccf.org.cn/kyfzwyh/")}} className='div8b9'><img src={ccf}/></div>
</div>
<div>
协办方
<div><img src={gitlink} className='gitlink'/></div>
<div className='flex_div'>
<div onClick={()=>{window.open("https://www.gitlink.org.cn/")}} className='div8b9 mr35'><img src={gitlink} className='gitlink'/></div>
<div onClick={()=>{window.open("http://111.8.36.180:81/#/about")}} className='div8b9'><img src={xjy} className='xjy'/></div>
</div>
</div>
</div>
<div>
<div className='cont cont2'>
赞助商
<div></div>
{/* 一级赞助商 */}
<div className='one_sponsor mt10'>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
</div>
{/* 二级赞助商 */}
<div className='two_sponsor'>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
</div>
{/* 三级赞助商 */}
<div className='three_sponsor'>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
</div>
{/* 四级赞助商 */}
<div className='four_sponsor'>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
<div>
<img src={gitlink} className='gitlink'/>
<p className='bor'></p>
<p>钻石赞助商</p>
</div>
</div>
</div>
<div className='cont cont3 mt15'>
参与高校
<div className='pt10'>
<div><img src={gitlink} className='gitlink'/></div>
<div><img src={gitlink} className='gitlink'/></div>
</div>
</div>
</div>
</div>

View File

@ -1,20 +1,23 @@
.partner{
height: 19.21875vw;
min-height: 369px;
background-image: linear-gradient(359.95deg,#373f5e 0%,#344281 100%);
padding-bottom: 100px;
background-image: url('../../img/partner_bg.png');
background-size: 100% 100%;
.glcc-tit{
color: #fff;
}
.cont1>div, .cont2, .cont3{
color:#ffffff;
font-size: 20px;
}
.cont1{
display: flex;
>div{
display: flex;
flex-direction: column;
color:#ffffff;
font-size: 20px;
margin-right: 35px;
}
>div>div{
.div8b9{
background-image:linear-gradient(135deg,#e5e5f8 0%,#dee3ff 19.24%,#eff1ff 47.28%,#e6e6ff 71.19%,#ececff 100%);
border:2px solid #8b96ce;
border-radius:2px;
@ -23,12 +26,81 @@
width: 220px;
height: 85px;
line-height: 85px;
margin-top: 7px;
&:hover{
box-shadow:0px 0px 10px rgba(255, 255, 255, 0.76);
cursor: pointer;
}
}
>div>div>img{
width: 80px;
.flex_div{display: flex;}
>div>div>img{width: 80px;}
.div8b9 .gitlink{width: 180px;}
.div8b9 .xjy{width: 200px;}
}
.cont2>div>div{
width:156px;
height:87px;
padding: 12px 20px;
margin-right: 50px;
>img{width: 110px;
margin: 0 auto;}
>.bor{
width: 100px;
height: 2px;
margin: 0 auto;
}
>div>div>.gitlink{
width: 180px;
>p{
width: auto;
font-size: 12px;
margin: 2px auto;
text-align: center;}
}
.cont2>div{
display: flex;
margin-top: 30px;
>div{border-radius:4px;
&:hover{
box-shadow:0px 0px 10px rgba(255, 255, 255, 0.76);
}}
&.one_sponsor>div{
background-image:linear-gradient(135.33deg,#636363 0%,#7b7b7b 21.34%,#6d6d6d 47.69%,#717171 61.08%,#606060 75.73%,#414141 100%);
border:1px solid #c4bfba;
>.bor{background-image: linear-gradient(242.92deg,#f9e9b1 0%,#fff2d2 52.29%,#ebcc90 100%);}
}
&.two_sponsor>div{
background-image:linear-gradient(135.33deg,#8d90af 0%,#8e92b8 21.34%,#7178ab 47.69%,#7879a4 72.15%,#81839c 100%);
border:1px solid #cccaef;
>.bor{background-color:#abb3eb;}
}
&.three_sponsor>div{
background-image:linear-gradient(135.33deg,#95764d 0%,#d4b893 21.34%,#b89360 47.69%,#bb9362 72.15%,#a07f54 100%);
border:1px solid #efe3ca;
>.bor{background-image:linear-gradient(242.92deg,#f9e9b1 0%,#fff2d2 52.29%,#ebcc90 100%);}
}
&.four_sponsor>div{
background-image:linear-gradient(135.33deg,#d6d6d6 0%,#d7d7d7 21.34%,#fbfbfb 47.69%,#d5d5d5 72.15%,#e4e4e6 100%);
border:1px solid #dbdbdd;
>.bor{background-color:#ffffff;}
>p{color: #000000;
opacity:83%;}
}
}
.cont3>div{
display: flex;
div{
width:156px;
height:67px;
background-image:linear-gradient(135deg,#e6e6ff 0%,#dee3ff 19.24%,#eff1ff 47.28%,#e6e6ff 71.19%,#ececff 100%);
border:2px solid #8b96ce;
border-radius:2px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 20px;
&:hover{
box-shadow:0px 0px 10px rgba(255, 255, 255, 0.76);
}
>img{width: 120px;}
}
}
}

BIN
src/glcc/img/contact_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 KiB

BIN
src/glcc/img/gitlink1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
src/glcc/img/gitlink2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
src/glcc/img/partner_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

BIN
src/glcc/img/xjy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,19 @@
.glccHelp{
width: 48px;
padding: 6px 16px;
text-align: center;
background-color:#f6f9fe;
border:1px solid #ffffff;
border-radius:2px;
box-shadow:0px 0px 8px rgba(55, 148, 255, 0.16);
color:#1e1e1e;
cursor: pointer;
.icon-bangzhuzhongxinicon{
color: #0654D6;
margin-left: -3px;}
&:hover{
color:#ffffff;
background-color:#466aff;
.icon-bangzhuzhongxinicon{color:#ffffff}
}
}

14
src/glcc/siderBarHelp.js Normal file
View File

@ -0,0 +1,14 @@
import React from 'react';
import './index.scss';
function SiderBar() {
return (
// 开源夏令营定制帮助中心调整按钮
<div className={"glccHelp -task-sidebar"} onClick={()=>window.open("/glcc/help")}>
<i className='iconfont icon-bangzhuzhongxinicon font-20'></i>
帮助中心
</div>
)
}
export default SiderBar;