Merge pull request '首页相关需求、issues修改' (#256) from caishi/forgeplus-react:gitlink_server into gitlink_server
|
@ -137,7 +137,7 @@ class App extends Component {
|
|||
this.unlisten = this.props.history.listen((location) => {
|
||||
let newPathname = location.pathname.split('/')[1];
|
||||
if (this.state.pathName !== newPathname) {
|
||||
// this.setState({ pathType: '' });
|
||||
this.setState({ pathType: '' });
|
||||
newPathname && this.getPathnameType(newPathname);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -25,7 +25,7 @@ if (isDev) {
|
|||
}
|
||||
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
|
||||
window.location.search.indexOf('debug=s') !== -1 ? 'student' :
|
||||
window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin'
|
||||
window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || ''
|
||||
}
|
||||
window._debugType = debugType;
|
||||
export function initAxiosInterceptors(props) {
|
||||
|
|
|
@ -3,7 +3,7 @@ import AccountProfile from "../../modules/user/AccountProfile";
|
|||
import { getImageUrl } from 'educoder'
|
||||
import axios from 'axios';
|
||||
import cookie from 'react-cookies';
|
||||
import { Input , notification , Dropdown ,Popover, Menu,Badge, Button } from 'antd';
|
||||
import { notification , Dropdown ,Popover, Menu,Badge } from 'antd';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import LoginDialog from '../../modules/login/LoginDialog';
|
||||
|
@ -15,9 +15,8 @@ import CheckProfile from '../Component/ProfileModal/Profile';
|
|||
|
||||
import './header.scss';
|
||||
import NoticeContent from './NoticeContent';
|
||||
const $ = window.$
|
||||
import MainLogo from './img/logo.png';
|
||||
// TODO 这部分脚本从公共脚本中直接调用
|
||||
const { Search } = Input;
|
||||
let old_url;
|
||||
|
||||
window._header_componentHandler = null;
|
||||
|
@ -57,26 +56,26 @@ class NewHeader extends Component {
|
|||
window._header_componentHandler = this;
|
||||
|
||||
//下拉框的显示隐藏
|
||||
var hoverTimeout;
|
||||
var hoveredPanel;
|
||||
$(".edu-menu-panel").hover(function () {
|
||||
if (hoverTimeout) { // 一次只显示一个panel
|
||||
if (hoveredPanel && hoveredPanel !== this) {
|
||||
$(hoveredPanel).find(".edu-menu-list").hide()
|
||||
}
|
||||
clearTimeout(hoverTimeout);
|
||||
hoverTimeout = null;
|
||||
}
|
||||
hoveredPanel = this;
|
||||
$(this).find(".edu-menu-list").show();
|
||||
}, function () {
|
||||
var that = this;
|
||||
// 延迟hide
|
||||
hoverTimeout = setTimeout(function () {
|
||||
$(that).find(".edu-menu-list").hide();
|
||||
}, 800)
|
||||
// var hoverTimeout;
|
||||
// var hoveredPanel;
|
||||
// $(".edu-menu-panel").hover(function () {
|
||||
// if (hoverTimeout) { // 一次只显示一个panel
|
||||
// if (hoveredPanel && hoveredPanel !== this) {
|
||||
// $(hoveredPanel).find(".edu-menu-list").hide()
|
||||
// }
|
||||
// clearTimeout(hoverTimeout);
|
||||
// hoverTimeout = null;
|
||||
// }
|
||||
// hoveredPanel = this;
|
||||
// $(this).find(".edu-menu-list").show();
|
||||
// }, function () {
|
||||
// var that = this;
|
||||
// // 延迟hide
|
||||
// hoverTimeout = setTimeout(function () {
|
||||
// $(that).find(".edu-menu-list").hide();
|
||||
// }, 800)
|
||||
|
||||
});
|
||||
// });
|
||||
//获取游览器地址
|
||||
try {
|
||||
window.sessionStorage.setItem("yslgeturls", JSON.stringify(window.location.href))
|
||||
|
@ -286,92 +285,90 @@ class NewHeader extends Component {
|
|||
};
|
||||
|
||||
render() {
|
||||
const { match ,resetUserInfo ,showNotification,publicNav} = this.props;
|
||||
const { resetUserInfo ,showNotification,publicNav} = this.props;
|
||||
let current_user = this.props.user;
|
||||
let {
|
||||
AccountProfiletype,
|
||||
user,
|
||||
isRender,
|
||||
headtypesonClickbool,
|
||||
headtypess,
|
||||
settings,
|
||||
visible,
|
||||
} = this.state;
|
||||
/*用户名称 用户头像url*/
|
||||
let activeIndex = false;
|
||||
let activeForums = false;
|
||||
let activeShixuns = false;
|
||||
let activePaths = false;
|
||||
let coursestype = false;
|
||||
let activePackages = false;
|
||||
let activeMoopCases = false;
|
||||
let activeCompetitions = false;
|
||||
// let activeIndex = false;
|
||||
// let activeForums = false;
|
||||
// let activeShixuns = false;
|
||||
// let activePaths = false;
|
||||
// let coursestype = false;
|
||||
// let activePackages = false;
|
||||
// let activeMoopCases = false;
|
||||
// let activeCompetitions = false;
|
||||
|
||||
if (match.path === '/forums') {
|
||||
activeForums = true;
|
||||
} else if (match.path.startsWith('/shixuns')) {
|
||||
activeShixuns = true;
|
||||
} else if (match.path.startsWith('/paths')) {
|
||||
activePaths = true;
|
||||
} else if (match.path.startsWith('/courses')) {
|
||||
coursestype = true;
|
||||
} else if (match.path.startsWith('/crowdsourcing')) {
|
||||
activePackages = true;
|
||||
} else if (match.path.startsWith('/moop_cases')) {
|
||||
activeMoopCases = true;
|
||||
} else if (match.path.startsWith('/competitions')) {
|
||||
activeCompetitions = true;
|
||||
} else {
|
||||
activeIndex = true;
|
||||
}
|
||||
// if (match.path === '/forums') {
|
||||
// activeForums = true;
|
||||
// } else if (match.path.startsWith('/shixuns')) {
|
||||
// activeShixuns = true;
|
||||
// } else if (match.path.startsWith('/paths')) {
|
||||
// activePaths = true;
|
||||
// } else if (match.path.startsWith('/courses')) {
|
||||
// coursestype = true;
|
||||
// } else if (match.path.startsWith('/crowdsourcing')) {
|
||||
// activePackages = true;
|
||||
// } else if (match.path.startsWith('/moop_cases')) {
|
||||
// activeMoopCases = true;
|
||||
// } else if (match.path.startsWith('/competitions')) {
|
||||
// activeCompetitions = true;
|
||||
// } else {
|
||||
// activeIndex = true;
|
||||
// }
|
||||
|
||||
let headtypes = '/';
|
||||
if (settings) {
|
||||
if (settings.navbar) {
|
||||
if (settings.navbar.length > 0) {
|
||||
if (match.path === '/') {
|
||||
if (headtypesonClickbool === false) {
|
||||
headtypes = undefined;
|
||||
} else {
|
||||
headtypes = headtypess;
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < settings.navbar.length; i++) {
|
||||
if (match.path === settings.navbar[i].link) {
|
||||
headtypes = settings.navbar[i].link;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
let shixuntype = false;
|
||||
let pathstype = false;
|
||||
let coursestypes = false;
|
||||
if (this.props && this.props.mygetHelmetapi != null) {
|
||||
let shixun = "/shixuns";
|
||||
let paths = "/paths";
|
||||
let courses = "/courses";
|
||||
this.props.mygetHelmetapi && this.props.mygetHelmetapi.navbar && this.props.mygetHelmetapi.navbar.map((item, key) => {
|
||||
var reg = RegExp(item.link);
|
||||
if (shixun.match(reg)) {
|
||||
if (item.hidden === true) {
|
||||
shixuntype = true
|
||||
}
|
||||
}
|
||||
if (paths.match(reg)) {
|
||||
if (item.hidden === true) {
|
||||
pathstype = true
|
||||
}
|
||||
}
|
||||
if (courses.match(reg)) {
|
||||
if (item.hidden === true) {
|
||||
coursestypes = true
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
// let headtypes = '/';
|
||||
// if (settings) {
|
||||
// if (settings.navbar) {
|
||||
// if (settings.navbar.length > 0) {
|
||||
// if (match.path === '/') {
|
||||
// if (headtypesonClickbool === false) {
|
||||
// headtypes = undefined;
|
||||
// } else {
|
||||
// headtypes = headtypess;
|
||||
// }
|
||||
// } else {
|
||||
// for (var i = 0; i < settings.navbar.length; i++) {
|
||||
// if (match.path === settings.navbar[i].link) {
|
||||
// headtypes = settings.navbar[i].link;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// let shixuntype = false;
|
||||
// let pathstype = false;
|
||||
// let coursestypes = false;
|
||||
// if (this.props && this.props.mygetHelmetapi != null) {
|
||||
// let shixun = "/shixuns";
|
||||
// let paths = "/paths";
|
||||
// let courses = "/courses";
|
||||
// this.props.mygetHelmetapi && this.props.mygetHelmetapi.navbar && this.props.mygetHelmetapi.navbar.map((item, key) => {
|
||||
// var reg = RegExp(item.link);
|
||||
// if (shixun.match(reg)) {
|
||||
// if (item.hidden === true) {
|
||||
// shixuntype = true
|
||||
// }
|
||||
// }
|
||||
// if (paths.match(reg)) {
|
||||
// if (item.hidden === true) {
|
||||
// pathstype = true
|
||||
// }
|
||||
// }
|
||||
// if (courses.match(reg)) {
|
||||
// if (item.hidden === true) {
|
||||
// coursestypes = true
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
|
||||
let search_url = settings && settings.common && settings.common.search;
|
||||
return (
|
||||
|
@ -390,6 +387,12 @@ class NewHeader extends Component {
|
|||
{...this.props}
|
||||
{...this.state}
|
||||
/> : ""}
|
||||
{
|
||||
publicNav &&
|
||||
<a href={'https://www.ccf.org.cn/'} className={"fl pr15"}>
|
||||
<img src={MainLogo} alt="" style={{ heigth: "40px" }}/>
|
||||
</a>
|
||||
}
|
||||
{
|
||||
settings && settings.nav_logo_url ?
|
||||
<a href={settings && settings.new_course.default_url} className={"fl mr50"} style={{minWidth:"45px"}}>
|
||||
|
@ -468,8 +471,12 @@ class NewHeader extends Component {
|
|||
<span className="font-15 ml30">
|
||||
<a onClick={() => this.educoderlogin()} className="mr5 color-white">登录</a>
|
||||
{
|
||||
settings && settings.common && settings.common.register &&
|
||||
<span><em className="vertical-line"></em><Link className="ml5 color-grey-6" to={`/register`}>注册</Link></span>
|
||||
(settings && settings.common && settings.common.register) ?
|
||||
publicNav ?
|
||||
<Link to={`/register`} className="regBtn">立即注册</Link>
|
||||
:
|
||||
<span><em className="vertical-line"></em><Link className="ml5 color-white" to={`/register`}>注册</Link></span>
|
||||
:""
|
||||
}
|
||||
</span>
|
||||
:
|
||||
|
|
|
@ -343,4 +343,20 @@
|
|||
a{
|
||||
color: #BDC2D1!important;
|
||||
}
|
||||
}
|
||||
.regBtn{
|
||||
height: 40px;
|
||||
background: #466AFF;
|
||||
border-radius: 2px;
|
||||
display: inline-block;
|
||||
padding:0px 18px;
|
||||
margin-left: 20px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF!important;
|
||||
line-height: 40px;
|
||||
&:hover{
|
||||
color: #FFFFFF!important;
|
||||
background-color: #355CFF;
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 2.6 KiB |
|
@ -41,7 +41,7 @@ function CoderDepotReadme({ operate , history , readme , ChangeFile }){
|
|||
|
||||
return(
|
||||
<div className="commonBox readBox" id="readme">
|
||||
<Anchor offsetTop={70}>
|
||||
<Anchor offsetTop={58}>
|
||||
<div className="commonBox-title boxTitle">
|
||||
<AlignCenter>
|
||||
<Dropdown overlay={menu()} trigger={['hover']} overlayClassName="menuslist">
|
||||
|
|
|
@ -215,7 +215,7 @@ class CoderRootFileDetail extends Component {
|
|||
const Option = Select.Option;
|
||||
return (
|
||||
<React.Fragment>
|
||||
<Anchor className="griditemAnchor" offsetTop={70}>
|
||||
<Anchor className="griditemAnchor" offsetTop={58}>
|
||||
<div className="griditemCate">
|
||||
{
|
||||
md && readOnly &&
|
||||
|
|
|
@ -112,8 +112,8 @@ class MergeItem extends Component {
|
|||
to={`/${item.is_original ? item.fork_project_user : owner}/${ item.is_original ? item.fork_project_identifier : projectsId }/tree/${turnbar(item.pull_request_head)}`}
|
||||
className="maxW200px task-hide ver-middle" style={{maxWidth:"200px"}}
|
||||
>
|
||||
{item.is_fork
|
||||
? item.pull_request_base
|
||||
{item.is_original
|
||||
? item.fork_project_user_name
|
||||
: item.author_name}
|
||||
:{item.pull_request_head}
|
||||
</Link>
|
||||
|
@ -136,8 +136,7 @@ class MergeItem extends Component {
|
|||
to={`/${owner}/${projectsId}/tree/${turnbar(item.pull_request_base)}`}
|
||||
className="maxW200px task-hide ver-middle" style={{maxWidth:"200px"}}
|
||||
>
|
||||
{item.is_fork ? item.pull_request_base : `${item.author_name}:${item.pull_request_base}`}
|
||||
{/* {project_author_name}:{item.pull_request_base} */}
|
||||
{project_author_name}:{item.pull_request_base}
|
||||
</Link>
|
||||
</Tag>
|
||||
}
|
||||
|
|
|
@ -365,10 +365,10 @@ class MessageCount extends Component {
|
|||
<div className="mt15">
|
||||
<Tag className="pr-branch-tag">
|
||||
<Link
|
||||
to={`/${data.pull_request.is_fork ? data.pull_request_base.fork_project_user : data.issue.author_name}/${data.pull_request.is_original?data.project_identifier:projectsId}/tree/${turnbar(data.pull_request && data.pull_request.head)}`}
|
||||
className="ver-middle task-hide" style={{maxWidth:"200px"}} title={`${data.pull_request.is_original ? data.pull_request.fork_project_user : data.issue.project_author_name}: ${data.pull_request && data.pull_request.head}`}
|
||||
to={`/${data.pull_request.is_original ? data.pull_request.fork_project_user : data.issue.project_author}/${data.pull_request.is_original?data.project_identifier:projectsId}/tree/${turnbar(data.pull_request && data.pull_request.head)}`}
|
||||
className="ver-middle task-hide" style={{maxWidth:"200px"}} title={`${data.pull_request.is_original ? data.pull_request.fork_project_user_name : data.issue.author_name}: ${data.pull_request && data.pull_request.head}`}
|
||||
>
|
||||
{data.pull_request.is_fork ? data.pull_request_base.fork_project_user : data.issue.author_name}: {data.pull_request && data.pull_request.head}
|
||||
{data.pull_request.is_original ? data.pull_request.fork_project_user_name : data.issue.author_name}: {data.pull_request && data.pull_request.head}
|
||||
</Link>
|
||||
</Tag>
|
||||
<span className="mr8 ver-middle">
|
||||
|
@ -383,7 +383,7 @@ class MessageCount extends Component {
|
|||
to={`/${owner}/${projectsId}/tree/${data.pull_request.base}`}
|
||||
className="ver-middle task-hide" style={{maxWidth:"200px"}} title={`${data.issue.project_author_name}:${data.pull_request.base}`}
|
||||
>
|
||||
{data.issue.author_name}:{data.pull_request.base}
|
||||
{data.issue.project_author_name}:{data.pull_request.base}
|
||||
</Link>
|
||||
</Tag>
|
||||
</div>
|
||||
|
|
|
@ -211,7 +211,7 @@ class MilepostDetail extends Component {
|
|||
|
||||
const { issue_chosen, issues, limit, page, search_count, data, isSpin , status_type } = this.state;
|
||||
const { projectsId, meilid ,owner} = this.props.match.params;
|
||||
|
||||
const { current_user , showLoginDialog , projectDetail } = this.props;
|
||||
const menu = (
|
||||
<Menu onClick={(e) => this.getOption(e)}>
|
||||
<Menu.Item key={'created_on'} value="desc">最新创建</Menu.Item>
|
||||
|
@ -239,8 +239,17 @@ class MilepostDetail extends Component {
|
|||
<span className="font-weight-bold">{data && data.percent && data.percent.toFixed(2)}%完成 </span>
|
||||
</span>
|
||||
<div className="milepostdiv">
|
||||
<Link to={`/${owner}/${projectsId}/milestones/${meilid}/edit`} className="topWrapper_btn" style={{ marginRight: 15 }} >编辑里程碑</Link>
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push(`/${owner}/${projectsId}/issues/${meilid}/new`)}} className="topWrapper_btn">创建易修</CheckProfile>
|
||||
{
|
||||
(current_user && current_user.login) && ( projectDetail && projectDetail.permission && projectDetail.permission !== "Reporter") ?
|
||||
<Link to={`/${owner}/${projectsId}/milestones/${meilid}/edit`} className="topWrapper_btn" style={{ marginRight: 15 }} >编辑里程碑</Link>
|
||||
:""
|
||||
}
|
||||
{
|
||||
current_user && current_user.login ?
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push(`/${owner}/${projectsId}/issues/${meilid}/new`)}} className="topWrapper_btn">创建易修</CheckProfile>
|
||||
:
|
||||
<a className="topWrapper_btn" onClick={showLoginDialog}>创建易修</a>
|
||||
}
|
||||
</div>
|
||||
</FlexAJ>
|
||||
</div>
|
||||
|
|
|
@ -52,7 +52,7 @@ class OrderItem extends Component {
|
|||
{current_user && current_user.login && checkbox}
|
||||
<div className="flex-1">
|
||||
<p className="mb10 df" style={{alignItems:"center"}}>
|
||||
<Link to={`/${owner}/${projectsId}/issues/${item.id}`} target="_blank" title={item.name} className="hide-1 font-16 color-grey-3 lineh-30 mr10" style={{maxWidth:"370px"}}>{item.name}</Link>
|
||||
<Link to={`/${owner}/${projectsId}/issues/${item.id}`} title={item.name} className="hide-1 font-16 color-grey-3 lineh-30 mr10" style={{maxWidth:"370px"}}>{item.name}</Link>
|
||||
{TagInfo(item.priority,"mr10")}
|
||||
</p>
|
||||
<p className="color-grey-6 font-12">
|
||||
|
|
|
@ -13,6 +13,7 @@ import { getImageUrl } from 'educoder';
|
|||
import { Link } from 'react-router-dom';
|
||||
|
||||
import './Index.scss';
|
||||
import { useEffect } from "react";
|
||||
|
||||
const MyNoticeIndex = Loadable({
|
||||
loader: () => import("./notice/myNotice/Index"),
|
||||
|
@ -43,10 +44,15 @@ const PrivateLetter = Loadable({
|
|||
});
|
||||
|
||||
function Index(props){
|
||||
const { current_user,mygetHelmetapi } = props;
|
||||
const { current_user,mygetHelmetapi , checkIfLogin } = props;
|
||||
const { pathname } = props.location;
|
||||
const notice_url = mygetHelmetapi && mygetHelmetapi.common && mygetHelmetapi.common.notice;
|
||||
|
||||
useEffect(()=>{
|
||||
if(checkIfLogin() === false){
|
||||
props.history.push('/login');
|
||||
}
|
||||
},[])
|
||||
return(
|
||||
<div className="newMain clearfix whiteBack">
|
||||
<div className="boies">
|
||||
|
|
|
@ -191,6 +191,12 @@
|
|||
.shortStyle{
|
||||
.setStyleRule{
|
||||
min-height: 35px;
|
||||
#merge_whitelist_usernames{
|
||||
li.ant-select-selection__choice{
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 3px!important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.columsRadio{
|
||||
display: block;
|
||||
|
|
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 5.3 MiB After Width: | Height: | Size: 632 KiB |
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 342 KiB |
After Width: | Height: | Size: 1018 B |
After Width: | Height: | Size: 1018 B |
|
@ -68,7 +68,7 @@ function Index(props) {
|
|||
{/* <HeadNav {...props}/> */}
|
||||
<TopEdition register={register} current_user={current_user}/>
|
||||
{
|
||||
bannerTab && bannerTab.lenth > 0 ?
|
||||
bannerTab && bannerTab.length > 0 ?
|
||||
<ul className="topEditionUl">
|
||||
{
|
||||
bannerTab.map((i,k)=>{
|
||||
|
|
|
@ -63,9 +63,14 @@ body{
|
|||
height: 100%;
|
||||
.regform{
|
||||
&>div{
|
||||
background-size:cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
overflow: hidden;
|
||||
img{
|
||||
height: 100%;
|
||||
width: 1920px;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
margin-left: -960px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.regPrg{
|
||||
|
@ -74,7 +79,7 @@ body{
|
|||
width: 1200px;
|
||||
left: 50%;
|
||||
margin-left: -600px;
|
||||
top:50%;
|
||||
top:54%;
|
||||
margin-top: -23px;
|
||||
a{
|
||||
color: #fff!important;
|
||||
|
@ -87,6 +92,10 @@ body{
|
|||
text-align: center;
|
||||
font-size: 18px;
|
||||
letter-spacing: 2px;
|
||||
&:hover{
|
||||
color: #FFFFFF!important;
|
||||
background-color: #355CFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -107,6 +116,8 @@ body{
|
|||
&:hover{
|
||||
.slick-arrow{
|
||||
display: block!important;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
.slick-arrow{
|
||||
|
@ -142,6 +153,7 @@ body{
|
|||
bottom: 25%;
|
||||
position: absolute;
|
||||
display: flex!important;
|
||||
z-index: 2;
|
||||
li{
|
||||
background-color: rgba(225,225,225,0.5);
|
||||
position: relative;
|
||||
|
@ -186,6 +198,7 @@ body{
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 3;
|
||||
a{
|
||||
background-image: url('./Img/top-2.png');
|
||||
height: 139px;
|
||||
|
@ -660,6 +673,7 @@ body{
|
|||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
line-height: 39px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
.thirdUl{
|
||||
display: flex;
|
||||
|
@ -667,13 +681,14 @@ body{
|
|||
padding-top: 50px;
|
||||
padding-bottom: 25px;
|
||||
margin-bottom: 0px;
|
||||
justify-content: space-between;
|
||||
justify-content: center;
|
||||
min-width: 1200px;
|
||||
li{
|
||||
padding:0px 67px;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
width: 222px;
|
||||
&:hover{
|
||||
.hoverli1 img{
|
||||
&:first-child{
|
||||
|
@ -719,12 +734,18 @@ body{
|
|||
margin-left: -5px;
|
||||
bottom: -25px;
|
||||
}
|
||||
&.active,&:hover{
|
||||
&>span{
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
&>span{
|
||||
font-weight: 500;
|
||||
font-size: 22px;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
margin-top:10px;
|
||||
display: block;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
}
|
||||
&>div{
|
||||
|
@ -761,6 +782,7 @@ body{
|
|||
line-height: 30px;
|
||||
position: relative;
|
||||
margin-bottom: 75px!important;
|
||||
opacity: 0.8;
|
||||
&::after{
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
|
@ -769,6 +791,7 @@ body{
|
|||
content: "";
|
||||
bottom: -20px;
|
||||
background-color: #466AFF;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.ant-skeleton-title,.ant-skeleton-paragraph > li{
|
||||
|
@ -829,6 +852,10 @@ body{
|
|||
background-color: #466AFF;
|
||||
border-radius: 6px;
|
||||
font-size: 18px;
|
||||
&:hover{
|
||||
color: #FFFFFF!important;
|
||||
background-color: #355CFF;
|
||||
}
|
||||
}
|
||||
.forthUl{
|
||||
display: flex;
|
||||
|
@ -913,6 +940,7 @@ body{
|
|||
line-height: 39px;
|
||||
margin-top: 13px;
|
||||
margin-bottom: 54px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
#scrollBox1{
|
||||
max-height: 332px;
|
||||
|
@ -935,7 +963,7 @@ body{
|
|||
background: #FFFFFF;
|
||||
box-shadow: 0px 1px 8px 1px rgba(0, 0, 0, 0.06);
|
||||
border-radius: 4px;
|
||||
border: 2px solid #FFFFFF;
|
||||
border: 1px solid #FFFFFF;
|
||||
margin-right: 20px;
|
||||
padding:20px;
|
||||
height: 120px;
|
||||
|
@ -943,6 +971,9 @@ body{
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
&:hover{
|
||||
border: 1px solid #8FCEFF;
|
||||
}
|
||||
img{
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
|
|
|
@ -142,7 +142,7 @@ function ThirdEdition() {
|
|||
<li>
|
||||
<a href={i.url} target="_blank">{i.title}</a>
|
||||
<span className="listboxcount"><i className="iconfont icon-a-liulanicon2x mr5"></i>{i.visits}</span>
|
||||
<span>{i.time}</span>
|
||||
<span>{i.created_time && i.created_time.split(" ")[0]}</span>
|
||||
</li>
|
||||
)
|
||||
}):""
|
||||
|
@ -180,7 +180,7 @@ function ThirdEdition() {
|
|||
<li>
|
||||
<a href={i.url} target="_blank">{i.title}</a>
|
||||
<span className="listboxcount"><i className="iconfont icon-a-liulanicon2x mr5"></i>{i.visits}</span>
|
||||
<span>{i.time}</span>
|
||||
<span>{i.created_time && i.created_time.split(" ")[0]}</span>
|
||||
</li>
|
||||
)
|
||||
}):""
|
||||
|
@ -199,7 +199,7 @@ function ThirdEdition() {
|
|||
<li>
|
||||
<a href={i.url} target="_blank">{i.title}</a>
|
||||
<span className="listboxcount"><i className="iconfont icon-a-liulanicon2x mr5"></i>{i.visits}</span>
|
||||
<span>{i.time}</span>
|
||||
<span>{i.created_time && i.created_time.split(" ")[0]}</span>
|
||||
</li>
|
||||
)
|
||||
}):""
|
||||
|
|
|
@ -2,6 +2,9 @@ import React , { useEffect , useState } from 'react';
|
|||
import Slider from 'react-slick';
|
||||
import axios from 'axios';
|
||||
import { getImageUrl } from 'educoder';
|
||||
import Left from './Img/left.png';
|
||||
import Right from './Img/right.png';
|
||||
|
||||
|
||||
let setting={
|
||||
dots:true,
|
||||
|
@ -14,8 +17,8 @@ let setting={
|
|||
pauseOnFocus:true,
|
||||
autoplay:true,
|
||||
arrows:true,
|
||||
prevArrow:<button type='button' class='slick-prev slick-arrow'><i className="iconfont icon-xiangzuojiantou"></i></button>,
|
||||
nextArrow:<button type='button' class='slick-prev slick-arrow'><i className="iconfont icon-xiangyoujiantou"></i></button>
|
||||
prevArrow:<button type='button' class='slick-prev slick-arrow'><img src={Left} width="70px" alt=""/></button>,
|
||||
nextArrow:<button type='button' class='slick-prev slick-arrow'><img src={Right} width="70px" alt=""/></button>
|
||||
}
|
||||
function TopEdition({register,current_user}) {
|
||||
|
||||
|
@ -44,10 +47,12 @@ function TopEdition({register,current_user}) {
|
|||
bannerList.map((i,k)=>{
|
||||
return(
|
||||
<div className={`regform`}>
|
||||
<div style={{backgroundImage:`url(${getImageUrl(i.image)})`}}>
|
||||
{/* style={{backgroundImage:`url(${getImageUrl(i.image)})`}} */}
|
||||
<div>
|
||||
<img src={getImageUrl(i.image)} alt="" height="100%"/>
|
||||
{
|
||||
k +1 === bannerList.length && (!(current_user && current_user.login)) ?
|
||||
<p className="regPrg"><a href={register}>注册</a></p>
|
||||
<p className="regPrg"><a href={register}>立即注册</a></p>
|
||||
:""
|
||||
}
|
||||
</div>
|
||||
|
|