Forráskód Böngészése

创建分支提交最新代码

TheLittlePrince 6 éve
szülő
commit
f604936bda

+ 5 - 4
src/ImgConfig/index.js

@@ -4,11 +4,12 @@ if (process.env.NODE_ENV === 'development') {
     IMG_BASE_URL = 'https://xtimg.sharingschool.com/' //测试环境图片地址
     APPOR_BASE_URL = 'https://xtkmt.sharingschool.com/kmt/index.html#/' //测试环境作业批改地址
 } else {
-    // IMG_BASE_URL = 'https://img.sharingschool.com'; //正式环境图片地址;
-    IMG_BASE_URL = 'https://xtimg.sharingschool.com' //实习,测试环境图片地址;
+    IMG_BASE_URL = 'https://img.sharingschool.com'; //正式环境图片地址;
+    // IMG_BASE_URL = 'https://xtimg.sharingschool.com' //实习,测试环境图片地址;
 
-    APPOR_BASE_URL = 'https://xtkmt.sharingschool.com/kmt/index.html#/' //测试环境作业批改地址
-    // APPOR_BASE_URL = 'https://kmt.sharingschool.com/aijia/kmt/index.html#/'; //正式环境作业批改地址地址;
+    // APPOR_BASE_URL = 'https://xtkmt.sharingschool.com/kmt/index.html#/' //测试环境作业批改地址
+    APPOR_BASE_URL = 'https://kmt.sharingschool.com/aijia/kmt/index.html#/'; //正式环境作业批改地址地址;
+    // APPOR_BASE_URL = 'https://aikmt.sharingschool.com/kmt/index.html#/'; //oss正式环境作业批改地址地址;
     // APPOR_BASE_URL = 'http://sxkmt.sharingschool.com/kmt/index.html#/' //实习环境作业批改地址
 }
 export {

+ 2 - 1
src/api/index.js

@@ -2,7 +2,8 @@ import { BASE_URL } from '@/config'
 
 const urlFn = v => BASE_URL + v
 // 微信登录
-const GET_TOKEN = urlFn('/api/kmt/login/wxlogin/scanlogin')
+// const GET_TOKEN = urlFn('/api/kmt/login/wxlogin/scanlogin')
+const GET_TOKEN = urlFn('/api/kmt/login/wxlogin/newscanlogin')
 // Uniconid登录
 const GET_UUIONID_TOKEN = urlFn('/api/kmt/login/unionidlogin')
 // 获取用户信息

+ 1 - 0
src/assets/css/element_amend.css

@@ -4,6 +4,7 @@ body {
   overflow-x: hidden;
   overflow-y: auto;
   font-size: 16px!important;
+  min-width: 1040px;
 }
 
 /* for Chrome */

+ 0 - 65
src/components/DiaogProgress.vue

@@ -1,65 +0,0 @@
-<template>
-  <div class="divBG">
-    <div class="showDiv">
-      <i class="el-icon-loading" style="font-size:32px;"/>
-      <br/>
-      <br/>
-      <el-progress  :percentage="percentage" :text-inside="true" :stroke-width="16"></el-progress>
-    </div>
-  </div>
-</template>
-<script>
-export default {
-  name: "DiaogProgress",
-  components: {},
-  props: { visible: Boolean },
-  data() {
-    return {
-      percentage: 0
-    };
-  },
-  watch: {},
-  computed: {
-    myVisible: {
-      get() {
-        return visible;
-      },
-      set(val) {
-        this.$emit("update:visible", val);
-      }
-    }
-  },
-  methods: {},
-  mounted() {
-    const self = this;
-    self.chartsInterval = window.setInterval(async function() {
-      self.percentage += 2;
-      if (self.percentage > 99) {
-        window.clearInterval(self.chartsInterval);
-      }
-    }, 200);
-  }
-};
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-.divBG {
-  vertical-align: middle;
-  text-align: center;
-  background: rgba(128, 128, 128, 0.8);
-  position: fixed;
-  left: 0px;
-  top: 0px;
-  width: 100%;
-  height: 100%;
-  /* display: none;  */
-  z-index: 20;
-}
-.showDiv {
-  padding-top: 25%;
-  height: 200px;
-  width: 500px;
-  margin: auto;
-}
-</style>

+ 0 - 72
src/components/Menu2.vue

@@ -1,72 +0,0 @@
-<template>
-  <el-row class="page_header"> 
-    <el-col :span="1" style="margin: 10px 0px 0px 5px;font-size:10px;width:20px"><img src="../assets/iconfont/4.png"/></el-col>
-    <el-col :span="1" style="margin: 12px 0px 0px 5px;font-size:10px"><p>当前位置</p></el-col>
-    <el-col :span="7">
-      <el-breadcrumb separator-class="el-icon-arrow-right">
-        <el-breadcrumb-item style="margin-top: 13px;font-size:10px;color: #666666;text-decoration: underline;" :to="item.path" v-for="item in $route.matched.slice(1)" :key="item.path">{{item.name}}</el-breadcrumb-item>
-      </el-breadcrumb>
-    </el-col>
-      <el-row :gutter="1" type="flex" class="row-bg" justify="end">
-        <el-col :span="4" v-for="item in pageItems" :key="item.path" >
-          <el-button :disabled="item.disabled" :class="{active:$route.matched[2] && $route.matched[2].name==item.name,menu2:true}"
-          @click.native="routerReplace(item.path)">{{item.name}}</el-button>
-        </el-col>
-      </el-row>
-  </el-row>
-</template>
-
-<script>
-export default {
-  name: "Menu2",
-  props: {
-    pageItems: Array
-  },
-  methods: {
-    routerReplace(path) {
-      this.$router.replace(path);
-    }
-  }
-};
-</script>
-<style>
-</style>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-.page_header {
-  min-height: 36px;
-  margin-top: 18px;
-  padding: 0px 5px 0px 5px;
-  position: relative;
-  background-color: #fafafa;
-}
-.menu2 {
-  font-family: serif;
-  /* opacity: 0.8;  */
-  border: none;
-  width: 100%;
-  color: #999999;
-  font-size: 10px;
-  background-color: #d9d9d9;
-  border-radius: 0%;
-}
-.menu2.active {
-  background: #a6a6a6;
-  color: #333333;
-}
-.menu2.el-button.is-disabled,
-.menu2.el-button.is-disabled:hover {
-  background-color: #d9d9d9;
-}
-.menu2.hover {
-  background: #a6a6a6;
-  color: #333333;
-}
-.el-breadcrumb__inner,
-.el-breadcrumb__inner a {
-  font-weight: 0;
-  -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
-  transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-</style>

+ 1 - 1
src/components/MenuComponent.vue

@@ -15,7 +15,7 @@
       <span class="lineStyle" :class="{navactive:index == checkindex,menu_item:true}">{{item.name}}</span>
     </el-col>
 
-    <el-col :span="4" :offset="9">
+    <el-col :span="4" :offset="10">
       <div class="login">   
         <img  class="userstyle"  :src="BASE_URL + avatar" alt="">
         <!-- <img class="userstyle" src="../assets/img/user.jpg"> -->

+ 0 - 186
src/components/NavMenuComponent.vue

@@ -1,186 +0,0 @@
-<template>
-  <div>
-    <el-row class="tac">
-      <el-col :span="24" id="taclist">
-        <el-menu
-          class="el-menu-vertical-demo"
-          active-text-color="#29A88D"
-          background-color="#FFFFFF"
-          active-background-color="#52CC60"
-          text-color="#333333"
-          @open="handleOpen"
-          @close="handleClose"
-        >
-          <div v-for='(item, y) in menuList' :key='y'>
-            <el-submenu  :index="item.name" v-if="item.name">
-              <template slot="title">
-                <span>{{format(item.time,'MM月dd日')}}</span>
-                <span>{{item.name}}</span>
-              </template>
-              <el-menu-item
-              v-for='(val, x) in item.list' :key='x'
-              :index="val.homeworkId"
-                @click="HomeWorkClick(val,y,x)"
-              >
-                <template slot="title">
-                  <span>{{val.name}}</span>
-                </template>
-              </el-menu-item>
-            </el-submenu>
-            <el-menu-item  :index="item.name" v-else>
-              <template slot="title">
-                <span>{{item.name}}</span>
-              </template>
-            </el-menu-item>
-          </div>
-        </el-menu>
-      </el-col>
-      <el-col>
-        <ul class="sdudentSlist" @click="listShow">
-          <li>学</li>
-          <li>生</li>
-          <li>列</li>
-          <li>表</li>
-          <li>>></li>
-        </ul>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapGetters, mapActions } from "vuex";
-export default {
-  data() {
-    return {
-      openeds: ["1"],
-      navHeight: 1000,
-      menuList: [],
-      dataTime: ""
-    };
-  },
-  created() {
-    this.NavListShow();
-    // this.HomeWorkClick()
-  },
-  computed: {
-    ...mapGetters(["getStudentsList"])
-  },
-  methods: {
-    ...mapActions(["setSetStudentsList","SetSAlltudentsList","setActSubjectIndex","setActVipIndex","setActImageIndex"]),
-    listShow() {
-      $("#taclist").slideToggle();
-    },
-    /**
-     * 格式化日期
-     * @param str 日期字符串 2019-08-03 或 2019-08-03 10:10:10
-     * @param fmt
-     * @returns {*}
-     */
-    format(str, fmt) {
-      //  debugger
-      let date = new Date(str.replace(/-/g, "/"));
-      let o = {
-        "M+": date.getMonth() + 1, //月份
-        "d+": date.getDate(), //日
-        "h+": date.getHours(), //小时
-        "m+": date.getMinutes(), //分
-        "s+": date.getSeconds(), //秒
-        "q+": Math.floor((date.getMonth() + 3) / 3), //季度
-        S: date.getMilliseconds() //毫秒
-      };
-      if (/(y+)/.test(fmt)) {
-        fmt = fmt.replace(
-          RegExp.$1,
-          (date.getFullYear() + "").substr(4 - RegExp.$1.length)
-        );
-      }
-      for (let k in o) {
-        if (new RegExp("(" + k + ")").test(fmt)) {
-          fmt = fmt.replace(
-            RegExp.$1,
-            RegExp.$1.length === 1
-              ? o[k]
-              : ("00" + o[k]).substr(("" + o[k]).length)
-          );
-        }
-      }
-      return fmt;
-    },
-    async NavListShow() {
-      console.log("哈哈哈哈哈哈哈哈");
-      let filter = {
-        // accessToken: "D4FA4AB96F7E402FAE406B59153BDEC7"
-      };
-      let { data } = await this.$dao.jobDao.navhomeWorklist(filter);
-      let code = data.code;
-      let menuList = data.data.list;
-      if (code === "999") {
-        this.menuList = menuList;
-        this.SetSAlltudentsList(menuList)
-        this.setSetStudentsList(menuList[0].list[0]);
-        // debugger
-      }
-      console.log(data);
-    },
-    // 一级点击
-    HomeWorkClick(val,actSubjectIndex,actVipIndex) {
-      this.$util.messageMethod("success", "前去作业预览");
-      this.setActSubjectIndex(actSubjectIndex)
-      this.setActVipIndex(actVipIndex)
-      this.setActImageIndex(0)
-      // debugger
-      this.$router.push({
-        path: "/home/homeWork_approval/HomeWorkShow"
-      });
-      this.setSetStudentsList(val);
-    },
-    NavClick(item) {
-      console.log(item.index);
-    },
-    handleOpen(key, keyPath) {
-      console.log(key, keyPath);
-    },
-    handleClose(key, keyPath) {
-      console.log(key, keyPath);
-    }
-  },
-  mounted() {}
-};
-</script>
-<style scoped>
-.el-menu-item:hover {
-  outline: 0 !important;
-  color: #52cc60 !important;
-}
-.el-menu-item.is-active {
-  color: #fff !important;
-  background: #52cc60 !important;
-}
-.el-submenu__title:hover {
-  outline: 0 !important;
-  color: #fff !important;
-  background: #52cc60 !important;
-}
-.tac {
-  border: 1px solid #e5e7f1;
-  border-radius: 15px !important;
-  margin-top: 10px;
-  position: relative;
-  /* margin-right:10px; */
-}
-.el-submenu__title {
-  border-top: 2px solid #fafafa !important;
-  background: #52cc60 !important;
-}
-.sdudentSlist {
-  background-color: #52cc60;
-  color: #ffff;
-  text-align: center;
-  border-radius: 0px 10px 10px 0px;
-  cursor: pointer;
-  position: absolute;
-  top: 0;
-  /* right:0; */
-}
-</style>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1151 - 0
src/components/NextMonthList.vue


+ 701 - 0
src/components/SeacherHomewrokStatus.vue

@@ -0,0 +1,701 @@
+<!-- 活动解析 -->
+<template>
+  <div>
+    <!-- table 表格 -->
+    <el-row :gutter="20" class="main-header">
+      <el-col :span="8" :offset="1">
+        <div
+          @click="handApor()"
+          :class="{Apporvalactive:Activeindex == false,ApporStyles:true}"
+        >批改老师</div>
+        <div
+          @click="AutoApor()"
+          :class="{Apporvalactive:Activeindex == true,ApporStyles:true}"
+        >匹配知识点老师</div>
+      </el-col>
+      <el-col :span="10" :offset="2">
+        <div class="teach-block">
+          <div class="miniorteach-Allot">
+            <input
+              type="text"
+              placeholder="请输入学生姓名"
+              v-model="filters.inputValue"
+              class="miniorinput-with-Allot"
+            />
+            <span
+              v-if="this.Activeindex == false"
+              @click="UnallotHomework()"
+              class="miinorSeachIcon el-icon-search"
+            ></span>
+            <span
+              v-if="this.Activeindex == true"
+              @click="unmatchHomework()"
+              class="miinorSeachIcon el-icon-search"
+            ></span>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+    <el-table
+      :data="UnallotHomeworkInfo.list"
+      :header-cell-class-name="tableheaderClassName"
+      :header-cell-style="{
+          'background-color': '#F6F7FB',
+          'color': '#393939',
+          'font-size': '16px'
+           }"
+      size="medium"
+      border
+    >
+      <el-table-column label="学生" header-align="center">
+        <template slot-scope="scope">
+          <div class="scope-list">
+            <img :src="BASE_URL+scope.row.imgUrl" alt class="table-img" v-if="scope.row.imgUrl" />
+            <img src="../assets/img/user.jpg" alt v-if="!scope.row.imgUrl" class="table-img" />
+            <span class="scope-name">{{scope.row.name}}</span>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="spendTime" label="等待时长" header-align="center"></el-table-column>
+      <el-table-column prop="subject" label="科目" header-align="center"></el-table-column>
+      <el-table-column prop="teacherName" label="未批改老师" header-align="center"></el-table-column>
+      <el-table-column prop="status" label header-align="left" width="200">
+        <template slot-scope="scope">
+          <div class="UpTeacherIDiNfo" @click="isShow(1,scope.row)">
+            <span>去分配</span>
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页显示 -->
+    <el-pagination
+      background
+      @size-change="handleSizeChange"
+      @current-change="pageChange"
+      :page-sizes="[10, 20, 30, 40]"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="parseInt(UnallotHomeworkInfo.pages)"
+    ></el-pagination>
+      <!--可分配老师-->
+      <!--可分配老师-->
+    <div class="showModel" @click="allShowModel(1)" v-if="hiddenModel"></div>
+    <div class="model" style="width:50%; top:5%;" v-if="hiddenModel">
+      <div class="model-text">
+        <div class="model-text-head">
+          <div>可分配老师</div>
+          <div class="teach-Allot">
+            <input
+              type="text"
+              placeholder="请输入老师名字"
+              v-model="inputValueAllot"
+              class="input-with-Allot"
+            />
+            <span @click="SearchvalueTeacherAllot()" class="SeachIcon el-icon-search"></span>
+          </div>
+          <div>{{allotList.Allotgarde}}{{allotList.Allotsubjct}}</div>
+        </div>
+        <div v-show="this.inputValueAllot =='' &&TeacherAllotList.list.length ==0">
+          <img src="../assets/img/NoTeacherAllot (1).png" alt />
+          <div style="display:block; margin-top:20px;">暂无可分配老师!</div>
+        </div>
+        <div v-show="this.inputValueAllot !=='' && TeacherAllotList.list.length ==0">
+          <img src="../assets/img/SEARCH (1).png" alt />
+          <div style="display:block; margin-top:20px;">搜索不到老师!</div>
+        </div>
+        <div
+          class="model-itemss"
+          style="margin:10px;"
+          v-for="(v, k) in TeacherAllotList.list"
+          :key="k"
+        >
+          <div class="model-items-left">
+            <div class="model-items-left-top">
+              <div>
+                <img
+                  :src="BASE_URL + v.imgUrl"
+                  v-if="v.imgUrl"
+                  alt
+                  class="model-items-left-top-img"
+                />
+                <img
+                  src="../assets/img/attt.png"
+                  v-if="!v.imgUrl"
+                  alt
+                  class="model-items-left-top-img"
+                />
+                <div class="teach-style">
+                  <div class="teach-style-name">{{v.name}}</div>
+                  <div class="model-items-left-top-number">等待张数:{{v.waitCount}}</div>
+                </div>
+              </div>
+              <div>
+                <el-button v-show="v.type && v.type === 1" disabled type="info">已分配</el-button>
+                <el-button
+                  v-show="!v.type || v.type !== 1"
+                  @click="GOtoTeacherAllot(v,k)"
+                  type="success"
+                >分配</el-button>
+              </div>
+            </div>
+          </div>
+        </div>
+        <el-pagination
+          background
+          @size-change="handleSizeChange4"
+          @current-change="pageChange4"
+          :page-sizes="[10]"
+          layout="total, prev, pager, next"
+          :total="parseInt(TeacherAllotList.pages)"
+          :hide-on-single-page="true"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import { mapGetters, mapActions } from "vuex";
+import { IMG_BASE_URL } from "@/ImgConfig";
+export default {
+  components: {},
+  name: "actvResolveLabel",
+  props: {},
+  data() {
+    return {
+      BASE_URL: IMG_BASE_URL,
+      hiddenModel: false,
+      inputValueAllot:"",
+      Activeindex: "",
+      TeacherType:8,
+      managerId:'',
+      filters: {
+        inputValue: "",
+        pageNo: 1,
+        pageSize: 10
+      },
+      homeworkLIst: {
+        pageNo: 1,
+        pageSize: 10,
+        teacherId: ""
+      },
+      allotList:{
+        pageNo: 1,
+        pageSize: 10,
+        homeworkId:'',
+          Allotgarde:'',
+        Allotsubjct:'',
+      }
+    };
+  },
+  created() {},
+  watch: {
+          BeforetoTeacherstatues(val, oldVal) {
+      //普通的watch监听
+      // 查看老师批改作业列表
+    //   this.$store.dispatch("TeacherHomeworkList", {
+    //     teacherId: this.homeworkLIst.teacherId,
+    //     maxCreateTime: this.filters.MaxtimeValue,
+    //     pageNo: this.homeworkLIst.pageNo,
+    //     pageSize: this.homeworkLIst.pageSize
+    //   });
+        if (this.Activeindex == false){
+            this.UnallotHomework();
+      }
+       if (this.Activeindex == true){
+          this.unmatchHomework()
+      }
+    },
+  },
+  computed: {
+    ...mapGetters([
+        "BeforetoTeacherstatues",
+      "UnallotHomeworkInfo",
+      "TeacherAllotList"
+    ])
+  },
+  methods: {
+    ...mapActions(["setUser"]),
+    isShow(str, res) {
+      let _this = this;
+      if (str == 1) {
+          _this.hiddenModel = true
+        _this.SearchTeacherAllot(res);
+      }
+    },
+    //关闭弹框
+      allShowModel(str) {
+        let _this = this;
+        if (str == 1){
+          _this.hiddenModel = false;
+        }
+      },
+    // 手动批改
+    handApor() {
+      this.Activeindex = false;
+      this.TeacherType = 8
+      this.filters.inputValue = ''
+      this.UnallotHomework()
+    },
+    // 匹配知识点老师
+    AutoApor() {
+      this.Activeindex = true;
+         this.TeacherType = 13
+          this.filters.inputValue = ''
+         this.unmatchHomework()
+    },
+    // 未批改作业列表列表
+    async UnallotHomework() {
+      this.$store.dispatch("UnallotHomeworkList", {
+        maxCreateTime: this.formatDate(),
+        pageNo: this.homeworkLIst.pageNo,
+        pageSize: this.homeworkLIst.pageSize,
+        managerId: this.managerId,
+        value: this.filters.inputValue
+      });
+    },
+     // 未匹配作业列表列表
+    async unmatchHomework() {
+      this.$store.dispatch("UnmatchHomeworkList", {
+         maxCreateTime: this.formatDate(),
+        pageNo: this.homeworkLIst.pageNo,
+        pageSize: this.homeworkLIst.pageSize,
+        managerId: this.managerId,
+        value: this.filters.inputValue
+      });
+    },
+        // 搜索可分配老师列表
+    async SearchvalueTeacherAllot() {
+      this.$store.dispatch("TeacherAllotList", {
+        grade: this.allotList.Allotgarde,
+        subject: this.allotList.Allotsubjct,
+        homeworkId: this.allotList.homeworkId,
+        originTeacherId: this.homeworkLIst.teacherId,
+       maxCreateTime: this.formatDate(),
+        pageNo: this.allotList.pageNo,
+        pageSize: this.allotList.pageSize,
+        name: this.inputValueAllot,
+        type: this.TeacherType
+      });
+    },
+    // 可分配老师列表
+    async SearchTeacherAllot(v) {
+    this.homeworkLIst.teacherId = v.teacherId;
+    this.allotList.homeworkId = v.homeworkId;
+    this.allotList.Allotgarde = v.grade;
+    this.allotList.Allotsubjct = v.subject;
+      this.$store.dispatch("TeacherAllotList", {
+        grade: v.grade,
+        subject: v.subject,
+        homeworkId: v.homeworkId,
+        originTeacherId: v.teacherId,
+        maxCreateTime: this.formatDate(),
+        pageNo: this.allotList.pageNo,
+        pageSize: this.allotList.pageSize,
+        name: this.inputValueAllot,
+        type: this.TeacherType
+      });
+    },
+      // 分配老师
+    async GOtoTeacherAllot(v, k) {
+      this.$store.dispatch("toTeacherAllot", {
+        teacherId: v.teacherId,
+        homeworkId: this.allotList.homeworkId,
+        originTeacherId: this.homeworkLIst.teacherId,
+        type: this.TeacherType
+      });
+      v.type = 1;
+      this.$set(this.TeacherAllotList.list, k, v);
+      this.hiddenModel = false;
+    },
+    //时间封装
+    formatDate: 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;
+      let h = date.getHours();
+      h = h < 10 ? "0" + h : h;
+      let m = date.getMinutes();
+      m = m < 10 ? "0" + m : m;
+      let s = date.getSeconds();
+      s = s < 10 ? "0" + s : s;
+      return y + "-" + MM + "-" + d + " " + h + ":" + m + ":" + s;
+    },
+    // 表格头部样式
+    tableheaderClassName({ row, rowIndex }) {
+      return "table-head-th";
+    },
+    cellStyle: function(row, column, rowIndex, columnIndex) {
+      console.log(row);
+      if (row.column.label === "小组管理员") {
+        return "font-size:30px";
+      } else {
+        return "";
+      }
+    },
+    // 分页
+    pageChange(val) {
+      this.filters.pageNo = val;
+      if (this.Activeindex == false){
+            this.UnallotHomework();
+      }
+       if (this.Activeindex == true){
+          this.unmatchHomework()
+      }
+    },
+    handleSizeChange(val) {
+      this.filters.pageSize = val;
+      if (this.Activeindex == false){
+            this.UnallotHomework();
+      }
+       if (this.Activeindex == true){
+          this.unmatchHomework()
+      }
+    },
+       handleSizeChange4(val) {
+      this.allotList.pageSize = val;
+      this.SearchvalueTeacherAllot();
+    },
+     pageChange4(val) {
+      this.allotList.pageNo = val;
+      this.SearchvalueTeacherAllot();
+    },
+  },
+  mounted() {
+    this.UnallotHomework();
+  }
+};
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+.main {
+  background-color: #fff;
+  margin-top: 16px;
+  padding: 0 !important;
+  border: 1px solid #e1e1e1;
+  min-height: 980px;
+}
+el-table {
+  color: #999999;
+  font-size: 18px;
+}
+.aside {
+  background-color: #fff;
+  margin-top: 16px;
+  margin-right: 16px;
+  padding: 0;
+  min-height: 880px;
+}
+.main-items {
+  color: #393939;
+  /*text-align: center;*/
+  line-height: 80px;
+}
+.main-header {
+  position: relative;
+}
+.input-with-select .el-input-group__prepend {
+  background-color: #fff;
+}
+.el-pagination.is-background .el-pager li:not(.disabled).active {
+  background-color: #52cc60 !important;
+  color: #fff;
+}
+.table-img {
+  width: 36px;
+  height: 36px;
+  border-radius: 6px;
+}
+.active {
+  background-color: #52cc60;
+  color: #fff !important;
+}
+.ApporStyles {
+  display: inline-block;
+  width: 200px;
+  height: 40px;
+  line-height: 40px;
+  background-color: #fff;
+  border-radius: 20px;
+  font-size: 16px;
+  color: #7c819d;
+  cursor: pointer;
+  text-align: center;
+}
+.Apporvalactive {
+  background-color: #52cc60 !important;
+  color: #fff !important;
+}
+.scope-name {
+  margin-left: 5%;
+  color: #393939;
+  font-size: 13px;
+}
+.grade-name {
+  color: #393939;
+  font-size: 16px;
+  margin: 0 10px;
+}
+
+.scope-list {
+  margin-left: 5%;
+  text-align: left;
+}
+.miniorinput-with-Allot {
+  border: #b6b6b6;
+  border-radius: 5px;
+  height: 40px;
+  width: 280px;
+  font-size: 8px;
+  color: #b6b6b6;
+  text-align: left;
+  line-height: 40px;
+  background: #f1f2f4;
+  padding: 0 10px;
+  float: left;
+  outline: none !important;
+  box-shadow: none;
+}
+.miniorteach-Allot {
+  float: left;
+  width: 280px;
+  position: relative;
+  height: 40px;
+  top: 15px;
+}
+.miinorSeachIcon {
+  position: absolute;
+  font-size: 20px;
+  color: #b6b6b6;
+  right: 5%;
+  margin-top: 12px;
+  cursor: pointer;
+}
+.noBorderBottom {
+  border-bottom: none;
+}
+.el-table .table-head-th {
+  background-color: #f6f7fb;
+  font-size: 16px !important;
+  color: #393939;
+}
+.closeTeacherID {
+  margin-right: 50px;
+  display: inline-block;
+  height: 40px;
+  width: 100px;
+  color: #f56c6c;
+  background: #fef0f0;
+  border-color: #fbc4c4;
+  border-radius: 20px;
+  font-size: 14px;
+  line-height: 40px;
+  cursor: pointer;
+  border: 1px solid;
+}
+.closeTeacherID:hover {
+  color: #fff;
+  background-color: #f56c6c;
+  border-color: #f56c6c;
+}
+.UpTeacherTeam {
+  margin-right: 10px;
+  display: inline-block;
+  height: 40px;
+  width: 120px;
+  color: #67c23a;
+  background: #f0f9eb;
+  border-color: #c2e7b0;
+  float: left !important;
+  /* border-radius: 20px; */
+  font-size: 14px;
+  line-height: 40px;
+  cursor: pointer;
+  border: 1px solid;
+  text-align: center;
+}
+.UpTeacherTeam:hover {
+  color: #fff;
+  background-color: #67c23a;
+  border-color: #67c23a;
+}
+.UpTeacherID {
+  display: inline-block;
+  height: 40px;
+  width: 100px;
+  color: #67c23a;
+  background: #f0f9eb;
+  border-color: #c2e7b0;
+  border-radius: 20px;
+  font-size: 14px;
+  line-height: 40px;
+  cursor: pointer;
+  border: 1px solid;
+}
+.UpTeacherID:hover {
+  color: #fff;
+  background-color: #67c23a;
+  border-color: #67c23a;
+}
+.el-pagination {
+    margin-top:30px;
+  white-space: nowrap;
+  padding: 2px 5px;
+  color: #303133;
+  font-weight: 700;
+  text-align: center;
+}
+.UpTeacherIDiNfo {
+  float: left !important;
+  display: inline-block;
+  height: 40px;
+  width: 150px;
+  color: #fff;
+  background-color: #67c23a;
+  border-color: #67c23a;
+  /* border-radius: 20px; */
+  font-size: 14px;
+  line-height: 40px;
+  cursor: pointer;
+  border: 1px solid;
+  text-align: center;
+}
+.UpTeacherIDiNfo:hover {
+  color: #67c23a;
+  background: #f0f9eb;
+  border-color: #c2e7b0;
+}
+.buttonAppoval {
+  display: inline-block;
+}
+.TeacherApporTime {
+  text-align: center;
+  display: inline-block;
+  height: 30px;
+  width: 60px;
+  color: #706f6f;
+  background: #b6b6b6;
+  border-color: #929492;
+  border-radius: 20px;
+  font-size: 14px;
+  line-height: 30px;
+  cursor: pointer;
+  margin: 0 5px;
+}
+.TeacherApporTime:hover {
+  color: #fff;
+  background-color: #909399;
+  border-color: #909399;
+}
+.showModel {
+  width: 100%;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  left: 0;
+  background: #000000;
+  opacity: 0.2;
+  overflow: hidden;
+  z-index: 1000;
+  color: #fff;
+}
+.model {
+  z-index: 10000;
+  width: 60%;
+  height: auto;
+  position: fixed;
+  top: 15%;
+  left: 30%;
+  margin: auto;
+  background: #fff;
+  border-radius: 10px;
+  text-align: center;
+  min-width: 450px !important;
+  padding: 20px;
+}
+.model-text {
+  background: rgba(255, 255, 255, 1);
+  border-radius: 10px;
+}
+.model-text-head {
+    padding:0!important;
+  display: flex;
+  color: #393939;
+  font-size: 24px;
+  justify-content: space-between;
+}
+.model-items-left-top-number {
+  color: #7e7e7e;
+  font-size: 18px;
+  margin-left: 10px;
+}
+.model-items-left {
+  width: 100%;
+  color: #393939;
+  font-size: 24px;
+}
+.model-items-left-top {
+  display: flex;
+  justify-content: space-between;
+}
+.model-itemss {
+  padding: 10px 0;
+  float:left;
+  /*display: flex;*/
+  /*justify-content: space-between;*/
+  /*display: inline-block;*/
+  width: 40%;
+  display: inline-block;
+}
+.model-items-left-top-img {
+  width: 68px;
+  height: 68px;
+  border-radius: 8px;
+  position: relative;
+  bottom: 25px;
+}
+.teach-style {
+  display: inline-block;
+  text-align: left;
+}
+.teach-style-name {
+  font-size: 24px;
+  margin-left: 10px;
+  height: 50px;
+}
+.btnClass{
+    height: 50px;
+    margin:20px;
+}
+.teach-Allot {
+ 
+  width: 350px;
+  position: relative;
+}
+.SeachIcon {
+  position: absolute;
+  font-size: 16px;
+  color: #b6b6b6;
+  right: 25%;
+  top: 35%;
+  cursor: pointer;
+}
+.input-with-Allot {
+    margin-top:20px;
+  border: #b6b6b6;
+  border-radius: 15px;
+  height: 30px;
+  width: 280px;
+  font-size: 8px;
+  color: #b6b6b6;
+  text-align: left;
+  line-height: 30px;
+  background: #f1f2f4;
+  padding: 0 10px;
+  float: left;
+  outline: none !important;
+  box-shadow: none;
+}
+</style>

+ 65 - 54
src/components/SuperComponent.vue

@@ -1,41 +1,44 @@
 <template>
-  <el-col :span="24" class>
+  <el-col :span="20" :offset="2">
     <div class="logo-header">
       <img class="logoImg" src="../assets/img/log.png" />
     </div>
     <!--v-show="roles.indexOf(item.id) >= 0"-->
-    <el-col
-      :span="2"
-      v-for="(item, index) of menuData"
-      :key="item.id"
-      @click.native="secondNavClick(item,index)"
-      style="text-align: center"
-    >
-      <span
-        class="lineStyle"
-        :class="{superactive:index == checkindex,menu_item:true}"
-      >{{item.name}}</span>
-      <div class="box" v-if="index==1 && getRemindCount.auditCount >0">
-            <!-- <span class="box-text">{{index==1? getRemindCount.auditCount+'项审核':getRemindCount.distributeCount+'份作业'}}</span> -->
-            <span class="box-text">{{getRemindCount.auditCount+'项审核'}}</span>
-            <!-- <span class="box-text">{{getRemindCount.distributeCount+'份作业'}}</span> -->
-      </div>
+    <el-col :offset="0" :span="18">
+      <el-col
+        :offset="0"
+        :span="3"
+        v-for="(item, index) of menuData"
+        :key="item.id"
+        @click.native="secondNavClick(item,index)"
+        style="text-align: center"
+      >
+        <span
+          class="lineStyle"
+          :class="{superactive:index == checkindex,menu_item:true}"
+        >{{item.name}}</span>
+        <div class="box" v-if="index==1 && getRemindCount.auditCount >0">
+          <!-- <span class="box-text">{{index==1? getRemindCount.auditCount+'项审核':getRemindCount.distributeCount+'份作业'}}</span> -->
+          <span class="box-text">{{getRemindCount.auditCount+'项审核'}}</span>
+          <!-- <span class="box-text">{{getRemindCount.distributeCount+'份作业'}}</span> -->
+        </div>
         <div class="box-one" v-if="index==3 && getRemindCount.distributeCount >0">
-            <span class="box-text">{{getRemindCount.distributeCount+'份作业'}}</span>
-      </div>
-    </el-col>
+          <span class="box-text">{{getRemindCount.distributeCount+'份作业'}}</span>
+        </div>
+      </el-col>
 
-    <el-col :span="4" class="aside-right">
-      <div class="login">
-        <img class="userstyle" :src="BASE_URL + avatar" alt />
-        <!-- <img class="userstyle" src="../assets/img/user.jpg"> -->
-        <span>{{name}}</span>
-        <i class="el-icon-caret-bottom"></i>
-      </div>
-      <div class="out">
-        <img src="../assets/img/out.png" alt class="out-img" />
-        <span @click="LoginoutBtn">退出</span>
-      </div>
+      <el-col :span="6" class="aside-right">
+        <div class="login">
+          <img class="userstyle" :src="BASE_URL + avatar" alt />
+          <!-- <img class="userstyle" src="../assets/img/user.jpg"> -->
+          <span>{{name}}</span>
+          <i class="el-icon-caret-bottom"></i>
+        </div>
+        <div class="out">
+          <img src="../assets/img/out.png" alt class="out-img" />
+          <span @click="LoginoutBtn">退出</span>
+        </div>
+      </el-col>
     </el-col>
     <div class="showModel" @click="allShowModel()" v-if="hiddenModel"></div>
     <div class="model" v-if="hiddenModel">
@@ -94,18 +97,18 @@ export default {
           name: "待分配作业",
           href: "HomeworkRecycle"
         },
-           {
+        {
           id: "5",
           name: "作业统计",
           href: "HomeworkTotally"
         },
-				{
-				  id: "6",
-				  name: "排班",
-				  href: "composeType"
-				},
+        {
+          id: "6",
+          name: "排班",
+          href: "composeType"
+        }
       ],
-      checkindex: 0,
+      checkindex: 0
     };
   },
   watch: {
@@ -114,9 +117,9 @@ export default {
       this.initNav();
     }
   },
-	computed: {
-	    ...mapGetters(['name', 'avatar','roles','getRemindCount'])
-	  },
+  computed: {
+    ...mapGetters(["name", "avatar", "roles", "getRemindCount"])
+  },
   methods: {
     // 初始化处理
     // initNav() {
@@ -183,6 +186,12 @@ export default {
 /*height: 110px;*/
 /*line-height:110px;*/
 /*}*/
+.main {
+  background-color: #fff;
+  margin: 16px;
+  padding: 0 !important;
+  min-height: 980px;
+}
 .menu_item {
   cursor: pointer;
   color: #999999;
@@ -208,7 +217,7 @@ export default {
 .logo-header {
   display: inline-block;
   float: left;
-  margin-left: 8.3%;
+  /* margin-left: 6.5%; */
 }
 .logoImg {
   width: 136px;
@@ -244,6 +253,8 @@ export default {
   height: 18px;
 }
 .aside-right {
+  position:relative;
+  right:-32%;
   float: right;
   margin-right: 0%;
 }
@@ -272,17 +283,17 @@ export default {
   border-radius: 17px;
   display: inline-block;
 }
-.box-one{
-	position: relative;
-	top: -130px;
-	left: 80px;
-	min-width: 75px;
-	height: 34px;
-	background: #ff6767;
-	-moz-border-radius: 12px;
-	-webkit-border-radius: 12px;
-	border-radius: 17px;
-	display: inline-block;
+.box-one {
+  position: relative;
+  top: -130px;
+  left: 80px;
+  min-width: 75px;
+  height: 34px;
+  background: #ff6767;
+  -moz-border-radius: 12px;
+  -webkit-border-radius: 12px;
+  border-radius: 17px;
+  display: inline-block;
 }
 .box:before {
   position: absolute;
@@ -363,7 +374,7 @@ export default {
   color: #fff;
 }
 .model-text-items-close {
-   cursor: pointer;
+  cursor: pointer;
   position: absolute;
   top: 10px;
   right: -5px;

+ 118 - 36
src/components/TeamWorkLists.vue

@@ -4,7 +4,7 @@
     <el-col :span="18" class="main">
       <el-row :gutter="20" class="main-header">
         <el-col :span="24">
-          <el-col :span="10">
+          <el-col :span="14">
             <div class="selectBox">
               <div
                 class="Ageclass"
@@ -55,9 +55,11 @@
             <div class="tablebox1">
               <div class="date">
                 <div class="calendar-week">
-                  <div class="week-item" v-for="item of weekList" :key="item">{{ item }}</div>
+                  <div class="week-item" v-for="item of weekList" :key="item">  
+                    <span :class="[item == '六' || item == '日'?'grayRed':'']">{{item}}</span>
+                    </div>
                 </div>
-                <div class="calendar-inner">
+                <div class="calendar-inner"  v-if="FindCalendarList.list && FindCalendarList.list.length>0">
                   <div
                     class="calendar-item"
                     v-for="(item, index) of calendarList"
@@ -158,7 +160,7 @@
     </el-col>
     <!-- 添加移除老师弹框 -->
     <div class="showModel" @click="allShowModel(3)" v-if="isApporTeacher"></div>
-    <div class="model" style="width:30%; top:10%;" v-if="isApporTeacher">
+    <div class="model" style="width:40%; top:10%;" v-if="isApporTeacher">
       <div class="model-text">
         <div class="model-text-head">
           <div class="teach-block">
@@ -180,10 +182,10 @@
                 class="DaySeachIcon el-icon-search"
               ></span>
             </div>
-            <div style="font-size:12px;text-align:left;font-weight:700;margin-bottom:10px;">
+            <div class="">
               <span class="tr-slogn">最少:{{FindHaveTeacherList.arrangeDetail.miniNum}}</span>
               <span class="tr-slogn">已选:{{FindHaveTeacherList.arrangeDetail.haveNum}}</span>
-              <span class="tr-slogn">饱和:{{FindHaveTeacherList.arrangeDetail.miniNum}}</span>
+              <span class="tr-slogn">饱和:{{FindHaveTeacherList.arrangeDetail.maxNum}}</span>
             </div>
           </div>
           <div>
@@ -196,23 +198,24 @@
             <div class="tr-secon1">科目</div>
             <div class="tr-secon1">出勤率</div>
             <div class="tr-secon1">在岗率</div>
-            <div class="tr-secon1">当月已选时段</div>
+            <div class="tr-secon1" style="width:25%">当月已选时段</div>
           </div>
           <div class="abbTeachers" @click="showAddTeacherModel">
             <span class="addLogicon">+</span> 添加老师
           </div>
           <div class="scrollBox">
-            <div class="tr-set" v-for="(item, index) of FindHaveTeacherList.list" :key="index">
+            <div class="tr-set" :class="{BgcColor:index%2 !== 1}" v-for="(item, index) of FindHaveTeacherList.list" :key="index">
               <div class="tr-secon">
                 <img :src="BASE_URL + item.photo" alt class="table-img" v-if="item.photo" />
                 <img src="../assets/img/attt.png" alt v-if="item.photo ==''" class="table-img" />
               </div>
-              <div class="tr-secon">{{item.teacherName}}</div>
+              <div class="tr-secon tr-sw200">{{item.teacherName}}</div>
               <div class="tr-secon tr-sw100">{{item.subject}}</div>
               <div class="tr-secon tr-sw100">{{item.attendanceRatio}}%</div>
               <div class="tr-secon tr-sw100">{{item.dutyRatio}}%</div>
               <div class="tr-secon tr-sw100" style="color:#7297FF">{{item.haveCount }}</div>
-              <div class="Buttonhole" @click="detailTeacherTeam(item)">移除</div>
+              <div v-if="item.isEdit==1" class="Buttonhole" @click="detailTeacherTeam(item)">移除</div>
+                <div v-if="item.isEdit==0" class="NoButtonhole"></div>
             </div>
           </div>
           <!-- <div class="btsnius">
@@ -245,45 +248,46 @@
     </div>
     <!-- 添加老师弹框 -->
     <div class="showModel" @click="allShowModel(4)" v-if="AddTeacherModel"></div>
-    <div class="model" style="width:30%; top:10%;" v-if="AddTeacherModel">
+    <div class="model" style="width:40%; top:10%;" v-if="AddTeacherModel">
       <div class="model-text">
         <div class="model-text-head">
           <div class="selectTeacher">选择老师</div>
-          <div class="teach-block">
+          <div class="teach-block1">
             <div class="Dayteach-Allot1">
               <input
                 type="text"
                 placeholder="请输入老师名字"
                 v-model="NoHaveTeacherList.teacherName"
-                class="Dayinput-with-Allot"
+                class="Dayinput-with-Allot1"
               />
               <span
                 @click="SearchNoHaveTeacher()"
-                style="right:35%;"
+                style="right:5%; margin-top:15%;"
                 class="DaySeachIcon el-icon-search"
               ></span>
             </div>
-            <span
-              style="font-size:12px;text-align:left;font-weight:700"
-              class="tr-slogn"
-            >最少:{{FindNoHaveTeacherList.arrangeDetail.miniNum}}</span>
-            <span class="tr-slogn">饱和:{{FindNoHaveTeacherList.arrangeDetail.maxNum}}</span>
-            <span class="tr-slogn">已选:{{FindNoHaveTeacherList.arrangeDetail.haveNum}}</span>
+             <div class="tiplogslogn">
+              <span
+                class="tr-slogn1"
+              >最少:{{FindNoHaveTeacherList.arrangeDetail.miniNum}}</span>
+              <span class="tr-slogn1">饱和:{{FindNoHaveTeacherList.arrangeDetail.maxNum}}</span>
+              <span class="tr-slogn1">已选:{{FindNoHaveTeacherList.arrangeDetail.haveNum}}</span>
+            </div>
           </div>
           <div>
             <img src="../assets/img/del@2x.png" alt @click="allShowModel(4)" />
           </div>
         </div>
         <div>
-          <div class="tr-set table-heads3">
+          <div class="tr-set table-heads2">
             <div class="tr-secon1">老师</div>
             <div class="tr-secon1">科目</div>
             <div class="tr-secon1">出勤率</div>
             <div class="tr-secon1">在岗率</div>
-            <div class="tr-secon1">当月已选时段</div>
+            <div class="tr-secon1"  style="width:25%">当月已选时段</div>
           </div>
           <div class="scrollBox">
-            <div class="tr-set" v-for="(item, index) of FindNoHaveTeacherList.list" :key="index">
+            <div class="tr-set" :class="{BgcColor:index%2 !== 1}" v-for="(item, index) of FindNoHaveTeacherList.list" :key="index">
               <div class="tr-secon">
                 <img :src="BASE_URL + item.photo" alt class="table-img" v-if="item.photo" />
                 <img src="../assets/img/attt.png" alt v-if="item.photo ==''" class="table-img" />
@@ -328,7 +332,7 @@ export default {
   props: {},
   data() {
     return {
-      weekList: ["一", "二", "三", "四", "五", "六", "日"],
+      weekList: ["一", "二", "三", "四", "五", "六", "日"],
       //本月的本期构成
       BASE_URL: IMG_BASE_URL,
       dayarr: [],
@@ -441,6 +445,7 @@ export default {
       } else if (str == 3) {
         _this.isApporTeacher = false;
       } else if (str == 4) {
+          this.teacherIds = []
         _this.AddTeacherModel = false;
         _this.isApporTeacher = true;
       } else if (str == 5) {
@@ -569,7 +574,8 @@ export default {
         // this.gridData = []
       this.$store.dispatch("GetFindCalendarList", {
         type: this.filters.OptionsValue,
-        subject: this.filters.gradesValue
+        subject: this.filters.gradesValue,
+        month: ""
       });
     },
     // 选中时段老师列表
@@ -589,6 +595,7 @@ export default {
     // 时段添加老师
     async GetAddArrangeByTeacherStatus() {
       // debugger
+        this.teacherIds = []
       this.AddTeacherModel = false
       this.$store.dispatch("GetAddArrangeByTeacher", {
         id: this.HaveTeacherList.Teacherid,
@@ -777,6 +784,9 @@ export default {
       // }
       this.calendarList = list;
       this.setCalendarList = setList;
+      console.log(1111111111111111111111111111111111111111)
+      console.log(this.calendarList)
+       console.log(22222222222222222222222222222222222222222222)
     }
   },
 
@@ -831,7 +841,7 @@ th {
 .Ageclass {
   display: inline-block;
   height: 40px;
-  width: 120px;
+  width: 160px;
   background-color: #f1f2f4;
   line-height: 40px;
   font-size: 16px;
@@ -860,6 +870,10 @@ th {
 .teach-block {
   display: inline-block;
 }
+.teach-block1 {
+  display: inline-block;
+  width: 100%;
+}
 .miniorteach-Allot {
   float: left;
   width: 280px;
@@ -958,7 +972,7 @@ table.bgtable tbody tr td.gray {
   background: #000000;
   opacity: 0.2;
   overflow: hidden;
-  z-index: 1000;
+  z-index: 3000;
   color: #fff;
 }
 .model {
@@ -990,6 +1004,7 @@ table.bgtable tbody tr td.gray {
   border-radius: 10px;
 }
 .model-text-head {
+  padding:0!important;
   display: flex;
   color: #393939;
   font-size: 24px;
@@ -997,7 +1012,7 @@ table.bgtable tbody tr td.gray {
 }
 .table-heads1 {
   margin-left: 150px !important;
-  width: 350px;
+  width: 80%;
   font-weight: 700;
   color: #393939 !important;
   font-size: 18px;
@@ -1007,8 +1022,8 @@ table.bgtable tbody tr td.gray {
 }
 .table-heads2 {
   background-color: #fff;
-  margin-left: 40px !important;
-  width: 500px;
+  margin-left: 110px;
+  width: 80%;
   font-weight: 700;
   color: #393939 !important;
   font-size: 18px;
@@ -1019,11 +1034,14 @@ table.bgtable tbody tr td.gray {
 .table-heads1 > div {
   width: 30%;
 }
+.BgcColor {
+  background-color: #f7fbfc;
+}
 .tr-secon1 {
   font-size: 12px;
   text-align: center;
   word-wrap: break-word;
-  width: 120px;
+   width: 20%;
   line-height: 50px;
 }
 .tr-secon {
@@ -1033,6 +1051,19 @@ table.bgtable tbody tr td.gray {
   width: 60px;
   line-height: 50px;
 }
+.tr-sw100 {
+  width: 13%;
+  text-align: center;
+}
+.tr-sw200 {
+ width: 13%;
+  text-align: center;
+  white-space:nowrap;
+overflow:hidden;
+text-overflow:ellipsis;
+padding:10px;
+line-height:25px;
+}
 .width120 {
   width: 200px;
 }
@@ -1067,6 +1098,15 @@ table.bgtable tbody tr td.gray {
   background-color: #7297ff;
   color: #fff;
 }
+.NoButtonhole{
+ cursor: pointer;
+  margin-top: 10px;
+  width: 80px;
+  height: 30px;
+  line-height: 30px;
+  border-radius: 15px;
+  color: #fff;
+}
 .table-img {
   width: 36px;
   height: 36px;
@@ -1074,8 +1114,9 @@ table.bgtable tbody tr td.gray {
   /* margin-left: 14px; */
   cursor: pointer;
 }
-.teach-block {
+.teach-block1 {
   display: inline-block;
+  width: 100%;
 }
 .Dayteach-Allot {
   width: 260px;
@@ -1084,18 +1125,43 @@ table.bgtable tbody tr td.gray {
   top: 15px;
   display: inline-block;
 }
-/* .Dayteach-Allot1 {
+.Dayteach-Allot1 {
   display: inline-block;
-  width: 200px;
+  width: 30%;
+  float:left;
   position: relative;
   height: 30px;
   top: 5px;
-} */
+}
+.selectTeacher {
+  font-size: 12px;
+  text-align: left;
+  font-weight: 700;
+  width: 160px;
+  color: #7297ff;
+  /* margin-top: 10px; */
+}
+.tiplogslogn{
+  display: inline-block;
+  float:right;
+  margin-top:0px;
+  height: 30px;
+  margin-right:20px;
+}
 .tr-slogn {
   display: inline-block;
-  margin: 0 30px;
+  margin-right:30px;
+  font-size: 12px;
+  text-align: left;
+  float:left;
+  font-weight: 700;
+}
+.tr-slogn1 {
+  display: inline-block;
+  margin-right:10px;
   font-size: 12px;
   text-align: left;
+  float:left;
   font-weight: 700;
 }
 .Daylog {
@@ -1127,6 +1193,22 @@ table.bgtable tbody tr td.gray {
   outline: none !important;
   box-shadow: none;
 }
+.Dayinput-with-Allot1 {
+  margin-top:20px;
+  border: #b6b6b6;
+  border-radius: 20px;
+  height: 30px;
+  width: 200px;
+  font-size: 8px;
+  color: #b6b6b6;
+  text-align: left;
+  line-height: 30px;
+  background: #f1f2f4;
+  padding: 0 10px;
+  float: left;
+  outline: none !important;
+  box-shadow: none;
+}
 .abbTeachers {
   width: 100%;
   height: 40px;

+ 181 - 152
src/components/TeamworkScheduling.vue

@@ -7,46 +7,41 @@
     <!--当天-->
     <el-col :span="18" class="main">
       <el-row :gutter="20" class="main-header">
-           <el-col :span="14" :offset="0">
-              <div
-                @click="handApor()"
-                :class="{Apporvalactive:Activeindex == false,ApporStyles:true}"
-              >批改老师</div>
-              <div
-                @click="AutoApor()"
-                :class="{Apporvalactive:Activeindex == true,ApporStyles:true}"
-              >匹配知识点老师</div>
-            </el-col>
-        <el-col :span="5">
+        <el-col :span="8" :offset="0">
+          <div
+            @click="handApor()"
+            :class="{Apporvalactive:Activeindex == false,ApporStyles:true}"
+          >批改老师</div>
+          <div
+            @click="AutoApor()"
+            :class="{Apporvalactive:Activeindex == true,ApporStyles:true}"
+          >匹配知识点老师</div>
+        </el-col>
+        <el-col :span="6"  :offset="10">
           <div class="main-header-item" style="color:red;">
             小组实时在岗率:
-            <span>{{FindTeamTeacherList.dutyRatio}}</span>
+            <span>{{FindTeamTeacherList.dutyRatio}}%</span>
           </div>
         </el-col>
         <el-col :span="24">
           <div class="table">
             <div class="table-head">
               <div>头像</div>
-                  <div>姓名</div>
+              <div>姓名</div>
               <div>本月排班时段数</div>
               <div>出勤率</div>
-                 <div>科目</div>
+              <div>科目</div>
             </div>
             <div class="tr" v-for="(v, k) of FindTeamTeacherList.list" :key="k">
               <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
-                  <div>
-                       <img
-                  :src="BASE_URL + v.photo"
-                  v-if="v.photo"
-                  alt
-                 class="table-img"
-                />
-                <img  v-if="!v.photo" src="../assets/img/attt.png" alt class="table-img" />
-              </div>
+                <div>
+                  <img :src="BASE_URL + v.photo" v-if="v.photo" alt class="table-img" />
+                  <img v-if="!v.photo" src="../assets/img/attt.png" alt class="table-img" />
+                </div>
                 <div>{{v.teacherName}}</div>
                 <div>{{v.haveCount}}</div>
-                   <div>{{v.attendanceRatio}}</div>
-                     <div>{{v.subject}}</div>
+                <div :class="{grayRed:v.attendanceRatio <80}">{{v.attendanceRatio}}%</div>
+                <div>{{v.subject}}</div>
                 <div class="tr-seconds">
                   <span
                     @click="groupDetail(v)"
@@ -64,7 +59,7 @@
             @current-change="pageChange1"
             :page-sizes="[10]"
             layout="total, prev, pager, next"
-               :total="parseInt(FindTeamTeacherList.totalElements)"
+            :total="parseInt(FindTeamTeacherList.totalElements)"
             :hide-on-single-page="true"
           ></el-pagination>
           <div style="clear:both;"></div>
@@ -75,52 +70,71 @@
     <div class="showModel" @click="updateIsShowCarouselPictureModal()" v-if="NoAllotManagerModel">
       <div class="modal-cancel" @click="updateIsShowCarouselPictureModal()">X</div>
       <div class="detailinfo">
-            <el-col :span="24">
+        <el-col :span="24">
           <h1 class="tiplog">{{TeacherThisMonthDutyList.month}}月排班情况</h1>
-          <div class="RatyMonth">当月出勤率<span style="color:#333333;font-size:16px;margin-left:10px;">{{TeacherThisMonthDutyList.dutyRate}}%</span></div>
-           <div class="canlender" id="canlender">
+          <div class="RatyMonth">
+            当月出勤率
+            <span
+              style="color:#333333;font-size:16px;margin-left:10px;"
+            >{{TeacherThisMonthDutyList.dutyRate}}%</span>
+          </div>
+          <div class="canlender" id="canlender">
             <div class="tablebox1">
-                 <el-row :gutter="24">
-          <el-col :span="24" :offset="0">
-            <!-- 日期 -->
-            <div class="date">
-              <div class="calendar-week">
-                <div class="week-item" v-for="item of daynamearr" :key="item">
-                    <span :class="{'grayRed': item == '周六' || item == '周日'}">{{item}}</span>
-                </div>
-              </div>
-              <div class="calendar-inner">
-                <div
-                  
-                  v-for="(item, index) of calendarList"
-                     :class="[item.pastDay ? 'psatchecked' : 'calendar-item']"
-                  :key="index"
-                
-                >
-                    <div
-                      slot="reference"
-                      class="day-setting"
-                    >
-                      <!-- {{FindCalendarList}} -->
-                      <div class="date-day">{{ item.date }}</div>
-                      <div class="people" v-if="item.dateList && item.dateList.timeVoList">
-                        <div class="people-items">
-                          <div :class="[item.pastDay ? 'Past-items-text' : 'people-items-text']" v-for="(v, k) of item.dateList.timeVoList"
-                         :key="k">
-                            <span v-if="v.timeState ==1">{{v.startInterval}}-{{v.endInterval}}</span>
-                            <span class="selectIng" v-if="v.timeState ==2 && !item.pastDay">{{v.startInterval}}-{{v.endInterval}}</span>
-                              <span class="MuchselectIng" v-if="v.timeState ==2 && item.pastDay">{{v.startInterval}}-{{v.endInterval}}</span>
-                               <span class="LostselectIng" v-if="v.timeState ==4">{{v.startInterval}}-{{v.endInterval}}</span>
-                                  <span class="MuchselectIng" v-if="v.timeState ==3">{{v.startInterval}}-{{v.endInterval}}</span>
+              <el-row :gutter="24">
+                <el-col :span="24" :offset="0">
+                  <!-- 日期 -->
+                  <div class="date">
+                    <div class="calendar-week">
+                      <div class="week-item" v-for="item of daynamearr" :key="item">
+                     <span :class="[item == '六' || item == '日'?'grayRed':'']">{{item}}</span>
+                      </div>
+                    </div>
+                    <div class="calendar-inner" v-if="TeacherThisMonthDutyList.dayList && TeacherThisMonthDutyList.dayList.length>0">
+                      <div
+                        v-for="(item, index) of calendarList"
+                        :class="[item.pastDay ? 'psatchecked' : 'calendar-item']"
+                        :key="index"
+                      >
+                        <div slot="reference" class="day-setting">
+                          <div class="date-day">{{ item.date }}</div>
+                          <div class="people" v-if="item.dateList && item.dateList.timeVoList">
+                            <div class="people-items"  v-show="item.dateList.isOpen ==1">
+                              <div
+                                :class="[item.pastDay ? 'Past-items-text' : 'people-items-text']"
+                                v-for="(v, k) of item.dateList.timeVoList"
+                                :key="k"
+                              >           
+                                    <span v-if="v.timeState ==1">{{v.startInterval}}-{{v.endInterval}}</span>
+                                  <span
+                                    class="selectIng"
+                                    v-if="v.timeState ==2 && !item.pastDay"
+                                  >{{v.startInterval}}-{{v.endInterval}}</span>
+                                  <span
+                                    class="MuchselectIng"
+                                    v-if="v.timeState ==2 && item.pastDay"
+                                  >{{v.startInterval}}-{{v.endInterval}}</span>
+                                  <span
+                                    class="LostselectIng"
+                                    v-if="v.timeState ==4"
+                                  >{{v.startInterval}}-{{v.endInterval}}</span>
+                                  <span
+                                    class="MuchselectIng"
+                                    v-if="v.timeState ==3"
+                                  >{{v.startInterval}}-{{v.endInterval}}</span>
+                              </div>
                             </div>
+                               <div class="people-items" style="color:#999999;backgroung-color:#F9F9F9"  v-show="item.dateList.isOpen ==0">
+                              <div>           
+                                不开放
+                              </div>
+                            </div>
+                          </div>
                         </div>
                       </div>
                     </div>
-                </div>
-              </div>
-            </div>
-          </el-col>
-        </el-row>
+                  </div>
+                </el-col>
+              </el-row>
             </div>
           </div>
         </el-col>
@@ -137,10 +151,10 @@ export default {
   props: {},
   data() {
     return {
-       daynamearr:["一", "二", "三", "四", "五", "六", "日"],
+      daynamearr: ["一", "二", "三", "四", "五", "六", "日"],
       //本月的本期构成
       dayarr: [],
-      managerId:'',
+      managerId: "",
       year: new Date().getFullYear(),
       D: new Date().getDate() + " ",
       // month: new Date().getMonth() + 1,
@@ -148,8 +162,8 @@ export default {
       BASE_URL: IMG_BASE_URL,
       accessToken: localStorage.getItem("accessToken"),
       NoAllotManagerModel: false, //token
-      Activeindex:false,
-      TEACHERTYPE:8,
+      Activeindex: false,
+      TEACHERTYPE: 8,
       current: {}, // 当前时间
       calendarList: [], // 排班列表
       setCalendarList: [], // 排班设置列表
@@ -168,39 +182,44 @@ export default {
     this.managerId = managerId;
   },
   watch: {
-     TeacherThisMonthDutySucess(val, oldVal) {
-      
+    TeacherThisMonthDutySucess(val, oldVal) {
       //保存排班设置成功的watch监听回调
       this.init();
-    },
+    }
   },
   computed: {
-    ...mapGetters(["TeacherThisMonthDutyList","FindTeamTeacherList","TeacherThisMonthDutySucess"])
+    ...mapGetters([
+      "TeacherThisMonthDutyList",
+      "FindTeamTeacherList",
+      "TeacherThisMonthDutySucess"
+    ])
   },
   methods: {
     ...mapActions(["setUser"]),
-      // 获取校区管理员监控数据
+    // 获取校区管理员监控数据
     async InfoWatch() {},
-        // 数据监控手动批改
+    // 数据监控手动批改
     handApor() {
       this.Activeindex = false;
-      this.TEACHERTYPE = 8
-      this.GetFindTeamTeacherListInfo()
+      this.filters1.pageNo = 1;
+      this.TEACHERTYPE = 8;
+      this.GetFindTeamTeacherListInfo();
     },
     // 数据监控匹配知识点老师
     AutoApor() {
       this.Activeindex = true;
-       this.TEACHERTYPE = 13
-        this.GetFindTeamTeacherListInfo()
+      this.filters1.pageNo = 1;
+      this.TEACHERTYPE = 13;
+      this.GetFindTeamTeacherListInfo();
     },
-  
-     // 组内排班老师列表
+
+    // 组内排班老师列表
     async GetFindTeamTeacherListInfo() {
       this.$store.dispatch("GetFindTeamTeacherList", {
         managerId: this.managerId,
-      type:this.TEACHERTYPE,
-       pageSize:this.filters1.pageSize,
-        pageNo:this.filters1.pageNo
+        type: this.TEACHERTYPE,
+        pageSize: this.filters1.pageSize,
+        pageNo: this.filters1.pageNo
       });
     },
     handleSizeChange1(val) {
@@ -219,11 +238,11 @@ export default {
       this.pictureIndex = 0;
       this.NoAllotManagerModel = true;
       this.$store.dispatch("GetTeacherThisMonthDutyList", {
-        teacherId: str.teacherId,
+        teacherId: str.teacherId
       });
       //  this.init();
     },
-      // 日期处理
+    // 日期处理
     init() {
       // 初始化当前时间
       this.setCurrent();
@@ -327,7 +346,7 @@ export default {
           month: curMonth,
           date: date,
           disable: curMonth !== month,
-           pastDay: date < today && curMonth == month,
+          pastDay: date < today && curMonth == month,
           status: false,
           value: this.stringify(year, curMonth, date)
         });
@@ -347,14 +366,18 @@ export default {
         if (!list[i].disable) {
           const dateValue = list[i].date;
           // debugger
-          for (let t = 0; t < that.TeacherThisMonthDutyList.dayList.length; t++) {
+          for (
+            let t = 0;
+            t < that.TeacherThisMonthDutyList.dayList.length;
+            t++
+          ) {
             if (dateValue == that.TeacherThisMonthDutyList.dayList[t].day) {
               list[i].dateList = that.TeacherThisMonthDutyList.dayList[t];
             }
           }
         } else {
           list[i].dateList = {
-            timeVoList:[]
+            timeVoList: []
           };
         }
       }
@@ -371,14 +394,14 @@ export default {
       //   }
       // }
       this.calendarList = list;
-         console.log("000000000000000000000000000000000")
-      console.log(this.calendarList)
-        console.log("000000000000000000000000000000000")
+      console.log("000000000000000000000000000000000");
+      console.log(this.calendarList);
+      console.log("000000000000000000000000000000000");
       this.setCalendarList = setList;
-    },
+    }
   },
   mounted() {
-    this.GetFindTeamTeacherListInfo()
+    this.GetFindTeamTeacherListInfo();
   }
 };
 </script>
@@ -421,7 +444,7 @@ export default {
   text-align: center;
   line-height: 50px;
   font-size: 16;
-    overflow: auto;
+  overflow: auto;
   z-index: 9999;
   opacity: 1 !important;
   color: #000000;
@@ -671,20 +694,20 @@ el-table {
 .tr-first > div {
   width: 14.528%;
 }
-.psatchecked{
-  background-color: #F9F9F9;
-    float: left;
+.psatchecked {
+  background-color: #f9f9f9;
+  float: left;
   width: 14.28%;
   height: 250px;
   line-height: 130px;
   text-align: center;
-  color:#AAAAAA;
-   border:10px solid #fff;
+  color: #aaaaaa;
+  border: 10px solid #fff;
   padding: 4px;
   font-weight: 700;
   cursor: pointer;
   border-radius: 20px;
-    /* gackgroudcolor: rgba(243, 10, 10, 0.007); */
+  /* gackgroudcolor: rgba(243, 10, 10, 0.007); */
 }
 .tr-s {
   display: flex;
@@ -746,7 +769,7 @@ el-table {
   /*line-height: 80px;*/
 }
 .tr-second-check {
-  color: #7297FF;
+  color: #7297ff;
   font-size: 17px;
   text-decoration: underline;
 }
@@ -898,7 +921,7 @@ el-table {
 }
 .ApporStyles {
   display: inline-block;
-  width: 180px;
+  width: 200px;
   height: 40px;
   line-height: 40px;
   background-color: #fff;
@@ -914,20 +937,20 @@ el-table {
 .tiplog {
   height: 30px;
   width: 200px;
-  margin: 10px;
+  /* margin: 10px; */
   font-size: 25px;
   font-weight: 700;
-  text-align:left;
+  text-align: left;
   /* margin: 0 auto; */
 }
-.RatyMonth{
-   height: 20px;
+.RatyMonth {
+  height: 20px;
   width: 200px;
-  color:#999999;
+  color: #999999;
   font-size: 16px;
-  text-align:left;
+  text-align: left;
   font-weight: 700;
-  margin-bottom:100px;
+  margin-bottom: 100px;
 }
 .canlender {
   width: 1200px;
@@ -944,37 +967,37 @@ table.bgtable thead tr th {
   height: 30px;
   text-align: center;
   cursor: pointer;
-  color:#999999;
+  color: #999999;
 }
 .menu_bgc {
-margin:10px!important;
+  margin: 10px !important;
 }
-.grayRed{
-  color:red;
+.grayRed {
+  color: red;
 }
 table.bgtable tbody tr td {
   height: 100px;
   box-sizing: border-box;
   text-align: center;
   vertical-align: top;
-  border:20px solid #fff;
+  border: 20px solid #fff;
   padding: 4px;
   font-weight: 700;
   cursor: pointer;
   border-radius: 50px;
-  background-color: #F6F7FB;
+  background-color: #f6f7fb;
 }
 table.bgtable tbody tr td.gray {
   color: #fff;
   background: #ffff;
 }
 .number {
-  color:#7297FF;
+  color: #7297ff;
   width: 100%;
   height: 150px;
 }
-.grayBlue{
- color:#fff;
+.grayBlue {
+  color: #fff;
 }
 .number .numberItem {
   width: 100%;
@@ -1011,19 +1034,19 @@ table.bgtable tbody tr td.gray {
   height: 250px;
   line-height: 130px;
   text-align: center;
-  background-color: #F6F7FB;
-   border:10px solid #fff;
+  background-color: #f6f7fb;
+  border: 10px solid #fff;
   padding-bottom: 4px;
   font-weight: 700;
   cursor: pointer;
   border-radius: 20px;
   /* padding:15px; */
 }
-.timeGone{
-    background-color: #F9F9F9;
+.timeGone {
+  background-color: #f9f9f9;
 }
 .day-setting {
-  height: 130px;
+  /* height: 130px; */
   line-height: 130px;
 }
 .calendar-item.disabled {
@@ -1038,70 +1061,76 @@ table.bgtable tbody tr td.gray {
   color: #aaa;
 }
 .people {
+  width: 100%;
   display: flex;
   justify-content: space-around;
   font-size: 14px;
 }
 .people-items {
+  width: 100%;
   display: inline-block;
   line-height: 70px;
+  margin: 0 auto;
 }
 .people-items span {
-display: block;
- height:30px;
- line-height: 30px;
- width: 120px;
+  display: block;
+  height: 30px;
+  line-height: 30px;
+  /* width: 100%; */
+  text-align: center;
   font-size: 12px;
   border-radius: 10px;
-  margin:10px;
+  margin: 10px;
 }
 .people-items-num {
   line-height: 15px;
   padding: 3px 8px;
 }
 .people-items-text {
+  width: 100%;
   line-height: 30px;
   font-size: 14px;
-  color: #7297FF;
+  color: #7297ff;
   font-weight: normal;
 }
 .Past-items-text {
+  width: 100%;
   line-height: 30px;
   font-size: 14px;
   color: #aaaaaa;
   font-weight: normal;
 }
-.selectIng{
+.selectIng {
   display: block;
- background-color: #7297FF; 
- color:#fff;
- height:30px;
- line-height: 30px;
- width: 120px;
+  background-color: #7297ff;
+  color: #fff;
+  height: 30px;
+  line-height: 30px;
+  width: 120px;
   font-size: 12px;
   border-radius: 10px;
-  margin:10px;
+  margin: 10px;
 }
-.MuchselectIng{
+.MuchselectIng {
   display: block;
- background-color: #BBBBBB; 
- color:#fff;
- height:30px;
- line-height: 30px;
- width: 120px;
+  background-color: #bbbbbb;
+  color: #fff;
+  height: 30px;
+  line-height: 30px;
+  width: 120px;
   font-size: 12px;
   border-radius: 10px;
-  margin:10px;
+  margin: 10px;
 }
-.LostselectIng{
+.LostselectIng {
   display: block;
- background-color: #FF6465; 
- color:#fff;
- height:30px;
- line-height: 30px;
- width: 120px;
+  background-color: #ff6465;
+  color: #fff;
+  height: 30px;
+  line-height: 30px;
+  width: 120px;
   font-size: 12px;
   border-radius: 10px;
-  margin:10px;
+  margin: 10px;
 }
 </style>

+ 0 - 181
src/components/UserInfoView.vue

@@ -1,181 +0,0 @@
-<template>
-  <!-- <el-popover
-                ref="userInfoView"
-                placement="right"
-                trigger="click" style="padding:0px"> -->
-                <div class="userInfoViewCom" style="width: 100%;">
-                    <div class="userImg" style="margin-left:43%">
-                          <div style="height:4.6vw;width:4.6vw;border-radius: 50%;    border: 2px solid #00c1de;">
-                            <img :src="userInfo.imagePath" style="width: 100%;height: 100%;border-radius: 50%">
-                          </div>
-                          <el-upload
-                            class="upload-demo"
-                            ref="upload"
-                            :action="$dao.sysDao.uploadUserImg()"
-                            :http-request="httpRequest"
-                            :show-file-list="false"
-                            :with-credentials="true"
-                            :auto-upload="true">
-                            <el-button slot="trigger" size="small" type="primary">更换头像</el-button>
-                          </el-upload>
-                          <div class="userInfoTitle">
-                            <!-- <span style="color:#00c1de;font-size:16px">更换头像</span> -->
-                            <span style="color:#eeeeee">|</span>
-                            <i class="iconfont icon-bianji1" @click="editUserInfo"></i>
-                          </div>
-                    </div>
-                  <hr style="margin:20px -12px 10px -12px;border: solid 1px #eeeeee;">
-                  <div class="userInfoView">
-                    <el-form ref="userInfo" :model="userInfo" label-width="60px" size="mini" label-position="left">
-                      <i class="iconfont icon-dengluming"></i>
-                      <el-form-item label="登陆名">
-                        <el-input readonly v-model="userInfo.loginName"></el-input>
-                      </el-form-item>
-                      <i class="iconfont icon-xingming"></i>
-                      <el-form-item label="姓名">
-                        <el-input readonly v-model="userInfo.name"></el-input>
-                      </el-form-item>
-                      <i class="iconfont icon-youxiang"></i>
-                      <el-form-item label="邮箱">
-                        <el-input @blur="userInfo.email=userInfo.email.trim()" :class="{editUserInput: isUserInfoEdit === false}" :readonly="isUserInfoEdit"
-                        v-model="userInfo.email"></el-input>
-                      </el-form-item>
-                      <i class="iconfont icon-dianhua"></i>
-                      <el-form-item label="手机号">
-                        <el-input @blur="userInfo.phone=userInfo.phone.trim()" :class="{editUserInput: isUserInfoEdit === false}" :readonly="isUserInfoEdit"
-                        v-model="userInfo.phone"></el-input>
-                      </el-form-item>
-                    </el-form>
-                  </div>
-                  <div v-if="isUserInfoEdit===false">
-                    <hr style="margin: -10px -12px 0px -12px;border: solid 1px #eeeeee;">
-                    <div style="text-align:right;margin:10px 0px;">
-                      <el-button @click="cancelEditUserInfo"  size="small">取消</el-button>
-                      <el-button @click="saveUserInfo"  type="primary" size="small">保存</el-button>
-                    </div>
-                  </div>
-                   <hr style="margin: 0px -12px 20px -12px;border: solid 1px #eeeeee;">
-                  <!-- <i class="iconfont icon-tuichu"></i> -->
-                  <div @click="handleCommand('logDown')" class="iconfont icon-tuichu" style="display: inline;cursor:pointer;padding-left: 15px;">
-                    <span style="margin-left:10px">退出登录</span>
-                  </div>
-                </div>
-              <!-- </el-popover> -->
-</template>
-<script>
-import { mapGetters, mapActions } from "vuex";
-export default {
-  name: "model",
-  props: {
-    handleCommand: Function
-  },
-  data() {
-    return {
-      isUserInfoEdit: true,
-      userInfo: {
-        loginName: "",
-        name: "",
-        email: "",
-        phone: "",
-        imagePath: ""
-      }
-    };
-  },
-  watch: {},
-  computed: {
-    ...mapGetters(["getUser"])
-  },
-  methods: {
-    ...mapActions(["setUser"]),
-    // 编辑
-    editUserInfo() {
-      this.isUserInfoEdit = false;
-    },
-    // 取消
-    cancelEditUserInfo() {
-      this.isUserInfoEdit = true;
-    },
-    // 保存
-    async saveUserInfo() {
-      let self = this;
-      let { success } = await self.$dao.sysDao.userInfoEdit(this.userInfo);
-      if (success) {
-        self.$util.messageMethod("success", "保存用户信息成功!");
-        let u = self.getUser;
-        u.email = self.userInfo.email;
-        u.phone = self.userInfo.phone;
-        self.setUser(u);
-        this.$nextTick(() => {
-          self.isUserInfoEdit = true;
-        });
-      }
-    },
-    httpRequest(file) {
-      let self = this;
-      // var fileObj = document.getElementByIdx_x_x("file").files[0]
-      var FileController = file.action;
-      // FormData 对象
-      var form = new FormData();
-      // form.append("__sid", this.$dao.getCookie('session.id'))
-      form.append("file", file.file);
-      // XMLHttpRequest 对象
-      var xhr = new XMLHttpRequest();
-      xhr.open("post", FileController, true);
-      xhr.setRequestHeader(this.$dao.getHeadName(), this.$dao.getHeadValue());
-      xhr.send(form);
-      xhr.onreadystatechange = function() {
-        if (xhr.readyState === 4 && xhr.status === 200) {
-          // console.log('5555555')
-          self.uploadSuccess(xhr.responseText);
-        }
-      };
-    },
-    uploadSuccess(data) {
-      data = JSON.parse(data);
-      // data = data.parseJSON()
-      this.userInfo.imagePath = data.imagePath;
-      console.log(this.userInfo.imagePath);
-      let u = this.getUser;
-      u.imagePath = this.userInfo.imagePath;
-      this.setUser(u);
-      // this.$emit('click', {
-      //   img: this.userInfo.imagePath
-      // })
-    }
-  },
-  mounted() {
-    this.userInfo.loginName = this.getUser.loginName;
-    this.userInfo.name = this.getUser.name;
-    this.userInfo.email = this.getUser.email;
-    this.userInfo.phone = this.getUser.phone;
-    this.userInfo.imagePath = this.getUser.imagePath;
-    this.userInfo.id = this.getUser.id;
-  }
-};
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-.userInfoTitle {
-  /* margin-left: 43%; */
-  margin-top: 10px;
-  display: inline-block;
-}
-.userInfoTitle span {
-  margin: 0px 30px;
-}
-.userInfoTitle i {
-  font-size: 16px;
-  color: #00c1de;
-  cursor: pointer;
-}
-.userInfoView {
-  padding: 0px 15px;
-}
-.userInfoView i {
-  position: absolute;
-}
-.el-popover {
-  padding: 0px;
-}
-</style>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 1535
src/components/bf.vue


+ 0 - 151
src/components/teacherCompoent.vue

@@ -1,151 +0,0 @@
-<template>
-  <el-col :span="24" class="">
-      <el-col :span="2" :offset="2">
-       <img class="logoImg" src="../assets/img/log.png"/>
-      </el-col>
-    <!--v-show="roles.indexOf(item.id) >= 0"-->
-      <el-col :span="2"   v-for="(item, index) of menuData" :key="item.id"
-      @click.native="secondNavClick(item,index)" style="text-align: center">
-        <span class="lineStyle" :class="{active:index == checkindex,menu_item:true}">{{item.name}}</span>
-
-      </el-col>
-
-      <el-col :span="4" :offset="9">
-      <div class="login">   
-        <img  class="userstyle"  :src="BASE_URL + avatar" alt="">
-        <!-- <img class="userstyle" src="../assets/img/user.jpg"> -->
-        <span>{{name}}</span>
-        <i class="el-icon-caret-bottom"></i>
-      </div>
-      <div class="out">
-        <img src="../assets/img/out.png" alt class="out-img">
-        <span @click="Loginout">退出</span>
-      </div>
-    </el-col>
-    <el-col :span="1"></el-col>
-  </el-col>
-</template>
-
-<script>
-import {mapGetters} from 'vuex'
-import { IMG_BASE_URL } from '@/ImgConfig'
-export default {
-  name: "navMenu",
-  // props: {
-  //   navsData: Array
-  // },
-  data() {
-    return {
-        accessToken:localStorage.getItem("accessToken"), //token
-       BASE_URL:IMG_BASE_URL,
-      menuData: [ {
-    id: "1",
-    name: "在线批改老师",
-    href: "onlineteacher",
-  },
- ],
-      checkindex: 0
-    };
-  },
-  watch: {
-    navsData(n) {
-      this.navsData = n;
-      this.initNav();
-    }
-  },
-  methods: {
-    // 初始化处理
-    // initNav() {
-    //   this.menuData = JSON.parse(JSON.stringify(this.navsData));
-    // },
-    secondNavClick(val, index) {
-      this.$router.push("/Onteacher/" + val.href);
-      this.checkindex = index;
-    },
-     //  账号管理、退出登录
-    Loginout() {
-      this.$confirm("您确定退出吗?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(() => {
-          this.$store.dispatch("LogOut", {
-             accessToken: this.accessToken
-      });
-        })
-        .catch(() => {
-          // console.log(err)
-          this.$message("已取消操作!");
-        });
-    }
-  },
-  computed: {
-      ...mapGetters(['name', 'avatar','roles'])
-    },
-  mounted() {
-    // this.initNav();
-  }
-};
-</script>
-<style scoped>
-/*.mainHeader{*/
-  /*height: 110px;*/
-  /*line-height:110px;*/
-/*}*/
-.menu_item {
-  cursor: pointer;
-  color:#999999; 
-  font-size: 9px;
-  font-family: serif;
-  box-sizing:border-box;
-  height: 80%;
-  text-align:center;
-  padding-bottom:19px ;
-  /*display: inline-block;*/
-}
-.menu_item:hover {
-  color:#52CC60 ;
-  border-bottom:2px solid #52cc60;
-}
-.active {
-  color:#52CC60 !important;
-  border-bottom:2px solid #52cc60;
-}
-.menu_item+.menu_item {
-  border-left: 1px solid #ffffff;
-}
-.logoImg{
-  width:136px;
-  height:52px;
-}
-.sishuLogo{
-  margin-left:125px;
-}
-.userstyle{
-  width:26px;
-  height:26px;
-  border-radius: 15px;
-}
-  .lineStyle{
-    color: #999999;
-    font-size: 18px;
-    text-align: center;
-  }
-.login{
-  color: #333333;
-  font-size: 14px;
-  display: inline-block;
-}
-.out{
-  margin-left: 20px;
-  font-size: 14px;
-  color: #666666;
-  display: inline-block;
-  cursor: pointer;
-}
-.out-img{
-  width: 16px;
-  height: 18px;
-}
-</style>

+ 2 - 2
src/config/index.js

@@ -2,8 +2,8 @@ let BASE_URL = ''
 if (process.env.NODE_ENV === 'development') {
     BASE_URL = 'https://xt.sharingschool.com/sz'
 } else {
-    BASE_URL = 'https://xt.sharingschool.com/sz' //测试环境服务器地址
-    // BASE_URL = 'https://t.sharingschool.com/sz'; //正式环境地址
+    // BASE_URL = 'https://xt.sharingschool.com/sz' //测试环境服务器地址
+    BASE_URL = 'https://t.sharingschool.com/sz'; //正式环境地址 主正式环境地址
     // BASE_URL = 'https://sx.sharingschool.com/sz'  //实习环境地址
 }
 const TIME_OUT = 10000

+ 0 - 1
src/main.js

@@ -33,7 +33,6 @@ Vue.config.productionTip = false;
 // axios.defaults.withCredentials = true
 Vue.prototype.$zrender = zrender;
 Vue.prototype.$echarts = echarts 
-
 Vue.use(Viewer);
 Viewer.setDefaults({
   Options: { "inline": true, "button": true, "navbar": true, "title": true, "toolbar": true, "tooltip": true, "movable": true, "zoomable": true, "rotatable": true, "scalable": true, "transition": true, "fullscreen": false, "keyboard": true, "url": "data-source" }

+ 2 - 16
src/pages/Home.vue

@@ -4,19 +4,6 @@
       <div class="conterLayout">
         <div class="main_header">
           <MenuComponent></MenuComponent>
-          <!--<div class="main_header_user">-->
-          <!--<el-dropdown @command="handleCommand">-->
-          <!--<div class="el-dropdown-link" style="position: relative;cursor: pointer;">-->
-          <!--<span style="margin-right:30px; font-size: .14rem;"> {{getUser.name}} </span>-->
-          <!--&lt;!&ndash;<i class="el-icon-caret-right"></i>&ndash;&gt;-->
-          <!--<span class="out">退出</span>-->
-          <!--</div>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-          <!--<el-dropdown-item command="modifyPwd">修改密码</el-dropdown-item>-->
-          <!--<el-dropdown-item command="logDown" divided>退出登录</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-          <!--</el-dropdown>-->
-          <!--</div>-->
         </div>
         <div class="main_conter">
           <router-view></router-view>
@@ -26,12 +13,11 @@
   </el-row>
 </template>
 <script type="es6">
-  import NavMenuComponent from "@/components/NavMenuComponent";
+  // import NavMenuComponent from "@/components/NavMenuComponent";
   import MenuComponent from "@/components/MenuComponent";
-  import UserInfoView from "@/components/UserInfoView";
   import { mapGetters, mapActions } from "vuex";
   export default {
-    components: { NavMenuComponent, UserInfoView, MenuComponent },
+    components: { MenuComponent },
     name: "home",
     data() {
       return {

+ 7 - 19
src/pages/Login.vue

@@ -1,18 +1,4 @@
 
-<!-- <div class="bodyImg">
-<div class="container">
-    <div class="log-paper">
-      <img src="../assets/img/Land_sbg.png">
-    </div>
-    <div class="log-container">
-      <img class="log-icon" src="../assets/img/log.png">
-      <div class="log-text">欢迎登陆私塾家在线人员管理后台</div>
-      <div @click="WxLoginCtl" class="log-qrcode">
-        <div id="login_container"></div>
-      </div>
-    </div>
-  </div>
-</div> -->
 <template>
   <div class="login" style=" min-width: 650px!important;">
     <div class="login-paper">
@@ -34,10 +20,6 @@
 </template>
 
 <script>
-// import { mapActions } from "vuex";
-// import wx from 'weixin-js-sdk'
-// import $ from 'jquery'
-
 export default {
   name: "login",
   data() {
@@ -87,7 +69,9 @@ export default {
         this.WxCode = WxCode;
         console.log("获取Code" + this.WxCode);
         this.$store.dispatch("GET_TOKEN", {
-          code: this.WxCode
+          code: this.WxCode,
+          type:0,
+            // type:1,  //aikmt
         });
         // 清除重定向url中参数ocde,
         window.history.replaceState({}, "", `${location.pathname}`);
@@ -101,11 +85,15 @@ export default {
       self_redirect: false,
       id: "login_container",
       appid: "wxd18ca9555a939281", //正式环境
+        // appid: "wx5a83afb22813e986", //OSS正式环境
         //  appid: "wx7fe760dc3c45794d", //实训环境
+        //  appid: "wx3d4605f43beda11a", //测试环境
       scope: "snsapi_login",
       redirect_uri: encodeURIComponent(
         "https://kmt.sharingschool.com/aijia/manager/index.html#/" //正式环境
+          // "https://aikmt.sharingschool.com/manager/index.html#/" //OSS正式环境
           // "https://sxkmt.sharingschool.com/manager/index.html#/" //实训环境
+          //  "https://xtkmt.sharingschool.com/manager/index.html#/" //测试环境
       ),
       state: "",
       style: "width: 250px",

+ 0 - 23
src/pages/OnlineTeacher/onlineteacher.vue

@@ -1,23 +0,0 @@
-<template>
-  <div>
-    vue模板
-  </div>
-</template>
-<script>
-export default {
-  name: "model",
-  components: {},
-  props: {},
-  data() {
-    return {};
-  },
-  watch: {},
-  computed: {},
-  methods: {},
-  mounted() {}
-};
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-</style>

+ 2 - 18
src/pages/Onteacher.vue

@@ -3,20 +3,7 @@
     <el-col :span="24" class="">
       <div class="conterLayout">
         <div class="main_header">
-          <teacherCompoent></teacherCompoent>
-          <!--<div class="main_header_user">-->
-          <!--<el-dropdown @command="handleCommand">-->
-          <!--<div class="el-dropdown-link" style="position: relative;cursor: pointer;">-->
-          <!--<span style="margin-right:30px; font-size: .14rem;"> {{getUser.name}} </span>-->
-          <!--&lt;!&ndash;<i class="el-icon-caret-right"></i>&ndash;&gt;-->
-          <!--<span class="out">退出</span>-->
-          <!--</div>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-          <!--<el-dropdown-item command="modifyPwd">修改密码</el-dropdown-item>-->
-          <!--<el-dropdown-item command="logDown" divided>退出登录</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-          <!--</el-dropdown>-->
-          <!--</div>-->
+          <!-- <teacherCompoent></teacherCompoent> -->
         </div>
         <div class="main_conter">
           <router-view></router-view>
@@ -26,12 +13,9 @@
   </el-row>
 </template>
 <script type="es6">
-  import NavMenuComponent from "@/components/NavMenuComponent";
-  import teacherCompoent from "@/components/teacherCompoent";
-  import UserInfoView from "@/components/UserInfoView";
   import { mapGetters, mapActions } from "vuex";
   export default {
-    components: { NavMenuComponent, UserInfoView, teacherCompoent },
+    components: {  },
     name: "home",
     data() {
       return {

+ 1 - 16
src/pages/Super.vue

@@ -4,19 +4,6 @@
       <div class="conterLayout">
         <div class="main_header">
           <SuperComponent></SuperComponent>
-          <!--<div class="main_header_user">-->
-          <!--<el-dropdown @command="handleCommand">-->
-          <!--<div class="el-dropdown-link" style="position: relative;cursor: pointer;">-->
-          <!--<span style="margin-right:30px; font-size: .14rem;"> {{getUser.name}} </span>-->
-          <!--&lt;!&ndash;<i class="el-icon-caret-right"></i>&ndash;&gt;-->
-          <!--<span class="out">退出</span>-->
-          <!--</div>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-          <!--<el-dropdown-item command="modifyPwd">修改密码</el-dropdown-item>-->
-          <!--<el-dropdown-item command="logDown" divided>退出登录</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-          <!--</el-dropdown>-->
-          <!--</div>-->
         </div>
         <div class="main_conter">
           <router-view></router-view>
@@ -26,12 +13,10 @@
   </el-row>
 </template>
 <script type="es6">
-  import NavMenuComponent from "@/components/NavMenuComponent";
   import SuperComponent from "@/components/SuperComponent";
-  import UserInfoView from "@/components/UserInfoView";
   import { mapGetters, mapActions } from "vuex";
   export default {
-    components: { NavMenuComponent, UserInfoView,SuperComponent },
+    components: { SuperComponent },
     name: "super",
     data() {
       return {

+ 25 - 20
src/pages/home/SchoolManager.vue

@@ -16,7 +16,7 @@
       <el-col :span="18" class="main" v-if="modelindex == 0">
         <el-row :gutter="20" class="main-header">
           <el-col :span="24">
-            <el-col :span="14" :offset="0">
+            <el-col :span="8" :offset="0">
               <div
                 @click="handApor()"
                 :class="{Apporvalactive:Activeindex == false,ApporStyles:true}"
@@ -26,7 +26,7 @@
                 :class="{Apporvalactive:Activeindex == true,ApporStyles:true}"
               >匹配知识点老师</div>
             </el-col>
-            <el-col :span="10">
+            <el-col :span="10" :offset="6">
               <div class="selectBox">
                 <div
                   class="Ageclass"
@@ -79,19 +79,19 @@
                   />
                   <span
                     v-if="this.Activeindex == false"
-                    @click="InfoWatch"
+                    @click="InfoWatch()"
                     class="miinorSeachIcon el-icon-search"
                   ></span>
                   <span
                     v-if="this.Activeindex == true"
-                    @click="InfoKonwTeacherWatchList"
+                    @click="InfoKonwTeacherWatchList()"
                     class="miinorSeachIcon el-icon-search"
                   ></span>
                 </div>
               </div>
             </el-col>
           </el-col>
-          <el-col :span="14" :offset="1">
+          <el-col :span="22" :offset="1">
             <div class="main-header-item displayBox">在线:{{monitorTeacherList.onlineCount}}人</div>
             <div class="main-header-item displayBox">离线:{{monitorTeacherList.offlineCount}}人</div>
             <div class="main-header-item displayBox">
@@ -387,12 +387,12 @@
                       />
                       <span
                         v-if="this.DayActiveindex == false"
-                        @click="InfoWatchDay"
+                        @click="InfoWatchDay()"
                         class="DaySeachIcon el-icon-search"
                       ></span>
                       <span
                         v-if="this.DayActiveindex == true"
-                        @click="InfoKonwTeacherDayApprvalList"
+                        @click="InfoKonwTeacherDayApprvalList()"
                         class="DaySeachIcon el-icon-search"
                       ></span>
                     </div>
@@ -439,7 +439,7 @@
                 <div>正确率</div>
                 <div style="width:240px;" v-if="this.DayActiveindex == false">平均批改时间</div>
                 <div style="width:240px;" v-if="this.DayActiveindex == true">平均匹配时间</div>
-                <div>出勤</div>
+                <!-- <div>出勤</div> -->
               </div>
               <div class="tr" v-for="(v, k) of DayTeacherList.list" :key="k">
                 <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
@@ -455,7 +455,7 @@
                   <div>{{v.homeworkPicCount}}/张</div>
                   <div>{{v.accuracyRate}}</div>
                   <div style="width:240px;">{{v.avgTime}}</div>
-                  <div>{{v.attendance}}</div>
+                  <!-- <div>{{v.attendance}}</div> -->
                   <!-- <div v-if="v.attendance == 正常">{{v.attendance}}</div>
                   <div style="color:#52cc60;" v-if="v.attendance == 未出勤">{{v.attendance}}</div>-->
                 </div>
@@ -521,12 +521,12 @@
                       />
                       <span
                         v-if="this.MonthActiveindex == false"
-                        @click="InfoWatchMoth"
+                        @click="InfoWatchMoth()"
                         class="DaySeachIcon el-icon-search"
                       ></span>
                       <span
                         v-if="this.MonthActiveindex == true"
-                        @click="InfoKonwTeacherMonthApprvalList"
+                        @click="InfoKonwTeacherMonthApprvalList()"
                         class="DaySeachIcon el-icon-search"
                       ></span>
                     </div>
@@ -540,7 +540,7 @@
                       v-model="filters2.MaxtimeValue"
                       type="month"
                       value-format="yyyy-MM"
-                      placeholder="选择月"
+                      placeholder="选择月"
                       :picker-options="pickerOptions0"
                     ></el-date-picker>
                   </div>
@@ -550,7 +550,7 @@
           </el-col>
         </el-row>
         <el-row :gutter="20" class="main-header">
-          <el-col :span="4" :offset="1">
+          <el-col :span="4" :offset="0">
             <div class="main-header-item">月出勤率:{{MothTeacherList.totalAttendanceRate}}</div>
           </el-col>
           <!-- <el-col :span="4">
@@ -673,7 +673,7 @@
               v-model="inputValueAllot"
               class="input-with-Allot"
             />
-            <span @click="SearchTeacherAllot" class="SeachIcon el-icon-search"></span>
+            <span @click="SearchTeacherAllot()" class="SeachIcon el-icon-search"></span>
           </div>
           <div>{{allotList.Allotgarde}}{{allotList.Allotsubjct}}</div>
         </div>
@@ -835,7 +835,7 @@
               v-model="AllinputValueAllot"
               class="input-with-Allot"
             />
-            <span @click="SearchValueAllot" class="SeachIcon el-icon-search"></span>
+            <span @click="SearchValueAllot()" class="SeachIcon el-icon-search"></span>
           </div>
           <div>
             <img src="../../assets/img/del@2x.png" alt @click="allShowModel(5)" />
@@ -900,6 +900,7 @@
         <div class="model-manager">
           <div v-if="this.Activeindex == false">批改老师</div>
           <div v-if="this.Activeindex == true">匹配知识点老师</div>
+            <div v-if="this.teacherRoles ==11">(校区管理员)</div>
           <div>
             <img src="../../assets/img/del@2x.png" alt @click="allShowModel(3)" />
           </div>
@@ -928,25 +929,25 @@
             </div>
           </div>
           <div
-            class="model-items-other model-active"
+            class="model-items-other"
             v-if="this.Activeindex == false"
           >批改科目 : {{GetTeacherDetail.subject}}</div>
           <div
-            class="model-items-other"
+            class="model-items-other model-active"
             v-if="this.Activeindex == true"
           >批改科目 : {{GetTeacherDetail.subject}}</div>
-          <div class="model-items-other" v-if="this.Activeindex == false">
+          <div class="model-items-other model-active" v-if="this.Activeindex == false">
             批改年级 :
             <span v-for="(v, k) of arrGrade" :key="k">{{v}},</span>
           </div>
-          <div class="model-items-other model-active">
+          <!-- <div class="model-items-other model-active">
             可批改时间:
             <div class="buttonAppoval">
               <div class="TeacherApporTime" v-for="(v, k) of arrPeriod" v-show="v" :key="k">
                 <span>{{v}}</span>
               </div>
             </div>
-          </div>
+          </div> -->
           <div class="model-items-other">手机号 : {{GetTeacherDetail.phone}}</div>
           <div class="model-items-other model-active">上次登录时间 : {{GetTeacherDetail.lastOnlineTime}}</div>
           <div
@@ -1048,6 +1049,7 @@ export default {
       TeacherType: 8,
       TeacherCheackStyle: 2,
       TeacherApporvalStyle: 1,
+      teacherRoles:"",
       pickerOptions0: {
         disabledDate(time) {
           return time.getTime() > Date.now() - 8.64e6;
@@ -1701,6 +1703,7 @@ export default {
         this.UnallotHomework();
       } else if (str == 3) {
         _this.ModelAppor = true;
+           this.teacherRoles = v.role;
         this.GetTeacherInfo(v);
       } else if (str == 4) {
         _this.ModelStudet = true;
@@ -2421,6 +2424,7 @@ el-table {
   height: 30px;
 }
 .model-items-left-top {
+  float:left;
   display: flex;
   justify-content: space-between;
 }
@@ -2489,6 +2493,7 @@ el-table {
   display: inline-block;
   margin-right: 20px;
   margin-bottom: 30px;
+ 
 }
 .input-with-Allot {
   border: #b6b6b6;

+ 14 - 2
src/pages/super/CheckTeacherAudit.vue

@@ -105,6 +105,16 @@
 								<div class="bank-active" @click="isShow(4,scope.row)">{{scope.row.bankName}}</div>
 					  </template>
 					</el-table-column>
+          		<el-table-column
+					  prop="regisTime"
+					  label="注册时间"
+					  header-align="center"
+					  width="100"
+					>
+					  <template slot-scope="scope">
+								<div class="">{{scope.row.regisTime}}</div>
+					  </template>
+					</el-table-column>
           <el-table-column prop="status" label="" header-align="center" width="250">
             <template slot-scope="scope">
               <el-button type="danger" @click="isShow(2,scope.row.teacherId,scope.row.name)">不通过</el-button>
@@ -424,7 +434,8 @@
 							bankIcon:res[i].bankIcon,
 							cardholder:res[i].cardholder,
 							cardNumber:res[i].cardNumber,
-							bankBranch:res[i].bankBranch
+              bankBranch:res[i].bankBranch,
+              regisTime:res[i].regisTime
             })
           }
           return d
@@ -744,7 +755,8 @@
 .model-info-items-right{
 	display: inline-block;
 	width: 70%;
-	padding-left: 60px;
+  padding-left: 60px;
+  line-height:30px;
 }
 .model-info-items-right-img{
 	width: 35px;

+ 20 - 16
src/pages/super/CheckTeacherPay.vue

@@ -12,7 +12,7 @@
                 <el-date-picker
                   v-model="selMonth"
                   type="month"
-                  placeholder="选择月"
+                  placeholder="选择月"
                   value-format="yyyy-MM"
                   :picker-options="pickerOptions0"
                   @change="GetTeacherSalaryListDatas()"
@@ -29,7 +29,7 @@
               @click="AutoApor()"
               :class="{superactive:Activeindex == true,ApporStyles:true}"
             >匹配知识点老师</div> -->
-						<div  v-for="(item, key) of teacherList" :key="key" @click="teacherType(key)" :class="{superactive:ActiveIndex == key,ApporStyles:true}">{{item}}</div>
+						<div  v-for="(item, key) of teacherList" :key="key" @click="teacherType(key)" :class="{teacfertypeactive:ActiveIndex == key,ApporStyles:true}">{{item}}</div>
           </el-col>
           <el-col :span="4" :offset="2">
             <div class="main-header-item">
@@ -63,13 +63,13 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column prop="attendanceCount" label="是否有底薪" header-align="center">
-              <template slot-scope="scope">
+          <el-table-column prop="basicSalary" label="是否有底薪" header-align="center">
+              <!-- <template slot-scope="scope">
               <div class="scope-list">
                 <span v-if="scope.row.whetherHaveBasicSalary == 1"  class="scope-name">是</span>
                   <span v-if="scope.row.whetherHaveBasicSalary == 0"  class="scope-name">无</span>
               </div>
-            </template>
+            </template> -->
           </el-table-column>
           <el-table-column prop label="1~2年级" header-align="center" height="200">
             <el-table-column prop="autoLowGradeCount" label="自动批改(0.2元/张)" width="100"></el-table-column>
@@ -94,7 +94,7 @@
               :current-page.sync="currentPage"
             :page-sizes="[10,50,100,200]"
             layout="sizes,total,prev, pager, next"
-               :hide-on-single-page="true"
+              
             :total="parseInt(getTeacherSalaryList.pages)"
           ></el-pagination>
         </div>
@@ -123,13 +123,13 @@
               </div>
             </template>
           </el-table-column>
-            <el-table-column prop="attendanceCount" label="是否有底薪" header-align="center">
-              <template slot-scope="scope">
+            <el-table-column prop="basicSalary" label="是否有底薪" header-align="center">
+              <!-- <template slot-scope="scope">
               <div class="scope-list">
                 <span v-if="scope.row.whetherHaveBasicSalary == 1"  class="scope-name">是</span>
                   <span v-if="scope.row.whetherHaveBasicSalary == 0"  class="scope-name">无</span>
               </div>
-            </template>
+            </template> -->
             </el-table-column>
           <el-table-column  prop="correctCount" label="批改张数(0.1元/张)" header-align="center">
           </el-table-column>
@@ -143,7 +143,7 @@
               :page-sizes="[10,50,100,200]"
                :current-page.sync="currentPage"
             layout="sizes, total,prev, pager, next"
-               :hide-on-single-page="true"
+           
             :total="parseInt(GetKnowledgeTeacherSalaryList.pages)"
           ></el-pagination>
         </div>
@@ -325,13 +325,13 @@ export default {
         } else {
           let arr = this.getTeacherSalaryList.list;
           let str =
-            "注册老师,出勤天数,1~2年级自动批改0.2元/张,1~2年级手动批改0.3元/张,3~4年级自动批改0.3元/张,3~4年级手动批改0.4元/张,5~6年级自动批改0.4元/张,5~6年级手动批改0.5元/张,总计/元";
+            "注册老师,是否有底薪,1~2年级自动批改0.2元/张,1~2年级手动批改0.3元/张,3~4年级自动批改0.3元/张,3~4年级手动批改0.4元/张,5~6年级自动批改0.4元/张,5~6年级手动批改0.5元/张,总计/元";
           for (let i = 0; i < arr.length; i++) {
             str +=
               "\n" +
               arr[i].name +
               "," +
-              arr[i].attendanceCount +
+             arr[i].basicSalary +
               "," +
               arr[i].autoLowGradeCount +
               "," +
@@ -391,13 +391,13 @@ export default {
         } else {
           let arr = this.getTeacherSalaryList.list;
           let str =
-            "注册老师,出勤天数,批改张数(0.2元/张),总计/元";
+            "注册老师,是否有底薪,批改张数(0.2元/张),总计/元";
           for (let i = 0; i < arr.length; i++) {
             str +=
               "\n" +
               arr[i].name +
               "," +
-              arr[i].attendanceCount +
+              arr[i].basicSalary +
               "," +
               arr[i].correctCount +
               "," +
@@ -659,7 +659,7 @@ export default {
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
+<style>
 .main {
   background-color: #fff;
   margin-top: 16px;
@@ -786,8 +786,12 @@ el-table {
   color: #7c819d;
   cursor: pointer;
 }
-.superactive {
+.teacfertypeactive {
   background-color: #52cc60;
   color: #fff;
 }
+.el-pagination .el-select .el-input {
+    /* width: 120px; */
+    margin: 0 -100px!important;
+}
 </style>

+ 257 - 127
src/pages/super/ComposeType.vue

@@ -13,9 +13,11 @@
         >{{v.text}}</div>
       </el-col>
       <!--排班表-->
-      <el-col :span="17" class="main" v-if="modelindex == 0">
+      <!-- {{NextOrNewMonthStatus.NextOrNewMonthStatus}} -->
+      <el-col  :span="17" class="main" v-if="modelindex == 0 && NextOrNewMonthStatus.NextOrNewMonthStatus == false">
         <el-row :gutter="20">
-          <el-col :span="10" :offset="2">
+          <!-- {{NextOrNewMonthStatus}} -->
+          <el-col :span="8" :offset="2">
             <div class="selectBox">
               <div
                 class="Ageclass"
@@ -59,26 +61,40 @@
               </div>
             </div>
           </el-col>
-          <el-col :span="12" class="month">
-            <span>{{currentDateStr }}排班情况</span>
+          <el-col :span="6" class="month">
+            <span class="tiplog">{{currentDateStr }}排班情况</span>
             <!-- {{DutyTemplateListSTUS}} -->
           </el-col>
+          <el-col :span="4" class="month">
+            <div
+              @click="shoeNextOrlastMOntlist(1)"
+              class="NextMonthList"
+            >
+              查看下月排班情况
+              <span class="el-icon-arrow-right"></span>
+            </div>
+          </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="20" :offset="2">
             <!-- 日期 -->
             <div class="date">
               <div class="calendar-week">
-                <div class="week-item" v-for="item of weekList" :key="item">{{ item }}</div>
+                <div class="week-item" v-for="item of weekList" :key="item">
+                  <span :class="[item == '六' || item == '日'?'grayRed':'']">{{item}}</span>
+                </div>
               </div>
-              <div class="calendar-inner">
+              <div
+                class="calendar-inner"
+                v-if="FindCalendarList.list && FindCalendarList.list.length >0"
+              >
                 <div
                   class="calendar-item"
                   v-for="(item, index) of calendarList"
                   :key="index"
                   :class="[item.disable ? 'disabled' : '']"
                 >
-                  <el-popover placement="bottom" width="500" trigger="click">
+                  <el-popover placement="top" width="500" trigger="click">
                     <div class="month-day">{{month}}月{{today}}日</div>
                     <el-table
                       :data="gridData"
@@ -133,7 +149,6 @@
                     </el-table>
                     <div
                       slot="reference"
-                       
                       @click="classSet(index,item.date,item.month,item.dateList.intervalList)"
                       :class="[item.pastDay ? 'psatchecked' : '']"
                       class="day-setting"
@@ -166,25 +181,34 @@
         </el-row>
       </el-col>
       <!--排班设置-->
-      <!-- <SuperworkListSeting v-if="this.modelindex == 1"></SuperworkListSeting> -->
       <el-col :span="17" class="main" v-if="modelindex == 1">
         <el-row :gutter="20">
           <el-col :span="18" class="month" :offset="2">
-            <span>{{currentDateStr }}排班设置</span>
+            <span class="tiplog">{{currentDateStr }}排班设置</span>
             <div
+              v-if="this.D <=24"
               class="model-btn-items model-grdeen"
-              style="float:right"
+              style="float:right; cursor: pointer;  "
               @click="saveOpenCloseDAys()"
             >保存</div>
+            <div v-if="this.D >24" class="tiplogPb" style="float:right; cursor: pointer;  ">
+              请在每月
+              <span style="color:#52CC60;">24号</span>之前设置排班,当前时间已关闭!
+            </div>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="20" :offset="2">
             <div class="date">
               <div class="calendar-week">
-                <div class="week-item" v-for="item of weekList" :key="item">{{ item }}</div>
+                <div class="week-item" v-for="item of weekList" :key="item">
+                  <span :class="[item == '六' || item == '日'?'grayRed':'']">{{item}}</span>
+                </div>
               </div>
-              <div class="calendar-inner">
+              <div
+                class="calendar-inner"
+                v-if="DutyTemplateListInfo.dayList && DutyTemplateListInfo.dayList.length>0"
+              >
                 <div
                   class="calendar-item"
                   v-for="(item, index) of setCalendarList"
@@ -192,11 +216,11 @@
                   :class="[item.disable ? 'disabled' : '']"
                 >
                   <el-popover placement="bottom" width="108" trigger="click">
-                    <div class="date-set"  v-if="!item.disable">
+                    <div class="date-set" v-if="!item.disable">
                       <div @click="UnOrWaitOpen(item,1,index)">待开放</div>
                       <div @click="UnOrWaitOpen(item,2,index)">不开放</div>
                     </div>
-                      <div class="date-set"  v-if="item.disable">当前时段不可操作!</div>
+                    <div class="date-set" v-if="item.disable">当前时段不可操作!</div>
                     <div
                       slot="reference"
                       @click="settingClick(index)"
@@ -205,12 +229,12 @@
                     >
                       <div class="date-day-set-num">{{ item.date }}</div>
                       <div>
-                            <div class="date-day-set" v-if="item.dateList.isOpen == 1">待开放</div>
-                      <div
-                        class="date-day-set"
-                        style="color:#FF6465"
-                        v-if="item.dateList.isOpen == 0"
-                      >不开放</div>
+                        <div class="date-day-set" v-if="item.dateList.isOpen == 1">待开放</div>
+                        <div
+                          class="date-day-set"
+                          style="color:#FF6465"
+                          v-if="item.dateList.isOpen == 0"
+                        >不开放</div>
                       </div>
                     </div>
                   </el-popover>
@@ -220,10 +244,16 @@
           </el-col>
         </el-row>
       </el-col>
+      <!-- 下个月排班实施动态 -->
+      <NextMonthList   v-if="modelindex == 0 && NextOrNewMonthStatus.NextOrNewMonthStatus == true"></NextMonthList>
     </el-row>
     <!-- 添加移除老师弹框 -->
     <div class="showModel" @click="allShowModel(3)" v-if="isApporTeacher"></div>
-    <div class="model" style="width:30%; top:10%;" v-if="isApporTeacher">
+    <div
+      class="model min-widthScrol"
+      style="width:40%; top:10%;min-width: 300px;"
+      v-if="isApporTeacher"
+    >
       <div class="model-text">
         <div class="model-text-head">
           <div class="teach-block">
@@ -241,10 +271,10 @@
               />
               <span @click="SearchFindHaveTeacher()" class="DaySeachIcon el-icon-search"></span>
             </div>
-            <div style="font-size:12px;text-align:left;font-weight:700;margin-bottom:10px;">
+            <div>
               <span class="tr-slogn">最少:{{FindHaveTeacherList.arrangeDetail.miniNum}}</span>
               <span class="tr-slogn">已选:{{FindHaveTeacherList.arrangeDetail.haveNum}}</span>
-              <span class="tr-slogn">饱和:{{FindHaveTeacherList.arrangeDetail.miniNum}}</span>
+              <span class="tr-slogn">饱和:{{FindHaveTeacherList.arrangeDetail.maxNum}}</span>
             </div>
           </div>
           <div>
@@ -257,23 +287,29 @@
             <div class="tr-secon1">科目</div>
             <div class="tr-secon1">出勤率</div>
             <div class="tr-secon1">在岗率</div>
-            <div class="tr-secon1">当月已选时段</div>
+            <div class="tr-secon1" style="width:30%;">当月已选时段</div>
           </div>
           <div class="abbTeachers" @click="showAddTeacherModel">
             <span class="addLogicon">+</span> 添加老师
           </div>
           <div class="scrollBox">
-            <div class="tr-set" v-for="(item, index) of FindHaveTeacherList.list" :key="index">
+            <div
+              class="tr-set"
+              :class="{BgcColor:index%2 !== 1}"
+              v-for="(item, index) of FindHaveTeacherList.list"
+              :key="index"
+            >
               <div class="tr-secon">
                 <img :src="BASE_URL + item.photo" alt class="table-img" v-if="item.photo" />
                 <img src="../../assets/img/attt.png" alt v-if="item.photo ==''" class="table-img" />
               </div>
-              <div class="tr-secon">{{item.teacherName}}</div>
+              <div class="tr-secon tr-sw200">{{item.teacherName}}</div>
               <div class="tr-secon tr-sw100">{{item.subject}}</div>
               <div class="tr-secon tr-sw100">{{item.attendanceRatio}}%</div>
               <div class="tr-secon tr-sw100">{{item.dutyRatio}}%</div>
               <div class="tr-secon tr-sw100" style="color:#7297FF">{{item.haveCount }}</div>
-              <div class="Buttonhole" @click="detailTeacherTeam(item)">移除</div>
+              <div v-if="item.isEdit==1" class="Buttonhole" @click="detailTeacherTeam(item)">移除</div>
+              <div v-if="item.isEdit==0" class="NoButtonhole"></div>
             </div>
           </div>
           <!-- <div class="btsnius">
@@ -285,11 +321,11 @@
     </div>
     <!-- 添加老师弹框 -->
     <div class="showModel" @click="allShowModel(4)" v-if="AddTeacherModel"></div>
-    <div class="model" style="width:30%; top:10%;" v-if="AddTeacherModel">
+    <div class="model" style="width:40%; top:10%;" v-if="AddTeacherModel">
       <div class="model-text">
         <div class="model-text-head">
           <div class="selectTeacher">选择老师</div>
-          <div class="teach-block">
+          <div class="teach-block1">
             <div class="Dayteach-Allot1">
               <input
                 type="text"
@@ -299,13 +335,10 @@
               />
               <span @click="SearchNoHaveTeacher()" class="DaySeachIcon el-icon-search"></span>
             </div>
-            <div>
-              <span
-                style="font-size:12px;text-align:left;font-weight:700"
-                class
-              >最少:{{FindNoHaveTeacherList.arrangeDetail.miniNum}}</span>
-              <span class="tr-slogn">饱和:{{FindNoHaveTeacherList.arrangeDetail.maxNum}}</span>
-              <span class="tr-slogn">已选:{{FindNoHaveTeacherList.arrangeDetail.haveNum}}</span>
+            <div class="tiplogslogn">
+              <span class="tr-slogn1">最少:{{FindNoHaveTeacherList.arrangeDetail.miniNum}}</span>
+              <span class="tr-slogn1">饱和:{{FindNoHaveTeacherList.arrangeDetail.maxNum}}</span>
+              <span class="tr-slogn1">已选:{{FindNoHaveTeacherList.arrangeDetail.haveNum}}</span>
             </div>
           </div>
           <div>
@@ -318,10 +351,15 @@
             <div class="tr-secon1">科目</div>
             <div class="tr-secon1">出勤率</div>
             <div class="tr-secon1">在岗率</div>
-            <div class="tr-secon1">当月已选时段</div>
+            <div class="tr-secon1" style="width:30%;">当月已选时段</div>
           </div>
           <div class="scrollBox">
-            <div class="tr-set" v-for="(item, index) of FindNoHaveTeacherList.list" :key="index">
+            <div
+              class="tr-setMargin"
+              :class="{BgcColor:index%2 !== 1}"
+              v-for="(item, index) of FindNoHaveTeacherList.list"
+              :key="index"
+            >
               <div class="tr-secon">
                 <img :src="BASE_URL + item.photo" alt class="table-img" v-if="item.photo" />
                 <img src="../../assets/img/attt.png" alt v-if="item.photo ==''" class="table-img" />
@@ -379,11 +417,11 @@
 </template>
 <script>
 import { mapGetters, mapActions } from "vuex";
-import SuperworkListSeting from "@/components/SuperworkListSeting.vue";
+import NextMonthList from "@/components/NextMonthList.vue";
 import { IMG_BASE_URL } from "@/ImgConfig";
 import { Message } from "element-ui";
 export default {
-  components: {SuperworkListSeting},
+  components: { NextMonthList },
   name: "actvResolveLabel",
   props: {},
   data() {
@@ -396,6 +434,7 @@ export default {
       isSelected: false,
       BASE_URL: IMG_BASE_URL,
       selMonth: "",
+      ShowNextMonthList: false,
       hiddenModel: false,
       isPigai: false,
       isApporTeacher: false,
@@ -414,10 +453,10 @@ export default {
       today: "",
       teacherIds: [],
       detetaiTeacherid: [],
-      DetailteacherName:'',
+      DetailteacherName: "",
       gridData: [],
       SettingDays: [],
-      setrefultList:[],
+      setrefultList: [],
       filters: {
         actvNm: "",
         actvCrtUserId: "",
@@ -470,7 +509,7 @@ export default {
           value: "2",
           label: "英语",
           str: "英语"
-        },
+        }
       ],
       allotList: {
         pageNo: 1,
@@ -492,7 +531,7 @@ export default {
   },
   created() {
     this.GetFindCalendarListInfo();
-    this.GetDutyTemplateListInfo()
+    this.GetDutyTemplateListInfo();
   },
   watch: {
     SaveSysTeacherDutyStatus(val, oldVal) {
@@ -504,28 +543,26 @@ export default {
       //排班列表请求成功的watch监听回调
       this.init();
     },
-       DeleteArrangeByTeacher(val, oldVal) {
+    DeleteArrangeByTeacher(val, oldVal) {
       // debugger
       //保存排班设置成功的watch监听回调
       this.GetFindCalendarListInfo();
     },
-      AddArrangeByTeacherStatus(val, oldVal) {
+    AddArrangeByTeacherStatus(val, oldVal) {
       // debugger
       //保存排班设置成功的watch监听回调
       this.GetFindCalendarListInfo();
     },
     TeacherThisMonthDutyREfultInfo(val, oldVal) {
-           var that = this;
-          if (that.DutyTemplateListInfo && that.DutyTemplateListInfo.dayList){
-          for (let t = 0; t < that.DutyTemplateListInfo.dayList.length; t++) {
-            if (that.DutyTemplateListInfo.dayList[t].isOpen == 0) {
-              this.SettingDays.push(that.DutyTemplateListInfo.dayList[t].day);
-            }
-        
+      var that = this;
+      if (that.DutyTemplateListInfo && that.DutyTemplateListInfo.dayList) {
+        for (let t = 0; t < that.DutyTemplateListInfo.dayList.length; t++) {
+          if (that.DutyTemplateListInfo.dayList[t].isOpen == 0) {
+            this.SettingDays.push(that.DutyTemplateListInfo.dayList[t].day);
           }
-           
-        } 
-    },
+        }
+      }
+    }
   },
   // ,'homeworkRecoveryList'
   computed: {
@@ -539,7 +576,8 @@ export default {
       "DutyTemplateListInfo",
       "DutyTemplateListSTUS",
       "TeacherThisMonthDutyREfultInfo",
-      "DeleteArrangeByTeacher"
+      "DeleteArrangeByTeacher",
+      "NextOrNewMonthStatus"
     ]),
     // 显示当前时间
     currentDateStr() {
@@ -553,13 +591,21 @@ export default {
     tableheaderClassName({ row, rowIndex }) {
       return "table-head-th";
     },
+    // 切换下月当月排班表
+    shoeNextOrlastMOntlist(str) {
+      if (str == 1) {
+          this.$store.dispatch("NextOrNewMonthAction", {
+          NextOrNewMonthStatus:true ,
+      });
+      }
+    },
     //弹框
-    isShow(str, id, timeFnd,DaytimeFn) {
+    isShow(str, id, timeFnd, DaytimeFn) {
       let _this = this;
       if (str == 1) {
-       if (timeFnd < -4 && DaytimeFn <= 0 || DaytimeFn < 0 ){
+        if ((timeFnd < -4 && DaytimeFn <= 0) || DaytimeFn < 0) {
           _this.isApporTeacher = true;
-             this.HaveTeacherList.teacherName = '';
+          this.HaveTeacherList.teacherName = "";
           this.HaveTeacherList.Teacherid = id;
           this.GetFindHaveTeacherListInfo();
         } else {
@@ -587,14 +633,15 @@ export default {
       }
     },
     showAddTeacherModel() {
-      this.NoHaveTeacherList.teacherName = ''
+      this.teacherIds = [];
+      this.NoHaveTeacherList.teacherName = "";
       this.isApporTeacher = false;
       this.AddTeacherModel = true;
       this.GetFindNoHaveTeacherListInfo();
     },
     // 时段移除老师
     detailTeacherTeam(item) {
-        this.DetailteacherName =  item.teacherName;
+      this.DetailteacherName = item.teacherName;
       this.isApporTeacher = false;
       this.hiddenModel = true;
       this.detetaiTeacherid = item.teacherId;
@@ -615,9 +662,10 @@ export default {
       } else if (str == 2) {
         _this.isPigai = false;
       } else if (str == 3) {
-        this.HaveTeacherList.teacherName = '';
+        this.HaveTeacherList.teacherName = "";
         _this.isApporTeacher = false;
       } else if (str == 4) {
+        this.teacherIds = [];
         _this.AddTeacherModel = false;
         _this.isApporTeacher = true;
       } else if (str == 5) {
@@ -644,28 +692,30 @@ export default {
       // console.log(dateDiff + "时间差的毫秒数",dayDiff + "计算出相差天数",leave1 + "计算天数后剩余的毫秒数"
       //     ,hours + "计算出小时数",minutes + "计算相差分钟数",seconds + "计算相差秒数");
     },
-            DaytimeFn (d1) {//di作为一个变量传进来
-    //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
-    var dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/,使用new Date
-    var dateEnd = new Date();//获取当前时间
-    var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
-    var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
-    var leave1 = dateDiff % (24 * 3600 * 1000)    //计算天数后剩余的毫秒数
-    var hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数
-    //计算相差分钟数
-    var leave2 = leave1 % (3600 * 1000)    //计算小时数后剩余的毫秒数
-    var minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数
-    //计算相差秒数
-    var leave3 = leave2 % (60 * 1000)      //计算分钟数后剩余的毫秒数
-    var seconds = Math.round(leave3 / 1000)
-    // return hours
-    return dayDiff
-},
+    DaytimeFn(d1) {
+      //di作为一个变量传进来
+      //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
+      var dateBegin = new Date(d1.replace(/-/g, "/")); //将-转化为/,使用new Date
+      var dateEnd = new Date(); //获取当前时间
+      var dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数
+      var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
+      var leave1 = dateDiff % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
+      var hours = Math.floor(leave1 / (3600 * 1000)); //计算出小时数
+      //计算相差分钟数
+      var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
+      var minutes = Math.floor(leave2 / (60 * 1000)); //计算相差分钟数
+      //计算相差秒数
+      var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
+      var seconds = Math.round(leave3 / 1000);
+      // return hours
+      return dayDiff;
+    },
     // 获取校区管理员排班表
     async GetFindCalendarListInfo() {
       this.$store.dispatch("GetFindCalendarList", {
         type: this.filters.OptionsValue,
-        subject: this.filters.gradesValue
+        subject: this.filters.gradesValue,
+        month:""
       });
     },
     // 选中时段老师列表
@@ -684,7 +734,8 @@ export default {
     },
     // 时段添加老师
     async GetAddArrangeByTeacherStatus() {
-        this.AddTeacherModel = false
+      // this.teacherIds = []
+      this.AddTeacherModel = false;
       this.$store.dispatch("GetAddArrangeByTeacher", {
         id: this.HaveTeacherList.Teacherid,
         teacherIds: this.teacherIds
@@ -696,7 +747,7 @@ export default {
         days: this.SettingDays
       });
     },
-        async UnOrWaitOpen(item, type, Setindex) {
+    async UnOrWaitOpen(item, type, Setindex) {
       if (type == 1) {
         const index = this.SettingDays.indexOf(item.value);
         if (index > -1) {
@@ -716,7 +767,7 @@ export default {
     },
     // 排班设置返回接口
     async GetDutyTemplateListInfo() {
-        this.SettingDays = []
+      this.SettingDays = [];
       this.$store.dispatch("GetDutyTemplateList", {});
     },
     SearchNoHaveTeacher() {
@@ -749,7 +800,7 @@ export default {
         if (this.Nowmonth == this.current.month + 1) {
           this.nextMonth();
         }
-        this.SettingDays = []
+        this.SettingDays = [];
         this.GetDutyTemplateListInfo();
       }
     },
@@ -924,7 +975,7 @@ export default {
           year: year,
           month: curMonth,
           date: date,
-          disable: curMonth !== month ,
+          disable: curMonth !== month,
           status: false,
           pastDay: date < today && curMonth == month,
           value: this.stringify(year, curMonth, date)
@@ -941,41 +992,41 @@ export default {
         begin += oneDayMS;
       }
       var that = this;
-        if (that.FindCalendarList && that.FindCalendarList.list){
-      for (let i = 0; i < list.length; i++) {
-        if (!list[i].disable) {
-          const dateValue = list[i].value;
-          for (let t = 0; t < that.FindCalendarList.list.length; t++) {
-            if (dateValue == that.FindCalendarList.list[t].arrangeDate) {
-              list[i].dateList = that.FindCalendarList.list[t];
-              console.log(list[i].dateList)
+      if (that.FindCalendarList && that.FindCalendarList.list) {
+        for (let i = 0; i < list.length; i++) {
+          if (!list[i].disable) {
+            const dateValue = list[i].value;
+            for (let t = 0; t < that.FindCalendarList.list.length; t++) {
+              if (dateValue == that.FindCalendarList.list[t].arrangeDate) {
+                list[i].dateList = that.FindCalendarList.list[t];
+                console.log(list[i].dateList);
+              }
             }
+          } else {
+            list[i].dateList = {};
           }
-        } else {
-          list[i].dateList = {};
         }
       }
-        }
-     if (that.DutyTemplateListInfo && that.DutyTemplateListInfo.dayList){
+      if (that.DutyTemplateListInfo && that.DutyTemplateListInfo.dayList) {
         for (let i = 0; i < setList.length; i++) {
-        if (!setList[i].disable) {
-          const dateValue = setList[i].value;
-          for (let t = 0; t < that.DutyTemplateListInfo.dayList.length; t++) {
-            if (dateValue == that.DutyTemplateListInfo.dayList[t].day) {
-              setList[i].dateList = that.DutyTemplateListInfo.dayList[t];
+          if (!setList[i].disable) {
+            const dateValue = setList[i].value;
+            for (let t = 0; t < that.DutyTemplateListInfo.dayList.length; t++) {
+              if (dateValue == that.DutyTemplateListInfo.dayList[t].day) {
+                setList[i].dateList = that.DutyTemplateListInfo.dayList[t];
+              }
             }
+          } else {
+            setList[i].dateList = {};
           }
-        } else {
-          setList[i].dateList = {};
         }
       }
-     }
       this.calendarList = list;
       this.setCalendarList = setList;
     },
     // 排班点击
     classSet(k, d, m, intervalList) {
-      console.log(k,d,m)
+      console.log(k, d, m);
       this.month = m + 1;
       this.today = d;
       for (var i in this.calendarList) {
@@ -995,8 +1046,9 @@ export default {
   mounted() {
     // debugger
     sessionStorage.setItem("tabIndex", 5);
-
-    // console.log(DutyTemplateListInfo)
+    this.$store.dispatch("NextOrNewMonthAction", {
+          NextOrNewMonthStatus:false ,
+      });
   }
 };
 </script>
@@ -1071,7 +1123,7 @@ el-table {
   background: #000000;
   opacity: 0.2;
   overflow: hidden;
-  z-index: 1000;
+  z-index: 3000;
   color: #fff;
 }
 .model {
@@ -1212,20 +1264,28 @@ el-table {
   line-height: 130px;
 }
 .calendar-item.disabled {
-   color:#fff;
+  color: #fff;
 }
 .checked {
   background: #f6f7fb;
 }
-.psatchecked{
-    color: rgba(0, 0, 0, 0.3);
-     opacity: 0.5;
+.psatchecked {
+  color: rgba(0, 0, 0, 0.3);
+  opacity: 0.5;
 }
 .date-day {
   font-size: 16px;
   line-height: 60px;
   color: #aaa;
 }
+.tr-setMargin {
+  margin-top: 10px;
+  height: 50px;
+  line-height: 50px;
+}
+.BgcColor {
+  background-color: #f7fbfc;
+}
 .people {
   display: flex;
   justify-content: space-around;
@@ -1297,7 +1357,7 @@ el-table {
   height: 30px;
   line-height: 30px;
   border-radius: 15px;
-  margin:0 auto;
+  margin: 0 auto;
   color: #fff;
 }
 .abbTeachers {
@@ -1312,12 +1372,17 @@ el-table {
   margin: 10px 0px;
   cursor: pointer;
 }
+.tiplogPb {
+  font-size: 14px;
+  color: #7b809d;
+}
 .addLogicon {
   font-size: 30px;
   color: #1989fa;
   margin: 0px 20px;
 }
 .btsnius {
+  margin-top: 40px;
   width: 100%;
   height: 60px;
 }
@@ -1345,6 +1410,9 @@ el-table {
   border: 1px solid #52cc60;
   cursor: pointer;
 }
+.grayRed {
+  color: red;
+}
 .scrollBox {
   height: 400px;
   overflow: auto;
@@ -1380,7 +1448,18 @@ el-table {
   color: #fff;
   display: inline-block;
 }
+.NoButtonhole {
+  cursor: pointer;
+  margin-top: 10px;
+  width: 80px;
+  height: 30px;
+  line-height: 30px;
+  border-radius: 15px;
+  color: #fff;
+  display: inline-block;
+}
 .Selectradius {
+  cursor: pointer;
   display: inline-block;
 }
 .table-img {
@@ -1397,6 +1476,7 @@ el-table {
   display: inline-block;
 }
 .model-text-head {
+  padding: 0 !important;
   display: flex;
   color: #393939;
   font-size: 24px;
@@ -1414,8 +1494,8 @@ el-table {
 }
 .table-heads2 {
   background-color: #fff;
-  margin-left: 80px !important;
-  width: 400px;
+  margin-left: 110px !important;
+  width: 80%;
   font-weight: 700;
   color: #393939 !important;
   font-size: 18px;
@@ -1425,8 +1505,8 @@ el-table {
 }
 .table-heads3 {
   background-color: #fff;
-  margin-left: 100px !important;
-  width: 400px;
+  margin-left: 160px !important;
+  width: 70%;
   font-weight: 700;
   color: #393939 !important;
   font-size: 18px;
@@ -1441,7 +1521,7 @@ el-table {
   font-size: 12px;
   text-align: center;
   word-wrap: break-word;
-  width: 120px;
+  width: 18%;
   line-height: 50px;
 }
 .tr-secon {
@@ -1449,14 +1529,25 @@ el-table {
   text-align: center;
   word-wrap: break-word;
   width: 60px;
-  line-height: 50px;
+  line-height: 20px;
   display: inline-block;
 }
 
 .tr-sw100 {
-  width: 80px;
+  height: 40px;
+  line-height: 30px;
+  width: 13%;
   text-align: center;
 }
+.tr-sw200 {
+  width: 13%;
+  text-align: center;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  /* padding:10px;
+line-height:25px; */
+}
 .tiplog {
   height: 100px;
   width: 200px;
@@ -1486,17 +1577,25 @@ el-table {
 .teach-block {
   display: inline-block;
 }
+.teach-block1 {
+  display: inline-block;
+  width: 100%;
+}
+.min-widthScrol {
+  min-width: 300px;
+}
 .Dayteach-Allot {
   display: inline-block;
   width: 200px;
   position: relative;
   height: 30px;
   top: 5px;
-  right: -100px;
+  right: -15%;
 }
 .Dayteach-Allot1 {
   display: inline-block;
-  width: 200px;
+  width: 40%;
+  float: left;
   position: relative;
   height: 30px;
   top: 5px;
@@ -1505,7 +1604,7 @@ el-table {
   position: absolute;
   font-size: 20px;
   color: #b6b6b6;
-  right: 10%;
+  right: 5%;
   margin-top: 5px;
   cursor: pointer;
 }
@@ -1524,11 +1623,26 @@ el-table {
   outline: none !important;
   box-shadow: none;
 }
+.tiplogslogn {
+  display: inline-block;
+  float: right;
+  margin-top: 10px;
+  margin-right: 20px;
+}
 .tr-slogn {
   display: inline-block;
-  margin: 0 30px;
+  margin-right: 30px;
+  font-size: 12px;
+  text-align: left;
+  float: left;
+  font-weight: 700;
+}
+.tr-slogn1 {
+  display: inline-block;
+  margin-right: 10px;
   font-size: 12px;
   text-align: left;
+  float: left;
   font-weight: 700;
 }
 .selectTeacher {
@@ -1581,4 +1695,20 @@ el-table {
   position: relative;
   top: 0;
 }
+.NextMonthList {
+  cursor: pointer;
+  margin-top: 20px;
+  width: 250px;
+  height: 40px;
+  border-radius: 20px;
+  line-height: 40px;
+  background-color: #e7f3ff;
+  color: #7297ff;
+  font-size: 12px;
+}
+.IconLeftclass {
+  font-size: 35px;
+  cursor: pointer;
+  font-weight: 700;
+}
 </style>

+ 0 - 457
src/pages/super/HomeWorkRecover.vue

@@ -1,457 +0,0 @@
-<!-- 活动解析 -->
-<template>
-  <div>
-    <!-- table 表格 -->
-    <el-row :gutter="20" class="main-items" >
-
-      <!--数据监控-->
-      <el-col :span="20" class="main" :offset="2">
-
-        <el-table
-          :data="list"
-          highlight-current-row
-          size="medium"
-          border
-          stripe
-        >
-          <el-table-column
-            prop="school"
-            label="上传时间"
-            header-align="center"
-          >
-          </el-table-column>
-          <el-table-column
-            prop="subject"
-            label="科目"
-            header-align="center"
-          ></el-table-column>
-          <el-table-column
-            prop=""
-            label="学生"
-            header-align="center">
-          </el-table-column>
-          <el-table-column
-            prop=""
-            label="批改状况"
-            header-align="center"
-          >
-          </el-table-column>
-
-          <el-table-column prop="status" label="" header-align="center" width="250">
-            <template scope="scope">
-              <el-button type="danger" @click="isShow(2,scope.row.teacherId,scope.row.name)">去分配</el-button>
-            </template>
-          </el-table-column>
-
-        </el-table>
-        <!-- 分页显示 -->
-        <div class="page-block" v-if="parseInt(applyTeacherList.pages) > 0">
-          <el-pagination
-            background
-            @size-change="handleSizeChange"
-            @current-change="pageChange"
-            :page-sizes="[10]"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total= parseInt(applyTeacherList.pages)
-          ></el-pagination>
-        </div>
-      </el-col>
-
-
-    </el-row>
-
-    <!--是否通过-->
-    <div class='showModel' @click="allShowModel(1)" v-if="hiddenModel"></div>
-    <div class='model' v-if="hiddenModel">
-      <div class='model-text'>
-        <div class="model-text-items">
-          <div><img src="../../assets/img/del@2x.png" alt="" @click="allShowModel(1)" class="model-text-items-close"></div>
-          <div>是否要通过{{userName}}老师的注册申请?</div>
-        </div>
-        <div class="model-btn">
-          <div class="model-btn-items main-gay" @click="ApplyOperate()">是</div>
-          <div class="model-btn-items model-grdeen" @click="allShowModel(1)">否</div>
-        </div>
-      </div>
-    </div>
-    <!--是否驳回-->
-    <div class='showModel' @click="allShowModel(2)" v-if="isPigai"></div>
-    <div class='model' v-if="isPigai">
-      <div class='model-text'>
-        <div class="model-text-items">
-          <div><img src="../../assets/img/del@2x.png" alt="" @click="allShowModel(2)" class="model-text-items-close"></div>
-          <div>是否要驳回{{userName}}老师的注册申请?</div>
-        </div>
-        <div class="model-btn">
-          <div class="model-btn-items main-gay" @click="ApplyOperate()">是</div>
-          <div class="model-btn-items model-grdeen" @click="allShowModel(2)">否</div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-  import { mapGetters, mapActions } from "vuex";
-  import { IMG_BASE_URL } from '@/ImgConfig'
-  export default {
-    components: { },
-    name: "actvResolveLabel",
-    props: {},
-    data() {
-      return {
-          BASE_URL:IMG_BASE_URL,
-        hiddenModel:false,
-        applicantId:'',
-        operate:'',
-        list:[],
-        isPigai:false,
-            options: [
-        {
-          value: "0",
-          label: "一年级"
-        },
-        {
-          value: "1",
-          label: "二年级"
-        },
-        {
-          value: "2",
-          label: "三年级"
-        },
-        {
-          value: "3",
-          label: "四年级"
-        },
-        {
-          value: "4",
-          label: "五年级"
-        },
-        {
-          value: "5",
-          label: "六年级"
-        }
-      ],
-      grades: [
-        {
-          value: "0",
-          label: "语文"
-        },
-        {
-          value: "1",
-          label: "数学"
-        },
-        {
-          value: "2",
-          label: "英语"
-        }
-      ],
-        ItemList: [
-          {
-            text:'数据监控'
-          },
-          {
-            text:'当天'
-          },
-          {
-            text:'当月'
-          },
-        ],
-        filters: {
-          actvNm: "",
-          actvCrtUserId: "",
-          actvType: "",
-          actvSmallType: "",
-          // 排序
-          MaxtimeValue:'',
-          pageNo: 1,
-          pageSize: 10,
-          count: 0,
-          orderField: "",
-          orderAD: ""
-        }
-      };
-    },
-    watch: {},
-    computed: {
-      ...mapGetters(["getUser","applyTeacherList"])
-    },
-    methods: {
-      ...mapActions(["setUser"]),
-
-      isShow(str,res,ts){
-        let _this = this;
-        console.log(str)
-        _this.operate = str;
-        _this.applicantId = res;
-        _this.userName = ts
-        if (str == 1){
-          _this.hiddenModel = true;
-          _this.isPigai = false;
-        } else if (str == 2){
-          _this.isPigai = true;
-          _this.hiddenModel = false;
-        }
-
-      },
-      //关闭弹框
-      allShowModel(str) {
-        let _this = this;
-
-        if (str == 1){
-          _this.hiddenModel = false;
-        } else if (str == 2){
-          _this.isPigai = false;
-        }
-      },
-      //查看申请老师列表
-      async SuperApplyTeacherList() {
-        this.$store.dispatch("SuperApplyTeacherList", {
-          maxCreateTime: this.formatDate(),
-          pageNo: this.filters.pageNo,
-          pageSize: this.filters.pageSize
-        });
-        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(';'),
-              imgUrl: res[i].imgUrl,
-              name: res[i].name,
-              school:res[i].school,
-              teacherId:res[i].teacherId,
-              subject:res[i].subject
-            })
-          }
-          return d
-        })(this.applyTeacherList.list)
-        this.list = this.applyTeacherList.list;
-        console.log(this.list)
-      },
-      //申请审批操作
-      async ApplyOperate() {
-        this.$store.dispatch("ApplyOperate", {
-          applicantId: this.applicantId,
-          operate: this.operate,
-        });
-        this.allShowModel(this.operate)
-      },
-      //时间封装
-      formatDate: 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;
-        let h = date.getHours();
-        h = h < 10 ? ('0' + h) : h;
-        let m = date.getMinutes();
-        m = m < 10 ? ('0' + m) : m;
-        let s = date.getSeconds();
-        s = s < 10 ? ('0' + s) : s;
-        return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
-      },
-      // 数组去重
-      uniq(array){
-        var temp = []; //一个新的临时数组
-        for (var i = 0; i < array.length; i++){
-          if (temp.indexOf(array[i]) == -1) {
-            temp.push(array[i]);
-          }
-        }
-        return temp;
-      },
-      //年级封装
-      gradeBag:function (res) {
-        var arr = [];
-        if (this.applyTeacherList.list[res].grade) {
-          arr = this.applyTeacherList.list[res].grade.split(',');
-        } else {
-          arr = []
-        }
-        var arrList = [];
-        for (var i in arr) {
-          if (arr[i] == '一年级' || arr[i] == '二年级') {
-            arrList.push('1-2年级')
-          } else if (arr[i] == '三年级' || arr[i] == "四年级") {
-            arrList.push('3-4年级')
-          } else if (arr[i] == '五年级' || arr[i] == "六年级") {
-            arrList.push('5-6年级')
-          }
-        }
-        return this.uniq(arrList);
-      },
-      // 分页
-      pageChange(val) {
-        this.filters.pageNo = val;
-        this.SuperApplyTeacherList();
-      },
-      changeDateSlot(dateSlot) {
-        if (dateSlot) {
-          this.filters.startDate = dateSlot[0];
-          this.filters.endDate = dateSlot[1];
-        } else {
-          this.filters.startDate = null;
-          this.filters.endDate = null;
-        }
-      },
-      actvTypeChange(typeList) {
-        switch (typeList.length) {
-          case 1:
-            this.filters.actvType = typeList[0];
-            this.filters.actvSmallType = null;
-            break;
-          case 2:
-            this.filters.actvType = null;
-            this.filters.actvSmallType = typeList[1];
-            break;
-          default:
-            this.filters.actvType = null;
-            this.filters.actvSmallType = null;
-            break;
-        }
-      },
-      handleSizeChange(val) {
-        console.log(val)
-        this.filters.pageSize = val;
-        this.SuperApplyTeacherList();
-      },
-      // 排序
-      sortChange(sort) {
-        this.filters.orderField = sort.prop;
-        this.filters.orderAD = sort.order != null ? sort.order : "";
-        this.itemListReshow();
-      },
-      clearSearch() {
-        this.filters.actvNm = null;
-        this.filters.actvCrtUserId = null;
-        this.filters.actvType = null;
-        this.filters.actvSmallType = null;
-        this.filtersActvType = [];
-        this.createDateSlot = null;
-      },
-
-    },
-    mounted() {
-      this.SuperApplyTeacherList();
-
-      console.log(this.list)
-    }
-  };
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-
-  .main{
-    background-color: #fff;
-    margin-top: 16px;
-    padding: 0 !important;
-    border: 1px solid #E1E1E1;
-    min-height: 980px;
-  }
-
-  el-table{
-    color: #999999;
-    font-size: 18px;
-  }
-  .scope-name{
-    margin-left: 13px;
-  }
-  .main-items{
-    color: #393939;
-    text-align: center;
-    line-height: 80px;
-  }
-
-  .input-with-select .el-input-group__prepend {
-    background-color: #fff;
-  }
-
-  .table-img{
-    width:36px;
-    height:36px;
-    border-radius:6px;
-  }
-  .showModel{
-    width: 100%;
-    height: 100%;
-    position: fixed;
-    top: 0;
-    left: 0;
-    background: #000000;
-    opacity: 0.2;
-    overflow: hidden;
-    z-index: 1000;
-    color: #fff;
-
-  }
-  .model{
-    z-index: 1001;
-    width:40%;
-    height:auto;
-    position: fixed;
-    top: 30%;
-    left: 30%;
-    margin:auto;
-    background: #fff;
-    border-radius:10px;
-    text-align: center;
-  }
-
-  .model-text{
-    background:rgba(255,255,255,1);
-    border-radius:10px;
-  }
-
-  .model-btn{
-    display: flex;
-    justify-content: space-around;
-    margin-bottom: 44px;
-  }
-  .model-btn-items{
-    width:154px;
-    height:50px;
-    line-height: 50px;
-    text-align: center;
-    font-size: 18px;
-    border-radius:4px;
-  }
-  .main-gay{
-    background:rgba(246,247,251,1);
-    color: #7E7E7E;
-  }
-  .model-grdeen{
-    background-color: #52CC60;
-    color: #fff;
-  }
-  .model-text-items-close{
-    position: absolute;
-    top: 10px;
-    right: 15px;
-  }
-.el-pagination.is-background .el-pager li:not(.disabled).active {
-    background-color:#52cc60!important;
-    color: #fff;
-}
-  .model-text-items{
-    position: relative;
-    color: #000000;
-    font-size: 24px;
-    text-align: center;
-    padding: 40px 0 50px 0;
-  }
-  .page-block{
-    text-align: center;
-    margin-top: 15px;
-  }
-  .scope-list{
-    margin-left: 18px;
-    text-align: left;
-  }
-  /*.all_pagination{*/
-    /*text-align: center !important;*/
-  /*}*/
-</style>

+ 7 - 2
src/pages/super/HomeworkRecycle.vue

@@ -97,7 +97,7 @@
         <div class="allocation-items" v-for="(v, k) in TeacherAllotList.list" :key="k" >
           <div class="model-items-left">
             <div class="model-items-left-top">
-              <div>
+              <div style="float:left;">
                 <img
                   :src="BASE_URL + v.imgUrl"
                   v-if="v.imgUrl"
@@ -115,7 +115,7 @@
                   <div class="model-items-left-top-number">等待张数:{{v.waitCount}}</div>
                 </div>
               </div>
-              <div>
+              <div style="margin-right:10px;float:right;">
                 <el-button
                   @click="GOtoTeacherAllot(v)"
                   type="success"
@@ -384,12 +384,15 @@
   .model-text {
     background: rgba(255, 255, 255, 1);
     border-radius: 10px;
+    overflow: hidden;
   }
 
   .model-items-left {
+    /* float:left; */
     width: 100%;
     color: #393939;
     font-size: 24px;
+    height: 100px;
   }
   .model-items-left-top {
     display: flex;
@@ -423,10 +426,12 @@
     font-size: 24px;
   }
   .allocation-items{
+    /* float:left; */
     width: 45%;
     display: inline-block;
     margin-right: 20px;
     margin-bottom:30px;
+   
   }
   .allocation{
     color: #52CC60;

+ 4 - 1
src/pages/super/HomeworkTotally.vue

@@ -177,7 +177,7 @@ el-table {
   width: 35%;
   height: 30%;
   font-size: 12px;
-  border-radius: 15px;
+  /* border-radius: 15px; */
   text-align: center;
 }
 .chartdiv {
@@ -189,4 +189,7 @@ el-table {
 .clickTime{
 text-align:left;
 }
+.el-date-editor .el-range-separator {
+    padding: 0 20px!important;
+}
 </style>

+ 91 - 28
src/pages/super/SchoolManager.vue

@@ -15,7 +15,7 @@
       <!--数据监控-->
       <el-col :span="17" class="main" v-if="modelindex == 0">
         <el-row :gutter="20" class="main-header">
-          <el-col :span="14" :offset="0">
+          <el-col :span="8" :offset="1">
             <div
               @click="handApor()"
               :class="{Apporvalactive:Activeindex == false,ApporStyles:true}"
@@ -25,7 +25,7 @@
               :class="{Apporvalactive:Activeindex == true,ApporStyles:true}"
             >匹配知识点老师</div>
           </el-col>
-          <el-col :span="10">
+          <el-col :span="10" :offset="2">
             <div class="selectBox">
               <div
                 class="Ageclass"
@@ -76,12 +76,12 @@
                   v-model="filters.inputValue"
                   class="miniorinput-with-Allot"
                 />
-                  <span v-if="this.Activeindex == false" @click="InfoWatch" class="miinorSeachIcon el-icon-search"></span>
-                     <span v-if="this.Activeindex == true" @click="InfoKonwTeacherWatchList" class="miinorSeachIcon el-icon-search"></span>
+                  <span v-if="this.Activeindex == false" @click="InfoWatch()" class="miinorSeachIcon el-icon-search"></span>
+                     <span v-if="this.Activeindex == true" @click="InfoKonwTeacherWatchList()" class="miinorSeachIcon el-icon-search"></span>
               </div>
             </div>
           </el-col>
-          <el-col :span="14" :offset="1">
+          <el-col :span="22" :offset="1">
             <div class="main-header-item displayBox">在线:{{monitorTeacherList.onlineCount}}人</div>
             <div class="main-header-item displayBox">离线:{{monitorTeacherList.offlineCount}}人</div>
             <div class="main-header-item displayBox">
@@ -340,7 +340,7 @@
       <el-col :span="18" class="main" v-if="modelindex == 1">
         <el-row :gutter="20" class="main-header">
           <el-col :span="24" :offset="0">
-            <el-col :span="7" :offset="0">
+            <el-col :span="7" :offset="1">
               <div
                 @click="DayhandApor()"
                 :class="{Apporvalactive:DayActiveindex == false,ApporStyles:true}"
@@ -350,7 +350,7 @@
                 :class="{Apporvalactive:DayActiveindex == true,ApporStyles:true}"
               >匹配知识点老师</div>
             </el-col>
-            <el-col :span="17" :offset="0">
+            <el-col :span="16" :offset="0">
               <div class="main-header-num">
                 <div class="teach-time">
                   <div class="teach-block">
@@ -361,8 +361,8 @@
                         v-model="filters1.inputValue"
                         class="Dayinput-with-Allot"
                       />
-                     <span v-if="this.DayActiveindex == false" @click="InfoWatchDay" class="DaySeachIcon el-icon-search"></span>
-                         <span v-if="this.DayActiveindex == true" @click="InfoKonwTeacherDayApprvalList" class="DaySeachIcon el-icon-search"></span>
+                     <span v-if="this.DayActiveindex == false" @click="InfoWatchDay()" class="DaySeachIcon el-icon-search"></span>
+                         <span v-if="this.DayActiveindex == true" @click="InfoKonwTeacherDayApprvalList()" class="DaySeachIcon el-icon-search"></span>
                     </div>
                   </div>
                   <div class="teach-block">
@@ -379,7 +379,7 @@
               </div>
             </el-col>
           </el-col>
-          <el-col :span="8" :offset="0">
+          <el-col :span="6" :offset="0">
             <div class="main-header-item">
               今日报错总次数:
               <span style="color:red;">{{DayTeacherList.wrongCount}}次</span>
@@ -407,7 +407,7 @@
                 <div>正确率</div>
                 <div v-if="this.DayActiveindex == false" style="width:240px;">平均批改时间</div>
                 <div v-if="this.DayActiveindex == true" style="width:240px;">平均匹配时间</div>
-                <div>出勤</div>
+                <!-- <div>出勤</div> -->
               </div>
               <div class="tr" v-for="(v, k) of DayTeacherList.list" :key="k">
                 <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
@@ -423,7 +423,7 @@
                   <div>{{v.homeworkPicCount}}/张</div>
                   <div>{{v.accuracyRate}}</div>
                   <div style="width:240px;">{{v.avgTime}}</div>
-                  <div>{{v.attendance}}</div>
+                  <!-- <div>{{v.attendance}}</div> -->
                   <!-- <div v-if="v.attendance == 正常">{{v.attendance}}</div>
                   <div style="color:#52cc60;" v-if="v.attendance == 未出勤">{{v.attendance}}</div>-->
                 </div>
@@ -491,8 +491,8 @@
                         v-model="filters2.inputValue"
                         class="Dayinput-with-Allot"
                       />
-                       <span v-if="this.MonthActiveindex == false" @click="InfoWatchMoth" class="DaySeachIcon el-icon-search"></span>
-                        <span v-if="this.MonthActiveindex == true"  @click="InfoKonwTeacherMonthApprvalList" class="DaySeachIcon el-icon-search"></span>
+                       <span v-if="this.MonthActiveindex == false" @click="InfoWatchMoth()" class="DaySeachIcon el-icon-search"></span>
+                        <span v-if="this.MonthActiveindex == true"  @click="InfoKonwTeacherMonthApprvalList()" class="DaySeachIcon el-icon-search"></span>
                     </div>
                   </div>
                   <div class="teach-block">
@@ -501,7 +501,7 @@
                       v-model="filters2.MaxtimeValue"
                       type="month"
                       value-format="yyyy-MM"
-                      placeholder="选择月"
+                      placeholder="选择月"
                       :picker-options="pickerOptions0"
                     ></el-date-picker>
                   </div>
@@ -640,7 +640,7 @@
               v-model="inputValueAllot"
               class="input-with-Allot"
             />
-            <span @click="SearchTeacherAllot" class="SeachIcon el-icon-search"></span>
+            <span @click="SearchTeacherAllot()" class="SeachIcon el-icon-search"></span>
           </div>
           <div>{{allotList.Allotgarde}}{{allotList.Allotsubjct}}</div>
         </div>
@@ -787,6 +787,7 @@
         <div class="model-manager">
           <div v-if="this.Activeindex == false">批改老师</div>
            <div v-if="this.Activeindex == true">匹配知识点老师</div>
+           <div v-if="this.teacherRoles ==11">(校区管理员)</div>
           <div>
             <img src="../../assets/img/del@2x.png" alt @click="allShowModel(3)" />
           </div>
@@ -823,7 +824,7 @@
                 <div class="closeTeacherID" @click="isShow(GetTeacherDetail,6)">
                   <span class="el-icon-close">封号</span>
                 </div>
-                <div v-if="this.Activeindex == false" class="UpTeacherID" @click="isShow(GetTeacherDetail,5)">
+                <div v-if="this.Activeindex == false && this.teacherRoles ==8" class="UpTeacherID" @click="isShow(GetTeacherDetail,5)">
                   <span class="el-icon-upload2">升级</span>
                 </div>
               </div>
@@ -834,20 +835,20 @@
               </div>
             </div>
           </div>
-          <div class="model-items-other model-active" v-if="this.Activeindex == false">批改科目 : {{GetTeacherDetail.subject}}</div>
-            <div class="model-items-other" v-if="this.Activeindex == true">批改科目 : {{GetTeacherDetail.subject}}</div>
-          <div class="model-items-other" v-if="this.Activeindex == false">
+          <div class="model-items-other" v-if="this.Activeindex == false">批改科目 : {{GetTeacherDetail.subject}}</div>
+            <div class="model-items-other model-active" v-if="this.Activeindex == true">批改科目 : {{GetTeacherDetail.subject}}</div>
+          <div class="model-items-other  model-active" v-if="this.Activeindex == false">
             批改年级 :
             <span v-for="(v, k) of arrGrade" :key="k">{{v}},</span>
           </div>
-          <div class="model-items-other model-active">
+          <!-- <div class="model-items-other model-active">
             可批改时间:
             <div class="buttonAppoval">
               <div class="TeacherApporTime" v-for="(v, k) of arrPeriod" v-show="v" :key="k">
                 <span>{{v}}</span>
               </div>
             </div>
-          </div>
+          </div> -->
           <div class="model-items-other">手机号 : {{GetTeacherDetail.phone}}</div>
           <div class="model-items-other model-active">上次登录时间 : {{GetTeacherDetail.lastOnlineTime}}</div>
           <div class="model-items-other" v-if="this.Activeindex == false">批改正确率 : {{GetTeacherDetail.accuracyRate}}</div>
@@ -861,7 +862,10 @@
             class="model-items-other model-active" v-if="this.Activeindex == false"
           >家长满意度 : {{GetTeacherDetail.satisfactionDegree}}</div>
           <div style="display:inline-block">
-            <div class="UpTeacherID" style="width:80px" @click="isShow(GetTeacherDetail,8)">
+              <div       v-if="this.TeacherIdStatus ==1  && this.teacherRoles ==8" class="OutOnlineTeacherID" @click="isShow(GetTeacherDetail,11)">
+                  <span class="el-icon-close">强制下线</span>
+                </div>
+            <div class="UpTeacherID" style="width:120px;margin-top:30px;" @click="isShow(GetTeacherDetail,8)">
               <span class="el-icon-user-solid">重新分配组</span>
             </div>
           </div>
@@ -921,6 +925,27 @@
         </div>
       </div>
     </div>
+      <!-- 强制下线校区管理员弹框 -->
+    <div class="showModel" @click="allShowModel(10)" v-if="outOnline"></div>
+    <div class="modelspec" v-if="outOnline">
+      <div class="model-text">
+        <div class="model-text-items">
+          <div>
+            <img
+              src="../../assets/img/del@2x.png"
+              alt
+              @click="allShowModel(10)"
+              class="model-text-items-close"
+            />
+          </div>
+          <div>是否要将{{TeacherName}}老师强制下线?</div>
+        </div>
+        <div class="model-btn">
+          <div class="model-btn-items main-gay" @click="OutLineTeacherAcess()">是</div>
+          <div class="model-btn-items model-grdeen" @click="allShowModel(10)">否</div>
+        </div>
+      </div>
+    </div>
     <!-- 封号校区管理员弹框 -->
     <div class="showModel" @click="allShowModel(6)" v-if="closeID"></div>
     <div class="modelspec" v-if="closeID">
@@ -1029,7 +1054,7 @@
               v-model="AllinputValueAllot"
               class="input-with-Allot"
             />
-            <span @click="SearchNoapporvalTeacherAllot" class="SeachIcon el-icon-search"></span>
+            <span @click="SearchNoapporvalTeacherAllot()" class="SeachIcon el-icon-search"></span>
           </div>
           <div>
             <img src="../../assets/img/del@2x.png" alt @click="allShowModel(9)" />
@@ -1125,11 +1150,13 @@ export default {
       AllotManagerModel: false, //可分配小组管理员列表弹框
       NoAllotManagerModel: false, //所有未批改可分配老师列表弹框
       ModelStudet: false, //学生详情弹框
+      outOnline:false, //强制下线校区管理员弹框
       isDown: false,
       gardeListDown: false,
       gardeListDownage: false,
       selecttitlepag: "批改老师",
       selecttitleage: "语文",
+      teacherRoles:"",
       teachList: [],
       TeacherType: 8,
       TeacherCheackStyle: 2,
@@ -1560,6 +1587,15 @@ export default {
         type: this.TeacherIdType
       });
     },
+    //强制下线
+    async OutLineTeacherAcess() {
+      this.outOnline = false;
+      this.$store.dispatch("RepushTeacher", {
+        teacherId: this.TeacherIds,
+        operate: 4,
+        type: this.TeacherIdType
+      });
+    },
     // 升级
     async RepushTeacherAcess() {
       this.rePush = false;
@@ -1665,6 +1701,7 @@ export default {
         this.TeacherIdStatus = v.status;
         this.TeacherIds = v.teacherId;
         this.TeacherName = v.name;
+        this.teacherRoles = v.role;
         _this.ModelAppor = true;
         this.GetTeacherInfo(v);
       } else if (str == 4) {
@@ -1698,6 +1735,10 @@ export default {
         this.homeworkLIst.pageNo = 1;
         this.unmatchHomework();
       }
+      else if (str == 11) {
+         _this.outOnline = true;
+        _this.ModelAppor = false;
+      }
     },
     // 去分配
     allocation() {
@@ -1746,6 +1787,8 @@ export default {
         _this.AllotManagerModel = false;
       } else if (str == 9) {
         _this.NoAllotManagerModel = false;
+      } else if (str == 10) {
+       _this.outOnline = false;
       }
     },
     // 数组去重
@@ -2557,6 +2600,7 @@ ul {
   font-size: 24px;
 }
 .model-items-left-top {
+   float:left;
   display: flex;
   justify-content: space-between;
 }
@@ -2667,6 +2711,7 @@ ul {
   display: inline-block;
   margin-right: 20px;
   margin-bottom: 30px;
+   /* float:left; */
 }
 .closeTeacherID {
   display: inline-block;
@@ -2681,6 +2726,24 @@ ul {
   cursor: pointer;
   border: 1px solid;
 }
+.OutOnlineTeacherID{
+    display: inline-block;
+  height: 40px;
+  width: 140px;
+  color: #fff;
+  background-color: #f56c6c;
+  border-color: #f56c6c;
+  border-radius: 20px;
+  font-size: 14px;
+  line-height: 40px;
+  cursor: pointer;
+  border: 1px solid;
+}
+.OutOnlineTeacherID:hover {
+  color: #f56c6c;
+  background: #fef0f0;
+  border-color: #fbc4c4;
+}
 .closeTeacherID:hover {
   color: #fff;
   background-color: #f56c6c;
@@ -2790,7 +2853,7 @@ ul {
 .Ageclass {
   display: inline-block;
   height: 40px;
-  width: 120px;
+  width: 140px;
   background-color: #f1f2f4;
   line-height: 40px;
   font-size: 16px;
@@ -2860,7 +2923,7 @@ ul {
 }
 .ApporStyles {
   display: inline-block;
-  width: 180px;
+  width: 200px;
   height: 40px;
   line-height: 40px;
   background-color: #fff;
@@ -2870,8 +2933,8 @@ ul {
   cursor: pointer;
 }
 .Apporvalactive {
-  background-color: #52cc60;
-  color: #fff;
+  background-color: #52cc60!important;
+  color: #fff!important;
 }
 .main-header-numNew {
   display: flex;

+ 359 - 46
src/pages/super/SuperAdmin.vue

@@ -3,12 +3,21 @@
   <div>
     <!-- table 表格 -->
     <el-row :gutter="20" class="main-items" >
-
+  <el-col class="aside" :span="3" :offset="2" style="padding: 0 !important;">
+        <div
+          class="table-aside"
+          v-for="(v, k) in SuperItemList"
+          :key="k"
+          :class="{active:k == modelindex}"
+          @click="selectTitle(k)"
+        >{{v.text}}</div>
+      </el-col>
       <!--数据监控-->
-      <el-col :span="20" class="main" :offset="2">
-        <el-row :gutter="20" class="main-header">
+      <el-col :span="17" class="main" :offset="0" v-if="modelindex == 0">
+        <el-row :gutter="24" class="main-header">
           <!--<el-col :span="3">-->
-            <div class="main-header-item" >注册老师数:{{getManagerList.registerTeacherCount}}人</div>
+            <div class="main-header-item" >	批改老师注册数:{{getManagerList.correctTeacher}}人</div>
+             <div class="main-header-item" >	匹配老师注册数:{{getManagerList.matchTeacher}}人</div>
           <!--</el-col>-->
           <!--<el-col :span="3">-->
             <div class="main-header-item">活跃老师数:{{getManagerList.activeTeacherCount}}人</div>
@@ -19,6 +28,29 @@
           <!--<el-col :span="4">-->
             <div class="main-header-item">活跃用户数:{{getManagerList.activeUserCount}}人</div>
              <div class="main-header-item">上周新增用户数{{getManagerList.increaseUser}}人</div>
+              <div class="main-header-item">
+            <div class="selectBox">
+              <div
+                class="Ageclass"
+                @click="choiceclass()"
+                @mouseover="selectStyle1()"
+                @mouseout="outStyle1()"
+              >
+                <span class="age-tip">{{selecttitleage}}</span>
+                <span :class="[gardeListDownage ?'el-icon-caret-top':'el-icon-caret-bottom']"></span>
+              </div>
+              <div
+                class="class-download"
+                v-show="gardeListDownage"
+                @mouseover="selectStyle1()"
+                @mouseout="outStyle1()"
+              >
+                <ul v-for="(item, k) in grades" :key="k">
+                  <li @click="selectTipage(item)">{{item.label}}</li>
+                </ul>
+              </div>
+            </div>
+              </div>
           <!--</el-col>-->
         </el-row>
         <el-table
@@ -33,8 +65,9 @@
           border
         >
           <el-table-column
-            label="小组管理员"
+            label="校区管理员"
             header-align="center"
+            width="200"
           >
             <template slot-scope="scope">
               <div class="scope-list">
@@ -50,16 +83,16 @@
             header-align="center"
           >
           </el-table-column>
+             <el-table-column
+            prop="subject"
+            label="科目"
+            header-align="center">
+          </el-table-column>
           <el-table-column
             prop="attendanceRate"
             label="老师出勤率"
             header-align="center"
           ></el-table-column>
-          <!-- <el-table-column
-            prop="homeworkCount"
-            label="作业批改总份数"
-            header-align="center">
-          </el-table-column> -->
           <el-table-column
             prop="homeworkPicCount"
             label="作业批改总张数"
@@ -79,17 +112,19 @@
             label="是否在线"
             header-align="center">
             <template slot-scope="scope">
-                <span v-if="scope.$index==0&&parseInt(getManagerList.pageNo)==1">自己</span>
-                <span v-if="scope.$index>0&&parseInt(getManagerList.pageNo)==1">{{scope.row.status}}</span>
-                <span v-if="parseInt(getManagerList.pageNo)>1">{{scope.row.status}}</span>
+                <span v-if="scope.$index==0&&parseInt(getManagerList.pageNo)==1">在线</span>
+                   <span v-if="scope.$index>0&&parseInt(getManagerList.pageNo)==1&&scope.row.status !='封号'">{{scope.row.status}}</span>
+                <span style="color:red;" v-if="scope.$index>0&&parseInt(getManagerList.pageNo)==1&&scope.row.status =='封号'">已封号</span>
+                <span v-if="parseInt(getManagerList.pageNo)>1&&scope.row.status !='封号'">{{scope.row.status}}</span>
+                  <span style="color:red;" v-if="parseInt(getManagerList.pageNo)>1&&scope.row.status =='封号'">已封号</span>
             </template>
           </el-table-column>
-          <el-table-column prop="status" label="" header-align="center" width="350">
+          <el-table-column prop="status" label="" header-align="left" width="350">
             <template slot-scope="scope">
                  <div class="UpTeacherTeam"  @click="groupDetail(scope.row.managerId)">
                   <span>小组详情</span>
                 </div>
-                  <div class="UpTeacherIDiNfo"  @click="isShow(1,scope.row.managerId)" v-if="scope.$index>0">
+                  <div class="UpTeacherIDiNfo"  @click="isShow(1,scope.row.managerId,scope.row.status)" v-if="scope.$index>0">
                   <span>管理员详情</span>
                 </div>
               <!-- <el-button type="success"  @click="groupDetail(scope.row.managerId)" >小组详情</el-button>
@@ -110,9 +145,9 @@
             ></el-pagination>
         </div>
       </el-col>
-        <el-col>
-      <!-- {{getRemindCount}} -->
-    </el-col>
+       <el-col :span="17" class="main" :offset="0" v-if="modelindex == 1">
+         <SeacherHomewrokStatus></SeacherHomewrokStatus>
+      </el-col>
     </el-row>
 
     <!--可分配老师-->
@@ -134,23 +169,28 @@
               </div>
             </div>
             <div>
+               <div class="closeTeacherID" v-if="TeacherIdstatus !='封号'" @click="isShow(3,getManagerDetail.name)">
+                  <span class="el-icon-close">封号</span>
+                </div>
                 <div class="closeTeacherID" @click="isShow(2,getManagerDetail.name)">
-                  <span class="el-icon-close">降级</span>
+                  <span class="el-icon-bottom">降级</span>
+                </div>
+                <div  v-if="TeacherIdstatus =='封号'" class="UpTeacherID" @click="isShow(4,getManagerDetail.name)">
+                  <span class="el-icon-unlock">解封</span>
                 </div>
-              <!-- <el-button type="danger" plain round @click="isShow(2,getManagerDetail.name)" icon="el-icon-bottom">降级</el-button> -->
             </div>
           </div>
           <div class="model-items-other model-active" >批改科目 : {{getManagerDetail.subject}}</div>
           <div class="model-items-other">批改年级 :<span v-for="(v, k) of arrGrade" :key=k class="grade-name" v-show="v">{{v}}</span></div>
-          <div class="model-items-other model-active"><span>可批改时间:</span> 
+          <!-- <div class="model-items-other model-active"><span>可批改时间:</span> 
               <div class="buttonAppoval">
               <div class="TeacherApporTime" v-for="(v, k) of arrPeriod" :key=k v-show="v">
                 <span>{{v}}</span>
               </div>
             </div>
-          </div>
-          <div class="model-items-other">手机号 : {{getManagerDetail.phone}}</div>
-          <div class="model-items-other model-active-last">上次登录时间 : {{getManagerDetail.lastOnlineTime}}</div>
+          </div> -->
+          <div class="model-items-other  model-active">手机号 : {{getManagerDetail.phone}}</div>
+          <div class="model-items-other">上次登录时间 : {{getManagerDetail.lastOnlineTime}}</div>
         </div>
 
       </div>
@@ -169,13 +209,56 @@
         </div>
       </div>
     </div>
+      <!-- 封号校区管理员弹框 -->
+    <div class="showModel" @click="allShowModel(3)" v-if="closeID"></div>
+    <div class="modelspec" v-if="closeID">
+      <div class="model-text">
+        <div class="model-text-items">
+          <div>
+            <img
+              src="../../assets/img/del@2x.png"
+              alt
+              @click="allShowModel(3)"
+              class="model-text-items-close"
+            />
+          </div>
+          <div>是否要对{{superName}}老师进行封号?</div>
+        </div>
+        <div class="model-btn">
+          <div class="model-btn-items main-gay" @click="CloseTeacherId()">是</div>
+          <div class="model-btn-items model-grdeen" @click="allShowModel(3)">否</div>
+        </div>
+      </div>
+    </div>
+      <!-- 解封校区管理员弹框 -->
+    <div class="showModel" @click="allShowModel(4)" v-if="OpenID"></div>
+    <div class="modelspec" v-if="OpenID">
+      <div class="model-text">
+        <div class="model-text-items">
+          <div>
+            <img
+              src="../../assets/img/del@2x.png"
+              alt
+              @click="allShowModel(4)"
+              class="model-text-items-close"
+            />
+          </div>
+          <div>是否要对{{superName}}老师进行解封?</div>
+        </div>
+        <div class="model-btn">
+          <div class="model-btn-items main-gay" @click="OpenIDTeacherId()">是</div>
+          <div class="model-btn-items model-grdeen" @click="allShowModel(4)">否</div>
+        </div>
+      </div>
+    </div>
   </div>
 </template>
 <script>
   import { mapGetters, mapActions } from "vuex";
   import { IMG_BASE_URL } from '@/ImgConfig'
+  import SeacherHomewrokStatus from "@/components/SeacherHomewrokStatus";
   export default {
-    components: { },
+    components: {SeacherHomewrokStatus},
     name: "actvResolveLabel",
     props: {},
     data() {
@@ -188,19 +271,46 @@
         count:0,
         arrPeriod:[],
         arrGrade:[],
-        ItemList: [
-          {
-            text:'数据监控'
-          },
-          {
-            text:'当天'
-          },
-          {
-            text:'当月'
-          },
-        ],
+        gardeListDownage:false,
+        selecttitleage:'选择科目',
+        closeID:false,
+        OpenID:false,
+        TeacherIdstatus:'',
+        modelindex:"",
+        Activeindex:false,
+           SuperItemList: [
+        {
+          text: "校区管理"
+        },
+        {
+          text: "未批改/匹配作业"
+        },
 
+      ],
+            grades: [
+        {
+          value: "0",
+          label: "语文",
+          str: "语文"
+        },
+        {
+          value: "1",
+          label: "数学",
+          str: "数学"
+        },
+        {
+          value: "2",
+          label: "英语",
+          str: "英语"
+        },
+        {
+          value: "3",
+          label: "全部",
+          str: ""
+        },
+      ],
         filters: {
+           inputValue: "",
           actvNm: "",
           actvCrtUserId: "",
           actvType: "",
@@ -211,7 +321,8 @@
           pageSize: 10,
           count: 0,
           orderField: "",
-          orderAD: ""
+          orderAD: "",
+          gradesValue:''
         }
       };
     },
@@ -222,25 +333,38 @@
         //普通的watch监听
         this.teacherDetailFun();
       },
+      downgrade(val, oldVal) {
+        this.SuperManagerList();
+      },
     },
     computed: {
-      ...mapGetters(["getUser","getManagerList","getManagerDetail","InfoTeacherstatues","getRemindCount"])
+      ...mapGetters(["getUser","getManagerList","getManagerDetail","InfoTeacherstatues","getRemindCount","downgrade"])
     },
     methods: {
       ...mapActions(["setUser"]),
 
-      isShow(str,res){
+      isShow(str,res,status){
         let _this = this;
-        console.log(str,res)
+        console.log(str,res,status)
         if (str == 1){
           _this.hiddenModel = true;
           _this.isPigai = false;
-          _this.managerId = res;
+          _this.TeacherIdstatus = status;
+            _this.managerId = res;
           _this.GetManagerDetail(res)
         } else if (str == 2){
           _this.isPigai = true;
           _this.hiddenModel = false;
           _this.superName = res
+        } else if (str == 3){
+          // debugger
+        _this.closeID = true;
+          _this.hiddenModel = false;
+          _this.superName = res
+        } else if (str == 4){
+        _this.OpenID = true;
+          _this.hiddenModel = false;
+          _this.superName = res
         }
 
       },
@@ -252,7 +376,36 @@
         } else if (str == 2){
           _this.isPigai = false;
         }
+        else if (str == 3){
+          _this.closeID = false;
+        }
+         else if (str == 4){
+          _this.OpenID = false;
+        }
       },
+        // 手动批改
+    handApor() {
+      this.Activeindex = false;
+    },
+    // 匹配知识点老师
+    AutoApor() {
+      this.Activeindex = true;
+    },
+      selectTipage(item) {
+      this.filters.gradesValue = item.str;
+      this.selecttitleage = item.label;
+      this.gardeListDownage = false;
+      this.SuperManagerList()
+    },
+    selectStyle1() {
+      this.gardeListDownage = true;
+    },
+    outStyle1() {
+      this.gardeListDownage = false;
+    },
+        selectTitle(k) {
+      this.modelindex = k;
+    },
       //时间封装
       formatDate: function () {
         let date = new Date();
@@ -269,12 +422,29 @@
         s = s < 10 ? ('0' + s) : s;
         return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
       },
+       // 封号
+    async CloseTeacherId() {
+      this.closeID = false;
+     this.$store.dispatch("Downgrade", {
+          managerId: this.managerId,
+          type:2
+        });
+    },
+       // 解封
+    async OpenIDTeacherId() {
+      this.OpenID = false;
+     this.$store.dispatch("Downgrade", {
+          managerId: this.managerId,
+          type:3
+        });
+    },
       // 获取超级管理员数据
       async SuperManagerList() {
         this.$store.dispatch("SuperManagerList", {
           maxCreateTime: this.formatDate(),
           pageNo: this.filters.pageNo,
-          pageSize: this.filters.pageSize
+          pageSize: this.filters.pageSize,
+          subject:  this.filters.gradesValue 
         });
 
       },
@@ -304,9 +474,9 @@
       //校区管理员降级
       async Downgrade() {
         this.$store.dispatch("Downgrade", {
-          managerId: this.managerId
+          managerId: this.managerId,
+           type:1
         });
-        this.SuperManagerList();
         this.allShowModel(2)
       },
       //小组详情
@@ -407,24 +577,47 @@
     border: 1px solid #E1E1E1;
     min-height: 980px;
   }
-
   el-table{
     color: #999999;
     font-size: 18px;
   }
+  .aside {
+  background-color: #fff;
+  margin-top: 16px;
+  margin-right: 16px;
+  padding: 0;
+  min-height: 880px;
+}
   .main-items{
     color: #393939;
     /*text-align: center;*/
     line-height: 80px;
   }
+  .main-header {
+    position:relative;
+  }
+  .modelspec {
+  z-index: 10000;
+  width: 35.5%;
+  height: auto;
+  position: fixed;
+  top: 30%;
+  left: 32.5%;
+  margin: auto;
+  background: #fff;
+  border-radius: 10px;
+  text-align: center;
+}
   .main-header-item{
+    float:left;
     font-size: 16px;
     color: #7E7E7E;
+    margin-left:30px;
     text-overflow: ellipsis;
     /*vertical-align: middle;*/
     text-align: center;
     display: inline-block;
-    width: 15%;
+    /* width: 15%; */
   }
 
   .input-with-select .el-input-group__prepend {
@@ -439,6 +632,10 @@
     height:36px;
     border-radius:6px;
   }
+  .active {
+  background-color: #52cc60;
+  color: #fff!important;
+}
   .showModel{
     width: 100%;
     height: 100%;
@@ -452,6 +649,22 @@
     color: #fff;
 
   }
+  .ApporStyles {
+  display: inline-block;
+  width: 200px;
+  height: 40px;
+  line-height: 40px;
+  background-color: #fff;
+  border-radius: 20px;
+  font-size: 16px;
+  color: #7c819d;
+  cursor: pointer;
+  text-align:center;
+}
+.Apporvalactive {
+  background-color: #52cc60!important;
+  color: #fff!important;
+}
   .model{
     z-index: 1001;
     width:40%;
@@ -522,6 +735,7 @@
     margin-bottom: 44px;
   }
   .model-btn-items{
+    cursor: pointer;
     width:154px;
     height:50px;
     line-height: 50px;
@@ -567,6 +781,36 @@
     margin-left: 5%;
     text-align: left;
   }
+  .miniorinput-with-Allot {
+  border: #b6b6b6;
+  border-radius: 5px;
+  height: 40px;
+  width: 280px;
+  font-size: 8px;
+  color: #b6b6b6;
+  text-align: left;
+  line-height: 40px;
+  background: #f1f2f4;
+  padding: 0 10px;
+  float: left;
+  outline: none !important;
+  box-shadow: none;
+}
+.miniorteach-Allot {
+  float: left;
+  width: 280px;
+  position: relative;
+  height: 40px;
+  top: 15px;
+}
+.miinorSeachIcon {
+  position: absolute;
+  font-size: 20px;
+  color: #b6b6b6;
+  right: 5%;
+  margin-top: 12px;
+  cursor: pointer;
+}
   .noBorderBottom{
     border-bottom: none;
   }
@@ -576,6 +820,7 @@
     color: #393939;
   }
   .closeTeacherID {
+    margin-right:50px;
    display: inline-block;
   height: 40px;
   width: 100px;
@@ -594,12 +839,14 @@
   border-color: #f56c6c;
 }
 .UpTeacherTeam {
+  margin-right:10px;
   display: inline-block;
   height: 40px;
   width: 120px;
   color: #67c23a;
   background: #f0f9eb;
   border-color: #c2e7b0;
+  float:left!important;
   /* border-radius: 20px; */
   font-size: 14px;
   line-height: 40px;
@@ -612,7 +859,26 @@
   background-color: #67c23a;
   border-color: #67c23a;
 }
+.UpTeacherID {
+  display: inline-block;
+  height: 40px;
+  width: 100px;
+  color: #67c23a;
+  background: #f0f9eb;
+  border-color: #c2e7b0;
+  border-radius: 20px;
+  font-size: 14px;
+  line-height: 40px;
+  cursor: pointer;
+  border: 1px solid;
+}
+.UpTeacherID:hover {
+  color: #fff;
+  background-color: #67c23a;
+  border-color: #67c23a;
+}
 .UpTeacherIDiNfo {
+    float:left!important;
   display: inline-block;
   height: 40px;
   width: 150px;
@@ -653,4 +919,51 @@
   background-color: #909399;
   border-color: #909399;
 }
+.table-aside {
+  color: #666666;
+  font-size: 18px;
+  text-align: center;
+  line-height: 60px;
+  cursor: pointer;
+}
+.selectBox {
+   position: absolute;;
+  right:50px;
+  top:15px;
+}
+.Ageclass {
+  /* display: inline-block; */
+  height: 40px;
+  width: 140px;
+  background-color: #f1f2f4;
+  line-height: 40px;
+  font-size: 16px;
+  cursor: pointer;
+}
+.age-tip {
+  width: 80%;
+  height: 40px;
+  color: #747070;
+  font-size: 12px;
+}
+.class-download {
+  background-color: #fff;
+  width: 140px;
+  z-index: 999999;
+  position: absolute;
+  border: 1px solid #e0dddd;
+  border-radius: 5px;
+  top: 40px;
+}
+.class-download ul li {
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  cursor: pointer;
+  color: #b6b6b6;
+}
+.class-download ul li:hover {
+  background-color: #52cc60;
+  color: #ffff;
+}
 </style>

+ 21 - 21
src/router/index.js

@@ -21,7 +21,7 @@ import HomeworkRecycle from "@/pages/Super/HomeworkRecycle";
 import HomeworkTotally from "@/pages/Super/HomeworkTotally";
 import ComposeType from "@/pages/Super/ComposeType";
 // 在线批改老师
-import Onlineteacher from "@/pages/OnlineTeacher/onlineteacher";
+// import Onlineteacher from "@/pages/OnlineTeacher/onlineteacher";
 import Redirect_uri from "@/pages/aikmt/Redirect_uri"; //微信登陆路由重定向页面
 Vue.use(Router);
 
@@ -137,26 +137,26 @@ export const constantRouterMap =
        ]
      },
     //  在线批改老师角色路由
-     {
-      path: "/Onteacher",
-      component: Onteacher,
-      meta: {
-       title: '',
-       requireAuth: true,  // 添加该字段,表示进入这个路由是需要登录的
-   },
-      children: [
-        {
-          path: "",
-          redirect: "Onlineteacher"
-        },
-        {
-          path: "Onlineteacher",
-          name: "Onlineteacher",
-          component: Onlineteacher,
-          meta: { title: '在线批改老师', roles: ['1'] }
-        },
-      ]
-    },
+  //    {
+  //     path: "/Onteacher",
+  //     component: Onteacher,
+  //     meta: {
+  //      title: '',
+  //      requireAuth: true,  // 添加该字段,表示进入这个路由是需要登录的
+  //  },
+  //     children: [
+  //       {
+  //         path: "",
+  //         redirect: "Onlineteacher"
+  //       },
+  //       {
+  //         path: "Onlineteacher",
+  //         name: "Onlineteacher",
+  //         component: Onlineteacher,
+  //         meta: { title: '在线批改老师', roles: ['1'] }
+  //       },
+  //     ]
+  //   },
      {
       path: "*",
       name: "找不到页面",

+ 1 - 0
src/store/getters.js

@@ -54,5 +54,6 @@ const getters = {
   DutyTemplateListSTUS:state => state.scheduling.DutyTemplateListSTUS,
   TeacherThisMonthDutySucess:state => state.scheduling.TeacherThisMonthDutySucess,
   TeacherThisMonthDutyREfultInfo:state => state.scheduling.TeacherThisMonthDutyREfultInfo,
+  NextOrNewMonthStatus:state => state.scheduling.NextOrNewMonthStatus,
 }
 export default getters

+ 11 - 1
src/store/modules/scheduling .js

@@ -21,10 +21,14 @@ import {FindCalendarList,FindHaveTeacherList,FindNoHaveTeacherList,
       DutyTemplateListInfo:[],
       DutyTemplateListSTUS:'',
       TeacherThisMonthDutySucess:'',
-      TeacherThisMonthDutyREfultInfo:""
+      TeacherThisMonthDutyREfultInfo:"",
+      NextOrNewMonthStatus:false,
     },
   
     mutations: {
+      SET_NEXTORNEW_MONTHLIST: (state, NextOrNewMonthStatus) => {
+        state.NextOrNewMonthStatus = NextOrNewMonthStatus
+      },
       SET_CALENDAR_LIST: (state, FindCalendarList) => {
         state.FindCalendarList = FindCalendarList
       },
@@ -68,6 +72,12 @@ import {FindCalendarList,FindHaveTeacherList,FindNoHaveTeacherList,
     },
   
     actions: {
+      //当月或下月排班表切换变量
+      NextOrNewMonthAction({ commit, state }, data) {
+        return new Promise((resolve, reject) => {
+          commit('SET_NEXTORNEW_MONTHLIST', data);
+        })
+      },
      // 排班日历表(校区管理员)
      GetFindCalendarList({ commit, state }, data) {
       return new Promise((resolve, reject) => {

+ 3 - 3
src/store/modules/user.js

@@ -218,7 +218,7 @@ const user = {
                         } if (isBanned == 1) {
                           localStorage.removeItem("accessToken");
                           Message.error('您已被封号')
-                          router.push("/");
+                          window.open(APPOR_BASE_URL + '?unionid=' + unionid);
                         }
                       }).catch(() => {
                         localStorage.removeItem("accessToken");
@@ -283,7 +283,7 @@ const user = {
                         } if (isBanned == 1) {
                           localStorage.removeItem("accessToken");
                           Message.error('您已被封号')
-                          router.push("/");
+                          window.open(APPOR_BASE_URL + '?unionid=' + unionid);
                         }
                       }).catch(() => {
                         localStorage.removeItem("accessToken");
@@ -725,7 +725,7 @@ const user = {
       return new Promise((resolve, reject) => {
         axios.post(Downgrade, data).then(response => {
           const data = response.data
-          commit('SET_DOWNGRADE', data);
+          commit('SET_DOWNGRADE',  new Date());
           resolve(response)
         }).catch(error => {
           reject(error)