forked from Gitlink/forgeplus-react
Merge branch 'develop'
This commit is contained in:
commit
a7f709a663
|
@ -64,7 +64,7 @@ function CommentItem({
|
|||
const commentAvatar = (author) => (
|
||||
<img
|
||||
className="item-flex flex-image"
|
||||
src={author.image_url ? getImageUrl(`images/${author.image_url}`) : 'https://b-ssl.duitang.com/uploads/item/201511/13/20151113110434_kyReJ.jpeg'}
|
||||
src={author.image_url ? getImageUrl(`/${author.image_url}`) : 'https://b-ssl.duitang.com/uploads/item/201511/13/20151113110434_kyReJ.jpeg'}
|
||||
alt=""
|
||||
/>
|
||||
);
|
||||
|
|
|
@ -154,4 +154,42 @@ li.ant-menu-item{
|
|||
.ant-tree{
|
||||
margin:0px 20px!important;
|
||||
}
|
||||
}
|
||||
|
||||
.menuPanels{
|
||||
width: 240px;
|
||||
height: 180px;
|
||||
.ant-popover-content,.ant-popover-inner{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.halfs{
|
||||
margin-top: 24px;
|
||||
padding:24px 0px 0px 0px;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
.attrPerson{
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
}
|
||||
.menuinfos{
|
||||
padding:15px 0px;
|
||||
li{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
border-right: 1px solid #eee;
|
||||
flex: 1;
|
||||
& >span:first-child{
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
}
|
||||
& >span:last-child{
|
||||
color: #666;
|
||||
}
|
||||
&:last-child{
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,44 +1,155 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import { AlignCenter , FlexAJ } from '../Component/layout';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Dropdown , Spin } from 'antd';
|
||||
import { Popover , Spin } from 'antd';
|
||||
import { getImageUrl } from 'educoder';
|
||||
import Axios from 'axios';
|
||||
import './Component.scss';
|
||||
import { getUser } from '../GetData/getData';
|
||||
import axios from 'axios';
|
||||
|
||||
function Contributors({contributors,owner,projectsId}){
|
||||
|
||||
// function menuFunc(login){
|
||||
// let data = undefined;
|
||||
// const url = `/users/${login}.json`;
|
||||
// Axios.get(url).then(result=>{
|
||||
// if(result && result.data){
|
||||
// data = result.data;
|
||||
// }
|
||||
// }).catch(error=>{})
|
||||
|
||||
// if(data){
|
||||
// return(
|
||||
// <div>111</div>
|
||||
// )
|
||||
// }else{
|
||||
// return <Spin />
|
||||
// }
|
||||
// }
|
||||
function Contributors({contributors,owner,projectsId,id,showNotification}){
|
||||
const [ menuList ,setMenuList ]= useState([]);
|
||||
const [ list , setList ]= useState(undefined);
|
||||
const [ total , setTotal ]= useState(0);
|
||||
const [ menu , setMenu ] = useState("");
|
||||
const [ login , setLogin ] = useState(undefined);
|
||||
const [ isSpin , setIsSpin ] = useState(false);
|
||||
|
||||
useEffect(()=>{
|
||||
if(contributors && contributors.total_count>0){
|
||||
setTotal(contributors.total_count);
|
||||
setList(contributors.list);
|
||||
}
|
||||
},[contributors])
|
||||
|
||||
useEffect(()=>{
|
||||
if(login){
|
||||
getUsers(login);
|
||||
}else{
|
||||
setMenu(undefined);
|
||||
}
|
||||
},[login])
|
||||
|
||||
async function getUsers(login){
|
||||
setIsSpin(true);
|
||||
let a = menuList && menuList.filter(i=>i.login === login);
|
||||
if(a.length === 0){
|
||||
let result = await getUser(login);
|
||||
let arr = menuList;
|
||||
arr.push({...result});
|
||||
setMenuList(arr);
|
||||
setMenusFunc(result);
|
||||
setIsSpin(false);
|
||||
}else{
|
||||
setMenusFunc(a[0]);
|
||||
setIsSpin(false);
|
||||
}
|
||||
}
|
||||
|
||||
function setMenusFunc(data){
|
||||
if(data){
|
||||
let ele = (
|
||||
<Spin spinning={isSpin}>
|
||||
<FlexAJ>
|
||||
<AlignCenter>
|
||||
<Link to={`/users/${data.login}`}><img src={getImageUrl(`/${data.image_url}`)} alt="" className="radius" width="38px" height="38px"/></Link>
|
||||
<Link to={`/users/${data.login}`} className="ml10">{data.name}</Link>
|
||||
</AlignCenter>
|
||||
{
|
||||
data.is_watch ? <a className="color-grey-9" onClick={()=>FocusFunc(false,data.login)}>取消关注</a>:<a className="color-blue" onClick={()=>FocusFunc(true,data.login)}>关注</a>
|
||||
}
|
||||
</FlexAJ>
|
||||
<AlignCenter className="menuinfos">
|
||||
<li>
|
||||
<span>{data.projects_count}</span>
|
||||
<span>项目数</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>{data.followers_count}</span>
|
||||
<span>粉丝数</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>{data.following_count}</span>
|
||||
<span>关注数</span>
|
||||
</li>
|
||||
</AlignCenter>
|
||||
{
|
||||
data.organizations && data.organizations.length > 0 ?
|
||||
<AlignCenter className="font-12 pt4 pb4">
|
||||
<span>所属组织:</span>
|
||||
<div className="task-hide flex1">
|
||||
{renderArray(data.organizations)}
|
||||
</div>
|
||||
</AlignCenter>
|
||||
:""
|
||||
}
|
||||
{
|
||||
data.location && <AlignCenter className="font-12 pt4 pb4"><span>所在地址:</span><span className="ml5">{data.location}</span></AlignCenter>
|
||||
}
|
||||
</Spin>
|
||||
)
|
||||
setMenu(ele);
|
||||
}
|
||||
}
|
||||
|
||||
function FocusFunc(flag,login){
|
||||
axios({
|
||||
method: flag ? 'post' : 'delete',
|
||||
url: `/watchers/${flag ? 'follow' : 'unfollow'}.json`,
|
||||
params: {target_type: "user",id:login}
|
||||
}).then(result => {
|
||||
if (result && (result.data.status === 0 || result.data.status === 2)) {
|
||||
let a = menuList && menuList.filter(i=>i.login === login);
|
||||
if(a){
|
||||
a[0].is_watch = flag;
|
||||
}
|
||||
setMenusFunc(a[0]);
|
||||
showNotification(result.data.message);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.log(error);
|
||||
});
|
||||
}
|
||||
|
||||
function renderArray(array){
|
||||
let str = "";
|
||||
for(var i = 0;i<array.length;i++){
|
||||
str += array[i].name +"、";
|
||||
}
|
||||
let substr = str.substr(0,str.length-1);
|
||||
return (<span title={substr}>{substr}</span>)
|
||||
}
|
||||
|
||||
function setVisibleFunc(flag,l,index){
|
||||
if(l !== login){
|
||||
setLogin(l);
|
||||
}
|
||||
var lx = list.concat();
|
||||
lx.map(i=>i.visible =false);
|
||||
if(flag){
|
||||
lx[index].visible = flag;
|
||||
}
|
||||
lx.splice();
|
||||
setList(lx);
|
||||
}
|
||||
|
||||
return(
|
||||
<div>
|
||||
<div className="halfs">
|
||||
<FlexAJ>
|
||||
<AlignCenter><span className="font-16 color-grey-6">贡献者</span>{ contributors && contributors.total_count > 0 && <span className="infoCount">{contributors.total_count}</span>}</AlignCenter>
|
||||
<Link className="font-12 color-grey-9" to={`/projects/${owner}/${projectsId}/contribute`}>全部</Link>
|
||||
</FlexAJ>
|
||||
<div className="attrPerson">
|
||||
<div className="attrPerson" onMouseLeave={()=>setVisibleFunc(false)}>
|
||||
{
|
||||
contributors && contributors.total_count > 0 ?
|
||||
contributors.list.map((item,key)=>{
|
||||
total > 0 ?
|
||||
list.map((item,key)=>{
|
||||
return(
|
||||
// <Dropdown overlay={()=>menuFunc(item.login)}>
|
||||
<Link key={key} to={`/users/${item.login}`}><img src={getImageUrl(`/${item.image_url}`)} alt=""/></Link>
|
||||
// </Dropdown>
|
||||
<Popover content={menu} visible={item.visible} overlayClassName="menuPanels" placement="bottom">
|
||||
<Link key={key} to={`/users/${item.login}`}>
|
||||
<img src={getImageUrl(`/${item.image_url}`)} alt="" onMouseOver={()=>setVisibleFunc(true,item.login,key)}/>
|
||||
</Link>
|
||||
</Popover>
|
||||
)
|
||||
})
|
||||
:""
|
||||
|
|
|
@ -14,4 +14,8 @@ export const getHooks = async (id,params)=>{
|
|||
// 获取子目录列表
|
||||
export const getSubEntries = async (owner,projectsId,params)=>{
|
||||
return (await axios.get(`/${owner}/${projectsId}/sub_entries.json`,{params})).data;
|
||||
}
|
||||
// 获取用户信息
|
||||
export const getUser = async (login)=>{
|
||||
return (await axios.get(`/users/${login}/hovercard.json`)).data;
|
||||
}
|
|
@ -425,10 +425,7 @@ function CoderDepot(props){
|
|||
{/* 贡献者 */}
|
||||
{
|
||||
projectDetail && projectDetail.contributors &&
|
||||
<React.Fragment>
|
||||
<Divider />
|
||||
<Contributors contributors={projectDetail && projectDetail.contributors} owner={owner} projectsId={projectsId}/>
|
||||
</React.Fragment>
|
||||
<Contributors contributors={projectDetail && projectDetail.contributors} owner={owner} projectsId={projectsId} id={projectDetail && projectDetail.project_id} showNotification={props.showNotification}/>
|
||||
}
|
||||
{/* 语言 */}
|
||||
{ projectDetail && projectDetail.languages &&
|
||||
|
|
|
@ -217,7 +217,7 @@ function Index(props){
|
|||
data.map((item,key)=>{
|
||||
return(
|
||||
<li>
|
||||
<Link to= {`/users/${item.login}`} className="infoImg"><img src={getImageUrl(`${item.imageUrl}`)} alt="" /></Link>
|
||||
<Link to= {`/users/${item.login}`} className="infoImg"><img src={getImageUrl(`/${item.imageUrl}`)} alt="" /></Link>
|
||||
<div style={{flex:'1',width:"0"}}>
|
||||
<FlexAJ>
|
||||
<AlignCenter>
|
||||
|
|
|
@ -5,6 +5,7 @@ import "./list.css";
|
|||
|
||||
function FocusButton({is_watch , fontClass, starText, is_block , id , successFunc}){
|
||||
const [ isSpin , setIsSpin ] = useState(false);
|
||||
const [ watchFlag , setWatchFlag ] = useState(is_watch);
|
||||
// 关注和取消关注
|
||||
function focusFunc(flag){
|
||||
setIsSpin(true);
|
||||
|
@ -18,6 +19,7 @@ function FocusButton({is_watch , fontClass, starText, is_block , id , successFun
|
|||
}).then((result) => {
|
||||
if (result && result.data.status === 0) {
|
||||
successFunc && successFunc();
|
||||
setWatchFlag(!watchFlag);
|
||||
}
|
||||
setIsSpin(false);
|
||||
})
|
||||
|
@ -25,8 +27,8 @@ function FocusButton({is_watch , fontClass, starText, is_block , id , successFun
|
|||
};
|
||||
|
||||
return (
|
||||
<Button type={is_watch ? "default" : "primary"} ghost={!is_watch} block={is_block} loading={isSpin} onClick={() => focusFunc(is_watch)}>
|
||||
{is_watch ? (
|
||||
<Button type={watchFlag ? "default" : "primary"} ghost={!watchFlag} block={is_block} loading={isSpin} onClick={() => focusFunc(watchFlag)}>
|
||||
{watchFlag ? (
|
||||
<span className="">
|
||||
<i className="iconfont icon-shixing font-15 text-yellow mr-4"></i>
|
||||
<span className={fontClass || "font-12"}>已关注</span>
|
||||
|
|
|
@ -16,7 +16,7 @@ class http500 extends Component {
|
|||
<div className="newMain clearfix">
|
||||
<div className=" edu-txt-center mt60 mb60">
|
||||
{/*mt100 mb100*/}
|
||||
<img src={getImageUrl("images/warn/pic_404.jpg")} />
|
||||
<img src={getImageUrl("/images/warn/pic_404.jpg")} />
|
||||
<p className="font-18 mt40">
|
||||
您可以稍后尝试 <a href="/"
|
||||
className="color-blue">返回首页</a>
|
||||
|
|
|
@ -78,7 +78,7 @@ class CompetitionsIndex extends Component{
|
|||
.courses-head{
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
background-image: url(${getImageUrl(this.props.mygetHelmetapi && this.props.mygetHelmetapi.competition_banner_url === null ?`images/educoder/competitions/courses.jpg`:this.props.mygetHelmetapi&&this.props.mygetHelmetapi.competition_banner_url)});
|
||||
background-image: url(${getImageUrl(this.props.mygetHelmetapi && this.props.mygetHelmetapi.competition_banner_url === null ?`/images/educoder/competitions/courses.jpg`:this.props.mygetHelmetapi&&this.props.mygetHelmetapi.competition_banner_url)});
|
||||
background-color: #081C4B;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
|
|
|
@ -358,10 +358,10 @@ class CompetitionCommon extends Component{
|
|||
data && data.permission.editable === true ? "" :
|
||||
<div className={"CompetitionsListzhezhao"}>即将发布 敬请期待</div> : ""}
|
||||
<img className={"Commonimg"}
|
||||
src={data.competition_status === "ended" ? getImageUrl(`images/educoder/competitions/groups1.png`) : data.competition_status === "nearly_published" ? getImageUrl(`images/educoder/competitions/groups2.png`) : data.competition_status === "progressing" ? getImageUrl(`images/educoder/competitions/groups3.png`) : ""}/>
|
||||
src={data.competition_status === "ended" ? getImageUrl(`/images/educoder/competitions/groups1.png`) : data.competition_status === "nearly_published" ? getImageUrl(`images/educoder/competitions/groups2.png`) : data.competition_status === "progressing" ? getImageUrl(`images/educoder/competitions/groups3.png`) : ""}/>
|
||||
<Col span={15} className={"Commonimgbox"}>
|
||||
<img className={"image_urlbox"}
|
||||
src={data === undefined ? getImageUrl(`images/educoder/competitions/mainbanner.jpg`) : data.avatar_url === null ? getImageUrl(`images/educoder/competitions/mainbanner.jpg`) : getImageUrl(data.avatar_url)}/>
|
||||
src={data === undefined ? getImageUrl(`/images/educoder/competitions/mainbanner.jpg`) : data.avatar_url === null ? getImageUrl(`/images/educoder/competitions/mainbanner.jpg`) : getImageUrl(data.avatar_url)}/>
|
||||
</Col>
|
||||
<Col className={"CompetitionCommonbannerfont"} span={9}>
|
||||
|
||||
|
|
|
@ -249,11 +249,11 @@ class CompetitionContents extends Component{
|
|||
cover={
|
||||
<div className={"Competitionfirstbox center"}>
|
||||
<li className="pr Competitioncenter">
|
||||
<img src={getImageUrl("images/educoder/huangguan.png")}/>
|
||||
<img src={getImageUrl("/images/educoder/huangguan.png")}/>
|
||||
<div className={"mt10"}>
|
||||
<a href={`/users/${item.user_login}`} target={"_blank"} className="color-dark">
|
||||
<div className={"relativef"}>
|
||||
<img className={"rankingimg"} src={getImageUrl(`images/${item.user_image===null?`avatars/User/0?1442652658`:item.user_image}`)} />
|
||||
<img className={"rankingimg"} src={getImageUrl(`/images/${item.user_image===null?`avatars/User/0?1442652658`:item.user_image}`)} />
|
||||
<div className={"competimgabsolute"}><Badge count={item.competition_prize} style={{ backgroundColor: '#459BE5' }} title={item.competition_prize}/></div>
|
||||
</div>
|
||||
<p className="task-hide rankName mt5 jinshaifont">{personal===undefined||personal===null?item.record_user_name:personal===true?item.record_user_name:item.team_name}</p>
|
||||
|
|
|
@ -171,7 +171,7 @@ class CoursesHome extends Component {
|
|||
coursesHomelist={coursesHomelist}></CoursesHomeCard>}
|
||||
|
||||
{coursesHomelist === undefined ? "" : coursesHomelist.courses.length === 0 ? <div className="edu-tab-con-box clearfix edu-txt-center mb50">
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")} />
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("/images/educoder/nodata.png")} />
|
||||
<p className="edu-nodata-p mb20">暂时还没有相关数据哦!</p>
|
||||
</div> : ""}
|
||||
|
||||
|
|
|
@ -295,7 +295,7 @@ class Listofworksstudentone extends Component {
|
|||
计算规则:<br/>
|
||||
学员离开实训学习界面停止计时;<br/>
|
||||
评测首次通过之后,停止计时<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'cost_time',
|
||||
key: 'cost_time',
|
||||
align: 'center',
|
||||
|
@ -381,7 +381,7 @@ class Listofworksstudentone extends Component {
|
|||
title:<span>关卡得分<Tooltip placement="top" title={<pre>
|
||||
计算规则:<br/>
|
||||
截止前学员完成的关卡才有成绩<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'final_score',
|
||||
key: 'final_score',
|
||||
align: 'center',
|
||||
|
@ -420,7 +420,7 @@ class Listofworksstudentone extends Component {
|
|||
学生工作效率= log(实训总得分/实训总耗时)<br/>
|
||||
学生效率分 = 学生工作效率 / 课堂学生最高<br/>
|
||||
工作效率 * 分值<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'efficiencyscore',
|
||||
key: 'efficiencyscore',
|
||||
align: 'center',
|
||||
|
@ -694,7 +694,7 @@ class Listofworksstudentone extends Component {
|
|||
计算规则:<br/>
|
||||
学员离开实训学习界面停止计时;<br/>
|
||||
评测首次通过之后,停止计时<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'cost_time',
|
||||
key: 'cost_time',
|
||||
align: 'center',
|
||||
|
@ -780,7 +780,7 @@ class Listofworksstudentone extends Component {
|
|||
title:<span>关卡得分<Tooltip placement="top" title={<pre>
|
||||
计算规则:<br/>
|
||||
截止前学员完成的关卡才有成绩<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'final_score',
|
||||
key: 'final_score',
|
||||
align: 'center',
|
||||
|
@ -819,7 +819,7 @@ class Listofworksstudentone extends Component {
|
|||
学生工作效率= log(实训总得分/实训总耗时)<br/>
|
||||
学生效率分 = 学生工作效率 / 课堂学生最高<br/>
|
||||
工作效率 * 分值<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'efficiencyscore',
|
||||
key: 'efficiencyscore',
|
||||
align: 'center',
|
||||
|
@ -1050,7 +1050,7 @@ class Listofworksstudentone extends Component {
|
|||
计算规则:<br/>
|
||||
学员离开实训学习界面停止计时;<br/>
|
||||
评测首次通过之后,停止计时<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'cost_time',
|
||||
key: 'cost_time',
|
||||
align: 'center',
|
||||
|
@ -1134,7 +1134,7 @@ class Listofworksstudentone extends Component {
|
|||
title:<span>关卡得分<Tooltip placement="top" title={<pre>
|
||||
计算规则:<br/>
|
||||
截止前学员完成的关卡才有成绩<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'final_score',
|
||||
key: 'final_score',
|
||||
align: 'center',
|
||||
|
@ -1167,7 +1167,7 @@ class Listofworksstudentone extends Component {
|
|||
学生工作效率= log(实训总得分/实训总耗时)<br/>
|
||||
学生效率分 = 学生工作效率 / 课堂学生最高<br/>
|
||||
工作效率 * 分值<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'efficiencyscore',
|
||||
key: 'efficiencyscore',
|
||||
align: 'center',
|
||||
|
@ -1210,7 +1210,7 @@ class Listofworksstudentone extends Component {
|
|||
title: <span>当前成绩<Tooltip placement="top"title={<pre>
|
||||
鼠标停留具体分值上可查<br/>
|
||||
看得分明细<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'work_score',
|
||||
key: 'work_score',
|
||||
align: 'center',
|
||||
|
@ -1461,7 +1461,7 @@ class Listofworksstudentone extends Component {
|
|||
计算规则:<br/>
|
||||
学员离开实训学习界面停止计时;<br/>
|
||||
评测首次通过之后,停止计时<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'cost_time',
|
||||
key: 'cost_time',
|
||||
align: 'center',
|
||||
|
@ -1524,7 +1524,7 @@ class Listofworksstudentone extends Component {
|
|||
title:<span>关卡得分<Tooltip placement="top" title={<pre>
|
||||
计算规则:<br/>
|
||||
截止前学员完成的关卡才有成绩<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'final_score',
|
||||
key: 'final_score',
|
||||
align: 'center',
|
||||
|
@ -1557,7 +1557,7 @@ class Listofworksstudentone extends Component {
|
|||
学生工作效率= log(实训总得分/实训总耗时)<br/>
|
||||
学生效率分 = 学生工作效率 / 课堂学生最高<br/>
|
||||
工作效率 * 分值<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'efficiencyscore',
|
||||
key: 'efficiencyscore',
|
||||
align: 'center',
|
||||
|
@ -1600,7 +1600,7 @@ class Listofworksstudentone extends Component {
|
|||
title: <span>当前成绩<Tooltip placement="top" title={<pre>
|
||||
鼠标停留具体分值上可查<br/>
|
||||
看得分明细<br/>
|
||||
</pre>}><img src={getImageUrl("images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
</pre>}><img src={getImageUrl("/images/educoder/problem.png")} className={"ml2"}/></Tooltip></span>,
|
||||
dataIndex: 'work_score',
|
||||
key: 'work_score',
|
||||
align: 'center',
|
||||
|
@ -3898,7 +3898,7 @@ class Listofworksstudentone extends Component {
|
|||
<div id="forum_list" className="forum_table">
|
||||
<div className="mh650 edu-back-white">
|
||||
<div className="edu-tab-con-box clearfix edu-txt-center">
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("/images/educoder/nodata.png")}/>
|
||||
<p className="edu-nodata-p mb30">{this.state.searchtypes===false?"暂时还没有相关数据哦!":"抱歉没有您要搜索的内容,请换个词语试试看"}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4175,7 +4175,7 @@ class Listofworksstudentone extends Component {
|
|||
<div className="mh650 edu-back-white">
|
||||
<div className="edu-tab-con-box clearfix edu-txt-center">
|
||||
<img className="edu-nodata-img mb20"
|
||||
src={getImageUrl("images/educoder/nodata.png")}/>
|
||||
src={getImageUrl("/images/educoder/nodata.png")}/>
|
||||
<p className="edu-nodata-p mb30">{this.state.searchtypes===false?"暂时还没有相关数据哦!":"抱歉没有您要搜索的内容,请换个词语试试看"}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4409,7 +4409,7 @@ class Listofworksstudentone extends Component {
|
|||
<div className="mh650 edu-back-white">
|
||||
<div className="edu-tab-con-box clearfix edu-txt-center">
|
||||
<img className="edu-nodata-img mb20"
|
||||
src={getImageUrl("images/educoder/nodata.png")}/>
|
||||
src={getImageUrl("/images/educoder/nodata.png")}/>
|
||||
<p className="edu-nodata-p mb30">{this.state.searchtypes===false?"暂时还没有相关数据哦!":"抱歉没有您要搜索的内容,请换个词语试试看"}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -514,7 +514,7 @@ class ShixunWorkReport extends Component {
|
|||
|
||||
<div className="fl edu-back-white ml10 ">
|
||||
<img alt="头像" className="radius" height="91" id="nh_user_logo" name="avatar_image"
|
||||
src={ getImageUrl(`images/${data&&data.image_url}`)}
|
||||
src={ getImageUrl(`/${data&&data.image_url}`)}
|
||||
width="91"/>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -266,7 +266,7 @@ class ShixunWorkModal extends Component{
|
|||
<div id="forum_list" className="forum_table">
|
||||
<div className=" edu-back-white">
|
||||
<div className="edu-tab-con-box clearfix edu-txt-center">
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("/images/educoder/nodata.png")}/>
|
||||
<p className="edu-nodata-p mb30">暂时还没有相关数据哦!</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -193,7 +193,7 @@ class Messagerouting extends Component{
|
|||
<a >
|
||||
{
|
||||
this.props.current_user!== undefined?
|
||||
<img className="person radius myw120 myh120" src={getImageUrl("images/"+this.props.current_user.image_url)}/>
|
||||
<img className="person radius myw120 myh120" src={getImageUrl("/images/"+this.props.current_user.image_url)}/>
|
||||
:""
|
||||
}
|
||||
|
||||
|
|
|
@ -333,7 +333,7 @@ class InfosProject extends Component {
|
|||
{
|
||||
item.can_visited == false ?
|
||||
<div className="closeSquare">
|
||||
<img src={getImageUrl("images/educoder/icon/lockclose.svg")} className="mt80 mb25" />
|
||||
<img src={getImageUrl("/images/educoder/icon/lockclose.svg")} className="mt80 mb25" />
|
||||
<p className="font-14 color-white">非成员不能访问</p>
|
||||
</div> : ""
|
||||
}
|
||||
|
|
|
@ -332,7 +332,7 @@ class Projects extends Component{
|
|||
{
|
||||
item.can_visited ==false?
|
||||
<div className="closeSquare">
|
||||
<img src={getImageUrl("images/educoder/icon/lockclose.svg")} className="mt80 mb25"/>
|
||||
<img src={getImageUrl("/images/educoder/icon/lockclose.svg")} className="mt80 mb25"/>
|
||||
<p className="font-14 color-white">非成员不能访问</p>
|
||||
</div>:""
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ class SearchPage extends Component{
|
|||
<div id="forum_list" className="forum_table">
|
||||
<div className="mh650 bjyss">
|
||||
<div className="edu-tab-con-box clearfix edu-txt-center">
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
|
||||
<img className="edu-nodata-img mb20" src={getImageUrl("/images/educoder/nodata.png")}/>
|
||||
<p className="edu-nodata-p mb30">暂时还没有相关数据哦!</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue