|  | @@ -0,0 +1,502 @@
 | 
											
												
													
														|  | 
 |  | +<!--  -->
 | 
											
												
													
														|  | 
 |  | +<template>
 | 
											
												
													
														|  | 
 |  | +  <div class="m-container">
 | 
											
												
													
														|  | 
 |  | +    <h2>
 | 
											
												
													
														|  | 
 |  | +      <div class="squrt"></div>服务指标
 | 
											
												
													
														|  | 
 |  | +    </h2>
 | 
											
												
													
														|  | 
 |  | +    <div class="m-core">
 | 
											
												
													
														|  | 
 |  | +      <el-form :inline="true"
 | 
											
												
													
														|  | 
 |  | +               :model="searchForm">
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-input v-model.trim="searchForm.search"
 | 
											
												
													
														|  | 
 |  | +                    @keyup.enter.native="search"
 | 
											
												
													
														|  | 
 |  | +                    placeholder="学生姓名"></el-input>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="指导老师"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.teacherId"
 | 
											
												
													
														|  | 
 |  | +                     clearable
 | 
											
												
													
														|  | 
 |  | +                     filterable>
 | 
											
												
													
														|  | 
 |  | +            <el-option v-for="(item,index) in teacherList"
 | 
											
												
													
														|  | 
 |  | +                       :label="item.realName"
 | 
											
												
													
														|  | 
 |  | +                       :value="item.id"
 | 
											
												
													
														|  | 
 |  | +                       :key="index"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item prop="organId">
 | 
											
												
													
														|  | 
 |  | +          <el-select class="multiple"
 | 
											
												
													
														|  | 
 |  | +                     v-model.trim="searchForm.organIdList"
 | 
											
												
													
														|  | 
 |  | +                     filterable
 | 
											
												
													
														|  | 
 |  | +                     clearable
 | 
											
												
													
														|  | 
 |  | +                     placeholder="请选择分部">
 | 
											
												
													
														|  | 
 |  | +            <el-option v-for="(item,index) in organList"
 | 
											
												
													
														|  | 
 |  | +                       :key="index"
 | 
											
												
													
														|  | 
 |  | +                       :label="item.name"
 | 
											
												
													
														|  | 
 |  | +                       :value="item.id"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <!-- <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="当前有VIP课" v-model="searchForm.existVipCourse" clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="是" value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="否" value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item> -->
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="实际安排"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.actualExercisesNumIsAchieve"
 | 
											
												
													
														|  | 
 |  | +                     clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="不符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="提交次数"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.exercisesReplyNumIsAchieve"
 | 
											
												
													
														|  | 
 |  | +                     clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="不符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="评价次数"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.exercisesMessageNumIsAchieve"
 | 
											
												
													
														|  | 
 |  | +                     clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="不符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="及时评价"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.exercisesMessageTimelyNumIsAchieve"
 | 
											
												
													
														|  | 
 |  | +                     clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="不符合预期"
 | 
											
												
													
														|  | 
 |  | +                       value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="是否有VIP课"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.existVipCourse"
 | 
											
												
													
														|  | 
 |  | +                     clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="是"
 | 
											
												
													
														|  | 
 |  | +                       value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="否"
 | 
											
												
													
														|  | 
 |  | +                       value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-select placeholder="是否有付费网管课"
 | 
											
												
													
														|  | 
 |  | +                     v-model="searchForm.existPracticeCourse"
 | 
											
												
													
														|  | 
 |  | +                     clearable>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="是"
 | 
											
												
													
														|  | 
 |  | +                       value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            <el-option label="否"
 | 
											
												
													
														|  | 
 |  | +                       value="0"></el-option>
 | 
											
												
													
														|  | 
 |  | +          </el-select>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <br>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item label="周次选择">
 | 
											
												
													
														|  | 
 |  | +          <el-date-picker v-model.trim="searchForm.timer"
 | 
											
												
													
														|  | 
 |  | +                          style="width:400px;"
 | 
											
												
													
														|  | 
 |  | +                          type="daterange"
 | 
											
												
													
														|  | 
 |  | +                          :picker-options="{
 | 
											
												
													
														|  | 
 |  | +        firstDayOfWeek: 1
 | 
											
												
													
														|  | 
 |  | +    }"
 | 
											
												
													
														|  | 
 |  | +                          value-format="yyyy-MM-dd"
 | 
											
												
													
														|  | 
 |  | +                          range-separator="至"
 | 
											
												
													
														|  | 
 |  | +                          start-placeholder="开始日期"
 | 
											
												
													
														|  | 
 |  | +                          end-placeholder="结束日期"
 | 
											
												
													
														|  | 
 |  | +                          @change="getWeekTime"></el-date-picker>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        <el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-button type="danger"
 | 
											
												
													
														|  | 
 |  | +                     @click="search">搜索</el-button>
 | 
											
												
													
														|  | 
 |  | +          <el-button @click="onReSet"
 | 
											
												
													
														|  | 
 |  | +                     type="primary">重置</el-button>
 | 
											
												
													
														|  | 
 |  | +          <el-button @click="onExport"
 | 
											
												
													
														|  | 
 |  | +                     type="primary"
 | 
											
												
													
														|  | 
 |  | +                     v-permission="'export/exercisesSituations'"
 | 
											
												
													
														|  | 
 |  | +                     style=" background: #14928a; border:1px solid #14928a;">导出</el-button>
 | 
											
												
													
														|  | 
 |  | +        </el-form-item>
 | 
											
												
													
														|  | 
 |  | +      </el-form>
 | 
											
												
													
														|  | 
 |  | +      <div class="tableWrap">
 | 
											
												
													
														|  | 
 |  | +        <el-table style="width: 100%"
 | 
											
												
													
														|  | 
 |  | +                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
 | 
											
												
													
														|  | 
 |  | +                  :data="tableList">
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop="studentId"
 | 
											
												
													
														|  | 
 |  | +                           label="学员编号"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop="studentName"
 | 
											
												
													
														|  | 
 |  | +                           label="学生姓名"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop="organName"
 | 
											
												
													
														|  | 
 |  | +                           label="所属分部"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop="teacherName"
 | 
											
												
													
														|  | 
 |  | +                           label="指导老师"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <!-- <el-table-column align="center" label="当前有VIP课" width="100" >
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.existVipCourse?'是':'否'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column> -->
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop
 | 
											
												
													
														|  | 
 |  | +                           label="预期安排">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.expectExercisesNum+'次'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop
 | 
											
												
													
														|  | 
 |  | +                           label="实际安排">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.actualExercisesNum+'次'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop
 | 
											
												
													
														|  | 
 |  | +                           label="提交次数">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.exercisesReplyNum+'次'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop
 | 
											
												
													
														|  | 
 |  | +                           label="评价次数">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.exercisesMessageNum+'次'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           prop
 | 
											
												
													
														|  | 
 |  | +                           label="及时评价次数">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.exercisesMessageTimelyNum+'次'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           label="VIP课">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.existVipCourse + '节'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           label="付费网管课">
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div>{{scope.row.existPracticeCourse+ '节'}}</div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          <el-table-column align="center"
 | 
											
												
													
														|  | 
 |  | +                           label="操作">
 | 
											
												
													
														|  | 
 |  | +            <!--  -->
 | 
											
												
													
														|  | 
 |  | +            <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +              <div v-if="scope.row.actualExercisesNum >0">
 | 
											
												
													
														|  | 
 |  | +                <el-button type="text"
 | 
											
												
													
														|  | 
 |  | +                           @click="lookDetail(scope.row)">查看</el-button>
 | 
											
												
													
														|  | 
 |  | +              </div>
 | 
											
												
													
														|  | 
 |  | +            </template>
 | 
											
												
													
														|  | 
 |  | +          </el-table-column>
 | 
											
												
													
														|  | 
 |  | +        </el-table>
 | 
											
												
													
														|  | 
 |  | +        <pagination :total="rules.total"
 | 
											
												
													
														|  | 
 |  | +                    :page.sync="rules.page"
 | 
											
												
													
														|  | 
 |  | +                    :limit.sync="rules.limit"
 | 
											
												
													
														|  | 
 |  | +                    :page-sizes="rules.page_size"
 | 
											
												
													
														|  | 
 |  | +                    @pagination="getList" />
 | 
											
												
													
														|  | 
 |  | +      </div>
 | 
											
												
													
														|  | 
 |  | +    </div>
 | 
											
												
													
														|  | 
 |  | +  </div>
 | 
											
												
													
														|  | 
 |  | +</template>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +<script>
 | 
											
												
													
														|  | 
 |  | +import axios from "axios";
 | 
											
												
													
														|  | 
 |  | +import { getToken } from "@/utils/auth";
 | 
											
												
													
														|  | 
 |  | +import pagination from "@/components/Pagination/index";
 | 
											
												
													
														|  | 
 |  | +import load from "@/utils/loading";
 | 
											
												
													
														|  | 
 |  | +import { getEmployeeOrgan, getTeacher } from "@/api/buildTeam";
 | 
											
												
													
														|  | 
 |  | +import { findStudentExtracurricularExercisesSituations } from "@/api/afterSchool";
 | 
											
												
													
														|  | 
 |  | +// findStudentExtracurricularExercisesSituations
 | 
											
												
													
														|  | 
 |  | +let nowTime = new Date();
 | 
											
												
													
														|  | 
 |  | +nowTime =
 | 
											
												
													
														|  | 
 |  | +  nowTime.getFullYear() +
 | 
											
												
													
														|  | 
 |  | +  "-" +
 | 
											
												
													
														|  | 
 |  | +  (nowTime.getMonth() + 1) +
 | 
											
												
													
														|  | 
 |  | +  "-" +
 | 
											
												
													
														|  | 
 |  | +  nowTime.getDate();
 | 
											
												
													
														|  | 
 |  | +export default {
 | 
											
												
													
														|  | 
 |  | +  components: { pagination },
 | 
											
												
													
														|  | 
 |  | +  data () {
 | 
											
												
													
														|  | 
 |  | +    return {
 | 
											
												
													
														|  | 
 |  | +      tableList: [],
 | 
											
												
													
														|  | 
 |  | +      searchForm: {
 | 
											
												
													
														|  | 
 |  | +        timer: [],
 | 
											
												
													
														|  | 
 |  | +        search: null,
 | 
											
												
													
														|  | 
 |  | +        organIdList: null,
 | 
											
												
													
														|  | 
 |  | +        actualExercisesNumIsAchieve: null, // 训练次数
 | 
											
												
													
														|  | 
 |  | +        exercisesMessageNumIsAchieve: null, //评价
 | 
											
												
													
														|  | 
 |  | +        exercisesMessageTimelyNumIsAchieve: null, //及时评价
 | 
											
												
													
														|  | 
 |  | +        exercisesReplyNumIsAchieve: null, // 提交次数
 | 
											
												
													
														|  | 
 |  | +        teacherId: null,
 | 
											
												
													
														|  | 
 |  | +        existVipCourse: null,
 | 
											
												
													
														|  | 
 |  | +        existPracticeCourse: null,
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      organList: [],
 | 
											
												
													
														|  | 
 |  | +      teacherList: [],
 | 
											
												
													
														|  | 
 |  | +      rules: {
 | 
											
												
													
														|  | 
 |  | +        // 分页规则
 | 
											
												
													
														|  | 
 |  | +        limit: 10, // 限制显示条数
 | 
											
												
													
														|  | 
 |  | +        page: 1, // 当前页
 | 
											
												
													
														|  | 
 |  | +        total: 0, // 总条数
 | 
											
												
													
														|  | 
 |  | +        page_size: [10, 20, 40, 50] // 选择限制显示条数
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  //生命周期 - 创建完成(可以访问当前this实例)
 | 
											
												
													
														|  | 
 |  | +  created () {
 | 
											
												
													
														|  | 
 |  | +    // 设置默认为当前周
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  //生命周期 - 挂载完成(可以访问DOM元素)
 | 
											
												
													
														|  | 
 |  | +  mounted () {
 | 
											
												
													
														|  | 
 |  | +    this.searchForm.timer = [];
 | 
											
												
													
														|  | 
 |  | +    this.searchForm.timer.push(this.getNowDateAndMonday(nowTime));
 | 
											
												
													
														|  | 
 |  | +    this.searchForm.timer.push(this.getNowDateAndSunday(nowTime));
 | 
											
												
													
														|  | 
 |  | +    getTeacher().then(res => {
 | 
											
												
													
														|  | 
 |  | +      if (res.code == 200) {
 | 
											
												
													
														|  | 
 |  | +        this.teacherList = res.data;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    getEmployeeOrgan().then(res => {
 | 
											
												
													
														|  | 
 |  | +      if (res.code == 200) {
 | 
											
												
													
														|  | 
 |  | +        this.organList = res.data;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    });
 | 
											
												
													
														|  | 
 |  | +    // 获取分部  老师
 | 
											
												
													
														|  | 
 |  | +    this.init();
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  activated () {
 | 
											
												
													
														|  | 
 |  | +    this.init();
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  methods: {
 | 
											
												
													
														|  | 
 |  | +    init () {
 | 
											
												
													
														|  | 
 |  | +      if (this.$route.query.teacherId) {
 | 
											
												
													
														|  | 
 |  | +        this.searchForm.teacherId = this.$route.query.teacherId * 1;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      if (this.$route.query.search) {
 | 
											
												
													
														|  | 
 |  | +        this.$route.query.search instanceof Object ? this.topForm = this.$route.query.search : this.topForm = JSON.parse(this.$route.query.search);
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      if (this.$route.query.rules) {
 | 
											
												
													
														|  | 
 |  | +        this.$route.query.rules instanceof Object ? this.rules = this.$route.query.rules : this.rules = JSON.parse(this.$route.query.rules);
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      this.getList();
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    getDate () {
 | 
											
												
													
														|  | 
 |  | +      let obj = {
 | 
											
												
													
														|  | 
 |  | +        search: this.searchForm.search || null,
 | 
											
												
													
														|  | 
 |  | +        actualExercisesNumIsAchieve:
 | 
											
												
													
														|  | 
 |  | +          this.searchForm.actualExercisesNumIsAchieve || null, // 训练次数
 | 
											
												
													
														|  | 
 |  | +        exercisesMessageNumIsAchieve:
 | 
											
												
													
														|  | 
 |  | +          this.searchForm.exercisesMessageNumIsAchieve || null, //评价
 | 
											
												
													
														|  | 
 |  | +        exercisesMessageTimelyNumIsAchieve:
 | 
											
												
													
														|  | 
 |  | +          this.searchForm.exercisesMessageTimelyNumIsAchieve || null, //及时评价
 | 
											
												
													
														|  | 
 |  | +        exercisesReplyNumIsAchieve:
 | 
											
												
													
														|  | 
 |  | +          this.searchForm.exercisesReplyNumIsAchieve || null, // 提交次数
 | 
											
												
													
														|  | 
 |  | +        organIdList: this.searchForm.organIdList || null,
 | 
											
												
													
														|  | 
 |  | +        teacherId: this.searchForm.teacherId,
 | 
											
												
													
														|  | 
 |  | +        page: this.rules.page,
 | 
											
												
													
														|  | 
 |  | +        rows: this.rules.limit,
 | 
											
												
													
														|  | 
 |  | +        existVipCourse: this.searchForm.existVipCourse || null,
 | 
											
												
													
														|  | 
 |  | +        existPracticeCourse: this.searchForm.existPracticeCourse || null,
 | 
											
												
													
														|  | 
 |  | +      };
 | 
											
												
													
														|  | 
 |  | +      if (this.searchForm.timer && this.searchForm.timer.length > 0) {
 | 
											
												
													
														|  | 
 |  | +        obj.monday = this.searchForm.timer[0];
 | 
											
												
													
														|  | 
 |  | +        obj.sunday = this.searchForm.timer[1];
 | 
											
												
													
														|  | 
 |  | +      } else {
 | 
											
												
													
														|  | 
 |  | +        this.$message.error("请选择时间段");
 | 
											
												
													
														|  | 
 |  | +        return false;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      return obj;
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    getList () {
 | 
											
												
													
														|  | 
 |  | +      let obj = this.getDate();
 | 
											
												
													
														|  | 
 |  | +      if (!obj) return;
 | 
											
												
													
														|  | 
 |  | +      findStudentExtracurricularExercisesSituations(obj).then(res => {
 | 
											
												
													
														|  | 
 |  | +        if (res.code == 200) {
 | 
											
												
													
														|  | 
 |  | +          this.tableList = res.data.rows;
 | 
											
												
													
														|  | 
 |  | +          this.rules.total = res.data.total;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      });
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    onReSet () {
 | 
											
												
													
														|  | 
 |  | +      this.searchForm = {
 | 
											
												
													
														|  | 
 |  | +        timer: [],
 | 
											
												
													
														|  | 
 |  | +        search: null,
 | 
											
												
													
														|  | 
 |  | +        actualExercisesNumIsAchieve: null, // 训练次数
 | 
											
												
													
														|  | 
 |  | +        exercisesMessageNumIsAchieve: null, //评价
 | 
											
												
													
														|  | 
 |  | +        exercisesMessageTimelyNumIsAchieve: null, //及时评价
 | 
											
												
													
														|  | 
 |  | +        exercisesReplyNumIsAchieve: null, // 提交次数
 | 
											
												
													
														|  | 
 |  | +        teacherId: null,
 | 
											
												
													
														|  | 
 |  | +        existVipCourse: null
 | 
											
												
													
														|  | 
 |  | +      };
 | 
											
												
													
														|  | 
 |  | +      this.search();
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    onExport () {
 | 
											
												
													
														|  | 
 |  | +      let url = "/api-web/export/exercisesSituations";
 | 
											
												
													
														|  | 
 |  | +      let obj = this.getDate();
 | 
											
												
													
														|  | 
 |  | +      const options = {
 | 
											
												
													
														|  | 
 |  | +        method: "get",
 | 
											
												
													
														|  | 
 |  | +        headers: {
 | 
											
												
													
														|  | 
 |  | +          Authorization: getToken()
 | 
											
												
													
														|  | 
 |  | +        },
 | 
											
												
													
														|  | 
 |  | +        url,
 | 
											
												
													
														|  | 
 |  | +        params: obj,
 | 
											
												
													
														|  | 
 |  | +        responseType: "blob"
 | 
											
												
													
														|  | 
 |  | +      };
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      this.$confirm("您确定导出列表?", "提示", {
 | 
											
												
													
														|  | 
 |  | +        confirmButtonText: "确定",
 | 
											
												
													
														|  | 
 |  | +        cancelButtonText: "取消",
 | 
											
												
													
														|  | 
 |  | +        type: "warning"
 | 
											
												
													
														|  | 
 |  | +      })
 | 
											
												
													
														|  | 
 |  | +        .then(() => {
 | 
											
												
													
														|  | 
 |  | +          load.startLoading();
 | 
											
												
													
														|  | 
 |  | +          axios(options)
 | 
											
												
													
														|  | 
 |  | +            .then(res => {
 | 
											
												
													
														|  | 
 |  | +              let blob = new Blob([res.data], {
 | 
											
												
													
														|  | 
 |  | +                // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
 | 
											
												
													
														|  | 
 |  | +                type: "application/vnd.ms-excel;charset=utf-8"
 | 
											
												
													
														|  | 
 |  | +                // word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
 | 
											
												
													
														|  | 
 |  | +              });
 | 
											
												
													
														|  | 
 |  | +              let text = new Response(blob).text();
 | 
											
												
													
														|  | 
 |  | +              text.then(res => {
 | 
											
												
													
														|  | 
 |  | +                // 判断是否报错
 | 
											
												
													
														|  | 
 |  | +                if (res.indexOf("code") != -1) {
 | 
											
												
													
														|  | 
 |  | +                  let json = JSON.parse(res);
 | 
											
												
													
														|  | 
 |  | +                  this.$message.error(json.msg);
 | 
											
												
													
														|  | 
 |  | +                } else {
 | 
											
												
													
														|  | 
 |  | +                  let objectUrl = URL.createObjectURL(blob);
 | 
											
												
													
														|  | 
 |  | +                  let link = document.createElement("a");
 | 
											
												
													
														|  | 
 |  | +                  let nowTime = new Date();
 | 
											
												
													
														|  | 
 |  | +                  let ymd =
 | 
											
												
													
														|  | 
 |  | +                    nowTime.getFullYear() +
 | 
											
												
													
														|  | 
 |  | +                    "" +
 | 
											
												
													
														|  | 
 |  | +                    (nowTime.getMonth() + 1) +
 | 
											
												
													
														|  | 
 |  | +                    "" +
 | 
											
												
													
														|  | 
 |  | +                    nowTime.getDate() +
 | 
											
												
													
														|  | 
 |  | +                    "" +
 | 
											
												
													
														|  | 
 |  | +                    nowTime.getHours() +
 | 
											
												
													
														|  | 
 |  | +                    "" +
 | 
											
												
													
														|  | 
 |  | +                    nowTime.getMinutes();
 | 
											
												
													
														|  | 
 |  | +                  let fname = ymd + "课外训练(教学)";
 | 
											
												
													
														|  | 
 |  | +                  link.href = objectUrl;
 | 
											
												
													
														|  | 
 |  | +                  link.setAttribute("download", fname);
 | 
											
												
													
														|  | 
 |  | +                  document.body.appendChild(link);
 | 
											
												
													
														|  | 
 |  | +                  link.click();
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +              });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +              load.endLoading();
 | 
											
												
													
														|  | 
 |  | +            })
 | 
											
												
													
														|  | 
 |  | +            .catch(error => {
 | 
											
												
													
														|  | 
 |  | +              this.$message.error("导出数据失败,请连接管理员");
 | 
											
												
													
														|  | 
 |  | +              load.endLoading();
 | 
											
												
													
														|  | 
 |  | +            });
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch(() => { });
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    search () {
 | 
											
												
													
														|  | 
 |  | +      this.rules.page = 1;
 | 
											
												
													
														|  | 
 |  | +      this.getList();
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    getNowDateAndMonday (time) {
 | 
											
												
													
														|  | 
 |  | +      let timestamp = new Date(time.replace(/-/g, "/")).getTime();
 | 
											
												
													
														|  | 
 |  | +      let serverDate = new Date(time);
 | 
											
												
													
														|  | 
 |  | +      if (serverDate.getDay() == 0) {
 | 
											
												
													
														|  | 
 |  | +        timestamp -= 7 * 24 * 60 * 60 * 1000;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      let mondayTime =
 | 
											
												
													
														|  | 
 |  | +        timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      let mondayData = new Date(mondayTime);
 | 
											
												
													
														|  | 
 |  | +      //年
 | 
											
												
													
														|  | 
 |  | +      let mondayY = mondayData.getFullYear();
 | 
											
												
													
														|  | 
 |  | +      //月
 | 
											
												
													
														|  | 
 |  | +      let mondayM =
 | 
											
												
													
														|  | 
 |  | +        mondayData.getMonth() + 1 < 10
 | 
											
												
													
														|  | 
 |  | +          ? "0" + (mondayData.getMonth() + 1)
 | 
											
												
													
														|  | 
 |  | +          : mondayData.getMonth() + 1;
 | 
											
												
													
														|  | 
 |  | +      //日
 | 
											
												
													
														|  | 
 |  | +      let mondayD =
 | 
											
												
													
														|  | 
 |  | +        mondayData.getDate() < 10
 | 
											
												
													
														|  | 
 |  | +          ? "0" + mondayData.getDate()
 | 
											
												
													
														|  | 
 |  | +          : mondayData.getDate();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      let str = mondayY + "-" + mondayM + "-" + mondayD;
 | 
											
												
													
														|  | 
 |  | +      return str;
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    getNowDateAndSunday (time) {
 | 
											
												
													
														|  | 
 |  | +      let timestamp = new Date(time.replace(/-/g, "/")).getTime();
 | 
											
												
													
														|  | 
 |  | +      let serverDate = new Date(time);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      let num = 7 - serverDate.getDay();
 | 
											
												
													
														|  | 
 |  | +      if (num == 7) {
 | 
											
												
													
														|  | 
 |  | +        num = 0;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      let sundayTiem = timestamp + num * 24 * 60 * 60 * 1000;
 | 
											
												
													
														|  | 
 |  | +      let SundayData = new Date(sundayTiem);
 | 
											
												
													
														|  | 
 |  | +      //年
 | 
											
												
													
														|  | 
 |  | +      let tomorrowY = SundayData.getFullYear(); //月
 | 
											
												
													
														|  | 
 |  | +      let tomorrowM =
 | 
											
												
													
														|  | 
 |  | +        SundayData.getMonth() + 1 < 10
 | 
											
												
													
														|  | 
 |  | +          ? "0" + (SundayData.getMonth() + 1)
 | 
											
												
													
														|  | 
 |  | +          : SundayData.getMonth() + 1;
 | 
											
												
													
														|  | 
 |  | +      //日
 | 
											
												
													
														|  | 
 |  | +      let tomorrowD =
 | 
											
												
													
														|  | 
 |  | +        SundayData.getDate() < 10
 | 
											
												
													
														|  | 
 |  | +          ? "0" + SundayData.getDate()
 | 
											
												
													
														|  | 
 |  | +          : SundayData.getDate();
 | 
											
												
													
														|  | 
 |  | +      let str = tomorrowY + "-" + tomorrowM + "-" + tomorrowD;
 | 
											
												
													
														|  | 
 |  | +      return str;
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    getWeekTime (val) {
 | 
											
												
													
														|  | 
 |  | +      if (val && val.length > 0) {
 | 
											
												
													
														|  | 
 |  | +        let start = this.getNowDateAndMonday(val[0]);
 | 
											
												
													
														|  | 
 |  | +        let end = this.getNowDateAndSunday(val[1]);
 | 
											
												
													
														|  | 
 |  | +        this.searchForm.timer.splice(0, 1, start);
 | 
											
												
													
														|  | 
 |  | +        this.searchForm.timer.splice(1, 1, end);
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    lookDetail (row) {
 | 
											
												
													
														|  | 
 |  | +      // this.afterSchoolVisible = true;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      let rules = JSON.stringify(this.rules);
 | 
											
												
													
														|  | 
 |  | +      let searchForm = JSON.stringify(this.searchForm);
 | 
											
												
													
														|  | 
 |  | +      this.$router.push({
 | 
											
												
													
														|  | 
 |  | +        path: "/operateManager/serverIndexDetail",
 | 
											
												
													
														|  | 
 |  | +        query: {
 | 
											
												
													
														|  | 
 |  | +          studentId: row.studentId,
 | 
											
												
													
														|  | 
 |  | +          studentName: row.studentName,
 | 
											
												
													
														|  | 
 |  | +          rules,
 | 
											
												
													
														|  | 
 |  | +          searchForm,
 | 
											
												
													
														|  | 
 |  | +          title: row.studentName,
 | 
											
												
													
														|  | 
 |  | +          extracurricularExercisesId: "yes",
 | 
											
												
													
														|  | 
 |  | +          startTime: this.searchForm.timer[0],
 | 
											
												
													
														|  | 
 |  | +          endTime: this.searchForm.timer[1]
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      });
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +};
 | 
											
												
													
														|  | 
 |  | +</script>
 | 
											
												
													
														|  | 
 |  | +<style lang='scss' scoped>
 | 
											
												
													
														|  | 
 |  | +</style>
 |