hjm 6 years ago
commit 399aef859c

@ -656,7 +656,7 @@ class ExerciseReviewAndAnswer extends Component{
return( return(
<div className="bor-top-greyE pt30 pb30" id={"Anchor_"+parseInt(key+1)}> <div className="bor-top-greyE pt30 pb30" id={"Anchor_"+parseInt(key+1)}>
<p className="clearfix font-16 pl30 pr30"> <p className="clearfix font-16 pl30 pr30">
<span className="color-blue mr5">{parseInt(key+1)}{type[item.question_type]}</span><span className="color-grey-9 mr5">({item.question_score})</span> <span className="color-blue mr5">{exercise_questions.q_position}{type[item.question_type]}</span><span className="color-grey-9 mr5">({item.question_score})</span>
<span className="fr"> <span className="fr">
{ {
// 填空(一直都有调分),和简答题调分:老师身份 已经评分的才能出现调分按钮 // 填空(一直都有调分),和简答题调分:老师身份 已经评分的才能出现调分按钮

@ -13,6 +13,7 @@ import Modals from '../../../modals/Modals';
import UseBank from "../../busyWork/UseBank"; import UseBank from "../../busyWork/UseBank";
import '../../css/members.css'; import '../../css/members.css';
import '../style.css'; import '../style.css';
import moment from 'moment'
class GraduationTasks extends Component{ class GraduationTasks extends Component{
@ -413,7 +414,7 @@ class GraduationTasks extends Component{
Topval:"本操作只对“未发布”的对象生效", Topval:"本操作只对“未发布”的对象生效",
Botvalleft:"暂不发布", Botvalleft:"暂不发布",
Botval:"则通过后续手动设置,定时发布", Botval:"则通过后续手动设置,定时发布",
starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), starttime:"发布时间:"+moment(new Date()).format("YYYY-MM-DD HH:mm"),
starttimes:this.props.getNowFormatDates(1), starttimes:this.props.getNowFormatDates(1),
typs:"start", typs:"start",
endtime:"截止时间:"+endtime, endtime:"截止时间:"+endtime,

@ -709,18 +709,18 @@ submittojoinclass=(value)=>{
<a href={"/register"} className="mr5 color-white">注册</a> <a href={"/register"} className="mr5 color-white">注册</a>
</span>: </span>:
<div className="fr edu-menu-panel" style={{height:'60px'}}> <div className="fr edu-menu-panel" style={{height:'60px'}}>
<a href={this.props.Headertop===undefined?"":this.props.Headertop.avatar_url} className="fl ml15"> <a href={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`} className="fl ml15">
<img alt="头像" className="radius mt13" height="34" id="nh_user_logo" name="avatar_image" <img alt="头像" className="radius mt13" height="34" id="nh_user_logo" name="avatar_image"
src={getImageUrl(`images/`+user.image_url)} width="34"> src={getImageUrl(`images/`+user.image_url)} width="34">
</img> </img>
</a> </a>
<ul className="edu-menu-list" style={{top:'60px'}}> <ul className="edu-menu-list" style={{top:'60px'}}>
<span className="bor-bottom-greyE currentName task-hide">{user.username}</span> <span className="bor-bottom-greyE currentName task-hide">{user.username}</span>
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.my_course_url}>我的课堂</a></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`}>我的课堂</Link></li>
{/* p 老师 l 学生 */} {/* p 老师 l 学生 */}
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.my_shixun_url}>我的实训</a></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训</Link></li>
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.my_shixun_paths_url}>我的实训课程</a></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>我的实训课程</Link></li>
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.my_project_url}>我的项目</a></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/projects`}>我的项目</Link></li>
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.account_manager_url}>账号管理</a></li> <li><a href={this.props.Headertop===undefined?"":this.props.Headertop.account_manager_url}>账号管理</a></li>
{/*<li><a onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/} {/*<li><a onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/}
{/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/} {/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/}

@ -1,11 +1,11 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { SnackbarHOC } from 'educoder'; import { SnackbarHOC } from 'educoder';
import {Link} from 'react-router-dom';
import {Tooltip,Menu} from 'antd'; import {Tooltip,Menu} from 'antd';
import InfosCourse from './InfosCourse'; import Loadable from 'react-loadable';
import InfosShixun from './InfosShixun'; import Loading from '../../../Loading';
import InfosProject from './InfosProject'; import {BrowserRouter as Router,Route,Switch} from 'react-router-dom';
import InfosPath from './InfosPath';
import InfosBank from './InfosBank';
import axios from 'axios'; import axios from 'axios';
import {getImageUrl} from 'educoder'; import {getImageUrl} from 'educoder';
import { TPMIndexHOC } from '../../tpm/TPMIndexHOC'; import { TPMIndexHOC } from '../../tpm/TPMIndexHOC';
@ -17,6 +17,22 @@ import update from 'immutability-helper'
import Trialapplication from '../../login/Trialapplication' import Trialapplication from '../../login/Trialapplication'
const InfosCourse = Loadable({
loader: () => import('./InfosCourse'),
loading:Loading,
})
const InfosShixun = Loadable({
loader: () => import('./InfosShixun'),
loading:Loading,
})
const InfosPath = Loadable({
loader: () => import('./InfosPath'),
loading:Loading,
})
const InfosProject = Loadable({
loader: () => import('./InfosProject'),
loading:Loading,
})
const $ = window.$; const $ = window.$;
class Infos extends Component{ class Infos extends Component{
@ -29,7 +45,8 @@ class Infos extends Component{
sign:undefined, sign:undefined,
type:0, type:0,
login:undefined, login:undefined,
isRenders:false isRenders:false,
moduleName:"courses"
} }
} }
componentDidMount =()=>{ componentDidMount =()=>{
@ -177,10 +194,13 @@ class Infos extends Component{
followed, followed,
id, id,
login, login,
isRenders isRenders,
moduleName
}=this.state; }=this.state;
let {username}= this.props.match.params; let {username}= this.props.match.params;
let {isAdmin}=this.props.isAdmin();
let {pathname}=this.props.location;
moduleName=pathname.split("/")[3];
return( return(
<div className="newMain"> <div className="newMain">
{ {
@ -194,24 +214,24 @@ class Infos extends Component{
<div className="inline"> <div className="inline">
<div className="fl headtab"> <div className="fl headtab">
<span>{is_current ? "我":"TA"}的经验值</span> <span>{is_current ? "我":"TA"}的经验值</span>
<a href={`/users/${username}/user_experience`}>{data && data.experience}</a> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}/user_experience`}>{data && data.experience}</a>
</div> </div>
<em className="v-h-line fl"></em> <em className="v-h-line fl"></em>
<div className="fl headtab"> <div className="fl headtab">
<span>{is_current ? "我":"TA"}的金币</span> <span>{is_current ? "我":"TA"}的金币</span>
<a href={`/users/${username}/user_grade`} id="user_code">{data && data.grade}</a> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}/user_grade`} id="user_code">{data && data.grade}</a>
</div> </div>
<div className="headphoto mt14"> <div className="headphoto mt14">
<img alt="头像" id="user_avatar_show" nhname="avatar_image" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/> <img alt="头像" id="user_avatar_show" nhname="avatar_image" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/>
</div> </div>
<div className="fl headtab"> <div className="fl headtab">
<span>{is_current ? "我":"TA"}的粉丝</span> <span>{is_current ? "我":"TA"}的粉丝</span>
<a href={`/users/${username}/user_fanslist`} id="user_h_fan_count">{data && data.fan_count}</a> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}/user_fanslist`} id="user_h_fan_count">{data && data.fan_count}</a>
</div> </div>
<em className="v-h-line fl"></em> <em className="v-h-line fl"></em>
<div className="fl headtab"> <div className="fl headtab">
<span>{is_current ? "我":"TA"}的关注</span> <span>{is_current ? "我":"TA"}的关注</span>
<a href={`/users/${username}/user_watchlist`}>{data && data.follow_count}</a> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}/user_watchlist`}>{data && data.follow_count}</a>
</div> </div>
<span className="clearfix"></span> <span className="clearfix"></span>
<span className="myName">{data && data.name}</span> <span className="myName">{data && data.name}</span>
@ -220,22 +240,22 @@ class Infos extends Component{
<div className="educontent mt10 clearfix edu-txt-center"> <div className="educontent mt10 clearfix edu-txt-center">
<div className="inline"> <div className="inline">
<span className="mypost fl mr10">{data && data.identity}</span> <span className="mypost fl mr10">{data && data.identity}</span>
<a href={is_current ? "/account/authentication" :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}> <a href={is_current ? `${this.props.Headertop && this.props.Headertop.old_url}/account/authentication` :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}>
<Tooltip placement='bottom' title={ data && data.authentication ?"已实名认证":"未实名认证"}> <Tooltip placement='bottom' title={ data && data.authentication ?"已实名认证":"未实名认证"}>
<i className={ data && data.authentication ? "iconfont icon-shenfenrenzheng font-13 color-blue":"iconfont icon-shenfenrenzheng font-13 color-grey-9"}></i> <i className={ data && data.authentication ? "iconfont icon-shenfenrenzheng font-13 color-blue":"iconfont icon-shenfenrenzheng font-13 color-grey-9"}></i>
</Tooltip> </Tooltip>
</a> </a>
<a href={is_current ? "/account/professional_certification" :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}> <a href={is_current ? `${this.props.Headertop && this.props.Headertop.old_url}/account/professional_certification` :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}>
<Tooltip placement='bottom' title={ data && data.professional_certification ?"已职业认证":"未职业认证"}> <Tooltip placement='bottom' title={ data && data.professional_certification ?"已职业认证":"未职业认证"}>
<i className={ data && data.professional_certification ? "iconfont icon-zhiyerenzheng font-13 color-blue":"iconfont icon-zhiyerenzheng font-13 color-grey-9"}></i> <i className={ data && data.professional_certification ? "iconfont icon-zhiyerenzheng font-13 color-blue":"iconfont icon-zhiyerenzheng font-13 color-grey-9"}></i>
</Tooltip> </Tooltip>
</a> </a>
<a href={is_current ? "/account/change_or_bind?type=phone" :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}> <a href={is_current ? `${this.props.Headertop && this.props.Headertop.old_url}/account/change_or_bind?type=phone` :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}>
<Tooltip placement='bottom' title={ data && data.phone_binded ?"已手机认证":"未手机认证"}> <Tooltip placement='bottom' title={ data && data.phone_binded ?"已手机认证":"未手机认证"}>
<i className={ data && data.phone_binded ? "iconfont icon-shoujirenzheng font-13 color-blue":"iconfont icon-shoujirenzheng font-13 color-grey-9"}></i> <i className={ data && data.phone_binded ? "iconfont icon-shoujirenzheng font-13 color-blue":"iconfont icon-shoujirenzheng font-13 color-grey-9"}></i>
</Tooltip> </Tooltip>
</a> </a>
<a href={is_current ? "/my/account" :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}> <a href={is_current ? `${this.props.Headertop && this.props.Headertop.old_url}/my/account` :"javascript:void(0)"} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}>
<Tooltip placement='bottom' title={ data && data.email_binded ?"已邮箱认证":"未邮箱认证"}> <Tooltip placement='bottom' title={ data && data.email_binded ?"已邮箱认证":"未邮箱认证"}>
<i className={ data && data.email_binded ? "iconfont icon-youxiangrenzheng font-13 color-blue":"iconfont icon-youxiangrenzheng font-13 color-grey-9"}></i> <i className={ data && data.email_binded ? "iconfont icon-youxiangrenzheng font-13 color-blue":"iconfont icon-youxiangrenzheng font-13 color-grey-9"}></i>
</Tooltip> </Tooltip>
@ -243,7 +263,7 @@ class Infos extends Component{
{/* <!--学院管理员身份--> */} {/* <!--学院管理员身份--> */}
{ {
data && data.college_identifier && data && data.college_identifier &&
<a href={`/colleges/${data.college_identifier}/statistics`} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/colleges/${data.college_identifier}/statistics`} target="_blank" className={is_current ? "ringauto fl" :"ringauto fl cdefault"}>
<Tooltip placement='bottom' title="学院管理员"> <Tooltip placement='bottom' title="学院管理员">
<i className="iconfont icon-chengyuanguanli font-12 color-blue" data-tip-down="学院管理员"></i> <i className="iconfont icon-chengyuanguanli font-12 color-blue" data-tip-down="学院管理员"></i>
</Tooltip> </Tooltip>
@ -288,33 +308,68 @@ class Infos extends Component{
</div> </div>
<div className="edu-txt-center navInfo"> <div className="edu-txt-center navInfo">
<div className="inline"> <div className="inline">
<Menu mode="horizontal" defaultSelectedKeys="0" onClick={this.changeType}> <li className={`${moduleName == 'courses' ? 'active' : '' }`}>
<Menu.Item key="0">课堂</Menu.Item> <Link
<Menu.Item key="1">实训</Menu.Item> onClick={() => this.setState({moduleName: 'courses'})}
<Menu.Item key="2">实训课程</Menu.Item> to={`/users/${username}/courses`}>课堂</Link>
<Menu.Item key="3">项目</Menu.Item> </li>
{ data && data.identity !="学生" && <Menu.Item key="4" onClick={()=>this.ToBank(`/users/${username}?type=a_project`)}>题库</Menu.Item> } <li className={`${moduleName == 'shixuns' ? 'active' : '' }`}>
</Menu> <Link
onClick={() => this.setState({moduleName: 'shixuns'})}
to={`/users/${username}/shixuns`}>实训</Link>
</li>
<li className={`${moduleName == 'paths' ? 'active' : '' }`}>
<Link
onClick={() => this.setState({moduleName: 'paths'})}
to={`/users/${username}/paths`}>实训课程</Link>
</li>
<li className={`${moduleName == 'projects' ? 'active' : '' }`}>
<Link
onClick={() => this.setState({moduleName: 'projects'})}
to={`/users/${username}/projects`}>项目</Link>
</li>
{ data && data.identity!="学生" && <li> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}?type=m_bank`}>题库</a></li>}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{ <Switch {...this.props}>
parseInt(type) == 0 && <InfosCourse {...this.props} {...this.state} login={username} is_current={is_current}></InfosCourse>
} {/* --------------------------------------------------------------------- */}
{
parseInt(type) == 1 && <InfosShixun {...this.props} {...this.state} login={username} is_current={is_current}></InfosShixun> {/* 课堂 */}
} {/* http://localhost:3007/courses/1309/homework/9300/setting */}
{ <Route exact path="/users/:username/courses"
parseInt(type) == 2 && <InfosPath {...this.props} {...this.state} login={username} is_current={is_current}></InfosPath> render={
} (props) => (<InfosCourse {...this.props} {...props} {...this.state} />)
{ }
parseInt(type) == 3 && <InfosProject {...this.props} {...this.state} login={username} is_current={is_current}></InfosProject> ></Route>
}
{ {/* 实训 */}
parseInt(type) == 4 && <InfosBank {...this.props} {...this.state} login={username} is_current={is_current}></InfosBank> <Route exact path="/users/:username/shixuns"
} render={
(props) => (<InfosShixun {...this.props} {...props} {...this.state} />)
}
></Route>
{/* 实训课程 */}
<Route exact path="/users/:username/paths"
render={
(props) => (<InfosPath {...this.props} {...props} {...this.state} />)
}
></Route>
{/* 项目 */}
<Route exact path="/users/:username/projects"
render={
(props) => (<InfosProject {...this.props} {...props} {...this.state} />)
}
></Route>
</Switch>
</div> </div>
) )
} }

@ -39,7 +39,7 @@ class InfosBank extends Component{
} }
getCourses=(category,type,page,sort_by,CoursesId)=>{ getCourses=(category,type,page,sort_by,CoursesId)=>{
let url=`/users/${this.props.login}/question_banks.json`; let url=`/users/${this.props.match.params.username}/question_banks.json`;
axios.get((url),{params:{ axios.get((url),{params:{
category, category,
type, type,

@ -36,7 +36,7 @@ class InfosCourse extends Component{
} }
getCourses=(category,status,page)=>{ getCourses=(category,status,page)=>{
let url=`/users/${this.props.login}/courses.json`; let url=`/users/${this.props.match.params.username}/courses.json`;
axios.get((url),{params:{ axios.get((url),{params:{
category, category,
status, status,

@ -38,7 +38,7 @@ class InfosPath extends Component{
} }
getCourses=(category,status,sort_by,page,per_page)=>{ getCourses=(category,status,sort_by,page,per_page)=>{
let url=`/users/${this.props.login}/subjects.json`; let url=`/users/${this.props.match.params.username}/subjects.json`;
axios.get((url),{params:{ axios.get((url),{params:{
category, category,
status, status,

@ -32,7 +32,7 @@ class InfosProject extends Component{
} }
getCourses=(category,status,page)=>{ getCourses=(category,status,page)=>{
let url=`/users/${this.props.login}/projects.json`; let url=`/users/${this.props.match.params.username}/projects.json`;
axios.get((url),{params:{ axios.get((url),{params:{
category, category,
status, status,

@ -38,7 +38,7 @@ class InfosShixun extends Component{
} }
getCourses=(category,status,sort_by,page)=>{ getCourses=(category,status,sort_by,page)=>{
let url=`/users/${this.props.login}/shixuns.json`; let url=`/users/${this.props.match.params.username}/shixuns.json`;
axios.get((url),{params:{ axios.get((url),{params:{
category, category,
status, status,

@ -8,8 +8,20 @@
float: left; float: left;
margin: 0px 40px; margin: 0px 40px;
padding:0px; padding:0px;
height: 47px;line-height: 40px; height: 45px;
line-height: 40px;
font-size: 16px; font-size: 16px;
position: relative;
}
.navInfo li.active::after{
position: absolute;
left: 0px;
height: 2px;
width: 100%;
content: '';
bottom: 0px;
background: #05101A!important;
color: #666!important;
} }
.navInfo li,.navInfo li.ant-menu-item-active{ .navInfo li,.navInfo li.ant-menu-item-active{
border-bottom: none!important; border-bottom: none!important;

Loading…
Cancel
Save