项目及课题列表优化

This commit is contained in:
谢思 2022-05-19 10:24:24 +08:00
parent ed18f7afcf
commit a884146577
7 changed files with 63 additions and 26 deletions

View File

@ -125,7 +125,7 @@ const Glcc = Loadable({
// })
// 此处仅维护前端可能的一级路由,不用进行项目或者组织判断的字段。
const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder"];
const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder", "glcc"];
class App extends Component {
constructor(props) {

View File

@ -37,13 +37,14 @@ function Lightspot(props) {
<h3 className="teacher-invite">有兴趣成为GLCC的导师吗</h3>
<div className="teacher-content">想要扩大项目知名度和影响力为开源项目吸引新鲜血液培养长期开发者通过GitLink平台与高校建立连接指导开源新人传授他们的开源文化享受开源的乐趣</div>
{/* <Link className='applyBut' to={isGlccApplyDate ? current_user && current_user.login ? 'https://wj.qq.com/s2/10175205/e8df/' : '/login?go_page=/glcc/apply' : '/glcc'} onClick={()=>{!isGlccApplyDate && showNotification("不在报名时间报名时间为4月15日~5月20日")}}>立即报名</Link> */}
<div className='applyBut project' onClick={goToApply}><span className='hover-none'>项目报名</span><span className='hover-show'>项目报名已截止</span></div>
{/* onClick={goToApply} */}
<div className='applyBut project'><span className='hover-none'>项目报名</span><span className='hover-show'>项目报名已截止</span></div>
</div>
<div className="teacher-text">
<h3 className="teacher-invite">你是开源新手有兴趣参加GLCC吗</h3>
<div className="teacher-content">想要参与一线开源项目开发熟悉开源社区运作流程接受资深开源软件专家指导获得丰厚奖金和实习机会参加GLCC开启全新的开源之旅</div>
{/* <Link className='applyBut' to={isGlccApplyDate ? current_user && current_user.login ? 'https://wj.qq.com/s2/10175205/e8df/' : '/login?go_page=/glcc/apply' : '/glcc'} onClick={()=>{!isGlccApplyDate && showNotification("不在报名时间报名时间为4月15日~5月20日")}}>立即报名</Link> */}
<div className='applyBut' onClick={goToApply}>学生报名</div>
<div className='applyBut' onClick={()=>{window.location.href="/glcc/student/2"}}>学生报名</div>
</div>
{/* <img className="teacher-img" src={teacherImg} alt=''></img> */}
</div>

View File

@ -39,7 +39,7 @@ export default ({ detail, projectId, applyTaskId }) => {
info ? <div className={`projectDetailBox ${detail ? '':'byTask'}`}>
<div className="projectDetailHead">
<span className='name'>{info.projectName}</span>
<span className='type'>{info.projectType}</span>
{info.projectType && <span className='type'>{info.projectType}</span>}
<p>{info.gitlinkUrl}</p>
<div>{info.officialWebsiteUrl}</div>
</div>

View File

@ -48,6 +48,10 @@ function Project(propsF) {
<Link to="/glcc/student/2" className={pathname.lastIndexOf('/2') !== -1 ? 'active' : ''}>课题列表</Link>
<Link to="/glcc/student/1" className={pathname.lastIndexOf('/1') !== -1 ? 'active' : ''}>项目列表</Link>
</div>
<div className='gobackBox'>
<a href='/glcc'>开源夏令营 / </a>
课题及项目列表
</div>
<Spin spinning={false}>
<Switch {...propsF}>
<Route

View File

@ -1,4 +1,5 @@
.glcc_project{
background-color: #ebf2ff;
.head{
background-color:rgba(188, 208, 255, 0.27);
border:1px solid #ffffff;
@ -18,6 +19,17 @@
}
}
}
.gobackBox{
width: 1200px;
margin: 0 auto;
padding: 25px 0 12px;
color: #202d40;
font-size: 16px;
border-bottom: 1px dashed #bec5d5;
a{
color:#a4aabb;
}
}
.listBox{
background-image:linear-gradient(180deg,#ebf2ff 0%,#ebf2ff 43.09%,#f3f4f8 100%);
.list{
@ -26,22 +38,28 @@
.search{
width: 40%;
margin: 0 auto;
padding: 40px 0;
padding: 25px 0 40px;
}
.search .ant-btn, .search .ant-input{
height: 48px;
}
.search .ant-btn{font-size: 30px;}
.search .ant-input{font-size: 16px;}
.search .ant-input{
font-size: 16px;
border-color: #ebf2ff;
&:hover{
border-color: #466aff;
}
}
}
.search{
.ant-btn-primary{
background-color:#466aff;
border-color: #466aff;
}
.ant-input:hover{
border-color: #466aff;
}
// .ant-input:hover{
// border-color: #466aff;
// }
}
}
}

View File

@ -19,7 +19,7 @@ function TaskList({applyTaskId, setStudentInfoReset}) {
const columns = [
{ title: '序号', dataIndex: 'index', align: 'center', className:"taskTableColumns", render: (text, item, index) => index + 1 },
{ title: '课题名称', dataIndex: 'taskName', className:"taskTableColumns", width: '28%', render: (text) => <Tooltip title={text}>{text}</Tooltip> },
{ title: '课题名称', dataIndex: 'taskName', className:"taskTableColumns taskName", width: '28%', render: (text, item) => <Tooltip title={text}><span onClick={()=>{window.location.href=item.taskUrl}}>{text}</span></Tooltip> },
{ title: '项目名称', dataIndex: 'tutorName', className:"taskTableColumns", width: '28%', render: (text) => <Tooltip title={text}>{text}</Tooltip> },
{ title: '课题奖金', dataIndex: 'taskReward', className:"taskTableColumns", render: (text) => <span> {text}</span> },
{
@ -41,11 +41,11 @@ function TaskList({applyTaskId, setStudentInfoReset}) {
if (props.expanded) {
return <a className='actionBox' style={{marginRight: 8 }} onClick={e => {
props.onExpand(props.record, e);
}}><i className='iconfont icon-ketixiangqingicon mr5'></i>项目详情<i className="iconfont icon-changyongtubiao-xianxingdaochu-zhuanqu- font-12 ml5 down"></i></a>
}}><i className='iconfont icon-ketixiangqingicon mr5'></i>项目详情<i className="iconfont icon-changyongtubiao-xianxingdaochu-zhuanqu- font-12 ml5 down mr10"></i></a>
} else {
return <a className='actionBox' style={{marginRight: 8 }} onClick={e => {
props.onExpand(props.record, e);
}}><i className='iconfont icon-ketixiangqingicon mr5'></i>项目详情<i className="iconfont icon-jiantou9 font-12 ml5 down"></i></a>
}}><i className='iconfont icon-ketixiangqingicon mr5'></i>项目详情<i className="iconfont icon-jiantou9 font-12 ml5 down mr10"></i></a>
}
}

View File

@ -4,29 +4,43 @@
border: 1px solid white;
}
}
.actionBox{
display: flex;
align-items: center;
color: #466aff;
cursor: pointer;
&:hover{color:#5d7cff !important;}
&:active{color:#1140ff !important;}
.iconfont:not(.down):not(.cancelApply){margin-left: 8px;}
.applyTask{color:#eb9350;}
.cancelApply{visibility: hidden;}
.taskTableColumns span div span{
font-size: 16px;
font-weight:700;
color:#273778;
}
tr:hover .actionBox .cancelApply{
visibility: visible;
color: #E31E1E;
.taskTableColumns span{
font-size: 15px;
color: #353f5e;
}
.taskTableColumns.taskName span{
color: #2545c9;
}
.ant-table-thead > tr > .taskTableColumns, .ant-table-tbody > tr > .taskTableColumns{
background-color:#F1F6FF;
border-bottom: 1px dashed #bec5d5;
}
.ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > .taskTableColumns{
background-color:#fbfbfc;
}
.ant-table-tbody .actionColumns{
.actionColumns{
display: flex;
.actionBox, .actionBox span{
cursor: pointer;
color: #466aff;
&:hover{color:#5d7cff !important;}
&:active{color:#1140ff !important;}
}
.applyTask, span.applyTask{
color:#eb9350;
&:hover{color: #FFB074 !important;}
&:active{color:#D66A17 !important;}
}
.cancelApply{visibility: hidden;}
}
tr:hover .actionColumns .cancelApply{
visibility: visible;
color: #E31E1E;
}
.cancelApplyTask{
.ant-modal-close{top: 0px !important;}