|
@@ -16,7 +16,7 @@
|
|
|
</div>
|
|
|
<div>基础信息</div>
|
|
|
</div>
|
|
|
- <MrBasicData class="r_box"></MrBasicData>
|
|
|
+ <MrBasicData class="r_box" :sMes="stuMessage"></MrBasicData>
|
|
|
</div>
|
|
|
<div class="second" style="height: 260px">
|
|
|
<div class="sub_title">
|
|
@@ -56,7 +56,10 @@
|
|
|
</div>
|
|
|
<div>课程评价得分</div>
|
|
|
</div>
|
|
|
- <CourseEvaScore class="r_box"></CourseEvaScore>
|
|
|
+ <CourseEvaScore
|
|
|
+ class="r_box"
|
|
|
+ :courseArray="cEvaScore"
|
|
|
+ ></CourseEvaScore>
|
|
|
</div>
|
|
|
<div class="second">
|
|
|
<div class="sub_title">
|
|
@@ -65,7 +68,10 @@
|
|
|
</div>
|
|
|
<div>课程类型分析</div>
|
|
|
</div>
|
|
|
- <CourseTypeAna class="r_box"></CourseTypeAna>
|
|
|
+ <CourseTypeAna
|
|
|
+ class="r_box"
|
|
|
+ :courseTypeArray="cTypeAnaList"
|
|
|
+ ></CourseTypeAna>
|
|
|
</div>
|
|
|
<div class="third" style="height: 270px">
|
|
|
<div class="sub_title">
|
|
@@ -80,12 +86,7 @@
|
|
|
</div>
|
|
|
<div style="height: 100%; overflow-x: hidden">
|
|
|
<div>
|
|
|
- <MrEva
|
|
|
- class="r_box"
|
|
|
- :ooid="oid"
|
|
|
- :uuid="userid"
|
|
|
- @getEvaCid="getCid"
|
|
|
- ></MrEva>
|
|
|
+ <MrEva class="r_box" :mrEvaList="evaList" @getEvaCid="getCid"></MrEva>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -132,6 +133,10 @@ export default {
|
|
|
reportVisible: false,
|
|
|
checkStudent: "",
|
|
|
checkCourse: "",
|
|
|
+ evaList: [], //目标体系
|
|
|
+ stuMessage: {}, //基础信息
|
|
|
+ cEvaScore: [], //课程评价得分
|
|
|
+ cTypeAnaList: [], //课程类型分析
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -145,6 +150,149 @@ export default {
|
|
|
this.checkStudent = "";
|
|
|
this.reportVisible = false;
|
|
|
},
|
|
|
+ getMrEva() {
|
|
|
+ let params = {
|
|
|
+ uid: this.userid,
|
|
|
+ oid: this.oid,
|
|
|
+ };
|
|
|
+ this.ajax
|
|
|
+ .get(this.$store.state.api + "selectMrEva", params)
|
|
|
+ .then((res) => {
|
|
|
+ this.stuMessage = res.data[0][0];
|
|
|
+ this.evaList = res.data[1];
|
|
|
+ var courseList = res.data[2];
|
|
|
+ var sWorksList = res.data[3];
|
|
|
+ var sWorksCList = [];
|
|
|
+ var cList = [];
|
|
|
+ var cTypeList = [];
|
|
|
+ var tool = 0;
|
|
|
+ var isFinish = 0;
|
|
|
+ for (var i = 0; i < this.evaList.length; i++) {
|
|
|
+ this.evaList[i].course = [];
|
|
|
+ for (var j = 0; j < courseList.length; j++) {
|
|
|
+ if (this.evaList[i].id == courseList[j].evaId) {
|
|
|
+ this.evaList[i].course.push(courseList[j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var i = 0; i < courseList.length; i++) {
|
|
|
+ cList.push(JSON.parse(courseList[i].chapters));
|
|
|
+ sWorksCList.push({
|
|
|
+ courseid: courseList[i].courseid,
|
|
|
+ title: courseList[i].title,
|
|
|
+ rate: courseList[i].rate,
|
|
|
+ });
|
|
|
+ if (courseList[i].typename != null) {
|
|
|
+ cTypeList.push(courseList[i].typename.split("/"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var count = 0;
|
|
|
+ for (var i = 0; i < this.evaList.length; i++) {
|
|
|
+ count += this.evaList[i].course.length;
|
|
|
+ }
|
|
|
+ this.stuMessage.allCourseNum = count;
|
|
|
+ for (var i = 0; i < cList.length; i++) {
|
|
|
+ for (var j = 0; j < cList[i].length; j++) {
|
|
|
+ for (
|
|
|
+ var k = 0;
|
|
|
+ k < cList[i][j].chapterInfo[0].taskJson.length;
|
|
|
+ k++
|
|
|
+ ) {
|
|
|
+ let _toolsAarry = [1, 3, 6, 7, 16, 15, 4, 40, 41, 42];
|
|
|
+ for (
|
|
|
+ var q = 0;
|
|
|
+ q < cList[i][j].chapterInfo[0].taskJson[k].toolChoose.length;
|
|
|
+ q++
|
|
|
+ ) {
|
|
|
+ if (
|
|
|
+ _toolsAarry.indexOf(
|
|
|
+ cList[i][j].chapterInfo[0].taskJson[k].toolChoose[q]
|
|
|
+ .tool[0]
|
|
|
+ ) != -1
|
|
|
+ ) {
|
|
|
+ tool++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (var i = 0; i < sWorksList.length; i++) {
|
|
|
+ for (var j = 0; j < courseList.length; j++) {
|
|
|
+ if (sWorksList[i].courseid == courseList[j].courseId) {
|
|
|
+ isFinish++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var allToolWorks = tool;
|
|
|
+ this.stuMessage.isFinishTaskWorks = isFinish;
|
|
|
+ this.stuMessage.noFinishTaskWorks = allToolWorks - isFinish;
|
|
|
+
|
|
|
+ var array = [];
|
|
|
+ var xArray = [];
|
|
|
+ for (var i = 0; i < sWorksCList.length; i++) {
|
|
|
+ if (xArray.length == 0) {
|
|
|
+ xArray.push(sWorksCList[i].title);
|
|
|
+ } else {
|
|
|
+ if (xArray.indexOf(sWorksCList[i].title) == -1) {
|
|
|
+ xArray.push(sWorksCList[i].title);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var courseCount = 0;
|
|
|
+ if (
|
|
|
+ sWorksCList[i].rate &&
|
|
|
+ sWorksCList[i].rate != null &&
|
|
|
+ Object.keys(JSON.parse(sWorksCList[i].rate)).length > 0
|
|
|
+ ) {
|
|
|
+ var rateList = JSON.parse(sWorksCList[i].rate);
|
|
|
+ var a = Object.keys(rateList);
|
|
|
+ for (var k = 0; k < a.length; k++) {
|
|
|
+ if (a[k] == "content") {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ courseCount += rateList[a[k]];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ array.push(courseCount);
|
|
|
+ } else {
|
|
|
+ array.push(courseCount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.cEvaScore.push({ array: array, xArray: xArray });
|
|
|
+ var ctArray = [];
|
|
|
+ var cxtArray = [];
|
|
|
+ for (var i = 0; i < cTypeList.length; i++) {
|
|
|
+ for (var j = 0; j < cTypeList[i].length; j++) {
|
|
|
+ if (ctArray.length == 0) {
|
|
|
+ ctArray.push(cTypeList[i][j]);
|
|
|
+ } else {
|
|
|
+ if (ctArray.indexOf(cTypeList[i][j]) == -1) {
|
|
|
+ ctArray.push(cTypeList[i][j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cxtArray.push(cTypeList[i][j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const result = ctArray
|
|
|
+ .filter((item) => cxtArray.includes(item))
|
|
|
+ .map((item) => ({
|
|
|
+ count: cxtArray.filter((i) => i === item).length,
|
|
|
+ }));
|
|
|
+ var tArray = [];
|
|
|
+ for (var i = 0; i < result.length; i++) {
|
|
|
+ tArray.push(result[i].count);
|
|
|
+ }
|
|
|
+ this.cTypeAnaList.push({ array: tArray, xArray: ctArray });
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getMrEva();
|
|
|
},
|
|
|
};
|
|
|
</script>
|