From 386d0497d52e91c8bb80339ac285c6110d4712df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Sat, 21 Sep 2019 14:47:44 +0800
Subject: [PATCH 019/200] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js b/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
index ca8129170..494cc89f8 100644
--- a/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
+++ b/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
@@ -762,7 +762,7 @@ class EcCourseEvaluationsbottom extends Component {
{
- achievement_list&&achievement_list.length===0?
}/>:achievement_list&&achievement_list.map((item,key)=>{
+ achievement_list===undefined?"":achievement_list&&achievement_list.length===0?
}/>:achievement_list&&achievement_list.map((item,key)=>{
return(
{
From dd97a689c84e92b26938edfbdc1b504bc959baee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Sat, 21 Sep 2019 15:01:32 +0800
Subject: [PATCH 020/200] =?UTF-8?q?=E8=B0=83=E6=95=B4bd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../react/src/modules/ecs/EcSetting/index.js | 10 +++++-
.../ecs/curriculum/CurriculumSubpage.js | 34 +++++++++++++++++++
.../EcCourseEvaluationsbottom.js | 3 +-
3 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
diff --git a/public/react/src/modules/ecs/EcSetting/index.js b/public/react/src/modules/ecs/EcSetting/index.js
index d85d10aec..7c546c595 100644
--- a/public/react/src/modules/ecs/EcSetting/index.js
+++ b/public/react/src/modules/ecs/EcSetting/index.js
@@ -19,6 +19,11 @@ const Curriculum=Loadable({
loader: () => import('../../../modules/ecs/curriculum/Curriculum'),
loading: Loading,
});
+const CurriculumSubpage=Loadable({
+ loader: () => import('../../../modules/ecs/curriculum/CurriculumSubpage'),
+ loading: Loading,
+});
+
const TrainingObjective=Loadable({
loader: () => import('./TrainingObjective/index'),
loading: Loading,
@@ -128,8 +133,11 @@ class EcSetting extends React.Component {
() }>
{/*课程体系*/}
-
() }>
+ {/*课程体系资源子页面Subpage*/}
+
() }>
{/*课程体系VS毕业要求*/}
() }>
diff --git a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
new file mode 100644
index 000000000..425bc064e
--- /dev/null
+++ b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
@@ -0,0 +1,34 @@
+import React, { Component } from 'react';
+
+class CurriculumSubpage extends Component {
+ //测试用
+ constructor(props) {
+ super(props)
+ // console.log(props);
+ }
+
+ componentWillMount(){
+ }
+ componentDidMount(){
+ // 起始页面
+ // console.log(this.props);
+ console.log("CurriculumSubpage");
+ console.log(this.props.match.params.type);
+ this.props.Ontitine(this.props.match.params.type);
+ console.log(this.props.match.params);
+ }
+
+
+ render() {
+ // console.log("Curriculumtwo");
+ // console.log(this.props);
+ return (
+
+ 测试
+
+ )
+ }
+
+
+}
+export default CurriculumSubpage;
\ No newline at end of file
diff --git a/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js b/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
index 494cc89f8..59a8a560e 100644
--- a/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
+++ b/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
@@ -54,7 +54,8 @@ class EcCourseEvaluationsbottom extends Component {
getec_course_achievement_methods=()=>{
const {newec_course_idbottom}=this.state;
if(newec_course_idbottom!=undefined){
- const url = `/ec_course_achievement_methods?ec_course_id=`+newec_course_idbottom;
+ // const url ='ec_courses/:course_id/course_targets.json';
+ // const url = `/ec_course_achievement_methods?ec_course_id=`+newec_course_idbottom;
axios.get(url, {
withCredentials: true,
})
From 65f489fc75db66de602278a72ea07cd73abe0b1b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Sat, 21 Sep 2019 15:02:40 +0800
Subject: [PATCH 021/200] =?UTF-8?q?=E8=B0=83=E6=95=B4bd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/modules/ecs/curriculum/CurriculumSubpage.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
index 425bc064e..d670900e0 100644
--- a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
+++ b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
@@ -13,8 +13,6 @@ class CurriculumSubpage extends Component {
// 起始页面
// console.log(this.props);
console.log("CurriculumSubpage");
- console.log(this.props.match.params.type);
- this.props.Ontitine(this.props.match.params.type);
console.log(this.props.match.params);
}
From 4f907991aa1ee3b0f6ea7661437cce583aaa0f36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Sat, 21 Sep 2019 16:45:21 +0800
Subject: [PATCH 022/200] =?UTF-8?q?=E8=B0=83=E6=95=B4bd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/modules/ecs/curriculum/CurriculumSubpage.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
index d670900e0..9037705d7 100644
--- a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
+++ b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
@@ -15,6 +15,9 @@ class CurriculumSubpage extends Component {
console.log("CurriculumSubpage");
console.log(this.props.match.params);
}
+ Curriculumstructure=()=>{
+ this.props.history.push('/ecs/major_schools/:majorId/years/:yearId/subpage/courses')
+ }
render() {
@@ -22,7 +25,7 @@ class CurriculumSubpage extends Component {
// console.log(this.props);
return (
- 测试
+ this.Curriculumstructure()}>测试
)
}
From 493dae25c2e045e1c3b678e64d353006f12732df Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Tue, 24 Sep 2019 17:19:39 +0800
Subject: [PATCH 023/200] init
---
.../EcSetting/reachCalculationInfo/index.js | 685 ++++++++++++++++++
1 file changed, 685 insertions(+)
create mode 100644 public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
new file mode 100644
index 000000000..da53acc7b
--- /dev/null
+++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
@@ -0,0 +1,685 @@
+import React, { Component } from 'react';
+
+import classNames from 'classnames'
+
+import axios from 'axios';
+
+import { Table, Divider, Tag, Checkbox, InputNumber, Spin, Icon } from 'antd';
+
+import EcTitleCourseEvaluations from '../ecTitle/ecTitle'
+import { ECModalHOC } from '../common/ECModalHOC'
+
+import 'antd/lib/style/index.css';
+
+import './style.css'
+
+
+const onCheckBoxClick = (that, rowData) =>{
+ console.log(rowData)
+}
+const testData = {"calculation_data":[{"first_level":1,"first_leval_data":[{"second_level":"1.1","course_data":[{"course_name":"\u9ad8\u7b49\u6570\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u7ebf\u6027\u4ee3\u6570","target_value":null,"real_value":null,"status":null},{"course_name":"\u6982\u7387\u8bba\u4e0e\u6570\u7406\u7edf\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u79bb\u6563\u6570\u5b66","target_value":null,"real_value":null,"status":null}]},{"second_level":"1.2","course_data":[{"course_name":"\u81ea\u7136\u79d1\u5b66\u54f2\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u7269\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u5316\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u751f\u7269\u5b66\u57fa\u7840","target_value":null,"real_value":null,"status":null}]},{"second_level":"1.3","course_data":[{"course_name":"\u5de5\u7a0b\u5236\u56fe\u57fa\u7840\u53ca\u5de5\u7a0b\u5236\u56fe\u57fa\u7840\u5b9e\u9a8c","target_value":null,"real_value":null,"status":null},{"course_name":"\u519b\u4e8b\u4fe1\u606f\u6280\u672f\u57fa\u7840","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u8ba1\u7b97\u673a\u57fa\u7840B","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u7a0b\u5e8f\u8bbe\u8ba1B","target_value":null,"real_value":null,"status":null}]},{"second_level":"1.4","course_data":[{"course_name":"\u64cd\u4f5c\u7cfb\u7edf","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u636e\u5e93\u539f\u7406","target_value":0,"real_value":0,"status":false},{"course_name":"\u8ba1\u7b97\u673a\u7f51\u7edc","target_value":null,"real_value":null,"status":null},{"course_name":"\u8f6f\u4ef6\u5de5\u7a0b","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u539f\u7406","target_value":null,"real_value":null,"status":null}]},{"second_level":"1.5","course_data":[{"course_name":"\u4fe1\u53f7\u5206\u6790\u4e0e\u5904\u7406\u5bfc\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u5b57\u56fe\u50cf\u5904\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u64cd\u4f5c\u7cfb\u7edf\u7efc\u5408\u5b9e\u8df5","target_value":null,"real_value":null,"status":null}]}]},{"first_level":2,"first_leval_data":[{"second_level":"2.1","course_data":[{"course_name":"\u79bb\u6563\u6570\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u636e\u7ed3\u6784","target_value":null,"real_value":null,"status":null},{"course_name":"\u7b97\u6cd5\u8bbe\u8ba1\u4e0e\u5206\u6790","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u503c\u5206\u6790","target_value":null,"real_value":null,"status":null}]},{"second_level":"2.2","course_data":[{"course_name":"\u81ea\u7136\u79d1\u5b66\u54f2\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u7269\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u7269\u7406\u5b9e\u9a8c","target_value":null,"real_value":null,"status":null},{"course_name":"\u7535\u8def\u4e0e\u7535\u5b50\u5b66\u57fa\u7840","target_value":null,"real_value":null,"status":null}]},{"second_level":"2.3","course_data":[{"course_name":"\u8f6f\u4ef6\u5de5\u7a0b","target_value":null,"real_value":null,"status":null},{"course_name":"\u4eba\u5de5\u667a\u80fd\u5bfc\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u5b57\u7535\u5b50\u6280\u672f\u57fa\u7840B","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u5b57\u7cfb\u7edf\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u56fe\u5f62\u5b66","target_value":null,"real_value":null,"status":null}]}]},{"first_level":3,"first_leval_data":[{"second_level":"3.1","course_data":[{"course_name":"\u5927\u5b66\u8ba1\u7b97\u673a\u57fa\u7840B","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u7a0b\u5e8f\u8bbe\u8ba1B","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u539f\u7406\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u636e\u5e93\u539f\u7406","target_value":0,"real_value":0,"status":false},{"course_name":"\u7a0b\u5e8f\u8bbe\u8ba1\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null}]},{"second_level":"3.2","course_data":[{"course_name":"\u8f6f\u4ef6\u5de5\u7a0b","target_value":null,"real_value":null,"status":null},{"course_name":"\u5d4c\u5165\u5f0f\u7cfb\u7edf","target_value":null,"real_value":null,"status":null},{"course_name":"\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4f53\u7cfb\u7ed3\u6784","target_value":null,"real_value":null,"status":null}]},{"second_level":"3.3","course_data":[{"course_name":"\u4fe1\u606f\u5b89\u5168\u5bfc\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u8f6f\u4ef6\u5de5\u7a0b","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4f53\u7cfb\u7ed3\u6784","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u7f51\u7edc","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null}]},{"second_level":"3.4","course_data":[{"course_name":"\u7f16\u8bd1\u539f\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u79bb\u6563\u6570\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u8ba1\u7b97\u673a\u57fa\u7840B","target_value":null,"real_value":null,"status":null}]}]},{"first_level":4,"first_leval_data":[{"second_level":"4.1","course_data":[{"course_name":"\u7b97\u6cd5\u8bbe\u8ba1\u4e0e\u5206\u6790","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u503c\u5206\u6790","target_value":null,"real_value":null,"status":null},{"course_name":"\u4fe1\u53f7\u5206\u6790\u4e0e\u5904\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u7f16\u8bd1\u539f\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4f53\u7cfb\u7ed3\u6784","target_value":null,"real_value":null,"status":null}]}]},{"first_level":5,"first_leval_data":[{"second_level":"5.1","course_data":[{"course_name":"\u8ba1\u7b97\u673a\u539f\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u539f\u7406\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u64cd\u4f5c\u7cfb\u7edf","target_value":null,"real_value":null,"status":null},{"course_name":"\u64cd\u4f5c\u7cfb\u7edf\u7efc\u5408\u5b9e\u8df5","target_value":null,"real_value":null,"status":null},{"course_name":"\u6570\u636e\u5e93\u539f\u7406","target_value":0,"real_value":0,"status":false}]}]},{"first_level":6,"first_leval_data":[{"second_level":"6.1","course_data":[{"course_name":"\u4fe1\u606f\u5b89\u5168\u5bfc\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null},{"course_name":"\u793e\u4f1a\u5b9e\u8df5","target_value":null,"real_value":null,"status":null},{"course_name":"\u8f6f\u4ef6\u5b89\u5168","target_value":null,"real_value":null,"status":null},{"course_name":"\u4eba\u5de5\u667a\u80fd\u5bfc\u8bba","target_value":null,"real_value":null,"status":null}]}]},{"first_level":7,"first_leval_data":[{"second_level":"7.1","course_data":[{"course_name":"\u4fe1\u606f\u5b89\u5168\u5bfc\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null},{"course_name":"\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null}]}]},{"first_level":8,"first_leval_data":[{"second_level":"8.1","course_data":[{"course_name":"\u601d\u60f3\u9053\u5fb7\u4fee\u517b\u4e0e\u6cd5\u5f8b\u57fa\u7840","target_value":null,"real_value":null,"status":null},{"course_name":"\u5f53\u4ee3\u4e16\u754c\u7ecf\u6d4e\u4e0e\u653f\u6cbb","target_value":null,"real_value":null,"status":null},{"course_name":"\u96c6\u4e2d\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null},{"course_name":"\u515a\u56e2\u6d3b\u52a8","target_value":null,"real_value":null,"status":null}]},{"second_level":"8.2","course_data":[{"course_name":"\u81ea\u7136\u79d1\u5b66\u54f2\u5b66","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null},{"course_name":"\u96c6\u4e2d\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null},{"course_name":"\u6a21\u62df\u5c97\u4f4d\u4efb\u804c","target_value":null,"real_value":null,"status":null}]}]},{"first_level":9,"first_leval_data":[{"second_level":"9.1","course_data":[{"course_name":"\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bfe\u7a0b\u8bbe\u8ba1","target_value":null,"real_value":null,"status":null},{"course_name":"\u4eba\u673a\u4ea4\u4e92","target_value":null,"real_value":null,"status":null},{"course_name":"\u519b\u4e8b\u4fe1\u606f\u6280\u672f\u57fa\u7840","target_value":null,"real_value":null,"status":null},{"course_name":"\u6a21\u62df\u5c97\u4f4d\u4efb\u804c","target_value":null,"real_value":null,"status":null},{"course_name":"\u519b\u653f\u57fa\u7840\u8bad\u7ec3","target_value":null,"real_value":null,"status":null}]}]},{"first_level":10,"first_leval_data":[{"second_level":"10.1","course_data":[{"course_name":"\u82f1\u8bed\u5e94\u7528\u5199\u4f5cA","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null},{"course_name":"\u793e\u4f1a\u5b9e\u8df5","target_value":null,"real_value":null,"status":null},{"course_name":"\u6a21\u62df\u5c97\u4f4d\u4efb\u804c","target_value":null,"real_value":null,"status":null},{"course_name":"\u515a\u56e2\u6d3b\u52a8","target_value":null,"real_value":null,"status":null}]},{"second_level":"10.2","course_data":[{"course_name":"\u5f53\u4ee3\u4e16\u754c\u7ecf\u6d4e\u4e0e\u653f\u6cbb","target_value":null,"real_value":null,"status":null},{"course_name":"\u5927\u5b66\u82f1\u8bed","target_value":null,"real_value":null,"status":null},{"course_name":"\u82f1\u8bed\u5e94\u7528\u5199\u4f5cA","target_value":null,"real_value":null,"status":null},{"course_name":"\u7ecf\u5e38\u6027\u601d\u60f3\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null}]}]},{"first_level":11,"first_leval_data":[{"second_level":"11.1","course_data":[{"course_name":"\u5f53\u4ee3\u4e16\u754c\u7ecf\u6d4e\u4e0e\u653f\u6cbb","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null},{"course_name":"\u9a6c\u514b\u601d\u4e3b\u4e49\u57fa\u672c\u539f\u7406","target_value":null,"real_value":null,"status":null}]},{"second_level":"11.2","course_data":[{"course_name":"\u4fe1\u606f\u68c0\u7d22","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u6545\u969c\u8bca\u65ad\u548c\u7ef4\u62a4","target_value":null,"real_value":null,"status":null},{"course_name":"\u7f51\u7ad9\u8bbe\u8ba1\u4e0e\u7ef4\u62a4","target_value":null,"real_value":null,"status":null},{"course_name":"\u96c6\u4e2d\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null},{"course_name":"\u7ecf\u5e38\u6027\u601d\u60f3\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null}]}]},{"first_level":12,"first_leval_data":[{"second_level":"12.1","course_data":[{"course_name":"\u4fe1\u606f\u68c0\u7d22","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u4e0e\u793e\u4f1a","target_value":null,"real_value":null,"status":null},{"course_name":"\u7f51\u7ad9\u8bbe\u8ba1\u4e0e\u7ef4\u62a4","target_value":null,"real_value":null,"status":null},{"course_name":"\u8ba1\u7b97\u673a\u6545\u969c\u8bca\u65ad\u548c\u7ef4\u62a4","target_value":null,"real_value":null,"status":null},{"course_name":"\u7ecf\u5e38\u6027\u601d\u60f3\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null}]}]},{"first_level":13,"first_leval_data":[{"second_level":"13.1","course_data":[{"course_name":"\u9a6c\u514b\u601d\u4e3b\u4e49\u57fa\u672c\u539f\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u6bdb\u6cfd\u4e1c\u601d\u60f3\u548c\u4e2d\u56fd\u7279\u8272\u793e\u4f1a\u4e3b\u4e49\u7406\u8bba\u4f53\u7cfb\u6982\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u4e2d\u56fd\u8fd1\u73b0\u4ee3\u53f2\u7eb2\u8981","target_value":null,"real_value":null,"status":null},{"course_name":"\u96c6\u4e2d\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null}]},{"second_level":"13.2","course_data":[{"course_name":"\u601d\u60f3\u9053\u5fb7\u4fee\u517b\u4e0e\u6cd5\u5f8b\u57fa\u7840","target_value":null,"real_value":null,"status":null},{"course_name":"\u9a6c\u514b\u601d\u4e3b\u4e49\u57fa\u672c\u539f\u7406","target_value":null,"real_value":null,"status":null},{"course_name":"\u6bdb\u6cfd\u4e1c\u601d\u60f3\u548c\u4e2d\u56fd\u7279\u8272\u793e\u4f1a\u4e3b\u4e49\u7406\u8bba\u4f53\u7cfb\u6982\u8bba","target_value":null,"real_value":null,"status":null},{"course_name":"\u96c6\u4e2d\u653f\u6cbb\u6559\u80b2","target_value":null,"real_value":null,"status":null}]},{"second_level":"13.3","course_data":[{"course_name":"\u519b\u653f\u57fa\u7840\u8bad\u7ec3","target_value":null,"real_value":null,"status":null},{"course_name":"\u519b\u4e8b\u4fe1\u606f\u6280\u672f\u57fa\u7840","target_value":null,"real_value":null,"status":null},{"course_name":"\u6a21\u62df\u5c97\u4f4d\u4efb\u804c","target_value":null,"real_value":null,"status":null}]}]}],"calculation_value":0.0};
+/**
+ TODO 根据data计算最大课程数量
+ 然后课程数量的列宽是900,然后平均分配给每个列
+ */
+function getNumArray(data_args) {
+ let num_array = [];
+ if (data_args) {
+ data_args.forEach(item => {
+ num_array.push(item.first_leval_data.length)
+ })
+ }
+ return num_array;
+}
+let num_array = []
+// const num_array = [1, 3, 1, 1]
+
+
+let current_num_index = 0;
+// 获取位于当前分组之前的总行数
+function getNum(index) {
+ let sum = 0
+ for(let i = 0; i <= current_num_index - 1; i++) {
+ sum += num_array[i];
+ }
+ sum = sum * 3;
+ if (index != 0 && index == sum + num_array[current_num_index] * 3
+ && current_num_index < num_array.length - 1) {
+ sum = sum + num_array[current_num_index] * 3
+ current_num_index++;
+ }
+ return sum
+}
+const buildColumns = (that) => {
+ const stdColumnNum = 8;
+ let rowSum = 0;
+ current_num_index = 0;
+ const cols = [{
+ title: '毕业要求',
+ dataIndex: 'firstCol',
+ key: 'firstCol',
+ children: [{
+ title: '一级',
+ dataIndex: 'f_l',
+ key: 'f_l',
+ width: 65,
+ render: (value, row, index) => {
+ rowSum = getNum(index);
+
+ const obj = {
+ children: current_num_index + 1,
+ props: {},
+ };
+
+
+ if (index - rowSum === 0) {
+ obj.props.rowSpan = num_array[current_num_index] * 3;
+ } else {
+ obj.props.rowSpan = 0;
+ }
+ return obj
+ }
+ }, {
+ title: '二级',
+ dataIndex: 's_l',
+ key: 's_l',
+ width: 65,
+ render: (value, row, index) => {
+ const _i_remain = index % 3;
+ const _i = Math.floor( (index - rowSum) / 3) + 1
+ const obj = {
+ children: `${current_num_index + 1}-${_i}`,
+ props: {},
+ };
+ if (_i_remain === 0) {
+ obj.props.rowSpan = 3;
+ } else {
+ obj.props.rowSpan = 0;
+ }
+ return obj
+ }
+ }]
+ }, {
+ title: '课程名称',
+ dataIndex: 'c_n',
+ key: 'c_n',
+ children: [{
+ title: '课程1',
+ dataIndex: 'c1',
+ key: 'c1',
+ width: 90,
+ }, {
+ title: '课程2',
+ dataIndex: 'c2',
+ key: 'c2',
+ width: 90,
+ }, {
+ title: '课程3',
+ dataIndex: 'c3',
+ key: 'c3',
+ width: 90,
+ }, {
+ title: '课程4',
+ dataIndex: 'c4',
+ key: 'c4',
+ width: 90,
+ }, {
+ title: '课程5',
+ dataIndex: 'c5',
+ key: 'c5',
+ width: 90,
+ }]
+ }, {
+ title:
+ 课程数量
+ ∑合格标准
+ ∑达成值
+ ,
+ dataIndex: 'g_r',
+ key: 'g_r',
+ width: 100,
+ render: (val, row, index) => {
+ // if row.c1 是数字 row.c1 + row.c2 + ...
+ // 不是数字的话,统计一共有几列
+ // if (row.c1 && isNaN(parseInt(row.c1))) {
+ // 每个小组的第一行,统计一共有几列
+ if (index % 3 === 0) {
+ let _newRow = Object.assign({}, row)
+ delete _newRow.status
+ return
{Object.keys(_newRow).length};
+ } else {
+ let total = 0;
+ for (var key in row) {
+ if (row.hasOwnProperty(key) && row[key]) {
+ total += parseFloat(row[key])
+ }
+ }
+ return total.toFixed(3);
+ }
+ }
+ }, {
+ title: '评价结果',
+ dataIndex: 'e_r',
+ key: 'e_r',
+ width: 40,
+ render: (value, row, index) => {
+ const _i_remain = index % 3;
+ // 未达成
+ const obj = {
+ children: row.status ?
达成
+ :
未达成,
+ props: {},
+ };
+ if (_i_remain === 0) {
+ obj.props.rowSpan = 3;
+ } else {
+ obj.props.rowSpan = 0;
+ }
+ return obj
+ }
+ }]
+ const courseColWidth = 900 / maxCouseCount
+ const courseColArray = []
+ for (var courseIndex = 1; courseIndex <= maxCouseCount; courseIndex++) {
+ courseColArray.push({
+ title: `课程${courseIndex}`,
+ dataIndex: `c${courseIndex}`,
+ key: `c${courseIndex}`,
+ width: courseColWidth,
+ })
+ }
+ if( courseColArray.length) {
+ cols[1].children = courseColArray;
+ }
+ // for (let i = 1; i <= stdColumnNum; i++) {
+ // cols.push({
+ // title: `标准${i}`,
+ // dataIndex: `std${i}`,
+ // key: `std${i}`,
+ // render: (data, row) => {
+ // return
onCheckBoxClick(that, row)}>
+ // }
+ // })
+ // }
+ return cols;
+}
+
+/**
+ innerItem
+ 0:
+ course_data: Array(4)
+ 0: {course_name: "高等数学", target_value: null, real_value: null, status: null}
+ 1: {course_name: "线性代数", target_value: null, real_value: null, status: null}
+ 2: {course_name: "概率论与数理统计", target_value: null, real_value: null, status: null}
+ 3: {course_name: "离散数学", target_value: null, real_value: null, status: null}
+ length: 4
+ __proto__: Array(0)
+ second_level: "1.1"
+ */
+let maxCouseCount = 0;
+
+function getTableData(data_args) {
+ let tableData = []
+ // 最大课程数量,根据这个值动态渲染课程列数
+ maxCouseCount = 0;
+ if (data_args) {
+ data_args.forEach((item, index) => {
+ item.first_leval_data.forEach((innerItem, innerIndex) => {
+ let nameRowData = {};
+ let targetValueRowData = {};
+ let realValueRowData = {};
+ let target_value_total = 0;
+ let real_value_total = 0;
+ // 一个course数组的数据组合成三行table数据
+ innerItem.course_data.forEach((course, courseIndex) => {
+ nameRowData[`c${courseIndex + 1}`] = course.course_name;
+
+ targetValueRowData[`c${courseIndex + 1}`] = course.target_value && course.target_value.toFixed
+ ? course.target_value.toFixed(3) : course.target_value ;
+ if (course.target_value) {
+ target_value_total = target_value_total + course.target_value
+ }
+
+ realValueRowData[`c${courseIndex + 1}`] = course.real_value && course.real_value.toFixed
+ ? course.real_value.toFixed(3) : course.real_value ;
+ if (course.real_value) {
+ real_value_total = real_value_total + course.real_value
+ }
+ })
+ if (real_value_total >= target_value_total && real_value_total != 0) {
+ nameRowData.status = true
+ }
+ maxCouseCount = Math.max(maxCouseCount, innerItem.course_data.length)
+ tableData.push(nameRowData)
+ tableData.push(targetValueRowData)
+ tableData.push(realValueRowData)
+ })
+ })
+ }
+ return tableData;
+}
+
+let tableData = []
+
+
+const data = [
+ {
+ key: '1',
+
+ c1: '数学分析 II1',
+ c2: '数学分析 II2',
+ c3: '大学物理 V',
+ c4: '大学物理实验II',
+ c5: '线性代数 I',
+ c6: '结合论与数理逻辑',
+ c7: '复变函数与积分变换I',
+ c8: '毕业设计',
+ g_r: '8',
+ e_r: '未达成'
+}, {
+ key: '2',
+ c1: '0.140',
+ c2: '0.150',
+ c3: '0.110',
+ c4: '0.120',
+ c5: '0.163',
+ c6: '0.063',
+ c7: '0.053',
+ c8: '0.053',
+ g_r: 0.650
+}, {
+ key: '3',
+ c1: '',
+ c2: '',
+ c3: '',
+ c4: '',
+ c5: '',
+ c6: '',
+ c7: '',
+ c8: '',
+ g_r: '0.000'
+},
+{
+ key: '4',
+
+ c1: '计算概论',
+ c2: '概率论与数理统计I',
+ c3: '图论与组合数学',
+ c4: '算法设计与分析',
+ c5: '毕业设计',
+
+ g_r: '5',
+ e_r: '未达成'
+}, {
+ key: '5',
+ c1: '0.070',
+ c2: '0.210',
+ c3: '0.175',
+ c4: '0.070',
+ c5: '0.175',
+ g_r: '0.700',
+}, {
+ key: '6',
+ c1: '',
+ c2: '',
+ c3: '',
+ c4: '',
+ c5: '',
+ c6: '',
+ c7: '',
+ c8: '',
+ g_r: '0.000',
+},{
+ key: '7',
+
+ c1: 'C语言程序设计Ⅳ',
+ c2: '数据结构Ⅰ',
+ c3: '操作系统',
+ c4: '计算机网络原理Ⅰ',
+ c5: '人工智能',
+ c6: '编译原理',
+ c7: '数据库原理',
+ c8: '软件工程Ⅰ',
+ c9: '面向对象程序设计(C++)',
+ e_r: '未达成'
+
+}, {
+ key: '8',
+ c1: '0.070',
+ c2: '0.070',
+ c3: '0.070',
+ c4: '0.070',
+ c5: '0.070',
+ c6: '0.070',
+ c7: '0.070',
+ c8: '0.070',
+ c9: '0.070',
+ g_r: '0.630',
+
+}, {
+ key: '9',
+ c1: '',
+ c2: '',
+ c3: '',
+ c4: '',
+ c5: '',
+ c6: '',
+ c7: '0.134',
+ c8: '',
+ g_r: '0.134',
+},{
+ key: '10',
+ c1: '计算机组成原理Ⅰ',
+ c2: '数字逻辑与数字电路',
+ c3: '计算机系统结构',
+ c4: '汇编语言程序设计Ⅰ',
+ c5: '接口技术Ⅰ',
+ c6: '模拟电路应用',
+ c7: '微机控制技术Ⅰ',
+ c8: '计算机系统装配与集成',
+ e_r: '未达成'
+
+}, {
+ key: '11',
+ c1: '0.070',
+ c2: '0.070',
+ c3: '0.070',
+ c4: '0.070',
+ c5: '0.070',
+ c6: '0.070',
+ c7: '0.070',
+ c8: '0.070',
+ g_r: '0.560',
+
+}, {
+ key: '12', c1: '', c2: '', c3: '', c4: '', c5: '', c6: '', c7: '', c8: '',
+ g_r: '0.000',
+
+},{
+ key: '13',
+ c1: '数学分析Ⅱ1',
+ c2: '数学分析Ⅱ2',
+ c3: '大学物理Ⅴ',
+ c4: '线性代数Ⅰ ',
+ c5: '概率论与数理统计Ⅰ',
+ c6: '集合论与数理逻辑', c7: '图论与组合数学', c8: '编译原理', c9: '算法设计与分析',
+ e_r: '未达成'
+}, {
+ key: '14',
+ c1: '0.035',
+ c2: '0.056',
+ c3: '0.070',
+ c4: '0.084',
+ c5: '0.035',
+ c6: '0.105',
+ c7: '0.014',
+ c8: '0.084',
+ c: '0.049',
+ g_r: '0.700',
+
+}, {
+ key: '15', c1: '', c2: '', c3: '', c4: '', c5: '', c6: '', c7: '', c8: '',
+ g_r: '0.000',
+
+},{
+ key: '16',
+ c1: '前沿技术讲座',
+ c2: '毕业设计',
+ // c3: '课程1', c4: '课程1', c5: '课程1', c6: '课程1', c7: '课程1', c8: '课程1', e_r: '未达成'
+ e_r: '未达成'
+}, {
+ key: '17', c1: '0.210', c2: '0.490'
+ //, c3: '0.3', c4: '0.3', c5: '0.3', c6: '0.3', c7: '0.3', c8: '0.3',
+ ,g_r: '0.700',
+}, {
+ key: '18', c1: '', c2: '', c3: '', c4: '', c5: '', c6: '', c7: '', c8: '',
+ g_r: '0.000'
+
+}
+];
+
+class GraduatesRequirement extends Component {
+ constructor(props) {
+ super(props)
+ this.state={
+ schooldata:{},
+ ec_year_id:0,
+
+ daChengYuZhiEditableMode: false,
+ daChengYuZhi: 0.1,
+ daChengYuZhiSaved: 0.1,
+
+ calculating: false, // 是否在计算中
+ }
+ }
+ onDaChengYuZhiChange = (value) => {
+ if ( (!window.event || window.event.type == 'blur')
+ && this.state.daChengYuZhi > 1 && value == 1) {
+ this.props.showSingleButtonModal('提示', '达成阈值必须小于等于1')
+ }
+ this.setState({ daChengYuZhi: value });
+ }
+ onDaChengYuZhiCancel = () => {
+ this.setState({ daChengYuZhi: this.state.daChengYuZhiSaved })
+ this.setDaChengYuZhiEditableMode(false)
+ }
+ setDaChengYuZhiEditableMode = (mode) => {
+ this.setState({ daChengYuZhiEditableMode: mode })
+ }
+ saveDaChengYuZhi = () => {
+ let major_school_id =this.props.match.params.major_school_id;
+ let ec_year_id =this.props.match.params.ec_year_id;
+
+ var Url = `/ec_major_schools/${major_school_id}/academic_years/${ec_year_id}/set_calculation_value`;
+ if (this.state.daChengYuZhi == undefined) {
+ this.props.showSingleButtonModal('提示', '达成阈值不能为空!')
+ return;
+ } else if (this.state.daChengYuZhi == 0) {
+ this.props.showSingleButtonModal('提示', '达成阈值必须大于0,且小于等于1')
+ return;
+ }
+ axios.post(Url, {
+ calculation_value : this.state.daChengYuZhi
+ }).then((response) => {
+
+ if( response.data.status === 1 ) {
+ this.setState({ daChengYuZhiSaved: this.state.daChengYuZhi })
+ this.setDaChengYuZhiEditableMode(false)
+ }else {
+ // 其他message
+ }
+ }).catch((error) => {
+ console.log(error)
+ })
+
+
+ }
+ componentDidMount(){
+ window.document.title = '达成度评价结果';
+ let ec_year_id =this.props.match.params.ec_year_id;
+ this.setState({
+ ec_year_id:ec_year_id
+ })
+ this.fetchData(ec_year_id)
+
+ const Url =`/ec_major_schools/get_navigation_data?ec_year_id=`+ec_year_id;
+ axios.get(Url, {
+ // withCredentials: true,
+ })
+ .then((response) => {
+ if(response.status===200){
+ // if(response.data.allow_visit===false){
+ // window.location.href="/403"
+ // }
+ this.setState({
+ schooldata:response.data
+ })
+ }
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+ fetchData(ec_year_id) {
+ // const url = `ec_courses/7/get_calculation_data`
+ const url = `/ec_courses/get_calculation_data?ec_year_id=${ec_year_id}`
+
+ // num_array = getNumArray(testData.calculation_data);
+ // tableData = getTableData(testData.calculation_data)
+ // return
+
+ axios.get(url, {
+ // withCredentials: true,
+ })
+ .then((response) => {
+ if (response.data.calculation_data) {
+ num_array = getNumArray(response.data.calculation_data);
+ tableData = getTableData(response.data.calculation_data)
+ // 先计算,再触发render
+ this.setState({
+ calculationData: response.data.calculation_data,
+ daChengYuZhi: response.data.calculation_value,
+ daChengYuZhiSaved: response.data.calculation_value,
+ course_ids: response.data.course_ids,
+ is_manager: response.data.is_manager,
+ calculating: false,
+ })
+ }
+
+
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+ onCalculate = () => {
+ if (!this.state.course_ids || this.state.course_ids.length === 0) {
+ // 没有课程数据
+ this.props.showSingleButtonModal('提示', '请先配置基础数据')
+
+ return;
+ }
+
+ this.setState({ calculating: true })
+ var Url = '/ec_courses/sync_all_course_data';
+ /**
+ # POST: /ec_courses/sync_all_course_data
+ # 参数:
+ # course_ids: [1,2,3,4]
+ */
+ axios.post(Url, {
+ course_ids: this.state.course_ids
+ }).then((response) => {
+ // 计算需要一定的时间,让按钮转动
+
+ if( response.data.status === 1 ) {
+ let ec_year_id = this.props.match.params.ec_year_id;
+ this.fetchData(ec_year_id);
+ this.props.showSingleButtonModal('提示', '计算完毕')
+ } else {
+
+ }
+ }).catch((error) => {
+ this.setState({ calculating: false })
+
+ console.log(error)
+ })
+ }
+ render() {
+ const { match, history, current_user } = this.props
+ const { daChengYuZhiEditableMode, daChengYuZhi, daChengYuZhiSaved, is_manager } = this.state
+ let { schooldata } =this.state;
+ let { example_major, template_major } = schooldata;
+ let showCalculateButton = is_manager;
+ // let showCalculateButton = false;
+ // if (example_major && current_user.admin || !example_major && template_major) {
+ // showCalculateButton = true;
+ // }
+ return (
+
+
+
+
+
+
+
+
+ 达成阈值:
+ { daChengYuZhiEditableMode ?
+
+
+ 确定
+
+ 取消
+
+
+ :
+
+ {daChengYuZhiSaved}
+ {/* data-tip-down="编辑" */}
+ { this.setDaChengYuZhiEditableMode(true) }}
+ class="iconfont icon-bianjidaibeijing color-green" idkey="0"
+ style={{ float: 'left', marginTop: '-3px', marginLeft: '3px', cursor: 'pointer' }}>
+
+ }
+
+ {/*
+
+ */}
+
+ 导出
+ {/* /ec_major_schools/3/academic_years/5/export_reach_requirements_data.xls
+ let major_school_id =this.props.match.params.major_school_id;
+ let ec_year_id =this.props.match.params.ec_year_id;
+ */}
+
+ { showCalculateButton && ( this.state.calculating === true ?
+
+ 计算中...
+ :
+
+ 计算
+ )
+ }
+
+
+
+ {/* { this.state.calculating == true ?
+
}>
+ : } */}
+
+
+
+
+
+ );
+ }
+}
+
+export default ECModalHOC() (GraduatesRequirement) ;
From e7a6146d19da8efc114fc8b7b0762ad5353d906e Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Tue, 24 Sep 2019 17:34:16 +0800
Subject: [PATCH 024/200] init
---
.../react/src/modules/ecs/EcSetting/index.js | 5 +-
.../EcSetting/reachCalculationInfo/index.js | 18 ++---
.../EcSetting/reachCalculationInfo/index.scss | 74 +++++++++++++++++++
3 files changed, 83 insertions(+), 14 deletions(-)
create mode 100644 public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss
diff --git a/public/react/src/modules/ecs/EcSetting/index.js b/public/react/src/modules/ecs/EcSetting/index.js
index 7c546c595..7d6f8de9d 100644
--- a/public/react/src/modules/ecs/EcSetting/index.js
+++ b/public/react/src/modules/ecs/EcSetting/index.js
@@ -142,8 +142,11 @@ class EcSetting extends React.Component {
() }>
+
+ {/*达成度评价结果*/}
+
() }>
-
)
}
diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
index da53acc7b..170b8d7fe 100644
--- a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
+++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
@@ -6,12 +6,12 @@ import axios from 'axios';
import { Table, Divider, Tag, Checkbox, InputNumber, Spin, Icon } from 'antd';
-import EcTitleCourseEvaluations from '../ecTitle/ecTitle'
-import { ECModalHOC } from '../common/ECModalHOC'
+// import EcTitleCourseEvaluations from '../ecTitle/ecTitle'
+import { ECModalHOC } from '../../common/ECModalHOC'
import 'antd/lib/style/index.css';
-import './style.css'
+import './style.scss'
const onCheckBoxClick = (that, rowData) =>{
@@ -596,14 +596,7 @@ class GraduatesRequirement extends Component {
// showCalculateButton = true;
// }
return (
-
+
);
}
}
diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss
new file mode 100644
index 000000000..56a260b5e
--- /dev/null
+++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss
@@ -0,0 +1,74 @@
+.newMain {
+ height: 100%;
+ }
+ .contentWrap {
+ height: 100%;
+ overflow: auto;
+ }
+ .bor-bottom-greyE {
+ border-bottom: 1px solid #EEEEEE!important;
+ }
+ .padding20-30 {
+ padding: 20px 30px;
+ box-sizing: border-box;
+ }
+ .clearfix {
+ clear: both;
+ zoom: 1;
+ }
+ .bor-bottom-greyE {
+ border-bottom: 1px solid #EEEEEE!important;
+ }
+ .courseSystem, .SystemParameters {
+ font-family: MicrosoftYaHei;
+ font-weight: 400;
+ line-height: 45px;
+ }
+ .courseSystem {
+ font-size: 18px;
+ color: #05101a;
+ }
+ .font-18 {
+ font-size: 18px!important;
+ }
+ .fl {
+ float: left!important;
+ }
+ .backgroundFFF{
+ background: #FFF;
+ }
+ .ant-table-body table thead tr th{
+ background: #FFF;
+ }
+ .ant-table-body table .ant-table-thead :nth-child(1) th{
+ border-right: 1px solid #e8e8e8;
+ }
+ .ant-table-body table .ant-table-thead :nth-child(1) :nth-child(4){
+ /* border-right: 1px solid transparent; */
+ }
+ .ant-table-body table .ant-table-thead :nth-child(2) th{
+ border-top: 1px solid #e8e8e8;
+ border-right: 1px solid #e8e8e8;
+ }
+
+ .ant-table-bordered .ant-table-thead > tr > th, .ant-table-bordered .ant-table-tbody > tr > td {
+ text-align: center;
+ }
+
+ .graduatesRequirement .ant-table-wrapper {
+ padding: 20px 10px;
+ background: #fff;
+ margin-top: -16px;
+ margin-bottom: 40px;
+ }
+
+ .graduatesRequirement .ant-table-thead > tr.ant-table-row-hover:not(.ant-table-expanded-row) > td,
+ .graduatesRequirement .ant-table-tbody > tr.ant-table-row-hover:not(.ant-table-expanded-row) > td,
+ .graduatesRequirement .ant-table-thead > tr:hover:not(.ant-table-expanded-row) > td,
+ .graduatesRequirement .ant-table-tbody > tr:hover:not(.ant-table-expanded-row) > td {
+ background: transparent !important;
+ }
+
+ .mt60{
+ margin-top:60px;
+ }
\ No newline at end of file
From 8e6882e8bc20589002ee5d52e6532cd12c191f35 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 25 Sep 2019 10:51:41 +0800
Subject: [PATCH 025/200] =?UTF-8?q?table=20=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../react/src/modules/ecs/EcSetting/index.js | 7 ++-
.../EcSetting/reachCalculationInfo/index.js | 57 ++++++++++++++++---
2 files changed, 56 insertions(+), 8 deletions(-)
diff --git a/public/react/src/modules/ecs/EcSetting/index.js b/public/react/src/modules/ecs/EcSetting/index.js
index 7d6f8de9d..69d309c46 100644
--- a/public/react/src/modules/ecs/EcSetting/index.js
+++ b/public/react/src/modules/ecs/EcSetting/index.js
@@ -36,6 +36,11 @@ const CourseSupports=Loadable({
loader: () => import('./CourseSupports/index'),
loading: Loading,
});
+const ReachCalculationInfo=Loadable({
+ loader: () => import('./reachCalculationInfo/index'),
+ loading: Loading,
+});
+
class EcSetting extends React.Component {
constructor (props) {
@@ -145,7 +150,7 @@ class EcSetting extends React.Component {
{/*达成度评价结果*/}
() }>
+ render={ (props) => (
) }>
)
diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
index 170b8d7fe..f0bb082c9 100644
--- a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
+++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
@@ -11,7 +11,7 @@ import { ECModalHOC } from '../../common/ECModalHOC'
import 'antd/lib/style/index.css';
-import './style.scss'
+import './index.scss'
const onCheckBoxClick = (that, rowData) =>{
@@ -26,7 +26,7 @@ function getNumArray(data_args) {
let num_array = [];
if (data_args) {
data_args.forEach(item => {
- num_array.push(item.first_leval_data.length)
+ num_array.push(item.graduation_subitems.length)
})
}
return num_array;
@@ -258,6 +258,49 @@ function getTableData(data_args) {
}
return tableData;
}
+// new
+function getTableData(data_args) {
+let tableData = []
+ // 最大课程数量,根据这个值动态渲染课程列数
+ maxCouseCount = 0;
+ if (data_args) {
+ data_args.forEach((item, index) => {
+ item.graduation_subitems.forEach((innerItem, innerIndex) => {
+ let nameRowData = {};
+ let targetValueRowData = {};
+ let realValueRowData = {};
+ let target_value_total = 0;
+ let real_value_total = 0;
+ // 一个course数组的数据组合成三行table数据
+ innerItem.course_supports.forEach((course, courseIndex) => {
+ nameRowData[`c${courseIndex + 1}`] = course.course_name;
+
+ targetValueRowData[`c${courseIndex + 1}`] = course.reach_criteria
+ // course.target_value && course.target_value.toFixed
+ // ? course.target_value.toFixed(3) : course.target_value ;
+ // if (course.target_value) {
+ // target_value_total = target_value_total + course.target_value
+ // }
+
+ realValueRowData[`c${courseIndex + 1}`] = course.actually_reach
+ // course.real_value && course.real_value.toFixed
+ // ? course.real_value.toFixed(3) : course.real_value ;
+ // if (course.real_value) {
+ // real_value_total = real_value_total + course.real_value
+ // }
+ })
+ // if (real_value_total >= target_value_total && real_value_total != 0) {
+ nameRowData.status = innerItem.status != "not_achieved" && parseFloat(course.actually_reach) != 0
+ // }
+ maxCouseCount = Math.max(maxCouseCount, innerItem.course_supports.length)
+ tableData.push(nameRowData)
+ tableData.push(targetValueRowData)
+ tableData.push(realValueRowData)
+ })
+ })
+ }
+ return tableData;
+}
let tableData = []
@@ -522,8 +565,8 @@ class GraduatesRequirement extends Component {
}
fetchData(ec_year_id) {
// const url = `ec_courses/7/get_calculation_data`
- const url = `/ec_courses/get_calculation_data?ec_year_id=${ec_year_id}`
-
+ // const url = `/ec_courses/get_calculation_data?ec_year_id=${ec_year_id}`
+ const url = `/ec_years/${ec_year_id}/reach_evaluation.json`
// num_array = getNumArray(testData.calculation_data);
// tableData = getTableData(testData.calculation_data)
// return
@@ -532,9 +575,9 @@ class GraduatesRequirement extends Component {
// withCredentials: true,
})
.then((response) => {
- if (response.data.calculation_data) {
- num_array = getNumArray(response.data.calculation_data);
- tableData = getTableData(response.data.calculation_data)
+ if (response.data.graduation_requirements) {
+ num_array = getNumArray(response.data.graduation_requirements);
+ tableData = getTableData(response.data.graduation_requirements)
// 先计算,再触发render
this.setState({
calculationData: response.data.calculation_data,
From 1f13fef45dc3ba25995364aafddd1e260b3e14b3 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 25 Sep 2019 11:08:14 +0800
Subject: [PATCH 026/200] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=20=E5=AF=BC?=
=?UTF-8?q?=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EcSetting/reachCalculationInfo/index.js | 54 ++++++++++---------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
index f0bb082c9..4cea67651 100644
--- a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
+++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
@@ -290,7 +290,7 @@ let tableData = []
// }
})
// if (real_value_total >= target_value_total && real_value_total != 0) {
- nameRowData.status = innerItem.status != "not_achieved" && parseFloat(course.actually_reach) != 0
+ nameRowData.status = innerItem.status != "not_achieved" && parseFloat(innerItem.actually_reach) != 0
// }
maxCouseCount = Math.max(maxCouseCount, innerItem.course_supports.length)
tableData.push(nameRowData)
@@ -513,7 +513,9 @@ class GraduatesRequirement extends Component {
let major_school_id =this.props.match.params.major_school_id;
let ec_year_id =this.props.match.params.ec_year_id;
- var Url = `/ec_major_schools/${major_school_id}/academic_years/${ec_year_id}/set_calculation_value`;
+ var url = `/ec_major_schools/${major_school_id}/academic_years/${ec_year_id}/set_calculation_value`;
+ url = `/ec_years/${this.state.ec_year_id}/reach_criteria.json`
+
if (this.state.daChengYuZhi == undefined) {
this.props.showSingleButtonModal('提示', '达成阈值不能为空!')
return;
@@ -521,8 +523,8 @@ class GraduatesRequirement extends Component {
this.props.showSingleButtonModal('提示', '达成阈值必须大于0,且小于等于1')
return;
}
- axios.post(Url, {
- calculation_value : this.state.daChengYuZhi
+ axios.post(url, {
+ reach_criteria : this.state.daChengYuZhi
}).then((response) => {
if( response.data.status === 1 ) {
@@ -545,23 +547,23 @@ class GraduatesRequirement extends Component {
})
this.fetchData(ec_year_id)
- const Url =`/ec_major_schools/get_navigation_data?ec_year_id=`+ec_year_id;
- axios.get(Url, {
- // withCredentials: true,
- })
- .then((response) => {
- if(response.status===200){
- // if(response.data.allow_visit===false){
- // window.location.href="/403"
- // }
- this.setState({
- schooldata:response.data
- })
- }
- })
- .catch(function (error) {
- console.log(error);
- });
+ // const Url =`/ec_major_schools/get_navigation_data?ec_year_id=`+ec_year_id;
+ // axios.get(Url, {
+ // // withCredentials: true,
+ // })
+ // .then((response) => {
+ // if(response.status===200){
+ // // if(response.data.allow_visit===false){
+ // // window.location.href="/403"
+ // // }
+ // this.setState({
+ // schooldata:response.data
+ // })
+ // }
+ // })
+ // .catch(function (error) {
+ // console.log(error);
+ // });
}
fetchData(ec_year_id) {
// const url = `ec_courses/7/get_calculation_data`
@@ -581,8 +583,8 @@ class GraduatesRequirement extends Component {
// 先计算,再触发render
this.setState({
calculationData: response.data.calculation_data,
- daChengYuZhi: response.data.calculation_value,
- daChengYuZhiSaved: response.data.calculation_value,
+ daChengYuZhi: response.data.reach_threshold,
+ daChengYuZhiSaved: response.data.reach_threshold,
course_ids: response.data.course_ids,
is_manager: response.data.is_manager,
calculating: false,
@@ -632,7 +634,7 @@ class GraduatesRequirement extends Component {
const { match, history, current_user } = this.props
const { daChengYuZhiEditableMode, daChengYuZhi, daChengYuZhiSaved, is_manager } = this.state
let { schooldata } =this.state;
- let { example_major, template_major } = schooldata;
+ // let { example_major, template_major } = schooldata;
let showCalculateButton = is_manager;
// let showCalculateButton = false;
// if (example_major && current_user.admin || !example_major && template_major) {
@@ -640,7 +642,7 @@ class GraduatesRequirement extends Component {
// }
return (
-
+
@@ -685,7 +687,7 @@ class GraduatesRequirement extends Component {
导出
{/* /ec_major_schools/3/academic_years/5/export_reach_requirements_data.xls
let major_school_id =this.props.match.params.major_school_id;
From fb5ee8d75d587b672c1d8947c9a3d3e2277989f7 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 25 Sep 2019 11:47:16 +0800
Subject: [PATCH 027/200] 0
---
.../src/modules/ecs/EcSetting/reachCalculationInfo/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
index 4cea67651..ad0c21ae7 100644
--- a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
+++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.js
@@ -527,7 +527,7 @@ class GraduatesRequirement extends Component {
reach_criteria : this.state.daChengYuZhi
}).then((response) => {
- if( response.data.status === 1 ) {
+ if( response.data.status === 0 ) {
this.setState({ daChengYuZhiSaved: this.state.daChengYuZhi })
this.setDaChengYuZhiEditableMode(false)
}else {
From e2f6056d505a294d6afc12722744ad8d43679ed9 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 25 Sep 2019 15:48:20 +0800
Subject: [PATCH 028/200] =?UTF-8?q?//=E5=B7=A5=E7=A8=8B=E8=AE=A4=E8=AF=81?=
=?UTF-8?q?=E5=90=84=E4=B8=AA=E9=A1=B5=E9=9D=A2=E7=9A=84=E6=9F=A5=E7=9C=8B?=
=?UTF-8?q?=E8=AF=A6=E6=83=85=E5=BC=B9=E5=B1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/modules/ecs/Ecs.js | 55 +++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/public/react/src/modules/ecs/Ecs.js b/public/react/src/modules/ecs/Ecs.js
index dab84e8d5..ce5b95982 100644
--- a/public/react/src/modules/ecs/Ecs.js
+++ b/public/react/src/modules/ecs/Ecs.js
@@ -9,6 +9,61 @@ const Home = CustomLoadable(() => import('./Home/index'));
const EcYear = CustomLoadable(() => import('./EcYear/index'));
const EcSetting = CustomLoadable(() => import('./EcSetting/index'));
+const $ = window.$
+//工程认证各个页面的查看详情弹层
+function elasticLayer(forumId){
+ if (window.__memo) {
+ doElasticLayer(window.__memo, true)
+ return;
+ }
+ if (!forumId) return;
+ var url = 'https://www.educoder.net/api/memos/' + forumId
+ $.ajax({
+ url: url,
+ type: 'get',
+ success: function(res) {
+ console.log(res)
+ doElasticLayer(res.memo)
+ }
+ });
+
+ // document.body.addEventListener('touchmove',bodyScroll,false);
+ // $('body').css({'position':'fixed',"width":"100%"});
+}
+function doElasticLayer(memo, rendered){
+ if (rendered) {
+ $(".layerContent").show();
+ $(".newMain").hide();
+ return;
+ }
+ window.__memo = memo
+ var content = memo.content
+ var subject = memo.subject
+ var html='' +
+ '
'+ subject +'' +
+ '返回
' +
+ '
'
+
+ $(".newMain").after(html).hide();
+
+ editormd.markdownToHTML("MDContent", {
+ htmlDecode: "style,script,iframe", // you can filter tags decode
+ taskList: true,
+ tex: true, // 默认不解析
+ flowChart: true, // 默认不解析
+ sequenceDiagram: true // 默认不解析
+ });
+}
+function removeElasticLayer(){
+ $(".layerContent").hide();
+ $(".newMain").show();
+}
+window.elasticLayer = elasticLayer
+window.doElasticLayer = doElasticLayer
+window.removeElasticLayer = removeElasticLayer
+
class Ecs extends React.Component {
render() {
From 4e61419e9c8ba7c3b9ba05aa07df502d460056b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Thu, 26 Sep 2019 10:53:09 +0800
Subject: [PATCH 029/200] =?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/AppConfig.js | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js
index 4de5d9d88..be734a82e 100644
--- a/public/react/src/AppConfig.js
+++ b/public/react/src/AppConfig.js
@@ -22,14 +22,14 @@ 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'
+ 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) {
@@ -83,9 +83,9 @@ export function initAxiosInterceptors(props) {
}
config.url = `${proxy}${url}`;
if (config.url.indexOf('?') == -1) {
- config.url = `${config.url}?debug=${'student'}`
+ config.url = `${config.url}?debug=${'admin'}`
} else {
- config.url = `${config.url}&debug=${'student'}`
+ config.url = `${config.url}&debug=${'admin'}`
}
} else {
// 加api前缀
From 7032fa8ea7973fbd8bdc4864d05639815d41ff97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Thu, 26 Sep 2019 11:49:02 +0800
Subject: [PATCH 030/200] =?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/modules/ecs/EcSetting/index.js | 8 ++++----
public/react/src/modules/ecs/curriculum/Curriculum.js | 10 +++++-----
.../src/modules/ecs/curriculum/CurriculumSubpage.js | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/public/react/src/modules/ecs/EcSetting/index.js b/public/react/src/modules/ecs/EcSetting/index.js
index 69d309c46..601c68790 100644
--- a/public/react/src/modules/ecs/EcSetting/index.js
+++ b/public/react/src/modules/ecs/EcSetting/index.js
@@ -75,11 +75,11 @@ class EcSetting extends React.Component {
let type = stepTypes[stepIndex];
this.setState({ stepIndex: stepIndex });
- if(type==="courses"){
- this.props.history.push(`/ecs/major_schools/${majorId}/years/${yearId}/${type}/ec_course_support_setting/1`);
- }else {
+ // if(type==="courses"){
+ // this.props.history.push(`/ecs/major_schools/${majorId}/years/${yearId}/${type}/ec_course_support_setting/1`);
+ // }else {
this.props.history.push(`/ecs/major_schools/${majorId}/years/${yearId}/${type}`);
- }
+ // }
}
setupStep = () => {
diff --git a/public/react/src/modules/ecs/curriculum/Curriculum.js b/public/react/src/modules/ecs/curriculum/Curriculum.js
index e75d118da..f00589781 100644
--- a/public/react/src/modules/ecs/curriculum/Curriculum.js
+++ b/public/react/src/modules/ecs/curriculum/Curriculum.js
@@ -233,19 +233,19 @@ class Curriculum extends Component {
{/*Curriculumtwo 测试用*/}
{/*课程目标*/}
- (this.Ontitine(i)} />) }>
{/*课程考核方式与数据来源*/}
- (this.Ontitine(i)}/>) }>
{/*成绩等级设置*/}
- (this.Ontitine(i)}/>) }>
{/*4课程目标评价方法*/}
- (this.Ontitine(i)}/>) }>
{/*5课程达成评价结果*/}
- (this.Ontitine(i)}/>) }>
diff --git a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
index 9037705d7..a0df7f63b 100644
--- a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
+++ b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
@@ -16,7 +16,7 @@ class CurriculumSubpage extends Component {
console.log(this.props.match.params);
}
Curriculumstructure=()=>{
- this.props.history.push('/ecs/major_schools/:majorId/years/:yearId/subpage/courses')
+ this.props.history.push(`/ecs/major_schools/${this.props.match.params.majorId}/years/${this.props.match.params.yearId}/subpage/courses`);
}
From 25941dbcf468c8bb18fc08464fc0db40c273af79 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Thu, 26 Sep 2019 14:59:57 +0800
Subject: [PATCH 031/200] =?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../RequirementVsObjective/SelectTable.js | 123 +++++++++++++++
.../EcSetting/RequirementVsObjective/index.js | 144 ++++++++++++++++++
.../react/src/modules/ecs/EcSetting/index.js | 12 +-
3 files changed, 278 insertions(+), 1 deletion(-)
create mode 100644 public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
create mode 100644 public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
new file mode 100644
index 000000000..9e95d9eb8
--- /dev/null
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
@@ -0,0 +1,123 @@
+import React, { Component } from 'react';
+
+import classNames from 'classnames'
+
+import axios from 'axios';
+
+import { Table, Divider, Tag, Checkbox, InputNumber, Spin, Icon, Tooltip } from 'antd';
+
+class SelectTable extends Component {
+ constructor(props) {
+ super(props)
+ this.state={
+
+ }
+ }
+
+ componentDidMount(){
+
+ }
+
+ render() {
+ const { match, columns, tableData } = this.props
+ if (!tableData || !tableData.length) return '';
+ return (
+
+
+
+
+
+ {columns.map((item, index) => {
+ if (index == 0) return {columns[0][0]}{columns[0][1]} | ;
+ return (
+
+ 目标{index} |
+
+ )
+ })}
+ {/* 目标1 |
+ 目标2 |
+ 目标3 |
+ 目标4 |
+ 目标5 | */}
+
+ { tableData.map((item, rowIndex) => {
+ const cells = item.map((cell, colIndex) => {
+ if(colIndex == 0) return
+ 指标点{rowIndex + 1} |
+
+ return (
+ this.props.onCellClick(rowIndex, colIndex, !!cell)}>
+
+ |
+ )
+ })
+ return (
+
+ {cells}
+
+ )
+ })}
+ {/*
+ 指标点1 |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
*/}
+ {/*
+ 指标点2 |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ 指标点3 |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
*/}
+
+
+
+
+ );
+ }
+}
+
+export default (SelectTable) ;
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
new file mode 100644
index 000000000..49b056950
--- /dev/null
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
@@ -0,0 +1,144 @@
+import React, { Component } from 'react';
+
+import classNames from 'classnames'
+
+import axios from 'axios';
+
+import { Table, Divider, Tag, Checkbox, InputNumber, Spin, Icon } from 'antd';
+import SelectTable from './SelectTable'
+import update from 'immutability-helper'
+const testState = {
+ "graduation_requirements": [
+ {
+ "id": 1,
+ "position": 1,
+ "content": "毕业要求一"
+ },
+ {
+ "id": 2,
+ "position": 2,
+ "content": "毕业要求二"
+ }
+ ],
+ "training_subitems": [
+ {
+ "id": 1,
+ "content": "培养目标一"
+ },
+ {
+ "id": 2,
+ "content": "培养目标二"
+ }
+ ],
+ "requirement_support_objectives": [
+ {
+ "graduation_requirement_id": 1,
+ "training_subitem_id": 1
+ },
+ {
+ "graduation_requirement_id": 2,
+ "training_subitem_id": 2
+ },
+ ]
+}
+class RequirementVsObjective extends Component {
+ constructor(props) {
+ super(props)
+ this.state={
+ ...testState
+ }
+ }
+
+ componentDidMount(){
+ // this.init()
+ // return;
+
+ const yearId = this.props.match.params.yearId
+ const url = `/ec_years/${yearId}/requirement_support_objectives.json`
+ axios.get(url).then((response) => {
+ if (response.data.graduation_requirements) {
+ this.setState( {...response.data} , () => {
+ this.init()
+ })
+ }
+ }).catch((e) => {
+
+ })
+ }
+ init = () => {
+ this.graduationRequirementsIdIndexMap = {}
+ this.trainingSubitemsIdIndexMap = {}
+ this.state.graduation_requirements.forEach((item, index) => {
+ this.graduationRequirementsIdIndexMap[item.id] = index
+ })
+ this.state.training_subitems.forEach((item, index) => {
+ this.trainingSubitemsIdIndexMap[item.id] = index
+ })
+ const tableData = []
+ this.state.graduation_requirements.forEach((item, index) => {
+ tableData.push([item.content, ...Array(this.state.training_subitems.length)])
+ })
+ this.state.requirement_support_objectives.forEach(item => {
+ tableData[this.graduationRequirementsIdIndexMap[item.graduation_requirement_id]][this.trainingSubitemsIdIndexMap[item.training_subitem_id]]
+ = true
+ })
+ this.setState({ tableData })
+ }
+ onCellClick = (rowIndex, colIndex, select) => {
+ console.log( rowIndex, colIndex, select )
+ const ec_graduation_requirement_id = this.state.graduation_requirements[rowIndex].id
+ const ec_training_subitem_id = this.state.training_subitems[colIndex].id
+ const yearId = this.props.match.params.yearId
+ const url = `/ec_years/${yearId}/requirement_support_objectives.json`
+ const method = select ? axios.delete : axios.post
+ method(url,
+ select ? {
+ params: {
+ ec_graduation_requirement_id,
+ ec_training_subitem_id
+ }
+ } : {
+ ec_graduation_requirement_id,
+ ec_training_subitem_id
+ }
+ ).then((response) => {
+ if (response.data.status == 0) {
+ this.setState(
+ (prevState) => ({
+ tableData : update(prevState.tableData, {[rowIndex]: {[colIndex]: {$set: select ? false : true}}})
+ })
+ )
+ this.props.showNotification(`${select ? '取消' : '选择'}成功`)
+ }
+ }).catch((e) => {
+
+ })
+ if (select) { // 取消
+
+ } else { // 选择
+
+ }
+ }
+ render() {
+ const { match, history, current_user } = this.props
+ const { tableData, training_subitems, graduation_requirements, is_manager } = this.state
+
+ const columns = training_subitems && [['毕业要求', '培养目标'], ...training_subitems.map(item => item.content)]
+ const columnIdIndexMap = {}
+ console.log(columns, tableData)
+ return (
+
+
+ requirementVsObjective
+
+
+
+ );
+ }
+}
+
+export default (RequirementVsObjective) ;
diff --git a/public/react/src/modules/ecs/EcSetting/index.js b/public/react/src/modules/ecs/EcSetting/index.js
index 69d309c46..fd3ac436a 100644
--- a/public/react/src/modules/ecs/EcSetting/index.js
+++ b/public/react/src/modules/ecs/EcSetting/index.js
@@ -40,6 +40,11 @@ const ReachCalculationInfo=Loadable({
loader: () => import('./reachCalculationInfo/index'),
loading: Loading,
});
+const RequirementVsObjective=Loadable({
+ loader: () => import('./RequirementVsObjective/index'),
+ loading: Loading,
+});
+
class EcSetting extends React.Component {
@@ -132,8 +137,13 @@ class EcSetting extends React.Component {
render={ (props) => (
) }>
() }>
+
() }>
-
+ {/* 毕业要求对培养目标的支撑 */}
+
() }>
+
{/*学生*/}
() }>
From 12f28bcfae2766af5905d758d0545bf1eadb5f20 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Thu, 26 Sep 2019 15:08:22 +0800
Subject: [PATCH 032/200] place
---
.../modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
index 9e95d9eb8..5975cafb3 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
@@ -43,6 +43,7 @@ class SelectTable extends Component {
{ tableData.map((item, rowIndex) => {
const cells = item.map((cell, colIndex) => {
+ // placement="bottom"
if(colIndex == 0) return
指标点{rowIndex + 1} |
From 018c2a3ee70ef43106d6cba0cb201e83c9714060 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Thu, 26 Sep 2019 16:16:57 +0800
Subject: [PATCH 033/200] =?UTF-8?q?=E5=88=97=E6=95=B0=E4=B8=8D=E5=AF=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../RequirementVsObjective/SelectTable.js | 2 +-
.../EcSetting/RequirementVsObjective/index.js | 17 ++++++++++++++---
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
index 5975cafb3..81021cf88 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
@@ -48,7 +48,7 @@ class SelectTable extends Component {
指标点{rowIndex + 1} |
return (
- this.props.onCellClick(rowIndex, colIndex, !!cell)}>
+ | this.props.onCellClick(rowIndex, colIndex , !!cell)}>
|
)
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
index 49b056950..cfd264cbe 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
@@ -72,7 +72,8 @@ class RequirementVsObjective extends Component {
this.graduationRequirementsIdIndexMap[item.id] = index
})
this.state.training_subitems.forEach((item, index) => {
- this.trainingSubitemsIdIndexMap[item.id] = index
+ // 对应table的列数
+ this.trainingSubitemsIdIndexMap[item.id] = index + 1
})
const tableData = []
this.state.graduation_requirements.forEach((item, index) => {
@@ -87,7 +88,7 @@ class RequirementVsObjective extends Component {
onCellClick = (rowIndex, colIndex, select) => {
console.log( rowIndex, colIndex, select )
const ec_graduation_requirement_id = this.state.graduation_requirements[rowIndex].id
- const ec_training_subitem_id = this.state.training_subitems[colIndex].id
+ const ec_training_subitem_id = this.state.training_subitems[colIndex - 1].id
const yearId = this.props.match.params.yearId
const url = `/ec_years/${yearId}/requirement_support_objectives.json`
const method = select ? axios.delete : axios.post
@@ -129,7 +130,17 @@ class RequirementVsObjective extends Component {
return (
- requirementVsObjective
+
Date: Thu, 26 Sep 2019 16:30:38 +0800
Subject: [PATCH 034/200] =?UTF-8?q?=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EcSetting/RequirementVsObjective/index.js | 22 ++++++++++++-------
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
index cfd264cbe..e4a944d95 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
@@ -129,23 +129,29 @@ class RequirementVsObjective extends Component {
console.log(columns, tableData)
return (
-
+
);
From d7008219e9eba7f5ed5326ee919ffa9cc14b3e25 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Thu, 26 Sep 2019 16:48:40 +0800
Subject: [PATCH 035/200] init
---
.../EcSetting/RequirementVsObjective/index.js | 2 +-
.../EcSetting/RequirementVsStandard/index.js | 128 ++++++++++++++++++
.../react/src/modules/ecs/EcSetting/index.js | 8 +-
3 files changed, 136 insertions(+), 2 deletions(-)
create mode 100644 public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
index e4a944d95..dfc4aa663 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
@@ -45,7 +45,7 @@ class RequirementVsObjective extends Component {
constructor(props) {
super(props)
this.state={
- ...testState
+ // ...testState
}
}
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
new file mode 100644
index 000000000..45ea17811
--- /dev/null
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
@@ -0,0 +1,128 @@
+import React, { Component } from 'react';
+
+import classNames from 'classnames'
+
+import axios from 'axios';
+
+import { Table, Divider, Tag, Checkbox, InputNumber, Spin, Icon } from 'antd';
+import SelectTable from '../RequirementVsObjective/SelectTable'
+import update from 'immutability-helper'
+
+class RequirementVsObjective extends Component {
+ constructor(props) {
+ super(props)
+ this.state={
+
+ }
+ }
+
+ componentDidMount(){
+ // this.init()
+ // return;
+
+ const yearId = this.props.match.params.yearId
+ const url = `/ec_years/${yearId}/requirement_support_objectives.json`
+ axios.get(url).then((response) => {
+ if (response.data.graduation_requirements) {
+ this.setState( {...response.data} , () => {
+ this.init()
+ })
+ }
+ }).catch((e) => {
+
+ })
+ }
+ init = () => {
+ this.graduationRequirementsIdIndexMap = {}
+ this.trainingSubitemsIdIndexMap = {}
+ this.state.graduation_requirements.forEach((item, index) => {
+ this.graduationRequirementsIdIndexMap[item.id] = index
+ })
+ this.state.training_subitems.forEach((item, index) => {
+ // 对应table的列数
+ this.trainingSubitemsIdIndexMap[item.id] = index + 1
+ })
+ const tableData = []
+ this.state.graduation_requirements.forEach((item, index) => {
+ tableData.push([item.content, ...Array(this.state.training_subitems.length)])
+ })
+ this.state.requirement_support_objectives.forEach(item => {
+ tableData[this.graduationRequirementsIdIndexMap[item.graduation_requirement_id]][this.trainingSubitemsIdIndexMap[item.training_subitem_id]]
+ = true
+ })
+ this.setState({ tableData })
+ }
+ onCellClick = (rowIndex, colIndex, select) => {
+ console.log( rowIndex, colIndex, select )
+ const ec_graduation_requirement_id = this.state.graduation_requirements[rowIndex].id
+ const ec_training_subitem_id = this.state.training_subitems[colIndex - 1].id
+ const yearId = this.props.match.params.yearId
+ const url = `/ec_years/${yearId}/requirement_support_objectives.json`
+ const method = select ? axios.delete : axios.post
+ method(url,
+ select ? {
+ params: {
+ ec_graduation_requirement_id,
+ ec_training_subitem_id
+ }
+ } : {
+ ec_graduation_requirement_id,
+ ec_training_subitem_id
+ }
+ ).then((response) => {
+ if (response.data.status == 0) {
+ this.setState(
+ (prevState) => ({
+ tableData : update(prevState.tableData, {[rowIndex]: {[colIndex]: {$set: select ? false : true}}})
+ })
+ )
+ this.props.showNotification(`${select ? '取消' : '选择'}成功`)
+ }
+ }).catch((e) => {
+
+ })
+ if (select) { // 取消
+
+ } else { // 选择
+
+ }
+ }
+ render() {
+ const { match, history, current_user } = this.props
+ const { tableData, training_subitems, graduation_requirements, is_manager } = this.state
+
+ const columns = training_subitems && [['毕业要求', '培养目标'], ...training_subitems.map(item => item.content)]
+ const columnIdIndexMap = {}
+ console.log(columns, tableData)
+ return (
+
+
+
+ );
+ }
+}
+
+export default (RequirementVsObjective) ;
diff --git a/public/react/src/modules/ecs/EcSetting/index.js b/public/react/src/modules/ecs/EcSetting/index.js
index ad3e4caf0..b4a388744 100644
--- a/public/react/src/modules/ecs/EcSetting/index.js
+++ b/public/react/src/modules/ecs/EcSetting/index.js
@@ -44,7 +44,10 @@ const RequirementVsObjective=Loadable({
loader: () => import('./RequirementVsObjective/index'),
loading: Loading,
});
-
+const RequirementVsStandard=Loadable({
+ loader: () => import('./RequirementVsStandard/index'),
+ loading: Loading,
+});
class EcSetting extends React.Component {
@@ -143,6 +146,9 @@ class EcSetting extends React.Component {
{/* 毕业要求对培养目标的支撑 */}
() }>
+ {/* 毕业要求对通用标准的支撑 */}
+
() }>
{/*学生*/}
Date: Thu, 26 Sep 2019 17:22:54 +0800
Subject: [PATCH 036/200] =?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../RequirementVsObjective/SelectTable.js | 4 +-
.../EcSetting/RequirementVsStandard/index.js | 40 ++++++++++---------
2 files changed, 24 insertions(+), 20 deletions(-)
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
index 81021cf88..9e357aebd 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/SelectTable.js
@@ -31,7 +31,7 @@ class SelectTable extends Component {
if (index == 0) return {columns[0][0]}{columns[0][1]} | ;
return (
- 目标{index} |
+ {this.props.columnName || '目标'}{index} |
)
})}
@@ -45,7 +45,7 @@ class SelectTable extends Component {
const cells = item.map((cell, colIndex) => {
// placement="bottom"
if(colIndex == 0) return
- 指标点{rowIndex + 1} |
+ 指标点{this.props.firstColIndexArray ? this.props.firstColIndexArray[rowIndex] : rowIndex + 1} |
return (
this.props.onCellClick(rowIndex, colIndex , !!cell)}>
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
index 45ea17811..a1d652cf2 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
@@ -21,9 +21,9 @@ class RequirementVsObjective extends Component {
// return;
const yearId = this.props.match.params.yearId
- const url = `/ec_years/${yearId}/requirement_support_objectives.json`
+ const url = `/ec_years/${yearId}/subitem_support_standards.json`
axios.get(url).then((response) => {
- if (response.data.graduation_requirements) {
+ if (response.data.graduation_subitems) {
this.setState( {...response.data} , () => {
this.init()
})
@@ -35,39 +35,41 @@ class RequirementVsObjective extends Component {
init = () => {
this.graduationRequirementsIdIndexMap = {}
this.trainingSubitemsIdIndexMap = {}
- this.state.graduation_requirements.forEach((item, index) => {
+ this.state.graduation_subitems.forEach((item, index) => {
this.graduationRequirementsIdIndexMap[item.id] = index
})
- this.state.training_subitems.forEach((item, index) => {
+ this.state.graduation_standards.forEach((item, index) => {
// 对应table的列数
this.trainingSubitemsIdIndexMap[item.id] = index + 1
})
const tableData = []
- this.state.graduation_requirements.forEach((item, index) => {
- tableData.push([item.content, ...Array(this.state.training_subitems.length)])
+ const firstColIndexArray = []
+ this.state.graduation_subitems.forEach((item, index) => {
+ tableData.push([item.content, ...Array(this.state.graduation_standards.length)])
+ firstColIndexArray.push(`${item.position}-${item.graduation_requirement_position}`)
})
- this.state.requirement_support_objectives.forEach(item => {
- tableData[this.graduationRequirementsIdIndexMap[item.graduation_requirement_id]][this.trainingSubitemsIdIndexMap[item.training_subitem_id]]
+ this.state.subitem_support_standards.forEach(item => {
+ tableData[this.graduationRequirementsIdIndexMap[item.graduation_subitem_id]][this.trainingSubitemsIdIndexMap[item.graduation_standard_id]]
= true
})
- this.setState({ tableData })
+ this.setState({ tableData, firstColIndexArray })
}
onCellClick = (rowIndex, colIndex, select) => {
console.log( rowIndex, colIndex, select )
- const ec_graduation_requirement_id = this.state.graduation_requirements[rowIndex].id
- const ec_training_subitem_id = this.state.training_subitems[colIndex - 1].id
+ const ec_graduation_subitem_id = this.state.graduation_subitems[rowIndex].id
+ const ec_graduation_standard_id = this.state.graduation_standards[colIndex - 1].id
const yearId = this.props.match.params.yearId
- const url = `/ec_years/${yearId}/requirement_support_objectives.json`
+ const url = `/ec_years/${yearId}/subitem_support_standards.json`
const method = select ? axios.delete : axios.post
method(url,
select ? {
params: {
- ec_graduation_requirement_id,
- ec_training_subitem_id
+ ec_graduation_subitem_id,
+ ec_graduation_standard_id
}
} : {
- ec_graduation_requirement_id,
- ec_training_subitem_id
+ ec_graduation_subitem_id,
+ ec_graduation_standard_id
}
).then((response) => {
if (response.data.status == 0) {
@@ -89,9 +91,9 @@ class RequirementVsObjective extends Component {
}
render() {
const { match, history, current_user } = this.props
- const { tableData, training_subitems, graduation_requirements, is_manager } = this.state
+ const { tableData, graduation_standards, graduation_subitems, is_manager, firstColIndexArray } = this.state
- const columns = training_subitems && [['毕业要求', '培养目标'], ...training_subitems.map(item => item.content)]
+ const columns = graduation_standards && [['毕业要求', '通用标准'], ...graduation_standards.map(item => item.content)]
const columnIdIndexMap = {}
console.log(columns, tableData)
return (
@@ -116,7 +118,9 @@ class RequirementVsObjective extends Component {
From 9bd98fb62d5ee4257dc62385f629b1f126d5fc1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Fri, 27 Sep 2019 09:14:40 +0800
Subject: [PATCH 037/200] =?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/modules/ecs/curriculum/CurriculumSubpage.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
index a0df7f63b..a187e688d 100644
--- a/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
+++ b/public/react/src/modules/ecs/curriculum/CurriculumSubpage.js
@@ -16,7 +16,7 @@ class CurriculumSubpage extends Component {
console.log(this.props.match.params);
}
Curriculumstructure=()=>{
- this.props.history.push(`/ecs/major_schools/${this.props.match.params.majorId}/years/${this.props.match.params.yearId}/subpage/courses`);
+ this.props.history.push(`/ecs/major_schools/${this.props.match.params.majorId}/years/${this.props.match.params.yearId}/subpage/courses/ec_course_support_setting/1`);
}
@@ -25,7 +25,7 @@ class CurriculumSubpage extends Component {
// console.log(this.props);
return (
- this.Curriculumstructure()}>测试
+ this.Curriculumstructure()}>点我进去课程体系
)
}
From 2e00d1413bf0ce6acf8ea295818a0327961ac021 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Fri, 27 Sep 2019 09:53:38 +0800
Subject: [PATCH 038/200] =?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/favicon.ico | Bin 0 -> 9049 bytes
.../src/modules/ecs/curriculum/Curriculum.js | 1 +
.../EcCompletionCalculation.js | 7 ++++---
.../EcCourseEvaluationsbottom.js | 16 +++++++++++-----
.../subroute/ecCourseSupportSetting/index.js | 11 +++++++++--
5 files changed, 25 insertions(+), 10 deletions(-)
mode change 100644 => 100755 public/favicon.ico
diff --git a/public/favicon.ico b/public/favicon.ico
old mode 100644
new mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..05b9d163e5267afb1d933b189a1d6210fc2fe634
GIT binary patch
literal 9049
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
literal 0
HcmV?d00001
diff --git a/public/react/src/modules/ecs/curriculum/Curriculum.js b/public/react/src/modules/ecs/curriculum/Curriculum.js
index f00589781..025f6740f 100644
--- a/public/react/src/modules/ecs/curriculum/Curriculum.js
+++ b/public/react/src/modules/ecs/curriculum/Curriculum.js
@@ -59,6 +59,7 @@ class Curriculum extends Component {
// window.document.title = '课程达成评价结果';
}
componentDidMount(){
+ console.log("Curriculum");
console.log(this.props);
}
sync_course_data=()=>{
diff --git a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
index 4be7c11d3..7480d3b83 100644
--- a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
+++ b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
@@ -54,9 +54,9 @@ class EcCompletionCalculation extends Component {
let ec_course_id =this.props.match.params.ec_course_id;
this.UpdateClassData(true);
const Url =`/ec_major_schools/get_navigation_data?ec_course_id=`+ec_course_id;
- axios.get(Url, {
- withCredentials: true,
- })
+ axios.get(Url, {
+ withCredentials: true,
+ })
.then((response) => {
if(response.status===200){
// if(response.data.allow_visit===false){
@@ -71,6 +71,7 @@ class EcCompletionCalculation extends Component {
.catch(function (error) {
console.log(error);
});
+ this.props.Ontitine("competition_calculation_info");
}
targetsget_navigation_data=(ec_year_id,ec_course_id)=>{
diff --git a/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js b/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
index 59a8a560e..afce608f8 100644
--- a/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
+++ b/public/react/src/modules/ecs/subroute/ecCourseEvaluations/EcCourseEvaluationsbottom.js
@@ -56,6 +56,7 @@ class EcCourseEvaluationsbottom extends Component {
if(newec_course_idbottom!=undefined){
// const url ='ec_courses/:course_id/course_targets.json';
// const url = `/ec_course_achievement_methods?ec_course_id=`+newec_course_idbottom;
+ const url =`/ec_courses/${course_id}/course_targets/course_achievement_methods.json`;
axios.get(url, {
withCredentials: true,
})
@@ -114,8 +115,10 @@ class EcCourseEvaluationsbottom extends Component {
});
}
componentDidMount(){
- let ec_course_id=this.props.match.params.ec_course_id;
- const url = `/ec_course_achievement_methods?ec_course_id=`+ec_course_id;
+ let ec_course_id=this.props.match.params.ec_course_id;
+ const course_id = 706
+ const url =`/ec_courses/${course_id}/course_targets/course_achievement_methods.json`;
+ // const url = `/ec_course_achievement_methods?ec_course_id=`+course_id;
axios.get(url, {
withCredentials: true,
})
@@ -129,10 +132,11 @@ class EcCourseEvaluationsbottom extends Component {
console.log(error);
});
- this.getNavigationData(ec_course_id);
+ // this.getNavigationData(ec_course_id);
this.setState({
- newec_course_idbottom:ec_course_id
+ newec_course_idbottom:course_id
})
+ this.props.Ontitine("evaluation_methods");
}
editecCourseEvaluationslist=(e)=>{
let id =e.target.getAttribute("target_id");
@@ -555,7 +559,9 @@ class EcCourseEvaluationsbottom extends Component {
}
- var Url = '/ec_course_achievement_methods/create_evaluation_methods';
+ // var Url = '/ec_course_achievement_methods/create_evaluation_methods';
+ var Url = '/ec_courses/:course_id/course_targets/:target_id/course_achievement_methods.json';
+
axios.post(Url, {
ec_course_target_id: newec_course_target_id,
achievement_methods:achievement_methods
diff --git a/public/react/src/modules/ecs/subroute/ecCourseSupportSetting/index.js b/public/react/src/modules/ecs/subroute/ecCourseSupportSetting/index.js
index bb6c2f5d9..dd6a72fe9 100644
--- a/public/react/src/modules/ecs/subroute/ecCourseSupportSetting/index.js
+++ b/public/react/src/modules/ecs/subroute/ecCourseSupportSetting/index.js
@@ -109,6 +109,7 @@ class EcCourseSupportSetting extends Component {
}
fetchCourseTargets = () => {
const ec_course_id = this.props.match.params.ec_course_id;
+ //这里给了一个默认的参数。。。。。。。。。。。。。
const course_id = 706
const url = `/ec_courses/${course_id}/course_targets.json`
// `/ec_courses/${ec_course_id}/ec_course_support_setting_data`
@@ -179,11 +180,17 @@ class EcCourseSupportSetting extends Component {
});
}
componentDidMount = () => {
- console.log('componentDidMount ' + this.props)
+ // console.log('componentDidMountEcCourseSupportSetting');
+ // console.log(this.props);
+ // console.log(this.props.match);
+ // console.log(this.props.match.params);
+ // console.log(this.props.match.params.ec_course_id);
+
this.fetchCourseTargets();
const ec_course_id = this.props.match.params.ec_course_id;
- this.getNavigationData(ec_course_id)
+ this.getNavigationData(ec_course_id);
+ this.props.Ontitine("ec_course_support_setting");
}
setEditableMode = (mode) => {
From 611dc5d29c599f48625036fee67560d92b595bdd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Fri, 27 Sep 2019 10:00:22 +0800
Subject: [PATCH 039/200] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EcCompletionCalculation.js | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
index 7480d3b83..05ec1805b 100644
--- a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
+++ b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
@@ -51,12 +51,13 @@ class EcCompletionCalculation extends Component {
}
componentDidMount(){
- let ec_course_id =this.props.match.params.ec_course_id;
- this.UpdateClassData(true);
- const Url =`/ec_major_schools/get_navigation_data?ec_course_id=`+ec_course_id;
- axios.get(Url, {
- withCredentials: true,
- })
+ // let ec_course_id =this.props.match.params.ec_course_id;
+ // this.UpdateClassData(true);
+
+ // const url =`/ec_major_schools/get_navigation_data?ec_course_id=`+ec_course_id;
+ const ec_course_id=706;
+ const url =`/ec_courses/${ec_course_id}/evaluation.json`;
+ axios.get(url)
.then((response) => {
if(response.status===200){
// if(response.data.allow_visit===false){
From 2561d437a33f6843e710752e1c18d6b72568950b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Fri, 27 Sep 2019 10:17:05 +0800
Subject: [PATCH 040/200] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EcCompletionCalculation.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
index 05ec1805b..4525afe7e 100644
--- a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
+++ b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js
@@ -268,11 +268,11 @@ class EcCompletionCalculation extends Component {
this.setState({
Spintype:true
})
- let {ec_course_id}=this.state;
- const Orl =`/ec_courses/`+ec_course_id+`/sync_data`;
- axios.get(Orl, {
- withCredentials:true,
- })
+ // let {ec_course_id}=this.state;
+ const ec_course_id=706;
+ // const Orl =`/ec_courses/`+ec_course_id+`/sync_data`;
+ const Orl =`/ec_courses/${ec_course_id}/evaluation.json`;
+ axios.get(Orl)
.then((response) => {
if(response.data.status===1){
this.setState({
From 032e5dd3f264fc3692b470ba56efb34ae5ebf17b Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Fri, 27 Sep 2019 10:53:09 +0800
Subject: [PATCH 041/200] =?UTF-8?q?=E8=BF=99=E9=87=8C=E4=BC=9A=E5=AD=98?=
=?UTF-8?q?=E5=9C=A8=E5=BE=88=E9=95=BF=E7=9A=84=E5=AD=97=E7=AC=A6=E4=B8=B2?=
=?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=B8=8D=E6=8A=98=E8=A1=8C=E4=BC=9A?=
=?UTF-8?q?=E5=BD=B1=E5=93=8D=E9=98=85=E8=AF=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/stylesheets/educoder/edu-all.css | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/public/stylesheets/educoder/edu-all.css b/public/stylesheets/educoder/edu-all.css
index c20b648db..0b3f53503 100644
--- a/public/stylesheets/educoder/edu-all.css
+++ b/public/stylesheets/educoder/edu-all.css
@@ -3739,7 +3739,8 @@ a.singlepublishtwo{
}
.ant-tooltip{
- max-width: 100% !important;
+ /* 这里会存在很长的字符串,如果不折行会影响阅读 */
+ max-width: 600px !important;
}
.square-main p{
From c08eaf8012912e7284c586eaa4fe5f0cb85e3d03 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Fri, 27 Sep 2019 11:01:43 +0800
Subject: [PATCH 042/200] =?UTF-8?q?=E5=AF=BC=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/modules/ecs/EcSetting/RequirementVsObjective/index.js | 2 ++
.../src/modules/ecs/EcSetting/RequirementVsStandard/index.js | 2 ++
2 files changed, 4 insertions(+)
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
index dfc4aa663..ce78eb54f 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsObjective/index.js
@@ -140,6 +140,8 @@ class RequirementVsObjective extends Component {
+ 导出矩阵
diff --git a/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js b/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
index a1d652cf2..dbc40a621 100644
--- a/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
+++ b/public/react/src/modules/ecs/EcSetting/RequirementVsStandard/index.js
@@ -109,6 +109,8 @@ class RequirementVsObjective extends Component {
+ 导出矩阵
From 2911459aa88763948667f25de91995b7b9aebbd5 Mon Sep 17 00:00:00 2001
From: jingquan huang
Date: Fri, 27 Sep 2019 16:23:19 +0800
Subject: [PATCH 043/200] git log
---
app/controllers/gits_controller.rb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/app/controllers/gits_controller.rb b/app/controllers/gits_controller.rb
index b52e75353..aa7ccd8cd 100644
--- a/app/controllers/gits_controller.rb
+++ b/app/controllers/gits_controller.rb
@@ -8,7 +8,10 @@ class GitsController < ApplicationController
# 供 git-workhorse反向调用认证
def auth
# HTTP_AUTHORIZATION: "Basic 这里base64编码的的密码(user:passwd)"
+ decodes = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
+ rand_code = decodes.sample(10).join
logger.info("11111112222223333 HTTP_AUTHORIZATION: #{request.env["HTTP_AUTHORIZATION"]}")
+ logger.info("1111111 git auth start: code is #{rand_code}, time is #{Time.now}")
# logger.info("#########-----request_env: #{request.env}")
# {"service"=>"git-receive-pack", "controller"=>"gits", "action"=>"auth",
# "url"=>"forge01/cermyt39.git/info/refs"}
@@ -68,6 +71,7 @@ class GitsController < ApplicationController
authenticate_or_request_with_http_basic do |username, password|
result
+ logger.info("1111111 git auth end: code is #{rand_code}, time is #{Time.now}")
end
end
From 4e1e83f8fe394ffcb5fef3b2ee1b223e31e5c726 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Fri, 27 Sep 2019 18:13:51 +0800
Subject: [PATCH 044/200] =?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/AppConfig.js | 4 ++--
.../tasks/GraduationTasksSubmitedit.js | 18 ++++++------------
2 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js
index bc7fa8070..42fa73857 100644
--- a/public/react/src/AppConfig.js
+++ b/public/react/src/AppConfig.js
@@ -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/courses/graduation/tasks/GraduationTasksSubmitedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js
index 21d340200..02e7177fa 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js
@@ -334,24 +334,22 @@ class GraduationTasksSubmitedit extends Component{
}
- delecttask_status=(id,student_id)=>{
- let newid=id===undefined||id===null?student_id:id;
+ delecttask_status=(id)=>{
+
let{selectmemberslist,task_status}=this.state;
let newlist=task_status;
let selects=selectmemberslist;
for(var i=0; i 0 ?
this.delecttask_status(item.user_id,item.student_id)}>
+ onClick={() => this.delecttask_status(item.user_id)}>
: ""}
From 31fc3b373dbbd422e17ee2c234fb37ade837d1b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Fri, 27 Sep 2019 18:14:01 +0800
Subject: [PATCH 045/200] =?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/AppConfig.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js
index 42fa73857..bc7fa8070 100644
--- a/public/react/src/AppConfig.js
+++ b/public/react/src/AppConfig.js
@@ -84,9 +84,9 @@ export function initAxiosInterceptors(props) {
}
config.url = `${proxy}${url}`;
if (config.url.indexOf('?') == -1) {
- config.url = `${config.url}?debug=${'student'}`;
+ config.url = `${config.url}?debug=${debugType}`;
} else {
- config.url = `${config.url}&debug=${'student'}`;
+ config.url = `${config.url}&debug=${debugType}`;
}
} else {
// 加api前缀
From 2cd042f0947e442bdd0dd2224c1f409efb64ce58 Mon Sep 17 00:00:00 2001
From: SylorHuang
Date: Sat, 28 Sep 2019 09:29:23 +0800
Subject: [PATCH 046/200] =?UTF-8?q?=E8=AF=95=E5=8D=B7=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E8=BF=81=E7=A7=BB=E6=96=87=E4=BB=B6=E7=9A=84=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...27091948_change_user_p02389416_exercise.rb | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/db/migrate/20190927091948_change_user_p02389416_exercise.rb b/db/migrate/20190927091948_change_user_p02389416_exercise.rb
index bea1e28b7..c4026f75b 100644
--- a/db/migrate/20190927091948_change_user_p02389416_exercise.rb
+++ b/db/migrate/20190927091948_change_user_p02389416_exercise.rb
@@ -6,15 +6,26 @@ class ChangeUserP02389416Exercise < ActiveRecord::Migration[5.2]
# 分数分别为:2分,2分,5分,2分,2分,2分,2分,2分 合计19分
question_ids = [37411,37414,37417,37418,37419,37423,37424,37429]
choice_ids = [117788,117797,117806,117809,117811,117816,117818,117828]
+ question_scores = [2,2,5,2,2,2,2,2]
question_ids.each_with_index do |q, index|
- ExerciseAnswer.create(user_id: 45442, exercise_question_id: q, exercise_choice_id: choice_ids[index])
+ ex_exercise_user = ExerciseAnswer.where(user_id: 45442, exercise_question_id: q, exercise_choice_id: choice_ids[index])
+ if ex_exercise_user.exists?
+ ex_exercise_user.first.update_attribute(:score,question_scores[index])
+ else
+ ExerciseAnswer.create(user_id: 45442, exercise_question_id: q, exercise_choice_id: choice_ids[index], score: question_scores[index])
+ end
end
ex_user = ExerciseUser.where(user_id: 45442, exercise_id: 2561)&.first
if ex_user.present?
- obj_score = ex_user.objective_score.to_i + 19
- total_score = ex_user.score.to_i + 19
+ if ex_user.score > 65 || ex_user.objective_score > 65
+ ex_user.update_attributes(score: 65, objective_score: 65)
+ else
+ obj_score = ex_user.objective_score.to_i + 19
+ total_score = ex_user.score.to_i + 19
+
+ ex_user.update_attributes(score: total_score, objective_score: obj_score)
+ end
- ex_user.update_attributes(score: total_score, objective_score: obj_score)
end
puts "====> end_to_create user exercise_answer"
From fec9fb7f2649b1e66fe7b159057a240a00a25257 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Sat, 28 Sep 2019 10:15:03 +0800
Subject: [PATCH 047/200] =?UTF-8?q?=E9=97=AE=E5=8D=B7=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E5=AD=A6=E5=91=98=E5=8D=95=E4=BD=8D=E5=88=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/polls_controller.rb | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb
index 6ffe277a3..6be131d7a 100644
--- a/app/controllers/polls_controller.rb
+++ b/app/controllers/polls_controller.rb
@@ -1318,7 +1318,7 @@ class PollsController < ApplicationController
poll_ques_titles = poll_questions.pluck(:question_title).map {|k| ActionController::Base.helpers.strip_tags(k) if k.present?}
poll_un_anony = poll.un_anonymous
if poll_un_anony #是否匿名,默认为false
- user_info = %w(登陆名 真实姓名 邮箱 学号)
+ user_info = %w(登陆名 真实姓名 邮箱 学号 学员单位)
else
user_info = []
end
@@ -1392,7 +1392,8 @@ class PollsController < ApplicationController
user_login = u_user.login
user_name = u_user.real_name.present? ? u_user.real_name : "--"
user_student_id = u_user.student_id.present? ? u_user.student_id : "--"
- user_cell += [user_login,user_name, u_user.mail, user_student_id]
+ user_school_name = u_user.school_name.present? ? u_user.school_name : "--"
+ user_cell += [user_login,user_name, u_user.mail, user_student_id, user_school_name]
end
all_user_cell = user_cell + user_answer_array
user_commit.push(all_user_cell)
From 1d2097611be3de30016dbdfa2c0ebff6a337d4b1 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Sat, 28 Sep 2019 10:23:48 +0800
Subject: [PATCH 048/200] =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=A2=98=E7=AD=94?=
=?UTF-8?q?=E6=A1=88=E6=98=BE=E7=A4=BA=E4=B8=8D=E4=BA=86=E5=85=AC=E5=BC=8F?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/package.json | 1 -
.../react/src/modules/page/component/ChooseAnswerView.js | 8 +++-----
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/public/react/package.json b/public/react/package.json
index e91e61f03..3e86dae98 100644
--- a/public/react/package.json
+++ b/public/react/package.json
@@ -79,7 +79,6 @@
"react-url-query": "^1.4.0",
"redux": "^4.0.0",
"redux-thunk": "2.3.0",
- "showdown": "^1.8.6",
"store": "^2.0.12",
"style-loader": "0.19.0",
"styled-components": "^4.1.3",
diff --git a/public/react/src/modules/page/component/ChooseAnswerView.js b/public/react/src/modules/page/component/ChooseAnswerView.js
index 6edc083e2..b40c96507 100644
--- a/public/react/src/modules/page/component/ChooseAnswerView.js
+++ b/public/react/src/modules/page/component/ChooseAnswerView.js
@@ -6,10 +6,8 @@ import { withStyles } from 'material-ui/styles';
import Table, { TableBody, TableCell, TableHead, TableRow } from 'material-ui/Table';
import Paper from 'material-ui/Paper';
-import showdown from 'showdown'
-const converter = new showdown.Converter()
- // text = '# hello, markdown!',
- // html = converter.makeHtml(text);
+import { markdownToHTML } from 'educoder'
+
const styles = theme => ({
root: {
@@ -34,7 +32,7 @@ const ChooseAnswerView = ({ gameAnswer, classes }) => {
return (
);
})}
From b5941cf2e9b2c00723103dd490ec1d124e8a4e0f 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, 28 Sep 2019 11:13:30 +0800
Subject: [PATCH 049/200] b
---
public/react/config/webpack.config.dev.js | 2 +-
.../courses/coursesPublic/ModulationModal.js | 14 +++++++++++++-
.../courses/graduation/tasks/GraduationAcross.js | 9 +++++----
.../graduation/tasks/GraduationTaskssettinglist.js | 12 +++++++-----
.../paths/PathDetail/DetailCardsEditAndAdd.js | 1 +
.../paths/PathDetail/DetailCardsEditAndEdit.js | 1 +
6 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js
index fe525154f..ef38a18f8 100644
--- a/public/react/config/webpack.config.dev.js
+++ b/public/react/config/webpack.config.dev.js
@@ -32,7 +32,7 @@ module.exports = {
// See the discussion in https://github.com/facebookincubator/create-react-app/issues/343.s
// devtool: "cheap-module-eval-source-map",
// 开启调试
- devtool: "source-map", // 开启调试
+ //devtool: "source-map", // 开启调试
// These are the "entry points" to our application.
// This means they will be the "root" imports that are included in JS bundle.
// The first two entry points enable "hot" CSS and auto-refreshes for JS.
diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js
index 974077793..1857f6814 100644
--- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js
+++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js
@@ -94,7 +94,19 @@ class ModulationModal extends Component{
- 原因不能为空
- -
+
+
+
+
-
e.user_name.indexOf(searchValue)>-1) : teachers;
const course_groupsList = searchValue ? course_groups&&course_groups.filter(e=>e.name.indexOf(searchValue)>-1) : course_groups;
- return(
+ const graduation_groupslist =searchValue ? graduation_groups&&graduation_groups.filter(e=>e.name.indexOf(searchValue)>-1) : graduation_groups;
+ return(
:""}
{comment_status == 2 &&teacherList&&teacherList.length>2? this.checkonChange(e,teacherList)}>全选:""}
- {comment_status != 2 &&course_groupsList&&course_groupsList.length>2? this.checkonChange(e,course_groupsList)}>全选:""}
+ {comment_status != 2 &&graduation_groupslist&&graduation_groupslist.length>2? this.checkonChange(e,graduation_groupslist)}>全选:""}
{menu}
@@ -515,7 +516,7 @@ class GraduationAcross extends Component{
teacherList && teacherList.map((i,key)=>{
return
}):
- course_groupsList && course_groupsList.map((i,key)=>{
+ graduation_groupslist && graduation_groupslist.map((i,key)=>{
return
})
}
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js
index 318955479..f3495f7e4 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js
@@ -535,10 +535,12 @@ class GraduationTaskssettinglist extends Component{
// console.log(result)
if(result.data.status===0){
this.seacthdata(teacher_comment,task_status,course_group,cross_comment,order,b_order,search,this.state.page);
+ this.props.showNotification(result.data.message);
+ this.cancelmodel();
this.setState({
- Modalstype:true,
+ Modalstype:false,
Allocationtype:false,
- Modalstopval:result.data.message,
+ // Modalstopval:result.data.message,
ModalSave:this.cancelmodel,
})
}
@@ -866,10 +868,10 @@ class GraduationTaskssettinglist extends Component{
{tag.name}
:
- this.showModulationtype(tag.id):tag.name==="分配"?taskslistdata&&taskslistdata.cross_comment===true?"":"":""}>
{tag.name==="分配"?taskslistdata&&taskslistdata.cross_comment===true?"":"":tag.name}
-
+
}
}
@@ -972,7 +974,7 @@ class GraduationTaskssettinglist extends Component{
white-space: nowrap;
}
.ant-table-tbody>tr>td, .ant-table-thead>tr>th{
- padding:16px 8px;
+ padding:16px 5px;
}
`
}
diff --git a/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js b/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js
index ed4cc85eb..159c40475 100644
--- a/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js
+++ b/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js
@@ -389,6 +389,7 @@ class DetailCardsEditAndAdd extends Component{
:""}
{selectShixun===true?
Date: Sat, 28 Sep 2019 11:42:05 +0800
Subject: [PATCH 050/200] =?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/modules/courses/exercise/Exercisetablesmubu.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/react/src/modules/courses/exercise/Exercisetablesmubu.js b/public/react/src/modules/courses/exercise/Exercisetablesmubu.js
index d2d6103b8..501a7ebf5 100644
--- a/public/react/src/modules/courses/exercise/Exercisetablesmubu.js
+++ b/public/react/src/modules/courses/exercise/Exercisetablesmubu.js
@@ -96,7 +96,7 @@ class Exercisetablesmubus extends Component {
'0%': '#29BD8B',
'100%': '#29BD8B',
}}
- percent={record.max_score*100} showInfo={false}/>{record.max_score*100}% }
+ percent={(record.max_score*100).toFixed()} showInfo={false}/>{(record.max_score*100).toFixed()}% }
),
}];
From c469e59ad160153e4ad855cd4968d657928497dd 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, 28 Sep 2019 14:59:57 +0800
Subject: [PATCH 051/200] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/modules/courses/graduation/tasks/GraduationAcross.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationAcross.js b/public/react/src/modules/courses/graduation/tasks/GraduationAcross.js
index 5ff1c0551..b672d1b81 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationAcross.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationAcross.js
@@ -472,9 +472,9 @@ class GraduationAcross extends Component{
分配给{ comment_status && comment_status == 2 ? "老师":"答辩组"}:
|