-
:""}
- {
- parseInt(tab[0])==0 &&
+ {
+ weixinlogin===false&&parseInt(tab[0])==0 &&
+
+
+
+
+
+
+
+
+ 为了更好的为您服务,请关联一个EduCoder账号
+
+
+
+
+
+
+
+
+
+ 新用户
+
+
+
+ 欢迎来到EduCoder,新用户登录EduCoder可以到“账号管理-安全设置”中绑定手机/邮箱,以后可以用绑定的手机/邮箱,设置的密码登录EduCoder了。
+ 立即体验表示您已经同意我们的 服务协议条款
+
+
+
+
+
+
+
+
+
+ 老用户
+
+
+
+ 已有EduCoder账号,可以输入您的账号和密码,将您的微信账号与EduCoder账号进行绑定。
+
+
+
+
+
+
+ {this.state.logintypes==="username"?请填写账号:this.state.logintypes==="password"?请填写密码:""}
+
+
+
+
+
+
+
+
+
© 2019 EduCoder
湘ICP备17009477号Trustie & IntelliDE inside.
+
+
+
+
+ )
+ }
+
+}
+
+export default Otherlogin;
diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js
index 022564f5b..1e71ed681 100644
--- a/public/react/src/modules/user/LoginRegisterComponent.js
+++ b/public/react/src/modules/user/LoginRegisterComponent.js
@@ -1163,7 +1163,7 @@ class LoginRegisterComponent extends Component {
color: '#676767',
}}>我已阅读并同意
- 《服务协议条款》
+ 《服务协议条款》
@@ -1184,7 +1184,7 @@ class LoginRegisterComponent extends Component {
frameBorder="0"
sandbox="allow-scripts allow-same-origin allow-top-navigation"
scrolling="no"
- src="https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2f&response_type=code&scope=snsapi_login#wechat_redirect">:""}
+ src="https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherlogin&response_type=code&scope=snsapi_login#wechat_redirect">:""}
{weixinlogin===true?
this.hideweixinlogin()}>返回登录注册
:""}
From a03bb0dafb33612f29bac101e74b5cab9d2de127 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Sat, 12 Oct 2019 16:35:31 +0800
Subject: [PATCH 08/12] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95=20?=
=?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/App.js | 9 ++++
public/react/src/modules/login/LoginDialog.js | 2 +-
public/react/src/modules/login/Otherlogin.js | 44 ++++------------
.../src/modules/login/Otherloginstart.js | 52 +++++++++++++++++++
.../modules/user/LoginRegisterComponent.js | 2 +-
5 files changed, 74 insertions(+), 35 deletions(-)
create mode 100644 public/react/src/modules/login/Otherloginstart.js
diff --git a/public/react/src/App.js b/public/react/src/App.js
index f9b6fd36b..34b5d1a4f 100644
--- a/public/react/src/App.js
+++ b/public/react/src/App.js
@@ -70,6 +70,12 @@ const Otherlogin=Loadable({
loader: () => import('./modules/login/Otherlogin'),
loading: Loading,
})
+
+const Otherloginstart=Loadable({
+ loader: () => import('./modules/login/Otherloginstart'),
+ loading: Loading,
+})
+
const TestIndex = Loadable({
loader: () => import('./modules/test'),
loading: Loading,
@@ -412,6 +418,9 @@ class App extends Component {
+
diff --git a/public/react/src/modules/login/LoginDialog.js b/public/react/src/modules/login/LoginDialog.js
index b0c1602a9..ae7d781e9 100644
--- a/public/react/src/modules/login/LoginDialog.js
+++ b/public/react/src/modules/login/LoginDialog.js
@@ -638,7 +638,7 @@ class LoginDialog extends Component {
frameBorder="0"
sandbox="allow-scripts allow-same-origin allow-top-navigation"
scrolling="no"
- src="https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherlogin&response_type=code&scope=snsapi_login#wechat_redirect">:""}
+ src="https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginstart&response_type=code&scope=snsapi_login#wechat_redirect">:""}
{weixinlogin===true?
this.hideweixinlogin()}>返回账号登录
:""}
diff --git a/public/react/src/modules/login/Otherlogin.js b/public/react/src/modules/login/Otherlogin.js
index 2dc82b578..3c27e0e96 100644
--- a/public/react/src/modules/login/Otherlogin.js
+++ b/public/react/src/modules/login/Otherlogin.js
@@ -79,48 +79,26 @@ class Otherlogin extends Component {
}
- getinfo=()=>{
- let url = `/users/get_user_info.json`
- axios.get(url).then((result)=> {
- console.log(result);
- if(result){
- this.setState({
- data:result.data,
- spinnings:false
- })
- }
- }).catch((error)=>{
- this.setState({
- spinnings:false
- })
- })
-
- }
componentDidMount() {
- let query=this.props.location.search;
- const type = query.split('?code=');
- const types = type[1].split('&state=');
- let codeurl = `/auth/wechat/callback.json`
- axios.get(codeurl,{params:{
- code:types[0]
- }}).then((result)=> {
+
+ let url = `/users/get_user_info.json`
+ axios.get(url).then((result)=> {
+ console.log(result);
if(result){
- if(result.data.status===0){
- if(result.data.true===false){
- this.getinfo()
- }else{
- // this.getinfo()
- window.location.href="/"
- }
- }
+ this.setState({
+ data:result.data,
+ spinnings:false
+ })
}
}).catch((error)=>{
this.setState({
spinnings:false
})
})
- }
+
+
+ }
loginInputonChange=(e)=>{
diff --git a/public/react/src/modules/login/Otherloginstart.js b/public/react/src/modules/login/Otherloginstart.js
new file mode 100644
index 000000000..4b134805d
--- /dev/null
+++ b/public/react/src/modules/login/Otherloginstart.js
@@ -0,0 +1,52 @@
+import React, { Component } from 'react';
+
+import { BrowserRouter as Router, Route, Link } from "react-router-dom";
+
+import { Spin } from 'antd';
+import axios from 'axios';
+class Otherloginstart extends Component {
+
+ componentDidMount() {
+ let query=this.props.location.search;
+ const type = query.split('?code=');
+ const types = type[1].split('&state=');
+ let codeurl = `/auth/wechat/callback.json`
+ axios.get(codeurl,{params:{
+ code:types[0]
+ }}).then((result)=> {
+ if(result){
+ if(result.data.status===0){
+ if(result.data.true===false){
+ window.location.href="/otherlogin"
+ }else{
+ // this.getinfo()
+ window.location.href="/"
+ }
+ }
+ }
+ }).catch((error)=>{
+
+ })
+
+ }
+
+ render() {
+ // Loading
+ return (
+
+
+
+
+ );
+ }
+}
+
+export default Otherloginstart;
\ No newline at end of file
diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js
index a599bcf24..fedc3cb22 100644
--- a/public/react/src/modules/user/LoginRegisterComponent.js
+++ b/public/react/src/modules/user/LoginRegisterComponent.js
@@ -1192,7 +1192,7 @@ class LoginRegisterComponent extends Component {
frameBorder="0"
sandbox="allow-scripts allow-same-origin allow-top-navigation"
scrolling="no"
- src="https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherlogin&response_type=code&scope=snsapi_login#wechat_redirect">:""}
+ src="https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginstart&response_type=code&scope=snsapi_login#wechat_redirect">:""}
{weixinlogin===true?
this.hideweixinlogin()}>返回登录注册
:""}
From 8817c87677bc43155a0dce5f735daa0de2bd1f78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Sat, 12 Oct 2019 16:45:05 +0800
Subject: [PATCH 09/12] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81?=
=?UTF-8?q?=E8=A7=84=E5=88=99=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/AppConfig.js | 24 +++++++++----------
.../src/modules/user/account/AccountSecure.js | 24 +++++++++++++------
2 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js
index 98571d818..c00c5fb62 100644
--- a/public/react/src/AppConfig.js
+++ b/public/react/src/AppConfig.js
@@ -21,16 +21,16 @@ let hashTimeout
// TODO 开发期多个身份切换
let debugType =""
-// if (isDev) {
-// const _search = window.location.search;
-// let parsed = {};
-// if (_search) {
-// parsed = queryString.parse(_search);
-// }
-// debugType = window.location.search.indexOf('debug=t') != -1 ? 'teacher' :
-// window.location.search.indexOf('debug=s') != -1 ? 'student' :
-// window.location.search.indexOf('debug=a') != -1 ? 'admin' : parsed.debug || 'admin'
-// }
+if (isDev) {
+ const _search = window.location.search;
+ let parsed = {};
+ if (_search) {
+ parsed = queryString.parse(_search);
+ }
+ debugType = window.location.search.indexOf('debug=t') != -1 ? 'teacher' :
+ window.location.search.indexOf('debug=s') != -1 ? 'student' :
+ window.location.search.indexOf('debug=a') != -1 ? 'admin' : parsed.debug || 'admin'
+}
window._debugType = debugType;
export function initAxiosInterceptors(props) {
initOnlineOfflineListener()
@@ -84,9 +84,9 @@ export function initAxiosInterceptors(props) {
}
config.url = `${proxy}${url}`;
if (config.url.indexOf('?') == -1) {
- config.url = `${config.url}?debug=${debugType}`;
+ config.url = `${config.url}?debug=${'student'}`;
} else {
- config.url = `${config.url}&debug=${debugType}`;
+ config.url = `${config.url}&debug=${'student'}`;
}
} else {
// 加api前缀
diff --git a/public/react/src/modules/user/account/AccountSecure.js b/public/react/src/modules/user/account/AccountSecure.js
index 797b350d2..2e90824c9 100644
--- a/public/react/src/modules/user/account/AccountSecure.js
+++ b/public/react/src/modules/user/account/AccountSecure.js
@@ -153,20 +153,28 @@ class AccountSecure extends Component {
})
}
onPasswordSubmit = () => {
+ let {basicInfo}=this.props;
this.props.form.validateFieldsAndScroll((err, values) => {
if (!err) {
- if(values.p_old == values.p_new){
- this.props.showNotification("新密码不能与旧密码相同!");
- return;
- }
+ if(basicInfo&&basicInfo.has_password===true){
+ if(values.p_old == values.p_new){
+ this.props.showNotification("新密码不能与旧密码相同!");
+ return;
+ }
+ }
+
if(values.p_again != values.p_new){
this.props.showNotification("两次输入的新密码必须一致!");
return;
}
let {login}=this.props.current_user;
let url=`/users/accounts/${login}/password.json`;
+ let p_old=undefined;
+ if(basicInfo&&basicInfo.has_password===true){
+ p_old=values.p_old
+ }
axios.put((url),{
- old_password:values.p_old,
+ old_password:p_old,
password:values.p_new
}).then((result)=>{
if(result){
@@ -215,6 +223,8 @@ class AccountSecure extends Component {
let {basicInfo}=this.props;
const { getFieldDecorator } = this.props.form;
const { updating,seconds,secondsFlag } = this.state
+
+ console.log(basicInfo&&basicInfo.has_password)
return (
@@ -426,7 +436,7 @@ class AccountSecure extends Component {
{ updating == PASSWORD &&
-
@@ -439,7 +449,7 @@ class AccountSecure extends Component {
})(
)}
-
+ :""}
Date: Sat, 12 Oct 2019 16:52:56 +0800
Subject: [PATCH 10/12] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../graduation/tasks/GraduationTaskDetail.js | 725 +++++++++---------
1 file changed, 358 insertions(+), 367 deletions(-)
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js
index fbbfafabc..66e4ccb8d 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js
@@ -7,7 +7,6 @@ import Loading from '../../../../Loading';
import {BrowserRouter as Router,Route,Switch} from 'react-router-dom';
import axios from 'axios';
import HomeworkModal from "../../coursesPublic/HomeworkModal";
-import OneSelfOrderModal from "../../coursesPublic/OneSelfOrderModal";
import AccessoryModal from "../../coursesPublic/AccessoryModal";
import Associationmodel from '../../coursesPublic/Associationmodel';
import CoursesListType from '../../coursesPublic/CoursesListType';
@@ -21,90 +20,89 @@ import Modals from '../../../modals/Modals';
//毕设描述
const GraduationTasksquestions= Loadable({
- loader: () => import('./GraduationTaskssettingquestions'),
- loading: Loading,
+ loader: () => import('./GraduationTaskssettingquestions'),
+ loading: Loading,
})
//毕设任务设置
const GraduationTaskssetting=Loadable({
- loader: () => import('./GraduationTaskssetting'),
- loading: Loading,
+ loader: () => import('./GraduationTaskssetting'),
+ loading: Loading,
})
//毕设任务列表
const GraduationTaskslist=Loadable({
- loader: () => import('./GraduationTaskssettinglist'),
- loading: Loading,
+ loader: () => import('./GraduationTaskssettinglist'),
+ loading: Loading,
})
class GraduationTaskDetail extends Component{
- constructor(props){
- super(props);
- this.state={
- modalname:undefined,
- visible:false,
- OneSelftype:false,
+ 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,
- course_groupslist:undefined,
- course_groups:undefined,
- questionslist:undefined,
- tab:"list",
- visibles:undefined,
- Modalstype:undefined,
- Modalstopval:undefined,
- ModalCancel:undefined,
- ModalSave:undefined,
- acrossVisible:undefined
- }
- }
- 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)
- })
- }
-
-
- // 交叉评阅设置弹框
- openAcross=()=>{
- this.setState({
- acrossVisible:true
- })
- }
- closeAcross=()=>{
- this.setState({
- acrossVisible:false
- })
+ endtime:undefined,
+ Cancelname:undefined,
+ Savesname:undefined,
+ Cancel:undefined,
+ Saves:undefined,
+ Topvalright:undefined,
+ Botvalleft:undefined,
+ course_groupslist:undefined,
+ course_groups:undefined,
+ questionslist:undefined,
+ tab:"list",
+ visibles:undefined,
+ Modalstype:undefined,
+ Modalstopval:undefined,
+ ModalCancel:undefined,
+ ModalSave:undefined,
+ acrossVisible:undefined
+ }
+ }
+ 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)
+ })
+ }
+
+
+ // 交叉评阅设置弹框
+ openAcross=()=>{
+ this.setState({
+ acrossVisible:true
+ })
+ }
+ closeAcross=()=>{
+ this.setState({
+ acrossVisible:false
+ })
this.getdatas()
- }
+ }
- //返回
- goback=()=>{
- // let courseId=this.props.match.params.coursesId;
- // let category_id=this.props.match.params.category_id;
- // window.location.href="/courses/"+courseId+"/graduation_tasks/"+category_id;
+ //返回
+ goback=()=>{
+ // let courseId=this.props.match.params.coursesId;
+ // let category_id=this.props.match.params.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");
@@ -114,76 +112,71 @@ class GraduationTaskDetail extends Component{
// this.props.history.goBack()
this.props.history.replace(`/courses/${this.state.questionslist.course_id}/graduation_tasks/${this.state.questionslist.graduation_id}`);
- }
- //立即发布
- publish=()=>{
- let {questionslist}=this.state;
- let starttime= this.props.getNowFormatDates(1,1);
- let endtime=this.props.getNowFormatDates(2,1);
- // this.homeworkstart()
- this.setState({
- modalname:"立即发布",
- visible:true,
- OneSelftype:true,
+ }
+ //立即发布
+ publish=()=>{
+ let starttime= this.props.getNowFormatDates(1,1);
+ let endtime=this.props.getNowFormatDates(2,1);
+ // this.homeworkstart()
+ this.setState({
+ modalname:"立即发布",
+ visible:true,
Topval:"学生将立即收到毕设任务",
- // Botvalleft:"点击修改",
+ // Botvalleft:"点击修改",
// Botval:`本操作只对"未发布"的分班有效`,
starttime:moment(moment(new Date())).format("YYYY-MM-DD HH:mm") ,
- starttimes:questionslist.end_time,
- staytime:this.props.getNowFormatDates(1),
+ starttimes:this.props.getNowFormatDates(1),
typs:"start",
- endtime:endtime,
- Cancelname:"暂不发布",
- Savesname:"立即发布",
- Cancel:this.cancelmodel,
- 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,
+ endtime:endtime,
+ Cancelname:"暂不发布",
+ Savesname:"立即发布",
+ Cancel:this.cancelmodel,
+ 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) {
+ }).then((response)=>{
+ if (response.data.status == 0) {
this.getdatas()
- this.props.showNotification(response.data.message);
-
- this.setState({
- // Modalstopval:response.data.message,
- // ModalSave:this.cancelmodel,
- // Loadtype:true,
- course_groupslist:[],
- checkAllValue:false
- })
- }
- }).catch((error)=>{
-
- })
- }
-
- // 刷新
- resetList=()=>{
- this.getdatas();
- this.child && this.child.searchValue();
- }
-
- // 立即截止
- end=()=>{
+ this.props.showNotification(response.data.message);
+
+ this.setState({
+ // Modalstopval:response.data.message,
+ // ModalSave:this.cancelmodel,
+ // Loadtype:true,
+ course_groupslist:[],
+ checkAllValue:false
+ })
+ }
+ }).catch((error)=>{
+
+ })
+ }
+
+ // 刷新
+ resetList=()=>{
+ this.getdatas();
+ this.child && this.child.searchValue();
+ }
+
+ // 立即截止
+ end=()=>{
// this.homeworkstart()
this.setState({
modalname:"立即截止",
visible:true,
- OneSelftype:true,
Topval:"学生将不能再提交作品",
- starttime:undefined,
// Botvalleft:"暂不截止",
// Botval:`本操作只对"提交中"的分班有效`,
Cancelname:"暂不截止",
@@ -192,75 +185,74 @@ class GraduationTaskDetail extends Component{
Saves:this.coursetaskend,
typs:"end",
})
- }
- coursetaskend=()=>{
- const coursesId = this.props.match.params.coursesId;
- const task_Id = this.props.match.params.task_Id;
-
- let url = `/courses/${coursesId}/graduation_tasks/end_task.json`;
- axios.post(url,{
- task_ids:[task_Id],
- group_ids: this.state.course_groupslist,
- }).then((response)=>{
- if (response.data.status == 0) {
- this.props.showNotification(response.data.message);
- this.cancelmodel();
- this.getdatas();
- this.child && this.child.reInit();
- }
-
- }).catch((error)=>{
-
- })
- }
- // 取消
- cancelmodel=()=>{
- this.setState({
- Modalstype:false,
- Loadtype:false,
- visible:false,
- OneSelftype:false,
- Modulationtype:false,
- Allocationtype:false,
- Modalstopval:"",
- ModalCancel:"",
- ModalSave:"",
- })
- }
-
- getcourse_groupslist=(id)=>{
- this.setState({
- course_groupslist:id
- })
- }
-
- setTab = (tab) =>{
- this.setState({
- tab
- })
- }
-
- // 关联项目
- AssociationItems=()=>{
+ }
+ coursetaskend=()=>{
+ const coursesId = this.props.match.params.coursesId;
+ const task_Id = this.props.match.params.task_Id;
+
+ let url = `/courses/${coursesId}/graduation_tasks/end_task.json`;
+ axios.post(url,{
+ task_ids:[task_Id],
+ group_ids: this.state.course_groupslist,
+ }).then((response)=>{
+ if (response.data.status == 0) {
+ this.props.showNotification(response.data.message);
+ this.cancelmodel();
+ this.getdatas();
+ this.child && this.child.reInit();
+ }
+
+ }).catch((error)=>{
+
+ })
+ }
+ // 取消
+ cancelmodel=()=>{
+ this.setState({
+ Modalstype:false,
+ Loadtype:false,
+ visible:false,
+ Modulationtype:false,
+ Allocationtype:false,
+ Modalstopval:"",
+ ModalCancel:"",
+ ModalSave:"",
+ })
+ }
+
+ getcourse_groupslist=(id)=>{
+ this.setState({
+ course_groupslist:id
+ })
+ }
+
+ setTab = (tab) =>{
+ this.setState({
+ tab
+ })
+ }
+
+ // 关联项目
+ AssociationItems=()=>{
this.setState({
visibles:true
})
- }
- Cancel=()=>{
+ }
+ Cancel=()=>{
this.setState({
visibles:false
})
- }
- // 取消关联
- cannelAssociation=()=>{
+ }
+ // 取消关联
+ cannelAssociation=()=>{
this.setState({
Modalstype:true,
Modalstopval:"确定要取消该项目关联?",
ModalCancel:this.cannerassocition,
ModalSave:this.savetassociton
})
- }
- savetassociton=()=>{
+ }
+ savetassociton=()=>{
this.cannerassocition();
let {questionslist}=this.state;
let url = "/graduation_tasks/"+questionslist.task_id+"/graduation_works/cancel_relate_project.json";
@@ -274,7 +266,7 @@ class GraduationTaskDetail extends Component{
})
}
- cannerassocition=()=>{
+ cannerassocition=()=>{
this.setState({
Modalstype:false,
Modalstopval:"",
@@ -283,10 +275,10 @@ class GraduationTaskDetail extends Component{
loadtype:false,
visibles:false
})
- }
- // 补交附件
- handaccessory=()=>{
- // let {taskslistdata}=this.state;
+ }
+ // 补交附件
+ handaccessory=()=>{
+ // let {taskslistdata}=this.state;
// let courseId=this.props.match.params.coursesId;
//
// let url="/courses/"+courseId+"/graduation_tasks/"+taskslistdata.work_id+"/appraise"
@@ -300,130 +292,129 @@ class GraduationTaskDetail extends Component{
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 {
- questionslist ,
- tab ,
- visibles ,
- Modalstype,
- Modalstopval,
- ModalCancel,
- ModalSave,
- acrossVisible
- } = this.state
-
- const commom = {
- setTab:this.setTab,
- getdatas:this.getdatas
- }
- return(
-
- {
- questionslist &&
-
-
this.getcourse_groupslist(id)}
- />
- {/*关联项目*/}
- {visibles===true?
- this.Cancel()}
- taskid={ questionslist && questionslist.task_id }
- funlist={this.resetList}
- />
- :""}
-
- {this.state.avisible===true?:""}
- {/*提示*/}
-
-
- {
- acrossVisible &&
-
- }
-
-
- {questionslist.course_name}
- >
- {questionslist.graduation_name}
- >
- 任务详情
-
-
-
- {questionslist.task_name}
-
-
-
返回
-
-
-
-
-
任务列表
-
毕设描述
-
设置
-
- {/*
导出成绩*/}
- {/*{this.props.isAdmin()?
导出成绩:""}*/}
- {/*{this.props.isAdmin()?
导出作品附件:""}*/}
-
-
- {this.props.isAdmin()?
- 导出
-
- :""}
- {questionslist.work_status===undefined||questionslist.work_status===null||questionslist.work_status.length===0?"":questionslist.work_status.map((item,key)=>{
- return(
-
+
+ {this.props.isAdmin()?
+ 导出
+
+ :""}
+ {questionslist.work_status===undefined||questionslist.work_status===null||questionslist.work_status.length===0?"":questionslist.work_status.map((item,key)=>{
+ return(
+
{item==="提交作品"?提交作品:""}
- {item==="补交作品"?补交作品:""}
- {item==="修改作品"?修改作品:""}
- {item==="查看作品"?查看作品 :""}
- {item==="创建项目"?创建项目:""}
- {item==="关联项目"?关联项目:""}
- {item==="取消关联"?取消关联:""}
- {item==="补交附件"?补交附件:""}
+ {item==="补交作品"?补交作品:""}
+ {item==="修改作品"?修改作品:""}
+ {item==="查看作品"?查看作品 :""}
+ {item==="创建项目"?创建项目:""}
+ {item==="关联项目"?关联项目:""}
+ {item==="取消关联"?取消关联:""}
+ {item==="补交附件"?补交附件:""}
- )
- })}
-
- {/*项目在线质量检测*/}
- { this.props.isAdmin() ? questionslist.status===1 ? { this.end()} }>立即截止 : "" : "" }
- { this.props.isAdmin() ? questionslist.status===0 ? { this.publish()} }>立即发布 : "" : "" }
- { this.props.isAdmin() && questionslist.cross_comment ? 交叉评阅设置 : "" }
- { this.props.isAdmin() ? 编辑任务 : "" }
-
-
-
-
- ()
- }
- >
-
- ()
- }
- >
-
- ()
- }>
-
-
-
- }
-
-
- )
- }
+ )
+ })}
+
+ {/*项目在线质量检测*/}
+ { this.props.isAdmin() ? questionslist.status===1 ? { this.end()} }>立即截止 : "" : "" }
+ { this.props.isAdmin() ? questionslist.status===0 ? { this.publish()} }>立即发布 : "" : "" }
+ { this.props.isAdmin() && questionslist.cross_comment ? 交叉评阅设置 : "" }
+ { this.props.isAdmin() ? 编辑任务 : "" }
+
+
+
+
+ ()
+ }
+ >
+
+ ()
+ }
+ >
+
+ ()
+ }>
+
+
+