Переглянути джерело

提交最新代码增加报错列表

TheLittlePrince 7 роки тому
батько
коміт
2c4f52544e

+ 4 - 2
src/api/index.js

@@ -48,7 +48,8 @@ const AllotTeacherToManager = urlFn('/api/kmt/correctSys/allotTeacherToManager')
 const HomeworkRecoveryList = urlFn('/api/kmt/correctSys/homeworkRecoveryList')
 // 报错警告
 const errorWarning = urlFn('/api/kmt/correctSys/errorWarning')
-
+// 报错详情
+const errorDetail = urlFn('/api/kmt/correctSys/errorDetail')
 export {
     GET_TOKEN,
     GET_UUIONID_TOKEN,
@@ -72,5 +73,6 @@ export {
     GetAllotManagerList,
     AllotTeacherToManager,
     HomeworkRecoveryList,
-    errorWarning
+    errorWarning,
+    errorDetail
 }

+ 5 - 5
src/components/MenuComponent.vue

@@ -54,11 +54,11 @@ export default {
           name: " 在线批改老师",
           href: "TeacherApporval"
         },
-        // {
-        //   id: "3",
-        //   name: "报错警告",
-        //   href: "TeacherPay"
-        // },
+        {
+          id: "3",
+          name: "报错警告",
+          href: "TeacherPay"
+        },
       ],
       checkindex: ""
     };

+ 0 - 154
src/pages/home/ModalCarouselPicture.vue

@@ -1,154 +0,0 @@
-<template>
-    <div class="modal-carousel-picture">
-        <transition name="slide-fade">
-            <div class="modal-container">
-                <div class="modal-wrapper">
-                    <div class="modal-cancel" @click="updateIsShowCarouselPictureModal()">X</div>
-                    <div class="modal-list">
-                        <div class="modal-li">
-                            <img class="modal-li-image" alt="">
-                        </div>
-                        <div class="modal-li modal-col">
-                            <div class="modal-top">
-                                <div class="modal-text modal-text-black">错误原因</div>
-                                <div class="modal-text">{{pictureList[pictureIndex].errorReason || '无'}}</div>
-                            </div>
-                            <div class="modal-bottom">
-                                <div class="modal-text modal-flex-end">{{pictureList[pictureIndex].checker}}</div>
-                                <div class="modal-text modal-text-green modal-flex-end">{{pictureList[pictureIndex].checkDate}}</div>
-                                <div class="modal-text modal-flex-end">
-                                    <img class="modal-icon" v-lazy="bgIcon" alt="">
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="modal-btns">
-                        <div class="modal-btn">
-                            <img class="modal-btn-icon" v-lazy="prevWhiteIcon" alt="" v-show='pictureIndex > 0' @click="updatePictureIndex(pictureIndex - 1)">
-                            <img class="modal-btn-icon" v-lazy="prevGrayIcon" alt="" v-show='pictureIndex == 0'>
-                        </div>
-                        <div class="modal-btn">
-                            <div class="modal-btn-text">
-                                <span class="modal-btn-text-white">{{+pictureIndex + 1}}</span>
-                                <span class="modal-btn-text-gray">/{{pictureList.length}}</span>
-                            </div>
-                        </div>
-                        <div class="modal-btn">
-                            <img class="modal-btn-icon" v-lazy="nextWhiteIcon" alt="" @click="updatePictureIndex(pictureIndex + 1)">
-                            <img class="modal-btn-icon" v-lazy="nextGrayIcon" alt="">
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </transition>
-    </div>
-</template>
-
-<script>
-// const { mapState, mapGetters, mapActions, mapMutations }
-export default {
-    name: 'modal-carousel-picture',
-    data () {
-        return {
-            BASE_IMG_URL:'https://xtimg.sharingschool.com/',
-            bgIcon: require('@/assets/img/pen.png'),
-            prevWhiteIcon: require('@/assets/img/prev_white.png'),
-            prevGrayIcon: require('@/assets/img/prev_gray.png'),
-            nextWhiteIcon: require('@/assets/img/next_white.png'),
-            nextGrayIcon: require('@/assets/img/next_gray.png'),
-        }
-    },
-    computed: {
-    },
-    methods: {
-
-    }
-}
-</script>
-
-<style lang="stylus" scoped>
-@import '../../style/index.styl';
-    .modal-container
-        position fixed
-        top 0
-        left 0
-        width 100%
-        height 100%
-        z-index 9
-        background rgba($color-bg-black, .7)
-        .modal-wrapper
-            position absolute
-            top 0
-            left 0
-            width 100%
-            height 100%
-            flex-col-center()
-            .modal-cancel
-                position absolute
-                top 20px
-                right 20px
-                width 50px
-                height 50px
-                text-align center
-                line-height 50px
-                background $color-bg-black
-                border-radius 100px
-                font-size $font-size-xxxl
-                color $color-text-white
-                cursor pointer
-            .modal-list
-                margin 50px auto 20px auto
-                flex 1
-                flex-row-center()
-                .modal-col
-                    height 100%
-                    flex-col()
-                .modal-li
-                    flex 1
-                    height 100%
-                    max-width 600px
-                    min-width 600px
-                    border-radius 10px
-                    background $color-bg-white
-                    margin 10px
-                    padding 20px
-                    &-image
-                        width 100%
-                        height 100%
-                        object-fit cover
-                    .modal-top
-                        width 100%
-                        flex 1
-                    .modal-text
-                        font-size $font-size-m
-                        &-black
-                            color $color-text-black
-                            font-size $font-size-xl
-                        &-green
-                            color $color-text-green
-                            font-size $font-size-s
-                    .modal-flex-end
-                        flex-row-end()
-                        margin 10px auto
-                    .modal-bottom
-                        width 100%
-                    .modal-icon
-                        width 63px
-                        height 96px
-            .modal-btns
-                margin 20px auto
-                flex-row-center()
-                .modal-btn
-                    flex 1
-                    padding 10px 20px 30px 20px
-                    &-icon
-                        cursor pointer
-                        width 41px
-                        height 37px
-                    &-text
-                        font-size $font-size-xxxl
-                        &-gray
-                            color $color-text-gray
-                        &-white
-                            color $color-text-white
-</style>

