Procházet zdrojové kódy

Merge branch '04/27-resetBug' into test

mo před 4 roky
rodič
revize
1ab15ce396

+ 0 - 1
src/components/tab-router/index.vue

@@ -91,7 +91,6 @@ export default {
       this.$store.dispatch("addVisitedViews",  this.$route);
       this.$store.dispatch("addVisitedViews",  this.$route);
       const parentClick = this.$listeners["tab-click"];
       const parentClick = this.$listeners["tab-click"];
       if (parentClick) {
       if (parentClick) {
-
         parentClick(item, evt);
         parentClick(item, evt);
       }
       }
     },
     },

+ 24 - 6
src/views/studentManager/studentList.vue

@@ -211,9 +211,14 @@
           <!-- <el-table-column align="center" label="预约网管课">
           <!-- <el-table-column align="center" label="预约网管课">
             <template slot-scope="scope">{{ scope.row.isMake ? '是' : '否' }}</template>
             <template slot-scope="scope">{{ scope.row.isMake ? '是' : '否' }}</template>
           </el-table-column> -->
           </el-table-column> -->
-          <el-table-column align="center" label="是否有网管课">
+          <el-table-column align="center" label="网管课剩余课时">
             <template slot-scope="scope">{{
             <template slot-scope="scope">{{
-              scope.row.hasPracticeCourse ? "是" : "否"
+              scope.row.noStartPracticeCourseNum
+            }}</template>
+          </el-table-column>
+               <el-table-column align="center" label="vip课剩余课时">
+            <template slot-scope="scope">{{
+              scope.row.noStartVipCourseNum
             }}</template>
             }}</template>
           </el-table-column>
           </el-table-column>
           <el-table-column align="center" label="是否运营">
           <el-table-column align="center" label="是否运营">
@@ -256,10 +261,23 @@
               </div>
               </div>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-          <el-table-column align="center" prop="carePackage" label="关心包">
-            <template slot-scope="scope">{{
-              scope.row.carePackage | studentPackage
-            }}</template>
+                 <el-table-column
+            align="center"
+            prop="balance"
+            label="账户余额(元)"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.balance | moneyFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="carePackage"
+            label="关心包"
+          >
+            <template slot-scope="scope">{{ scope.row.carePackage | studentPackage }}</template>
           </el-table-column>
           </el-table-column>
           <el-table-column align="center" prop="comeOnPackage" label="加油包">
           <el-table-column align="center" prop="comeOnPackage" label="加油包">
             <template slot-scope="scope">{{
             <template slot-scope="scope">{{

+ 214 - 167
src/views/teacherManager/teacherDetail/components/settlement.vue

@@ -3,68 +3,82 @@
     <div class="headWrap">
     <div class="headWrap">
       <div class="left">
       <div class="left">
         <div class="headItem">
         <div class="headItem">
-          <p>未结算总额:<span>{{ teacherNoPay| moneyFormat}}</span></p>
+          <p>
+            未结算总额:<span>{{ teacherNoPay | moneyFormat }}</span>
+          </p>
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
-    <save-form :inline="true"
-             :model="searchForm" @submit="search" @reset="onReSet" save-key='teacherDetail-settlement'>
+    <save-form
+      :inline="true"
+      :model="searchForm"
+      @submit="search"
+      @reset="onReSet"
+      save-key="teacherDetail-settlement"
+    >
       <el-form-item>
       <el-form-item>
-        <el-date-picker v-model.trim="searchForm.courseDate"
-                        style="width: 400px;"
-                        type="daterange"
-                        value-format="yyyy-MM-dd"
-
-                        range-separator="至"
-                        start-placeholder="课程开始日期"
-                        end-placeholder="课程结束日期"
-                        :picker-options="{
-        firstDayOfWeek: 1
-    }">
+        <el-date-picker
+          v-model.trim="searchForm.courseDate"
+          style="width: 400px"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          range-separator="至"
+          start-placeholder="课程开始日期"
+          end-placeholder="课程结束日期"
+          :picker-options="{
+            firstDayOfWeek: 1,
+          }"
+        >
         </el-date-picker>
         </el-date-picker>
       </el-form-item>
       </el-form-item>
       <el-form-item>
       <el-form-item>
-        <el-select v-model.trim="searchForm.courseScheduleType"
-                   filterable
-                   clearable
-                   placeholder="课程类型">
-          <el-option v-for="(item, index) in courseType"
-                     :key="index"
-                     :label="item.label"
-                     :value="item.value"></el-option>
+        <el-select
+          v-model.trim="searchForm.courseScheduleType"
+          filterable
+          clearable
+          placeholder="课程类型"
+        >
+          <el-option
+            v-for="(item, index) in courseType"
+            :key="index"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
       <el-form-item>
       <el-form-item>
-        <el-select v-model.trim="searchForm.signInStatus"
-                   clearable
-                   filterable
-                   placeholder="考勤状态">
-          <el-option v-for="(item, index) in attendance"
-                     :key="index"
-                     :label="item.label"
-                     :value="item.value"></el-option>
+        <el-select
+          v-model.trim="searchForm.signInStatus"
+          clearable
+          filterable
+          placeholder="考勤状态"
+        >
+          <el-option
+            v-for="(item, index) in attendance"
+            :key="index"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
       <el-form-item>
       <el-form-item>
-        <el-button native-type="submit"
-                   type="danger">搜索</el-button>
-        <el-button native-type="reset"
-                   type="primary">重置</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
+        <el-button native-type="reset" type="primary">重置</el-button>
       </el-form-item>
       </el-form-item>
     </save-form>
     </save-form>
     <div class="tableWrap">
     <div class="tableWrap">
-      <el-table :data="tableList"
-                :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-        <el-table-column label="上课时间"
-                         align="center"
-                         width="200">
+      <el-table
+        :data="tableList"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+      >
+        <el-table-column label="上课时间" align="center" width="200">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            {{ scope.row.classDate + ' ' + (scope.row.classTime.substring(0,5)) }}
+            {{
+              scope.row.classDate + " " + scope.row.classTime.substring(0, 5)
+            }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="班级名称"
-                         prop="className">
-        </el-table-column>
+        <el-table-column label="班级名称" prop="className"> </el-table-column>
         <el-table-column label="课程类型">
         <el-table-column label="课程类型">
           <template slot-scope="scope">
           <template slot-scope="scope">
             {{ scope.row.courseScheduleType | coursesType }}
             {{ scope.row.courseScheduleType | coursesType }}
@@ -93,120 +107,140 @@
             {{ scope.row.signOutStatus | attendanceOutType }}
             {{ scope.row.signOutStatus | attendanceOutType }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="预计发放"
-                         prop="expectSalary">
+        <el-table-column label="预计发放" prop="expectSalary">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <div>
             <div>
-              {{scope.row.expectSalary|moneyFormat}}
+              {{ scope.row.expectSalary | moneyFormat }}
             </div>
             </div>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="实际发放"
-                         prop="actualSalary">
+        <el-table-column label="实际发放" prop="actualSalary">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <div>
             <div>
-              {{scope.row.actualSalary|moneyFormat}}
+              {{ scope.row.actualSalary | moneyFormat }}
             </div>
             </div>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="课时补贴"
-                         prop="subsidy">
+        <el-table-column label="课时补贴" prop="subsidy">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <div>
             <div>
-              {{scope.row.subsidy|moneyFormat}}
+              {{ scope.row.subsidy | moneyFormat }}
             </div>
             </div>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <el-table-column label="结算状态">
         <el-table-column label="结算状态">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            {{ scope.row.settlementTime ? '已结算' : '未结算' }}
+            {{ scope.row.settlementTime ? "已结算" : "未结算" }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <el-table-column label="操作">
         <el-table-column label="操作">
-          <template slot-scope="scope"
-                    v-if="scope.row.courseScheduleType != 'VIP' && !scope.row.settlementTime">
-            <auth auths="courseSchedule/updateTeacherCoursesSalary/settlement" v-if="scope.row.courseScheduleType != 'DEMO'">
-              <el-button @click="onUpdate(scope.row)" type="text">课酬调整</el-button>
+          <template
+            slot-scope="scope"
+            v-if="
+              scope.row.courseScheduleType != 'VIP' && !scope.row.settlementTime
+            "
+          >
+            <auth
+              auths="courseSchedule/updateTeacherCoursesSalary/settlement"
+              v-if="scope.row.courseScheduleType != 'DEMO'"
+            >
+              <el-button @click="onUpdate(scope.row)" type="text"
+                >课酬调整</el-button
+              >
             </auth>
             </auth>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
       <pagination
       <pagination
-      save-key='teacherDetail-settlement'
-      sync
-      :total.sync="pageInfo.total"
-                  :page.sync="pageInfo.page"
-                  :limit.sync="pageInfo.limit"
-                  :page-sizes="pageInfo.page_size"
-                  @pagination="getList" />
+        save-key="teacherDetail-settlement"
+        sync
+        :total.sync="pageInfo.total"
+        :page.sync="pageInfo.page"
+        :limit.sync="pageInfo.limit"
+        :page-sizes="pageInfo.page_size"
+        @pagination="getList"
+      />
     </div>
     </div>
-    <el-dialog title="课酬调整"
-               :visible.sync="settlementStatus"
-               @close="onFormClose('ruleForm')"
-               width="500px">
-      <el-form :model="form"
-               :rules="rules"
-               ref="ruleForm">
-        <el-form-item label="预计发放"
-                      :label-width="formLabelWidth">
-          <el-input v-model.trim="form.expectSalary"
-                    disabled
-                    @mousewheel.native.prevent
-                    type="number"></el-input>
+    <el-dialog
+      title="课酬调整"
+      v-if="settlementStatus"
+      :visible.sync="settlementStatus"
+      @close="onFormClose('ruleForm')"
+      width="500px"
+    >
+      <el-form :model="form" :rules="rules" ref="ruleForm">
+        <el-form-item label="原预计课酬" :label-width="formLabelWidth">
+          <!-- <el-input
+            v-model.trim="form.expectSalary"
+            disabled
+            @mousewheel.native.prevent
+            type="number"
+          ></el-input> -->
+          <div>{{ form.expectSalary }}</div>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="补贴"
+        <!-- <el-form-item label="补贴"
                       :label-width="formLabelWidth">
                       :label-width="formLabelWidth">
           <el-input v-model.trim="form.subsidys"
           <el-input v-model.trim="form.subsidys"
                     disabled
                     disabled
                     @mousewheel.native.prevent
                     @mousewheel.native.prevent
                     type="number"></el-input>
                     type="number"></el-input>
+        </el-form-item> -->
+        <el-form-item
+          label="调整范围"
+          prop="scope"
+          :label-width="formLabelWidth"
+        >
+          <el-radio-group v-model.trim="form.scope">
+            <el-radio label="all">之后剩余课次</el-radio>
+            <el-radio label="one">仅限本次</el-radio>
+          </el-radio-group>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="课酬调整为"
-                      prop="salary"
-                      :label-width="formLabelWidth">
-          <el-input v-model.trim="form.salary"
-                    type="number"
-                    @mousewheel.native.prevent
-                    autocomplete="off"></el-input>
+        <el-form-item
+          label="课酬调整为"
+          prop="salary"
+          :label-width="formLabelWidth"
+        >
+          <el-input
+            v-model.trim="form.salary"
+            type="number"
+            @mousewheel.native.prevent
+            autocomplete="off"
+          ></el-input>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="课时补贴调整为"
+        <!-- <el-form-item label="课时补贴调整为"
                       prop="subsidy"
                       prop="subsidy"
                       :label-width="formLabelWidth">
                       :label-width="formLabelWidth">
           <el-input v-model.trim="form.subsidy"
           <el-input v-model.trim="form.subsidy"
                     type="number"
                     type="number"
                     @mousewheel.native.prevent
                     @mousewheel.native.prevent
                     autocomplete="off"></el-input>
                     autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="调整范围"
-                      prop="scope"
-                      :label-width="formLabelWidth">
-          <el-radio-group v-model.trim="form.scope">
-            <el-radio label="one">仅限本次</el-radio>
-            <el-radio label="all">之后剩余课次</el-radio>
-          </el-radio-group>
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <el-button @click="settlementStatus = false">取 消</el-button>
         <el-button @click="settlementStatus = false">取 消</el-button>
-        <el-button @click="onSettlementSubmit('ruleForm')"
-                   type="primary">确 定</el-button>
+        <el-button @click="onSettlementSubmit('ruleForm')" type="primary"
+          >确 定</el-button
+        >
       </span>
       </span>
     </el-dialog>
     </el-dialog>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
-import { teacherQueryCloses, sumTeacherNoPay, updateTeacherCoursesSalary } from '@/api/teacherManager'
-import pagination from '@/components/Pagination/index'
-import store from '@/store'
-import { courseType, attendance } from '@/utils/searchArray'
+import {
+  teacherQueryCloses,
+  sumTeacherNoPay,
+  updateTeacherCoursesSalary,
+} from "@/api/teacherManager";
+import pagination from "@/components/Pagination/index";
+import store from "@/store";
+import { courseType, attendance } from "@/utils/searchArray";
 import { getTimes } from "@/utils";
 import { getTimes } from "@/utils";
 export default {
 export default {
-  name: 'settlement',
+  name: "settlement",
   components: {
   components: {
-    pagination
+    pagination,
   },
   },
-  data () {
+  data() {
     return {
     return {
       teacherNoPay: 0,
       teacherNoPay: 0,
       searchForm: {
       searchForm: {
@@ -214,7 +248,7 @@ export default {
         courseEndDate: null,
         courseEndDate: null,
         courseScheduleType: null,
         courseScheduleType: null,
         signInStatus: null,
         signInStatus: null,
-        courseDate:[]
+        courseDate: [],
       },
       },
       courseType: courseType,
       courseType: courseType,
       attendance: attendance,
       attendance: attendance,
@@ -226,72 +260,84 @@ export default {
         limit: 10, // 限制显示条数
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         page: 1, // 当前页
         total: 1, // 总条数
         total: 1, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       },
-      formLabelWidth: '120px',
+      formLabelWidth: "120px",
       settlementStatus: false,
       settlementStatus: false,
       form: {
       form: {
         courseScheduleId: null,
         courseScheduleId: null,
         salary: null,
         salary: null,
         subsidy: null,
         subsidy: null,
-        scope: 'one',
+        scope: "one",
         expectSalary: null,
         expectSalary: null,
-        subsidys: null
+        subsidys: null,
       },
       },
       rules: {
       rules: {
-        salary: [{ required: true, message: '请输入课酬', trigger: 'blur' }],
-        subsidy: [{ required: true, message: '请输入课时补贴', trigger: 'blur' }],
-        scope: [{ required: true, message: '请选择调整范围', trigger: 'change' }],
-      }
-    }
+        salary: [{ required: true, message: "请输入课酬", trigger: "blur" }],
+        subsidy: [
+          { required: true, message: "请输入课时补贴", trigger: "blur" },
+        ],
+        scope: [
+          { required: true, message: "请选择调整范围", trigger: "change" },
+        ],
+      },
+    };
   },
   },
-  activated () {
-    this.teacherId = this.$route.query.teacherId
-    this.getList()
-    sumTeacherNoPay({ teacherId: this.teacherId }).then(res => {
+  activated() {
+    this.teacherId = this.$route.query.teacherId;
+    this.getList();
+    sumTeacherNoPay({ teacherId: this.teacherId }).then((res) => {
       if (res.code == 200) {
       if (res.code == 200) {
-        this.teacherNoPay = res.data
+        this.teacherNoPay = res.data;
       }
       }
-    })
+    });
   },
   },
-  mounted () {
-    this.teacherId = this.$route.query.teacherId
-    this.getList()
-    sumTeacherNoPay({ teacherId: this.teacherId }).then(res => {
+  mounted() {
+    this.teacherId = this.$route.query.teacherId;
+    this.getList();
+    sumTeacherNoPay({ teacherId: this.teacherId }).then((res) => {
       if (res.code == 200) {
       if (res.code == 200) {
-        this.teacherNoPay = res.data
+        this.teacherNoPay = res.data;
       }
       }
-    })
+    });
   },
   },
   methods: {
   methods: {
-    search () {
+    search() {
       this.pageInfo.page = 1;
       this.pageInfo.page = 1;
       this.getList();
       this.getList();
     },
     },
-    onSettlementSubmit (formName) {
-      this.$refs[formName].validate(valid => {
-        if (!valid) return
-        this.form.teacherId = this.teacherId
-        updateTeacherCoursesSalary(this.form).then(res => {
-          this.messageTips('修改', res)
-        })
-      })
+    onSettlementSubmit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (!valid) return;
+        this.form.teacherId = this.teacherId;
+        updateTeacherCoursesSalary(this.form).then((res) => {
+          this.messageTips("修改", res);
+        });
+      });
     },
     },
-    messageTips (title, res) {
+    messageTips(title, res) {
       if (res.code == 200) {
       if (res.code == 200) {
-        this.$message.success(title + '成功')
-        this.settlementStatus = false
-        this.getList()
+        this.$message.success(title + "成功");
+        this.settlementStatus = false;
+        this.getList();
+        this.form = {
+          courseScheduleId: null,
+          salary: null,
+          subsidy: null,
+          scope: "one",
+          expectSalary: null,
+          subsidys: null,
+        };
       } else {
       } else {
-        this.$message.error(res.msg)
+        this.$message.error(res.msg);
       }
       }
     },
     },
-    getList () {
+    getList() {
       // let params = this.searchForm
       // let params = this.searchForm
       // params.rows = this.pageInfo.limit
       // params.rows = this.pageInfo.limit
       // params.page = this.pageInfo.page
       // params.page = this.pageInfo.page
       // params.teacherId = this.teacherId
       // params.teacherId = this.teacherId
-            const { courseDate, ...rest } = this.searchForm;
+      const { courseDate, ...rest } = this.searchForm;
       let params = {
       let params = {
         ...rest,
         ...rest,
         ...getTimes(courseDate, ["courseStartDate", "courseEndDate"]),
         ...getTimes(courseDate, ["courseStartDate", "courseEndDate"]),
@@ -299,43 +345,44 @@ export default {
         rows: this.pageInfo.limit,
         rows: this.pageInfo.limit,
         teacherId: this.teacherId,
         teacherId: this.teacherId,
       };
       };
-      teacherQueryCloses(params).then(res => {
+      teacherQueryCloses(params).then((res) => {
         if (res.code == 200) {
         if (res.code == 200) {
-          this.tableList = res.data.rows
-          this.pageInfo.total = res.data.total
+          this.tableList = res.data.rows;
+          this.pageInfo.total = res.data.total;
         }
         }
-      })
+      });
     },
     },
-    searchCourseDate (value) {
+    searchCourseDate(value) {
       if (value) {
       if (value) {
-        this.searchForm.courseStartDate = value[0]
-        this.searchForm.courseEndDate = value[1]
+        this.searchForm.courseStartDate = value[0];
+        this.searchForm.courseEndDate = value[1];
       } else {
       } else {
-        this.searchForm.courseStartDate = null
-        this.searchForm.courseEndDate = null
+        this.searchForm.courseStartDate = null;
+        this.searchForm.courseEndDate = null;
       }
       }
     },
     },
-    onFormClose (formName) { // 关闭弹窗重置验证
-      this.$refs[formName].resetFields()
+    onFormClose(formName) {
+      // 关闭弹窗重置验证
+      this.$refs[formName].resetFields();
     },
     },
-    onUpdate (row) {
-      this.form.courseScheduleId = row.courseScheduleId
-      this.settlementStatus = true
-      this.form.expectSalary = row.expectSalary
-      this.form.subsidys = row.subsidy
+    onUpdate(row) {
+      this.form.courseScheduleId = row.courseScheduleId;
+      this.settlementStatus = true;
+      this.form.expectSalary = row.expectSalary;
+      this.form.subsidys = row.subsidy;
     },
     },
-    onReSet () {
-      this.courseDate = null
+    onReSet() {
+      this.courseDate = null;
       this.searchForm = {
       this.searchForm = {
         courseStartDate: null,
         courseStartDate: null,
         courseEndDate: null,
         courseEndDate: null,
         courseScheduleType: null,
         courseScheduleType: null,
-        signInStatus: null
-      }
+        signInStatus: null,
+      };
       this.getList();
       this.getList();
-    }
-  }
-}
+    },
+  },
+};
 </script>
 </script>
 <style lang="scss" scope>
 <style lang="scss" scope>
 </style>
 </style>

+ 2 - 2
src/views/teamDetail/componentCourse/teacherList.vue

@@ -265,7 +265,7 @@
     >
     >
       <!-- 修改代码 -->
       <!-- 修改代码 -->
       <el-form :model="teacherMask" :rules="teacherRules" ref="teacherMask">
       <el-form :model="teacherMask" :rules="teacherRules" ref="teacherMask">
-        <el-form-item label="原课程课酬" prop="expectSalary">
+        <el-form-item label="原预计课酬" prop="expectSalary">
           <span>{{
           <span>{{
             activeTeacher && activeTeacher.expectSalary | moneyFormat
             activeTeacher && activeTeacher.expectSalary | moneyFormat
           }}</span>
           }}</span>
@@ -316,7 +316,7 @@ export default {
       teacherMask: {
       teacherMask: {
         salary: "",
         salary: "",
         subsidy: "",
         subsidy: "",
-        radio: "",
+        radio: "one",
       },
       },
       teacherRules: {
       teacherRules: {
         salary: [
         salary: [

+ 1 - 1
src/views/teamDetail/components/modals/class-pay-list.vue

@@ -48,7 +48,7 @@
     <div style="clear: both"></div>
     <div style="clear: both"></div>
     <el-dialog
     <el-dialog
       :visible.sync="showLastVisable"
       :visible.sync="showLastVisable"
-      title="合并结果确认"
+      title="结果确认"
       append-to-body
       append-to-body
       width="800px"
       width="800px"
     >
     >

+ 20 - 431
src/views/workBenchManager/payAppeal.vue

@@ -6,454 +6,43 @@
       考勤申诉
       考勤申诉
     </h2>
     </h2>
     <div class="m-core">
     <div class="m-core">
-      <save-form :inline="true" :model.sync="searchForm" ref="searchForm">
-        <el-form-item>
-          <el-input
-            v-model.trim="searchForm.search"
-            clearable
-            @keyup.enter.native="search"
-            placeholder="老师名称、课程编号"
-          ></el-input>
-        </el-form-item>
-        <el-form-item>
-          <el-select
-            v-model.trim="searchForm.organId"
-            clearable
-            filterable
-            placeholder="请选择分部"
-          >
-            <el-option
-              v-for="(item, index) in selects.branchs"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-select
-            v-model.trim="searchForm.complaintsStatus"
-            clearable
-            filterable
-            placeholder="申诉状态"
-          >
-            <el-option label="已拒绝" :value="0"></el-option>
-            <el-option label="已通过" :value="1"></el-option>
-            <el-option label="待处理" :value="2"></el-option>
-            <el-option label="已撤销" :value="3"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-date-picker
-            v-model.trim="searchForm.timer"
-            style="width: 400px"
-            type="daterange"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            start-placeholder="课程开始日期"
-            end-placeholder="课程结束日期"
-            :picker-options="{
-              firstDayOfWeek: 1,
-            }"
-          ></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-form-item>
-      </save-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="courseScheduleId"
-            label="课程编号"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="courseScheduleName"
-            label="课程名称"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            width="180"
-            prop="courseScheduleTime"
-            label="课程时间"
-          >
-            <template slot-scope="scope">
-              <div>
-                <p>
-                  {{ scope.row.courseScheduleTime }}
-                  {{ scope.row.courseScheduleStartTime | timerForMinFormat }}-{{
-                    scope.row.courseScheduleEndTime | timerForMinFormat
-                  }}
-                </p>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" prop="status" label="签到状态">
-            <template slot-scope="scope">
-              <div>
-                <p>{{ scope.row.signInStatus | attendanceType }}</p>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" prop="status" label="签退状态">
-            <template slot-scope="scope">
-              <div>
-                <p>{{ scope.row.signOutStatus | attendanceOutType }}</p>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="teacherName"
-            label="老师名称"
-          ></el-table-column>
-          <el-table-column align="center" prop="studentId" label="状态">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.complaintsStatusEnum | complaintsStatusEnum }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="修复记录">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.updateAttendanceEnum | updateAttendanceEnum }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="operatorName"
-            label="申诉处理者"
-          ></el-table-column>
-          <el-table-column align="center" label="操作">
-            <!-- teacherAttendance/agreeTeacherAttendanceComplaints -->
-            <template slot-scope="scope">
-              <div>
-                <el-button
-                  type="text"
-                  v-if="permission('teacherAttendance/operation/update')&&scope.row.complaintsStatusEnum == 2"
-                  @click="lookDetail(scope.row)"
-                  >处理申诉</el-button
-                >
-                 <el-button
-                  type="text"
-                  v-if="permission('teacherAttendance/operation')&&scope.row.complaintsStatusEnum != 2"
-                  @click="lookDetail(scope.row)"
-                  >查看</el-button
-                >
-                <!-- complaintsStatusEnum -->
-              </div>
-            </template>
-          </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>
+      <tab-router
+        v-model.trim="activeIndex"
+        type="card"
+
+      >
+      <!--  @tab-click="handleClick" -->
+        <el-tab-pane label="考勤申诉(未结算)" lazy name="1" >
+          <progressRequest v-if="activeIndex === '1'" :isSettle="false"/>
+        </el-tab-pane>
+        <el-tab-pane label="考勤申诉(已结算)" lazy name="2">
+          <progressRequest v-if="activeIndex === '2'" :isSettle="true"/>
+        </el-tab-pane>
+      </tab-router>
     </div>
     </div>
-    <el-dialog title="考勤申诉" :visible.sync="dialogVisible" width="500px">
-      <div>
-        <el-form ref="visibleForm" :model="visibleForm" label-width="100px" class="visibleForm">
-          <el-form-item label="签到时间">
-            {{ visibleForm.signInTime }}
-          </el-form-item>
-          <el-form-item label="签退时间">
-            {{ visibleForm.signOutTime }}
-          </el-form-item>
-          <el-form-item label="申诉图片">
-            <el-row>
-              <el-col v-for="(item, index) in visibleForm.srcList" :key="index" :span='6'>
-                <el-image
-                  style="width: 100px; height: 100px"
-                  fit="cover"
-                  :src="item"
-                  :preview-src-list="visibleForm.srcList"
-                >
-                </el-image>
-              </el-col>
-            </el-row>
-          </el-form-item>
-          <el-form-item label="申诉考勤状态">
-            <el-checkbox v-if="visibleForm.complaintsType == 'SIGN_IN' || visibleForm.complaintsType == 'ALL'" disabled :value="true">签到状态</el-checkbox>
-            <el-checkbox v-if="visibleForm.complaintsType == 'SIGN_OUT' || visibleForm.complaintsType == 'ALL'" disabled :value="true">签退状态</el-checkbox>
-          </el-form-item>
-          <el-form-item
-            label="申诉内容"
-            :rules="[
-              { required: true, message: '请填写申诉内容', trigger: 'blur' },
-            ]"
-            prop="complaintsContent"
-          >
-            <el-input
-              type="textarea"
-              :rows="4"
-              :disabled="visibleForm.complaintsStatusEnum != '2'"
-              v-model.trim="visibleForm.complaintsContent"
-            ></el-input>
-          </el-form-item>
-          <el-form-item
-            label="处理意见"
-            :rules="[
-              { required: true, message: '请填写处理意见', trigger: 'blur' },
-            ]"
-            prop="disposeContent"
-          >
-            <el-input
-              type="textarea"
-              :rows="4"
-              :disabled="visibleForm.complaintsStatusEnum != '2'"
-              v-model.trim="visibleForm.disposeContent"
-            ></el-input>
-          </el-form-item>
-          <!--  -->
-          <!-- <el-form-item
-            label="请选择需要补正的状态"
-            v-if="visibleForm.complaintsStatusEnum == '2'"
-          >
-            <br />
-            <el-checkbox
-              v-model="visibleForm.reSignInStatus"
-              :disabled="visibleForm.complaintsStatusEnum != '2'"
-              >签到状态</el-checkbox
-            >
-            <el-checkbox
-              v-model="visibleForm.reSignOutStatus"
-              :disabled="visibleForm.complaintsStatusEnum != '2'"
-              >签退状态</el-checkbox
-            >
-          </el-form-item> -->
-        </el-form>
-      </div>
-      <div slot="footer" v-if="visibleForm.complaintsStatusEnum == '2'">
-        <el-button
-          v-permission="'teacherAttendance/rejectTeacherAttendanceComplaints'"
-          @click="subreset('DENIED')"
-          >拒绝</el-button
-        >
-        <el-button
-          v-permission="'teacherAttendance/agreeTeacherAttendanceComplaints'"
-          type="primary"
-          @click="subreset('AGREED')"
-          >同意</el-button
-        >
-      </div>
-    </el-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import axios from "axios";
-import { getToken } from "@/utils/auth";
-import pagination from "@/components/Pagination/index";
-import load from "@/utils/loading";
 import { permission } from "@/utils/directivePage";
 import { permission } from "@/utils/directivePage";
-import {
-  queryTeacherAttendanceComplaints,
-  agreeTeacherAttendanceComplaints,
-  rejectTeacherAttendanceComplaints,
-} from "@/api/journal";
+import progressRequest from "./requestComponent/progressRequest"
 export default {
 export default {
-  components: { pagination },
+  components: {progressRequest},
   data() {
   data() {
     return {
     return {
-      searchForm: {
-        search: null,
-        organId: null,
-        complaintsStatus: null,
-        timer: [],
-      },
-      teacherList: [],
-      tableList: [],
-      rules: {
-        // 分页规则
-        limit: 10, // 限制显示条数
-        page: 1, // 当前页
-        total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
-      },
-      dialogVisible: false,
-      visibleForm: {
-        complaintsContent: null,
-        complaintsStatusEnum: null,
-        disposeContent: null,
-        signInStatus: null,
-        signOutStatus: null,
-        teacherAttendanceId: null,
-        reSignInStatus: null,
-        reSignOutStatus: null,
-        complaintsType: null,
-        url: null,
-      },
+      activeIndex:1
     };
     };
   },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   //生命周期 - 挂载完成(可以访问DOM元素)
-  async mounted() {
-    await this.$store.dispatch("setBranchs");
-
-    this.init();
-  },
+  async mounted() {},
   methods: {
   methods: {
-    init() {
-      this.getList();
-    },
-    permission(str) {
-      return permission(str);
-    },
-    getList() {
-      let obj = {};
-      Object.assign(obj, this.searchForm);
-      if (obj.timer && obj.timer.length > 0) {
-        obj.courseScheduleStartDate = obj.timer[0];
-        obj.courseScheduleEndDate = obj.timer[1];
-      }
-      obj.rows = this.rules.limit;
-      obj.page = this.rules.page;
-      delete obj.timer;
-      queryTeacherAttendanceComplaints(obj).then((res) => {
-        if (res.code == 200) {
-          this.rules.total = res.data.total;
-          this.tableList = res.data.rows;
-        }
-      });
-    },
-    search() {
-      this.rules.page = 1;
-      this.$refs.searchForm.save(this.searchForm);
-      this.$refs.searchForm.save(this.pageInfo, "page");
-      this.getList();
-    },
-    onReSet() {
-      this.searchForm = {
-        search: null,
-        organId: null,
-        complaintsStatus: null,
-        timer: [],
-      };
-      this.search();
-    },
-    subreset(str) {
-      if (str == "AGREED") {
-        // 同意
-        this.$refs["visibleForm"].validate((flag) => {
-          if (flag) {
-            let obj = {};
-            // if (
-            //   !this.visibleForm.reSignInStatus &&
-            //   !this.visibleForm.reSignOutStatus
-            // ) {
-            //   this.$message.error("请修正签到状态或签退状态");
-            //   return;
-            // }
-            // let str = "是否将此课程的";
-            // if (this.visibleForm.complaintsType == 'SIGN_IN' || this.visibleForm.complaintsType == 'ALL') {
-            //   str += "【签到状态】";
-            // }
-            // if (this.visibleForm.complaintsType == 'SIGN_OUT' || this.visibleForm.complaintsType == 'ALL') {
-            //   str += "【签退状态】";
-            // }
-            // str += "修正为正常";
-            obj.content = this.visibleForm.disposeContent;
-            obj.teacherAttendanceId = this.visibleForm.teacherAttendanceId;
-
-            this.$confirm('您是否同意该申诉?', "是否", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning",
-            })
-              .then(() => {
-                agreeTeacherAttendanceComplaints(obj).then((res) => {
-                  if (res.code == 200) {
-                    this.dialogVisible = false;
-                    this.$message.success("同意申诉成功");
-                    this.getList();
-                  }
-                });
-              })
-              .catch(() => {});
-          }
-        });
-      } else {
-        // 拒绝
-        this.$refs["visibleForm"].validate((flag) => {
-          if (flag) {
-            let obj = {};
-            obj.content = this.visibleForm.disposeContent;
-            obj.teacherAttendanceId = this.visibleForm.teacherAttendanceId;
-            this.$confirm("驳回申诉", "是否", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning",
-            })
-              .then(() => {
-                rejectTeacherAttendanceComplaints(obj).then((res) => {
-                  if (res.code == 200) {
-                    this.dialogVisible = false;
-                    this.$message.success("拒绝申诉成功");
-                    this.getList();
-                  }
-                });
-              })
-              .catch(() => {});
-          }
-        });
-      }
-    },
-    lookDetail(row) {
-      this.visibleForm = {
-        complaintsContent: row.complaintsContent,
-        complaintsStatusEnum: row.complaintsStatusEnum,
-        disposeContent: row.disposeContent,
-        signInStatus: row.signInStatus,
-        signOutStatus: row.signOutStatus,
-        signInTime: row.signInTime,
-        signOutTime: row.signOutTime,
-        teacherAttendanceId: row.teacherAttendanceId,
-        // reSignInStatus: row.signInStatus == 1 ? true : false,
-        // reSignOutStatus: row.signOutStatus == 1 ? true : false,
-        reSignInStatus: null,
-        reSignOutStatus: null,
-        complaintsType: row.complaintsType,
-        srcList: row.url.split(","),
-      };
-      this.dialogVisible = true;
-    },
-  },
-  watch: {
-    dialogVisible(val) {
-      if (!val) {
-        this.visibleForm = {
-          complaintsContent: null,
-          complaintsStatusEnum: null,
-          disposeContent: null,
-          signInStatus: null,
-          signOutStatus: null,
-          teacherAttendanceId: null,
-          reSignInStatus: null,
-          reSignOutStatus: null,
-        };
-      }
+      handleClick(evt) {
+      // this.changeHash(evt.name);
     },
     },
   },
   },
+  watch: {},
 };
 };
 </script>
 </script>
 <style lang='scss' scoped>
 <style lang='scss' scoped>

+ 0 - 0
src/views/workBenchManager/requestComponent/endRequest.vue


+ 495 - 0
src/views/workBenchManager/requestComponent/progressRequest.vue

@@ -0,0 +1,495 @@
+<!--  -->
+<template>
+  <div class="m-core">
+    <save-form :inline="true" :model.sync="searchForm" ref="searchForm">
+      <el-form-item>
+        <el-input
+          v-model.trim="searchForm.search"
+          clearable
+          @keyup.enter.native="search"
+          placeholder="老师名称、课程编号"
+        ></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-select
+          v-model.trim="searchForm.organId"
+          clearable
+          filterable
+          placeholder="请选择分部"
+        >
+          <el-option
+            v-for="(item, index) in selects.branchs"
+            :key="index"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select
+          v-model.trim="searchForm.complaintsStatus"
+          clearable
+          filterable
+          placeholder="申诉状态"
+        >
+          <el-option label="已拒绝" :value="0"></el-option>
+          <el-option label="已通过" :value="1"></el-option>
+          <el-option label="待处理" :value="2"></el-option>
+          <el-option label="已撤销" :value="3"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-date-picker
+          v-model.trim="searchForm.timer"
+          style="width: 400px"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          range-separator="至"
+          start-placeholder="课程开始日期"
+          end-placeholder="课程结束日期"
+          :picker-options="{
+            firstDayOfWeek: 1,
+          }"
+        ></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-form-item>
+    </save-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="courseScheduleId"
+          label="课程编号"
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          prop="courseScheduleName"
+          label="课程名称"
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          width="180"
+          prop="courseScheduleTime"
+          label="课程时间"
+        >
+          <template slot-scope="scope">
+            <div>
+              <p>
+                {{ scope.row.courseScheduleTime }}
+                {{ scope.row.courseScheduleStartTime | timerForMinFormat }}-{{
+                  scope.row.courseScheduleEndTime | timerForMinFormat
+                }}
+              </p>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="status" label="签到状态">
+          <template slot-scope="scope">
+            <div>
+              <p>{{ scope.row.signInStatus | attendanceType }}</p>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="status" label="签退状态">
+          <template slot-scope="scope">
+            <div>
+              <p>{{ scope.row.signOutStatus | attendanceOutType }}</p>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="teacherName"
+          label="老师名称"
+        ></el-table-column>
+        <el-table-column align="center" prop="studentId" label="状态">
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.complaintsStatusEnum | complaintsStatusEnum }}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="修复记录">
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.updateAttendanceEnum | updateAttendanceEnum }}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="operatorName"
+          label="申诉处理者"
+        ></el-table-column>
+        <el-table-column align="center" label="操作">
+          <!-- teacherAttendance/agreeTeacherAttendanceComplaints -->
+          <template slot-scope="scope">
+            <div>
+              <el-button
+                type="text"
+                v-if="
+                  permission('teacherAttendance/operation/update') &&
+                  scope.row.complaintsStatusEnum == 2&&!settlemented
+                "
+                @click="lookDetail(scope.row)"
+                >处理申诉</el-button
+              >
+              <el-button
+                type="text"
+                v-if="
+                  permission('teacherAttendance/operation') &&
+                  (scope.row.complaintsStatusEnum != 2|| settlemented)
+                "
+                @click="lookDetail(scope.row)"
+                >查看</el-button
+              >
+              <!-- complaintsStatusEnum -->
+            </div>
+          </template>
+        </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>
+    <el-dialog title="考勤申诉" :visible.sync="dialogVisible" width="500px">
+      <div>
+        <el-form
+          ref="visibleForm"
+          :model="visibleForm"
+          label-width="100px"
+          class="visibleForm"
+        >
+          <el-form-item label="签到时间">
+            {{ visibleForm.signInTime }}
+          </el-form-item>
+          <el-form-item label="签退时间">
+            {{ visibleForm.signOutTime }}
+          </el-form-item>
+          <el-form-item label="申诉图片">
+            <el-row>
+              <el-col
+                v-for="(item, index) in visibleForm.srcList"
+                :key="index"
+                :span="6"
+              >
+                <el-image
+                  style="width: 100px; height: 100px"
+                  fit="cover"
+                  :src="item"
+                  :preview-src-list="visibleForm.srcList"
+                >
+                </el-image>
+              </el-col>
+            </el-row>
+          </el-form-item>
+          <el-form-item label="申诉考勤状态">
+            <el-checkbox
+              v-if="
+                visibleForm.complaintsType == 'SIGN_IN' ||
+                visibleForm.complaintsType == 'ALL'
+              "
+              disabled
+              :value="true"
+              >签到状态</el-checkbox
+            >
+            <el-checkbox
+              v-if="
+                visibleForm.complaintsType == 'SIGN_OUT' ||
+                visibleForm.complaintsType == 'ALL'
+              "
+              disabled
+              :value="true"
+              >签退状态</el-checkbox
+            >
+          </el-form-item>
+          <el-form-item
+            label="申诉内容"
+            :rules="[
+              { required: true, message: '请填写申诉内容', trigger: 'blur' },
+            ]"
+            prop="complaintsContent"
+          >
+            <el-input
+              type="textarea"
+              :rows="4"
+              :disabled="visibleForm.complaintsStatusEnum != '2'||settlemented"
+              v-model.trim="visibleForm.complaintsContent"
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            label="处理意见"
+            :rules="[
+              { required: true, message: '请填写处理意见', trigger: 'blur' },
+            ]"
+            prop="disposeContent"
+          >
+            <el-input
+              type="textarea"
+              :rows="4"
+              :disabled="visibleForm.complaintsStatusEnum != '2'|| settlemented"
+              v-model.trim="visibleForm.disposeContent"
+            ></el-input>
+          </el-form-item>
+          <!--  -->
+          <!-- <el-form-item
+            label="请选择需要补正的状态"
+            v-if="visibleForm.complaintsStatusEnum == '2'"
+          >
+            <br />
+            <el-checkbox
+              v-model="visibleForm.reSignInStatus"
+              :disabled="visibleForm.complaintsStatusEnum != '2'"
+              >签到状态</el-checkbox
+            >
+            <el-checkbox
+              v-model="visibleForm.reSignOutStatus"
+              :disabled="visibleForm.complaintsStatusEnum != '2'"
+              >签退状态</el-checkbox
+            >
+          </el-form-item> -->
+        </el-form>
+      </div>
+      <div slot="footer" v-if="visibleForm.complaintsStatusEnum == '2'&&!settlemented">
+        <el-button
+          v-permission="'teacherAttendance/rejectTeacherAttendanceComplaints'"
+          @click="subreset('DENIED')"
+          >拒绝</el-button
+        >
+        <el-button
+          v-permission="'teacherAttendance/agreeTeacherAttendanceComplaints'"
+          type="primary"
+          @click="subreset('AGREED')"
+          >同意</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import axios from "axios";
+import { getToken } from "@/utils/auth";
+import pagination from "@/components/Pagination/index";
+import load from "@/utils/loading";
+import { permission } from "@/utils/directivePage";
+import {
+  queryTeacherAttendanceComplaints,
+  agreeTeacherAttendanceComplaints,
+  rejectTeacherAttendanceComplaints,
+} from "@/api/journal";
+export default {
+  props:['isSettle'],
+  components: { pagination },
+  data() {
+    return {
+      searchForm: {
+        settlemented:null,
+        search: null,
+        organId: null,
+        complaintsStatus: null,
+        timer: [],
+      },
+      teacherList: [],
+      tableList: [],
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+      dialogVisible: false,
+      visibleForm: {
+        complaintsContent: null,
+        complaintsStatusEnum: null,
+        disposeContent: null,
+        signInStatus: null,
+        signOutStatus: null,
+        teacherAttendanceId: null,
+        reSignInStatus: null,
+        reSignOutStatus: null,
+        complaintsType: null,
+        url: null,
+      },
+    };
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  async mounted() {
+    await this.$store.dispatch("setBranchs");
+
+    this.init();
+  },
+  computed:{
+    settlemented(){
+      return this.isSettle
+    }
+  },
+  methods: {
+    init() {
+      this.getList();
+    },
+    permission(str) {
+      return permission(str);
+    },
+    getList() {
+      let obj = {};
+      Object.assign(obj, this.searchForm);
+      if (obj.timer && obj.timer.length > 0) {
+        obj.courseScheduleStartDate = obj.timer[0];
+        obj.courseScheduleEndDate = obj.timer[1];
+      }
+      obj.rows = this.rules.limit;
+      obj.page = this.rules.page;
+      obj.settlemented = this.settlemented
+      delete obj.timer;
+      queryTeacherAttendanceComplaints(obj).then((res) => {
+        if (res.code == 200) {
+          this.rules.total = res.data.total;
+          this.tableList = res.data.rows;
+        }
+      });
+    },
+    search() {
+      this.rules.page = 1;
+      this.$refs.searchForm.save(this.searchForm);
+      this.$refs.searchForm.save(this.pageInfo, "page");
+      this.getList();
+    },
+    onReSet() {
+      this.searchForm = {
+        search: null,
+        organId: null,
+        complaintsStatus: null,
+        timer: [],
+      };
+      this.search();
+    },
+    subreset(str) {
+      if (str == "AGREED") {
+        // 同意
+        this.$refs["visibleForm"].validate((flag) => {
+          if (flag) {
+            let obj = {};
+            // if (
+            //   !this.visibleForm.reSignInStatus &&
+            //   !this.visibleForm.reSignOutStatus
+            // ) {
+            //   this.$message.error("请修正签到状态或签退状态");
+            //   return;
+            // }
+            // let str = "是否将此课程的";
+            // if (this.visibleForm.complaintsType == 'SIGN_IN' || this.visibleForm.complaintsType == 'ALL') {
+            //   str += "【签到状态】";
+            // }
+            // if (this.visibleForm.complaintsType == 'SIGN_OUT' || this.visibleForm.complaintsType == 'ALL') {
+            //   str += "【签退状态】";
+            // }
+            // str += "修正为正常";
+            obj.content = this.visibleForm.disposeContent;
+            obj.teacherAttendanceId = this.visibleForm.teacherAttendanceId;
+
+            this.$confirm("您是否同意该申诉?", "是否", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                agreeTeacherAttendanceComplaints(obj).then((res) => {
+                  if (res.code == 200) {
+                    this.dialogVisible = false;
+                    this.$message.success("同意申诉成功");
+                    this.getList();
+                  }
+                });
+              })
+              .catch(() => {});
+          }
+        });
+      } else {
+        // 拒绝
+        this.$refs["visibleForm"].validate((flag) => {
+          if (flag) {
+            let obj = {};
+            obj.content = this.visibleForm.disposeContent;
+            obj.teacherAttendanceId = this.visibleForm.teacherAttendanceId;
+            this.$confirm("驳回申诉", "是否", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                rejectTeacherAttendanceComplaints(obj).then((res) => {
+                  if (res.code == 200) {
+                    this.dialogVisible = false;
+                    this.$message.success("拒绝申诉成功");
+                    this.getList();
+                  }
+                });
+              })
+              .catch(() => {});
+          }
+        });
+      }
+    },
+    lookDetail(row) {
+      this.visibleForm = {
+        complaintsContent: row.complaintsContent,
+        complaintsStatusEnum: row.complaintsStatusEnum,
+        disposeContent: row.disposeContent,
+        signInStatus: row.signInStatus,
+        signOutStatus: row.signOutStatus,
+        signInTime: row.signInTime,
+        signOutTime: row.signOutTime,
+        teacherAttendanceId: row.teacherAttendanceId,
+        // reSignInStatus: row.signInStatus == 1 ? true : false,
+        // reSignOutStatus: row.signOutStatus == 1 ? true : false,
+        reSignInStatus: null,
+        reSignOutStatus: null,
+        complaintsType: row.complaintsType,
+        srcList: row.url.split(","),
+      };
+      this.dialogVisible = true;
+    },
+  },
+  watch: {
+    dialogVisible(val) {
+      if (!val) {
+        this.visibleForm = {
+          complaintsContent: null,
+          complaintsStatusEnum: null,
+          disposeContent: null,
+          signInStatus: null,
+          signOutStatus: null,
+          teacherAttendanceId: null,
+          reSignInStatus: null,
+          reSignOutStatus: null,
+        };
+      }
+    },
+  },
+};
+</script>
+<style lang='scss' scoped>
+.titleP {
+  line-height: 30px;
+}
+</style>