From b32f6e3db0d5f1e9b01ef0218c30d93f9e4ebd20 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Tue, 3 Sep 2019 09:25:12 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=AF=95=E8=AE=BE=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/courses/Index.js | 6 +- .../graduation/tasks/GraduationTaskDetail.js | 237 ++++++++++++++++++ .../tasks/GraduationTaskssetting.js | 93 +++---- .../shixunHomework/ShixunhomeWorkItem.js | 8 +- 4 files changed, 296 insertions(+), 48 deletions(-) create mode 100644 public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js diff --git a/public/react/src/modules/courses/Index.js b/public/react/src/modules/courses/Index.js index 1b1c523c0..2da14c3fd 100644 --- a/public/react/src/modules/courses/Index.js +++ b/public/react/src/modules/courses/Index.js @@ -231,7 +231,7 @@ const GraduationTasksquestions= Loadable({ //毕设任务列表 const GraduationTaskssettinglist= Loadable({ - loader: () => import('./graduation/tasks/GraduationTaskssettinglist'), + loader: () => import('./graduation/tasks/GraduationTaskDetail'), loading: Loading, }) @@ -565,7 +565,7 @@ class CoursesIndex extends Component{ {/* 设置毕设任务 https://www.trustie.net/issues/19981 */} - <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/setting" + {/* <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/setting" render={ (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} />) } @@ -575,7 +575,7 @@ class CoursesIndex extends Component{ <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/questions" render={ (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} />) - }></Route> + }></Route> */} <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/list" diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js new file mode 100644 index 000000000..acd28d7fa --- /dev/null +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -0,0 +1,237 @@ +import React, { Component } from 'react'; + +import {Link} from 'react-router-dom'; +import {Tooltip,Menu} from 'antd'; +import Loadable from 'react-loadable'; +import Loading from '../../../../Loading'; +import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; +import axios from 'axios'; +import HomeworkModal from "../../coursesPublic/HomeworkModal"; + +import CoursesListType from '../../coursesPublic/CoursesListType'; +import moment from 'moment'; +import "../../css/members.css" +import "../../css/Courses.css" + + +import Trialapplication from '../../../login/Trialapplication' + + +//毕设任务列表任务列表 +const GraduationTasksquestions= Loadable({ + loader: () => import('./GraduationTaskssettingquestions'), + loading: Loading, +}) +//毕设任务列表设置 +const GraduationTaskssetting=Loadable({ + loader: () => import('./GraduationTaskssetting'), + loading: Loading, +}) + +class GraduationTaskDetail extends Component{ + constructor(props){ + super(props); + this.state={ + modalname:undefined, + visible:false, + Topval:undefined, + starttime:undefined, + starttimes:undefined, + typs:undefined, + endtime:undefined, + Cancelname:undefined, + Savesname:undefined, + Cancel:undefined, + Saves:undefined, + Topvalright:undefined, + Botvalleft:undefined + } + } + componentDidMount =()=>{ + + } + + //返回 + goback=()=>{ + // let courseId=this.props.match.params.coursesId; + // let category_id=this.props.match.params.category_id; + // window.location.href="/courses/1309/graduation_tasks/"+category_id; + // let courseId = this.props.match.params.coursesId; + // if(courseId===undefined){ + // this.props.history.push("/courses"); + // }else{ + // this.props.history.push(this.props.current_user.first_category_url); + // } + + // this.props.history.goBack() + this.props.history.replace(`/courses/${this.state.questionslist.course_id}/graduation_tasks/${this.state.questionslist.graduation_id}`); + } + //立即发布 + publish=()=>{ + let starttime= this.props.getNowFormatDates(1,1); + let endtime=this.props.getNowFormatDates(2,1); + // this.homeworkstart() + this.setState({ + modalname:"立即发布", + visible:true, + Topval:"学生将立即收到毕设任务", + // Botvalleft:"点击修改", + // Botval:`本操作只对"未发布"的分班有效`, + starttime:moment(moment(new Date())).format("YYYY-MM-DD HH:mm") , + starttimes:this.props.getNowFormatDates(1), + typs:"start", + endtime:endtime, + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.cancelmodel, + Saves:this.homepublish, + }) + } + // 立即截止 + end=()=>{ + // this.homeworkstart() + this.setState({ + modalname:"立即截止", + visible:true, + Topval:"学生将不能再提交作品", + // Botvalleft:"暂不截止", + // Botval:`本操作只对"提交中"的分班有效`, + Cancelname:"暂不截止", + Savesname:"立即截止", + Cancel:this.cancelmodel, + Saves:this.coursetaskend, + typs:"end", + }) + } + // 取消 + cancelmodel=()=>{ + this.setState({ + Modalstype:false, + Loadtype:false, + visible:false, + Modulationtype:false, + Allocationtype:false, + Modalstopval:"", + ModalCancel:"", + ModalSave:"", + }) + } + + + render(){ + return( + <div className="newMain clearfix"> + <div className={"educontent mb20"}> + <HomeworkModal + starttimes={this.state.starttimes} + typs={this.state.typs} + modalname={this.state.modalname} + visible={this.state.visible} + 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} + modaltype={this.state.modaltype} + getcourse_groupslist={(id) => this.getcourse_groupslist(id)} + /> + + <p className="clearfix mt10"> + <a onClick={this.goback} className="color-grey-9 fl">计算机基础····</a> + <span className="color-grey-9 fl ml3 mr3">></span> + <Link to={`/courses/1309/graduation_tasks/14655`} className="color-grey-9 fl">毕设任务</Link> + <span className="color-grey-9 fl ml3 mr3">></span> + <span className="color-grey-6">任务详情</span> + </p> + <div className="clearfix mt20 mb20 lineh-25 linbox"> + <p className=" fl color-black summaryname"> + <Link to={`/courses/1309/graduation_tasks/14655`} className="color-grey-3">测试第一次设置发布时间时截止时间会联动,其它情况不联动</Link> + </p> + <CoursesListType + typelist={['补交中']} + /> + <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> + </div> + <div className="stud-class-set bor-bottom-greyE"> + <div className="mt10 clearfix edu-back-white poll_list pl20"> + + <Link to={"/courses/1309/graduation_tasks/16455/67/list"}>任务列表</Link> + <Link className="active" to={"/courses/1309/graduation_tasks/16455/67/questions"}>毕设描述</Link> + <Link style={{paddingLeft:'38px'}} + to={"/courses/1309/graduation_tasks/16455/67/setting?tab=3"}>设置</Link> + + {/*<a className={"fr color-blue font-16"}>导出成绩</a>*/} + {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>:""}*/} + {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.zip"} className={"fr color-blue font-16"}>导出作品附件</a>:""}*/} + + <style> + { ` + .drop_down_menu{ + height: 118px; + left:0px; + width: 121px; + } + .drop_down_menu li { + overflow: visible; + width: 121px; + } + .drop_down_menu li a{ + padding: 0px; + font-size: 14px; + } + .mt19{ + margin-top:19px; + } + .drop_down_menu, .drop_down_normal{ + padding-top: 10px; + padding-bottom: 8px; + } + .drop_down_menu li .color-dark{ + color: #666 !important; + } + `} + </style> + {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mr20 mt20" style={{"paddingLeft":"0px"}}> + 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> + <ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}> + <li><a onClick={()=>this.confirmysl("/graduation_tasks/67/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> + <li><a onClick={()=>this.confirmysl("/graduation_tasks/67/tasks_list.zip")} className="color-dark">导出作品附件</a></li> + </ul> + </li>:""} + + {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} + {/* {this.props.isAdmin()?questionslist.status===1? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} + {this.props.isAdmin()?questionslist.status===0? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a>:"":""} */} + <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a> + <a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a> + {this.props.isAdmin()?<a className={"fr color-blue font-16"} href={"/courses/1309/graduation_tasks/67/edit"}>编辑任务</a>:""} + </div> + </div> + <Switch {...this.props}> + + <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/setting" + render={ + (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} />) + } + ></Route> + + + <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/questions" + render={ + (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} />) + }></Route> + + </Switch> + </div> + </div> + ) + } +} +// CNotificationHOC() ( SnackbarHOC() ( TPMIndexHOC)) +export default (GraduationTaskDetail) ; \ No newline at end of file diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index 17317d6b2..20c9e93d2 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -50,6 +50,7 @@ class GraduationTaskssettingapp extends Component{ baseonproject:false, minnum:2, maxnum:5, + firstTimes:true, publish_time:null, end_time:null, allowlate:1, @@ -114,6 +115,7 @@ class GraduationTaskssettingapp extends Component{ max_nums: result.data.max_num, task_type: result.data.task_type, baseonproject: result.data.base_on_project, + firstTimes:!result.data.publish_time && !result.data.end_time, publish_time:result.data.publish_time===null||result.data.publish_time=== ""?"":moment(moment(handleDateString(result.data.publish_time))).format("YYYY-MM-DD HH:mm"), end_time:result.data.end_time===null||result.data.end_time=== ""?"":moment(moment(handleDateString(result.data.end_time))).format("YYYY-MM-DD HH:mm"), allowlate: result.data.allow_late, @@ -199,41 +201,43 @@ class GraduationTaskssettingapp extends Component{ maxnum:parseInt(e.target.value) }) } - } - - } onChangeTimepublish= (date, dateString) => { - - - let endtime; - if(date===null){ - this.setState({ - publish_time:null, - end_time:null, - latetime:null - }) - }else{ - - endtime= moment(moment(handleDateString(dateString))).add(1, 'months').format("YYYY-MM-DD HH:mm") - let {allowlate}=this.state; - if(allowlate===true||allowlate===1){ - this.setState({ - publish_time:moment(moment(handleDateString(dateString))).format("YYYY-MM-DD HH:mm"), - end_time:endtime, - latetime:moment(moment(handleDateString(endtime))).add(1, 'months').format("YYYY-MM-DD HH:mm"), - }) - }else{ - this.setState({ - publish_time:moment(moment(handleDateString(dateString))).format("YYYY-MM-DD HH:mm"), - end_time:endtime - }) - } - } - + let endtime; + if(date===null){ + this.setState({ + publish_time:null, + end_time:null, + latetime:null + }) + }else{ + let { firstTimes } = this.state; + // 判断是否是第一次设置 + this.setState({ + publish_time:moment(moment(handleDateString(dateString))).format("YYYY-MM-DD HH:mm"), + publishTimetypes:false + }) + if(firstTimes){ + endtime= moment(moment(handleDateString(dateString))).add(1, 'months').format("YYYY-MM-DD HH:mm") + let {allowlate}=this.state; + this.setState({ + firstTimes:undefined + }) + if(allowlate===true||allowlate===1){ + this.setState({ + end_time:endtime, + latetime:moment(moment(handleDateString(endtime))).add(1, 'months').format("YYYY-MM-DD HH:mm"), + }) + }else{ + this.setState({ + end_time:endtime + }) + } + } + } } @@ -245,21 +249,24 @@ class GraduationTaskssettingapp extends Component{ latetime:null }) }else{ - let {allowlate}=this.state; - if(allowlate===true||allowlate===1){ - this.setState({ - end_time:moment(moment(handleDateString(dateString))).format("YYYY-MM-DD HH:mm"), - latetime:moment(moment(handleDateString(dateString))).add(1, 'months').format("YYYY-MM-DD HH:mm"), - }) - }else{ + let { firstTimes } = this.state; + this.setState({ + end_time:moment(moment(handleDateString(dateString))).format("YYYY-MM-DD HH:mm"), + endTimetypes:false + }) + // 判断是否是第一次设置 + if(firstTimes){ this.setState({ - end_time:moment(moment(handleDateString(dateString))).format("YYYY-MM-DD HH:mm"), + firstTimes:undefined }) + let {allowlate}=this.state; + if(allowlate===true||allowlate===1){ + this.setState({ + latetime:moment(moment(handleDateString(dateString))).add(1, 'months').format("YYYY-MM-DD HH:mm"), + }) + } } - } - - } onChangeTimelatetime=(date, dateString)=>{ @@ -1175,7 +1182,7 @@ class GraduationTaskssettingapp extends Component{ - <div className={"h20 mb30 ml30"} > + <div className={"ml30"} > <span>发布时间:</span> <Tooltip placement="bottom" title={this.props.isAdmin()===true?starttimetype===true?"时间已过,不能再修改":"":""}> <span> @@ -1213,7 +1220,7 @@ class GraduationTaskssettingapp extends Component{ {this.state.publishTimetypesval} </div>:""} - <div className={"h20 mb30 ml30"} > + <div className={"mt10 ml30"} > <span>截止时间:</span> <Tooltip placement="bottom" title={this.props.isSuperAdmin()===true?"":this.props.isAdmin()===true?endtimetype===true?"时间已过,不能再修改":"":""}> <span> diff --git a/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js b/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js index c3170bf3a..96d06442e 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js @@ -330,7 +330,7 @@ class ShixunhomeWorkItem extends Component{ <div className="cl"></div> <p className="color-grey panel-lightgrey mt16 fl"> - <span className="mr50"> + <span className="mr50 df"> {/* <a href="/users/innov" className="panel-name-small hide fl mr15 mr30 color-grey3">{discussMessage.author.name}</a> */} { discussMessage.author && <span className="mr15 color-grey-3">{discussMessage.author}</span> } {discussMessage.commit_count===undefined?"":<span className="mr15 color-grey9">{discussMessage.commit_count} 已交</span>} @@ -357,6 +357,10 @@ class ShixunhomeWorkItem extends Component{ : <span className="mr15 color-grey9">{discussMessage.status_time}</span> } + { + discussMessage.upper_category_name && <span className="mr15 color-grey9 task-hide" style={{"maxWidth":"280px"}}>{discussMessage.upper_category_name}</span> + } + {/* { discussMessage.replies_count != 0 && <span className="mr15 color-grey9">{discussMessage.replies_count} 回复</span> } { discussMessage.praise_num != 0 && <span className="mr15 color-grey9">{discussMessage.praise_num} 点赞</span> } @@ -378,7 +382,7 @@ class ShixunhomeWorkItem extends Component{ ` } </style> - {this.props.isAdmin?<div onClick={(event)=>this.stopPro(event)} className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"44px","display":"block"}}> + {this.props.isAdmin?<div onClick={(event)=>this.stopPro(event)} className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"46px","display":"block"}}> <Link className="btn colorblue font-16" to={"/shixuns/"+discussMessage.shixun_identifier+"/challenges"} target={"_blank"}>实训详情</Link> {this.props.isAdminOrCreator()?<a onClick={(event)=>this.editname(discussMessage.name,discussMessage.homework_id,event)} 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>*/} From 541ec0340a487a25012e192a3d7cacb54455905f Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Tue, 3 Sep 2019 10:53:31 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=AF=95=E8=AE=BE=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/courses/Index.js | 3 +- .../graduation/tasks/GraduationTaskDetail.js | 127 ++++++++++++++---- .../tasks/GraduationTaskssetting.js | 28 ++-- .../tasks/GraduationTaskssettinglist.js | 97 +------------ .../tasks/GraduationTaskssettingquestions.js | 20 +-- 5 files changed, 128 insertions(+), 147 deletions(-) diff --git a/public/react/src/modules/courses/Index.js b/public/react/src/modules/courses/Index.js index 2da14c3fd..c6f424303 100644 --- a/public/react/src/modules/courses/Index.js +++ b/public/react/src/modules/courses/Index.js @@ -578,14 +578,13 @@ class CoursesIndex extends Component{ }></Route> */} - <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/list" + <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id" render={ (props) => (<GraduationTaskssettinglist {...this.props} {...props} {...this.state} />) } ></Route> - {/* 修改毕设任务 https://www.trustie.net/issues/19981 */} <Route path="/courses/:coursesId/graduation_tasks/:category_id/edit" render={ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index acd28d7fa..c071024bb 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -17,16 +17,21 @@ import "../../css/Courses.css" import Trialapplication from '../../../login/Trialapplication' -//毕设任务列表任务列表 +//毕设描述 const GraduationTasksquestions= Loadable({ loader: () => import('./GraduationTaskssettingquestions'), loading: Loading, }) -//毕设任务列表设置 +//毕设任务设置 const GraduationTaskssetting=Loadable({ loader: () => import('./GraduationTaskssetting'), loading: Loading, }) +//毕设任务列表 +const GraduationTaskslist=Loadable({ + loader: () => import('./GraduationTaskssettinglist'), + loading: Loading, +}) class GraduationTaskDetail extends Component{ constructor(props){ @@ -44,18 +49,36 @@ class GraduationTaskDetail extends Component{ Cancel:undefined, Saves:undefined, Topvalright:undefined, - Botvalleft:undefined + Botvalleft:undefined, + course_groupslist:undefined, + course_groups:undefined, + questionslist:undefined } } - componentDidMount =()=>{ - - } + componentDidMount(){ + this.getdatas() + } + getdatas=()=>{ + const task_Id = this.props.match.params.task_Id; + let url="/graduation_tasks/"+task_Id+".json"; + + axios.get(url).then((result)=>{ + if(result.status===200){ + this.setState({ + questionslist:result.data + }) + + } + }).catch((error)=>{ + console.log(error) + }) + } //返回 goback=()=>{ // let courseId=this.props.match.params.coursesId; // let category_id=this.props.match.params.category_id; - // window.location.href="/courses/1309/graduation_tasks/"+category_id; + // window.location.href="/courses/"+courseId+"/graduation_tasks/"+category_id; // let courseId = this.props.match.params.coursesId; // if(courseId===undefined){ // this.props.history.push("/courses"); @@ -87,6 +110,36 @@ class GraduationTaskDetail extends Component{ Saves:this.homepublish, }) } + // 确定立即发布 + homepublish=(ids,endtime)=>{ + this.cancelmodel(); + let task_Id=this.props.match.params.task_Id; + const cid = this.props.match.params.coursesId; + // let url = `/courses/${cid}/graduation_tasks/publish_task.json`; + + let url="/courses/"+cid+"/graduation_tasks/publish_task.json" + axios.post(url,{ + task_ids:[task_Id], + group_ids: this.state.course_groupslist, + end_time:endtime, + }).then((response)=>{ + if (response.data.status == 0) { + this.getdatas() + this.props.showNotification(response.data.message); + this.searchValue(); + + this.setState({ + // Modalstopval:response.data.message, + // ModalSave:this.cancelmodel, + // Loadtype:true, + course_groupslist:[], + checkAllValue:false + }) + } + }).catch((error)=>{ + + }) + } // 立即截止 end=()=>{ // this.homeworkstart() @@ -117,11 +170,25 @@ class GraduationTaskDetail extends Component{ }) } + getcourse_groupslist=(id)=>{ + this.setState({ + course_groupslist:id + }) + } + render(){ + + let courseId=this.props.match.params.coursesId; + let category_id=this.props.match.params.category_id; + let task_Id=this.props.match.params.task_Id; + let { tab } = this.props; + let { questionslist } = this.state return( <div className="newMain clearfix"> - <div className={"educontent mb20"}> + { + questionslist && + <div className={"educontent mb20"}> <HomeworkModal starttimes={this.state.starttimes} typs={this.state.typs} @@ -143,28 +210,28 @@ class GraduationTaskDetail extends Component{ /> <p className="clearfix mt10"> - <a onClick={this.goback} className="color-grey-9 fl">计算机基础····</a> + <a onClick={this.goback} className="color-grey-9 fl">{questionslist.course_name}</a> <span className="color-grey-9 fl ml3 mr3">></span> - <Link to={`/courses/1309/graduation_tasks/14655`} className="color-grey-9 fl">毕设任务</Link> + <Link to={`/courses/${courseId}/graduation_tasks/${category_id}`} className="color-grey-9 fl">{questionslist.graduation_name}</Link> <span className="color-grey-9 fl ml3 mr3">></span> <span className="color-grey-6">任务详情</span> </p> <div className="clearfix mt20 mb20 lineh-25 linbox"> <p className=" fl color-black summaryname"> - <Link to={`/courses/1309/graduation_tasks/14655`} className="color-grey-3">测试第一次设置发布时间时截止时间会联动,其它情况不联动</Link> + <Link to={`/courses/${courseId}/graduation_tasks/${category_id}`} className="color-grey-3">{questionslist.task_name}</Link> </p> <CoursesListType - typelist={['补交中']} + typelist={questionslist.task_status} /> <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> </div> <div className="stud-class-set bor-bottom-greyE"> <div className="mt10 clearfix edu-back-white poll_list pl20"> - <Link to={"/courses/1309/graduation_tasks/16455/67/list"}>任务列表</Link> - <Link className="active" to={"/courses/1309/graduation_tasks/16455/67/questions"}>毕设描述</Link> - <Link style={{paddingLeft:'38px'}} - to={"/courses/1309/graduation_tasks/16455/67/setting?tab=3"}>设置</Link> + <Link className={tab && tab == "list" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> + <Link className={tab && tab == "questions" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> + <Link className={tab && tab == "setting" ? "active" : ""} style={{paddingLeft:'38px'}} + to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> {/*<a className={"fr color-blue font-16"}>导出成绩</a>*/} {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>:""}*/} @@ -200,35 +267,41 @@ class GraduationTaskDetail extends Component{ {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mr20 mt20" style={{"paddingLeft":"0px"}}> 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> <ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}> - <li><a onClick={()=>this.confirmysl("/graduation_tasks/67/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> - <li><a onClick={()=>this.confirmysl("/graduation_tasks/67/tasks_list.zip")} className="color-dark">导出作品附件</a></li> + <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> + <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.zip")} className="color-dark">导出作品附件</a></li> </ul> </li>:""} {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} - {/* {this.props.isAdmin()?questionslist.status===1? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} - {this.props.isAdmin()?questionslist.status===0? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a>:"":""} */} - <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a> - <a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a> - {this.props.isAdmin()?<a className={"fr color-blue font-16"} href={"/courses/1309/graduation_tasks/67/edit"}>编辑任务</a>:""} + { this.props.isAdmin() ? questionslist.status===1 ? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a> : "" : "" } + { this.props.isAdmin() ? questionslist.status===0 ? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a> : "" : "" } + + { this.props.isAdmin() ? <a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a> : "" } </div> </div> <Switch {...this.props}> - <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/setting" + <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/list" render={ - (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} />) + (props) => (<GraduationTaskslist {...this.props} {...props} {...this.state} tab={`list`}/>) } ></Route> + <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/setting" + render={ + (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} tab={`setting`}/>) + } + ></Route> - <Route path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/questions" + <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/questions" render={ - (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} />) + (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} tab={`setting`}/>) }></Route> </Switch> </div> + } + </div> ) } diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index 20c9e93d2..ffd9f57e6 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -1064,11 +1064,11 @@ class GraduationTaskssettingapp extends Component{ <div className="newMain clearfix"> <div className={"educontent mb20"}> - <p className="clearfix mt10"> + {/* <p className="clearfix mt10"> <a onClick={this.goback} className="color-grey-9 fl">{coursename}</a> <span className="color-grey-9 fl ml3 mr3">></span> <Link to={"/courses/"+courseId+"/graduation_tasks/"+settingdata.graduation_id} className="color-grey-9 fl">毕设任务</Link> - <span className="color-grey-9 fl ml3 mr3">></span> + <span className="color-grey-9 fl ml3 mr3">></span> */} {/*{taskname===""?"":*/} {/*<WordsBtn style="grey" className="fl">*/} @@ -1077,10 +1077,10 @@ class GraduationTaskssettingapp extends Component{ {/*</WordsBtn>*/} {/*}*/} - <span className="color-grey-6">任务详情</span> - </p> + {/* <span className="color-grey-6">任务详情</span> + </p> */} - <div className="clearfix mt20 mb20 lineh-25 linbox"> + {/* <div className="clearfix mt20 mb20 lineh-25 linbox"> <p className=" fl color-black lineh-25 summaryname"> <Link to={"/courses/"+courseId+"/graduation"+"/graduation_tasks/"} className="color-grey-3">{taskname}</Link> </p> @@ -1088,20 +1088,20 @@ class GraduationTaskssettingapp extends Component{ typelist={task_status} /> <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> - </div> + </div> */} - <div className="stud-class-set bor-bottom-greyE" id={"publishtimestart"}> - <div className="mt10 clearfix edu-back-white poll_list pl20" id={"publishtimeend"}> + {/* <div className="stud-class-set bor-bottom-greyE" id={"publishtimestart"}> + <div className="mt10 clearfix edu-back-white poll_list pl20" id={"publishtimeend"}> */} - <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> + {/* <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> <Link className="active" style={{paddingLeft:'38px'}} - to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> + to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> */} {/*<a className={"fr color-blue font-16"}>导出</a>*/} - <style> + {/* <style> { ` .drop_down_menu{ height: 118px; @@ -1134,16 +1134,16 @@ class GraduationTaskssettingapp extends Component{ <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.zip")} className="color-dark">导出作品附件</a></li> </ul> - </li>:""} + </li>:""} */} {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>:""}*/} {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.zip"} className={"fr color-blue font-16"}>导出作品附件</a>:""}*/} {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} - {this.props.isAdmin()?settingdata.status===1?<a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} + {/* {this.props.isAdmin()?settingdata.status===1?<a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} {this.props.isAdmin()?settingdata.status===0?<a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a>:"":""} {this.props.isAdmin()?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a>:""} </div> - </div> + </div> */} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index 7e60b995c..e0ba1e95a 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -1090,98 +1090,11 @@ class GraduationTaskssettinglist extends Component{ /> - {taskslistdata&&taskslistdata? + { taskslistdata && taskslistdata? // 教师列表 - this.props.isAdmin()?<div className="newMain clearfix"> - <div className={"educontent mb20"}> - - <p className="clearfix mt10"> - <a className="color-grey-9 fl" onClick={this.goback}>{taskslistdata.course_name}</a> - <span className="color-grey-9 fl ml3 mr3">></span> - <Link className="color-grey-9 fl" to={"/courses/"+courseId+"/graduation_tasks/"+taskslistdata.graduation_id}>{taskslistdata.graduation_name}</Link> - <span className="color-grey-9 fl ml3 mr3">></span> - <span className="color-grey-6 fl">任务详情</span> - </p> - - <div className="clearfix lineh-25 mt20 mb20 linbox"> - <p className=" fl color-black summaryname lineh-25 "> <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id} className="color-grey-3">{taskslistdata.task_name}</Link></p> - <CoursesListType - typelist={taskslistdata.task_status} - /> - <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> - </div> - - - <div className="stud-class-set bor-bottom-greyE"> - <div className="mt10 clearfix edu-back-white poll_list pl20"> - {/*<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>*/} - {/*<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.zip"} className={"fr color-blue font-16"}>导出作品附件</a>*/} - <Link className="active" to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> - <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> - <Link style={{paddingLeft:'38px'}} - to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> - - {/*<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a>*/} - {/*<a className={"fr color-blue font-16"} onClick={this.end}>立即截止</a>*/} - - - {/*<a className={"fr color-blue font-16"}>导出作品附件</a>*/} - <style> - { ` - .drop_down_menu{ - height: 118px; - left:0px; - width: 121px; - } - .drop_down_menu li { - overflow: visible; - width: 121px; - } - .drop_down_menu li a{ - padding: 0px; - font-size: 14px; - } - .mt19{ - margin-top:19px; - } - .drop_down_menu, .drop_down_normal{ - padding-top: 10px; - padding-bottom: 8px; - } - .drop_down_menu li .color-dark{ - color: #666 !important; - } - `} - </style> - {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mr20 mt20" style={{"paddingLeft":"0px"}}> - 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> - <ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}> - <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.xlsx")} className="color-dark">学生成绩</a></li> - <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.zip")} className="color-dark">作品附件</a></li> - </ul> - </li>:""} - - {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} - {taskslistdata.status===1? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:""} - {taskslistdata.status===0?<a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a>:""} - <a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a> - - </div> - </div> - - - + this.props.isAdmin()? <div className="stud-class-set"> - <div className="clearfix edu-back-white" > - {/*提示*/} - {/*<Modals*/} - {/*modalsType={Modalstype}*/} - {/*modalsTopval={Modalstopval}*/} - {/*modalCancel={ModalCancel}*/} - {/*modalSave={ModalSave}*/} - {/*/>*/} - <ul className="clearfix" style={{padding:'20px 40px 10px 40px'}}> <li className="clearfix"> @@ -1384,11 +1297,7 @@ class GraduationTaskssettinglist extends Component{ </div> : "" } - </div> - - - </div> - </div>: + </div>: // 学生列表 this.props.isStudent()||this.props.isNotMember()? <div className="newMain clearfix"> diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js index c40c9aa54..6751837df 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js @@ -307,7 +307,7 @@ class GraduationTasksquestions extends Component{ {questionslist&&questionslist?<div className="newMain clearfix"> <div className={"educontent mb20"}> - <p className="clearfix mt10"> + {/* <p className="clearfix mt10"> <a onClick={this.goback} className="color-grey-9 fl">{questionslist.course_name}</a> <span className="color-grey-9 fl ml3 mr3">></span> <Link to={"/courses/"+courseId+"/graduation_tasks/"+questionslist.graduation_id} className="color-grey-9 fl">{questionslist.graduation_name}</Link> @@ -323,22 +323,22 @@ class GraduationTasksquestions extends Component{ typelist={questionslist.task_status} /> <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> - </div> + </div> */} - <div className="stud-class-set bor-bottom-greyE"> - <div className="mt10 clearfix edu-back-white poll_list pl20"> + {/* <div className="stud-class-set bor-bottom-greyE"> + <div className="mt10 clearfix edu-back-white poll_list pl20"> */} - <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> + {/* <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> <Link className="active" to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> <Link style={{paddingLeft:'38px'}} - to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> + to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> */} {/*<a className={"fr color-blue font-16"}>导出成绩</a>*/} {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>:""}*/} {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.zip"} className={"fr color-blue font-16"}>导出作品附件</a>:""}*/} - <style> + {/* <style> { ` .drop_down_menu{ height: 118px; @@ -371,14 +371,14 @@ class GraduationTasksquestions extends Component{ <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.zip")} className="color-dark">导出作品附件</a></li> </ul> - </li>:""} + </li>:""} */} {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} - {this.props.isAdmin()?questionslist.status===1? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} + {/* {this.props.isAdmin()?questionslist.status===1? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} {this.props.isAdmin()?questionslist.status===0? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a>:"":""} {this.props.isAdmin()?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a>:""} </div> - </div> + </div> */} From 5274cd144736d79966ddab0eeb520792f9f5e789 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Tue, 3 Sep 2019 16:18:42 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E6=AF=95=E8=AE=BE=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../graduation/tasks/GraduationTaskDetail.js | 168 +++++++++++++-- .../tasks/GraduationTaskssetting.js | 199 +----------------- .../tasks/GraduationTaskssettinglist.js | 194 +++++------------ .../tasks/GraduationTaskssettingquestions.js | 13 +- 4 files changed, 220 insertions(+), 354 deletions(-) diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index c071024bb..18870a1be 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -7,14 +7,14 @@ import Loading from '../../../../Loading'; import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; import axios from 'axios'; import HomeworkModal from "../../coursesPublic/HomeworkModal"; - +import AccessoryModal from "../../coursesPublic/AccessoryModal"; +import Associationmodel from '../../coursesPublic/Associationmodel'; import CoursesListType from '../../coursesPublic/CoursesListType'; import moment from 'moment'; import "../../css/members.css" import "../../css/Courses.css" - -import Trialapplication from '../../../login/Trialapplication' +import Modals from '../../../modals/Modals'; //毕设描述 @@ -52,7 +52,13 @@ class GraduationTaskDetail extends Component{ Botvalleft:undefined, course_groupslist:undefined, course_groups:undefined, - questionslist:undefined + questionslist:undefined, + tab:"list", + visibles:undefined, + Modalstype:undefined, + Modalstopval:undefined, + ModalCancel:undefined, + ModalSave:undefined } } componentDidMount(){ @@ -126,8 +132,7 @@ class GraduationTaskDetail extends Component{ if (response.data.status == 0) { this.getdatas() this.props.showNotification(response.data.message); - this.searchValue(); - + this.setState({ // Modalstopval:response.data.message, // ModalSave:this.cancelmodel, @@ -140,6 +145,13 @@ class GraduationTaskDetail extends Component{ }) } + + // 刷新 + resetList=()=>{ + this.getdatas(); + this.child && this.child.searchValue(); + } + // 立即截止 end=()=>{ // this.homeworkstart() @@ -176,14 +188,93 @@ class GraduationTaskDetail extends Component{ }) } + setTab = (tab) =>{ + this.setState({ + tab + }) + } + // 关联项目 + AssociationItems=()=>{ + this.setState({ + visibles:true + }) + } + Cancel=()=>{ + this.setState({ + visibles:false + }) + } + // 取消关联 + cannelAssociation=()=>{ + this.setState({ + Modalstype:true, + Modalstopval:"确定要取消该项目关联?", + ModalCancel:this.cannerassocition, + ModalSave:this.savetassociton + }) + } + savetassociton=()=>{ + this.cannerassocition(); + let {questionslist}=this.state; + let url = "/graduation_tasks/"+questionslist.task_id+"/graduation_works/cancel_relate_project.json"; + console.log(url) + axios.get(url).then((result)=>{ + if(result.data.status===0){ + this.resetList(); + } + }).catch((error)=>{ + console.log(error) + }) + + } + cannerassocition=()=>{ + this.setState({ + Modalstype:false, + Modalstopval:"", + ModalCancel:"", + ModalSave:"", + loadtype:false, + visibles:false + }) + } + // 补交附件 + handaccessory=()=>{ + // let {taskslistdata}=this.state; + // let courseId=this.props.match.params.coursesId; + // + // let url="/courses/"+courseId+"/graduation_tasks/"+taskslistdata.work_id+"/appraise" + // + // window.location.href=url; + this.setState({ + avisible:true + }) + } + Cancelvisible=()=>{ + this.setState({ + avisible:false + }) + } + + bindRef = ref => { this.child = ref } ; render(){ let courseId=this.props.match.params.coursesId; let category_id=this.props.match.params.category_id; let task_Id=this.props.match.params.task_Id; - let { tab } = this.props; - let { questionslist } = this.state + let { + questionslist , + tab , + visibles , + Modalstype, + Modalstopval, + ModalCancel, + ModalSave + } = this.state + + const commom = { + setTab:this.setTab + } return( <div className="newMain clearfix"> { @@ -208,7 +299,38 @@ class GraduationTaskDetail extends Component{ modaltype={this.state.modaltype} getcourse_groupslist={(id) => this.getcourse_groupslist(id)} /> - + {/*关联项目*/} + {visibles===true? + <Associationmodel + modalname={"关联项目"} + visible={visibles} + Cancel={()=>this.Cancel()} + taskid={ questionslist && questionslist.task_id } + funlist={this.resetList} + /> + :""} + + {this.state.avisible===true?<AccessoryModal + {...this.props} + modalname={"补交附件"} + visible={this.state.avisible} + Cancelname={"取消"} + Savesname={"确认"} + Cancel={this.Cancelvisible} + categoryid={questionslist.work_id} + setupdate={this.resetList} + />:""} + {/*提示*/} + <Modals + modalsType={Modalstype} + modalsTopval={Modalstopval} + modalCancel={ModalCancel} + modalSave={ModalSave} + closable={false} + footer={null} + destroyOnClose={true} + centered={true} + /> <p className="clearfix mt10"> <a onClick={this.goback} className="color-grey-9 fl">{questionslist.course_name}</a> <span className="color-grey-9 fl ml3 mr3">></span> @@ -226,7 +348,7 @@ class GraduationTaskDetail extends Component{ <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> </div> <div className="stud-class-set bor-bottom-greyE"> - <div className="mt10 clearfix edu-back-white poll_list pl20"> + <div className="clearfix edu-back-white poll_list pl20"> <Link className={tab && tab == "list" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> <Link className={tab && tab == "questions" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> @@ -261,7 +383,10 @@ class GraduationTaskDetail extends Component{ } .drop_down_menu li .color-dark{ color: #666 !important; - } + } + .linbox{ + height: 26px; + } `} </style> {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mr20 mt20" style={{"paddingLeft":"0px"}}> @@ -271,6 +396,21 @@ class GraduationTaskDetail extends Component{ <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.zip")} className="color-dark">导出作品附件</a></li> </ul> </li>:""} + {questionslist.work_status===undefined||questionslist.work_status===null||questionslist.work_status.length===0?"":questionslist.work_status.map((item,key)=>{ + return( + <span key={key}> + {item==="提交作品"?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/works/new"}>提交作品</a>:""} + {item==="补交作品"?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/works/new"}>补交作品</a>:""} + {item==="修改作品"?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+questionslist.work_id+"/works/edit"}>修改作品</a>:""} + {item==="查看作品"?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+questionslist.work_id+"/works/edit"}>查看作品</a> :""} + {item==="创建项目"?<a className={"fr color-blue font-16"} href={'/projects/new'} target="_blank">创建项目</a>:""} + {item==="关联项目"?<a className={"fr color-blue font-16"} onClick={this.AssociationItems}>关联项目</a>:""} + {item==="取消关联"?<a className={"fr color-blue font-16"} onClick={this.cannelAssociation}>取消关联</a>:""} + {item==="补交附件"?<a className={"fr color-blue font-16"} onClick={this.handaccessory}>补交附件</a>:""} + </span> + + ) + })} {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} { this.props.isAdmin() ? questionslist.status===1 ? <a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a> : "" : "" } @@ -283,19 +423,19 @@ class GraduationTaskDetail extends Component{ <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/list" render={ - (props) => (<GraduationTaskslist {...this.props} {...props} {...this.state} tab={`list`}/>) + (props) => (<GraduationTaskslist {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} tab={`list`}/>) } ></Route> <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/setting" render={ - (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} tab={`setting`}/>) + (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} {...commom} tab={`setting`}/>) } ></Route> <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/:task_Id/questions" render={ - (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} tab={`setting`}/>) + (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} {...commom} tab={`questions`}/>) }></Route> </Switch> diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index ffd9f57e6..95d7a64cd 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -151,7 +151,11 @@ class GraduationTaskssettingapp extends Component{ this.getsettings(); if(this.props.isAdmin()===true&&isNaN(id)){ this.editSetting() - } + } + + let tab = this.props.tab; + this.props.setTab && this.props.setTab(tab); + } @@ -406,46 +410,6 @@ class GraduationTaskssettingapp extends Component{ opergrade:e.target.checked }) } - //立即发布 - publish=()=>{ - let starttime= this.props.getNowFormatDates(1,1); - let endtime=this.props.getNowFormatDates(2,1); - // this.homeworkstart() - this.setState({ - modalname:"立即发布", - visibles:true, - Topval:"学生将立即收到毕设任务", - // Botvalleft:"点击修改", - // Botval:`本操作只对"未发布"的分班有效`, - starttime:moment(moment(new Date())).format("YYYY-MM-DD HH:mm") , - starttimes:this.props.getNowFormatDates(1), - typs:"start", - endtime:endtime, - Cancelname:"暂不发布", - Savesname:"立即发布", - Cancel:this.cancelmodel, - Saves:this.homepublish, - }) - - } - //立即发布 - homeworkstart=()=>{ - let coursesId=this.props.match.params.coursesId; - let url="/courses/"+coursesId+"/all_course_groups.json"; - - axios.get(url).then((response) => { - - if(response.status===200){ - this.setState({ - modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, - course_groups:response.data.course_groups, - }) - } - }).catch((error) => { - console.log(error) - }); - - } homepublish=(ids,endtime)=>{ let task_Id=this.props.match.params.task_Id; @@ -771,43 +735,12 @@ class GraduationTaskssettingapp extends Component{ }) } - goback=()=>{ - // let courseId=this.props.match.params.coursesId; - // if(courseId===undefined){ - // this.props.history.push("/courses"); - // }else{ - // this.props.history.push(this.props.current_user.first_category_url); - // } - // this.props.history.goBack() - // this.props.history.replace(this.props.current_user.first_category_url); - this.props.history.replace(`/courses/${this.state.settingdata.course_id}/graduation_tasks/${this.state.settingdata.graduation_id}`); - - } - isgoback=()=>{ this.getsettings(); this.setState({ flagPageEdit: false, }) } - end=()=>{ - - this.setState({ - modalname:"立即截止", - visibles:true, - Topval:"学生将不能再提交作品", - // Botvalleft:"暂不截止", - // Botval:`本操作只对"提交中"的分班有效`, - Cancelname:"暂不截止", - Savesname:"立即截止", - Cancel:this.cancelmodel, - Saves:this.coursetaskend, - typs:"end", - }) - // this.homeworkstart() - } - - cancelmodel=()=>{ this.setState({ @@ -996,7 +929,7 @@ class GraduationTaskssettingapp extends Component{ return( <React.Fragment> - {settingdata&&settingdata? <div> + { settingdata && settingdata ? <div> {/*提示*/} <Modals modalsType={Modalstype} @@ -1005,24 +938,6 @@ class GraduationTaskssettingapp extends Component{ modalSave={ModalSave} loadtype={Loadtype} /> - - {/*/!*立即发布*!/*/} - {/*<PublishModals*/} - {/*modalname={modalname}*/} - {/*visible={visible}*/} - {/*Topval={Topval}*/} - {/*Topvalright={Topvalright}*/} - {/*Botvalleft={Botvalleft}*/} - {/*Botval={Botval}*/} - {/*starttime={starttime}*/} - {/*endtime={endtime}*/} - {/*Cancelname={Cancelname}*/} - {/*Savesname={Savesname}*/} - {/*Cancel={Cancel}*/} - {/*Saves={Saves}*/} - {/*course_groups={course_groups}*/} - {/*skipTop={this.skipTop}*/} - {/*/>*/} <DownloadMessageysl {...this.props} value={this.state.DownloadMessageval} @@ -1056,97 +971,8 @@ class GraduationTaskssettingapp extends Component{ .ant-input{ height:40px; } - .linbox{ - height: 26px; - } ` }</style> - <div className="newMain clearfix"> - <div className={"educontent mb20"}> - - {/* <p className="clearfix mt10"> - <a onClick={this.goback} className="color-grey-9 fl">{coursename}</a> - <span className="color-grey-9 fl ml3 mr3">></span> - <Link to={"/courses/"+courseId+"/graduation_tasks/"+settingdata.graduation_id} className="color-grey-9 fl">毕设任务</Link> - <span className="color-grey-9 fl ml3 mr3">></span> */} - - {/*{taskname===""?"":*/} - {/*<WordsBtn style="grey" className="fl">*/} - {/*<Link to={"/courses/"+courseId+"/graduation"+"/graduation_tasks/"} className="color-grey-6">{taskname}</Link>*/} - {/*<span className="color-grey-c ml3 mr3">></span>*/} - {/*</WordsBtn>*/} - {/*}*/} - - {/* <span className="color-grey-6">任务详情</span> - </p> */} - - {/* <div className="clearfix mt20 mb20 lineh-25 linbox"> - <p className=" fl color-black lineh-25 summaryname"> - <Link to={"/courses/"+courseId+"/graduation"+"/graduation_tasks/"} className="color-grey-3">{taskname}</Link> - </p> - <CoursesListType - typelist={task_status} - /> - <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> - </div> */} - - - {/* <div className="stud-class-set bor-bottom-greyE" id={"publishtimestart"}> - <div className="mt10 clearfix edu-back-white poll_list pl20" id={"publishtimeend"}> */} - - {/* <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> - <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> - <Link className="active" - style={{paddingLeft:'38px'}} - to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> */} - - {/*<a className={"fr color-blue font-16"}>导出</a>*/} - {/* <style> - { ` - .drop_down_menu{ - height: 118px; - left:0px; - width: 121px; - } - .drop_down_menu li { - overflow: visible; - width: 121px; - } - .drop_down_menu li a{ - padding: 0px; - font-size: 14px; - } - .mt19{ - margin-top:19px; - } - .drop_down_menu, .drop_down_normal{ - padding-top: 10px; - padding-bottom: 8px; - } - .drop_down_menu li .color-dark{ - color: #666 !important; - } - `} - </style> - {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mr20 mt20" style={{"paddingLeft":"0px"}}> - 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> - <ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}> - <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> - <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.zip")} className="color-dark">导出作品附件</a></li> - </ul> - </li>:""} */} - - {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>:""}*/} - {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.zip"} className={"fr color-blue font-16"}>导出作品附件</a>:""}*/} - {/*<a className={"fr color-blue font-16"}>项目在线质量检测</a>*/} - {/* {this.props.isAdmin()?settingdata.status===1?<a className={"fr color-blue font-16 mr20"} onClick={() => { this.end()} }>立即截止</a>:"":""} - {this.props.isAdmin()?settingdata.status===0?<a className={"fr color-blue font-16 mr20"} onClick={() => { this.publish()} }>立即发布</a>:"":""} - {this.props.isAdmin()?<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a>:""} - </div> - </div> */} - - - <Form id={"starttime"}> { !flagPageEdit && this.props.isAdmin() === true ? @@ -1313,11 +1139,6 @@ class GraduationTaskssettingapp extends Component{ </div> - {/*<div className="stud-class-set bor-bottom-greyE pd20 edu-back-white pl36">*/} - {/*<div className={" font-16 color-dark h20 mb20"}>项目质量检测 </div>*/} - - - {/*</div>*/} <div className="stud-class-set bor-bottom-greyE pd20 edu-back-white pl36"> <div className={" font-16 color-dark h20 mb20"}>评分设置 </div> @@ -1444,14 +1265,8 @@ class GraduationTaskssettingapp extends Component{ {/*<Link to={"/courses/"+courseId+"/graduation_tasks/"+position+"/"+category_id+coursesearch} className="defalutCancelbtn fl">取消</Link>*/} <a onClick={this.isgoback} className="defalutCancelbtn fl">取消</a> </div>:"":""} - </div> - </div> - - + </div>:""} - - - </React.Fragment> ) diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index e0ba1e95a..047946a6e 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -1,7 +1,7 @@ import React,{Component} from "React"; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Pagination, Table, Divider, Tag,Tooltip} from "antd"; import {Link} from 'react-router-dom'; -import { getImageUrl,WordsBtn } from 'educoder'; +import { getImageUrl , NoneData } from 'educoder'; import axios from 'axios'; import moment from 'moment'; import HomeworkModal from "../../coursesPublic/HomeworkModal"; @@ -13,6 +13,7 @@ import AllocationModal from "../../coursesPublic/AllocationModal"; import Associationmodel from '../../coursesPublic/Associationmodel'; import AccessoryModal from "../../coursesPublic/AccessoryModal"; + const CheckboxGroup = Checkbox.Group; const Search = Input.Search; const qs = require('qs'); @@ -54,8 +55,18 @@ class GraduationTaskssettinglist extends Component{ } componentDidMount(){ + let tab = this.props.tab; + this.props.setTab && this.props.setTab(tab); + + let{teacher_comment,task_status,course_group,cross_comment,order,b_order,search}=this.state; this.seacthdata(teacher_comment,task_status,course_group,cross_comment,order,b_order,search,this.state.page); + + try{ + this.props.triggerRef(this) + }catch(e){ + + } } goback=()=>{ @@ -837,36 +848,22 @@ class GraduationTaskssettinglist extends Component{ <div> {this.props.isAdmin()?operation.map((tag,key) => { return( - <div key={key}> - {/*<Tooltip placement="bottom" title={tag.name==="分配"?"指定该作品的交叉评阅人":tag.name==="调分"?<pre>调整学生最终成绩<br/>*/} - {/*其它历史评分将全部失效</pre>:""}>*/} - - {/*{tag.name==="评阅"?tag.status===0?"--":<a style={{color:'#4CACFF'}} href={"/courses/"+courseId+"/graduation_tasks/"+tag.id+"/appraise"} >*/} - {/*{tag.name}*/} - {/*</a>*/} - {/*:*/} - {/*<a style={{color:tag.name==="调分"?"#000":'#4CACFF'}}*/} - {/*onClick={tag.name==="调分"?()=>this.showModulationtype(tag.id):tag.name==="分配"?()=>this.showAllocationModal(tag.id):""}>*/} - {/*{tag.status===0?"":tag.name}*/} - {/*</a>*/} - {/*}*/} - - {/*</Tooltip>*/} - <Tooltip placement="bottom" title={tag.name==="分配"?"指定该作品的交叉评阅人":tag.name==="调分"?<pre>调整学生最终成绩<br/> - 其它历史评分将全部失效</pre>:""}> - - {tag.name==="评阅"?<a style={{color:'#4CACFF'}} href={"/courses/"+courseId+"/graduation_tasks/"+tag.id+"/appraise"} > - {tag.name} - </a> - : - <a style={{color:tag.name==="调分"?"#000":'#4CACFF'}} - onClick={tag.name==="调分"?()=>this.showModulationtype(tag.id):tag.name==="分配"?()=>this.showAllocationModal(tag.id):""}> - {tag.name} - </a> - } - - </Tooltip> - </div> + <React.Fragment> + { + tag.name && + <Tooltip key={key} placement="bottom" title={tag.name==="分配"?"指定该作品的交叉评阅人":tag.name==="调分"?<pre>调整学生最终成绩<br/>其它历史评分将全部失效</pre>:""}> + {tag.name==="评阅"?<a style={{color:'#4CACFF',padding:"0px 5px"}} href={"/courses/"+courseId+"/graduation_tasks/"+tag.id+"/appraise"} > + {tag.name} + </a> + : + <a style={{color:tag.name==="调分"?"#000":'#4CACFF',padding:"0px 5px"}} + onClick={tag.name==="调分"?()=>this.showModulationtype(tag.id):tag.name==="分配"?()=>this.showAllocationModal(tag.id):""}> + {tag.name} + </a> + } + </Tooltip> + } + </React.Fragment> ) }):""} { @@ -963,9 +960,6 @@ class GraduationTaskssettinglist extends Component{ text-overflow: ellipsis; white-space: nowrap; } - .linbox{ - height: 26px; - } .ant-table-tbody>tr>td, .ant-table-thead>tr>th{ padding: 16px 10px } @@ -1090,12 +1084,12 @@ class GraduationTaskssettinglist extends Component{ /> - { taskslistdata && taskslistdata? + { taskslistdata && taskslistdata ? // 教师列表 - this.props.isAdmin()? + this.props.isAdmin() ? <div className="stud-class-set"> <div className="clearfix edu-back-white" > - <ul className="clearfix" style={{padding:'20px 40px 10px 40px'}}> + <ul className="clearfix" style={{padding:'20px 30px 10px 30px'}}> <li className="clearfix"> <span className="fl mr10 color-grey-8">教师评阅:</span> @@ -1114,7 +1108,7 @@ class GraduationTaskssettinglist extends Component{ ) })} </CheckboxGroup> - <div className="fr mr5 search-new" style={{marginBottom:'1px'}}> + <div className="fr mr5 search-new" style={{marginBottom:'1px',marginRight:"0px"}}> <Search placeholder="请输入姓名或学号搜索" id="subject_search_input" @@ -1186,10 +1180,10 @@ class GraduationTaskssettinglist extends Component{ {taskslistdata.search_assistants&&taskslistdata.search_assistants.cross_comment.map((item,key)=>{ return( <span key={key}> - <Checkbox value={item.id} className="fl" checked={parseInt(cross_comment)===item.id?true:false} onClick={this.funcross_comment}>{item.name} - <span>({item.count})</span> - </Checkbox> - </span> + <Checkbox value={item.id} className="fl" checked={parseInt(cross_comment)===item.id?true:false} onClick={this.funcross_comment}>{item.name} + <span>({item.count})</span> + </Checkbox> + </span> ) })} @@ -1197,23 +1191,21 @@ class GraduationTaskssettinglist extends Component{ </ul> - <div id="graduation_work_list" style={{padding:'0px 40px 10px 40px'}}> + <div id="graduation_work_list" style={{padding:'0px 30px 10px 30px'}}> <style> - { - ` + {` .edu-menu-lists li:hover { - background: #f0f0f0 !important; - } - .edu-menu-lists li:hover a{ - color: #666 !important; - } - ` - } + background: #f0f0f0 !important; + } + .edu-menu-lists li:hover a{ + color: #666 !important; + } + `} </style> <div className="clearfix"> {this.props.isAdmin()===true?<span className="fl color-grey-6 font-12"> <span className="color-orange-tip">{taskslistdata&&taskslistdata.work_count}</span> - 个检索结果({taskslistdata&&taskslistdata.work_count} 学生) </span>:""} + 个检索结果({taskslistdata&&taskslistdata.work_count} 学生)</span>:""} {this.props.isAdmin()===true?<div className="fr color-grey-6 edu-menu-panel"> <p> <a data-remote="true" class="color-grey-6 font-12"> @@ -1252,23 +1244,17 @@ class GraduationTaskssettinglist extends Component{ { JSON.stringify(data)==="[]" ? - - <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> + <NoneData></NoneData> : <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 { - top: 72%;} + <style> + {` + .ant-spin-nested-loading > div > .ant-spin .ant-spin-dot { + top: 72%; + } } - `}</style> + `} + </style> <div className="edu-table edu-back-white "> {data===undefined?"":<Table dataSource={data} @@ -1297,70 +1283,16 @@ class GraduationTaskssettinglist extends Component{ </div> : "" } - </div>: + </div> + : // 学生列表 this.props.isStudent()||this.props.isNotMember()? - <div className="newMain clearfix"> - <div className={"educontent mb20"}> - - <p className="clearfix mt10"> - <WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+taskslistdata.graduation_id}>{taskslistdata.course_name}</Link></WordsBtn> - <span className="color-grey-9 fl ml3 mr3">></span> - <WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+taskslistdata.graduation_id}className="color-grey-6">{taskslistdata.graduation_name}</Link></WordsBtn> - <span className="color-grey-9 fl ml3 mr3">></span> - <span>任务详情</span> - </p> - - <div style={{ width:'100%',height:'75px'}} > - <p className=" fl color-black mt25 summaryname"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id} className="color-grey-6">{taskslistdata.task_name}</Link></p> - <CoursesListType - typelist={taskslistdata.task_status} - typesylename={"mt22"} - /> - <a className="color-grey-6 fr font-16 ml30 mt10 mr20" onClick={this.goback}>返回</a> - </div> - - <div className="stud-class-set bor-bottom-greyE"> - <div className="mt10 clearfix edu-back-white poll_list pl20"> - - <Link className="active" to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> - <Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> - <Link style={{paddingLeft:'38px'}} - to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting"}>设置</Link> - - - {taskslistdata.work_status===undefined||taskslistdata.work_status===null||taskslistdata.work_status.length===0?"":taskslistdata.work_status.map((item,key)=>{ - return( - <span key={key}> - {item==="提交作品"?<a className={"fr color-blue font-16"} href={"/courses/"+this.props.match.params.coursesId+"/graduation_tasks/"+category_id+"/"+task_Id+"/works/new"}>提交作品</a>:""} - {item==="补交作品"?<a className={"fr color-blue font-16"} href={"/courses/"+this.props.match.params.coursesId+"/graduation_tasks/"+category_id+"/"+task_Id+"/works/new"}>补交作品</a>:""} - {item==="修改作品"?<a className={"fr color-blue font-16"} href={"/courses/"+this.props.match.params.coursesId+"/graduation_tasks/"+category_id+"/"+taskslistdata.work_id+"/works/edit"}>修改作品</a>:""} - {item==="查看作品"?<a className={"fr color-blue font-16"} href={"/courses/"+this.props.match.params.coursesId+"/graduation_tasks/"+category_id+"/"+taskslistdata.work_id+"/works/edit"}>查看作品</a> :""} - {item==="创建项目"?<a className={"fr color-blue font-16"} href={'/projects/new'} target="_blank">创建项目</a>:""} - {item==="关联项目"?<a className={"fr color-blue font-16"} onClick={this.AssociationItems}>关联项目</a>:""} - {item==="取消关联"?<a className={"fr color-blue font-16"} onClick={this.cannelAssociation}>取消关联</a>:""} - {item==="补交附件"?<a className={"fr color-blue font-16"} onClick={this.handaccessory}>补交附件</a>:""} - </span> - - ) - })} - - {/*<a className={"fr color-blue font-16"} onClick={this.handaccessory}>补交附件</a>*/} - {/*<a className={"fr color-blue font-16"} href={"/courses/"+courseId+"/graduation/graduation_tasks/"+task_Id+"/edit"}>编辑任务</a>*/} - {/*<a className={"fr color-blue font-16"}>立即截止</a>*/} - {/*<a className={"fr color-blue font-16"}>导出作品附件</a>*/} - {/*<a className={"fr color-blue font-16"}>导出成绩</a>*/} - - </div> - </div> - - <div className="stud-class-set "> <div className="clearfix edu-back-white" > - {this.props.isNotMember()?<ul className="clearfix" style={{padding:'20px 40px 10px 40px'}}> + {this.props.isNotMember()?<ul className="clearfix" style={{padding:'20px 30px 10px 30px'}}> <li className="clearfix"> <span className="fl mr10 color-grey-8">教师评阅:</span> @@ -1463,7 +1395,6 @@ class GraduationTaskssettinglist extends Component{ <div id="graduation_work_list" style={{ padding: '18px 40px 10px',height: '56px'}}> - {this.props.isAdmin()===true? <div className="clearfix"> <span className="fl color-grey-6 font-12"> @@ -1485,8 +1416,6 @@ class GraduationTaskssettinglist extends Component{ </div> </div> :""} - - {this.props.isStudent()===true? <div className="clearfix"> <span className="mr15 color-grey9"> @@ -1504,12 +1433,7 @@ class GraduationTaskssettinglist extends Component{ </Tooltip>} </div> :""} - - - </div> - - { JSON.stringify(data) === "[]" ? @@ -1561,12 +1485,6 @@ class GraduationTaskssettinglist extends Component{ : "" } </div> - - - </div> - </div> - - :"" :""} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js index 6751837df..4df756d8c 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js @@ -32,8 +32,10 @@ class GraduationTasksquestions extends Component{ } componentDidMount(){ + let tab = this.props.tab; + this.props.setTab && this.props.setTab(tab); - this.getdatas() + this.getdatas() } getdatas=()=>{ const task_Id = this.props.match.params.task_Id; @@ -295,15 +297,6 @@ class GraduationTasksquestions extends Component{ modaltype={this.state.modaltype} getcourse_groupslist={(id) => this.getcourse_groupslist(id)} /> - <style> - { - ` - .linbox{ - height: 26px; - } - ` - } - </style> {questionslist&&questionslist?<div className="newMain clearfix"> <div className={"educontent mb20"}> From bd04a1ed353a875d2c4f76e959c133a394b14c8d Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Wed, 4 Sep 2019 09:54:08 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=AF=95=E8=AE=BE=E4=BB=BB=E5=8A=A1-?= =?UTF-8?q?=E8=AF=A6=E6=83=85-tab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/graduation/tasks/GraduationTaskDetail.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index 18870a1be..1b8b5c706 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -348,7 +348,7 @@ class GraduationTaskDetail extends Component{ <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> </div> <div className="stud-class-set bor-bottom-greyE"> - <div className="clearfix edu-back-white poll_list pl20"> + <div className="clearfix edu-back-white poll_list pl30 pr30"> <Link className={tab && tab == "list" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> <Link className={tab && tab == "questions" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> @@ -389,7 +389,7 @@ class GraduationTaskDetail extends Component{ } `} </style> - {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mr20 mt20" style={{"paddingLeft":"0px"}}> + {this.props.isAdmin()? <li className="li_line drop_down fr color-blue font-16 mt20" style={{"paddingLeft":"0px"}}> 导出<i className="iconfont icon-xiajiantou font-12 ml2"></i> <ul className="drop_down_menu" style={{"right":"-34px","left":"unset","height":"auto"}}> <li><a onClick={()=>this.confirmysl("/graduation_tasks/"+task_Id+"/tasks_list.xlsx")} className="color-dark">导出成绩</a></li> From 71820a8bdc01970ef1ba3961517f29a97f4d2152 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Wed, 4 Sep 2019 14:52:05 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E6=AF=95=E8=AE=BE=E4=BB=BB=E5=8A=A1-?= =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/graduation/tasks/index.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/graduation/tasks/index.js b/public/react/src/modules/courses/graduation/tasks/index.js index 804533b0c..ed52d5cbc 100644 --- a/public/react/src/modules/courses/graduation/tasks/index.js +++ b/public/react/src/modules/courses/graduation/tasks/index.js @@ -469,7 +469,9 @@ class GraduationTasks extends Component{ checkAllValue:false }) this.publishcanner(); - this.useBankSuccess(); + debugger + let {search,page,order} = this.state + this.fetchAll(search,page,order); } }).catch((error)=>{ @@ -565,6 +567,12 @@ class GraduationTasks extends Component{ let {search,page,order,all_count} = this.state; this.fetchAll(search,page,order,all_count) + this.setState({ + checkBoxValues:object_ids + }) + + // 立即发布 + this.publish(); } getcourse_groupslist=(id)=>{ From 3a7ef7d92811e4b553712c97cca2591ae23dc256 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Wed, 4 Sep 2019 16:55:43 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E6=AF=95=E8=AE=BE=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/courses/css/Courses.css | 22 +++++++++++++++++++ .../graduation/tasks/GraduateTaskItem.js | 8 +++---- .../graduation/tasks/GraduationTaskDetail.js | 5 ++--- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/public/react/src/modules/courses/css/Courses.css b/public/react/src/modules/courses/css/Courses.css index 74637571f..d0a43af9e 100644 --- a/public/react/src/modules/courses/css/Courses.css +++ b/public/react/src/modules/courses/css/Courses.css @@ -1220,6 +1220,28 @@ samp { color: #FE4F4C; } + /* 毕设任务 */ + .graduationTaskMenu a{ + display: block; + position: relative; + line-height: 72px; + font-size: 16px; + margin-right: 30px; + float: left; + } + .graduationTaskMenu a.active:after{ + position: absolute; + left: 0px; + height: 2px; + width: 100%; + content: ''; + background: #4CACFF; + bottom: 0px; + font-weight:400; + } + .graduationTaskMenu a.active{ + color: #4CACFF!important; + } /* end */ /* form表单,包含多个item时 */ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduateTaskItem.js b/public/react/src/modules/courses/graduation/tasks/GraduateTaskItem.js index 92a4832db..c18ef8062 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduateTaskItem.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduateTaskItem.js @@ -215,14 +215,14 @@ class GraduateTaskItem extends Component{ <h6> { - this.props.isAdmin?<a href={"/courses/"+coursesId+"/graduation_tasks/"+categoryid+"/"+taskid+"/list"} + this.props.isAdmin?<Link to={"/courses/"+coursesId+"/graduation_tasks/"+categoryid+"/"+taskid+"/list"} title={discussMessage.name} - className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</a>:"" + className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</Link>:"" } { - this.props.isStudent? <a href={"/courses/"+coursesId+"/graduation_tasks/"+categoryid+"/"+taskid+"/list"} + this.props.isStudent? <Link to={"/courses/"+coursesId+"/graduation_tasks/"+categoryid+"/"+taskid+"/list"} title={discussMessage.name} - className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</a>:"" + className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</Link>:"" } { diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index 1b8b5c706..1c969b3c4 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -348,12 +348,11 @@ class GraduationTaskDetail extends Component{ <a className="color-grey-3 fr font-16 ml30 mr20" onClick={this.goback}>返回</a> </div> <div className="stud-class-set bor-bottom-greyE"> - <div className="clearfix edu-back-white poll_list pl30 pr30"> + <div className="clearfix edu-back-white pl30 pr30 graduationTaskMenu"> <Link className={tab && tab == "list" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/list"}>任务列表</Link> <Link className={tab && tab == "questions" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/questions"}>毕设描述</Link> - <Link className={tab && tab == "setting" ? "active" : ""} style={{paddingLeft:'38px'}} - to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> + <Link className={tab && tab == "setting" ? "active" : ""} to={"/courses/"+courseId+"/graduation_tasks/"+category_id+"/"+task_Id+"/setting?tab=3"}>设置</Link> {/*<a className={"fr color-blue font-16"}>导出成绩</a>*/} {/*{this.props.isAdmin()?<a href={"/api/graduation_tasks/"+task_Id+"/tasks_list.xls"} className={"fr color-blue font-16"}>导出成绩</a>:""}*/} From b284b2f650dc8e069798ba9238eb6ad2d60dbdf6 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Thu, 5 Sep 2019 14:06:29 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=A0=B7=E5=BC=8F=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/paths/ShixunPathCard.js | 43 ++++--- .../src/modules/paths/ShixunPathSearch.js | 21 +-- .../react/src/modules/paths/ShixunPaths.css | 120 ++++++++++++++++++ 3 files changed, 154 insertions(+), 30 deletions(-) diff --git a/public/react/src/modules/paths/ShixunPathCard.js b/public/react/src/modules/paths/ShixunPathCard.js index 166c6415a..a5ac0b3d3 100644 --- a/public/react/src/modules/paths/ShixunPathCard.js +++ b/public/react/src/modules/paths/ShixunPathCard.js @@ -22,21 +22,21 @@ class ShixunPathCard extends Component{ pathList && pathList.map((item,key)=>{ return( - <div className="square-Item" id={"item_"+key}> + <div className="squareCard" id={"item_"+key}> - { - item.tag_name === null ? "" : + + {/* item.tag_name === null ? "" : <div className="tag-green"> <span className="tag-name">{item.tag_name}</span> - {/*<img src={getImageUrl('images/educoder/tag2.png')}/>*/} - </div> - } + <img src={getImageUrl('images/educoder/tag2.png')}/> + </div> */} + { item.excellent === false ? "" : - <div className="tag-orange"> - <span className="tag-name">开放课程</span> + <div className="tag_open"> + <span className="tag_open_name">开放课程</span> </div> } @@ -45,28 +45,29 @@ class ShixunPathCard extends Component{ className="mt80 mb25"/> <p className="font-14 color-white">非试用内容,需要授权</p> </div> - <Link to={"/paths/"+item.id} className="square-img" > + <Link to={"/paths/"+item.id} className="squareImg" > {/*target="_blank"*/} - <img alt="详情图片" src={"/"+item.image_url} style={{"display":"block"}}/> + <img alt="详情图片" src={getImageUrl("/"+item.image_url)}/> </Link> - <div className="square-main"> - <p className="task-hide"> - <Link to={"/paths/"+item.id} className="justify color-grey-name" >{item.name}</Link> + <div className="mt20" style={{marginLeft:"1px"}}> + <p className="task-hide mb10"> + <Link to={"/paths/"+item.id} className="justify cardName">{item.name}</Link> {/*target="_blank"*/} </p> - <p className="clearfix mt8 font-12 color-grey-B4"> + <p className="clearfix squareInfo"> - <Tooltip placement="bottom" title={"章节"}> - <span className="mr10 fl squareIconSpan"><i className="iconfont icon-shixun fl mr3"></i>{item.stages_count}</span> - </Tooltip> + {/* <Tooltip placement="bottom" title={"章节"}> */} + {/* <i className="iconfont icon-shixun fl mr3"></i> */} + <span className="fl pr squareLine mr20">章节: {item.stages_count}</span> + {/* </Tooltip> */} {/*<Tooltip placement="bottom" title={"经验值"}>*/} {/*<span className="mr10 fl squareIconSpan"><i className="iconfont icon-jingyan fl mr3"></i>{item.shixuns_count}</span>*/} {/*</Tooltip>*/} - - <Tooltip placement="bottom" title={"学习人数"}> - <span className="mr10 fl squareIconSpan"><i className="iconfont icon-chengyuan fl mr3"></i>{item.members_count}</span> - </Tooltip> + {/* <Tooltip placement="bottom" title={"学习人数"}> */} + {/* <i className="iconfont icon-chengyuan fl mr3"></i> */} + <span className="fl">学习人数: {item.members_count}</span> + {/* </Tooltip> */} </p> </div> </div> diff --git a/public/react/src/modules/paths/ShixunPathSearch.js b/public/react/src/modules/paths/ShixunPathSearch.js index c0060a528..c88563e07 100644 --- a/public/react/src/modules/paths/ShixunPathSearch.js +++ b/public/react/src/modules/paths/ShixunPathSearch.js @@ -7,8 +7,8 @@ import Pagination from '@icedesign/base/lib/pagination'; import '@icedesign/base/lib/pagination/style.js'; import './ShixunPaths.css'; +import path from '../../images/path/path.png'; -const Search = Input.Search; class ShixunPathSearch extends Component{ constructor(props) { @@ -122,9 +122,12 @@ class ShixunPathSearch extends Component{ {this.state.updata===undefined?"":<UpgradeModals {...this.state} />} - <div className="path-head pr"> - <div className="edu-txt-center pathNavLine"> - <div className="inline path-nav"> + <div className="pr"> + <div className="pathImg"> + <img src={path} width="100%"/> + </div> + <div className="edu-back-white padding20 pathIndexNav"> + <ul className="educontent clearfix"> <li className={select > 0 ? "" : "active"}><a onClick={()=>this.changeSelect(null)}>全部</a></li> { sortList && sortList.map((item,key)=>{ @@ -133,18 +136,18 @@ class ShixunPathSearch extends Component{ ) }) } - </div> + </ul> </div> </div> - <div className="mt20 educontent mb20 clearfix"> + <div className="mt20 educontent mb20 clearfix mainPageArray"> {/*<a href="javascript:void(0)" className={ order == "publish_time" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"} onClick={ () => this.changeStatus("publish_time")}>全部</a>*/} {/*<a href="javascript:void(0)" className={ order == "mine" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"} onClick={ () => this.changeStatus("mine")}>我的</a>*/} - <span className={ order == "updated_at" ? "fl mr20 font-16 bestChoose active pointer" : "fl mr20 font-16 bestChoose pointer"} onClick={ () => this.changeStatus("updated_at")}>最新</span> - <span className={ order == "myshixun_count" ? "fl mr20 font-16 bestChoose active pointer" : "fl mr20 font-16 bestChoose pointer"} onClick={ () => this.changeStatus("myshixun_count")}>最热</span> + <span className={ order == "updated_at" ? "active" : ""} onClick={ () => this.changeStatus("updated_at")}>最新</span> + <span className={ order == "myshixun_count" ? "active" : ""} onClick={ () => this.changeStatus("myshixun_count")}>最热</span> {/*<div className="fr mr5 search-new">*/} {/*/!* <Search*/} {/*placeholder="请输入路径名称进行搜索"*/} - {/*id="subject_search_input"*/} + {/*id="subject_search_input"*/} {/*value={search}*/} {/*onInput={this.inputSearchValue}*/} {/*onSearch={this.searchValue}*/} diff --git a/public/react/src/modules/paths/ShixunPaths.css b/public/react/src/modules/paths/ShixunPaths.css index d1e0a2325..ba7ba198b 100644 --- a/public/react/src/modules/paths/ShixunPaths.css +++ b/public/react/src/modules/paths/ShixunPaths.css @@ -1,3 +1,123 @@ +.pathImg{ + background: #4CACFF +} +.pathIndexNav{ + box-shadow:0px 4px 8px 0px rgba(0,0,0,0.04); +} +.pathIndexNav ul li{ + float: left; + margin-right: 10px; +} +.pathIndexNav ul li a{ + display: block; + font-size: 15px; + color: #333333; + padding:0px 20px; + border-radius:18px; + height: 32px; + line-height: 32px; + margin:5px 0px; +} +.pathIndexNav ul li.active a{ + background: #DDECF9; + color: #4CACFF +} + +/* 首页-最新最热 */ +.mainPageArray span{ + font-size: 14px; + float: left; + background: #EBEBEB; + padding: 0px 16px; + height: 30px; + line-height: 30px; + color: #666666; + margin-right: 20px; + cursor: pointer; + border-radius: 15px; +} +.mainPageArray span.active{ + background: #4CACFF; + color: #fff; +} + +/* path-card */ +.squareCard{ + position: relative; + width: 280px; + margin-right: 26px; + margin-bottom: 40px; + float: left; + border-radius: 6px; +} +.squareCard:nth-child(4n){ + margin-right: 0px; +} +.squareCard .squareImg{ + height: 175px; + width: 280px; + overflow: hidden; + display: block; + border-radius: 6px; +} +.squareCard .squareImg img{ + transition: all 0.6s; + -webkit-transition: all 0.6s; + -o-transition: all 0.6s; + width: 100%; +} +.squareCard .squareImg img:hover{ + transform: scale(1.2); +} + +/* card info */ +.cardName{ + font-size: 16px; + font-weight: 600; + height: 20px; + line-height: 20px; + margin-bottom: 10px; +} + +.squareLine:after{ + position: absolute; + width: 1px; + height: 10px; + background: #adadad; + content: ''; + right: -10px; + top:4px; +} +.squareInfo{ + color: #777; + font-size: 12px; + font-weight: 400; + height: 18px; + line-height: 18px; +} + +/* tag-开放课程 */ +.tag_open { + position: absolute; + left: 0px; + top: 12px; + z-index: 1; +} +.tag_open .tag_open_name { + display: block; + width: auto; + background-color: #FF6800; + background-size: 100% 100%; + padding: 0px 8px; + color: #fff; + display: block; + height: 28px; + line-height: 28px; + border-radius: 0px 15px 15px 0px; +} + + + .paragraph:hover .status_li a{ display: block; } From 84a8df854d77be12f5a1394e48d891bb000e3fa4 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Thu, 5 Sep 2019 14:25:58 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=AE=9E=E8=B7=B5=E8=AF=BE=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/paths/ShixunPathCard.js | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/public/react/src/modules/paths/ShixunPathCard.js b/public/react/src/modules/paths/ShixunPathCard.js index a5ac0b3d3..e384049a5 100644 --- a/public/react/src/modules/paths/ShixunPathCard.js +++ b/public/react/src/modules/paths/ShixunPathCard.js @@ -23,28 +23,25 @@ class ShixunPathCard extends Component{ return( <div className="squareCard" id={"item_"+key}> - - - {/* item.tag_name === null ? "" : - <div className="tag-green"> - <span className="tag-name">{item.tag_name}</span> - <img src={getImageUrl('images/educoder/tag2.png')}/> - </div> */} - - + {/* item.tag_name === null ? "" : + <div className="tag-green"> + <span className="tag-name">{item.tag_name}</span> + <img src={getImageUrl('images/educoder/tag2.png')}/> + </div> */} { item.excellent === false ? "" : - <div className="tag_open"> - <span className="tag_open_name">开放课程</span> - </div> + <div className="tag_open"> + <span className="tag_open_name">开放课程</span> + </div> } - <div className={item.allow_visit=== false ? "closeSquare" : "none"}> + {/* <div className={item.allow_visit=== false ? "closeSquare" : "none"}> <img src={getImageUrl("images/educoder/icon/lockclose.svg")} className="mt80 mb25"/> <p className="font-14 color-white">非试用内容,需要授权</p> - </div> + </div> */} + <Link to={"/paths/"+item.id} className="squareImg" > {/*target="_blank"*/} <img alt="详情图片" src={getImageUrl("/"+item.image_url)}/> From 154b068415fb4950279fc5301f16c79dedcd9553 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Thu, 5 Sep 2019 16:04:18 +0800 Subject: [PATCH 9/9] issue --- .../react/src/modules/courses/exercise/new/JudgeDisplay.js | 2 +- .../react/src/modules/courses/exercise/new/NullDisplay.js | 3 +++ .../react/src/modules/courses/exercise/new/SingleDisplay.js | 4 ++-- public/react/src/modules/courses/poll/PollDetailTabForth.js | 2 +- .../src/modules/user/modal/RealNameCertificationModal.js | 6 +++--- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/public/react/src/modules/courses/exercise/new/JudgeDisplay.js b/public/react/src/modules/courses/exercise/new/JudgeDisplay.js index a6996ed84..d340f5fa4 100644 --- a/public/react/src/modules/courses/exercise/new/JudgeDisplay.js +++ b/public/react/src/modules/courses/exercise/new/JudgeDisplay.js @@ -86,7 +86,7 @@ class JudgeDisplay extends Component{ // 单选 return ( <div key={optionIndex} className="fl mr30 df"> - <Radio disabled checked={item.standard_boolean}></Radio> + <Radio disabled className="lineh-25" checked={item.standard_boolean}></Radio> {/* <span>{item.choice_text}</span> */} <MarkdownToHtml content={item.choice_text} selector={'judge_' + (index + 1) + optionIndex} className="" diff --git a/public/react/src/modules/courses/exercise/new/NullDisplay.js b/public/react/src/modules/courses/exercise/new/NullDisplay.js index b9bd893f9..f84daf193 100644 --- a/public/react/src/modules/courses/exercise/new/NullDisplay.js +++ b/public/react/src/modules/courses/exercise/new/NullDisplay.js @@ -92,6 +92,9 @@ class NullDisplay extends Component{ .answerRow { padding: 1px 0; } + .answers .markdown-body > p{ + line-height:20px; + } `}</style> <QestionDisplayHeader {...this.props}></QestionDisplayHeader> diff --git a/public/react/src/modules/courses/exercise/new/SingleDisplay.js b/public/react/src/modules/courses/exercise/new/SingleDisplay.js index bce4dc4c1..7159b0ee6 100644 --- a/public/react/src/modules/courses/exercise/new/SingleDisplay.js +++ b/public/react/src/modules/courses/exercise/new/SingleDisplay.js @@ -99,7 +99,7 @@ class SingleDisplay extends Component{ if (question_type == 0) { // 单选 return ( <div className="mb10 clearfix" key={optionIndex}> - <Radio disabled className="fl lineh-20" checked={item.standard_boolean}>{prefix}</Radio> + <Radio disabled className="fl lineh-25" checked={item.standard_boolean}>{prefix}</Radio> <MarkdownToHtml content={item.choice_text} selector={'single_' + (index + 1) + '' + (optionIndex + 1)} style={{ float: 'left', display: 'inline-block' }} ></MarkdownToHtml> @@ -110,7 +110,7 @@ class SingleDisplay extends Component{ return ( <div className="mb10 clearfix" key={optionIndex}> - <Checkbox disabled className="fl lineh-20" checked={item.standard_boolean}>{prefix}</Checkbox> + <Checkbox disabled className="fl lineh-25 mr8" checked={item.standard_boolean}>{prefix}</Checkbox> <MarkdownToHtml content={item.choice_text} selector={'single_' + (index + 1)+ '' + (optionIndex + 1)} style={{ float: 'left', display: 'inline-block' }} ></MarkdownToHtml> diff --git a/public/react/src/modules/courses/poll/PollDetailTabForth.js b/public/react/src/modules/courses/poll/PollDetailTabForth.js index e0cca8716..22205b188 100644 --- a/public/react/src/modules/courses/poll/PollDetailTabForth.js +++ b/public/react/src/modules/courses/poll/PollDetailTabForth.js @@ -57,7 +57,7 @@ class PollDetailTabForth extends Component{ flagPageEdit:undefined, unitSetting:true, - flagPublic:true, + flagPublic:false, flagRealName:undefined, course_group:undefined, end_time:undefined, diff --git a/public/react/src/modules/user/modal/RealNameCertificationModal.js b/public/react/src/modules/user/modal/RealNameCertificationModal.js index 1d17b7c20..412cb58c7 100644 --- a/public/react/src/modules/user/modal/RealNameCertificationModal.js +++ b/public/react/src/modules/user/modal/RealNameCertificationModal.js @@ -2,7 +2,7 @@ import React, { Component } from "react"; import { message, Icon, Input, Form, Upload} from "antd"; import axios from 'axios' import ModalWrapper from "../../courses/common/ModalWrapper" -import { City, getUploadActionUrl, getImageUrl, ImageLayerHook } from 'educoder' +import { City, getUploadActionUrl, getImageUrl, ImageLayerHook, getUploadActionUrlOfAuth } from 'educoder' import '../account/common.css' import authImg from '../../../images/account/auth.png' @@ -125,14 +125,14 @@ class RealNameCertificationModal extends Component{ const { moduleName } = this.props const { getFieldDecorator } = this.props.form; let {certification}=this.props; - + // /api/users/accounts/${this.props.current_user.login}/auth_attachment.json const uploadProps2 = { name: 'image', data:{type:certification == 1 ? "real_name" : "professional"}, multiple: true, showUploadList: false, // https://newweb.educoder.net - action: this.props.current_user ? `/api/users/accounts/${this.props.current_user.login}/auth_attachment.json` : '', + action: this.props.current_user ? `${getUploadActionUrlOfAuth(this.props.current_user.login)}` : '', className: 'idPic-uploader', onChange: this.handleChange2, };