+ 65 - 94
src/pages/home/SchoolManager.vue

@@ -40,7 +40,7 @@
                   v-for="(item, k) in options"
                   :key="k"
                   :label="item.label"
-                  :value="item.label"
+                  :value="item.str"
                 ></el-option>
               </el-select>
               <el-select
@@ -54,7 +54,7 @@
                   v-for="(item, k) in grades"
                   :key="k"
                   :label="item.label"
-                  :value="item.label"
+                  :value="item.str"
                 ></el-option>
               </el-select>
               <el-button @click="InfoWatch" slot="append" icon="el-icon-search"></el-button>
@@ -84,13 +84,14 @@
               </div>
               <div class="tr" v-for="(v, k) of monitorTeacherList.list" :key="k">
                 <!-- 在线 -->
-                <div v-if="v.status == '1'" class="tr-first">
+                <div v-if="v.status == '1'" class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
                     <i
                       :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
                       @click="dropDown(v,k)"
                     ></i>
-                    <img :src="BASE_URL + v.imgUrl" alt class="table-img" @click="isShow(v,3)">
+                    <img :src="BASE_URL + v.imgUrl" alt class="table-img" v-if="v.imgUrl" @click="isShow(v,3)">
+                    <img src="../../assets/img/user.jpg" alt="" v-if="!v.imgUrl" class="table-img">
                   </div>
                   <div>{{v.name}}</div>
                   <div>{{v.waitCount}}份</div>
@@ -100,7 +101,7 @@
                   <div>在线</div>
                 </div>
                 <!-- 离线 -->
-                <div v-if="v.status == '2'" style="color:#BEBEBE" class="tr-first">
+                <div v-if="v.status == '2'" style="color:#BEBEBE" class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
                     <i
                       :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
@@ -116,7 +117,7 @@
                   <div>离线</div>
                 </div>
                 <!-- 封号 -->
-                <div v-if="v.status == '3'" style="color:#FF6767" class="tr-first">
+                <div v-if="v.status == '3'" style="color:#FF6767" class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
                     <i
                       :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
@@ -214,34 +215,6 @@
             <!-- <input type="text" placeholder="请输入老师名字" v-model="filters1.inputValue" class="input-with-new">
                 <el-button @click="InfoWatchDay"  type="primary"  icon="el-icon-search"></el-button> -->
             <el-input  placeholder="请输入老师名字" v-model="filters1.inputValue" class="input-with-select">
-              <!-- <el-select
-                v-model="filters1.OptionsValue"
-                @change="InfoWatchDay"
-                slot="prepend"
-                placeholder="选年级"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in options"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select>
-              <el-select
-                v-model="filters1.gradesValue"
-                @change="InfoWatchDay"
-                slot="prepend"
-                placeholder="选科目"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in grades"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select> -->
               <el-button @click="InfoWatchDay" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
@@ -252,7 +225,7 @@
                 v-model="filters1.MaxtimeValue"
                 value-format="yyyy-MM-dd"
                 type="date"
-                placeholder="选择日期"
+                placeholder="filters1.MaxtimeValue"
               ></el-date-picker>
             </div>
           </el-col>
@@ -271,9 +244,10 @@
                 <div>出勤</div>
               </div>
               <div class="tr" v-for="(v, k) of DayTeacherList.list" :key="k">
-                <div class="tr-first">
+                <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
-                    <img :src="BASE_URL + v.imgUrl" alt class="table-img">
+                    <img :src="BASE_URL + v.imgUrl" alt v-if="v.imgUrl" class="table-img">
+                    <img src="../../assets/img/user.jpg" alt="" v-if="!v.imgUrl" class="table-img">
                   </div>
                   <div>{{v.name}}</div>
                   <div v-if="v.wrongCount == 0">{{v.wrongCount}}次</div>
@@ -281,7 +255,7 @@
                   <div class="tr-active">{{v.subject}}</div>
                   <div>{{v.homeworkCount}}</div>
                   <div>{{v.homeworkPicCount}}/张</div>
-                  <div>{{v.avgTime}}</div>
+                  <div style="width:240px;">{{v.avgTime}}</div>
                   <div>{{v.attendance}}</div>
                      <!-- <div v-if="v.attendance == 正常">{{v.attendance}}</div>
                    <div style="color:#52cc60;" v-if="v.attendance == 未出勤">{{v.attendance}}</div> -->
@@ -314,34 +288,7 @@
           </el-col>
           <el-col :span="4" :offset="10">
             <el-input placeholder="请输入老师名字" v-model="filters2.inputValue" class="input-with-select">
-              <!-- <el-select
-                v-model="filters2.OptionsValue"
-                @change="InfoWatchMoth"
-                slot="prepend"
-                placeholder="选年级"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in options"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select>
-              <el-select
-                v-model="filters2.gradesValue"
-                @change="InfoWatchMoth"
-                slot="prepend"
-                placeholder="选科目"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in grades"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select> -->
+
               <el-button @click="InfoWatchMoth" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
@@ -352,7 +299,7 @@
                 v-model="filters2.MaxtimeValue"
                 type="month"
                 value-format="yyyy-MM"
