Merge remote-tracking branch 'origin/master'

# Conflicts:
#	public/react/src/modules/login/Trialapplicationysl.js
dev_forum
杨树林 6 years ago
commit 26e0502fed

@ -16,6 +16,7 @@ import '@icedesign/base/index.scss';
import LoginDialog from './modules/login/LoginDialog' import LoginDialog from './modules/login/LoginDialog'
import Notcompletedysl from './modules/user/Notcompletedysl' import Notcompletedysl from './modules/user/Notcompletedysl'
import Trialapplicationysl from './modules/login/Trialapplicationysl' import Trialapplicationysl from './modules/login/Trialapplicationysl'
import Trialapplicationreview from './modules/user/Trialapplicationreview'
import Trialapplication from './modules/login/Trialapplication' import Trialapplication from './modules/login/Trialapplication'
import NotFoundPage from './NotFoundPage' import NotFoundPage from './NotFoundPage'
@ -268,6 +269,7 @@ class App extends Component {
<LoginDialog {...this.props} {...this.state}></LoginDialog> <LoginDialog {...this.props} {...this.state}></LoginDialog>
<Notcompletedysl {...this.props} {...this.state}></Notcompletedysl> <Notcompletedysl {...this.props} {...this.state}></Notcompletedysl>
<Trialapplicationysl {...this.props} {...this.state}></Trialapplicationysl> <Trialapplicationysl {...this.props} {...this.state}></Trialapplicationysl>
<Trialapplicationreview {...this.props} {...this.state}></Trialapplicationreview>
{/*{*/} {/*{*/}
{/* isRender === true?*/} {/* isRender === true?*/}
{/* <LoginDialog></LoginDialog> : ""*/} {/* <LoginDialog></LoginDialog> : ""*/}
@ -331,8 +333,8 @@ class App extends Component {
<Route path="/fork_list" component={TPMshixunfork_listIndexComponent}> <Route path="/fork_list" component={TPMshixunfork_listIndexComponent}>
</Route> */} </Route> */}
<Route path="/forums" component={ForumsIndexComponent}> {/*<Route path="/forums" component={ForumsIndexComponent}>*/}
</Route> {/*</Route>*/}
{/*实训课程(原实训路径)*/} {/*实训课程(原实训路径)*/}

