瀏覽代碼

6.21页面样式修改

name 6 年之前
父節點
當前提交
d2902404b9

+ 5 - 0
index.html

@@ -4,6 +4,11 @@
 <head>
   <meta charset="utf-8">
   <title>私塾家作业批改后台</title>
+<<<<<<< HEAD
+=======
+  <link rel=icon href=/favicon.ico>
+  <link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico">
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <!-- <meta name="viewport" content="width=1920, target-densityDpi=device-dpi, user-scalable=no"> -->
   <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />  -->

+ 1 - 0
src/App.vue

@@ -33,6 +33,7 @@ export default {
       let rem = wW * whdef // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
       let html = document.getElementsByTagName('html')[0]
       html.style.fontSize = rem + 'px'
+      console.log(html.style.fontSize)
     }
   },
   mounted() {

+ 2 - 2
src/ImgConfig/index.js

@@ -7,9 +7,9 @@ if (process.env.NODE_ENV === 'development') {
     // 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://xtkmt.sharingschool.com/kmt/index.html' //测试环境作业批改地址
     // APPOR_BASE_URL = 'https://kmt.sharingschool.com/aijia/kmt/index.html'; //正式环境作业批改地址地址;
-    // APPOR_BASE_URL = 'http://sxkmt.sharingschool.com/kmt/index.html' //实习环境作业批改地址
+    APPOR_BASE_URL = 'http://sxkmt.sharingschool.com/kmt/index.html' //实习环境作业批改地址
 }
 export {
     IMG_BASE_URL,

+ 7 - 1
src/api/index.js

@@ -54,6 +54,10 @@ const errorWarning = urlFn('/api/kmt/correctSys/errorWarning')
 const errorDetail = urlFn('/api/kmt/correctSys/errorDetail')
 // 退出登陆
 const logout = urlFn('/api/kmt/login/logout')
+// 质检前校验作业状态
+const CheckHomeworkStatus = urlFn('/api/kmt/correctSys/checkHomeworkStatus')
+// 管理员查看科目报表数据
+const FindSubjectCharts = urlFn('/api/kmt/correctSys/findSubjectCharts')
 export {
     GET_TOKEN,
     GET_UUIONID_TOKEN,
@@ -80,5 +84,7 @@ export {
 	GetRemindCount,
     errorWarning,
     errorDetail,
-    logout
+    logout,
+    CheckHomeworkStatus,
+    FindSubjectCharts
 }

二進制
src/assets/iconfont/favicon.ico


二進制
src/assets/img/NoTeacherAllot (1).png


二進制
src/assets/img/NoTeacherAllot (2).png


二進制
src/assets/img/NoTeacherAllot (3).png


二進制
src/assets/img/SEARCH (1).png


二進制
src/assets/img/attt.png


+ 2 - 0
src/axios/index.js

@@ -83,6 +83,7 @@ axios.interceptors.response.use(
 );
 // 数据统一处理来自网络及服务器的错误
 function checkStatus (response) {
+    console.log("11123456")
     if (response && response.status === 200 || response && response.status === 304){
         // Message.success('请求成功')
         return response.data
@@ -117,6 +118,7 @@ function checkStatus (response) {
 
 // 处理来自程序的异常
 function checkCode (response) {
+    console.log("chucuole")
     if (response.status && response.status !== 'ok'){
         response.error = response.error || '出错了!'
     }

+ 199 - 0
src/components/HomeworkTotalList.vue

@@ -0,0 +1,199 @@
+<template>
+  <div>
+    <div :id="myChart" class="myChartDiv" style=" width: 80%; height: 600px;"></div>
+    <!-- <div id="myChart" class="myChart" style="width:960px;height:500px;margin:0 auto;"></div> -->
+  </div>
+</template>
+<script>
+import { mapGetters, mapActions } from "vuex";
+//引入uuid文件
+import uuidv1 from "uuid/v1";
+
+// 引入基本模板
+let echarts = require("echarts/lib/echarts");
+// 引入柱状图组件
+require("echarts/lib/chart/bar");
+// 引入提示框和title组件
+require("echarts/lib/component/tooltip");
+require("echarts/lib/component/title");
+export default {
+  name: "hello",
+  props: {
+    chartData: {
+      type: Object,
+      default: () => {}
+    }
+    // 接收父组件传递过来的信息
+  },
+  created() {
+    this.myChart = uuidv1(); //获取随机id
+  },
+  data() {
+    return {
+      chartDataINfo: [],
+      total: "",
+      subject: "",
+      myChart: "",
+      dataAxis: [
+        "0h",
+        "1h",
+        "2h",
+        "3h",
+        "4h",
+        "5h",
+        "6h",
+        "7h",
+        "8h",
+        "9h",
+        "10h",
+        "11h",
+        "12h",
+        "13h",
+        "14h",
+        "15h",
+        "16h",
+        "17h",
+        "18h",
+        "19h",
+        "20h",
+        "21h",
+        "22h",
+        "23h",
+        "24h"
+      ],
+      yMax: 500,
+      dataShadow: [],
+      msg: "Welcome to Your Vue.js App"
+    };
+  },
+  mounted() {
+    const vm = this;
+    vm.$nextTick(() => {
+      vm.drawLine();
+    });
+  },
+  watch: {
+    chartData: {
+      handler: function(val, oldVal) {
+        this.chartDataINfo = val.series;
+        this.subject = val.subject;
+        this.total = val.total;
+        this.drawLine();
+      },
+      deep: true
+    }
+  },
+  methods: {
+    dataSet() {
+      const dataShadow = [];
+      for (var i = 0; i < this.data.length; i++) {
+        dataShadow.push(this.yMax);
+        this.dataShadow = dataShadow;
+      }
+    },
+    drawLine() {
+      // 基于准备好的dom,初始化echarts实例
+      let myChart = echarts.init(document.getElementById(this.myChart), null, {
+        renderer: "svg"
+      });
+      // 绘制图表
+      myChart.setOption({
+        title: {
+          text: this.subject,
+          subtext: "作业总张数:" + this.total + "张",
+          left: "center"
+        },
+        tooltip: {
+          trigger: "axis",
+          //在这里设置
+          formatter: "{b0}时{a0}{c0}张",
+          extraCssText: "width:100px;height:40px;"
+        },
+        xAxis: {
+            type : 'category',
+          data: this.dataAxis,
+          axisLabel: {
+            inside: true,
+            textStyle: {
+              color: "#fff"
+            }
+          },
+          axisTick: {
+            show: true
+          },
+          axisLine: {
+            show: false
+          },
+          z: 10
+        },
+        yAxis: {
+          axisLine: {
+            show: false
+          },
+          axisTick: {
+            show: false
+          },
+          axisLabel: {
+            textStyle: {
+              color: "#999"
+            }
+          }
+        },
+        dataZoom: [
+          {
+            type: "inside"
+          }
+        ],
+        series: [
+          {
+            type: "bar",
+            itemStyle: {
+              normal: { color: "rgba(0,0,0,0.05)" }
+            },
+            barGap: "-100%",
+            barCategoryGap: "40%",
+            data: this.dataShadow,
+            animation: true
+          },
+          {
+            type: "bar",
+            itemStyle: {
+              normal: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  { offset: 0, color: "#FF3377" },
+                  { offset: 0.5, color: "#188df0" },
+                  { offset: 1, color: "#00B9FF" }
+                ])
+              },
+              emphasis: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  { offset: 0, color: "#2378f7" },
+                  { offset: 0.7, color: "#2378f7" },
+                  { offset: 1, color: "#83bff6" }
+                ])
+              }
+            },
+            data: this.chartDataINfo 
+          }
+        ]
+      });
+      window.onresize = function() {
+        myChart.resize();
+      };
+    }
+  },
+  computed: {
+    ...mapGetters(["FindSubjectCharts"])
+  }
+};
+</script>
+
+<style scoped>
+.myChartDiv {
+  width: 70%;
+  height: 500px;
+  margin: 0 auto;
+  text-align: center;
+  color:brown;
+}
+</style>

+ 100 - 18
src/components/MenuComponent.vue

@@ -24,10 +24,24 @@
       </div>
       <div class="out">
         <img src="../assets/img/out.png" alt class="out-img">
-        <span @click="Loginout">退出</span>
+        <span @click="LoginoutBtn">退出</span>
       </div>
     </el-col>
     <el-col :span="1"></el-col>
+        <!--是否通过-->
+    <div class='showModel' @click="allShowModel()" 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()" class="model-text-items-close"></div>
+          <div>{{name}}老师您确定退出吗?</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()">否</div>
+        </div>
+      </div>
+    </div>
   </el-col>
 </template>
 
@@ -43,6 +57,7 @@ export default {
     return {
       accessToken:localStorage.getItem("accessToken"), //token
       BASE_URL:IMG_BASE_URL,
+      hiddenModel:false,
       menuData: [
         {
           id: "1",
@@ -74,6 +89,18 @@ export default {
     // initNav() {
     //   this.menuData = JSON.parse(JSON.stringify(this.navsData));
     // },
+    LoginoutBtn(){
+       this.hiddenModel = true;
+    },
+    allShowModel(){
+      this.hiddenModel = false;
+       this.$message("已取消操作!");
+    },
+    ApplyOperate(){
+        this.$store.dispatch("LogOut", {
+             accessToken: this.accessToken
+      });
+    },
     secondNavClick(val, index) {
         sessionStorage.setItem('tabIndex',index);
       this.checkindex = sessionStorage.getItem('tabIndex');
@@ -86,23 +113,6 @@ export default {
         this.$router.push("/home/" + 'TeacherPay');
       }
     },
-    //  账号管理、退出登录
-    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"])
@@ -133,6 +143,12 @@ export default {
   color: #52cc60;
   border-bottom: 2px solid #52cc60;
 }
+.el-input__inner, .el-checkbox__inner, .el-textarea__inner, .el-button {
+    font-size: 0.3125rem;
+    text-align: center;
+    line-height: 0!important;
+    padding: 12px 20px!important;
+}
 .navactive {
   color: #52cc60 !important;
   border-bottom: 2px solid #52cc60;
@@ -173,4 +189,70 @@ export default {
   height: 18px;
   display: inline-block;
 }
+ .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;
+    cursor: pointer;
+  }
+  .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: -5px;
+  }
+  .model-text-items{
+    position: relative;
+    color: #000000;
+    font-size: 24px;
+    text-align: center;
+    padding: 40px 0 50px 0;
+    margin: 0 33px;
+  }
 </style>

+ 257 - 96
src/components/SuperComponent.vue

@@ -1,9 +1,10 @@
 <template>
-  <el-col :span="24" class="">
-      <div class="logo-header">
-       <img class="logoImg" src="../assets/img/log.png"/>
-      </div>
+  <el-col :span="24" class>
+    <div class="logo-header">
+      <img class="logoImg" src="../assets/img/log.png" />
+    </div>
     <!--v-show="roles.indexOf(item.id) >= 0"-->
+<<<<<<< HEAD
       <el-col :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>
@@ -11,25 +12,62 @@
             <span class="box-text">{{index==1?2+'项任务':3+'份作业'}}</span>
           </div>
       </el-col>
+=======
+    <el-col
+      :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||index==3">
+            <span class="box-text">{{index==1?2+'项任务':3+'份作业'}}</span>
+      </div>-->
+    </el-col>
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
 
-      <el-col :span="4" class="aside-right">
-      <div class="login">   
-        <img  class="userstyle"  :src="BASE_URL + avatar" alt="">
+    <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="Loginout">退出</span>
+        <img src="../assets/img/out.png" alt class="out-img" />
+        <span @click="LoginoutBtn">退出</span>
       </div>
     </el-col>
+    <div class="showModel" @click="allShowModel()" 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()"
+              class="model-text-items-close"
+            />
+          </div>
+          <div>{{name}}老师您确定退出吗?</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()">否</div>
+        </div>
+      </div>
+    </div>
   </el-col>
 </template>
 
 <script>
-import {mapGetters} from 'vuex'
-import { IMG_BASE_URL } from '@/ImgConfig'
+import { mapGetters } from "vuex";
+import { IMG_BASE_URL } from "@/ImgConfig";
 export default {
   name: "navMenu",
   // props: {
@@ -37,6 +75,7 @@ export default {
   // },
   data() {
     return {
+<<<<<<< HEAD
         accessToken:localStorage.getItem("accessToken"), //token
         BASE_URL:IMG_BASE_URL,
       menuData: [ {
@@ -61,6 +100,39 @@ export default {
           },
  ],
       checkindex:0
+=======
+      hiddenModel: false,
+      accessToken: localStorage.getItem("accessToken"), //token
+      BASE_URL: IMG_BASE_URL,
+      menuData: [
+        {
+          id: "1",
+          name: "校区管理员",
+          href: "SuperAdmin"
+        },
+        {
+          id: "2",
+          name: " 批改老师注册审核",
+          href: "CheckTeacherAudit"
+        },
+        {
+          id: "3",
+          name: "批改老师薪酬表",
+          href: "CheckTeacherPay"
+        },
+        {
+          id: "4",
+          name: "待分配作业",
+          href: "HomeworkRecycle"
+        },
+           {
+          id: "5",
+          name: "作业统计",
+          href: "HomeworkTotally"
+        }
+      ],
+      checkindex: 0
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
     };
   },
   watch: {
@@ -77,24 +149,37 @@ export default {
     // initNav() {
     //   this.menuData = JSON.parse(JSON.stringify(this.navsData));
     // },
+    LoginoutBtn() {
+      this.hiddenModel = true;
+    },
+    allShowModel() {
+      this.hiddenModel = false;
+      this.$message("已取消操作!");
+    },
+    ApplyOperate() {
+      this.$store.dispatch("LogOut", {
+        accessToken: this.accessToken
+      });
+    },
     secondNavClick(val, index) {
-
-      sessionStorage.setItem('tabIndex',index);
-      this.checkindex = sessionStorage.getItem('tabIndex');
-      console.log(sessionStorage.getItem('tabIndex'))
-      if (sessionStorage.getItem('tabIndex') == 0){
-        this.$router.push("/super/" + 'SuperAdmin');
-      } else if (sessionStorage.getItem('tabIndex') == 1){
-        this.$router.push("/super/" + 'CheckTeacherAudit');
-      } else if (sessionStorage.getItem('tabIndex') == 2){
-        this.$router.push("/super/" + 'CheckTeacherPay');
-      } else if (sessionStorage.getItem('tabIndex') == 3){
-        this.$router.push("/super/" + 'HomeworkRecycle');
+      sessionStorage.setItem("tabIndex", index);
+      this.checkindex = sessionStorage.getItem("tabIndex");
+      console.log(sessionStorage.getItem("tabIndex"));
+      if (sessionStorage.getItem("tabIndex") == 0) {
+        this.$router.push("/super/" + "SuperAdmin");
+      } else if (sessionStorage.getItem("tabIndex") == 1) {
+        this.$router.push("/super/" + "CheckTeacherAudit");
+      } else if (sessionStorage.getItem("tabIndex") == 2) {
+        this.$router.push("/super/" + "CheckTeacherPay");
+      } else if (sessionStorage.getItem("tabIndex") == 3) {
+        this.$router.push("/super/" + "HomeworkRecycle");
+      } else if (sessionStorage.getItem("tabIndex") == 4) {
+        this.$router.push("/super/" + "HomeworkTotally");
       }
       // this.$router.push("/super/" + val.href);
       // this.checkindex = index;
     },
-     //  账号管理、退出登录
+    //  账号管理、退出登录
     Loginout() {
       this.$confirm("您确定退出吗?", "提示", {
         confirmButtonText: "确定",
@@ -103,127 +188,203 @@ export default {
       })
         .then(() => {
           this.$store.dispatch("LogOut", {
-             accessToken: this.accessToken
-      });
+            accessToken: this.accessToken
+          });
         })
         .catch(() => {
           // console.log(err)
           this.$message("已取消操作!");
         });
+<<<<<<< HEAD
     },
   },
   mounted() {
     this.checkindex = sessionStorage.getItem('tabIndex');
     // this.getRemindCounts();
 		// console.log('555555')
+=======
+    }
+  },
+  computed: {
+    ...mapGetters(["name", "avatar", "roles"])
+  },
+  mounted() {
+    this.checkindex = sessionStorage.getItem("tabIndex");
+    // this.initNav();
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
   }
 };
 </script>
 <style scoped>
 /*.mainHeader{*/
-  /*height: 110px;*/
-  /*line-height:110px;*/
+/*height: 110px;*/
+/*line-height:110px;*/
 /*}*/
 .menu_item {
   cursor: pointer;
-  color:#999999;
+  color: #999999;
   font-size: 9px;
   font-family: serif;
-  box-sizing:border-box;
+  box-sizing: border-box;
   height: 80%;
-  text-align:center;
-  padding-bottom:19px ;
+  text-align: center;
+  padding-bottom: 19px;
   /*display: inline-block;*/
 }
 .menu_item:hover {
-  color:#52CC60 ;
-  border-bottom:2px solid #52cc60;
+  color: #52cc60;
+  border-bottom: 2px solid #52cc60;
 }
 .superactive {
-  color:#52CC60 !important;
-  border-bottom:2px solid #52cc60;
+  color: #52cc60 !important;
+  border-bottom: 2px solid #52cc60;
 }
-.menu_item+.menu_item {
+.menu_item + .menu_item {
   border-left: 1px solid #ffffff;
 }
-.logo-header{
+.logo-header {
   display: inline-block;
   float: left;
   margin-left: 8.3%;
 }
-.logoImg{
-  width:136px;
-  height:52px;
+.logoImg {
+  width: 136px;
+  height: 52px;
 }
-.sishuLogo{
-  margin-left:125px;
+.sishuLogo {
+  margin-left: 125px;
 }
-.userstyle{
-  width:50px;
-  height:50px;
+.userstyle {
+  width: 50px;
+  height: 50px;
   border-radius: 25px;
 }
-  .lineStyle{
-    color: #999999;
-    font-size: 18px;
-    text-align: center;
-  }
-.login{
+.lineStyle {
+  color: #999999;
+  font-size: 18px;
+  text-align: center;
+}
+.login {
   color: #333333;
   font-size: 14px;
   display: inline-block;
 }
-.out{
+.out {
   margin-left: 2%;
   font-size: 14px;
   color: #666666;
   display: inline-block;
   cursor: pointer;
 }
-.out-img{
+.out-img {
   width: 16px;
   height: 18px;
 }
-  .aside-right{
-    float: right;
-    margin-right: 0%;
-  }
-  .box-items{
-    position: relative;
-  }
-  .box-text{
-    color: #FFFFFF;
-    font-size: 14px;
-    position: absolute;
-    top:-37px;
-    left: 0;
-    height:34px;
-    min-width: 75px;
-    display: inline-block;
-  }
-.box{
-    position: relative;
-    top:0px;
-    left:0px;
-    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;
-             content: "";
-             width: 0;
-             height: 0;
-             right: 100%;
-             top: 25px;
-             left: -5px;
-             border-top: 5px solid transparent;
-             border-right: 18px solid #FF6767;
-             border-bottom: 5px solid transparent;
-             transform: rotate(-45deg);
-            }
+.aside-right {
+  float: right;
+  margin-right: 0%;
+}
+.box-items {
+  position: relative;
+}
+.box-text {
+  color: #ffffff;
+  font-size: 14px;
+  position: absolute;
+  top: -37px;
+  left: 0;
+  height: 34px;
+  min-width: 75px;
+  display: inline-block;
+}
+.box {
+  position: relative;
+  top: 0px;
+  left: 0px;
+  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;
+  content: "";
+  width: 0;
+  height: 0;
+  right: 100%;
+  top: 25px;
+  left: -5px;
+  border-top: 5px solid transparent;
+  border-right: 18px solid #ff6767;
+  border-bottom: 5px solid transparent;
+  transform: rotate(-45deg);
+}
+.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;
+  cursor: pointer;
+}
+.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: -5px;
+}
+.model-text-items {
+  position: relative;
+  color: #000000;
+  font-size: 24px;
+  text-align: center;
+  padding: 40px 0 50px 0;
+  margin: 0 33px;
+}
 </style>

+ 2 - 2
src/config/index.js

@@ -2,9 +2,9 @@ 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://xt.sharingschool.com/sz' //测试环境服务器地址
     // BASE_URL = 'https://t.sharingschool.com/sz'; //正式环境地址
-    // BASE_URL = 'https://sx.sharingschool.com'  //实习环境地址
+    BASE_URL = 'https://sx.sharingschool.com/sz'  //实习环境地址
 }
 const TIME_OUT = 10000
 

+ 4 - 0
src/main.js

@@ -14,7 +14,9 @@ import 'viewerjs/dist/viewer.css'
 import Vuex from "vuex";
 import store from './store'
 import jQuery from "jquery";
+import postcss from "postcss-pxtorem";
 import "./assets/js/jquery-ui.min.js";
+import echarts from 'echarts'
 import * as filters from "./filters";
 // import 'element-ui/lib/theme-chalk/index.css'
 import "./assets/css/element-#00C1DE/index.css";
@@ -29,6 +31,8 @@ import '@/permission' // permission control
 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" }

+ 6 - 0
src/pages/Home.vue

@@ -184,6 +184,12 @@
 </script>
 
 <style scoped>
+.el-input__inner, .el-checkbox__inner, .el-textarea__inner, .el-button {
+    font-size: 0.3125rem;
+    text-align: center;
+    line-height: 0!important;
+    padding: 12px 20px!important;
+}
   .main_conter{
     min-height: 1000px;
   }

+ 93 - 162
src/pages/Login.vue

@@ -1,5 +1,5 @@
-<template>
-<div class="bodyImg">
+
+<!-- <div class="bodyImg">
 <div class="container">
     <div class="log-paper">
       <img src="../assets/img/Land_sbg.png">
@@ -9,11 +9,28 @@
       <div class="log-text">欢迎登陆私塾家在线人员管理后台</div>
       <div @click="WxLoginCtl" class="log-qrcode">
         <div id="login_container"></div>
-        <!-- <img class="log-qrcode-image" src="../assets/img/ssj_qrcode.png"> -->
       </div>
     </div>
   </div>
-</div>
+</div> -->
+<template>
+  <div class="login" style=" min-width: 650px!important;">
+    <div class="login-paper">
+      <img src="../assets/img/Land_bg.png">
+    </div>
+    <div class="login-content">
+      <div class="img">
+        <img src="../assets/img/Land_sbg.png">
+      </div>
+      <div class="section">
+        <img class="section-icon" src="../assets/img/log.png">
+        <div class="log-text section-text">欢迎登陆私塾家在线人员管理后台</div>
+        <div @click="WxLoginCtl" class="log-qrcode">
+          <div class="section-qrcode" id="login_container"></div>
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -28,6 +45,7 @@ export default {
   },
   watch: {},
   created() {
+     localStorage.removeItem("accessToken")
     this.getTKByUnionid();
   },
   methods: {
@@ -47,7 +65,7 @@ export default {
         let WxCode = unionid;
         this.WxCode = WxCode;
         localStorage.setItem("unionid", this.WxCode);
-            console.log("获取unionid" + this.WxCode);
+        console.log("获取unionid" + this.WxCode);
         this.$store.dispatch("UnionidLogin", {
           unionid: this.WxCode
         });
@@ -63,20 +81,22 @@ export default {
           code: this.WxCode
         });
         // 清除重定向url中参数ocde,
-      window.history.replaceState({}, "", `${location.pathname}`);
-      console.log(location.pathname)
+        window.history.replaceState({}, "", `${location.pathname}`);
+        console.log(location.pathname);
       }
-      return
+      return;
     }
   },
   mounted() {
     var obj = new WxLogin({
       self_redirect: false,
       id: "login_container",
-      appid: "wxd18ca9555a939281",
+      // appid: "wxd18ca9555a939281",
+         appid: "wx7fe760dc3c45794d", //实训环境
       scope: "snsapi_login",
       redirect_uri: encodeURIComponent(
-        "https://kmt.sharingschool.com/aijia/manager/index.html"
+        // "https://kmt.sharingschool.com/aijia/manager/index.html"
+          "https://sxkmt.sharingschool.com/manager/index.html" //实训环境
       ),
       state: "",
       style: "width: 250px",
@@ -85,157 +105,68 @@ export default {
   }
 };
 </script>
-
-<style scoped>
-body {
-  background-image: url(../assets/img/Land_bg.png);
-  background-size: 100% auto;
-}
-.bodyImg{
-   background-image: url(../assets/img/Land_bg.png);
-  background-size: 100% auto;
-  height: 1024px!important;
-}
-.container {
-    max-height: 70%;
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  -webkit-transform: translate(-50%, -50%);
-  -moz-transform: translate(-50%, -50%);
-  -ms-transform: translate(-50%, -50%);
-  -o-transform: translate(-50%, -50%);
-  transform: translate(-50%, -50%);
-  max-width: 70%;
-  background: #ffffff;
-  -webkit-box-shadow: 0 0 20px 0 rgba(50, 103, 0, 0.2);
-  -webkit-border-radius: 4px;
-  box-shadow: 0 0 20px 0 rgba(50, 103, 0, 0.2);
-  border-radius: 4px;
-  padding: 5%;
-}
-.log-paper {
-  width: 45%;
-  margin-right: 5%;
-  float: left;
-}
-.log-paper img {
-  width: 90%;
-}
-.log-container {
-  width: 50%;
-  margin-left: 5%;
-  float: right;
-  text-align: center;
-}
-.log-icon {
-  width: 40%;
-}
-.log-text {
-  font-size: 1.8em;
-  color: #52cc60;
-  margin: 0.5rem auto;
-}
-.log-qrcode {
-  width: 70%;
-  background: #ffffff;
-  -webkit-box-shadow: 0 2px 10px 0 rgba(157, 166, 195, 0.3);
-  box-shadow: 0 2px 10px 0 rgba(157, 166, 195, 0.3);
-  padding: 10%;
-  margin: 5% 10%;
-}
-.log-qrcode-image {
-  width: 100%;
-}
-*,
-::after,
-::before {
-  box-sizing: content-box;
-}
-.log-qrcode-text {
-  margin-top: 1.5rem;
-  font-size: 1em;
-  color: #808080;
-}
-@media (min-width: 0px) and (max-width: 767px) {
-  .container {
-    width: 750px;
-  }
-  .log-paper {
-    width: 0%;
-  }
-  .log-container {
-    width: 100%;
+<style lang="stylus" scoped>
+@import '../style/index.styl';
+.login-content{
+  display: flex;
+    -webkit-box-pack: justify;
+    -ms-flex-pack: justify;
+    justify-content: space-between;
+    -webkit-box-align: center;
+    -ms-flex-align: center;
+    align-items: center;
+}
+.login
+    position fixed
+    top 0
+    left 0
+    width 100%
+    height 100%
+    min-width 650px
+    &-paper
+        position absolute
+        top 0
+        left 0
+        width 100%
+        height 100%
+        img 
+            width 100%
+            height 100%
+            object-fit cover
+    &-content
+        position absolute
+        top 10%
+        left 15%
+        width 70%
+        height 80%
+        background $color-bg-white
+        border-radius 4px
+        box-shadow()
+        flex-row-between()
+        .img
+            margin 10% 0% 10% 10%
+            flex 6
+            img 
+                width 100%
+                height 100%
+                object-fit cover
+        .section
+            margin 10%
+            flex 4
+            text-align center
+            &-icon
+                width 50%
+                object-fit cover
+            &-text
+                color $color-text-green
+                font-size $font-size-l
+                margin 5%
+            &-qrcode
+                box-shadow()
+                padding 10px
+@media (min-width: 0px) and (max-width: 960px) {
+  .img {
+      display none
   }
 }
-@media (min-width: 768px) and (max-width: 991px) {
-  .container {
-    width: 750px;
-  }
-  .log-paper {
-    width: 45%;
-    margin-top: 5%;
-  }
-  .log-container {
-    width: 40%;
-  }
-}
-@media (min-width: 992px) {
-  .container {
-    width: 970px;
-  }
-  .log-paper {
-    width: 45%;
-  }
-  .log-container {
-    width: 40%;
-  }
-}
-@media (min-width: 1200px) {
-  .container {
-    width: 1170px;
-  }
-}
-
-body {
-  background: #f6f7fb;
-  -webkit-font-smoothing: subpixel-antialiased;
-}
-.color-green {
-  color: #52cc60 !important;
-}
-.color-purple {
-  color: #612d00 !important;
-}
-.fontweight {
-  font-weight: bold;
-}
-.text-indent {
-  text-indent: 2.6rem;
-}
-.nodata {
-  text-align: center;
-  padding: 250px 20px !important;
-}
-.nodata p {
-  padding-top: 50px;
-  font-size: 18px;
-  color: #65b800;
-}
-
-/* 适应1366 */
-/* @media screen and (max-width: 1366px) {
-  .isShow1 {
-    display: none;
-  }
-  .isShow2 {
-    display: block;
-  }
-  .isShow3 {
-    display: none;
-  }
-  .isShow4 {
-    display: block;
-  }
-} */
-</style>
+</style>

文件差異過大導致無法顯示
+ 680 - 175
src/pages/home/SchoolManager.vue


+ 23 - 29
src/pages/home/TeacherPay.vue

@@ -40,7 +40,7 @@
               @size-change="handleSizeChange1"
               @current-change="pageChange1"
               :page-sizes="[10]"
-              layout="total, sizes, prev, pager, next, jumper"
+             layout="total, prev, pager, next"
               :total="parseInt(errorWarningList.pages)"
               :hide-on-single-page="true"
             ></el-pagination>
@@ -49,7 +49,7 @@
         </el-row>
       </el-col>
     </el-row>
-      <div class="showModel"  v-if="NoAllotManagerModel">
+      <div class="showModel" @click="updateIsShowCarouselPictureModal()" v-if="NoAllotManagerModel">
             <div class="modal-cancel" @click="updateIsShowCarouselPictureModal()">X</div>
             <div class="detailinfo">
               <div class="detailImg">
@@ -185,10 +185,10 @@ export default {
   position: fixed;
   top: 0;
   left: 0;
-  background: #000000e7;
+ background-color : rgba(5, 5, 5, 0.5);
   opacity: 1!important;
   overflow: hidden!important;
-  color: #fff;
+  /* color: #fff; */
 }
   .modal-cancel {
       position: absolute;
@@ -198,24 +198,26 @@ export default {
       height: 50px;
       text-align: center;
       line-height: 50px;
-      background: #eee;
+      background-color : rgba(66, 56, 56, 0.5);
       border-radius: 100px;
       font-size: 16;
-      color:#000000;
+      color:#eee;
       cursor: pointer;
     }
     .detailinfo{
       position: absolute;
       left:50%;
-      margin-left:-490px;
-      top: 20px;
-      width: 980px;
-      height: 800px;
+      margin-left:-650px;
+      top: 10%;
+      width: 1300px;
+      height: 1000px;
       /* background: #eee; */
       text-align: center;
       line-height: 50px;
       border-radius: 100px;
       font-size: 16;
+      z-index:9999;
+          opacity: 1!important;
       color:#000000;
      padding:50px!important;
     }
@@ -224,8 +226,8 @@ export default {
       position: absolute;
       left:0;
       top: 20px;
-      width: 450px;
-      height: 550px;
+      width: 600px;
+      height: 700px;
       text-align: center;
       line-height: 50px;
       border-radius: 15px;
@@ -239,8 +241,8 @@ export default {
       position: absolute;
       right:0;
       top: 20px;
-      width: 450px;
-      height: 550px;
+      width: 600px;
+      height: 700px;
       text-align: center;
       line-height: 50px;
       border-radius: 15px;
@@ -250,8 +252,8 @@ export default {
       /* cursor: pointer; */
     }
    .detailImg img{
-      width: 450px;
-      height: 550px;
+      width: 600px;
+      height: 700px;
        border-radius: 15px;
    }
    .tipsesson{
@@ -309,6 +311,10 @@ export default {
       left:50px;
       bottom: 50px;
    }
+   .el-pagination.is-background .el-pager li:not(.disabled).active {
+    background-color:#52cc60!important;
+    color: #fff;
+}
 html,
 body {
   height: 100%;
@@ -438,7 +444,7 @@ el-table {
   justify-content: space-around;
 }
 .tr-first > div {
-  width: 13.528%;
+  width: 14.528%;
 }
 .tr-s {
   display: flex;
@@ -513,18 +519,6 @@ el-table {
 .tr-active {
   color: #3ab548;
 }
-.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%;

+ 102 - 0
src/pages/style/common.styl

@@ -0,0 +1,102 @@
+@import './index.styl'
+	
+/*----------------reset css -------------------*/
+*,
+*:after,
+*:before {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	margin: 0;
+	padding: 0;
+}
+ul,
+ol,
+li {
+	list-style: none;
+}
+i,
+strong,
+em,
+b,
+u {
+	font-weight: normal;
+	font-style: normal;
+}
+input[type="text"],
+textarea {
+	appearance: none;
+}
+a {
+	text-decoration: none;
+	color: $color-link;
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	user-select: none;
+	color: inherit;
+}
+img {
+	width: 100%;
+}
+img[lazy='loading'] {
+	display: block;
+	width: 100%;
+	height 100%;
+	margin: auto;
+	object-fit: cover;
+}
+input:focus{
+	outline: none;
+}
+::-webkit-scrollbar {
+ 	width: 8px;
+	height 8px;
+}
+::-webkit-scrollbar-track {
+	background-color: rgba(255,255,255,0);
+	-webkit-border-radius: 2em;
+	border-radius:2em;
+	-webkit-transition: all .3s;
+	transition: all .3s;
+}
+:hover::-webkit-scrollbar-track {
+	background-color: rgba(255,255,255,.4);
+}
+::-webkit-scrollbar-thumb {
+	background-color: rgba(0,0,0,0);
+	-webkit-border-radius: 2em;
+	border-radius:2em;
+	-webkit-transition: all .3s;
+	transition: all .3s;
+}
+:hover::-webkit-scrollbar-thumb {
+	background-color: rgba(0,0,0,.1);
+}
+html,
+body,
+#app {
+	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+	-webkit-touch-callout: none;
+	background: $color-bg;
+	font-size: 14px;
+	color:#666;
+	font-family: 'MicrosoftYaHei', '微软雅黑';
+	-ms-overflow-style: -ms-autohiding-scrollbar;
+}
+
+/*--------------------- 公共过渡动画样式 --------------------------*/
+.slide-fade-enter-active {
+	-webkit-transition: all .3s ease;
+    transition: all .3s ease;
+}
+.slide-fade-leave-active {
+	-webkit-transition: all .3s ease;
+    transition: all .3s ease;
+	// -webkit-transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
+    // transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
+}
+.slide-fade-enter, .slide-fade-leave-to {
+	-webkit-transform: translateY(10px);
+	transform: translateY(10px);
+	opacity: 0;
+}

+ 3 - 0
src/pages/style/index.styl

@@ -0,0 +1,3 @@
+// 引入常用的基础文件
+@import './variable'
+@import 'mixin'

+ 67 - 0
src/pages/style/mixin.styl

@@ -0,0 +1,67 @@
+flex-row()
+    display flex
+    justify-content flex-start
+    align-items flex-start
+flex-row-end()
+    display flex
+    justify-content flex-end
+    align-items flex-start
+flex-row-center()
+    display flex
+    justify-content center
+    align-items center
+flex-row-between()
+    display flex
+    justify-content space-between
+    align-items center
+flex-row-around()
+    display flex
+    justify-content space-around
+    align-items center
+flex-row-wrap()
+    display flex
+    flex-wrap wrap
+    justify-content flex-start
+    align-items flex-start
+flex-row-wrap-center()
+    display flex
+    flex-wrap wrap
+    justify-content center
+    align-items center
+flex-row-wrap-between()
+    display flex
+    flex-wrap wrap
+    justify-content space-between
+    align-items center
+flex-row-wrap-around()
+    display flex
+    flex-wrap wrap
+    justify-content space-around
+    align-items center
+flex-col()
+    display flex
+    flex-direction column
+    justify-content flex-start
+    align-items flex-start
+flex-col-end()
+    display flex
+    flex-direction column
+    justify-content flex-end
+    align-items flex-start
+flex-col-center()
+    display flex
+    flex-direction column
+    justify-content center
+    align-items center
+flex-col-between()
+    display flex
+    flex-direction column
+    justify-content space-between
+    align-items center
+flex-col-around()
+    display flex
+    flex-direction column
+    justify-content space-around
+    align-items center
+box-shadow()
+    box-shadow 0px 3px 6px 0px rgba(230, 230, 230, .7)

+ 63 - 0
src/pages/style/variable.styl

@@ -0,0 +1,63 @@
+
+// 根据ui提供的规范定义
+$color-text-black = #000 // 文本颜色
+$color-text = #333
+$color-text-gray = #666
+$color-text-grayer = #999
+$color-text-blue = #1890ff
+$color-text-gray-blue = #7E7E7E
+$color-text-green = #52CC60
+$color-text-green-white = #65B800
+$color-text-yellow = #f2dc3f
+$color-text-white = #ffffff
+$color-text-grey = #cccccc
+$color-text-red = #F04844
+
+$color-as-1 = #f2dc3f; // 辅助色
+$color-as-2 = #FE6196;
+$color-as-3 = #d81e06;
+$color-as-4 = #d63235;
+$color-as-5 = #237ac0
+
+$color-link = #333; // 链接颜色
+
+$color-base-dark = #333; // 基本色
+$color-base-grayer = #666;
+$color-base-gray = #999;
+$color-base-white = #ddd;
+$color-base-bar = #1890ff
+
+$color-bg = #F1F3FA //背景颜色
+$color-bg-black = #9EA7B4
+$color-bg-white = #fff
+$color-bg-gray = #f2f2f2
+$color-bg-gray-white = #F8F8FB
+$color-bg-blue-white = #F7FBFC
+$color-bg-grayer = #e4e4e4 //更灰些
+$color-bg-light-blue = #DADCE5
+$color-bg-main-grayer = #f6f7f9
+$color-bg-gray-white = #FAFAFA
+$color-bg-theme = #232774
+$color-bg-green = #52CC60
+$color-bg-yellow = #f2dc3f
+$color-bg-red = #F04844
+
+$color-bd-black = #9EA7B4
+$color-bd = #ddd //边框颜色
+$color-bd-gray = #eee
+$color-bd-green = #52CC60
+$color-bd-red = #F04844
+$color-bd-white = #FFFFFF
+
+//字体定义规范
+$font-size-s = 10px
+$font-size-sm = 12px
+$font-size-m = 14px
+$font-size-l = 16px
+$font-size-xl = 18px
+$font-size-xxl = 20px
+$font-size-xxxl = 22px
+
+// 宽度
+$width-max = 1940px
+$width-min = 1040px

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

@@ -465,7 +465,10 @@
   .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;
@@ -550,6 +553,12 @@
     color: #393939;
 
   }
+  .el-input__inner, .el-checkbox__inner, .el-textarea__inner, .el-button {
+    font-size: 0.3125rem;
+    text-align: center;
+    line-height: 0!important;
+    padding: 12px 20px!important;
+}
   .textarea{
     background: #F6F7FB !important;
     font-size: 20px;

+ 8 - 0
src/pages/super/CheckTeacherPay.vue

@@ -88,7 +88,11 @@
             @size-change="handleSizeChange"
             @current-change="pageChange"
             :page-sizes="[10]"
+<<<<<<< HEAD
             layout="total,prev, pager, next"
+=======
+          layout="total, prev, pager, next"
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
             :total= parseInt(getTeacherSalaryList.pages)
           ></el-pagination>
         </div>
@@ -329,6 +333,10 @@
     color: #999999;
     font-size: 18px;
   }
+.el-pagination.is-background .el-pager li:not(.disabled).active {
+    background-color:#52cc60!important;
+    color: #fff;
+}
   .main-items{
     color: #393939;
     text-align: center;

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

@@ -432,6 +432,10 @@
     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;

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

@@ -66,7 +66,11 @@
             @size-change="handleSizeChange1"
             @current-change="pageChange1"
             :page-sizes="[10]"
+<<<<<<< HEAD
             layout="total,prev, pager, next"
+=======
+           layout="total, prev, pager, next"
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
             :total= parseInt(homeworkRecoveryList.pages)
           ></el-pagination>
         </div>
@@ -104,7 +108,7 @@
                 >
                 <div style="display: inline-block;text-align: left;">
                   <div style="font-size: 24px;margin-left: 10px">{{v.name}}</div>
-                  <div class="model-items-left-top-number">等待学生:{{v.waitCount}}</div>
+                  <div class="model-items-left-top-number">等待张数:{{v.waitCount}}</div>
                 </div>
               </div>
               <div>
@@ -122,7 +126,7 @@
             @size-change="handleSizeChange"
             @current-change="pageChange"
             :page-sizes="[10]"
-            layout="total, sizes, prev, pager, next, jumper"
+          layout="total, prev, pager, next"
             :total="parseInt(TeacherAllotList.pages)"
           ></el-pagination>
         </div>
@@ -239,6 +243,7 @@
           subject: this.allotList.subject,
           maxCreateTime: this.formatDate(),
           pageNo: this.allotList.pageNo,
+          originTeacherId:"",
           pageSize: this.allotList.pageSize
         });
       },
@@ -246,6 +251,7 @@
       async GOtoTeacherAllot(v) {
         this.$store.dispatch("toTeacherAllot", {
           teacherId: v.teacherId,
+           originTeacherId:"",
           homeworkId: this.allotList.homeworkId
         });
         this.isPigai = false
@@ -419,6 +425,10 @@
     text-decoration: underline;
     cursor: pointer;
   }
+.el-pagination.is-background .el-pager li:not(.disabled).active {
+    background-color:#52cc60!important;
+    color: #fff;
+}
   .pages{
     margin: 15px 0;
   }

+ 207 - 0
src/pages/super/HomeworkTotally.vue

@@ -0,0 +1,207 @@
+<!-- 活动解析 -->
+<template>
+  <div>
+    <!-- table 表格 -->
+    <el-row :gutter="20" class="main-items">
+      <el-col :span="20" class="main" :offset="2">
+        <el-row>
+          <el-col :span="20" class :offset="2">
+            <h5 class="tiplog">作业统计表</h5>
+          </el-col>
+          <el-col :span="16" class :offset="4">
+            <div class="block">
+              <span class="demonstration">选择时间</span>
+              <el-date-picker
+                @change="FindSubjectChartsInfo"
+                v-model="Timevalue"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                align="right"
+              ></el-date-picker>
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <!-- {{FindSubjectCharts}} -->
+          <el-col class="chartdiv">
+            <HomeworkTotalList :chartData="chartData1"></HomeworkTotalList>
+          </el-col>
+          <el-col class="chartdiv">
+            <HomeworkTotalList :chartData="chartData2"></HomeworkTotalList>
+          </el-col>
+          <el-col class="chartdiv">
+            <HomeworkTotalList :chartData="chartData3"></HomeworkTotalList>
+          </el-col>
+        </el-row>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+import { mapGetters, mapActions } from "vuex";
+import HomeworkTotalList from "@/components/HomeworkTotalList";
+import { IMG_BASE_URL } from "@/ImgConfig";
+export default {
+  components: {
+    HomeworkTotalList
+  },
+  name: "actvResolveLabel",
+  props: {},
+  data() {
+    return {
+      chartData1: {},
+      chartData2: {},
+      chartData3: {},
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            }
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            }
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            }
+          }
+        ]
+      },
+      Timevalue: "",
+      startTime: "",
+      endTime: ""
+
+      //   Timevalue: ""
+    };
+  },
+   created() {
+    this.getNowFormatDate(); //获取随机id
+  },
+  methods: {
+    // 数据列表
+    async FindSubjectChartsInfo() {
+      let arr = this.Timevalue;
+      if (this.Timevalue.length > 0) {
+        for (let i = 0; i < arr.length; i++) {
+          this.startTime = arr[0];
+          this.endTime = arr[1];
+        }
+      }
+      this.$store.dispatch("FindSubjectChartsLists", {
+        startTime: this.startTime,
+        endTime: this.endTime
+      });
+      console.log(this.startTime);
+      console.log(this.endTime);
+    },
+   //获取当前时间,格式YYYY-MM-DD
+   getNowFormatDate() {
+    var date = new Date();
+    var seperator1 = "-";
+    var year = date.getFullYear();
+    var month = date.getMonth() + 1;
+    var strDate = date.getDate();
+    if (month >= 1 && month <= 9) {
+        month = "0" + month;
+    }
+    if (strDate >= 0 && strDate <= 9) {
+        strDate = "0" + strDate;
+    }
+    var currentdate = year + seperator1 + month + seperator1 + strDate;
+    this.startTime = currentdate
+    this.endTime = currentdate
+    console.log(this.startTime)
+     console.log(this.endTime)
+      console.log(currentdate)
+}
+
+  },
+  watch: {
+    FindSubjectCharts: {
+      handler: function(val, oldVal) {
+        this.chartData1 = val;
+      },
+      deep: true
+    },
+    FindSubjectmathCharts: {
+      handler: function(val, oldVal) {
+        this.chartData2 = val;
+      },
+      deep: true
+    },
+    FindSubjectEngCharts: {
+      handler: function(val, oldVal) {
+        this.chartData3 = val;
+      },
+      deep: true
+    }
+  },
+  mounted() {
+    this.FindSubjectChartsInfo();
+  },
+  computed: {
+    ...mapGetters([
+      "FindSubjectCharts",
+      "FindSubjectmathCharts",
+      "FindSubjectEngCharts"
+    ])
+  }
+};
+</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;
+}
+.tiplog {
+  font-size: 30px;
+  text-align: center;
+  margin-top: 100px;
+  font-weight: 700;
+}
+.el-date-editor--daterange.el-input,
+.el-date-editor--daterange.el-input__inner,
+.el-date-editor--timerange.el-input,
+.el-date-editor--timerange.el-input__inner {
+  width: 35%;
+  height: 30%;
+  font-size: 12px;
+  border-radius: 15px;
+  text-align: center;
+}
+.chartdiv {
+  margin: 100px 0;
+}
+.block {
+  margin-top: 40px;
+}
+</style>

文件差異過大導致無法顯示
+ 658 - 156
src/pages/super/SchoolManager.vue


+ 74 - 7
src/pages/super/SuperAdmin.vue

@@ -54,11 +54,11 @@
             label="老师出勤率"
             header-align="center"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             prop="homeworkCount"
             label="作业批改总份数"
             header-align="center">
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column
             prop="homeworkPicCount"
             label="作业批改总张数"
@@ -85,8 +85,14 @@
           </el-table-column>
           <el-table-column prop="status" label="" header-align="center" width="250">
             <template slot-scope="scope">
-              <el-button type="success"  @click="groupDetail(scope.row.managerId)" >小组详情</el-button>
-              <el-button type="success" plain @click="isShow(1,scope.row.managerId)" v-if="scope.$index>0">管理员详情</el-button>
+                 <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">
+                  <span>管理员详情</span>
+                </div>
+              <!-- <el-button type="success"  @click="groupDetail(scope.row.managerId)" >小组详情</el-button>
+              <el-button type="success" plain @click="isShow(1,scope.row.managerId)" v-if="scope.$index>0">管理员详情</el-button> -->
             </template>
           </el-table-column>
 
@@ -125,7 +131,10 @@
               </div>
             </div>
             <div>
-              <el-button type="danger" plain round @click="isShow(2,getManagerDetail.name)" icon="el-icon-bottom">降级</el-button>
+                <div class="closeTeacherID" @click="isShow(2,getManagerDetail.name)">
+                  <span class="el-icon-close">降级</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>
@@ -412,7 +421,10 @@
   .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;
@@ -553,6 +565,61 @@
     background-color:#F6F7FB;
     font-size: 16px !important;
     color: #393939;
-
   }
+  .closeTeacherID {
+   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 {
+  display: inline-block;
+  height: 40px;
+  width: 120px;
+  color: #67c23a;
+  background: #f0f9eb;
+  border-color: #c2e7b0;
+  /* 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;
+}
+.UpTeacherIDiNfo {
+  display: inline-block;
+  height: 40px;
+  width: 120px;
+  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;
+}
 </style>

+ 7 - 0
src/router/index.js

@@ -18,6 +18,7 @@ import SuperSchoolManager from "@/pages/Super/SchoolManager";
 import CheckTeacherPay from "@/pages/Super/CheckTeacherPay";
 import SuperAdmin from "@/pages/Super/SuperAdmin";
 import HomeworkRecycle from "@/pages/Super/HomeworkRecycle";
+import HomeworkTotally from "@/pages/Super/HomeworkTotally";
 // 在线批改老师
 import Onlineteacher from "@/pages/OnlineTeacher/onlineteacher";
 import Redirect_uri from "@/pages/aikmt/Redirect_uri"; //微信登陆路由重定向页面
@@ -87,6 +88,12 @@ export const constantRouterMap =
            component: HomeworkRecycle,
            meta: { title: '作业回收站', roles: ['3'] }
          },
+         {
+          path: "HomeworkTotally",
+          name: "HomeworkTotally",
+          component: HomeworkTotally,
+          meta: { title: '作业统计', roles: ['3'] }
+        },
        ]
      },
     //  校区管理员角色路由

+ 8 - 0
src/store/getters.js

@@ -32,6 +32,14 @@ const getters = {
   pictureIndex :state => state.user.pictureIndex,
   InfoTeacherstatues :state => state.user.InfoTeacherstatues,
   GetTeacherstatues :state => state.user.GetTeacherstatues,
+<<<<<<< HEAD
   getRemindCount:state => state.user.getRemindCount,
+=======
+  ApporingTeacherstatues :state => state.user.ApporingTeacherstatues,
+  currtHomeworkStatus :state => state.user.currtHomeworkStatus,
+  FindSubjectCharts :state => state.user.FindSubjectCharts,
+  FindSubjectmathCharts :state => state.user.FindSubjectmathCharts,
+  FindSubjectEngCharts :state => state.user.FindSubjectEngCharts,
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
 }
 export default getters

+ 2 - 2
src/store/modules/permission.js

@@ -1,4 +1,4 @@
-import { asyncRouterMap, constantRouterMap } from '@/router'
+import { constantRouterMap } from '@/router'
 
 /**
  * 通过meta.role判断是否与当前用户权限匹配
@@ -19,7 +19,7 @@ function hasPermission(roles, route) {
  * @param roles
  */
 function filterAsyncRouter(asyncRouterMap, roles) {  // 闭包查找所有该roles下的路由
-  console.log(asyncRouterMap, roles)
+  // console.log(asyncRouterMap, roles)
   // debugger
   const accessedRouters = asyncRouterMap.filter(route => {
       // const temp = []

+ 100 - 5
src/store/modules/user.js

@@ -3,7 +3,12 @@ import { GET_UUIONID_TOKEN,GET_TOKEN,GetInfo,InfoWatch,InfoWatchDay,
   TeacherAllot,UnallotHomeworkList,GetTeacherDetail,
   GetStudentDetail,GetManagerDetail,Downgrade,SuperManagerList,
   SuperApplyTeacherList,ApplyOperate,GetTeacherSalaryList,DealCorrectTeacher,
+<<<<<<< HEAD
   GetAllotManagerList,AllotTeacherToManager,HomeworkRecoveryList,GetRemindCount,errorWarning,errorDetail,logout
+=======
+  GetAllotManagerList,AllotTeacherToManager,HomeworkRecoveryList,errorWarning,errorDetail,logout,
+  CheckHomeworkStatus,FindSubjectCharts
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
   } from '@/api'
   import { APPOR_BASE_URL } from '@/ImgConfig'
 import { getToken, setToken, removeToken } from '@/utils/auth'
@@ -39,7 +44,15 @@ const user = {
     pictureIndex:0,
     InfoTeacherstatues:"",
     GetTeacherstatues:"",
+<<<<<<< HEAD
 		getRemindCount:"",
+=======
+    ApporingTeacherstatues:"",
+    currtHomeworkStatus:"",
+    FindSubjectCharts:[],
+    FindSubjectmathCharts:[],
+    FindSubjectEngCharts:[]
+>>>>>>> 5309336df77a73102e1ff47b84ac455ae67d8d75
   },
 
   mutations: {
@@ -118,6 +131,9 @@ const user = {
     SET_GET_SUCCESS_TEACHERINFO_STUS:(state,InfoTeacherstatues) => {
       state.InfoTeacherstatues = InfoTeacherstatues
     },
+    SET_APPORING_STATUS:(state,ApporingTeacherstatues) => {
+      state.ApporingTeacherstatues = ApporingTeacherstatues
+    },
     SET_GET_SUCCESS_MANAGER_DETAIL:(state,GetTeacherstatues) => {
       state.GetTeacherstatues = GetTeacherstatues
     },
@@ -135,6 +151,18 @@ const user = {
       console.log(pictureIndex)
       state.pictureIndex = pictureIndex
     },
+    SET_CURRT_HOMEWORK_STATUS:(state,currtHomeworkStatus) => {
+      state.currtHomeworkStatus = currtHomeworkStatus
+    },
+    FIND_SUBJECT_CHARTS:(state,FindSubjectCharts) => {
+      state.FindSubjectCharts = FindSubjectCharts
+    },
+    FIND_SUBJECTMATH_CHARTS:(state,FindSubjectmathCharts) => {
+      state.FindSubjectmathCharts = FindSubjectmathCharts
+    },
+    FIND_SUBJECTENG_CHARTS:(state,FindSubjectEngCharts) => {
+      state.FindSubjectEngCharts = FindSubjectEngCharts
+    },
   },
 
   actions: {
@@ -150,17 +178,19 @@ const user = {
             commit('SET_TOKEN', data);
             localStorage.setItem("accessToken",data.accessToken)
                    dispatch('GetInfo').then(res => { // 拉取用户信息
-                    // debugger
                         const roles = res.data.role
                         const isBanned = res.data.isBanned
                         const userId = res.data.userId
                         localStorage.setItem("userId",userId)
                         if (isBanned == 0) {
                           if (roles == 0) {
-                            Message.error('无用户角色')
+                            localStorage.removeItem("accessToken");
+                            window.open(APPOR_BASE_URL + '?unionid=' + unionid);
+                            Message.error('无用户角色,请先注册')
                           }
                           if (roles == 1) {
                             Message.success('在线批改老师角色登录成功')
+                            localStorage.removeItem("accessToken");
                             window.open(APPOR_BASE_URL + '?unionid=' + unionid);
                           }
                           if (roles == 2) {
@@ -174,10 +204,12 @@ const user = {
                             // router.push({path: '/super', replace: true})
                           }
                         } if (isBanned == 1) {
+                          localStorage.removeItem("accessToken");
                           Message.error('您已被封号')
                           router.push("/");
                         }
                       }).catch(() => {
+                        localStorage.removeItem("accessToken");
                           Message.error('用户信息验证失败,请重新登录')
                       })
           } else {
@@ -208,10 +240,13 @@ const user = {
                         localStorage.setItem("userId",userId)
                         if (isBanned == 0) {
                           if (roles == 0) {
-                            Message.error('无用户角色')
+                            Message.error('无用户角色,请先注册')
+                            localStorage.removeItem("accessToken");
+                            window.open(APPOR_BASE_URL + '?unionid=' + unionid);
                           }
                           if (roles == 1) {
                             Message.success('在线批改老师角色登录成功')
+                            localStorage.removeItem("accessToken");
                             window.open(APPOR_BASE_URL + '?unionid=' + unionid);
                           }
                           if (roles == 2) {
@@ -227,10 +262,12 @@ const user = {
                             
                           }
                         } if (isBanned == 1) {
+                          localStorage.removeItem("accessToken");
                           Message.error('您已被封号')
                           router.push("/");
                         }
                       }).catch(() => {
+                        localStorage.removeItem("accessToken");
                           Message.error('用户信息验证失败,请重新登录')
                       })
           } else {
@@ -302,13 +339,51 @@ const user = {
         })
       })
     },
+        // 质检当前作业状态
+        CheckCurrHomeworkStatus({ commit, state }, data) {
+          return new Promise((resolve, reject) => {
+            axios.post(CheckHomeworkStatus, data).then(response => {
+              const data = response.data || {}
+              if (response.code === '999'){
+                if (data.status == 3){
+                  commit('SET_CURRT_HOMEWORK_STATUS',new Date());
+                  resolve(response)
+                }
+                if (data.status == 1){
+                  Message.error("当前作业还未批改,请手动刷新当前作业列表!")
+                  resolve(response)
+                }
+                if (data.status == 2){
+                  Message.error("当前作业正在批改中,请手动刷新当前作业列表!")
+                  resolve(response)
+                }
+              }
+              if (response.code === '000'){
+                Message.error(response.msg)
+                resolve(response)
+              }
+            }).catch(error => {
+              reject(error)
+            })
+          })
+        },
        // 查看可分配老师列表
        TeacherAllotList({ commit, state }, data) {
         return new Promise((resolve, reject) => {
           axios.post(TeacherAllotList, data).then(response => {
             const data = response.data || {}
-            commit('SET_TEACHER_ALLOTIST', data);
-            resolve(response)
+            if (response.code === '999'){
+              commit('SET_TEACHER_ALLOTIST', data);
+              resolve(response)
+            }
+            if (response.code === '000'){
+              Message.error(response.msg)
+                commit('SET_APPORING_STATUS',new Date());
+              resolve(response)
+            }
+            if (response.code === "") {
+              Message.error("出了点小问题,噢噢。。。")
+            }
           }).catch(error => {
             reject(error)
           })
@@ -342,6 +417,21 @@ const user = {
               })
             })
           },
+            // 管理员查看科目报表数据
+      FindSubjectChartsLists({ commit, state }, data) {
+      return new Promise((resolve, reject) => {
+        axios.post(FindSubjectCharts, data).then((response = {}) => {
+          const data = response.data.chartList || {}
+          if (response.code === "999"){
+            commit('FIND_SUBJECT_CHARTS', data[0]);
+            commit('FIND_SUBJECTMATH_CHARTS', data[1]);
+            commit('FIND_SUBJECTENG_CHARTS', data[2]);
+          }
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
         // 未批改作业列表
         UnallotHomeworkList({ commit, state }, data) {
           return new Promise((resolve, reject) => {
@@ -406,6 +496,11 @@ const user = {
                     commit('SET_GET_SUCCESS_CODE',new Date());
                     // Message.success('分配成功')
                   }
+                  if (response.code === '000'){
+                    Message.error(response.msg)
+                      commit('SET_APPORING_STATUS',new Date());
+                    resolve(response)
+                  }
                 }).catch(error => {
                   reject(error)
                 })

二進制
static/favicon.ico