-                placeholder="选择月"
+                placeholder="filters2.MaxtimeValue"
               ></el-date-picker>
             </div>
           </el-col>
@@ -393,9 +340,10 @@
                 <div>出勤率</div>
               </div>
               <div class="tr" v-for="(v, k) of MothTeacherList.list" :key="k">
-                <div class="tr-first">
+                <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
-                    <img :src="BASE_URL + v.imgUrl" alt class="table-img">
+                    <img :src="BASE_URL + v.imgUrl" alt v-if="v.imgUrl" class="table-img">
+                    <img src="../../assets/img/user.jpg" alt="" v-if="!v.imgUrl" class="table-img">
                   </div>
                   <div>{{v.name}}</div>
                      <div v-if="v.wrongCount == 0">{{v.wrongCount}}次</div>
@@ -405,7 +353,7 @@
                   <div>{{v.homeworkPicCount}}/张</div>
                   <div>{{v.accuracyRate}}</div>
                   <div>{{v.satisfactionDegree}}</div>
-                  <div>{{v.avgTime}}</div>
+                  <div style="width:240px;">{{v.avgTime}}</div>
                   <div>{{v.attendance}}</div>
                 </div>
               </div>
@@ -712,41 +660,45 @@ export default {
       options: [
         {
           value: "0",
-          label: "一年级"
+          label: "1~2年级",
+          str:'一年级,二年级'
         },
         {
           value: "1",
-          label: "二年级"
+          label: "3~4年级",
+          str:'三年级,四年级'
         },
         {
           value: "2",
-          label: "三年级"
+          label: "5~6年级",
+          str:'五年级,六年级'
         },
         {
           value: "3",
-          label: "四年级"
-        },
-        {
-          value: "4",
-          label: "五年级"
-        },
-        {
-          value: "5",
-          label: "六年级"
+          label: "全部",
+          str:''
         }
       ],
       grades: [
         {
           value: "0",
-          label: "语文"
+          label: "语文",
+          str:"语文"
         },
         {
           value: "1",
-          label: "数学"
+          label: "数学",
+          str:"数学"
         },
         {
           value: "2",
-          label: "英语"
+          label: "英语",
+          str:"数学"
+        },
+        {
+          value: "3",
+          label: "全部",
+          str:""
         }
       ],
       ItemList: [
@@ -777,7 +729,7 @@ export default {
       filters1: {
         //超级管理员的当天数据
         // 排序
-        MaxtimeValue: "",
+        MaxtimeValue: this.dayFormatDate(),
         OptionsValue: "",
         gradesValue: "",
         inputValue: "",
@@ -790,7 +742,7 @@ export default {
       filters2: {
         //超级管理员的当月数据
         // 排序
-        MaxtimeValue: "",
+        MaxtimeValue: this.monthFormatDate(),
         OptionsValue: "",
         gradesValue: "",
         inputValue: "",
@@ -887,7 +839,6 @@ export default {
     // 点击下拉
     dropDown(v, k) {
       this.isDown = !this.isDown;
-      console.log(this.isDown)
       //  console.log(!this.isDown)
       this.isDownindex = k;
       // if (this.isDown = true){
@@ -916,7 +867,7 @@ export default {
         grade: this.filters.OptionsValue,
         subject: this.filters.gradesValue,
         teacherName: this.filters.inputValue,
-        maxCreateTime: this.filters.MaxtimeValue,
+        maxCreateTime: "",
         pageNo: this.filters.pageNo,
         pageSize: this.filters.pageSize,
         managerId:this.managerId || ''
@@ -928,7 +879,7 @@ export default {
         grade: this.filters.OptionsValue,
         subject: this.filters.gradesValue,
         teacherName: this.filters1.inputValue,
-        maxCreateTime: this.filters1.MaxtimeValue,
+        maxCreateTime:"",
           oneDay: this.filters1.MaxtimeValue,
         pageNo: this.filters1.pageNo,
         pageSize: this.filters1.pageSize,
@@ -941,7 +892,7 @@ export default {
         grade: this.filters.OptionsValue,
         subject: this.filters.gradesValue,
         teacherName: this.filters2.inputValue,
-        maxCreateTime: this.filters2.MaxtimeValue,
+        maxCreateTime: "",
            oneMonth: this.filters2.MaxtimeValue,
         pageNo: this.filters2.pageNo,
         pageSize: this.filters2.pageSize,
@@ -953,7 +904,7 @@ export default {
       this.homeworkLIst.teacherId =  v.teacherId
       this.$store.dispatch("TeacherHomeworkList", {
         teacherId: v.teacherId,
-        maxCreateTime: this.filters.MaxtimeValue,
+        maxCreateTime: "",
         pageNo: this.homeworkLIst.pageNo,
         pageSize: this.homeworkLIst.pageSize
       });
@@ -1120,7 +1071,24 @@ export default {
       }
 
     },
-
+    //年月日时间封装
+    dayFormatDate: function () {
+      let date = new Date();
+      let y = date.getFullYear();
+      let MM = date.getMonth() + 1;
+      MM = MM < 10 ? ('0' + MM) : MM;
+      let d = date.getDate();
+      d = d < 10 ? ('0' + d) : d;
+      return y + '-' + MM + '-' + d;
+    },
+    //年月时间封装
+    monthFormatDate: function () {
+      let date = new Date();
+      let y = date.getFullYear();
+      let MM = date.getMonth() + 1;
+      MM = MM < 10 ? ('0' + MM) : MM;
+      return y + '-' + MM;
+    },
     //关闭弹框
     allShowModel(str) {
       let _this = this;
@@ -1317,7 +1285,7 @@ el-table {
 }
 .el-select {
   width: 100px;
-  margin: 0 5px;
+  margin: -10px!important;
 }
 .input-with-select .el-input-group__prepend {
   background-color: #fff;
@@ -1460,6 +1428,9 @@ el-table {
 .tr-active {
   color: #3ab548;
 }
+ .BgcColor{
+     background-color: #F7FBFC;
+   }
 .showModel {
   width: 100%;
   height: 100%;

+ 215 - 15
src/pages/home/TeacherPay.vue

@@ -4,12 +4,12 @@
     <!-- table 表格 -->
     <el-row :gutter="20"  class="main-items">
       <!--数据监控-->
-       <el-col class="aside" :span="1" :offset="1" style="padding: 0 !important;">
+       <!-- <el-col class="aside" :span="1" :offset="1" style="padding: 0 !important;">
         <div></div>
-      </el-col>
+      </el-col> -->
       <!--当天-->
-      <el-col :span="20" class="main">
-        <el-row :gutter="20" class="main-header">
+      <el-col :span="20"  class="main">
+        <el-row :gutter="20"  class="main-header">
           <el-col :span="5">
          <div class="main-header-item">报错总次数:<span style="color:red;">{{errorWarningList.allErrorCount}}次</span></div> 
           </el-col>
@@ -21,10 +21,10 @@
                 <div>时间</div>
                 <div>学生</div>
                 <div>科目</div>
-                 <div>查看报错详情</div>
+                 <div style="margin-left:40px;">查看报错详情</div>
               </div>
               <div class="tr" v-for="(v, k) of errorWarningList.list" :key="k">
-                <div class="tr-first">
+                <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>{{v.date}}</div>
                   <div>{{v.studentName}}</div>
                   <div>{{v.subject}}</div>
@@ -49,6 +49,49 @@
         </el-row>
       </el-col>
     </el-row>
+      <div class="showModel"  v-if="NoAllotManagerModel">
+            <div class="modal-cancel" @click="updateIsShowCarouselPictureModal()">X</div>
+            <div class="detailinfo">
+              <div class="detailImg">
+                <img  :src="BASE_URL + errorDetailList[pictureIndex].pictureUrl"  alt="">
+              </div>
+              <div class="detailword">
+                <div>
+                  <h1 class="tipsesson">错误原因:</h1>
+                  <span class="tipsessonWord">
+                       {{errorDetailList[pictureIndex].errorReason}}
+                      </span>
+                </div>
+                <div class="timeAndteacher">
+                  <h2 class="managertip">{{errorDetailList[pictureIndex].checker}}</h2>
+                  <div class="timeset">{{errorDetailList[pictureIndex].checkDate}}</div>
+                  <div class="timesetImg">
+                    <img src="../../assets/img/pen.png" alt="">
+                  </div>
+                </div>
+              </div>
+              <div  class="nextPrveBtn">
+                <!-- 上一页 -->
+                <div @click="Clickprvebtn" v-show='pictureIndex >0'  class="prvebtn"  style="height:50px;cursor:pointer;">
+                  <img src="../../assets/img/prev_white.png" alt="">
+                </div>
+                   <div v-show='pictureIndex == 0'  class="prvebtn"  style="height:50px">
+                  <img src="../../assets/img/prev_gray.png" alt="">
+                </div>
+                <!-- 张数 -->
+                <div style="color:#ffffff; font-size:25px;margin-top:40px;">
+                  <span>{{pictureIndex + 1}}</span><span style="color:#bbbbbb;">/{{errorDetailList.length}}</span>
+                </div>
+                <!-- 下一页 -->
+                <div @click="ClickNextebtn" v-show='pictureIndex < errorDetailList.length - 1' class="Nextebtn"  style="height:50px;cursor:pointer;">
+                  <img  src="../../assets/img/next_white.png" alt="">
+                </div>
+                <div v-show='pictureIndex == errorDetailList.length - 1'  class="Nextebtn" style="height:50px">
+                  <img  src="../../assets/img/next_gray.png" alt="">
+                </div>
+              </div>
+            </div>
+      </div>
   </div>
 </template>
 <script>
@@ -60,13 +103,16 @@ export default {
   props: {},
   data() {
     return {
+
         // BASE_URL:'https://img.sharingschool.com', //正式环境图片地址
       BASE_URL:'https://xtimg.sharingschool.com/',
-       accessToken:localStorage.getItem("accessToken"), //token
+       accessToken:localStorage.getItem("accessToken"), 
+       NoAllotManagerModel:false,//token
        filters1: {
         pageNo: 1,
         pageSize: 10,
       },
+      pictureIndex:0
     };
   },
   created(){
@@ -75,7 +121,8 @@ export default {
     },
   computed: {
     ...mapGetters([
-      "errorWarningList"
+      "errorWarningList",
+      "errorDetailList",
     ])
   },
   methods: {
@@ -96,18 +143,38 @@ export default {
       pageChange1(val) {
       this.filters1.pageNo = val;
       this.GeterrorWarningLists();
-    },  // 分页
+    },
+    updateIsShowCarouselPictureModal(){
+        this.NoAllotManagerModel = false
+    },
       //报错详情
       groupDetail(str){
-        this.$router.push({
-          path: "/home/ModalCarouselPicture",
-          // query: {
-          //   managerId: str
-          // }
-        })
+        this.pictureIndex = 0
+        this.NoAllotManagerModel = true
+          this.$store.dispatch("GeterrorDetail", {
+        homeworkId: str.homeworkId,
+        accessToken:this.accessToken
+      });
       },
+      // 下一页
+       ClickNextebtn(){
+        this.pictureIndex++
+        console.log( this.pictureIndex)
+        // if (this.pictureIndex >= errorDetailList.list.length){
+        //     return
+        // }
+      },
+       // 上一页
+       Clickprvebtn(){
+        this.pictureIndex--
+          console.log( this.pictureIndex)
+        // if (this.pictureIndex <= errorDetailList.list.length){
+        //     return
+        // }
+      }
   },
   mounted() {
+     console.log( this.pictureIndex)
     this.GeterrorWarningLists();
   }
 };
@@ -115,6 +182,136 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
+.showModel {
+  width: 100%;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  left: 0;
+  background: #000000e7;
+  opacity: 1!important;
+  overflow: hidden!important;
+  color: #fff;
+}
+  .modal-cancel {
+      position: absolute;
+      top: 20px;
+      right: 40px;
+      width: 50px;
+      height: 50px;
+      text-align: center;
+      line-height: 50px;
+      background: #eee;
+      border-radius: 100px;
+      font-size: 16;
+      color:#000000;
+      cursor: pointer;
+    }
+    .detailinfo{
+      position: absolute;
+      left:50%;
+      margin-left:-490px;
+      top: 20px;
+      width: 980px;
+      height: 800px;
+      /* background: #eee; */
+      text-align: center;
+      line-height: 50px;
+      border-radius: 100px;
+      font-size: 16;
+      color:#000000;
+     padding:50px!important;
+    }
+    .detailImg{
+        background: #000000;
+      position: absolute;
+      left:0;
+      top: 20px;
+      width: 450px;
+      height: 550px;
+      text-align: center;
+      line-height: 50px;
+      border-radius: 15px;
+      font-size: 16;
+      color:rgb(0, 0, 0);
+      opacity: 1!important;
+      /* cursor: pointer; */
+    }
+    .detailword{
+        background: #eee;
+      position: absolute;
+      right:0;
+      top: 20px;
+      width: 450px;
+      height: 550px;
+      text-align: center;
+      line-height: 50px;
+      border-radius: 15px;
+      font-size: 16;
+      color:#000000;
+       opacity: 1!important;
+      /* cursor: pointer; */
+    }
+   .detailImg img{
+      width: 450px;
+      height: 550px;
+       border-radius: 15px;
+   }
+   .tipsesson{
+     font-size: 18px; 
+     font-weight: 700;
+       position: absolute;
+      left:10px;
+      top: 20px;
+   }
+   .tipsessonWord{
+     width: 100%;
+     height: 400px;
+      font-size: 14px; 
+     position: absolute;
+      left:10px;
+      top: 50px;
+      padding:0 20px;
+      line-height:20px;
+      text-align:left;
+   }
+   .BgcColor{
+     background-color: #F7FBFC;
+   }
+   .managertip{
+      font-size: 20px; 
+     font-weight: 700;
+   }
+   .timeAndteacher{
+      height: 200px;
+      position: absolute;
+      right:50px;
+      bottom: 50px;
+   }
+   .nextPrveBtn{
+     width: 400px;
+        left:50%;
+      margin-left:-200px;
+      height: 200px;
+      position: absolute;
+      bottom: 50px;
+   }
+   .timeset{
+     color:#5de26c;
+     font-size: 16px;
+   }
+   .Nextebtn{
+     height: 100px;
+      position: absolute;
+      right:50px;
+      bottom: 50px;
+   }
+   .prvebtn{
+     height: 100px;
+       position: absolute;
+      left:50px;
+      bottom: 50px;
+   }
 html,
 body {
   height: 100%;
@@ -134,6 +331,7 @@ ul{
   background-color: #fff;
   margin: 16px;
   padding: 0 !important;
+  margin-left:180px;
   min-height: 980px;
 }
 .table-aside {
@@ -207,6 +405,7 @@ el-table {
   margin: 0 43px;
 }
 .table-head {
+   margin-right:6%;
   color: #999999;
   font-size: 18px;
   text-align: center;
@@ -235,6 +434,7 @@ el-table {
   text-align: center;
 }
 .tr-first {
+  margin-right:2%;
   display: flex;
   justify-content: space-around;
 }

+ 10 - 8
src/pages/super/CheckTeacherAudit.vue

@@ -47,8 +47,8 @@
             label="批改年级"
             header-align="center">
               <template slot-scope="scope">
-                <div v-if="v">
-                    <div v-for="(v, k) of scope.row.gradeList" :key=k>{{v}}</div>
+                <div >
+                    <div v-for="(v, k) of scope.row.gradeList" :key=k v-show="v">{{v}}</div>
                 </div>
               </template>
           </el-table-column>
@@ -56,10 +56,11 @@
             prop=""
             label="可批改时间"
             header-align="center"
+            width="500"
           >
             <template slot-scope="scope">
-                  <div v-if="v">
-                    <el-button type="info" round v-for="(v, k) of scope.row.periodList" :key=k>{{v}}</el-button>
+                  <div>
+                    <el-button type="info" round v-for="(v, k) of scope.row.periodList" :key=k v-show="v">{{v}}</el-button>
                 </div>
             </template>
           </el-table-column>
@@ -244,13 +245,13 @@
           pageNo: this.filters.pageNo,
           pageSize: this.filters.pageSize
         });
-        console.log(this.applyTeacherList)
+        // console.log(this.applyTeacherList)
         this.applyTeacherList.list = (res => {
           const d = []
           for (let i in res) {
             d.push( {
               gradeList: this.gradeBag(i),
-              periodList: res[i].period.split(';'),
+              periodList: res[i].period.split(','),
               imgUrl: res[i].imgUrl,
               name: res[i].name,
               school:res[i].school,
@@ -270,7 +271,8 @@
           operate: this.operate,
           reason:this.filters.textareaDesc
         });
-        this.allShowModel(this.operate)
+        this.allShowModel(this.operate);
+        this.SuperApplyTeacherList()
       },
       //时间封装
       formatDate: function () {
@@ -373,7 +375,7 @@
       sessionStorage.setItem('tabIndex',1);
       this.SuperApplyTeacherList();
 
-      console.log(this.list)
+      // console.log(this.list)
     }
   };
 </script>

+ 74 - 98
src/pages/super/SchoolManager.vue

@@ -33,28 +33,28 @@
                 v-model="filters.OptionsValue"
                 @change="InfoWatch"
                 slot="prepend"
-                placeholder="选年级"
+                placeholder="全部"
                 maxlength="20"
               >
                 <el-option
                   v-for="(item, k) in options"
                   :key="k"
                   :label="item.label"
-                  :value="item.label"
+                  :value="item.str"
                 ></el-option>
               </el-select>
               <el-select
                 v-model="filters.gradesValue"
                 @change="InfoWatch"
                 slot="prepend"
-                placeholder="选科目"
+                placeholder="全部"
                 maxlength="20"
               >
                 <el-option
                   v-for="(item, k) in grades"
                   :key="k"
                   :label="item.label"
-                  :value="item.label"
+                  :value="item.str"
                 ></el-option>
               </el-select>
               <el-button @click="InfoWatch" slot="append" icon="el-icon-search"></el-button>
@@ -84,13 +84,14 @@
               </div>
               <div class="tr" v-for="(v, k) of monitorTeacherList.list" :key="k">
                 <!-- 在线 -->
-                <div v-if="v.status == '1'" class="tr-first">
+                <div v-if="v.status == '1'" class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
                     <i
                       :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
                       @click="dropDown(v,k)"
                     ></i>
-                    <img :src="BASE_URL + v.imgUrl" alt class="table-img" @click="isShow(v,3)">
+                    <img :src="BASE_URL + v.imgUrl" alt class="table-img" v-if="v.imgUrl" @click="isShow(v,3)">
+                    <img src="../../assets/img/user.jpg" alt="" v-if="!v.imgUrl" class="table-img">
                   </div>
                   <div>{{v.name}}</div>
                   <div>{{v.waitCount}}份</div>
@@ -100,7 +101,7 @@
                   <div>在线</div>
                 </div>
                 <!-- 离线 -->
-                <div v-if="v.status == '2'" style="color:#BEBEBE" class="tr-first">
+                <div v-if="v.status == '2'" style="color:#BEBEBE" class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
                     <i
                       :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
@@ -116,7 +117,7 @@
                   <div>离线</div>
                 </div>
                 <!-- 封号 -->
-                <div v-if="v.status == '3'" style="color:#FF6767" class="tr-first">
+                <div v-if="v.status == '3'" style="color:#FF6767" class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
                     <i
                       :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
@@ -134,6 +135,7 @@
                   <div class="tr-setNo" v-if="isDownindex === k && isDown && TeacherHomeworkList.list.length == 0">
                     暂无数据!
                 </div>
+                <!--&& isDown-->
                 <div v-if="isDownindex === k && isDown">
                   <div class="tr-second" v-for="(v, k) of TeacherHomeworkList.list" :key="k">
                     <div class="tr-seconds" style="width:16px;">{{k+1}}</div>
@@ -201,34 +203,7 @@
           </el-col>
           <el-col :span="4" :offset="10">
             <el-input placeholder="请输入老师名字" v-model="filters1.inputValue" class="input-with-select">
-              <!-- <el-select
-                v-model="filters1.OptionsValue"
-                @change="InfoWatchDay"
-                slot="prepend"
-                placeholder="选年级"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in options"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select>
-              <el-select
-                v-model="filters1.gradesValue"
-                @change="InfoWatchDay"
-                slot="prepend"
-                placeholder="选科目"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in grades"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select> -->
+
               <el-button @click="InfoWatchDay" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
@@ -239,7 +214,7 @@
                 v-model="filters1.MaxtimeValue"
                  value-format="yyyy-MM-dd"
                 type="date"
-                placeholder="选择日期"
+                placeholder="filters1.MaxtimeValue"
               ></el-date-picker>
             </div>
           </el-col>
@@ -258,9 +233,10 @@
                 <div>出勤</div>
               </div>
               <div class="tr" v-for="(v, k) of DayTeacherList.list" :key="k">
-                <div class="tr-first">
+                <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
-                    <img :src="BASE_URL + v.imgUrl" alt class="table-img">
+                    <img :src="BASE_URL + v.imgUrl" alt v-if="v.imgUrl" class="table-img">
+                    <img src="../../assets/img/user.jpg" alt="" v-if="!v.imgUrl" class="table-img">
                   </div>
                   <div>{{v.name}}</div>
                      <div v-if="v.wrongCount == 0">{{v.wrongCount}}次</div>
@@ -268,7 +244,7 @@
                   <div class="tr-active">{{v.subject}}</div>
                   <div>{{v.homeworkCount}}</div>
                   <div>{{v.homeworkPicCount}}/张</div>
-                  <div>{{v.avgTime}}</div>
+                  <div  style="width:240px;">{{v.avgTime}}</div>
                    <div>{{v.attendance}}</div>
                     <!-- <div v-if="v.attendance == 正常">{{v.attendance}}</div>
                    <div style="color:#52cc60;" v-if="v.attendance == 未出勤">{{v.attendance}}</div> -->
@@ -303,34 +279,6 @@
           </el-col>
           <el-col :span="4" :offset="10">
             <el-input placeholder="请输入老师名字" v-model="filters2.inputValue" class="input-with-select">
-              <!-- <el-select
-                v-model="filters2.OptionsValue"
-                @change="InfoWatchMoth"
-                slot="prepend"
-                placeholder="选年级"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in options"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select>
-              <el-select
-                v-model="filters2.gradesValue"
-                @change="InfoWatchMoth"
-                slot="prepend"
-                placeholder="选科目"
-                minlength="20"
-              >
-                <el-option
-                  v-for="(item, k) in grades"
-                  :key="k"
-                  :label="item.label"
-                  :value="item.label"
-                ></el-option>
-              </el-select> -->
               <el-button @click="InfoWatchMoth" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
@@ -341,7 +289,7 @@
                 v-model="filters2.MaxtimeValue"
                  type="month"
                  value-format="yyyy-MM"
-                placeholder="选择月"
+                placeholder="filters2.MaxtimeValue"
               ></el-date-picker>
             </div>
           </el-col>
@@ -386,9 +334,10 @@
                 <div>出勤率</div>
               </div>
               <div class="tr" v-for="(v, k) of MothTeacherList.list" :key="k">
-                <div class="tr-first">
+                <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
                   <div>
-                    <img :src="BASE_URL + v.imgUrl" alt class="table-img">
+                    <img :src="BASE_URL + v.imgUrl" alt v-if="v.imgUrl" class="table-img">
+                    <img src="../../assets/img/user.jpg" alt="" v-if="!v.imgUrl" class="table-img">
                   </div>
                   <div>{{v.name}}</div>
                      <div v-if="v.wrongCount == 0">{{v.wrongCount}}次</div>
@@ -398,7 +347,7 @@
                   <div>{{v.homeworkPicCount}}/张</div>
                   <div>{{v.accuracyRate}}</div>
                   <div>{{v.satisfactionDegree}}</div>
-                  <div>{{v.avgTime}}</div>
+                  <div  style="width:240px;">{{v.avgTime}}</div>
                   <div>{{v.attendance}}</div>
                 </div>
               </div>
@@ -803,41 +752,45 @@ export default {
       options: [
         {
           value: "0",
-          label: "一年级"
+          label: "1~2年级",
+          str:'一年级,二年级'
         },
         {
           value: "1",
-          label: "二年级"
+          label: "3~4年级",
+          str:'三年级,四年级'
         },
         {
           value: "2",
-          label: "三年级"
+          label: "5~6年级",
+          str:'五年级,六年级'
         },
         {
           value: "3",
-          label: "四年级"
-        },
-        {
-          value: "4",
-          label: "五年级"
-        },
-        {
-          value: "5",
-          label: "六年级"
+          label: "全部",
+          str:''
         }
       ],
       grades: [
         {
           value: "0",
-          label: "语文"
+          label: "语文",
+          str:"语文"
         },
         {
           value: "1",
-          label: "数学"
+          label: "数学",
+          str:"数学"
         },
         {
           value: "2",
-          label: "英语"
+          label: "英语",
+          str:"数学"
+        },
+        {
+          value: "3",
+          label: "全部",
+          str:""
         }
       ],
       ItemList: [
@@ -868,7 +821,7 @@ export default {
       filters1: {
         //超级管理员的当天数据
         // 排序
-        MaxtimeValue: "",
+        MaxtimeValue:this.dayFormatDate(),
         OptionsValue: "",
         gradesValue: "",
         inputValue: "",
@@ -881,7 +834,7 @@ export default {
       filters2: {
         //超级管理员的当月数据
         // 排序
-        MaxtimeValue: "",
+        MaxtimeValue: this.monthFormatDate(),
         OptionsValue: "",
         gradesValue: "",
         inputValue: "",
@@ -981,7 +934,7 @@ export default {
         grade: this.filters.OptionsValue,
         subject: this.filters.gradesValue,
         teacherName: this.filters.inputValue,
-        maxCreateTime: this.filters.MaxtimeValue,
+        maxCreateTime: "",
         pageNo: this.filters.pageNo,
         pageSize: this.filters.pageSize,
         managerId: this.managerId || ""
@@ -993,8 +946,8 @@ export default {
         grade: this.filters.OptionsValue,
         subject: this.filters.gradesValue,
         teacherName: this.filters1.inputValue,
-        maxCreateTime: this.filters1.MaxtimeValue,
-          oneDay: this.filters1.MaxtimeValue,
+        maxCreateTime: "",
+        oneDay: this.filters1.MaxtimeValue,
         pageNo: this.filters1.pageNo,
         pageSize: this.filters1.pageSize,
         managerId: this.managerId || ""
@@ -1006,8 +959,8 @@ export default {
         grade: this.filters.OptionsValue,
         subject: this.filters.gradesValue,
         teacherName: this.filters2.inputValue,
-        maxCreateTime: this.filters2.MaxtimeValue,
-           oneMonth: this.filters2.MaxtimeValue,
+        maxCreateTime: "",
+        oneMonth: this.filters2.MaxtimeValue,
         pageNo: this.filters2.pageNo,
         pageSize: this.filters2.pageSize,
         managerId: this.managerId || ""
@@ -1385,7 +1338,25 @@ export default {
       this.filters.orderField = sort.prop;
       this.filters.orderAD = sort.order != null ? sort.order : "";
       this.itemListReshow();
-    }
+    },
+    //年月日时间封装
+    dayFormatDate: function () {
+      let date = new Date();
+      let y = date.getFullYear();
+      let MM = date.getMonth() + 1;
+      MM = MM < 10 ? ('0' + MM) : MM;
+      let d = date.getDate();
+      d = d < 10 ? ('0' + d) : d;
+      return y + '-' + MM + '-' + d;
+    },
+    //年月时间封装
+    monthFormatDate: function () {
+      let date = new Date();
+      let y = date.getFullYear();
+      let MM = date.getMonth() + 1;
+      MM = MM < 10 ? ('0' + MM) : MM;
+      return y + '-' + MM;
+    },
     // 获取创建人列表
     // async getUserNameList() {
     //   let {
@@ -1429,13 +1400,14 @@ body {
 .aside {
   background-color: #fff;
   margin-top: 16px;
+  margin-right: 16px;
   padding: 0;
   min-height: 880px;
 }
 .main {
   background-color: #fff;
-  margin: 16px;
   padding: 0 !important;
+  margin-top: 16px;
   min-height: 980px;
 }
 .table-aside {
@@ -1449,6 +1421,9 @@ el-table {
   color: #999999;
   font-size: 18px;
 }
+ .BgcColor{
+     background-color: #F7FBFC;
+   }
 .buttonAppoval{
   display:inline-block;
 }
@@ -1476,7 +1451,7 @@ el-table {
 }
 .el-select {
   width: 100px;
-  margin: 0 5px;
+  margin: -10px!important;
 }
 .input-with-select .el-input-group__prepend {
   background-color: #fff;
@@ -1486,7 +1461,8 @@ el-table {
   color: #fff;
 }
 .el-input__inner {
-  height: 32px;
+  height: 45px;
+  /*margin: 0 5px !important;*/
 }
 
 .table-img {

+ 1 - 8
src/router/index.js

@@ -11,7 +11,6 @@ import Error404 from "@/pages/Error404";
 import SchoolManager from "@/pages/home/SchoolManager";
 import TeacherApporval from "@/pages/home/TeacherApporval";
 import TeacherPay from "@/pages/home/TeacherPay";
-import ModalCarouselPicture from "@/pages/home/ModalCarouselPicture";
 
 // 超级管理员
 import CheckTeacherAudit from "@/pages/Super/CheckTeacherAudit";
@@ -119,14 +118,8 @@ export const constantRouterMap =
            path: "TeacherPay",
            name: "TeacherPay",
            component: TeacherPay,
-           meta: { title: '教师薪酬管理', roles: ['2'] }
+           meta: { title: '报错详情', roles: ['2'] }
          },
-         {
-          path: "ModalCarouselPicture",
-          name: "ModalCarouselPicture",
-          component: ModalCarouselPicture,
-          meta: { title: '报错详情', roles: ['2'] }
-        },
        ]
      },
     //  在线批改老师角色路由

+ 2 - 0
src/store/getters.js

@@ -28,5 +28,7 @@ const getters = {
   SuperBeforetoTeacherAllotCode :state => state.user.SuperBeforetoTeacherAllotCode,
   BeforetoTeacherstatues :state => state.user.BeforetoTeacherstatues,
   errorWarningList :state => state.user.errorWarningList,
+  errorDetailList :state => state.user.errorDetailList || {},
+  pictureIndex :state => state.user.pictureIndex,
 }
 export default getters

+ 26 - 4
src/store/modules/user.js

@@ -3,7 +3,7 @@ import { GET_UUIONID_TOKEN,GET_TOKEN,GetInfo,InfoWatch,InfoWatchDay,
   TeacherAllot,UnallotHomeworkList,GetTeacherDetail,
   GetStudentDetail,GetManagerDetail,Downgrade,SuperManagerList,
   SuperApplyTeacherList,ApplyOperate,GetTeacherSalaryList,DealCorrectTeacher,
-  GetAllotManagerList,AllotTeacherToManager,HomeworkRecoveryList,errorWarning
+  GetAllotManagerList,AllotTeacherToManager,HomeworkRecoveryList,errorWarning,errorDetail
   } from '@/api'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import axios from '@/axios'
@@ -33,7 +33,9 @@ const user = {
     homeworkRecoveryList:[],
     BeforetoTeacherAllotCode:"",
     BeforetoTeacherstatues:"",
-    errorWarningList:[]
+    errorWarningList:[],
+    errorDetailList:[],
+    pictureIndex:0,
   },
 
   mutations: {
@@ -109,7 +111,14 @@ const user = {
     SET_ERROR_WARING:(state,errorWarningList) => {
       state.errorWarningList = errorWarningList
     },
-    
+    SET_ERROR_DETAIL:(state,errorDetailList) => {
+      console.log(errorDetailList)
+      state.errorDetailList = errorDetailList
+    },
+    SET_ERROR_INDEX:(state,pictureIndex) => {
+      console.log(pictureIndex)
+      state.pictureIndex = pictureIndex
+    },
   },
 
   actions: {
@@ -369,7 +378,7 @@ const user = {
                   const data = response || {}
                   if (data.code === '999'){
                     commit('SET_GET_SUCCESS_CODE',new Date());
-                    Message.success('分配成功')
+                    // Message.success('分配成功')
                   }
                 }).catch(error => {
                   reject(error)
@@ -413,6 +422,19 @@ const user = {
           })
         })
       },
+        // 报错详情
+        GeterrorDetail({ commit, state }, data) {
+          return new Promise((resolve, reject) => {
+            axios.post(errorDetail, data).then(response => {
+              const data = response.data.list || {}
+              commit('SET_ERROR_DETAIL', data);
+               commit('SET_ERROR_INDEX', 0);
+              resolve(response)
+            }).catch(error => {
+              reject(error)
+            })
+          })
+        },
     // 处理在线批改老师(解封)
     OpenIdTeacher({ commit, state }, data) {
       return new Promise((resolve, reject) => {