@ -46,6 +46,9 @@ export function getUrl2(path, goTest) {
export function getUploadActionUrl(path, goTest) { export function getUploadActionUrl(path, goTest) {
return `${getUrl()}/api/attachments.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}` return `${getUrl()}/api/attachments.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}`
} }
export function getUploadActionUrlOfAuth(id) {
return `${getUrl()}/api/users/accounts/${id}/auth_attachments.json${isDev ? `?debug=${window._debugType || 'admin'}` : ''}`
}
export function test(path) { export function test(path) {
return `${path}`; return `${path}`;

@ -2,7 +2,8 @@ import { from } from '_array-flatten@2.1.2@array-flatten';
// export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil'; // export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil';
export { getImageUrl as getImageUrl, getUrl as getUrl, getUrl2 as getUrl2, setImagesUrl as setImagesUrl, getUploadActionUrl as getUploadActionUrl } from './UrlTool'; export { getImageUrl as getImageUrl, getUrl as getUrl, getUrl2 as getUrl2, setImagesUrl as setImagesUrl
, getUploadActionUrl as getUploadActionUrl, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth } from './UrlTool';
export { default as queryString } from './UrlTool2'; export { default as queryString } from './UrlTool2';
export { SnackbarHOC as SnackbarHOC } from './SnackbarHOC'; export { SnackbarHOC as SnackbarHOC } from './SnackbarHOC';

@ -24,6 +24,22 @@
.panel-comment_item .editor__resize { .panel-comment_item .editor__resize {
transform: translateX(-2%); transform: translateX(-2%);
position: absolute;
width: 120px;
height: 4px;
left: 54%;
transform: translateX(-50%);
margin-top: 2px;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
cursor: row-resize;
text-indent: 110%;
white-space: nowrap;
overflow: hidden;
text-transform: capitalize;
box-sizing: border-box;
} }
/*帖子回復按鈕*/ /*帖子回復按鈕*/
@ -31,6 +47,11 @@ a.commentsbtn.task-btn-blue {
background: #4CACFF !important; background: #4CACFF !important;
} }
.commentTab a.commentsbtn.task-btn-blue {
margin-right: 22px;
margin-top: 6px;
}
.editormd-grid-table-row a.editormd-emoji-btn.selected { .editormd-grid-table-row a.editormd-emoji-btn.selected {
border-bottom: 2px solid #4CACFF!important; border-bottom: 2px solid #4CACFF!important;

@ -648,7 +648,9 @@ class TopicDetail extends Component {
<div className="padding30 memoContent new_li" style={{ paddingBottom: '10px'}}> <div className="padding30 memoContent new_li" style={{ paddingBottom: '10px'}}>
<MarkdownToHtml content={memo.content}></MarkdownToHtml> {memo.is_md == true ? <MarkdownToHtml content={memo.content}></MarkdownToHtml> :
<div dangerouslySetInnerHTML={{ __html: memo.content }}></div>
}
</div> </div>
<div className="padding30 bor-bottom-greyE" style={{paddingTop: '2px'}}> <div className="padding30 bor-bottom-greyE" style={{paddingTop: '2px'}}>
<div className="mt10 mb20"> <div className="mt10 mb20">

@ -650,7 +650,7 @@ render(){
width: '375px', width: '375px',
height: '30px' height: '30px'
}}> }}>
<Checkbox value={item.user_id} checked={parseInt(task_status[key])===item.user_id?true:false} <Checkbox value={item.user_id} key={item.user_id} checked={parseInt(task_status[key])===item.user_id?true:false}
disabled={item.commit_status || item.user_id == this.props.current_user.user_id ===true?true:false} className="fl " disabled={item.commit_status || item.user_id == this.props.current_user.user_id ===true?true:false} className="fl "
></Checkbox> ></Checkbox>
<Tooltip placement="bottom" title={item.user_nam}><div className={"fl ml5 fonthidden"} style={{width: '70px'}}>{item.user_name}</div></Tooltip> <Tooltip placement="bottom" title={item.user_nam}><div className={"fl ml5 fonthidden"} style={{width: '70px'}}>{item.user_name}</div></Tooltip>

@ -278,7 +278,7 @@ class UseBank extends Component{
*/ */
return ( return (
<p className="clearfix mb7" key={item.id}> <p className="clearfix mb7" key={item.id}>
<Checkbox className="fl" value={item.id}></Checkbox> <Checkbox className="fl" value={item.id} key={item.id}></Checkbox>
<span className="fl with65"> <span className="fl with65">
<label className="task-hide fl" title={item.name && item.name.length > 30 ? item.name:""} style={{"maxWidth":"100%"}}>{item.name}</label> <label className="task-hide fl" title={item.name && item.name.length > 30 ? item.name:""} style={{"maxWidth":"100%"}}>{item.name}</label>
</span> </span>

@ -114,14 +114,14 @@ class coursesHome extends Component{
onClick={ () => this.changeStatus("course_members_count")}>最热</a> onClick={ () => this.changeStatus("course_members_count")}>最热</a>
<div className="fr mr5 search-new"> <div className="fr mr5 search-new">
<Search {/* <Search
placeholder="课堂名称/教师姓名/学校名称" placeholder="课堂名称/教师姓名/学校名称"
id="subject_search_input" id="subject_search_input"
value={search} value={search}
onInput={this.inputSearchValue} onInput={this.inputSearchValue}
onSearch={this.searchValue} onSearch={this.searchValue}
autoComplete="off" autoComplete="off"
></Search> ></Search> */}
</div> </div>
</div> </div>

@ -80,7 +80,7 @@ class ShixunModal extends Component{
//勾选实训 //勾选实训
shixunhomeworkedit=(list)=>{ shixunhomeworkedit=(list)=>{
debugger
let newpatheditarry=[]; let newpatheditarry=[];
if (this.props.singleChoose == true) { if (this.props.singleChoose == true) {
if (list.length > 0) { if (list.length > 0) {
@ -99,6 +99,7 @@ class ShixunModal extends Component{
} }
contentViewScrolledit=(e)=>{ contentViewScrolledit=(e)=>{
//滑动到底判断 //滑动到底判断
if(e.currentTarget.scrollHeight-e.currentTarget.scrollTop===e.currentTarget.clientHeight){ if(e.currentTarget.scrollHeight-e.currentTarget.scrollTop===e.currentTarget.clientHeight){
let {Searchvalue,type,page}=this.state; let {Searchvalue,type,page}=this.state;
@ -122,9 +123,9 @@ class ShixunModal extends Component{
this.setState({ this.setState({
page:1, page:1,
}) })
this.props.funpatheditarry([])
this.setupdatalist(value,type,true,1) this.setupdatalist(value,type,true,1)
this.props.funpatheditarry([])
} }
//tag //tag
@ -135,9 +136,9 @@ class ShixunModal extends Component{
page:1, page:1,
newshixunmodallist:undefined newshixunmodallist:undefined
}) })
this.props.funpatheditarry([])
this.setupdatalist(Searchvalue,types,true,1) this.setupdatalist(Searchvalue,types,true,1)
this.props.funpatheditarry([])
} }
@ -353,11 +354,14 @@ class ShixunModal extends Component{
<Checkbox.Group style={{ width: '100%' }} value={patheditarry} onChange={this.shixunhomeworkedit}> <Checkbox.Group style={{ width: '100%' }} value={patheditarry} onChange={this.shixunhomeworkedit}>
{ {
newshixunmodallist === undefined ? "": newshixunmodallist.map((item,key)=>{ newshixunmodallist === undefined ? "": newshixunmodallist.map((item,key)=>{
console.log(item)
return( return(
<div className="clearfix edu-txt-center lineh-40 bor-bottom-greyE" key={key}> <div className="clearfix edu-txt-center lineh-40 bor-bottom-greyE" key={key}>
<li className="fl with40 edu-txt-left task-hide paddingl5 newtaskhide"> <li className="fl with40 edu-txt-left task-hide paddingl5 newtaskhide">
<Checkbox <Checkbox
id={"shixun_input_"+item.shixun_id} value={item.shixun_id} id={"shixun_input_"+item.shixun_id}
value={item.shixun_id}
key={item.shixun_id}
className=" task-hide edu-txt-left newtaskhide" className=" task-hide edu-txt-left newtaskhide"
style={{"width":"280px"}} style={{"width":"280px"}}
name="shixun_homework[]" name="shixun_homework[]"

@ -801,10 +801,10 @@ a.white-btn.use_scope-btn:hover{
position: absolute; position: absolute;
} }
.ant-input{ .ant-input,.ant-input .ant-input-suffix{
background-color: #fafafa!important; background-color: #fafafa!important;
} }
.ant-input:focus{ .ant-input:focus,.ant-input:focus .ant-input-suffix{
background-color:#ffffff!important; background-color:#ffffff!important;
} }

@ -193,6 +193,7 @@ class Ecerciseallbackagain extends Component{
className="fl task-hide edu-txt-left" className="fl task-hide edu-txt-left"
name="shixun_homework[]" name="shixun_homework[]"
value={item.user_id} value={item.user_id}
key={item.user_id}
> >
<label style={{"textAlign": "left", "color": "#05101A"}} <label style={{"textAlign": "left", "color": "#05101A"}}
className="task-hide color-grey-name" title="frerere">{item.user_name}</label> className="task-hide color-grey-name" title="frerere">{item.user_name}</label>

@ -122,6 +122,7 @@ class Exercisestatisticalresult extends Component {
return ( return (
<span key={key}> <span key={key}>
<Checkbox value={item.exercise_group_id} <Checkbox value={item.exercise_group_id}
key={item.exercise_group_id}
// checked={course_group_info === undefined ? false : course_group_info[key].course_group_id === item.course_group_id ? true : false} // checked={course_group_info === undefined ? false : course_group_info[key].course_group_id === item.course_group_id ? true : false}
className="fl ">{item.exercise_group_name} className="fl ">{item.exercise_group_name}
<span>({item.exercise_group_students})</span> <span>({item.exercise_group_students})</span>

@ -141,7 +141,8 @@ class OfficialAcademicTranscript extends Component {
border-radius: 12px; border-radius: 12px;
color: rgba(221,23,23,1); color: rgba(221,23,23,1);
display: inline-block; display: inline-block;
line-height: 24px; line-height: 24px;
text-align: center;
} }
.tasknameboxs{ .tasknameboxs{

@ -100,7 +100,8 @@ class Exercisetablesmubus extends Component {
border-radius: 12px; border-radius: 12px;
color: rgba(221,23,23,1); color: rgba(221,23,23,1);
display: inline-block; display: inline-block;
line-height: 24px; line-height: 24px;
text-align: center;
} }
.tasknameboxs{ .tasknameboxs{

@ -2404,6 +2404,7 @@ class Studentshavecompletedthelist extends Component {
course_groupyslstwodata.map((item, key) => { course_groupyslstwodata.map((item, key) => {
return ( return (
<span key={key}><Checkbox className="fl mt5" <span key={key}><Checkbox className="fl mt5"
key={item.id}
value={item.id}>{item.tu}<span>({Teacherliststudentlist === undefined ? "0" : key === 0 ? Teacherliststudentlist.exercise_types.unanswer_users : Teacherliststudentlist.exercise_types.answer_users})</span></Checkbox></span> value={item.id}>{item.tu}<span>({Teacherliststudentlist === undefined ? "0" : key === 0 ? Teacherliststudentlist.exercise_types.unanswer_users : Teacherliststudentlist.exercise_types.answer_users})</span></Checkbox></span>
) )
}) })
@ -2435,6 +2436,7 @@ class Studentshavecompletedthelist extends Component {
course_groupyslstwodatas.map((item, key) => { course_groupyslstwodatas.map((item, key) => {
return ( return (
<span key={key}><Checkbox className="fl mt5" <span key={key}><Checkbox className="fl mt5"
key={item.id}
value={item.id}>{item.tu}<span>({Teacherliststudentlist === undefined ? "0" : key === 0 ? Teacherliststudentlist.exercise_types.unreview_counts : Teacherliststudentlist.exercise_types.review_counts})</span></Checkbox></span> value={item.id}>{item.tu}<span>({Teacherliststudentlist === undefined ? "0" : key === 0 ? Teacherliststudentlist.exercise_types.unreview_counts : Teacherliststudentlist.exercise_types.review_counts})</span></Checkbox></span>
) )
}) })
@ -2464,6 +2466,7 @@ class Studentshavecompletedthelist extends Component {
course_groupyslstwodata.map((item, key) => { course_groupyslstwodata.map((item, key) => {
return ( return (
<span key={key}><Checkbox className="fl mt5" <span key={key}><Checkbox className="fl mt5"
key={item.id}
value={item.id}>{item.tu}<span>({Teacherliststudentlist === undefined ? "0" : key === 0 ? Teacherliststudentlist.exercise_types.unanswer_users : Teacherliststudentlist.exercise_types.answer_users})</span></Checkbox></span> value={item.id}>{item.tu}<span>({Teacherliststudentlist === undefined ? "0" : key === 0 ? Teacherliststudentlist.exercise_types.unanswer_users : Teacherliststudentlist.exercise_types.answer_users})</span></Checkbox></span>
) )
}) })
@ -2492,6 +2495,7 @@ class Studentshavecompletedthelist extends Component {
course_groups.map((item, key) => { course_groups.map((item, key) => {
return ( return (
<span key={key}><Checkbox className="fl mt5" <span key={key}><Checkbox className="fl mt5"
key={item.exercise_group_id}
value={item.exercise_group_id}>{item.exercise_group_name}<span>({item.exercise_group_students})</span></Checkbox></span> value={item.exercise_group_id}>{item.exercise_group_name}<span>({item.exercise_group_students})</span></Checkbox></span>
) )
}) })

@ -334,8 +334,8 @@ class Testpapersettinghomepage extends Component{
导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i>
<ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}> <ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}>
<li><a onClick={()=>this.confirmysl(`/exercises/${this.props.match.params.Id}/exercise_lists.xlsx`)}>学生成绩</a></li> <li><a onClick={()=>this.confirmysl(`/exercises/${this.props.match.params.Id}/exercise_lists.xlsx`)}>学生成绩</a></li>
<li><a onClick={()=>this.confirmysl(`/exercises/${this.props.match.params.Id}/export_exercise`)} >空白试卷</a></li> {/*<li><a onClick={()=>this.confirmysl(`/exercises/${this.props.match.params.Id}/export_exercise`)} >空白试卷</a></li>*/}
<li><a onClick={()=>this.confirmysl(`/zip/export_exercises?exercise_id=${this.props.match.params.Id}${this.state.groupyslsval===null||this.state.groupyslsval===undefined?null:this.state.groupyslsval}`)}>学生答题试卷</a></li> {/*<li><a onClick={()=>this.confirmysl(`/zip/export_exercises?exercise_id=${this.props.match.params.Id}${this.state.groupyslsval===null||this.state.groupyslsval===undefined?null:this.state.groupyslsval}`)}>学生答题试卷</a></li>*/}
</ul> </ul>
</li>:""} </li>:""}
</div> </div>

@ -737,7 +737,7 @@ render(){
width: '375px', width: '375px',
height: '30px' height: '30px'
}}> }}>
<Checkbox value={item.user_id} checked={ <Checkbox value={item.user_id} key={item.user_id} checked={
task_status.map((item,key)=>{ task_status.map((item,key)=>{
return parseInt(task_status[key])===item.user_id?true:false return parseInt(task_status[key])===item.user_id?true:false
}) })

@ -1188,7 +1188,7 @@ class GraduationTaskssettinglist extends Component{
{taskslistdata.search_assistants&&taskslistdata.search_assistants.task_status.map((item,key)=>{ {taskslistdata.search_assistants&&taskslistdata.search_assistants.task_status.map((item,key)=>{
return( return(
<span key={key}> <span key={key}>
<Checkbox value={item.id} className="fl ">{item.name} <Checkbox value={item.id} key={item.id} className="fl ">{item.name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>
@ -1211,7 +1211,7 @@ class GraduationTaskssettinglist extends Component{
{taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.map((item,key)=>{ {taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.map((item,key)=>{
return( return(
<span key={key}> <span key={key}>
<Checkbox value={item.course_group_id} className="fl ">{item.group_group_name} <Checkbox value={item.course_group_id} key={item.course_group_id} className="fl ">{item.group_group_name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>
@ -1423,7 +1423,7 @@ class GraduationTaskssettinglist extends Component{
{taskslistdata.search_assistants&&taskslistdata.search_assistants.teacher_comment.map((item,key)=>{ {taskslistdata.search_assistants&&taskslistdata.search_assistants.teacher_comment.map((item,key)=>{
return( return(
<span key={key}> <span key={key}>
<Checkbox value={item.id} className="fl ">{item.name} <Checkbox value={item.id} key={item.id} className="fl ">{item.name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>
@ -1456,7 +1456,7 @@ class GraduationTaskssettinglist extends Component{
{taskslistdata.search_assistants&&taskslistdata.search_assistants.task_status.map((item,key)=>{ {taskslistdata.search_assistants&&taskslistdata.search_assistants.task_status.map((item,key)=>{
return( return(
<span key={key}> <span key={key}>
<Checkbox value={item.id} className="fl ">{item.name} <Checkbox value={item.id} key={item.id} className="fl ">{item.name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>
@ -1479,7 +1479,7 @@ class GraduationTaskssettinglist extends Component{
{taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.map((item,key)=>{ {taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.map((item,key)=>{
return( return(
<span key={key}> <span key={key}>
<Checkbox value={item.course_group_id} className="fl ">{item.group_group_name} <Checkbox value={item.course_group_id} key={item.course_group_id} className="fl ">{item.group_group_name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>

@ -65,7 +65,7 @@ function buildColumns(that) {
sorter: showSorter, sorter: showSorter,
sortOrder: sortedInfo.columnKey === 'name' && sortedInfo.order, sortOrder: sortedInfo.columnKey === 'name' && sortedInfo.order,
render: (name, record) => { render: (name, record) => {
return <a href={`/login/${record.login}`} target="_blank" className="overflowHidden1" style={{ maxWidth: '110px'}} return <a href={`/users/${record.login}`} target="_blank" className="overflowHidden1" style={{ maxWidth: '110px'}}
title={`${name.length > 4 ? name : ''}`}>{name}</a> title={`${name.length > 4 ? name : ''}`}>{name}</a>
} }
}, { }, {

@ -2596,7 +2596,7 @@ class PollNew extends Component {
{item.question.answers === undefined ? "" : item.question.answers.map((items, i) => { {item.question.answers === undefined ? "" : item.question.answers.map((items, i) => {
return ( return (
<div className="mt10 pt20 " style={{"clear": "both"}}> <div className="mt10 pt20 " style={{"clear": "both"}}>
<Checkbox value={i} className={"fl"} style={{"text-align": "left"}}></Checkbox> <Checkbox value={i} key={i} className={"fl"} style={{"text-align": "left"}}></Checkbox>
<span className={" flex1"} style={{"text-align": "left","white-space":"pre-wrap","word-break": "break-all","word-wrap": "break-word","float": "left","width":"1120px"}}>{items.answer_text}</span> <span className={" flex1"} style={{"text-align": "left","white-space":"pre-wrap","word-break": "break-all","word-wrap": "break-word","float": "left","width":"1120px"}}>{items.answer_text}</span>
</div> </div>
) )

@ -135,7 +135,7 @@ class CommitSummary extends Component{
</div> </div>
<div> <div>
<p className="ml29 fl color-black mt10 summaryname" onClick={this.asdasdsad}>提交总结</p> <p className="ml29 fl color-black mt10 summaryname" onClick={this.asdasdsad}>修改总结</p>
<a href={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${this.props.match.params.homeworkid}/openlist?tab=0`} className="color-grey-6 fr font-16 ml30 mt10">返回</a> <a href={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${this.props.match.params.homeworkid}/openlist?tab=0`} className="color-grey-6 fr font-16 ml30 mt10">返回</a>
</div> </div>
{/*educontentbox*/} {/*educontentbox*/}

@ -810,6 +810,7 @@ class Listofworks extends Component {
return ( return (
<span key={key}> <span key={key}>
<Checkbox value={item.id} <Checkbox value={item.id}
key={item.id}
className="fl ">{item.name} className="fl ">{item.name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
@ -841,6 +842,7 @@ class Listofworks extends Component {
return ( return (
<span key={key}> <span key={key}>
<Checkbox value={item.course_group_id} <Checkbox value={item.course_group_id}
key={item.course_group_id}
className="fl ">{item.group_group_name} className="fl ">{item.group_group_name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>

@ -284,7 +284,7 @@ class Listofworksstudentone extends Component {
<span> <span>
{ {
record.efficiencyscore&& record.efficiencyscore=== "--"?( record.efficiencyscore&& record.efficiencyscore=== "--"?(
<span style={{color:"#9A9A9A"}}> <span style={{color:"#9A9A9A"}}>
-- --
</span> </span>
) )
@ -899,10 +899,11 @@ class Listofworksstudentone extends Component {
) )
}, },
], ],
yslpros:false,
} }
console.log("902"); // console.log("902");
console.log("902"); // console.log("902");
console.log(this.props); // console.log(this.props);
} }
componentDidCatch(error, info){ componentDidCatch(error, info){
@ -912,19 +913,32 @@ class Listofworksstudentone extends Component {
} }
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
console.log("+++++++++913");
console.log("+++++++++915");
console.log("+++++++++916"); console.log("+++++++++916");
console.log(nextProps); console.log(nextProps);
console.log(this.props)
// console.log(this.props.isAdmin());
if (nextProps.code_review != this.props.code_review) {
if (nextProps.code_review !== undefined) {
console.log("diaoyonglwangluo1");
if(this.props.isAdmin() === true){
this.tearchar();
}else{
this.student();
}
}
}
} }
componentDidMount() { componentDidMount() {
console.log("componentDidMount"); console.log("componentDidMount");
// console.log(this.props.isAdmin());
if(this.props.isAdmin() === true){ if(this.props.isAdmin() === true){
this.tearchar(); this.tearchar();
console.log("909"); // console.log("909");
}else{ }else{
this.student(); this.student();
console.log("911"); // console.log("911");
} }
} }
@ -963,32 +977,32 @@ class Listofworksstudentone extends Component {
course_group: "", course_group: "",
} }
axios.post(urll, data).then((result) => { axios.post(urll, data).then((result) => {
if(result === undefined){ if(result === undefined){
return return
} }
// console.log("951"); // console.log("951");
// console.log(result); // console.log(result);
// debugger // debugger
this.setState({ this.setState({
teacherdata: result.data, teacherdata: result.data,
task_status: result.data.task_status, task_status: result.data.task_status,
course_group_info: result.data.course_group_info, course_group_info: result.data.course_group_info,
student_works: result.data.student_works, student_works: result.data.student_works,
jobsettingsdata: result, jobsettingsdata: result,
publish_immediately: result.data.publish_immediately, publish_immediately: result.data.publish_immediately,
end_immediately: result.data.end_immediately, end_immediately: result.data.end_immediately,
id: result.data.id, id: result.data.id,
work_efficiency: result.data.work_efficiency, work_efficiency: result.data.work_efficiency,
code_review: result.data.code_review, code_review: result.data.code_review,
challenges_count: result.data.challenges_count, challenges_count: result.data.challenges_count,
view_report: result.data.view_report, view_report: result.data.view_report,
}) })
this.props.Getdataback(result,result.data); this.props.Getdataback(result,result.data);
if (result.data.student_works === undefined || result.data.student_works === null || JSON.stringify(result.data.student_works) === "[]") { if (result.data.student_works === undefined || result.data.student_works === null || JSON.stringify(result.data.student_works) === "[]") {
this.seacthdata(result.data); this.seacthdata(result.data);
} else { } else {
this.seacthdatas(result.data, result.data.student_works); this.seacthdatas(result.data, result.data.student_works);
} }
}).catch((error) => { }).catch((error) => {
console.log(error); console.log(error);
@ -1070,13 +1084,13 @@ class Listofworksstudentone extends Component {
for(var i=0;i<this.state.columnsstu.length;i++){ for(var i=0;i<this.state.columnsstu.length;i++){
var item = this.state.columnsstu[i]; var item = this.state.columnsstu[i];
if (work_efficiency === false) { if (work_efficiency === false) {
if(item.title==="关卡得分"){ if(item.title==="关卡得分"){
} }
else if(item.title==="效率分"){ else if(item.title==="效率分"){
} }
} }
if(this.props.isNotMember()===true&&item.title==="学号") { if(this.props.isNotMember()===true&&item.title==="学号") {
}else{ }else{
arr.push(item); arr.push(item);
@ -1095,7 +1109,7 @@ class Listofworksstudentone extends Component {
}) })
} else { } else {
console.log(teacherdata) // console.log(teacherdata)
if (teacherdata.id !== undefined || teacherdata.id !== null || teacherdata.id !== "") { if (teacherdata.id !== undefined || teacherdata.id !== null || teacherdata.id !== "") {
// console.log("seacthdata设置数据1") // console.log("seacthdata设置数据1")
// console.log(this.state.teacherdata ) // console.log(this.state.teacherdata )
@ -1165,8 +1179,8 @@ class Listofworksstudentone extends Component {
} }
} }
console.log("554"); // console.log("554");
console.log(columns2); // console.log(columns2);
this.setState({ this.setState({
@ -1193,7 +1207,7 @@ class Listofworksstudentone extends Component {
} }
} }
if(this.props.isNotMember()===true&&item.title==="学号") { if(this.props.isNotMember()===true&&item.title==="学号") {
}else{ }else{
arr.push(item); arr.push(item);
@ -1399,8 +1413,8 @@ class Listofworksstudentone extends Component {
challenges_count:result.data.challenges_count, challenges_count:result.data.challenges_count,
view_report:result.data.view_report, view_report:result.data.view_report,
}) })
this.props.Getdataback(result,result.data); this.props.Getdataback(result,result.data);
this.seacthdata(result.data); this.seacthdata(result.data);
} }
}).catch((error) => { }).catch((error) => {
console.log(error) console.log(error)
@ -1433,7 +1447,7 @@ class Listofworksstudentone extends Component {
}) })
this.Getalistofworkstwo(this.state.order, "", "", "", pageNumber, this.state.limit); this.Getalistofworkstwo(this.state.order, "", "", "", pageNumber, this.state.limit);
} }
//计算成绩 //计算成绩
setComputeTime=()=>{ setComputeTime=()=>{
let {teacherdata}=this.state; let {teacherdata}=this.state;
this.setState({ this.setState({
@ -1497,26 +1511,26 @@ class Listofworksstudentone extends Component {
limit:20, limit:20,
} }
axios.post(urll, data).then((result) => { axios.post(urll, data).then((result) => {
if (result) { if (result) {
// console.log(url) // console.log(url)
// console.log("作品列表6789077") // console.log("作品列表6789077")
// console.log(JSON.stringify(result)) // console.log(JSON.stringify(result))
this.setState({ this.setState({
teacherdata: result.data, teacherdata: result.data,
task_status: result.data.task_status, task_status: result.data.task_status,
allow_late:result.data.allow_late, allow_late:result.data.allow_late,
course_group_info: result.data.course_group_info, course_group_info: result.data.course_group_info,
loadingstate: false, loadingstate: false,
jobsettingsdata: result, jobsettingsdata: result,
publish_immediately: result.data.publish_immediately, publish_immediately: result.data.publish_immediately,
work_efficiency: result.data.work_efficiency, work_efficiency: result.data.work_efficiency,
end_immediately: result.data.end_immediately, end_immediately: result.data.end_immediately,
code_review: result.data.code_review, code_review: result.data.code_review,
challenges_count:result.data.challenges_count, challenges_count:result.data.challenges_count,
}) })
this.props.Getdataback(result,result.data); this.props.Getdataback(result,result.data);
this.seacthdatat(result.data,result.data.student_works,result.data.work_efficiency,result.data.course_group_info,1); this.seacthdatat(result.data,result.data.student_works,result.data.work_efficiency,result.data.course_group_info,1);
} }
}).catch((error) => { }).catch((error) => {
console.log(error) console.log(error)
this.setState({ this.setState({
@ -1559,22 +1573,22 @@ class Listofworksstudentone extends Component {
// console.log(url) // console.log(url)
// console.log("作品列表______________________") // console.log("作品列表______________________")
// console.log(JSON.stringify(result)) // console.log(JSON.stringify(result))
if (result !== undefined) { if (result !== undefined) {
this.setState({ this.setState({
teacherdata: result.data, teacherdata: result.data,
task_status: result.data.task_status, task_status: result.data.task_status,
course_group_info: result.data.course_group_info, course_group_info: result.data.course_group_info,
loadingstate: false, loadingstate: false,
jobsettingsdata: result, jobsettingsdata: result,
allow_late:result.data.allow_late, allow_late:result.data.allow_late,
publish_immediately: result.data.publish_immediately, publish_immediately: result.data.publish_immediately,
work_efficiency: result.data.work_efficiency, work_efficiency: result.data.work_efficiency,
end_immediately: result.data.end_immediately, end_immediately: result.data.end_immediately,
code_review: result.data.code_review, code_review: result.data.code_review,
challenges_count:result.data.challenges_count, challenges_count:result.data.challenges_count,
}) })
this.props.Getdataback(result,result.data); this.props.Getdataback(result,result.data);
this.seacthdatat(result.data,result.data.student_works,result.data.work_efficiency,result.data.course_group_info,page); this.seacthdatat(result.data,result.data.student_works,result.data.work_efficiency,result.data.course_group_info,page);
// } // }
} }
}).catch((error) => { }).catch((error) => {
@ -1591,13 +1605,13 @@ class Listofworksstudentone extends Component {
// 设置数据 // 设置数据
seacthdatat = (teacherdata,student_works,work_efficiency,course_group_info) => { seacthdatat = (teacherdata,student_works,work_efficiency,course_group_info) => {
debugger
let {page, limit} = this.state; let {page, limit} = this.state;
let datalist = []; let datalist = [];
let columns = this.state.columns; let columns = this.state.columns;
var columns2=[]; var columns2=[];
if (teacherdata !== undefined) { if (teacherdata !== undefined) {
console.log("1588"); // console.log("1588");
for (var i = 0; i < student_works.length; i++) { for (var i = 0; i < student_works.length; i++) {
var timedata = moment(student_works[i].update_time).format('YYYY-MM-DD HH:mm'); var timedata = moment(student_works[i].update_time).format('YYYY-MM-DD HH:mm');
datalist.push({ datalist.push({
@ -1621,8 +1635,8 @@ class Listofworksstudentone extends Component {
user_name: student_works[i].user_name, user_name: student_works[i].user_name,
user_login: student_works[i].user_login, user_login: student_works[i].user_login,
}) })
console.log(datalist); // console.log(datalist);
console.log("1612"); // console.log("1612");
} }
@ -1719,9 +1733,9 @@ class Listofworksstudentone extends Component {
} else { } else {
} }
//
console.log(datalist); // console.log(datalist);
console.log("1712"); // console.log("1712");
this.setState({ this.setState({
data: datalist, data: datalist,
columns: columns2, columns: columns2,
@ -2004,7 +2018,7 @@ class Listofworksstudentone extends Component {
} }
//立即截止 //立即截止
homeworkends = () => { homeworkends = () => {
console.log("1160"); // console.log("1160");
let homeworkid = this.props.match.params.homeworkid; let homeworkid = this.props.match.params.homeworkid;
let url = "/homework_commons/" + homeworkid + "/end_groups.json"; let url = "/homework_commons/" + homeworkid + "/end_groups.json";
@ -2201,96 +2215,150 @@ class Listofworksstudentone extends Component {
// //
// } // }
daochushixunbaogao=()=>{
let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}&work_status=${this.state.course_groupyslstwo===undefined ||this.state.course_groupyslstwo===null? "": this.state.course_groupyslstwo}&course_group=${this.state.checkedValuesineinfo===undefined||this.state.checkedValuesineinfo===null? "":this.state.checkedValuesineinfo}&search=${this.state.searchtext===undefined||this.state.searchtext===null?"":this.state.searchtext}`
this.confirmysl(url);
}
daochuzuoye =() =>{
let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx?group_id=${this.state.checkedValuesineinfo===undefined||this.state.checkedValuesineinfo===null?"":this.state.checkedValuesineinfo}&search=${this.state.searchtext===undefined||this.state.searchtext=== null?"":this.state.searchtext}`
this.confirmysl(url);
}
confirmysl(url){
axios.get(url).then((response) => {
if(response === undefined){
return
}
if(response.data.status&&response.data.status===-1){
}else if(response.data.status&&response.data.status===-2){
if(response.data.messages === "100"){
// 已超出文件导出的上限数量100 ),建议:
this.setState({
DownloadType:true,
DownloadMessageval:100
})
}else {
//因附件资料超过500M
this.setState({
DownloadType:true,
DownloadMessageval:500
})
}
}else {
this.props.showNotification(`正在下载中`);
window.open("/api"+url, '_blank');
}
}).catch((error) => {
console.log(error)
});
}
Downloadcal=()=>{
this.setState({
DownloadType:false,
DownloadMessageval:undefined
})
}
render() { render() {
let {columns,course_groupysls,isAdmin, course_groupyslstwo, unlimited, unlimitedtwo, course_group_info, orders, task_status, checkedValuesine, searchtext, teacherlist, visible,visibles, game_list,columnsstu, limit,experience, boolgalist,viewtrainingdata, teacherdata, page, data, jobsettingsdata, styletable, datas, order, loadingstate,computeTimetype} = this.state; let {columns,course_groupysls,isAdmin, course_groupyslstwo, unlimited, unlimitedtwo, course_group_info, orders, task_status, checkedValuesine, searchtext, teacherlist, visible,visibles, game_list,columnsstu, limit,experience, boolgalist,viewtrainingdata, teacherdata, page, data, jobsettingsdata, styletable, datas, order, loadingstate,computeTimetype} = this.state;
// console.log(this.state.data); // console.log(this.state.data);
// console.log("841"); // console.log("841");
console.log(this.state.columns); // console.log(this.state.columns);
console.log(data); // console.log(data);
console.log("2202"); // console.log("2202");
console.log(this.props.isAdmin()); // console.log(this.props.isAdmin());
return ( return (
this.props.isAdmin() === true ? this.props.isAdmin() === true ?
<div className=" clearfix " style={{margin: "auto" , minWidth:"1200px"}}> <div className=" clearfix " style={{margin: "auto" , minWidth:"1200px"}}>
{visible === true ? <ModulationModal {visible === true ? <ModulationModal
visible={visible} visible={visible}
Cancel={this.cancelModulationModel} Cancel={this.cancelModulationModel}
Saves={(value, num) => this.saveModulationModal(value, num)} Saves={(value, num) => this.saveModulationModal(value, num)}
/> : ""} /> : ""}
{this.state.showmodel === true ? <ShixunWorkModal {this.state.showmodel === true ? <ShixunWorkModal
{...this.props} {...this.props}
visible={this.state.showmodel} visible={this.state.showmodel}
modalname={"代码查重"} modalname={"代码查重"}
data={[]} data={[]}
issCancel={() => this.hideshowmodel()} issCancel={() => this.hideshowmodel()}
updatas={() => this.isupdatas()} updatas={() => this.isupdatas()}
/> : ""} /> : ""}
<DownloadMessageysl
{visibles === true ? {...this.props}
<div> value={this.state.DownloadMessageval}
<style> modalCancel={this.Downloadcal}
{ modalsType={this.state.DownloadType}
`
/>
{visibles === true ?
<div>
<style>
{
`
body { body {
overflow: hidden !important; overflow: hidden !important;
} }
` `
} }
</style> </style>
<TraineetraininginformationModal <TraineetraininginformationModal
{...this.props} {...this.state} {...this.props} {...this.state}
homeworkid={this.props.match.params.homeworkid} homeworkid={this.props.match.params.homeworkid}
coursesId={this.props.match.params.coursesId} coursesId={this.props.match.params.coursesId}
workid={teacherdata.id} workid={teacherdata.id}
isAdmins={this.props.isAdmin()} isAdmins={this.props.isAdmin()}
userids={this.state.userids} userids={this.state.userids}
viewtrainingdata={viewtrainingdata} viewtrainingdata={viewtrainingdata}
game_list={game_list} game_list={game_list}
visible={visibles} visible={visibles}
experience={experience} experience={experience}
boolgalist={boolgalist} boolgalist={boolgalist}
Cancel={() => this.cancelModulationModels()} Cancel={() => this.cancelModulationModels()}
/> />
</div>
: ""
}
{/*立即发布*/}
<HomeworkModal
modaltype={this.state.modaltype}
modalname={this.state.modalname}
visible={this.state.svisible}
Topval={this.state.Topval}
Topvalright={this.state.Topvalright}
Botvalleft={this.state.Botvalleft}
Botval={this.state.Botval}
starttime={this.state.starttime}
endtime={this.state.endtime}
Cancelname={this.state.Cancelname}
Savesname={this.state.Savesname}
Cancel={this.state.Cancel}
Saves={this.state.Saves}
course_groups={this.state.course_groups}
getcourse_groupslist={(id) => this.getcourse_groupslist(id)}
starttimes={this.state.starttimes}
typs={this.state.typs}
/>
<div className={"educontent "}>
<div className="edu-back-white">
</div>
: ""
}
<style> {/*立即发布*/}
{` <HomeworkModal
modaltype={this.state.modaltype}
modalname={this.state.modalname}
visible={this.state.svisible}
Topval={this.state.Topval}
Topvalright={this.state.Topvalright}
Botvalleft={this.state.Botvalleft}
Botval={this.state.Botval}
starttime={this.state.starttime}
endtime={this.state.endtime}
Cancelname={this.state.Cancelname}
Savesname={this.state.Savesname}
Cancel={this.state.Cancel}
Saves={this.state.Saves}
course_groups={this.state.course_groups}
getcourse_groupslist={(id) => this.getcourse_groupslist(id)}
starttimes={this.state.starttimes}
typs={this.state.typs}
/>
<div className={"educontent "}>
<div className="edu-back-white">
<style>
{`
.startbox{ .startbox{
height: 48px; height: 48px;
background: rgba(255,104,0,0.1); background: rgba(255,104,0,0.1);
@ -2332,149 +2400,153 @@ class Listofworksstudentone extends Component {
} }
`} `}
</style> </style>
{computeTimetype===false?<li className="clearfix startbox"> {computeTimetype===false?<li className="clearfix startbox">
<span className={"startfont"}> <span className={"startfont"}>
正在执行成绩计算请稍后刷新页面查看结果 正在执行成绩计算请稍后刷新页面查看结果
温馨提示执行时间因作品数量而异 温馨提示执行时间因作品数量而异
</span> </span>
</li>:""} </li>:""}
{/*作品状态GraduationTaskssettinglist*/} {/*作品状态GraduationTaskssettinglist*/}
<ul className="clearfix" style={{padding: '20px 15px 10px 20px'}}> <ul className="clearfix" style={{padding: '20px 15px 10px 20px'}}>
<li className="clearfix "> <li className="clearfix ">
<span className="fl mr10 color-grey-6 ">计算成绩时间{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')}</span> <span className="fl mr10 color-grey-6 ">计算成绩时间{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')}</span>
<span>
{teacherdata&&teacherdata.task_operation[0]==="开启挑战"?"":<span> {teacherdata&&teacherdata.publish_immediately===false&&computeTimetype===true?
{teacherdata&&teacherdata.time_status!==undefined&&teacherdata.time_status=== 0? "": (this.props.isNotMember()===false?<div className={"computeTime font-13"} onClick={this.setComputeTimet}>
computeTimetype===true&&this.props.isNotMember()===false? <div className={"computeTime font-13"} onClick={this.setComputeTime}> 计算成绩
计算成绩 </div>:""):
</div>:<div className={"computeTimes font-13"}> teacherdata&&teacherdata.homework_status!==undefined&&teacherdata.homework_status[0]=== "未发布"? "":
计算成绩 (this.props.isNotMember()===false?<div className={"computeTimes font-13"}>
</div>} 计算成绩
</span>} </div>:"")
}
<div className="fr mr5 search-newysl" style={{marginBottom: '1px'}}> </span>
<Search
placeholder="请输入姓名或学号搜索" <div className="fr mr5 search-newysl" style={{marginBottom: '1px'}}>
id="subject_search_input" <Search
autoComplete="off" placeholder="请输入姓名或学号搜索"
value={searchtext} id="subject_search_input"
onKeyUp={(e) => this.onSearchKeywordKeyUpt(e)} autoComplete="off"
onInput={this.inputSearchValuest} value={searchtext}
onSearch={this.searchValuest} onKeyUp={(e) => this.onSearchKeywordKeyUpt(e)}
></Search> onInput={this.inputSearchValuest}
</div> onSearch={this.searchValuest}
</li> ></Search>
</div>
</li>
<li className="clearfix mt10"> <li className="clearfix mt10">
<span className="fl mr10 color-grey-8 ">作品状态</span> <span className="fl mr10 color-grey-8 ">作品状态</span>
<span className="fl "><a id="graduation_comment_no_limit" <span className="fl "><a id="graduation_comment_no_limit"
className={unlimited === 0 ? "pl10 pr10 mr20 check_on" : "pl10 pr10 mr20 "} className={unlimited === 0 ? "pl10 pr10 mr20 check_on" : "pl10 pr10 mr20 "}
onClick={() => this.notlimiteds()}>不限</a></span> onClick={() => this.notlimiteds()}>不限</a></span>
<CheckboxGroup value={course_groupyslstwo} <CheckboxGroup value={course_groupyslstwo}
onChange={(e) => this.funtaskstatust(e, task_status && task_status)} onChange={(e) => this.funtaskstatust(e, task_status && task_status)}
style={{paddingTop: '4px'}}> style={{paddingTop: '4px'}}>
{task_status === undefined ? "" : task_status.map((item, key) => { {task_status === undefined ? "" : task_status.map((item, key) => {
return ( return (
<span key={key}> <span key={key}>
<Checkbox value={item.id} <Checkbox value={item.id}
key={item.id}
className="fl ">{item.name} className="fl ">{item.name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>
) )
})} })}
</CheckboxGroup> </CheckboxGroup>
{/*请输入姓名或学号搜索*/} {/*请输入姓名或学号搜索*/}
</li> </li>
{/*分班情况*/} {/*分班情况*/}
<li className="clearfix mt10 "> <li className="clearfix mt10 ">
{JSON.stringify(course_group_info) === "[]" ? "" : course_group_info === undefined ? "" : course_group_info.length < 2 ? "" : {JSON.stringify(course_group_info) === "[]" ? "" : course_group_info === undefined ? "" : course_group_info.length < 2 ? "" :
<div> <div>
<span className="fl mr10 color-grey-8">分班情况</span> <span className="fl mr10 color-grey-8">分班情况</span>
<span className="fl "><a id="graduation_comment_no_limit" <span className="fl "><a id="graduation_comment_no_limit"
className={unlimitedtwo === 0 ? "pl10 pr10 mr20 " : "pl10 pr10 mr20 check_on"} className={unlimitedtwo === 0 ? "pl10 pr10 mr20 " : "pl10 pr10 mr20 check_on"}
onClick={() => this.notlimitedst()}>不限</a></span> onClick={() => this.notlimitedst()}>不限</a></span>
<CheckboxGroup value={course_groupysls} <CheckboxGroup value={course_groupysls}
onChange={(e) => this.funtaskstatustwot(e, course_group_info && course_group_info)} onChange={(e) => this.funtaskstatustwot(e, course_group_info && course_group_info)}
style={{paddingTop: '4px',width:'1017px'}}> style={{paddingTop: '4px',width:'1017px'}}>
{course_group_info === undefined ? "" : {course_group_info === undefined ? "" :
course_group_info.map((item, key) => { course_group_info.map((item, key) => {
return ( return (
<span key={key}> <span key={key}>
<Checkbox value={item.course_group_id} <Checkbox value={item.course_group_id}
key={item.course_group_id}
className="fl ">{item.group_group_name} className="fl ">{item.group_group_name}
<span>({item.count})</span> <span>({item.count})</span>
</Checkbox> </Checkbox>
</span> </span>
) )
}) })
} }
</CheckboxGroup> </CheckboxGroup>
</div>} </div>}
</li> </li>
</ul> </ul>
<div id="graduation_work_list" style={{padding: '0px 20px 10px 20px'}}> <div id="graduation_work_list" style={{padding: '0px 20px 10px 20px'}}>
<div className="clearfix"> <div className="clearfix">
<span className="fl color-grey-6 font-12"><span <span className="fl color-grey-6 font-12"><span
className="color-orange-tip">{teacherdata === undefined ? "" : teacherdata.student_works.length}</span>{teacherdata === undefined ? "" : teacherdata.all_member_count} </span> className="color-orange-tip">{teacherdata === undefined ? "" : teacherdata.student_works.length}</span>{teacherdata === undefined ? "" : teacherdata.all_member_count} </span>
<style> <style>
{ {
` `
.edu-position-hide li a:hover { .edu-position-hide li a:hover {
background: #F0F0F0; background: #F0F0F0;
} }
` `
} }
</style> </style>
<div className="fr edu-menu-panel"> <div className="fr edu-menu-panel">
<ul> <ul>
<li className="edu-position edu-position-hidebox"> <li className="edu-position edu-position-hidebox">
<a className="font-12"> <a className="font-12">
{orders === "update_time" ? "时间" : orders === "work_score" ? "成绩" : orders === "student_id" ? "学号" : ""}排序</a> {orders === "update_time" ? "时间" : orders === "work_score" ? "成绩" : orders === "student_id" ? "学号" : ""}排序</a>
<i className="iconfont icon-xiajiantou ml5 font-12 "></i> <i className="iconfont icon-xiajiantou ml5 font-12 "></i>
<ul className="edu-position-hide undis mt10"> <ul className="edu-position-hide undis mt10">
<li> <a onClick={(e) => this.funordert("update_time")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>更新时间</a></li> <li> <a onClick={(e) => this.funordert("update_time")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>更新时间</a></li>
<li> <a onClick={(e) => this.funordert("work_score")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>最终成绩</a></li> <li> <a onClick={(e) => this.funordert("work_score")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>最终成绩</a></li>
<li> <a onClick={(e) => this.funordert("student_id")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>学生学号</a></li> <li> <a onClick={(e) => this.funordert("student_id")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>学生学号</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>
{
JSON.stringify(data) === "[]" ?
<div id="forum_list" className="forum_table"> </div>
<div className="mh650 edu-back-white"> {
<div className="edu-tab-con-box clearfix edu-txt-center"> JSON.stringify(data) === "[]" ?
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
<p className="edu-nodata-p mb30">没有数据可以显示.</p>
</div>
</div>
<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")}/>
<p className="edu-nodata-p mb30">没有数据可以显示</p>
</div>
</div> </div>
:
<div className={"justify break_full_word new_li edu-back-white"} style={{minHeight: "480px"}}> </div>
<style>{` :
<div className={"justify break_full_word new_li edu-back-white"} style={{minHeight: "480px"}}>
<style>{`
.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot { .ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
top: 72%;} top: 72%;}
} }
@ -2486,32 +2558,32 @@ class Listofworksstudentone extends Component {
height: 85px; height: 85px;
} }
`}</style> `}</style>
<div className="edu-table edu-back-white ant-tables"> <div className="edu-table edu-back-white ant-tables">
{data === undefined ? "" : <Table {data === undefined ? "" : <Table
dataSource={data} dataSource={data}
columns={columns} columns={columns}
pagination={false} pagination={false}
loading={loadingstate} loading={loadingstate}
/>} />}
</div>
</div> </div>
}
</div>
{
teacherdata && teacherdata.work_count && teacherdata.work_count > limit ?
<div className="edu-txt-center mt30 ">
<Pagination showQuickJumper current={page}
onChange={this.paginationonChanges} pageSize={limit}
total={teacherdata.work_count}></Pagination>
</div> </div>
: ""
} }
</div>
</div>
{
teacherdata && teacherdata.work_count && teacherdata.work_count > limit ?
<div className="edu-txt-center mt30 ">
<Pagination showQuickJumper current={page}
onChange={this.paginationonChanges} pageSize={limit}
total={teacherdata.work_count}></Pagination>
</div>
: ""
}
</div> </div>
:
</div>
:
<div> <div>
{ {
teacherdata === undefined || teacherdata.student_works === undefined || teacherdata.student_works === null || JSON.stringify(teacherdata.student_works) === "[]" ? teacherdata === undefined || teacherdata.student_works === undefined || teacherdata.student_works === null || JSON.stringify(teacherdata.student_works) === "[]" ?
@ -2631,15 +2703,21 @@ class Listofworksstudentone extends Component {
<span className="fl mr10 color-grey-6 ">计算成绩时间{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')}</span> <span className="fl mr10 color-grey-6 ">计算成绩时间{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')}</span>
{teacherdata&&teacherdata.task_operation[0]==="开启挑战"?"":<span> {teacherdata&&teacherdata.task_operation[0]==="开启挑战"?"":<span>
{computeTimetype===true?
{teacherdata&&teacherdata.time_status!==undefined&&teacherdata.time_status=== 0? "": (this.props.isNotMember()===false?
computeTimetype===true&&this.props.isNotMember()===false? <div className={"computeTime font-13"} onClick={this.setComputeTime}> <div className={"computeTime font-13"} onClick={this.setComputeTime}>
计算成绩 计算成绩
</div>:<div className={"computeTimes font-13"}> </div>
计算成绩 :"")
</div>} :
</span>} (teacherdata&&teacherdata.homework_status!==undefined&&teacherdata.homework_status[0]=== "未发布"? "":
this.props.isNotMember()===false?
<div className={"computeTimes font-13"}>
计算成绩
</div>
:"")
}
</span>}
</div> </div>
@ -2792,16 +2870,17 @@ class Listofworksstudentone extends Component {
<div className="fr"> <div className="fr">
<span className="fl mr10 color-grey-6 ">计算成绩时间{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')}</span> <span className="fl mr10 color-grey-6 ">计算成绩时间{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')}</span>
{teacherdata&&teacherdata.task_operation&&teacherdata.task_operation[0]==="开启挑战"?"": {teacherdata&&teacherdata.task_operation&&teacherdata.task_operation[0]==="开启挑战"?"":<span>
<span> {computeTimetype===true?
{teacherdata&&teacherdata.time_status!==undefined&&teacherdata.time_status===0?"": (this.props.isNotMember()===false?<div className={"computeTime font-13"} onClick={this.setComputeTime}>
this.props.isNotMember()===false&&computeTimetype===true?<div className={"computeTime font-13"} onClick={this.setComputeTime}> 计算成绩
计算成绩 </div>:""):
</div>:<div className={"computeTimes font-13"}> teacherdata&&teacherdata.homework_status!==undefined&&teacherdata.homework_status[0]=== "未发布"? "":
计算成绩 (this.props.isNotMember()===false?<div className={"computeTimes font-13"}>
</div>} 计算成绩
</span> </div>:"")
} }
</span>}
</div> </div>
{/*因为计算按钮占了和这个位置,和设计沟通学生视角取消这个按钮*/} {/*因为计算按钮占了和这个位置,和设计沟通学生视角取消这个按钮*/}

@ -32,8 +32,7 @@ class ShixunHomeworkPage extends Component {
visible: false, visible: false,
showmodel:false, showmodel:false,
child:undefined, child:undefined,
DownloadType:false, yslpros:false,
DownloadMessageval:undefined,
} }
} }
@ -55,9 +54,9 @@ class ShixunHomeworkPage extends Component {
} }
Getdataback = (jobsettingsdata, teacherdata) => { Getdataback = (jobsettingsdata, teacherdata) => {
console.log("56"); // console.log("56");
console.log(jobsettingsdata); // console.log(jobsettingsdata);
console.log(teacherdata); // console.log(teacherdata);
this.setState({ this.setState({
jobsettingsdata: jobsettingsdata, jobsettingsdata: jobsettingsdata,
@ -73,22 +72,27 @@ class ShixunHomeworkPage extends Component {
// let sum = [] // let sum = []
// sum.push(type[1]) // sum.push(type[1])
// console.log("componentDidMountcomponentDidMount"); // console.log("componentDidMountcomponentDidMount");
console.log(type); // console.log(type);
this.setState({ this.setState({
tab: type[1], tab: type[1],
}) })
let querys = this.props.location.pathname; let querys = this.props.location.pathname;
const types = querys.split('/'); const types = querys.split('/');
console.log(types); // console.log(types);
this.setState({ this.setState({
shixuntypes: types[3] shixuntypes: types[3]
}) })
} }
// confirmysl(child,url) { confirmysl(child,i) {
// confirmysl(url); if(i===1){
// } child.daochushixunbaogao();
}
if(i===2){
child.daochuzuoye();
}
}
homeworkendss(child){ homeworkendss(child){
child.homeworkends(); child.homeworkends();
@ -102,40 +106,8 @@ class ShixunHomeworkPage extends Component {
child.workshowmodel(); child.workshowmodel();
} }
/// 确认是否下载 /// 确认是否下载
confirmysl(url){
axios.get(url).then((response) => {
if(response.data.status&&response.data.status===-1){
}else if(response.data.status&&response.data.status===-2){
if(response.data.messages === "100"){
// 已超出文件导出的上限数量100 ),建议:
this.setState({
DownloadType:true,
DownloadMessageval:100
})
}else {
//因附件资料超过500M
this.setState({
DownloadType:true,
DownloadMessageval:500
})
}
}else {
this.props.showNotification(`正在下载中`);
window.open("/api"+url, '_blank');
}
}).catch((error) => {
console.log(error)
});
}
Downloadcal=()=>{
this.setState({
DownloadType:false,
DownloadMessageval:undefined
})
}
bindRef = ref => { this.child = ref } bindRef = ref => { this.child = ref }
///////////////教师截止 ///////////////教师截止
@ -143,6 +115,7 @@ class ShixunHomeworkPage extends Component {
let {tab, teacherdata, jobsettingsdata} = this.state; let {tab, teacherdata, jobsettingsdata} = this.state;
const isAdmin = this.props.isAdmin(); const isAdmin = this.props.isAdmin();
return ( return (
<div className="newMain clearfix "> <div className="newMain clearfix ">
<div className={"educontent mb20"} style={{width: "1200px"}}> <div className={"educontent mb20"} style={{width: "1200px"}}>
@ -230,11 +203,11 @@ class ShixunHomeworkPage extends Component {
<li className="li_line drop_down fr color-blue font-16 mr8 mt20" style={{"padding": "0 20px"}}> <li className="li_line drop_down fr color-blue font-16 mr8 mt20" style={{"padding": "0 20px"}}>
导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i>
<ul className="drop_down_menu" style={{"right": "-0px", "left": "unset", "height": "auto"}}> <ul className="drop_down_menu" style={{"right": "-0px", "left": "unset", "height": "auto"}}>
{/*<li><a*/}
{/* onClick={(child,i) => this.confirmysl(this.child,1)}>实训报告</a>*/}
{/*</li>*/}
<li><a <li><a
onClick={(url) => this.confirmysl(`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}&work_status=${this.state.course_groupyslstwo===undefined ||this.state.course_groupyslstwo===null? null: this.state.course_groupyslstwo}&course_group=${this.state.checkedValuesineinfo===undefined||this.state.checkedValuesineinfo===null? null:this.state.checkedValuesineinfo}&search=${this.state.searchtext===undefined||this.state.searchtext===null?null:this.state.searchtext}`)}>实训报告</a> onClick={(child,i) => this.confirmysl(this.child,2)}>学生成绩</a>
</li>
<li><a
onClick={(url) => this.confirmysl(`/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx?group_id=${this.state.checkedValuesineinfo===undefined||this.state.checkedValuesineinfo===null?null:this.state.checkedValuesineinfo}&search=${this.state.searchtext===undefined||this.state.searchtext=== null?null:this.state.searchtext}`)}>学生成绩</a>
</li> </li>
</ul> </ul>
@ -254,7 +227,7 @@ class ShixunHomeworkPage extends Component {
<a className="fr color-blue font-16" onClick={(child)=>this.workshowmodels(this.child)}>代码查重</a> <a className="fr color-blue font-16" onClick={(child)=>this.workshowmodels(this.child)}>代码查重</a>
: "" : ""} : "" : ""}
{this.state.view_report === true ? <Link className="fr color-blue font-16" target={"_blank"} {this.state.view_report === true ? <Link className="fr color-blue font-16" target={"_blank"}
to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${this.props.match.params.homeworkid}/shixun_work_report`}> to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${teacherdata&&teacherdata.work_id}/shixun_work_report`}>
查看实训报告 查看实训报告
</Link> : ""} </Link> : ""}
{ {
@ -271,18 +244,18 @@ class ShixunHomeworkPage extends Component {
</div> </div>
</div> </div>
<DownloadMessageysl {/*<DownloadMessageysl*/}
{...this.props} {/*{...this.props}*/}
value={this.state.DownloadMessageval} {/*value={this.state.DownloadMessageval}*/}
modalCancel={this.Downloadcal} {/*modalCancel={this.Downloadcal}*/}
modalsType={this.state.DownloadType} {/*modalsType={this.state.DownloadType}*/}
/> {/*/>*/}
{parseInt(tab) === 0 ?<Listofworksstudentone triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Listofworksstudentone> {parseInt(tab) === 0 ?<Listofworksstudentone triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Listofworksstudentone>:""}
:parseInt(tab) === 1 ?<Workquestionandanswer triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Workquestionandanswer> {parseInt(tab) === 1 ?<Workquestionandanswer triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Workquestionandanswer>:""}
:parseInt(tab) === 2 ?<ShixunStudentWork triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></ShixunStudentWork> {parseInt(tab) === 2 ?<ShixunStudentWork triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></ShixunStudentWork>:""}
:parseInt(tab) === 3 ?<Trainingjobsetting triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Trainingjobsetting>:""} {parseInt(tab) === 3 ?<Trainingjobsetting triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Trainingjobsetting>:""}
</div> </div>
</div> </div>

@ -3,6 +3,7 @@ import CoursesListType from '../coursesPublic/CoursesListType';
import {WordsBtn,ActionBtn} from 'educoder'; import {WordsBtn,ActionBtn} from 'educoder';
import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal'; import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal';
import HomeworkModal from "../coursesPublic/HomeworkModal"; import HomeworkModal from "../coursesPublic/HomeworkModal";
import DownloadMessageysl from '../../modals/DownloadMessageysl';
import NoneData from '../coursesPublic/NoneData'; import NoneData from '../coursesPublic/NoneData';
import { import {
Form, Form,
@ -69,6 +70,8 @@ class ShixunStudentWork extends Component {
datalist:undefined, datalist:undefined,
showmodel:false, showmodel:false,
jobsettingsdata:undefined, jobsettingsdata:undefined,
DownloadType:false,
DownloadMessageval:undefined
} }
} }
@ -78,6 +81,21 @@ class ShixunStudentWork extends Component {
this.props.triggerRef(this); this.props.triggerRef(this);
this.getTrainingjobsettings(); this.getTrainingjobsettings();
} }
componentWillReceiveProps(nextProps) {
// console.log("+++++++++916");
// console.log(nextProps);
// console.log(this.props)
// console.log(this.props.isAdmin());
if (nextProps.code_review != this.props.code_review) {
if (nextProps.code_review !== undefined) {
console.log("diaoyonglwangluo1");
this.getTrainingjobsettings();
}
}
}
getTrainingjobsettings=()=>{ getTrainingjobsettings=()=>{
this.getupdata(); this.getupdata();
this.getTrainingjobsetting(); this.getTrainingjobsetting();
@ -507,6 +525,55 @@ class ShixunStudentWork extends Component {
ChangeTab=(e)=>{ ChangeTab=(e)=>{
this.props.ChangeTab(e); this.props.ChangeTab(e);
} }
daochushixunbaogao=()=>{
let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`;
this.confirmysl(url);
}
daochuzuoye =() =>{
let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`;
this.confirmysl(url);
}
confirmysl(url){
axios.get(url).then((response) => {
if(response === undefined){
return
}
if(response.data.status&&response.data.status===-1){
}else if(response.data.status&&response.data.status===-2){
if(response.data.messages === "100"){
// 已超出文件导出的上限数量100 ),建议:
this.setState({
DownloadType:true,
DownloadMessageval:100
})
}else {
//因附件资料超过500M
this.setState({
DownloadType:true,
DownloadMessageval:500
})
}
}else {
this.props.showNotification(`正在下载中`);
window.open("/api"+url, '_blank');
}
}).catch((error) => {
console.log(error)
});
}
Downloadcal=()=>{
this.setState({
DownloadType:false,
DownloadMessageval:undefined
})
}
render() { render() {
let { let {
data, data,
@ -596,6 +663,13 @@ class ShixunStudentWork extends Component {
issCancel={()=>this.hideshowmodel()} issCancel={()=>this.hideshowmodel()}
updatas={()=>this.getupdata()} updatas={()=>this.getupdata()}
/>:""} />:""}
<DownloadMessageysl
{...this.props}
value={this.state.DownloadMessageval}
modalCancel={this.Downloadcal}
modalsType={this.state.DownloadType}
/>
{/*<DownloadMessage*/} {/*<DownloadMessage*/}
{/* {...this.props}*/} {/* {...this.props}*/}
@ -706,7 +780,7 @@ class ShixunStudentWork extends Component {
{data&&data.group_info === undefined ? "" : data&&data.group_info.map((item, key) => { {data&&data.group_info === undefined ? "" : data&&data.group_info.map((item, key) => {
return ( return (
<span key={key}> <span key={key}>
<Checkbox value={item.id}className="fl "> <Checkbox value={item.id} key={item.id} className="fl ">
<span> <span>
{item.name}({item.members_count}) {item.name}({item.members_count})
</span> </span>
@ -759,7 +833,13 @@ class ShixunStudentWork extends Component {
top: 72%;} top: 72%;}
} }
`}</style> `}</style>
{datalist === undefined ? "" : <Table
{datalist === undefined ? "" : datalist.length===0? <div className="alltask">
<div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src="/images/educoder/nodata.png" />
<p className="edu-nodata-p mb20">暂无数据哦~</p>
</div>
</div>:<Table
dataSource={datalist} dataSource={datalist}
columns={columns} columns={columns}
pagination={false} pagination={false}
@ -770,7 +850,7 @@ class ShixunStudentWork extends Component {
</div> </div>
{ {
datalist === undefined ? "":datalist.length<11? datalist === undefined ? "":datalist.length===0?"":datalist.length<11?
<div className="edu-txt-center mt30 mb20"> <div className="edu-txt-center mt30 mb20">
<Pagination showQuickJumper current={page} <Pagination showQuickJumper current={page}
onChange={this.TablePagination} pageSize={10} onChange={this.TablePagination} pageSize={10}

@ -103,7 +103,7 @@ class ShixunWorkReport extends Component {
} }
render() { render() {
let{data} =this.state; let{data} =this.state;
let category_id=data===undefined?"":data.category.category_id; let category_id=data===undefined?"":data.category===null?"":data.category.category_id;
let homework_common_id=data===undefined?"":data.homework_common_id; let homework_common_id=data===undefined?"":data.homework_common_id;
let homeworkid=this.props.match.params.homeworkid; let homeworkid=this.props.match.params.homeworkid;
const antIcon = <Icon type="loading" style={{ fontSize: 24 }} spin />; const antIcon = <Icon type="loading" style={{ fontSize: 24 }} spin />;
@ -125,7 +125,7 @@ class ShixunWorkReport extends Component {
</WordsBtn> </WordsBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span> <span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn to={"/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+category_id} style="grey" className="btn colorgrey fl hovercolorblue "> <WordsBtn to={"/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+category_id} style="grey" className="btn colorgrey fl hovercolorblue ">
<span className={"color-grey-9"}>{data&&data.category.category_name}</span> <span className={"color-grey-9"}>{data===undefined?"":data.category===null?"":data.category.category_name}</span>
</WordsBtn> </WordsBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span> <span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn to={"/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+homework_common_id+"/list?tab=0"} className="fl color-grey-9">作业详情</WordsBtn> <WordsBtn to={"/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+homework_common_id+"/list?tab=0"} className="fl color-grey-9">作业详情</WordsBtn>
@ -136,10 +136,10 @@ class ShixunWorkReport extends Component {
<div style={{ width:'100%',height:'75px'}} > <div style={{ width:'100%',height:'75px'}} >
<p className=" fl color-black mt25 summaryname">{data&&data.shixun_name}</p> <p className=" fl color-black mt25 summaryname">{data&&data.shixun_name}</p>
{/*{this.props.isAdmin()?<a className=" fr font-14 ml30 mt10 mr20 color-grey-9 ">导出实训报告数据</a>:""}*/} {/*{this.props.isAdmin()?<a className=" fr font-14 ml30 mt10 mr20 color-grey-9 ">导出实训报告数据</a>:""}*/}
{this.props.isAdmin() ? <a {/*{this.props.isAdmin() ? <a*/}
className="fr color-blue font-16" {/*className="fr color-blue font-16"*/}
onClick={()=>this.confirmysl(`/zip/shixun_report?homework_common_id=${homeworkid}`)} {/*onClick={()=>this.confirmysl(`/student_works/${homeworkid}/export_shixun_work_report.pdf`)}*/}
>导出实训报告数据</a> : ""} {/*>导出实训报告数据</a> : ""}*/}
</div> </div>
<div className="stud-class-set bor-bottom-greyE"> <div className="stud-class-set bor-bottom-greyE">

@ -373,7 +373,7 @@ class ShixunhomeWorkItem extends Component{
width:192px !important; width:192px !important;
} }
.homepagePostSettingbox{ .homepagePostSettingbox{
width:121px !important; width:139px !important;
} }
` `
} }
@ -381,7 +381,8 @@ class ShixunhomeWorkItem extends Component{
{this.props.isAdmin?<div className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"44px","display":"block"}}> {this.props.isAdmin?<div className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"44px","display":"block"}}>
<a className="btn colorblue font-16" href={"/shixuns/"+discussMessage.shixun_identifier+"/challenges"} target={"_blank"}>实训详情</a> <a className="btn colorblue font-16" href={"/shixuns/"+discussMessage.shixun_identifier+"/challenges"} target={"_blank"}>实训详情</a>
{this.props.isAdminOrCreator()?<a onClick={()=>this.editname(discussMessage.name,discussMessage.homework_id)} className={"btn colorblue ml20 font-16"}>重命名</a>:""} {this.props.isAdminOrCreator()?<a onClick={()=>this.editname(discussMessage.name,discussMessage.homework_id)} className={"btn colorblue ml20 font-16"}>重命名</a>:""}
<WordsBtn className="btn colorblue ml20 font-16" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn> {/*<WordsBtn className="btn colorblue ml20 font-16" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>*/}
<WordsBtn className="btn colorblue font-16" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>
</div>:""} </div>:""}

@ -153,7 +153,8 @@ class ShixunCustomsPass extends Component {
border-radius: 12px; border-radius: 12px;
color: rgba(221,23,23,1); color: rgba(221,23,23,1);
display: inline-block; display: inline-block;
line-height: 24px; line-height: 24px;
text-align: center;
} }
.ant-table-tbody > tr > td{ .ant-table-tbody > tr > td{
font-size:14px; font-size:14px;

@ -210,9 +210,9 @@ class TraineetraininginformationModal extends Component {
footer={null} footer={null}
onCancel={this.Cancel} onCancel={this.Cancel}
> >
<div style={{width:"100%" }}className="login_register_content" > <div style={{width:"100%" }} >
<div style={{"width": "100%","text-align": "left","clear": "both"}}> <div style={{"width": "100%","text-align": "left","clear": "both"}}>
<div className="mt5 fl" > <div className="mt8 fl" >
<span style={{"text-align": "left"}}>{this.props.viewtrainingdata === undefined ? "" : this.LimitNumber(this.props.viewtrainingdata.shixun_name)}</span> <span style={{"text-align": "left"}}>{this.props.viewtrainingdata === undefined ? "" : this.LimitNumber(this.props.viewtrainingdata.shixun_name)}</span>
<span className="ml10 " style={{"text-align": "left","color":'#29BD8B'}} >经验值<span style={{"color":'#29BD8B'}}> {this.props.experience=== undefined?"0" :this.props.experience}/</span><span style={{"color":'#29BD8B'}}>{this.props.viewtrainingdata === undefined ? "" : this.props.viewtrainingdata.shixun_score}</span></span> <span className="ml10 " style={{"text-align": "left","color":'#29BD8B'}} >经验值<span style={{"color":'#29BD8B'}}> {this.props.experience=== undefined?"0" :this.props.experience}/</span><span style={{"color":'#29BD8B'}}>{this.props.viewtrainingdata === undefined ? "" : this.props.viewtrainingdata.shixun_score}</span></span>
</div> </div>
@ -224,7 +224,7 @@ class TraineetraininginformationModal extends Component {
</div> </div>
</div> </div>
<div className=" bor-bottom-greyE mt45 "></div> {/*<div className=" bor-bottom-greyE mt45 "></div>*/}
<div style={{"clear": "both"}}> <div style={{"clear": "both"}}>
<div className="fl edu-back-white ml10 "> <div className="fl edu-back-white ml10 ">

@ -27,6 +27,7 @@ import moment from 'moment';
import 'moment/locale/zh-cn'; import 'moment/locale/zh-cn';
import Modals from "../../modals/Modals"; import Modals from "../../modals/Modals";
import Startshixuntask from "../coursesPublic/Startshixuntask"; import Startshixuntask from "../coursesPublic/Startshixuntask";
import DownloadMessageysl from "../../modals/DownloadMessageysl";
const RadioGroup = Radio.Group; const RadioGroup = Radio.Group;
//GraduationTaskssetting.js //GraduationTaskssetting.js
@ -140,6 +141,20 @@ class Trainingjobsetting extends Component {
}
componentWillReceiveProps(nextProps) {
// console.log("+++++++++916");
// console.log(nextProps);
// console.log(this.props)
// console.log(this.props.isAdmin());
if (nextProps.code_review != this.props.code_review) {
if (nextProps.code_review !== undefined) {
console.log("diaoyonglwangluo4");
this.getTrainingjobsetting()
}
}
} }
// 获取数据地方 // 获取数据地方
@ -1730,6 +1745,55 @@ class Trainingjobsetting extends Component {
ChangeTab=(e)=>{ ChangeTab=(e)=>{
this.props.ChangeTab(e); this.props.ChangeTab(e);
} }
daochushixunbaogao=()=>{
let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`;
this.confirmysl(url);
}
daochuzuoye =() =>{
let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`;
this.confirmysl(url);
}
confirmysl(url){
axios.get(url).then((response) => {
if(response === undefined){
return
}
if(response.data.status&&response.data.status===-1){
}else if(response.data.status&&response.data.status===-2){
if(response.data.messages === "100"){
// 已超出文件导出的上限数量100 ),建议:
this.setState({
DownloadType:true,
DownloadMessageval:100
})
}else {
//因附件资料超过500M
this.setState({
DownloadType:true,
DownloadMessageval:500
})
}
}else {
this.props.showNotification(`正在下载中`);
window.open("/api"+url, '_blank');
}
}).catch((error) => {
console.log(error)
});
}
Downloadcal=()=>{
this.setState({
DownloadType:false,
DownloadMessageval:undefined
})
}
render() { render() {
@ -1776,7 +1840,13 @@ class Trainingjobsetting extends Component {
{/* {...this.props}*/} {/* {...this.props}*/}
{/* ref="DownloadMessage"*/} {/* ref="DownloadMessage"*/}
{/*/>*/} {/*/>*/}
<DownloadMessageysl
{...this.props}
value={this.state.DownloadMessageval}
modalCancel={this.Downloadcal}
modalsType={this.state.DownloadType}
/>
{/*立即发布*/} {/*立即发布*/}
<HomeworkModal <HomeworkModal
modaltype={this.state.modaltype} modaltype={this.state.modaltype}

@ -35,6 +35,7 @@ import Homeworddescription from "../shixunHomework/Homeworddescription";
import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal'; import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal';
import HomeworkModal from "../coursesPublic/HomeworkModal"; import HomeworkModal from "../coursesPublic/HomeworkModal";
import Startshixuntask from "../coursesPublic/Startshixuntask"; import Startshixuntask from "../coursesPublic/Startshixuntask";
import DownloadMessageysl from "../../modals/DownloadMessageysl";
const TextArea = Input.TextArea const TextArea = Input.TextArea
//作业问答页面 //作业问答页面
@ -93,6 +94,21 @@ class Workquestionandanswer extends Component {
shixuntypes: type[3] shixuntypes: type[3]
}) })
} }
componentWillReceiveProps(nextProps) {
// console.log("+++++++++916");
// console.log(nextProps);
// console.log(this.props)
// console.log(this.props.isAdmin());
if (nextProps.code_review != this.props.code_review) {
if (nextProps.code_review !== undefined) {
console.log("diaoyonglwangluo2");
var homeworkid = this.props.match.params.homeworkid;
// console.log(homeworkid)
this.Gettitleinformation(homeworkid)
}
}
}
isupdatas = () => { isupdatas = () => {
var homeworkid = this.props.match.params.homeworkid; var homeworkid = this.props.match.params.homeworkid;
@ -319,6 +335,55 @@ class Workquestionandanswer extends Component {
ChangeTab=(e)=>{ ChangeTab=(e)=>{
this.props.ChangeTab(e); this.props.ChangeTab(e);
} }
daochushixunbaogao=()=>{
let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`;
this.confirmysl(url);
}
daochuzuoye =() =>{
let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`;
this.confirmysl(url);
}
confirmysl(url){
axios.get(url).then((response) => {
if(response === undefined){
return
}
if(response.data.status&&response.data.status===-1){
}else if(response.data.status&&response.data.status===-2){
if(response.data.messages === "100"){
// 已超出文件导出的上限数量100 ),建议:
this.setState({
DownloadType:true,
DownloadMessageval:100
})
}else {
//因附件资料超过500M
this.setState({
DownloadType:true,
DownloadMessageval:500
})
}
}else {
this.props.showNotification(`正在下载中`);
window.open("/api"+url, '_blank');
}
}).catch((error) => {
console.log(error)
});
}
Downloadcal=()=>{
this.setState({
DownloadType:false,
DownloadMessageval:undefined
})
}
render() { render() {
const dateFormat = 'YYYY-MM-DD HH:mm:ss'; const dateFormat = 'YYYY-MM-DD HH:mm:ss';
let { let {
@ -352,6 +417,13 @@ class Workquestionandanswer extends Component {
{/* ref="DownloadMessage"*/} {/* ref="DownloadMessage"*/}
{/*/>*/} {/*/>*/}
{/*立即发布*/} {/*立即发布*/}
<DownloadMessageysl
{...this.props}
value={this.state.DownloadMessageval}
modalCancel={this.Downloadcal}
modalsType={this.state.DownloadType}
/>
<HomeworkModal <HomeworkModal
modaltype={this.state.modaltype} modaltype={this.state.modaltype}
modalname={this.state.modalname} modalname={this.state.modalname}

@ -142,7 +142,8 @@ class OfficialAcademicTranscript extends Component {
border-radius: 12px; border-radius: 12px;
color: rgba(221,23,23,1); color: rgba(221,23,23,1);
display: inline-block; display: inline-block;
line-height: 24px; line-height: 24px;
text-align: center;
} }
.tasknameboxs{ .tasknameboxs{

@ -123,3 +123,7 @@
letter-spacing: 2px; letter-spacing: 2px;
cursor: pointer; cursor: pointer;
} }
.myinput{
display: flex;
justify-content: center;
}

@ -7,7 +7,7 @@ import Dialog, {
DialogTitle, DialogTitle,
} from 'material-ui/Dialog'; } from 'material-ui/Dialog';
import axios from 'axios'; import axios from 'axios';
import './LoginDialog.css'
import {broadcastChannelPostMessage} from 'educoder' import {broadcastChannelPostMessage} from 'educoder'
import {Tabs, Input, Checkbox, Button, notification, Menu} from 'antd'; import {Tabs, Input, Checkbox, Button, notification, Menu} from 'antd';
@ -216,13 +216,13 @@ class Trialapplication extends Component {
this.setState({ this.setState({
isRenders: false isRenders: false
}) })
this.Cancel(); this.handleDialogClose()
window.location.href = "/"; window.location.href = "/";
} else { } else {
this.setState({ this.setState({
isRenders: false isRenders: false
}) })
this.Cancel(); this.handleDialogClose()
} }
} }
@ -277,14 +277,12 @@ class Trialapplication extends Component {
this.setState({ this.setState({
isRenders: false isRenders: false
}) })
this.Cancel(); this.handleDialogClose()
} else { } else {
this.setState({ this.setState({
isRenders: false isRenders: false
}) })
this.Cancel(); this.handleDialogClose()
} }
} }
}).catch((error) => { }).catch((error) => {

@ -44,6 +44,7 @@ class Trialapplicationysl extends Component {
Cancel = () => { Cancel = () => {
// this.props.Cancel() // this.props.Cancel()
} }
//
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
// console.log("46"); // console.log("46");
// console.log(nextProps); // console.log(nextProps);
@ -64,16 +65,16 @@ class Trialapplicationysl extends Component {
} }
getipthon=()=>{ getipthon=()=>{
// console.log("Trialapplicationysl"); // console.log("Trialapplicationysl");
// console.log("70"); // console.log("70");
let url = `/users/get_user_info.json` let url = `/users/get_user_info.json`
axios.get(url).then((result)=> { axios.get(url).then((result)=> {
console.log(result); console.log(result);
if(result){ if(result){
this.setState({ this.setState({
user_phone_binded:result.data.user_phone_binded, user_phone_binded:result.data.user_phone_binded,
}) })
} }
}).catch((error)=>{ }).catch((error)=>{
console.log(error) console.log(error)
@ -85,7 +86,7 @@ class Trialapplicationysl extends Component {
// console.log("53"); // console.log("53");
// //
// console.log(this.props.isRenders); // console.log(this.props.isRenders);
this.getipthon(); // this.getipthon();
if (this.props.isRenders != undefined) { if (this.props.isRenders != undefined) {
this.setState({ this.setState({
isRenders: this.props.isRenders isRenders: this.props.isRenders
@ -288,11 +289,12 @@ class Trialapplicationysl extends Component {
if(result !== undefined){ if(result !== undefined){
// this.props.showNotification(`试用申请已提交,我们将尽快完成审核`); // this.props.showNotification(`试用申请已提交,我们将尽快完成审核`);
// if (this.state.showTrial === false) { // if (this.state.showTrial === false) {
window.location.href = "/"; window.location.href = "/";
this.setState({ this.setState({
isRenders: false isRenders: false
}) })
this.Cancel(); // this.Cancel();
this.handleDialogClose()
// } else { // } else {
// this.setState({ // this.setState({
// isRenders: false // isRenders: false

@ -675,7 +675,7 @@ class MainContentContainer extends Component {
const timeOut = time_limit; const timeOut = time_limit;
// http://localhost:3000/myshixuns/so5w6iap97/stages/zl6kx8f7vfpo/game_build?first=1&resubmit=GDBEX741_1993 // http://localhost:3000/myshixuns/so5w6iap97/stages/zl6kx8f7vfpo/game_build?first=1&resubmit=GDBEX741_1993
// const game_build_url = `${locationPath}/game_build?first=${first}&resubmit=${resubmit}&content_modified=${content_modified}` // const game_build_url = `${locationPath}/game_build?first=${first}&resubmit=${resubmit}&content_modified=${content_modified}`
const game_build_url = `/tasks/${game.identifier}/game_build.json?first=${first}&resubmit=${resubmit}&content_modified=${!!content_modified ? 1 : 0}&sec_key=${sec_key}` const game_build_url = `/tasks/${game.identifier}/game_build.json?first=${first}&resubmit=${resubmit}&content_modified=${content_modified}&sec_key=${sec_key}`
// var timeOut = parseInt(<%= @myshixun.main_mirror.try(:time_limit) %>); // 超时参数 // var timeOut = parseInt(<%= @myshixun.main_mirror.try(:time_limit) %>); // 超时参数

@ -336,7 +336,7 @@ class LeftView extends Component {
</div> </div>
</div> </div>
</div> </div>
<div id="tab_con_4" className="tab-info commentsDelegateParent" style={ tabIndex === 3 ? {display: 'block'} : {display: 'none'} }> <div id="tab_con_4" className="commentTab tab-info commentsDelegateParent" style={ tabIndex === 3 ? {display: 'block'} : {display: 'none'} }>
{ loadingComments ? { loadingComments ?
<CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> : <CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> :
<CommentContainer {...this.props}></CommentContainer> <CommentContainer {...this.props}></CommentContainer>

@ -181,7 +181,7 @@ class sendPanel extends Component{
item.shixuns.map((items,keys)=>{ item.shixuns.map((items,keys)=>{
return( return(
<div className="mt5" key={keys}> <div className="mt5" key={keys}>
<Checkbox name={key} value={items.shixun_id}>{items.shixun_name}</Checkbox> <Checkbox name={key} value={items.shixun_id} key={items.shixun_id}>{items.shixun_name}</Checkbox>
</div> </div>
) )
}) })

@ -117,14 +117,14 @@ class ShixunPathSearch extends Component{
<a href="javascript:void(0)" className={ order == "updated_at" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"} onClick={ () => this.changeStatus("updated_at")}>最新</a> <a href="javascript:void(0)" className={ order == "updated_at" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"} onClick={ () => this.changeStatus("updated_at")}>最新</a>
<a href="javascript:void(0)" className={ order == "myshixun_count" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"} onClick={ () => this.changeStatus("myshixun_count")}>最热</a> <a href="javascript:void(0)" className={ order == "myshixun_count" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"} onClick={ () => this.changeStatus("myshixun_count")}>最热</a>
<div className="fr mr5 search-new"> <div className="fr mr5 search-new">
<Search {/* <Search
placeholder="请输入路径名称进行搜索" placeholder="请输入路径名称进行搜索"
id="subject_search_input" id="subject_search_input"
value={search} value={search}
onInput={this.inputSearchValue} onInput={this.inputSearchValue}
onSearch={this.searchValue} onSearch={this.searchValue}
autoComplete="off" autoComplete="off"
></Search> ></Search> */}
</div> </div>
</div> </div>
<PathCard {...this.props} {...this.state}></PathCard> <PathCard {...this.props} {...this.state}></PathCard>

@ -18,7 +18,7 @@ import Addcourses from '../courses/coursesPublic/Addcourses';
import LoginDialog from '../login/LoginDialog'; import LoginDialog from '../login/LoginDialog';
import Trialapplicationysl from '../login/Trialapplicationysl' import Trialapplication from '../login/Trialapplication'
import 'antd/lib/modal/style/index.css'; import 'antd/lib/modal/style/index.css';
@ -636,7 +636,7 @@ submittojoinclass=(value)=>{
{/* />*/} {/* />*/}
{/* :""*/} {/* :""*/}
{/*}*/} {/*}*/}
{/*<Trialapplicationysl {...this.state} {...this.props} Cancel={() => this.cancelModulationModels()} ></Trialapplicationysl>*/} {/*<Trialapplication {...this.state} {...this.props} Cancel={() => this.cancelModulationModels()} ></Trialapplication>*/}
<div className="educontent clearfix"> <div className="educontent clearfix">
{/*<%= link_to image_tag("/images/educoder/logo.png", alt:"高校智能化教学与实训平台", className:"logoimg"), home_path %>*/} {/*<%= link_to image_tag("/images/educoder/logo.png", alt:"高校智能化教学与实训平台", className:"logoimg"), home_path %>*/}
<a href="/"> <a href="/">

@ -214,7 +214,7 @@ class ShixunCardList extends Component {
{/*enterButton*/} {/*enterButton*/}
{/*/>*/} {/*/>*/}
<Search {/* <Search
style={{ width: 300 }} style={{ width: 300 }}
className="fl" className="fl"
placeholder="请输入创建者/实训/关卡名称进行搜索" placeholder="请输入创建者/实训/关卡名称进行搜索"
@ -222,7 +222,7 @@ class ShixunCardList extends Component {
onInput={this.Input_searchs} onInput={this.Input_searchs}
onSearch={value => this.Input_search(value)} onSearch={value => this.Input_search(value)}
autoComplete="off" autoComplete="off"
></Search> ></Search> */}
</div> </div>
<div className="fr"> <div className="fr">
<span className="fl color-grey-6 mr30 font-16 mt5" id="search_name">{ <span className="fl color-grey-6 mr30 font-16 mt5" id="search_name">{

@ -43,6 +43,7 @@ class LoginRegisterComponent extends Component {
Whethertoverify:false, Whethertoverify:false,
modalsType:false, modalsType:false,
pciphone:true, pciphone:true,
boolyzm:false,
} }
} }
@ -213,7 +214,10 @@ class LoginRegisterComponent extends Component {
}) })
return return
} }
if (this.state.password !== this.state.passwords==="") {
this.openNotification(`两次输入的密码不一致`);
return
}
else if (this.state.password !==undefined&&this.state.password.length>0&&this.state.password.length<8){ else if (this.state.password !==undefined&&this.state.password.length>0&&this.state.password.length<8){
this.setState({ this.setState({
Phonenumberisnotcosmmm:"密码不能少于8位", Phonenumberisnotcosmmm:"密码不能少于8位",
@ -236,13 +240,6 @@ class LoginRegisterComponent extends Component {
}) })
return return
} }
if (this.state.password !== this.state.passwords) {
this.setState({
Phonenumberisnotcosmmm:"两次输入的密码不一致",
Phonenumberisnotcosymmmm:"两次输入的密码不一致",
})
return
}
if (this.state.codes === undefined|| this.state.codes.length ===0 || this.state.codes === "") { if (this.state.codes === undefined|| this.state.codes.length ===0 || this.state.codes === "") {
this.setState({ this.setState({
Phonenumberisnotcosyzm:"验证码不能为空" Phonenumberisnotcosyzm:"验证码不能为空"
@ -271,6 +268,12 @@ class LoginRegisterComponent extends Component {
Phonenumberisnotcosyzm:"验证码不正确", Phonenumberisnotcosyzm:"验证码不正确",
}) })
return;
}else if(result.data.message==="1小时内同一手机号发送次数超过限制"){
this.setState({
boolyzm:true,
})
this.openNotification(result.data.message);
return; return;
}else { }else {
this.openNotification(result.data.message); this.openNotification(result.data.message);
@ -311,6 +314,7 @@ class LoginRegisterComponent extends Component {
login: stirngt, login: stirngt,
Phonenumberisnotco:undefined, Phonenumberisnotco:undefined,
dragOk:false, dragOk:false,
boolyzm:false,
Whethertoverify:this.state.Whethertoverify===true?false:true, Whethertoverify:this.state.Whethertoverify===true?false:true,
}) })
} }
@ -505,6 +509,7 @@ class LoginRegisterComponent extends Component {
codes, codes,
Whethertoverify, Whethertoverify,
pciphone, pciphone,
boolyzm,
} = this.state } = this.state
// height: 346px; // height: 346px;
return ( return (
@ -667,11 +672,13 @@ class LoginRegisterComponent extends Component {
<Button className=" ml5 " <Button className=" ml5 "
style={{"width": "120px", "text-align": "center", "height": "45px"}} style={{"width": "120px", "text-align": "center", "height": "45px"}}
type="primary" type="primary"
disabled={boolyzm}
onClick={() => this.getverificationcode()} size={"large"}>获取验证码</Button> onClick={() => this.getverificationcode()} size={"large"}>获取验证码</Button>
: :
<Button className=" ml5 " <Button className=" ml5 "
style={{"width": "120px", "text-align": "center", "height": "45px"}} style={{"width": "120px", "text-align": "center", "height": "45px"}}
type="primary" type="primary"
disabled={boolyzm}
onClick={() => this.getverificationcode()} size={"large"}>重新发送</Button> onClick={() => this.getverificationcode()} size={"large"}>重新发送</Button>
} }

@ -718,8 +718,17 @@ class LoginRegisterComponent extends Component {
console.log(classpass); console.log(classpass);
return ( return (
<div className="login_register_content" style={ parseInt(tab[0])==0?{height: "346px"} :{height: "490px"}}> <div className="login_register_content login_register_contents" style={ parseInt(tab[0])==0?{height: "346px"} :{height: "490px"}}>
<style>
{
`
.login_register_contents, .login_register_contents .ant-tabs-tabpane {
display: flex;
justify-content: center;
}
`
}
</style>
<div> <div>
<Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}> <Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}>

@ -0,0 +1,65 @@
import React, { Component } from 'react';
import {getImageUrl} from 'educoder';
import { Modal} from 'antd';
import axios from 'axios';
import './common.css'
//您的试用申请正在审核中,请耐心等待
class Trialapplicationreview extends Component {
constructor(props) {
super(props);
this.state={
modalsType:false,
}
}
componentDidMount() {
axios.interceptors.response.use((response) => {
if (response != undefined)
if (response && response.data.status === 408) {
this.setState({
modalsType: true
})
}
return response;
}, (error) => {
//TODO 这里如果样式变了会出现css不加载的情况
});
}
setDownload=()=>{
//立即联系
this.setState({
modalsType:false
})
}
render() {
return(
<Modal
keyboard={false}
closable={false}
footer={null}
destroyOnClose={true}
title="提示"
centered={true}
visible={this.state.modalsType===undefined?false:this.state.modalsType}
width="530px"
>
<div className="educouddiv tabeltext-alignleft">
<div className={"tabeltext-alignleft mb20"}><p>您的试用申请正在审核中请耐心等待</p></div>
<a className="task-btn task-btn-orange bth100" onClick={()=>this.setDownload()}>知道啦</a>
</div>
</Modal>
)
}
}
export default Trialapplicationreview;

@ -16,7 +16,7 @@ class AccountCertification extends Component {
showRealNameCertificationModal = (index) => { showRealNameCertificationModal = (index) => {
this.setState({ this.setState({
certification:index certification:index,
}) })
this.realNameCertificationModal.setVisible(true) this.realNameCertificationModal.setVisible(true)
} }
@ -25,9 +25,13 @@ class AccountCertification extends Component {
let {basicInfo} = this.props; let {basicInfo} = this.props;
return ( return (
<div> <div>
<RealNameCertificationModal ref="realNameCertificationModal" {...this.props} {this.state.certification===1?<RealNameCertificationModal ref="realNameCertificationModal" {...this.props}
wrappedComponentRef={(form) => this.realNameCertificationModal = form} certification={certification} wrappedComponentRef={(form) => this.realNameCertificationModal = form} certification={certification}
></RealNameCertificationModal> ></RealNameCertificationModal>:""}
{this.state.certification===2?<RealNameCertificationModal ref="realNameCertificationModal" {...this.props}
wrappedComponentRef={(form) => this.realNameCertificationModal = form} certification={certification}
></RealNameCertificationModal>:""}
<div className="basicForm"> <div className="basicForm">
<style>{` <style>{`
.basicForm .title { .basicForm .title {

@ -1,7 +1,7 @@
.login_register_content, .login_register_content .ant-tabs-tabpane { /*.login_register_content, .login_register_content .ant-tabs-tabpane {*/
display: flex; /* !*display: flex;*!*/
justify-content: center; /* justify-content: center;*/
} /*}*/
.login_register_content .ant-input { .login_register_content .ant-input {
background:rgb(244,244,244); background:rgb(244,244,244);
} }

@ -30,7 +30,6 @@ class RealNameCertificationModal extends Component{
constructor(props){ constructor(props){
super(props); super(props);
this.state={ this.state={
} }
} }
@ -125,24 +124,18 @@ class RealNameCertificationModal extends Component{
const { course_lists, checkBoxValues, searchValue, loading, imageUrl, imageUrl2 } = this.state const { course_lists, checkBoxValues, searchValue, loading, imageUrl, imageUrl2 } = this.state
const { moduleName } = this.props const { moduleName } = this.props
const { getFieldDecorator } = this.props.form; const { getFieldDecorator } = this.props.form;
const uploadProps = { let {certification}=this.props;
name: 'file',
multiple: true,
showUploadList: false,
action: getUploadActionUrl(),
className: 'idPic-uploader first_uploader',
onChange: this.handleChange,
};
const uploadProps2 = { const uploadProps2 = {
name: 'file', name: 'image',
data:{type:certification == 1 ? "real_name" : "professional"},
multiple: true, multiple: true,
showUploadList: false, showUploadList: false,
action: getUploadActionUrl(), // https://newweb.educoder.net
action: `/api/users/accounts/${this.props.current_user.login}/auth_attachment.json`,
className: 'idPic-uploader', className: 'idPic-uploader',
onChange: this.handleChange2, onChange: this.handleChange2,
}; };
let {certification}=this.props;
return( return(
<ModalWrapper <ModalWrapper
ref="modalWrapper" ref="modalWrapper"

@ -101,8 +101,9 @@ class InfosCourse extends Component{
totalCount, totalCount,
isSpin isSpin
} = this.state; } = this.state;
let isStudent = this.props.isStudent();
let is_current=this.props.is_current; let is_current=this.props.is_current;
console.log(this.props.current_user&&this.props.current_user.user_identity==="学生")
return( return(
<div className="educontent"> <div className="educontent">
<Spin size="large" spinning={isSpin}> <Spin size="large" spinning={isSpin}>
@ -125,11 +126,11 @@ class InfosCourse extends Component{
</p> </p>
<div className="square-list clearfix"> <div className="square-list clearfix">
{ {
!isStudent && page == 1 && !category && is_current && page == 1 && is_current &&
<Create href={"/courses/new"} name={"新建课堂"} index="1"></Create> this.props.current_user && this.props.current_user.user_identity != "学生" ? <Create href={"/courses/new"} name={"新建课堂"} index="1"></Create> : ""
} }
{ {
(!data || data.courses.length==0) && (isStudent || category) && <NoneData></NoneData> (!data || data.courses.length==0) && (this.props.current_user && this.props.current_user.user_identity === "学生" || category) && <NoneData></NoneData>
} }
{ {
data && data.courses && data.courses.map((item,key)=>{ data && data.courses && data.courses.map((item,key)=>{

@ -148,11 +148,11 @@ class InfosPath extends Component{
</div> </div>
<div className="square-list clearfix"> <div className="square-list clearfix">
{ {
!isStudent && page == 1 && !category && is_current && page == 1 && is_current &&
<Create href={"/paths/new"} name={"新建实践课程"} index="3"></Create> this.props.current_user && this.props.current_user.user_identity != "学生" ? <Create href={"/paths/new"} name={"新建实践课程"} index="3"></Create>:""
} }
{ {
(!data || data.subjects.length==0) && (isStudent || category) && <NoneData></NoneData> (!data || data.subjects.length==0) && (this.props.current_user && this.props.current_user.user_identity === "学生" || category) && <NoneData></NoneData>
} }
{ {
data && data.subjects && data.subjects.map((item,key)=>{ data && data.subjects && data.subjects.map((item,key)=>{

@ -121,11 +121,11 @@ class InfosProject extends Component{
</p> </p>
<div className="square-list clearfix"> <div className="square-list clearfix">
{ {
!isStudent && page == 1 && !category && is_current && page == 1 && is_current && this.props.current_user && this.props.current_user.user_identity != "学生" ?
<Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建项目"} index="4"></Create> <Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建项目"} index="4"></Create>:""
} }
{ {
(!data || data.projects.length==0) && (isStudent || category) && <NoneData></NoneData> (!data || data.projects.length==0) && (this.props.current_user && this.props.current_user.user_identity === "学生" || category) && <NoneData></NoneData>
} }
{ {
data && data.projects && data.projects.map((item,key)=>{ data && data.projects && data.projects.map((item,key)=>{

@ -157,11 +157,11 @@ class InfosShixun extends Component{
</div> </div>
<div className="square-list clearfix"> <div className="square-list clearfix">
{ {
!isStudent && page == 1 && !category && is_current && page == 1 && is_current && this.props.current_user && this.props.current_user.user_identity != "学生" ?
<Create href={"/shixuns/new"} name={"新建实训"} index="2"></Create> <Create href={"/shixuns/new"} name={"新建实训"} index="2"></Create>:""
} }
{ {
(!data || data.shixuns.length==0) && (isStudent || category) && <NoneData></NoneData> (!data || data.shixuns.length==0) && (this.props.current_user && this.props.current_user.user_identity === "学生" || category) && <NoneData></NoneData>
} }
{ {
data && data.shixuns && data.shixuns.map((item,key)=>{ data && data.shixuns && data.shixuns.map((item,key)=>{

@ -218,10 +218,15 @@ class SearchPage extends Component{
<div> <div>
{/*挑战名字*/} {/*挑战名字*/}
{item.content.challenge_names === undefined || item.content.challenge_names===0?"": item.content.challenge_names.map((item5, key5) => { {item.content.challenge_names === undefined || item.content.challenge_names===0?"": item.content.challenge_names.map((item5, key5) => {
return ( return (
<span className={"markdown-body"} <div className={"df"}>
<span style={{flex: '0 0 82px'}}>关卡名称</span>
<span className={""}
dangerouslySetInnerHTML={{__html: item5}} /> dangerouslySetInnerHTML={{__html: item5}} />
</div>
) )
}) })
} }
@ -231,8 +236,11 @@ class SearchPage extends Component{
{/*挑战标签*/} {/*挑战标签*/}
{item.content.challenge_tag_names === undefined || item.content.challenge_tag_names===0?"": item.content.challenge_tag_names.map((item6, key6) => { {item.content.challenge_tag_names === undefined || item.content.challenge_tag_names===0?"": item.content.challenge_tag_names.map((item6, key6) => {
return ( return (
<span className={key6>1?"markdown-body tzbq ":"markdown-body tzbqx"} <div className={"df"}>
dangerouslySetInnerHTML={{__html:item6}} /> <span style={{flex: '0 0 82px'}}>关卡标签</span>
<span className={key6>1?" tzbq ":" tzbqx"}
dangerouslySetInnerHTML={{__html:item6}} />
</div>
) )
}) })
} }
@ -260,44 +268,44 @@ class SearchPage extends Component{
<span className="ziticor"> <span className="ziticor">
{/* <i className="fa fa-user ziticor"></i> */} {/* <i className="fa fa-user ziticor"></i> */}
<span className="ml10">{item.author_name}</span></span> <span className="">{item.author_name}</span></span>
<span className="ml10 ziticor "><span>{item.author_school_name}</span> <span className="ml10 ziticor "><span>{item.author_school_name}</span>
</span> </span>
{!!item.challenges_count && <span className="ml20 ziticor"> {!!item.challenges_count && <span className="ml20 ziticor">
<i className="iconfont icon-shixunguanqia ziticor"></i> {/* <i className="iconfont icon-shixunguanqia ziticor"></i> */}
<span>任务: <span>任务:
<span className="ml10 ziticor">{item.challenges_count}</span> <span className="ml10 ziticor">{item.challenges_count}</span>
</span> </span>
</span> } </span> }
{!!item.study_count && <span className="ml20 ziticor"> {!!item.study_count && <span className="ml20 ziticor">
<i className="iconfont icon-chengyuan ziticor"></i> {/* <i className="iconfont icon-chengyuan ziticor"></i> */}
<span>学习人数: <span>学习人数:
<span className="ml10 ziticor">{item.study_count}</span> <span className="ml10 ziticor">{item.study_count}</span>
</span> </span>
</span>} </span>}
{!!item.stage_shixuns_count && <span className="ml20 ziticor"> {!!item.stage_shixuns_count && <span className="ml20 ziticor">
<i className="iconfont icon-shixunguanqia ziticor"></i> {/* <i className="iconfont icon-shixunguanqia ziticor"></i> */}
<span>实训数: <span>实训数:
<span className="ml10 ziticor">{item.stage_shixuns_count}</span> <span className="ml10 ziticor">{item.stage_shixuns_count}</span>
</span> </span>
</span>} </span>}
{type == 'subject' && !!item.visits_count && <span className="ml20 ziticor"> {type == 'subject' && !!item.visits_count && <span className="ml20 ziticor">
<i className="iconfont icon-chengyuan ziticor" style={{ 'margin-bottom': '1px' }}></i> {/* <i className="iconfont icon-chengyuan ziticor" style={{ 'margin-bottom': '1px' }}></i> */}
<span>访问数: <span>访问数:
<span className="ml10 ziticor">{item.visits_count}</span> <span className="ml10 ziticor">{item.visits_count}</span>
</span> </span>
</span>} </span>}
{!!item.members_count && <span className="ml20 ziticor"> {!!item.members_count && <span className="ml20 ziticor">
<i className="iconfont icon-chengyuan ziticor"></i> {/* <i className="iconfont icon-chengyuan ziticor"></i> */}
<span>成员数: <span>成员数:
<span className="ml10 ziticor">{item.members_count}</span> <span className="ml10 ziticor">{item.members_count}</span>
</span> </span>
</span>} </span>}
{!!item.all_replies_count && <span className="ml20 ziticor"> {!!item.all_replies_count && <span className="ml20 ziticor">
<i className="iconfont icon-huifu1 ziticor"></i> {/* <i className="iconfont icon-huifu1 ziticor"></i> */}
<span>回复数:<span className="ml10 ziticor">{item.all_replies_count}</span></span> <span>回复数:<span className="ml10 ziticor">{item.all_replies_count}</span></span>
</span> } </span> }

@ -113,7 +113,7 @@
margin-left: 68px; margin-left: 68px;
} }
.tzbqx{ .tzbqx{
margin-left: 24px; /* margin-left: 24px; */
} }
.bjyss{ .bjyss{
background: #F8F8F8; background: #F8F8F8;

Loading…
Cancel
Save