Selaa lähdekoodia

添加补考勤功能

lex-xin 5 vuotta sitten
vanhempi
commit
4a3d824b2f

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/index.html


+ 1 - 1
dist/static/css/chunk-0558a7bf.5a7d32ef.css → dist/static/css/chunk-71cf8560.4b973106.css

@@ -1 +1 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.inputStyle[data-v-5d2b2f36]{width:100px;text-align:center}.title[data-v-0eb05fc4]{margin-bottom:20px}.amap-demo[data-v-0eb05fc4]{height:300px}.inputStyle[data-v-7d789d15]{width:100px;text-align:center}.work[data-v-7d789d15]{margin-bottom:30px;font-size:16px}.visible[data-v-39fdcb15]{visibility:hidden}.cl-container .topFrom[data-v-39fdcb15]{margin:20px 30px 0}.cl-container .topFrom .classlist[data-v-39fdcb15]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cl-container .topFrom .classlist ul li[data-v-39fdcb15]{list-style:none}.cl-container .searchForm[data-v-39fdcb15]{margin:0 30px}.btnWraps[data-v-39fdcb15]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btnWraps div[data-v-39fdcb15]{margin-right:20px}.inputStyle[data-v-39fdcb15]{width:180px}.red[data-v-39fdcb15]{color:red}.exportBtn[data-v-39fdcb15]{background:#13817a}
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.inputStyle[data-v-5d2b2f36]{width:100px;text-align:center}.title[data-v-0eb05fc4]{margin-bottom:20px}.amap-demo[data-v-0eb05fc4]{height:300px}.inputStyle[data-v-7d789d15]{width:100px;text-align:center}.work[data-v-7d789d15]{margin-bottom:30px;font-size:16px}.visible[data-v-66463136]{visibility:hidden}.cl-container .topFrom[data-v-66463136]{margin:20px 30px 0}.cl-container .topFrom .classlist[data-v-66463136]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cl-container .topFrom .classlist ul li[data-v-66463136]{list-style:none}.cl-container .searchForm[data-v-66463136]{margin:0 30px}.btnWraps[data-v-66463136]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btnWraps div[data-v-66463136]{margin-right:20px}.inputStyle[data-v-66463136]{width:180px}.red[data-v-66463136]{color:red}.exportBtn[data-v-66463136]{background:#13817a}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/app.2f160edd.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-04781794.ccc4cf9f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-0558a7bf.d776b118.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-1c226b1c.3627aa75.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-257cc208.47a4e33e.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-39c459c0.bb8a036d.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-49f1f558.4558aeb2.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-5f8100bc.5baa9421.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-6b55c86a.1fcff6e7.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-6cb6556b.9a5acb8f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-706f42cc.bee4c585.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-71cf8560.4e56af10.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-918b3752.de65e9f4.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-93a712fa.0f88ce66.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-93a712fa.1b3ca888.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-ac13cdcc.1947b861.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-ac13cdcc.714b56a7.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/static/js/chunk-d98ee362.fdeaf4b2.js


+ 2 - 2
src/utils/directivePage.js

@@ -2,6 +2,7 @@
 export function permission(value, parent) {
     let permission = window.localStorage.getItem('permission')
     permission = permission.split(',')
+    parent = parent ? parent : null
     // if(parent) {
     //     if(permission.includes(value) && permission.includes(parent)) {
     //         return true
@@ -15,8 +16,7 @@ export function permission(value, parent) {
     //         return false
     //     }
     // }
-
-    if(permission.includes(value)) {
+    if(permission.includes(value) && !parent) {
         return true
     } else if(permission.includes(value) && permission.includes(parent)) {
         return true

+ 4 - 4
src/views/teamDetail/components/courseList.vue

@@ -109,8 +109,9 @@
         <el-table-column align="center" width="280px" label="操作" fixed="right">
           <template slot-scope="scope">
             <div>
+              <!-- {child: 'teacherAttendance/updateTeacherAttendance', parent: '/teamDetails/courseList'} -->
               <el-button
-                v-if="scope.row.courseScheduleStatus == 'OVER' && !scope.row.settlementTime && permission('teacherAttendance/updateTeacherAttendance')"
+                v-if="scope.row.courseScheduleStatus == 'OVER' && !scope.row.settlementTime && permission('teacherAttendance/updateTeacherAttendance', '/teamDetails/courseList')"
                 type="text"
                 @click="onMarkAttendance(scope.row)"
               >补考勤</el-button>
@@ -482,7 +483,6 @@ export default {
     },
     onMarkAttendance(item) {
       // 补考勤
-      console.log(item);
       this.markAttendance = {
         status: true,
         dataInfo: item
@@ -531,8 +531,8 @@ export default {
         }
       });
     },
-    permission(str) {
-      return permission(str);
+    permission(str, parent) {
+      return permission(str, parent);
     },
     search() {
       this.rules.page = 1;

+ 58 - 6
src/views/teamDetail/teamCourseList.vue

@@ -147,10 +147,12 @@
             <template slot-scope="scope">{{ scope.row.isCallNames ? '是' : '否' }}</template>
           </el-table-column>
           <el-table-column align="center" prop="teacherName" label="指导老师" fixed="right"></el-table-column>
-          <el-table-column align="center" label="详情" fixed="right">
+          <el-table-column align="center" label="详情" fixed="right" width="120px">
             <template slot-scope="scope">
               <div>
-                <el-button type="text" v-permission="'teamCourseList/details'" @click="lookDetail(scope.row)">详情</el-button>
+                <el-button type="text" v-if="permission('teamCourseList/details')" @click="lookDetail(scope.row)">详情</el-button>
+                <el-button v-if="scope.row.status == 'OVER' && !scope.row.settlementTime && permission('teacherAttendance/updateTeacherAttendance', '/teamCourseList')" type="text" @click="onMarkAttendance(scope.row)"
+              >补考勤</el-button>
               </div>
             </template>
           </el-table-column>
@@ -164,12 +166,27 @@
         />
       </div>
     </div>
+    <el-dialog title="补考勤" width="400px" :visible.sync="markAttendance.status">
+      <el-form>
+        <el-form-item label="签到状态">{{ markAttendance.dataInfo.isSignIn | attendanceType }}</el-form-item>
+        <el-form-item label="签到时间">{{ markAttendance.dataInfo.signInTime}}</el-form-item>
+        <el-form-item label="签退状态">{{ markAttendance.dataInfo.isSignOut | attendanceOutType }}</el-form-item>
+        <el-form-item label="签退时间">{{ markAttendance.dataInfo.signOutTime}}</el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="markAttendance.status = false">取 消</el-button>
+        <el-button
+          type="primary"
+          :disabled="markAttendance.dataInfo.isSignIn == 1 && markAttendance.dataInfo.isSignOut == 1 ? true : false"
+          @click="batchAdjustmentTime"
+        >确定补卡</el-button>
+      </div>
+    </el-dialog>
     <el-dialog
       title="课表详情"
       :visible.sync="classVisible"
       :before-close="closeClassVisible"
-      width="1000px"
-    >
+      width="1000px">
       <el-form :model="maskForm" :inline="true">
         <el-form-item label="老师姓名">
           <!-- <el-input v-model.trim="maskForm.teacherName"
@@ -271,7 +288,8 @@ import {
   getTeacher,
   getMusicGroupAllClass,
   superFindCourseSchedules,
-  getEmployeeOrgan
+  getEmployeeOrgan,
+  updateTeacherAttendance
 } from "@/api/buildTeam";
 import { getSchool } from "@/api/systemManage";
 import { courseType } from "@/utils/searchArray";
@@ -279,6 +297,7 @@ import studentRollCall from "./componentCourse/studentRollCall";
 import gpsLoction from "./componentCourse/gpsLocation";
 import studentWork from "./componentCourse/studentWork";
 import courseEvaluate from "./componentCourse/courseEvaluate";
+import { permission } from "@/utils/directivePage";
 import axios from "axios";
 import { getToken } from "@/utils/auth";
 import load from "@/utils/loading";
@@ -319,7 +338,12 @@ export default {
       teacherList: [],
       schoolList: [],
       maskForm: {},
-      activeName: "first"
+      activeName: "first",
+      markAttendance: {
+        // 考勤状态
+        status: false,
+        dataInfo: {}
+      },
       // classList: []
     };
   },
@@ -359,6 +383,34 @@ export default {
         }
       });
     },
+    permission(str, parent) {
+      return permission(str, parent);
+    },
+    onMarkAttendance(item) {
+      // 补考勤
+      this.markAttendance = {
+        status: true,
+        dataInfo: item
+      };
+    },
+    batchAdjustmentTime() {
+      let tempData = this.markAttendance.dataInfo;
+      let params = {
+        teacherId: tempData.actualTeacherId,
+        courseScheduleId: tempData.id,
+        signInStatus: 1,
+        signOutStatus: 1
+      };
+      updateTeacherAttendance(params).then(res => {
+        if (res.code == 200) {
+          this.$message.success("补卡成功");
+          this.markAttendance.status = false;
+          this.getList();
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
     search() {
       this.rules.page = 1;
       this.getList();

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä