|
@@ -49,11 +49,11 @@
|
|
</div>
|
|
</div>
|
|
<div class="teaMiddle tNum">
|
|
<div class="teaMiddle tNum">
|
|
<div>类别总数</div>
|
|
<div>类别总数</div>
|
|
- <div>8412</div>
|
|
|
|
|
|
+ <div>{{ typeCount }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="teaMiddle tSum">
|
|
<div class="teaMiddle tSum">
|
|
<div>类别平均</div>
|
|
<div>类别平均</div>
|
|
- <div>3021</div>
|
|
|
|
|
|
+ <div>{{ (typeCount / 3).toFixed(0) }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<CateRank
|
|
<CateRank
|
|
@@ -62,10 +62,11 @@
|
|
margin-top: 10px;
|
|
margin-top: 10px;
|
|
overflow: auto;
|
|
overflow: auto;
|
|
"
|
|
"
|
|
|
|
+ :courseNumberArray="courseNumberArray"
|
|
></CateRank>
|
|
></CateRank>
|
|
</div>
|
|
</div>
|
|
<div class="halfBox middleBox" style="align-items: flex-start">
|
|
<div class="halfBox middleBox" style="align-items: flex-start">
|
|
- <WorkNum style="height: calc(100% - 40px)"></WorkNum>
|
|
|
|
|
|
+ <WorkNum style="height: calc(100% - 40px)" :workNumList="workNumList"></WorkNum>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -83,13 +84,17 @@
|
|
<div class="titleBox">
|
|
<div class="titleBox">
|
|
<div class="title">课程分析</div>
|
|
<div class="title">课程分析</div>
|
|
<el-select v-model="cType" @change="typeChange" class="selectBox">
|
|
<el-select v-model="cType" @change="typeChange" class="selectBox">
|
|
|
|
+ <el-option label="全部" value=""></el-option>
|
|
<el-option label="年级" value="grade"></el-option>
|
|
<el-option label="年级" value="grade"></el-option>
|
|
<el-option label="主题" value="theme"></el-option>
|
|
<el-option label="主题" value="theme"></el-option>
|
|
<el-option label="学科" value="subject"></el-option>
|
|
<el-option label="学科" value="subject"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
<div class="dataBox">
|
|
<div class="dataBox">
|
|
- <CourseAna style="height: calc(100% - 40px)"></CourseAna>
|
|
|
|
|
|
+ <CourseAna
|
|
|
|
+ style="height: calc(100% - 40px)"
|
|
|
|
+ :courseNumberArray="courseNumberArray"
|
|
|
|
+ ></CourseAna>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="bottom">
|
|
<div class="bottom">
|
|
@@ -156,19 +161,37 @@ export default {
|
|
groupedArrayByMonth: [],
|
|
groupedArrayByMonth: [],
|
|
toolList: [],
|
|
toolList: [],
|
|
reInc: 0,
|
|
reInc: 0,
|
|
- cType: "grade",
|
|
|
|
|
|
+ cType: "",
|
|
lType: "grade",
|
|
lType: "grade",
|
|
tedurArray: [],
|
|
tedurArray: [],
|
|
classList: [],
|
|
classList: [],
|
|
subjectList: [],
|
|
subjectList: [],
|
|
themeList: [],
|
|
themeList: [],
|
|
|
|
+ typeCount: 0,
|
|
|
|
+ courseNumberArray: [],
|
|
|
|
+ gradeArray: [],
|
|
|
|
+ subjectArray: [],
|
|
|
|
+ themeArray: [],
|
|
|
|
+ allArray: [],
|
|
|
|
+ workNumList:[],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
this.getData();
|
|
this.getData();
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- typeChange(){},
|
|
|
|
|
|
+ typeChange() {
|
|
|
|
+ if (this.cType === "") {
|
|
|
|
+ this.courseNumberArray = this.allArray;
|
|
|
|
+ } else if (this.cType === "grade") {
|
|
|
|
+ this.courseNumberArray = this.gradeArray;
|
|
|
|
+ } else if (this.cType === "theme") {
|
|
|
|
+ this.courseNumberArray = this.subjectArray;
|
|
|
|
+ } else if (this.cType === "subject") {
|
|
|
|
+ this.courseNumberArray = this.themeArray;
|
|
|
|
+ }
|
|
|
|
+ this.$forceUpdate();
|
|
|
|
+ },
|
|
typeChange1() {
|
|
typeChange1() {
|
|
if (this.lType == "grade") {
|
|
if (this.lType == "grade") {
|
|
this.tedurArray = this.classList;
|
|
this.tedurArray = this.classList;
|
|
@@ -198,6 +221,11 @@ export default {
|
|
var classList = res.data[3]; //年级数组
|
|
var classList = res.data[3]; //年级数组
|
|
var subjectList = res.data[4]; //学科数组
|
|
var subjectList = res.data[4]; //学科数组
|
|
var themeList = res.data[5]; //主题数组
|
|
var themeList = res.data[5]; //主题数组
|
|
|
|
+ let _course = res.data[6]; //课程
|
|
|
|
+ let _grade = res.data[3]; //年级
|
|
|
|
+ let _subject = res.data[4]; //学科
|
|
|
|
+ var _workCourse = res.data[7]; //带作业的课程
|
|
|
|
+ _subject.push({ name: "其他" });
|
|
var cList = [];
|
|
var cList = [];
|
|
//将数据根据time里面的月份分成多个数组
|
|
//将数据根据time里面的月份分成多个数组
|
|
var groupedArrayByMonth = [];
|
|
var groupedArrayByMonth = [];
|
|
@@ -320,27 +348,27 @@ export default {
|
|
for (var i = 0; i < courseJson.length; i++) {
|
|
for (var i = 0; i < courseJson.length; i++) {
|
|
for (var j = 0; j < classList.length; j++) {
|
|
for (var j = 0; j < classList.length; j++) {
|
|
if (courseJson[i].typeid.indexOf(classList[j].id) != -1) {
|
|
if (courseJson[i].typeid.indexOf(classList[j].id) != -1) {
|
|
- if(classList[j].time && courseJson[i].text){
|
|
|
|
|
|
+ if (classList[j].time && courseJson[i].text) {
|
|
classList[j].time += parseInt(courseJson[i].text);
|
|
classList[j].time += parseInt(courseJson[i].text);
|
|
- }else if(courseJson[i].text){
|
|
|
|
|
|
+ } else if (courseJson[i].text) {
|
|
classList[j].time = parseInt(courseJson[i].text);
|
|
classList[j].time = parseInt(courseJson[i].text);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (var k = 0; k < subjectList.length; k++) {
|
|
for (var k = 0; k < subjectList.length; k++) {
|
|
if (courseJson[i].typeid.indexOf(subjectList[k].id) != -1) {
|
|
if (courseJson[i].typeid.indexOf(subjectList[k].id) != -1) {
|
|
- if(subjectList[k].time && courseJson[i].text){
|
|
|
|
|
|
+ if (subjectList[k].time && courseJson[i].text) {
|
|
subjectList[k].time += parseInt(courseJson[i].text);
|
|
subjectList[k].time += parseInt(courseJson[i].text);
|
|
- }else if(courseJson[i].text){
|
|
|
|
|
|
+ } else if (courseJson[i].text) {
|
|
subjectList[k].time = parseInt(courseJson[i].text);
|
|
subjectList[k].time = parseInt(courseJson[i].text);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (var l = 0; l < themeList.length; l++) {
|
|
for (var l = 0; l < themeList.length; l++) {
|
|
if (courseJson[i].typeid.indexOf(themeList[l].id) != -1) {
|
|
if (courseJson[i].typeid.indexOf(themeList[l].id) != -1) {
|
|
- if(themeList[l].time && courseJson[i].text){
|
|
|
|
|
|
+ if (themeList[l].time && courseJson[i].text) {
|
|
themeList[l].time += parseInt(courseJson[i].text);
|
|
themeList[l].time += parseInt(courseJson[i].text);
|
|
- }else if(courseJson[i].text){
|
|
|
|
|
|
+ } else if (courseJson[i].text) {
|
|
themeList[l].time = parseInt(courseJson[i].text);
|
|
themeList[l].time = parseInt(courseJson[i].text);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -356,15 +384,90 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.tedurArray = themeList;
|
|
this.tedurArray = themeList;
|
|
}
|
|
}
|
|
|
|
+ this.typeCount =
|
|
|
|
+ classList.length + subjectList.length + themeList.length;
|
|
|
|
+ let _gradeArray = [];
|
|
|
|
+ let _subjectArray = [];
|
|
|
|
+ let _themeArray = [];
|
|
|
|
+
|
|
|
|
+ for (var i = 0; i < _grade.length; i++) {
|
|
|
|
+ _gradeArray.push({
|
|
|
|
+ name: _grade[i].name,
|
|
|
|
+ typeid: _grade[i].id,
|
|
|
|
+ course: 0,
|
|
|
|
+ });
|
|
|
|
+ for (var z = 0; z < _course.length; z++) {
|
|
|
|
+ if (_course[z].typeid == _grade[i].id) {
|
|
|
|
+ _gradeArray[i].course++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (var i = 0; i < _subject.length; i++) {
|
|
|
|
+ _subjectArray.push({
|
|
|
|
+ name: _subject[i].name,
|
|
|
|
+ typeid: _subject[i].id,
|
|
|
|
+ course: 0,
|
|
|
|
+ });
|
|
|
|
+ for (var z = 0; z < _course.length; z++) {
|
|
|
|
+ if (_course[z].typeid == _subject[i].id) {
|
|
|
|
+ _subjectArray[i].course++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (var i = 0; i < themeList.length; i++) {
|
|
|
|
+ _themeArray.push({
|
|
|
|
+ name: themeList[i].name,
|
|
|
|
+ typeid: themeList[i].id,
|
|
|
|
+ course: 0,
|
|
|
|
+ });
|
|
|
|
+ for (var z = 0; z < _course.length; z++) {
|
|
|
|
+ if (_course[z].typeid == themeList[i].id) {
|
|
|
|
+ _themeArray[i].course++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.gradeArray = _gradeArray;
|
|
|
|
+ this.subjectArray = _subjectArray;
|
|
|
|
+ this.themeArray = _themeArray;
|
|
|
|
+ this.allArray = [..._gradeArray, ..._subjectArray, ..._themeArray];
|
|
|
|
+ this.typeChange();
|
|
|
|
+ var wList = [];
|
|
|
|
+ for (var i = 0; i < _workCourse.length; i++) {
|
|
|
|
+ if (!wList[_workCourse[i].courseId]) {
|
|
|
|
+ wList[_workCourse[i].courseId] = { cid:_workCourse[i].courseId, task: 0, work: 0 };
|
|
|
|
+ let chapters = JSON.parse(_workCourse[i].chapters);
|
|
|
|
+ for (var j = 0; j < chapters.length; j++) {
|
|
|
|
+ if (wList[_workCourse[i].courseId].task == 0) {
|
|
|
|
+ wList[_workCourse[i].courseId].task =
|
|
|
|
+ chapters[j].chapterInfo[0].taskJson.length;
|
|
|
|
+ } else {
|
|
|
|
+ wList[_workCourse[i].courseId].task +=
|
|
|
|
+ chapters[j].chapterInfo[0].taskJson.length;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for(var i =0;i<_workCourse.length;i++){
|
|
|
|
+ let a = Object.keys(wList)
|
|
|
|
+ for(var j =0;j<Object.keys(wList).length;j++){
|
|
|
|
+ if(_workCourse[i].courseId == wList[a[j]].cid){
|
|
|
|
+ wList[a[j]].work++
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var workNumList = Object.values(wList).map(item => [item.task, item.work]);
|
|
|
|
+ this.workNumList = workNumList;
|
|
})
|
|
})
|
|
.catch((err) => {
|
|
.catch((err) => {
|
|
this.isLoading = false;
|
|
this.isLoading = false;
|
|
console.error(err);
|
|
console.error(err);
|
|
});
|
|
});
|
|
},
|
|
},
|
|
- format(percentage) {
|
|
|
|
- return percentage;
|
|
|
|
- },
|
|
|
|
|
|
+ // format(percentage) {
|
|
|
|
+ // return percentage;
|
|
|
|
+ // },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|