|
@@ -82,16 +82,29 @@
|
|
|
<span>{{ userOnlineTime > 0 ? (userOnlineTime / allUser).toFixed(0) : 0 }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="dataBox" style="height: calc(100% - 115px);">
|
|
|
- <toolUser style="height: calc(100%)" v-if="skType == 1" :yearArray="loginCountYearArray"></toolUser>
|
|
|
- <bar style="height: calc(100%)" v-if="skType == 0" :loginArray="[teacherOnlineTime, studentOnlineTime]"></bar>
|
|
|
- <!-- <div class="otherCss">
|
|
|
- <div v-if="!oType">切换为柱状图</div>
|
|
|
- <div v-if="oType">切换为热力图</div>
|
|
|
+ <div class="dataBox" style="height: calc(100% - 135px);">
|
|
|
+ <!-- 登录频次热力图 -->
|
|
|
+ <toolUser style="height: calc(100%)" v-if="skType == 1 && !oType1" :yearArray="loginCountYearArray"></toolUser>
|
|
|
+ <!-- 登录频次柱状图 -->
|
|
|
+ <toolUserBar style="height: calc(100%)" v-if="skType == 1 && oType1" :loginArray="[teacherLoginCount, studentLoginCount]"></toolUserBar>
|
|
|
+ <!-- 在线时长柱状图 -->
|
|
|
+ <bar style="height: calc(100%)" v-if="skType == 0 && !oType" :loginArray="[teacherOnlineTime, studentOnlineTime]"></bar>
|
|
|
+ <!-- 在线时长热力图 -->
|
|
|
+ <barToolUser style="height: calc(100%)" v-if="skType == 0 && oType" :yearArray="allTimeYearArray"></barToolUser>
|
|
|
+ <div class="otherCss" v-if="skType == 0">
|
|
|
+ <div v-if="!oType">切换为热力图</div>
|
|
|
+ <div v-if="oType">切换为柱状图</div>
|
|
|
<div class="otherImg" @click="otherEchart">
|
|
|
<img src="../../../../assets/icon/other.png" alt="" />
|
|
|
</div>
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
+ <div class="otherCss" v-if="skType == 1">
|
|
|
+ <div v-if="!oType1">切换为柱状图</div>
|
|
|
+ <div v-if="oType1">切换为热力图</div>
|
|
|
+ <div class="otherImg" @click="otherEchart1">
|
|
|
+ <img src="../../../../assets/icon/other.png" alt="" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -321,6 +334,8 @@ import toolUser from "./toolUser";
|
|
|
import bar from "./bar";
|
|
|
import courseNum from "./courseNum";
|
|
|
import workNum from "./workNum";
|
|
|
+import barToolUser from "./barToolUser";
|
|
|
+import toolUserBar from "./toolUserBar";
|
|
|
|
|
|
|
|
|
|
|
@@ -334,6 +349,8 @@ export default {
|
|
|
bar,
|
|
|
courseNum,
|
|
|
workNum,
|
|
|
+ barToolUser,
|
|
|
+ toolUserBar,
|
|
|
},
|
|
|
props: {
|
|
|
oid: {
|
|
@@ -357,6 +374,7 @@ export default {
|
|
|
tType: 0,
|
|
|
courseType: 0,
|
|
|
oType: false,
|
|
|
+ oType1: false,
|
|
|
shType: false,
|
|
|
allUser: 0,
|
|
|
loginCountMonthArray: [],
|
|
@@ -390,7 +408,10 @@ export default {
|
|
|
gsCourseStudents: 0,//协同课程
|
|
|
commentStudents: 0,//协同交流
|
|
|
},
|
|
|
- weekCourse2: []
|
|
|
+ weekCourse2: [],
|
|
|
+ allTimeYearArray: [],
|
|
|
+ teacherLoginCount: 0,
|
|
|
+ studentLoginCount: 0,
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -403,6 +424,9 @@ export default {
|
|
|
otherEchart() {
|
|
|
this.oType = !this.oType;
|
|
|
},
|
|
|
+ otherEchart1() {
|
|
|
+ this.oType1 = !this.oType1;
|
|
|
+ },
|
|
|
shEchart() {
|
|
|
this.shType = !this.shType;
|
|
|
},
|
|
@@ -507,7 +531,6 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- console.log(loginCountYearArray);
|
|
|
this.loginCountYearArray = loginCountYearArray
|
|
|
|
|
|
let _userOnlineTime = res.data[7][0].time;//在线时长 所有用户
|
|
@@ -568,7 +591,6 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- console.log(_courseArray);
|
|
|
// this.gradeCourse = _gradeCourse / _grade.length
|
|
|
// this.subjectCourse = _subjectCourse / _subject.length
|
|
|
this.courseArray = _courseArray
|
|
@@ -705,14 +727,12 @@ export default {
|
|
|
weekArray.toWeek.push(a.getFullYear() + '-' + (a.getMonth() + 1) + '-' + a.getDate());
|
|
|
}
|
|
|
}
|
|
|
- console.log(weekArray);
|
|
|
let weekCourse = [];
|
|
|
let weekCourse2 = [];
|
|
|
let lastWeekCouseCount = 0
|
|
|
let toWeekCouseCount = 0
|
|
|
for (var z = 0; z < _course.length; z++) {
|
|
|
let _date = new Date(weekArray.lastWeek[weekArray.lastWeek.length - 1])
|
|
|
- // console.log(_date)
|
|
|
if (new Date(_course[z].create_at) > _date && _course[z].pid == '34628934-d02f-11ec-8c78-005056b86db5') {
|
|
|
weekCourse.push(_course[z])
|
|
|
var a = new Date(_course[z].create_at)
|
|
@@ -773,8 +793,55 @@ export default {
|
|
|
toCourse: (toWeekCouseCount - toCourseidWeek.length) > 0 ? (toWeekCouseCount - toCourseidWeek.length) : 0,
|
|
|
})
|
|
|
|
|
|
- console.log(weekCourse2);
|
|
|
this.weekCourse2 = weekCourse2
|
|
|
+
|
|
|
+ let allTimeYear = res.data[26]; //累计时长热力图
|
|
|
+ this.teacherLoginCount = res.data[27].length; //教师登录频次柱状图
|
|
|
+ this.studentLoginCount = res.data[28].length; //学生登录频次柱状图
|
|
|
+
|
|
|
+ let allTimeYearArray = []
|
|
|
+ for (var i = Month; i > Month - 12; i--) {
|
|
|
+ if (i <= 0) {
|
|
|
+ allTimeYearArray.push({
|
|
|
+ Year: Year - 1,
|
|
|
+ Month: 12 + i,
|
|
|
+ mon: 0,
|
|
|
+ tue: 0,
|
|
|
+ wed: 0,
|
|
|
+ thur: 0,
|
|
|
+ fri: 0,
|
|
|
+ sat: 0,
|
|
|
+ sun: 0,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ allTimeYearArray.push({
|
|
|
+ Month: i,
|
|
|
+ Year: Year,
|
|
|
+ mon: 0,
|
|
|
+ tue: 0,
|
|
|
+ wed: 0,
|
|
|
+ thur: 0,
|
|
|
+ fri: 0,
|
|
|
+ sat: 0,
|
|
|
+ sun: 0,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ allTimeYearArray = allTimeYearArray.reverse()
|
|
|
+ for (var i = 0; i < allTimeYear.length; i++) {
|
|
|
+ let _date = new Date(allTimeYear[i].create_at)
|
|
|
+ var _month = _date.getMonth() + 1
|
|
|
+ var _year = _date.getFullYear()
|
|
|
+ var _day = _date.getDay()
|
|
|
+ let dayArray = ['sun', 'mon', 'tue', 'wed', 'thur', 'fri', 'sat']
|
|
|
+ for (var j = 0; j < allTimeYearArray.length; j++) {
|
|
|
+ if (_month == allTimeYearArray[j].Month && _year == allTimeYearArray[j].Year) {
|
|
|
+ allTimeYearArray[j][dayArray[_day]] += parseInt((parseInt(allTimeYear[i].text) / 3600).toFixed(0));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.allTimeYearArray = allTimeYearArray
|
|
|
this.$forceUpdate();
|
|
|
})
|
|
|
.catch((err) => {
|