|
@@ -16,7 +16,10 @@
|
|
|
<div class="info blueBG">
|
|
|
<span>本月登录教师环比</span>
|
|
|
<!-- <span>{{ weekCount }}</span> -->
|
|
|
- <span v-if="teacherLoginCountMonthArray.length">{{ (teacherLoginCountMonthArray[teacherLoginCountMonthArray.length - 1].login) > 0 ? (((teacherLoginCountMonthArray[teacherLoginCountMonthArray.length - 1].login) / teacherNum) * 100).toFixed(0) + '%' : 0 }}</span>
|
|
|
+ <span v-if="teacherLoginCountMonthArray.length">{{
|
|
|
+ (teacherLoginCountMonthArray[teacherLoginCountMonthArray.length - 1].login) > 0 ?
|
|
|
+ (((teacherLoginCountMonthArray[teacherLoginCountMonthArray.length - 1].login) / teacherNum) *
|
|
|
+ 100).toFixed(0) + '%' : 0 }}</span>
|
|
|
<!-- <span v-if="teacherLoginCountMonthArray.length">{{
|
|
|
teacherLoginCountMonthArray[
|
|
|
teacherLoginCountMonthArray.length - 1
|
|
@@ -60,28 +63,17 @@
|
|
|
}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <TeaFre
|
|
|
- style="height: calc(100% - 150px)"
|
|
|
- :monthArray="teacherLoginCountMonthArray"
|
|
|
- ></TeaFre>
|
|
|
+ <TeaFre style="height: calc(100% - 150px)" :monthArray="teacherLoginCountMonthArray"></TeaFre>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottom">
|
|
|
<div class="titleBox">
|
|
|
- <div
|
|
|
- class="title"
|
|
|
- :class="{ isClick: skType == 0 }"
|
|
|
- @click="skType = 0"
|
|
|
- style="cursor: pointer; padding: 0 0 5px 0"
|
|
|
- >
|
|
|
+ <div class="title" :class="{ isClick: skType == 0 }" @click="skType = 0"
|
|
|
+ style="cursor: pointer; padding: 0 0 5px 0">
|
|
|
在线时长
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="title"
|
|
|
- :class="{ isClick: skType == 1 }"
|
|
|
- @click="skType = 1"
|
|
|
- style="cursor: pointer; padding: 0 0 5px 0"
|
|
|
- >
|
|
|
+ <div class="title" :class="{ isClick: skType == 1 }" @click="skType = 1"
|
|
|
+ style="cursor: pointer; padding: 0 0 5px 0">
|
|
|
登录频次
|
|
|
</div>
|
|
|
</div>
|
|
@@ -114,16 +106,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dataBox">
|
|
|
- <Bar
|
|
|
- style="height: calc(100% - 70px)"
|
|
|
- v-if="skType == 0"
|
|
|
- :workTime="workTime"
|
|
|
- ></Bar>
|
|
|
- <ToolUse
|
|
|
- style="height: calc(100% - 70px)"
|
|
|
- v-if="skType == 1"
|
|
|
- :yearArray="loginCountYearArray"
|
|
|
- ></ToolUse>
|
|
|
+ <Bar style="height: calc(100% - 70px)" v-if="skType == 0" :workTime="workTime"></Bar>
|
|
|
+ <ToolUse style="height: calc(100% - 70px)" v-if="skType == 1" :yearArray="loginCountYearArray"></ToolUse>
|
|
|
<!-- <div class="otherCss">
|
|
|
<div v-if="!oType">切换为柱状图</div>
|
|
|
<div v-if="oType">切换为热力图</div>
|
|
@@ -137,20 +121,16 @@
|
|
|
<div class="center">
|
|
|
<div class="top">
|
|
|
<div class="titleBox" style="justify-content: space-between">
|
|
|
- <div
|
|
|
- style="
|
|
|
+ <div style="
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
flex-wrap: nowrap;
|
|
|
align-items: center;
|
|
|
- "
|
|
|
- >
|
|
|
- <div
|
|
|
- class="title"
|
|
|
- :class="{ isClick: courseType == 0 }"
|
|
|
- @click="courseType = 0"
|
|
|
- style="cursor: pointer; padding: 0 0 5px 0"
|
|
|
- >
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 100%;
|
|
|
+ ">
|
|
|
+ <div class="title" :class="{ isClick: courseType == 0 }" @click="courseType = 0"
|
|
|
+ style="cursor: pointer; padding: 0 0 5px 0">
|
|
|
教师行为分布
|
|
|
</div>
|
|
|
<!-- <div
|
|
@@ -161,41 +141,35 @@
|
|
|
>
|
|
|
教师协同情况
|
|
|
</div> -->
|
|
|
+ <el-select v-model="cType" @change="typeChange2" class="selectBox" v-if="courseType == 0">
|
|
|
+ <el-option label="时长" value="0"></el-option>
|
|
|
+ <el-option label="创建" value="1"></el-option>
|
|
|
+ <el-option label="协同" value="2"></el-option>
|
|
|
+ <el-option label="实施" value="3"></el-option>
|
|
|
+ <el-option label="评价" value="4"></el-option>
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dataBox">
|
|
|
- <TeaData
|
|
|
- v-if="courseType == 0 || courseType == 1"
|
|
|
- style="height: calc(100%)"
|
|
|
- :courseArray="courseArray"
|
|
|
- ></TeaData>
|
|
|
+ <TeaData v-if="courseType == 0 || courseType == 1" style="height: calc(100%)" :courseArray="courseArray" :cType="cType">
|
|
|
+ </TeaData>
|
|
|
<!-- <FunPlot v-if="courseType == 1" style="height: calc(100%)"></FunPlot> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottom">
|
|
|
<div class="titleBox" style="justify-content: space-between">
|
|
|
- <div
|
|
|
- style="
|
|
|
+ <div style="
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
flex-wrap: nowrap;
|
|
|
align-items: center;
|
|
|
- "
|
|
|
- >
|
|
|
- <div
|
|
|
- class="title"
|
|
|
- :class="{ isClick: bType == 0 }"
|
|
|
- @click="bType = 0"
|
|
|
- style="cursor: pointer; padding: 0 0 5px 0"
|
|
|
- >
|
|
|
+ ">
|
|
|
+ <div class="title" :class="{ isClick: bType == 0 }" @click="bType = 0"
|
|
|
+ style="cursor: pointer; padding: 0 0 5px 0">
|
|
|
课程参与情况
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="title"
|
|
|
- :class="{ isClick: bType == 1 }"
|
|
|
- @click="bType = 1"
|
|
|
- style="cursor: pointer; padding: 0 0 5px 0"
|
|
|
- >
|
|
|
+ <div class="title" :class="{ isClick: bType == 1 }" @click="bType = 1"
|
|
|
+ style="cursor: pointer; padding: 0 0 5px 0">
|
|
|
项目参与情况
|
|
|
</div>
|
|
|
</div>
|
|
@@ -204,155 +178,98 @@
|
|
|
<div class="allBox">
|
|
|
<div class="allBox_left">
|
|
|
<TeaAct v-if="bType == 0" :pusaDep="pusaDep"></TeaAct>
|
|
|
- <TeaActSecond
|
|
|
- v-if="bType == 1"
|
|
|
- :pusaDep="pusaDep1"
|
|
|
- ></TeaActSecond>
|
|
|
+ <TeaActSecond v-if="bType == 1" :pusaDep="pusaDep1"></TeaActSecond>
|
|
|
</div>
|
|
|
<div class="allBox_right" v-if="bType == 0">
|
|
|
<div class="depth">
|
|
|
<span>创建课程</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson.createCourse
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson.createCourse / lightJson.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson.createCourse
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson.createCourse / lightJson.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>协同教研</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson.gCourseTeachers
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson.gCourseTeachers / lightJson.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson.gCourseTeachers
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson.gCourseTeachers / lightJson.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>使用模板</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="0"
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="0" :stroke-width="5" :format="format"
|
|
|
+ color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>互动交流</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson.commentTeachers
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson.commentTeachers / lightJson.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson.commentTeachers
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson.commentTeachers / lightJson.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>使用工具</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson.useTool
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson.useTool / lightJson.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson.useTool
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson.useTool / lightJson.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>实施评价</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson.useEvalution
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson.useEvalution / lightJson.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson.useEvalution
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson.useEvalution / lightJson.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>教学评一体化</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson.evaWorksCount
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson.evaWorksCount / lightJson.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson.evaWorksCount
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson.evaWorksCount / lightJson.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -360,94 +277,58 @@
|
|
|
<div class="depth">
|
|
|
<span>创建项目</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson1.createProject
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson1.createProject / lightJson1.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson1.createProject
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson1.createProject / lightJson1.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>师生协作</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson1.gProjectTeachers
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson1.gProjectTeachers /
|
|
|
- lightJson1.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson1.gProjectTeachers
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson1.gProjectTeachers /
|
|
|
+ lightJson1.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>使用模板</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="0"
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="0" :stroke-width="5" :format="format"
|
|
|
+ color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>互动交流</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="0"
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="0" :stroke-width="5" :format="format"
|
|
|
+ color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<span>使用工具</span>
|
|
|
<div>
|
|
|
- <el-progress
|
|
|
- :width="80"
|
|
|
- type="circle"
|
|
|
- :percentage="
|
|
|
- lightJson1.useTool
|
|
|
- ? parseInt(
|
|
|
- (
|
|
|
- (lightJson1.useTool / lightJson1.teachers) *
|
|
|
- 100
|
|
|
- ).toFixed(0)
|
|
|
- )
|
|
|
- : 0
|
|
|
- "
|
|
|
- :stroke-width="5"
|
|
|
- :format="format"
|
|
|
- color="#106BFF"
|
|
|
- ></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="lightJson1.useTool
|
|
|
+ ? parseInt(
|
|
|
+ (
|
|
|
+ (lightJson1.useTool / lightJson1.teachers) *
|
|
|
+ 100
|
|
|
+ ).toFixed(0)
|
|
|
+ )
|
|
|
+ : 0
|
|
|
+ " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -467,10 +348,7 @@
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="dataBox">
|
|
|
- <WorkNum
|
|
|
- style="height: calc(100% - 40px)"
|
|
|
- :courseNumberArray="courseNumberArray"
|
|
|
- ></WorkNum>
|
|
|
+ <WorkNum style="height: calc(100% - 40px)" :courseNumberArray="courseNumberArray"></WorkNum>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottom">
|
|
@@ -494,10 +372,7 @@
|
|
|
}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <WorkTime
|
|
|
- style="height: calc(100% - 72px)"
|
|
|
- :workNumList="workNumList"
|
|
|
- ></WorkTime>
|
|
|
+ <WorkTime style="height: calc(100% - 72px)" :workNumList="workNumList"></WorkTime>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -542,6 +417,7 @@ export default {
|
|
|
bType: 0,
|
|
|
sType: 0,
|
|
|
cType4: "grade",
|
|
|
+ cType: "1",
|
|
|
oType: false,
|
|
|
teacherNum: 0,
|
|
|
allLoginTeacher: 0,
|
|
@@ -555,6 +431,8 @@ export default {
|
|
|
themeListTime: [],
|
|
|
loginCountYearArray: [],
|
|
|
courseArray: [],
|
|
|
+ _courseArray: [],
|
|
|
+ _course2: [],
|
|
|
courseNumberArray: [],
|
|
|
gradeArray: [],
|
|
|
subjectArray: [],
|
|
@@ -617,6 +495,116 @@ export default {
|
|
|
}
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
+ typeChange2() {
|
|
|
+ let _grade = JSON.parse(JSON.stringify(this._grade)); //年级
|
|
|
+ let _subject = JSON.parse(JSON.stringify(this._subject)); //学科
|
|
|
+ let _course = JSON.parse(JSON.stringify(this._courseArray));
|
|
|
+ let _course2 = JSON.parse(JSON.stringify(this._course2));
|
|
|
+ let _gradeCourse = 0; //各年级上传课程
|
|
|
+ let _subjectCourse = 0; //各学科上传课程
|
|
|
+ let _courseArray = [];
|
|
|
+ // _subject.push({ name: "其他" });
|
|
|
+
|
|
|
+ if(this.cType == '1'){
|
|
|
+ for (var i = 0; i < _grade.length; i++) {
|
|
|
+ _courseArray.push({
|
|
|
+ name: _grade[i].name,
|
|
|
+ id: _grade[i].id,
|
|
|
+ courseid: [],
|
|
|
+ subject: [],
|
|
|
+ });
|
|
|
+ for (var z = 0; z < _course.length; z++) {
|
|
|
+ if (_course[z].typeid == _grade[i].id) {
|
|
|
+ _gradeCourse++;
|
|
|
+ if (
|
|
|
+ _courseArray[i].courseid.indexOf(_course[z].courseid) === -1
|
|
|
+ ) {
|
|
|
+ _courseArray[i].courseid.push(_course[z].courseid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var j = 0; j < _subject.length; j++) {
|
|
|
+ _courseArray[i].subject.push({
|
|
|
+ name: _subject[j].name,
|
|
|
+ id: _subject[j].id,
|
|
|
+ course: 0,
|
|
|
+ });
|
|
|
+ for (var z = 0; z < _course.length; z++) {
|
|
|
+ if (
|
|
|
+ _course[z].typeid == _subject[j].id &&
|
|
|
+ _courseArray[i].courseid.indexOf(_course[z].courseid) !== -1
|
|
|
+ ) {
|
|
|
+ _courseArray[i].subject[j].course++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let sum = 0;
|
|
|
+ for (var j = 0; j < _courseArray[i].subject.length - 1; j++) {
|
|
|
+ sum += _courseArray[i].subject[j].course;
|
|
|
+ }
|
|
|
+ // _courseArray[i].subject[_courseArray[i].subject.length - 1].course =
|
|
|
+ // _courseArray[i].courseid.length - sum < 0
|
|
|
+ // ? 0
|
|
|
+ // : _courseArray[i].courseid.length - sum;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ for (var i = 0; i < _grade.length; i++) {
|
|
|
+ _courseArray.push({
|
|
|
+ name: _grade[i].name,
|
|
|
+ id: _grade[i].id,
|
|
|
+ courseid: [],
|
|
|
+ subject: [],
|
|
|
+ });
|
|
|
+ for (var z = 0; z < _course2.length; z++) {
|
|
|
+ if (_course2[z].typeid == _grade[i].id) {
|
|
|
+ if (
|
|
|
+ _courseArray[i].courseid.indexOf(_course2[z].courseid) === -1
|
|
|
+ ) {
|
|
|
+ _courseArray[i].courseid.push(_course2[z].courseid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var j = 0; j < _subject.length; j++) {
|
|
|
+ _courseArray[i].subject.push({
|
|
|
+ name: _subject[j].name,
|
|
|
+ id: _subject[j].id,
|
|
|
+ course: 0,
|
|
|
+ });
|
|
|
+ for (var z = 0; z < _course2.length; z++) {
|
|
|
+ if (
|
|
|
+ _course[z].typeid == _subject[j].id &&
|
|
|
+ _courseArray[i].courseid.indexOf(_course2[z].courseid) !== -1
|
|
|
+ ) {
|
|
|
+ if(this.cType == '0'){
|
|
|
+ _courseArray[i].subject[j].course+=_course2[z].text ? parseInt((parseInt(_course2[z].text) / 3600).toFixed(0)) : 0;
|
|
|
+ }else if(this.cType == '2'){
|
|
|
+ if(_course2[z].course_teacher.split(",").length > 0){
|
|
|
+ _courseArray[i].subject[j].course++;
|
|
|
+ }
|
|
|
+ }else if(this.cType == '3'){
|
|
|
+ if(_course2[z].worksCount > 0){
|
|
|
+ _courseArray[i].subject[j].course++;
|
|
|
+ }
|
|
|
+ }else if(this.cType == '4'){
|
|
|
+ if(_course2[z].evaCount > 0){
|
|
|
+ _courseArray[i].subject[j].course++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // for (var j = 0; j < _subject.length; j++) {
|
|
|
+ // for (var z = 0; z < _course.length; z++) {
|
|
|
+ // if (_course[z].typeid == _subject[j].id) {
|
|
|
+ // _subjectCourse++;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ this.courseArray = _courseArray;
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
getData() {
|
|
|
this.isLoading = true;
|
|
|
let params = [
|
|
@@ -631,6 +619,8 @@ export default {
|
|
|
this.isLoading = false;
|
|
|
let _grade = res.data[0]; //年级
|
|
|
let _subject = res.data[1]; //学科
|
|
|
+ this._grade = JSON.parse(JSON.stringify(_grade));
|
|
|
+ this._subject = JSON.parse(JSON.stringify(_subject));
|
|
|
let _themeList = res.data[2]; //主题
|
|
|
this.teacherNum = res.data[3][0].count; //教师总数
|
|
|
let _teacherNumYear = res.data[4]; //半年内教师数量
|
|
@@ -729,8 +719,8 @@ export default {
|
|
|
|
|
|
var _allTime = 0;
|
|
|
|
|
|
- for(var i = 0;i<mergedArray.length;i++){
|
|
|
- _allTime += Number(mergedArray[i].text);
|
|
|
+ for (var i = 0; i < mergedArray.length; i++) {
|
|
|
+ _allTime += Number(mergedArray[i].text);
|
|
|
}
|
|
|
|
|
|
// this.allTime = parseInt(res.data[7][0].time) / 60 / 60;
|
|
@@ -788,60 +778,9 @@ export default {
|
|
|
this.allLoginTime = res.data[9][0].count; //一年的登录频次
|
|
|
|
|
|
let _course = res.data[10]; //课程
|
|
|
- let _gradeCourse = 0; //各年级上传课程
|
|
|
- let _subjectCourse = 0; //各学科上传课程
|
|
|
- let _courseArray = [];
|
|
|
- // _subject.push({ name: "其他" });
|
|
|
-
|
|
|
- for (var i = 0; i < _grade.length; i++) {
|
|
|
- _courseArray.push({
|
|
|
- name: _grade[i].name,
|
|
|
- id: _grade[i].id,
|
|
|
- courseid: [],
|
|
|
- subject: [],
|
|
|
- });
|
|
|
- for (var z = 0; z < _course.length; z++) {
|
|
|
- if (_course[z].typeid == _grade[i].id) {
|
|
|
- _gradeCourse++;
|
|
|
- if (
|
|
|
- _courseArray[i].courseid.indexOf(_course[z].courseid) === -1
|
|
|
- ) {
|
|
|
- _courseArray[i].courseid.push(_course[z].courseid);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- for (var j = 0; j < _subject.length; j++) {
|
|
|
- _courseArray[i].subject.push({
|
|
|
- name: _subject[j].name,
|
|
|
- id: _subject[j].id,
|
|
|
- course: 0,
|
|
|
- });
|
|
|
- for (var z = 0; z < _course.length; z++) {
|
|
|
- if (
|
|
|
- _course[z].typeid == _subject[j].id &&
|
|
|
- _courseArray[i].courseid.indexOf(_course[z].courseid) !== -1
|
|
|
- ) {
|
|
|
- _courseArray[i].subject[j].course++;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- let sum = 0;
|
|
|
- for (var j = 0; j < _courseArray[i].subject.length - 1; j++) {
|
|
|
- sum += _courseArray[i].subject[j].course;
|
|
|
- }
|
|
|
- // _courseArray[i].subject[_courseArray[i].subject.length - 1].course =
|
|
|
- // _courseArray[i].courseid.length - sum < 0
|
|
|
- // ? 0
|
|
|
- // : _courseArray[i].courseid.length - sum;
|
|
|
- }
|
|
|
- for (var j = 0; j < _subject.length; j++) {
|
|
|
- for (var z = 0; z < _course.length; z++) {
|
|
|
- if (_course[z].typeid == _subject[j].id) {
|
|
|
- _subjectCourse++;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- this.courseArray = _courseArray;
|
|
|
+ this._courseArray = JSON.parse(JSON.stringify(_course));
|
|
|
+ this._course2 = res.data[25]; //查询课程
|
|
|
+ this.typeChange2()
|
|
|
|
|
|
let _gradeArray = [];
|
|
|
let _subjectArray = [];
|
|
@@ -1054,7 +993,7 @@ export default {
|
|
|
height: 100%;
|
|
|
}
|
|
|
|
|
|
-.left > .top {
|
|
|
+.left>.top {
|
|
|
width: 100%;
|
|
|
height: calc(100% / 2 - 10px);
|
|
|
background: #fff;
|
|
@@ -1062,7 +1001,7 @@ export default {
|
|
|
margin: 0 0 20px 0;
|
|
|
}
|
|
|
|
|
|
-.left > .bottom {
|
|
|
+.left>.bottom {
|
|
|
width: 100%;
|
|
|
height: calc(100% / 2 - 10px);
|
|
|
background: #fff;
|
|
@@ -1075,7 +1014,7 @@ export default {
|
|
|
margin: 0 20px;
|
|
|
}
|
|
|
|
|
|
-.center > .top {
|
|
|
+.center>.top {
|
|
|
width: 100%;
|
|
|
height: calc(100% / 5 * 3 - 10px);
|
|
|
background: #fff;
|
|
@@ -1083,7 +1022,7 @@ export default {
|
|
|
margin: 0 0 20px 0;
|
|
|
}
|
|
|
|
|
|
-.center > .bottom {
|
|
|
+.center>.bottom {
|
|
|
width: 100%;
|
|
|
height: calc(100% / 5 * 2 - 10px);
|
|
|
background: #fff;
|
|
@@ -1095,7 +1034,7 @@ export default {
|
|
|
height: 100%;
|
|
|
}
|
|
|
|
|
|
-.right > .top {
|
|
|
+.right>.top {
|
|
|
width: 100%;
|
|
|
height: calc(100% / 2 - 10px);
|
|
|
background: #fff;
|
|
@@ -1103,7 +1042,7 @@ export default {
|
|
|
margin: 0 0 20px 0;
|
|
|
}
|
|
|
|
|
|
-.right > .bottom {
|
|
|
+.right>.bottom {
|
|
|
width: 100%;
|
|
|
height: calc(100% / 2 - 10px);
|
|
|
background: #fff;
|
|
@@ -1148,6 +1087,7 @@ export default {
|
|
|
padding: 0 10px;
|
|
|
margin: 0 10px;
|
|
|
}
|
|
|
+
|
|
|
.teaMiddle {
|
|
|
width: calc(100% / 3 - 10px);
|
|
|
}
|
|
@@ -1160,43 +1100,38 @@ export default {
|
|
|
margin: 0 0 0 15px;
|
|
|
}
|
|
|
|
|
|
-.timeDiv > div {
|
|
|
+.timeDiv>div {
|
|
|
margin-right: 10px;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+
|
|
|
.cNum {
|
|
|
- background: linear-gradient(
|
|
|
- 180deg,
|
|
|
- rgb(125, 227, 174, 0.2) 0%,
|
|
|
- rgb(23, 196, 105, 0.3) 100%
|
|
|
- ) !important;
|
|
|
+ background: linear-gradient(180deg,
|
|
|
+ rgb(125, 227, 174, 0.2) 0%,
|
|
|
+ rgb(23, 196, 105, 0.3) 100%) !important;
|
|
|
}
|
|
|
|
|
|
.tNum {
|
|
|
- background: linear-gradient(
|
|
|
- 180deg,
|
|
|
- rgb(174, 204, 254, 0.2) 0%,
|
|
|
- rgb(54, 129, 252, 0.3) 100%
|
|
|
- ) !important;
|
|
|
+ background: linear-gradient(180deg,
|
|
|
+ rgb(174, 204, 254, 0.2) 0%,
|
|
|
+ rgb(54, 129, 252, 0.3) 100%) !important;
|
|
|
}
|
|
|
|
|
|
.tSum {
|
|
|
- background: linear-gradient(
|
|
|
- 180deg,
|
|
|
- rgb(125, 227, 174, 0.2) 0%,
|
|
|
- rgb(23, 196, 105, 0.3) 100%
|
|
|
- ) !important;
|
|
|
+ background: linear-gradient(180deg,
|
|
|
+ rgb(125, 227, 174, 0.2) 0%,
|
|
|
+ rgb(23, 196, 105, 0.3) 100%) !important;
|
|
|
}
|
|
|
|
|
|
-.teaLeft > div:first-child,
|
|
|
-.teaMiddle > div:first-child {
|
|
|
+.teaLeft>div:first-child,
|
|
|
+.teaMiddle>div:first-child {
|
|
|
font-size: 12px;
|
|
|
font-weight: 400;
|
|
|
color: #565e6a;
|
|
|
}
|
|
|
|
|
|
-.teaLeft > div:last-child,
|
|
|
-.teaMiddle > div:last-child {
|
|
|
+.teaLeft>div:last-child,
|
|
|
+.teaMiddle>div:last-child {
|
|
|
font-size: 22px;
|
|
|
font-weight: bold;
|
|
|
color: #060e17;
|
|
@@ -1205,11 +1140,13 @@ export default {
|
|
|
.halfBox {
|
|
|
width: 50%;
|
|
|
}
|
|
|
+
|
|
|
.isClick {
|
|
|
color: #1684fc;
|
|
|
border-bottom: 2px solid #1684fc;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
+
|
|
|
.otherCss {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
@@ -1217,16 +1154,19 @@ export default {
|
|
|
align-items: center;
|
|
|
justify-content: flex-end;
|
|
|
}
|
|
|
+
|
|
|
.otherImg {
|
|
|
width: 20px;
|
|
|
height: 20px;
|
|
|
margin: 0 10px;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
-.otherImg > img {
|
|
|
+
|
|
|
+.otherImg>img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
+
|
|
|
.allBox {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
@@ -1235,10 +1175,12 @@ export default {
|
|
|
flex-wrap: nowrap;
|
|
|
align-items: center;
|
|
|
}
|
|
|
+
|
|
|
.allBox_left {
|
|
|
width: 30%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
+
|
|
|
.allBox_right {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
@@ -1257,24 +1199,25 @@ export default {
|
|
|
justify-content: center;
|
|
|
}
|
|
|
|
|
|
-.depth > span:nth-child(1) {
|
|
|
+.depth>span:nth-child(1) {
|
|
|
font-size: 14px;
|
|
|
font-weight: 700;
|
|
|
margin: 0 0 10px;
|
|
|
}
|
|
|
-.depth > div:nth-child(1) {
|
|
|
-}
|
|
|
+
|
|
|
+.depth>div:nth-child(1) {}
|
|
|
+
|
|
|
.selectBox {
|
|
|
width: 80px;
|
|
|
margin-left: 10px;
|
|
|
}
|
|
|
|
|
|
-.selectBox >>> .el-input__inner {
|
|
|
+.selectBox>>>.el-input__inner {
|
|
|
height: 30px;
|
|
|
line-height: 30px;
|
|
|
}
|
|
|
|
|
|
-.selectBox >>> .el-input__icon {
|
|
|
+.selectBox>>>.el-input__icon {
|
|
|
line-height: 30px;
|
|
|
}
|
|
|
|
|
@@ -1287,9 +1230,9 @@ export default {
|
|
|
margin: 0 auto;
|
|
|
}
|
|
|
|
|
|
-.info_box > .info2,
|
|
|
-.info_box > .info3,
|
|
|
-.info_box > .info {
|
|
|
+.info_box>.info2,
|
|
|
+.info_box>.info3,
|
|
|
+.info_box>.info {
|
|
|
width: calc(50% - 10px);
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
@@ -1303,19 +1246,19 @@ export default {
|
|
|
border-radius: 5px;
|
|
|
}
|
|
|
|
|
|
-.info_box > .info2 {
|
|
|
+.info_box>.info2 {
|
|
|
width: calc(100% / 4 - 10px);
|
|
|
/* align-items: flex-end; */
|
|
|
}
|
|
|
|
|
|
-.info_box > .info3 {
|
|
|
+.info_box>.info3 {
|
|
|
width: 100%;
|
|
|
margin-bottom: 5px;
|
|
|
}
|
|
|
|
|
|
-.info_box > .info2 > span:nth-child(1),
|
|
|
-.info_box > .info3 > span:nth-child(1),
|
|
|
-.info_box > .info > span:nth-child(1) {
|
|
|
+.info_box>.info2>span:nth-child(1),
|
|
|
+.info_box>.info3>span:nth-child(1),
|
|
|
+.info_box>.info>span:nth-child(1) {
|
|
|
font-size: 12px;
|
|
|
/* margin: 0 0 0 20px; */
|
|
|
color: #565e6a;
|
|
@@ -1324,9 +1267,9 @@ export default {
|
|
|
word-break: break-all;
|
|
|
}
|
|
|
|
|
|
-.info_box > .info2 > span:nth-child(2),
|
|
|
-.info_box > .info3 > span:nth-child(2),
|
|
|
-.info_box > .info > span:nth-child(2) {
|
|
|
+.info_box>.info2>span:nth-child(2),
|
|
|
+.info_box>.info3>span:nth-child(2),
|
|
|
+.info_box>.info>span:nth-child(2) {
|
|
|
font-size: 24px;
|
|
|
/* font-weight: 700; */
|
|
|
}
|