| 
					
				 | 
			
			
				@@ -0,0 +1,358 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<!--  --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div class="m-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <h2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="squrt"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      学生考勤列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </h2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="m-core"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- <el-form :inline="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ref='searchForm' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               :model="searchForm"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input v-model.trim="searchForm.search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    style="width:260px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    @keyup.enter.native="search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    placeholder='学生编号,姓名,课程编号,课程名'></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item prop="organId"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-select class="multiple" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     v-model.trim="searchForm.organId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     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 v-model.trim="searchForm.courseScheduleType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     placeholder="请选择课程类型"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option v-for='(item,index) in courseType' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       :key="index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       :value="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       :label="item.label"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-select v-model.trim="searchForm.signInStatus" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     placeholder="签到状态"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option :value="1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       label="正常签到"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option :value="0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       label="异常签到"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option :value="3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       label="未签到"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-select v-model.trim="searchForm.signOutStatus" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     placeholder="签退状态"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option :value="1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       label="正常签退"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option :value="0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       label="异常签退"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option :value="3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       label="未签退"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-date-picker v-model.trim="courseTime" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          style="width:410px;" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          type="daterange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          value-format="yyyy-MM-dd" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          range-separator="至" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          start-placeholder="考勤开始日期" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          :picker-options="{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        firstDayOfWeek: 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          end-placeholder="考勤结束日期"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button @click="search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     type="danger">搜索</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button @click="onReSet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     type="primary">重置</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button @click="onExport" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     v-permission="'export/queryTeacherAttendances'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     style="background-color: #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="organName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="分部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="teacherName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="学生姓名" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="teacherName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="老师姓名" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="courseScheduleId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="课程编号" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="courseScheduleName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="课程名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="classDate" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="上课日期" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="startClassTime" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="上课时间" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{ scope.row.startClassTime + "-" + scope.row.endClassTime }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="startClassTime" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="课程类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{ scope.row.courseScheduleType | coursesType }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" label="签到时间"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{ scope.row.signInTime }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" label="签到状态"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{ scope.row.signInStatus | attendanceType }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="startClassTime" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="签退时间" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{ scope.row.signOutTime }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" label="签退状态"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{ scope.row.signOutStatus | attendanceOutType }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop="remark" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="备注" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <pagination 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sync 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :total.sync="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 qs from "qs"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { findStudentAttendance } from "@/api/buildTeam"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import { queryTeacherAttendances } from "@/api/recodeManager"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { courseType } from "@/utils/searchArray"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let nowTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+nowTime = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  nowTime.getFullYear() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "-" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (nowTime.getMonth() + 1) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "-" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  nowTime.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: { pagination }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      searchForm: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        search: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        signInStatus: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        signOutStatus: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      courseTime: [nowTime, nowTime], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      courseType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // teacherList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      organList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rules: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 分页规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        limit: 10, // 限制显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page: 1, // 当前页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total: 0, // 总条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page_size: [10, 20, 40, 50], // 选择限制显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //生命周期 - 创建完成(可以访问当前this实例) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  created() {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //生命周期 - 挂载完成(可以访问DOM元素) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // getTeacher().then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     this.teacherList = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 获取分部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // getEmployeeOrgan().then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     this.organList = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let obj = { page: this.rules.page, rows: this.rules.limit }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // Object.assign(obj, this.searchForm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // if (this.courseTime && this.courseTime.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   obj.courseStartDate = this.courseTime[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   obj.courseEndDate = this.courseTime[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   this.$message.error("请选择搜索时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      findStudentAttendance(obj).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.tableList = res.data.rows; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.rules.total = res.data.total; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    search() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.rules.page = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onReSet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.searchForm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        search: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organIdList: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        signInStatus: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        signOutStatus: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.courseTime = [nowTime, nowTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs["searchForm"].resetFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.search(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onExport() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let obj = { page: this.rules.page, rows: this.rules.limit }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Object.assign(obj, this.searchForm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.courseTime && this.courseTime.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        obj.courseStartDate = this.courseTime[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        obj.courseEndDate = this.courseTime[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.error("请选择搜索时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let url = "/api-web/export/queryTeacherAttendances"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        method: "POST", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          Authorization: getToken(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        params: obj, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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 fname = "考勤列表" + new Date().getTime(); //下载文件的名字 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  link.href = objectUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  link.setAttribute("download", fname); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  document.body.appendChild(link); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  link.click(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              load.endLoading(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .catch((error) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.error("导出数据失败,请联系管理员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              load.endLoading(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .catch(() => {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang='scss' scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |