Browse Source

Merge branch 'pre_online' into online

wolyshaw 4 years ago
parent
commit
68fdcf731b

+ 7 - 0
src/constant/index.js

@@ -211,3 +211,10 @@ export const inspectionItem = {
   INSPECT:'下校巡查',
   VISIT:'学员回访'
 }
+
+export const complaintsStatus = {
+  0: '拒绝',
+  1: '通过',
+  2: '待处理',
+  3: '撤销'
+}

+ 19 - 0
src/views/recodeManager/api.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request2'
+
+export const repealComplaints = data => {
+  return request({
+    url: '/api-web/teacherAttendance/repealComplaints',
+    method: 'post',
+    data,
+    requestType: 'form',
+  })
+}
+
+export const addComplaints = data => {
+  return request({
+    url: '/api-web/teacherAttendance/addComplaints',
+    method: 'post',
+    data,
+    requestType: 'form',
+  })
+}

+ 51 - 0
src/views/recodeManager/modals/appeal.vue

@@ -0,0 +1,51 @@
+<template>
+  <div>
+    <el-form :model="form" ref="form">
+      <el-form-item
+        prop="content"
+        :rules="[{required: true, message: '请输入申诉内容'}]"
+      >
+        <el-input
+          type="textarea"
+          v-model="form.content"
+          placeholder="请输入申诉内容"
+        />
+      </el-form-item>
+    </el-form>
+    <div slot="footer" style="text-align: right;margin-top: 20px;">
+      <el-button @click="$emit('close')">取消</el-button>
+      <el-button type="primary" @click="submit">确认</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import { addComplaints } from '../api'
+export default {
+  props: ['detail'],
+  data() {
+    return{
+      form: {
+        content: ''
+      }
+    }
+  },
+  methods: {
+    submit() {
+      this.$refs.form.validate(async valid => {
+        if (valid) {
+          try {
+            await addComplaints({
+              ...this.form,
+              courseScheduleId: this.detail.courseScheduleId,
+              userId: this.detail.teacherId,
+            })
+            this.$message.success('提交成功')
+            this.$emit('submited')
+            this.$emit('close')
+          } catch (error) {}
+        }
+      })
+    }
+  }
+}
+</script>

+ 71 - 2
src/views/recodeManager/recodeList.vue

@@ -53,6 +53,21 @@
         </el-form-item>
         <el-form-item>
           <el-select
+            v-model.trim="searchForm.jobNature"
+            filterable
+            clearable
+            placeholder="工作类型"
+          >
+            <el-option
+              v-for="item in jobNature"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
             v-model.trim="searchForm.signInStatus"
             clearable
             placeholder="签到状态"
@@ -170,6 +185,11 @@
               </div>
             </template>
           </el-table-column>
+          <el-table-column align="center" label="工作类型">
+            <template slot-scope="scope">{{
+              scope.row.jobNature | jobNature
+            }}</template>
+          </el-table-column>
           <el-table-column align="center" label="签到时间">
             <template slot-scope="scope">
               <div>
@@ -203,12 +223,37 @@
               </div>
             </template>
           </el-table-column>
+          <el-table-column align="center" label="申诉状态">
+            <template slot-scope="scope">
+              <div>
+                {{ $constant.complaintsStatus[scope.row.complaintsStatus] }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column
             align="center"
             prop="remark"
             label="备注"
           ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作"
+            fixed="right"
+          >
+            <template slot-scope="scope" v-if="scope.row.jobNature === 'PART_TIME'">
+              <el-button type="text" v-if="scope.row.complaintsStatus ==2 " @click="unappeal(scope.row)">撤销申诉</el-button>
+              <el-button v-else type="text" @click="appeal(scope.row)">申诉</el-button>
+            </template>
+          </el-table-column>
         </el-table>
+        <el-dialog title="申诉" :visible.sync="appealVisible">
+          <appeal
+            v-if="appealVisible && detail"
+            :detail="detail"
+            @close="appealVisible = false"
+            @submited="getList"
+          />
+        </el-dialog>
         <pagination
           sync
           :total.sync="rules.total"
@@ -230,7 +275,9 @@ import load from "@/utils/loading";
 import qs from "qs";
 import { getTeacher, getEmployeeOrgan } from "@/api/buildTeam";
 import { queryTeacherAttendances } from "@/api/recodeManager";
-import { courseType } from "@/utils/searchArray";
+import { jobNature, courseType } from "@/utils/searchArray";
+import { repealComplaints } from './api'
+import appeal from './modals/appeal'
 let nowTime = new Date();
 nowTime =
   nowTime.getFullYear() +
@@ -239,7 +286,7 @@ nowTime =
   "-" +
   nowTime.getDate();
 export default {
-  components: { pagination },
+  components: { pagination, appeal },
   data() {
     return {
       searchForm: {
@@ -247,7 +294,11 @@ export default {
         organId: null,
         signInStatus: null,
         signOutStatus: null,
+        jobNature: null,
       },
+      detail: null,
+      appealVisible: false,
+      jobNature: jobNature, // 工作类型
       courseTime: [nowTime, nowTime],
       courseType,
       // teacherList: [],
@@ -314,11 +365,29 @@ export default {
         organIdList: null,
         signInStatus: null,
         signOutStatus: null,
+        jobNature: null,
       };
       this.courseTime = [nowTime, nowTime];
       this.$refs["searchForm"].resetFields();
       this.search();
     },
+    appeal(row) {
+      this.appealVisible = true
+      this.detail = row
+    },
+    async unappeal(row) {
+      try {
+        await this.$confirm('是否确认撤销申诉?', '提示', {
+          type: 'warning'
+        })
+        await repealComplaints({
+          courseScheduleId: row.courseScheduleId,
+          userId: row.teacherId,
+        })
+        this.$message.success('撤销成功')
+        this.getList()
+      } catch (error) {}
+    },
     onExport() {
       let obj = { page: this.rules.page, rows: this.rules.limit };
       Object.assign(obj, this.searchForm);