ysl 6 years ago
commit fe599993b7

@ -185,7 +185,7 @@ class CommonWorkItem extends Component{
</Tooltip>
}
{this.props.isAdmin && <div className="fr">
{isAdmin && <div className="fr">
<WordsBtn style="blue" className="fl font-16 ml28" onClick={ () => { this.props.toEditPage(this.props.match.params, item.homework_id) }}>编辑</WordsBtn>
<WordsBtn style="blue" className="fl font-16 ml28" onClick={ () => { this.props.toWorkSettingPage(this.props.match.params, item.homework_id) }}>设置</WordsBtn>
</div>}

@ -259,9 +259,9 @@ function buildColumns(that, student_works) {
<div>最终调整成绩{record.work_score}</div> :
<div>
{ record.final_score && <div>作业评分{record.final_score}</div> }
{ !!that.state.late_penalty && <div>迟交扣分{that.state.late_penalty}</div>}
{ !!that.state.absence_penalty && <div>缺评扣分{that.state.absence_penalty}</div>}
{ !!that.state.appeal_penalty && <div>违规匿评扣分{that.state.appeal_penalty}</div>}
{ record.late_penalty >= 0 && <div>迟交扣分{record.late_penalty}</div>}
{ record.absence_penalty >= 0 && <div>缺评扣分{record.absence_penalty}</div>}
{ record.appeal_penalty >= 0 && <div>违规匿评扣分{record.appeal_penalty}</div>}
<div>最终成绩{record.work_score}</div>
</div> }
</div>)

@ -1018,7 +1018,7 @@ class CommonWorkSetting extends Component{
placeholder="请选择发布时间"
id={"startime"}
width={"210px"}
value={publish_time===null||publish_time===""?"":moment(publish_time, dateFormat)}
value={!publish_time?"":moment(publish_time, dateFormat)}
onChange={this.onChangeTimepublish}
// disabled={this.props.isSuperAdmin()?false:publish_time_type===true?true:false}
disabled={moment(this.state.init_publish_time) < moment() || noAuth}
@ -1048,7 +1048,7 @@ class CommonWorkSetting extends Component{
placeholder="请选择截止时间"
id={"endTime"}
width={"210px"}
value={end_time===null||end_time===""?"":moment(end_time, dateFormat)}
value={!end_time?"":moment(end_time, dateFormat)}
onChange={this.onChangeTimeend}
disabled={this.props.isSuperAdmin()?false:end_time_type===true?true:false}
disabled={moment(this.state.init_end_time) < moment() || noAuth}
@ -1117,7 +1117,7 @@ class CommonWorkSetting extends Component{
placeholder="请选择结束时间"
id={"enTime"}
width={"210px"}
value={late_time===null||late_time===""? undefined :moment(late_time, dateFormat)}
value={!late_time ? undefined :moment(late_time, dateFormat)}
onChange={this.onChangeTimelatetime}
disabledTime={disabledDateTime}
disabled={!allow_late || noAuth || moment(init_late_time) < moment()}
@ -1165,7 +1165,7 @@ class CommonWorkSetting extends Component{
placeholder="请选择匿名开启时间"
id={"startime"}
width={"210px"}
value={evaluation_start===null||evaluation_start===""?"":moment(evaluation_start, dateFormat)}
value={!evaluation_start ?"":moment(evaluation_start, dateFormat)}
onChange={this.onChangeEvaluationStart}
disabled={ (anonymous_comment && !noAuth ? false : true) || moment(init_evaluation_start) < moment() }
// disabledDate={ (evaluation_start) =>
@ -1194,7 +1194,7 @@ class CommonWorkSetting extends Component{
placeholder="请选择匿名结束时间"
id={"endtime"}
width={"210px"}
value={evaluation_end===null||evaluation_end===""?"":moment(evaluation_end, dateFormat)}
value={!evaluation_end ?"":moment(evaluation_end, dateFormat)}
onChange={this.onChangeEvaluationEnd}
disabledTime={disabledDateTime}
disabled={(anonymous_comment && !noAuth ? false : true) || moment(init_evaluation_end) < moment()}
@ -1289,7 +1289,7 @@ class CommonWorkSetting extends Component{
placeholder="请选择申诉结束时间"
id={"endtime"}
width={"210px"}
value={appeal_time===null||appeal_time===""?"":moment(appeal_time, dateFormat)}
value={!appeal_time?"":moment(appeal_time, dateFormat)}
onChange={this.appeal_time_change}
disabled={ (anonymous_appeal && !noAuth ? false : true) || moment(init_appeal_time) < moment()}
/>

@ -656,7 +656,7 @@ class ExerciseReviewAndAnswer extends Component{
return(
<div className="bor-top-greyE pt30 pb30" id={"Anchor_"+parseInt(key+1)}>
<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">
{
// 填空(一直都有调分),和简答题调分:老师身份 已经评分的才能出现调分按钮

@ -13,6 +13,7 @@ import Modals from '../../../modals/Modals';
import UseBank from "../../busyWork/UseBank";
import '../../css/members.css';
import '../style.css';
import moment from 'moment'
class GraduationTasks extends Component{
@ -413,7 +414,7 @@ class GraduationTasks extends Component{
Topval:"本操作只对“未发布”的对象生效",
Botvalleft:"暂不发布",
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),
typs:"start",
endtime:"截止时间:"+endtime,

@ -707,18 +707,18 @@ submittojoinclass=(value)=>{
<a href={"/register"} className="mr5 color-white">注册</a>
</span>:
<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"
src={getImageUrl(`images/`+user.image_url)} width="34">
</img>
</a>
<ul className="edu-menu-list" style={{top:'60px'}}>
<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 学生 */}
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.my_shixun_url}>我的实训</a></li>
<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.my_shixun_paths_url}>我的实训课程</a></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}/shixuns`}>我的实训</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>我的实训课程</Link></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 onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/}
{/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/}

@ -1,11 +1,11 @@
import React, { Component } from 'react';
import { SnackbarHOC } from 'educoder';
import {Link} from 'react-router-dom';
import {Tooltip,Menu} from 'antd';
import InfosCourse from './InfosCourse';
import InfosShixun from './InfosShixun';
import InfosProject from './InfosProject';
import InfosPath from './InfosPath';
import InfosBank from './InfosBank';
import Loadable from 'react-loadable';
import Loading from '../../../Loading';
import {BrowserRouter as Router,Route,Switch} from 'react-router-dom';
import axios from 'axios';
import {getImageUrl} from 'educoder';
import { TPMIndexHOC } from '../../tpm/TPMIndexHOC';
@ -17,6 +17,22 @@ import update from 'immutability-helper'
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.$;
class Infos extends Component{
@ -29,7 +45,8 @@ class Infos extends Component{
sign:undefined,
type:0,
login:undefined,
isRenders:false
isRenders:false,
moduleName:"courses"
}
}
componentDidMount =()=>{
@ -177,10 +194,13 @@ class Infos extends Component{
followed,
id,
login,
isRenders
isRenders,
moduleName
}=this.state;
let {username}= this.props.match.params;
let {isAdmin}=this.props.isAdmin();
let {pathname}=this.props.location;
moduleName=pathname.split("/")[3];
return(
<div className="newMain">
{
@ -194,24 +214,24 @@ class Infos extends Component{
<div className="inline">
<div className="fl headtab">
<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>
<em className="v-h-line fl"></em>
<div className="fl headtab">
<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 className="headphoto mt14">
<img alt="头像" id="user_avatar_show" nhname="avatar_image" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/>
</div>
<div className="fl headtab">
<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>
<em className="v-h-line fl"></em>
<div className="fl headtab">
<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>
<span className="clearfix"></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="inline">
<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 ?"已实名认证":"未实名认证"}>
<i className={ data && data.authentication ? "iconfont icon-shenfenrenzheng font-13 color-blue":"iconfont icon-shenfenrenzheng font-13 color-grey-9"}></i>
</Tooltip>
</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 ?"已职业认证":"未职业认证"}>
<i className={ data && data.professional_certification ? "iconfont icon-zhiyerenzheng font-13 color-blue":"iconfont icon-zhiyerenzheng font-13 color-grey-9"}></i>
</Tooltip>
</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 ?"已手机认证":"未手机认证"}>
<i className={ data && data.phone_binded ? "iconfont icon-shoujirenzheng font-13 color-blue":"iconfont icon-shoujirenzheng font-13 color-grey-9"}></i>
</Tooltip>
</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 ?"已邮箱认证":"未邮箱认证"}>
<i className={ data && data.email_binded ? "iconfont icon-youxiangrenzheng font-13 color-blue":"iconfont icon-youxiangrenzheng font-13 color-grey-9"}></i>
</Tooltip>
@ -243,7 +263,7 @@ class Infos extends Component{
{/* <!--学院管理员身份--> */}
{
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="学院管理员">
<i className="iconfont icon-chengyuanguanli font-12 color-blue" data-tip-down="学院管理员"></i>
</Tooltip>
@ -288,33 +308,68 @@ class Infos extends Component{
</div>
<div className="edu-txt-center navInfo">
<div className="inline">
<Menu mode="horizontal" defaultSelectedKeys="0" onClick={this.changeType}>
<Menu.Item key="0">课堂</Menu.Item>
<Menu.Item key="1">实训</Menu.Item>
<Menu.Item key="2">实训课程</Menu.Item>
<Menu.Item key="3">项目</Menu.Item>
{ data && data.identity !="学生" && <Menu.Item key="4" onClick={()=>this.ToBank(`/users/${username}?type=a_project`)}>题库</Menu.Item> }
</Menu>
<li className={`${moduleName == 'courses' ? 'active' : '' }`}>
<Link
onClick={() => this.setState({moduleName: 'courses'})}
to={`/users/${username}/courses`}>课堂</Link>
</li>
<li className={`${moduleName == 'shixuns' ? 'active' : '' }`}>
<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>
{
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>
<Switch {...this.props}>
{/* --------------------------------------------------------------------- */}
{/* 课堂 */}
{/* http://localhost:3007/courses/1309/homework/9300/setting */}
<Route exact path="/users/:username/courses"
render={
(props) => (<InfosCourse {...this.props} {...props} {...this.state} />)
}
{
parseInt(type) == 2 && <InfosPath {...this.props} {...this.state} login={username} is_current={is_current}></InfosPath>
></Route>
{/* 实训 */}
<Route exact path="/users/:username/shixuns"
render={
(props) => (<InfosShixun {...this.props} {...props} {...this.state} />)
}
{
parseInt(type) == 3 && <InfosProject {...this.props} {...this.state} login={username} is_current={is_current}></InfosProject>
></Route>
{/* 实训课程 */}
<Route exact path="/users/:username/paths"
render={
(props) => (<InfosPath {...this.props} {...props} {...this.state} />)
}
{
parseInt(type) == 4 && <InfosBank {...this.props} {...this.state} login={username} is_current={is_current}></InfosBank>
></Route>
{/* 项目 */}
<Route exact path="/users/:username/projects"
render={
(props) => (<InfosProject {...this.props} {...props} {...this.state} />)
}
></Route>
</Switch>
</div>
)
}

@ -39,7 +39,7 @@ class InfosBank extends Component{
}
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:{
category,
type,

@ -36,7 +36,7 @@ class InfosCourse extends Component{
}
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:{
category,
status,

@ -38,7 +38,7 @@ class InfosPath extends Component{
}
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:{
category,
status,

@ -32,7 +32,7 @@ class InfosProject extends Component{
}
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:{
category,
status,

@ -38,7 +38,7 @@ class InfosShixun extends Component{
}
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:{
category,
status,

@ -8,8 +8,20 @@
float: left;
margin: 0px 40px;
padding:0px;
height: 47px;line-height: 40px;
height: 45px;
line-height: 40px;
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{
border-bottom: none!important;

Loading…
Cancel
Save