Browse Source

提交校区管理员页面

name 7 years ago
parent
commit
5292090a69
8 changed files with 847 additions and 346 deletions
  1. 14 0
      src/App.vue
  2. 10 3
      src/api/index.js
  3. 101 97
      src/components/MenuComponent.vue
  4. 606 242
      src/pages/home/SchoolManager.vue
  5. 10 0
      src/permission.js
  6. 50 0
      src/router/index.js
  7. 2 1
      src/store/getters.js
  8. 54 3
      src/store/modules/user.js

+ 14 - 0
src/App.vue

@@ -11,6 +11,20 @@ export default {
     return {
     }
   },
+     created () {
+      //在页面加载时读取sessionStorage里的状态信息
+      if (sessionStorage.getItem("store") ) {
+          this.$store.replaceState(Object.assign({}, this.$store.state,JSON.parse(sessionStorage.getItem("store"))))
+      }
+
+      //在页面刷新时将vuex里的信息保存到sessionStorage里
+      window.addEventListener("beforeunload",() => {
+          sessionStorage.setItem("store",JSON.stringify(this.$store.state))
+      })
+      //
+      // console.log(this.$route.query.accessToken)
+      // sessionStorage.setItem("accessToken", this.$route.query.accessToken);
+    },
   methods: {
     initWindow() {
       let whdef = 100 / 1920 // 表示1920的设计图,使用100PX的默认值

+ 10 - 3
src/api/index.js

@@ -6,9 +6,16 @@ const urlFn = v => BASE_URL + v
 const GET_TOKEN = urlFn('/api/kmt/login/wxlogin/scanlogin')
 // 获取用户信息
 const GetInfo = urlFn('/api/kmt/correctSys/getMyInfo')
-// import fetch from './axios'
-
+// 校区群管理员数据监控
+const InfoWatch = urlFn('/api/kmt/correctSys/monitorTeacherList')
+// 校区群管理员当天数据
+const InfoWatchDay = urlFn('/api/kmt/correctSys/monitorOneDayList')
+// 校区群管理员当月数据
+const InfoWatchMoth = urlFn('/api/kmt/correctSys/monitorOneMonthList')
 export {
     GET_TOKEN,
-    GetInfo
+    GetInfo,
+    InfoWatch,
+    InfoWatchDay,
+    InfoWatchMoth
 }

+ 101 - 97
src/components/MenuComponent.vue

@@ -1,114 +1,118 @@
 <template>
   <el-col :span="24" class="">
-    <el-col :span="2" :offset="1">
-      <img class="logoImg" src="../assets/img/log.png"/>
-    </el-col>
-    <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 :span="2" :offset="1">
+       <img class="logoImg" src="../assets/img/log.png"/>
+      </el-col>
+      <el-col :span="2" v-show="roles.indexOf(item.id) >= 0"  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>
 
-    <el-col :span="2"  :offset="13">
-      <div class="">
-        <img class="userstyle" src="../assets/img/user.jpg"/>
-        <span>李老师</span>
-        <i class="el-icon-caret-bottom"></i>
-        <img src="" alt="">
-        <span>退出</span>
-      </div>
-    </el-col>
-    <el-col :span="1"></el-col>
+      <el-col :span="2"  :offset="13">
+        <div class="">
+          <img class="userstyle" src="../assets/img/user.jpg"/>
+          <span>李老师</span>
+          <i class="el-icon-caret-bottom"></i>
+          <img src="" alt="">
+          <span>退出</span>
+        </div>
+      </el-col>
+      <el-col :span="1"></el-col>
   </el-col>
 </template>
 
 <script>
-  export default {
-    name: "navMenu",
-    // props: {
-    //   navsData: Array
+import {mapGetters} from 'vuex'
+export default {
+  name: "navMenu",
+  // props: {
+  //   navsData: Array
+  // },
+  data() {
+    return {
+      menuData: [ {
+    id: "2",
+    name: "校区群管理员",
+    href: "SchoolManager",
+  },
+  {
+    id: "2",
+    name: " 在线批改老师",
+    href: "TeacherApporval",
+  },
+  {
+    id: "2",
+    name: "",
+    href: "TeacherPay",
+  },
+ ],
+      checkindex: 0
+    };
+  },
+  watch: {
+    navsData(n) {
+      this.navsData = n;
+      this.initNav();
+    }
+  },
+  methods: {
+    // 初始化处理
+    // initNav() {
+    //   this.menuData = JSON.parse(JSON.stringify(this.navsData));
     // },
-    data() {
-      return {
-        menuData: [ {
-          id: "1",
-          name: "校区群管理员",
-          href: "SchoolManager",
-        },
-          {
-            id: "2",
-            name: " 在线批改老师",
-            href: "TeacherApporval",
-          },
-          {
-            id: "3",
-            name: "",
-            href: "TeacherPay",
-          },
-        ],
-        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("/home/" + val.href);
-        this.checkindex = index;
-      }
-    },
-    mounted() {
-      // this.initNav();
+    secondNavClick(val, index) {
+      this.$router.push("/home/" + val.href);
+      this.checkindex = index;
     }
-  };
+  },
+  computed: {
+      ...mapGetters(['name', 'avatar','roles'])
+    },
+  mounted() {
+    // this.initNav();
+  }
+};
 </script>
 <style scoped>
-  /*.mainHeader{*/
+/*.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;
-  }
+/*}*/
+.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;

+ 606 - 242
src/pages/home/SchoolManager.vue

@@ -1,14 +1,32 @@
 <!-- 活动解析 -->
 <template>
   <div>
+<<<<<<< HEAD
+=======
+    <!--&lt;!&ndash; 筛选 &ndash;&gt;-->
+    <!--<div class="all_select">-->
+    <!--<h2 class="all_title" style="display: none">-->
+    <!--<div class="all_dot"></div>-->
+    <!--<p style="font-size: 16px">查询条件</p>-->
+    <!--</h2>-->
+    <!--</div>-->
+
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
     <!-- table 表格 -->
-    <el-row :gutter="20" class="main-items" >
+    <el-row :gutter="20" class="main-items">
       <el-col class="aside" :span="4" :offset="1" style="padding: 0 !important;">
-        <div class="table-aside" v-for='(v, k) in ItemList' :key='k' :class="{active:k == checkindex}" @click="selectTitle(k)">{{v.text}}</div>
+        <div
+          class="table-aside"
+          v-for="(v, k) in ItemList"
+          :key="k"
+          :class="{active:k == checkindex}"
+          @click="selectTitle(k)"
+        >{{v.text}}</div>
       </el-col>
       <!--数据监控-->
       <el-col :span="18" class="main" v-if="checkindex == 0">
         <el-row :gutter="20" class="main-header">
+<<<<<<< HEAD
           <el-col :span="3"><div class="main-header-item" >在线:6人</div></el-col>
           <el-col :span="3"><div class="main-header-item" >离线:26人</div></el-col>
           <el-col :span="5"><div class="main-header-item"><span>分配未批改作业:4份</span><span class="main-header-link" @click="isShow(1)">去分配</span></div></el-col>
@@ -16,14 +34,58 @@
             <el-input placeholder="请输入内容" v-model="input3" class="input-with-select">
               <el-select v-model="select" slot="prepend" placeholder="选年级" minlength="20">
                 <el-option label="一年级" value="1"></el-option>
+=======
+          <el-col :span="2">
+            <div class="main-header-item" @click="isShow(1)">在线:{{monitorTeacherList.onlineCount}}人</div>
+          </el-col>
+          <el-col :span="2">
+            <div class="main-header-item" @click="isShow(2)">离线:{{monitorTeacherList.offlineCount}}人</div>
+          </el-col>
+          <el-col :span="4">
+            <div class="main-header-item">
+              <span>未分配批改作业:{{monitorTeacherList.unCorrectCount}}份</span>
+              <a href class="main-header-link">去分配</a>
+            </div>
+          </el-col>
+          <el-col :span="8" :offset="0">
+            <el-input placeholder="请输入老师名字" v-model="filters.inputValue" class="input-with-select">
+              <el-select
+                v-model="filters.OptionsValue"
+                @change="InfoWatch"
+                slot="prepend"
+                placeholder="选年级"
+                minlength="20"
+              >
+                <el-option
+                  v-for="(item, k) in options"
+                  :key="k"
+                  :label="item.label"
+                  :value="item.label"
+                ></el-option>
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
               </el-select>
-              <el-select v-model="select" slot="prepend" placeholder="选科目" minlength="20">
-                <el-option label="数学" value="1"></el-option>
+              <el-select
+                v-model="filters.gradesValue"
+                @change="InfoWatch"
+                slot="prepend"
+                placeholder="选科目"
+                minlength="20"
+              >
+                <el-option
+                  v-for="(item, k) in grades"
+                  :key="k"
+                  :label="item.label"
+                  :value="item.label"
+                ></el-option>
               </el-select>
-              <el-button slot="append" icon="el-icon-search"></el-button>
+              <el-button  @click="InfoWatch" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
+            <div class="block">
+              <el-date-picker v-model="filters.MaxtimeValue"  value-format="yyyy-MM-dd HH:mm:ss"  type="date" placeholder="选择日期"></el-date-picker>
+            </div>
         </el-row>
+<<<<<<< HEAD
 
         <el-row :gutter="20" class="main-header">
           <el-col :span="24">
@@ -69,20 +131,59 @@
             </div>
           </el-col>
         </el-row>
+=======
+        <el-table :data="dataList" highlight-current-row size="mini" stripe>
+          <el-table-column label="头像" header-align="center">
+            <template scope="scope">
+              <img :src="scope.row.img" alt class="table-img">
+            </template>
+          </el-table-column>
+          <el-table-column prop="names" label="姓名" header-align="center"></el-table-column>
+          <el-table-column prop="number" label="等待学生数" header-align="center"></el-table-column>
+          <el-table-column prop="time" label="作业最长等待时长" header-align="center"></el-table-column>
+          <el-table-column prop="allTime" label="累计批改时间" header-align="center"></el-table-column>
+          <el-table-column prop="rate" label="响应速度" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="状态" header-align="center"></el-table-column>
+        </el-table>
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
       </el-col>
       <!--当天-->
       <el-col :span="18" class="main" v-if="checkindex == 1">
         <el-row :gutter="20" class="main-header">
-          <el-col :span="5"><div class="main-header-item" @click="isShow(1)">今日报错总次数::6人</div></el-col>
+          <el-col :span="5">
+            <div class="main-header-item" @click="isShow(1)">今日报错总次数::6人</div>
+          </el-col>
           <el-col :span="10" :offset="5">
-            <el-input placeholder="请输入内容" v-model="input3" class="input-with-select">
-              <el-select v-model="select" slot="prepend" placeholder="选年级" minlength="20">
-                <el-option label="一年级" value="1"></el-option>
+              <el-input placeholder="请输入老师名字" v-model="filters1.inputValue" class="input-with-select">
+              <el-select
+                v-model="filters1.OptionsValue"
+                @change="InfoWatch"
+                slot="prepend"
+                placeholder="选年级"
+                minlength="20"
+              >
+                <el-option
+                  v-for="(item, k) in options"
+                  :key="k"
+                  :label="item.label"
+                  :value="item.label"
+                ></el-option>
               </el-select>
-              <el-select v-model="select" slot="prepend" placeholder="选科目" minlength="20">
-                <el-option label="数学" value="1"></el-option>
+              <el-select
+                v-model="filters1.gradesValue"
+                @change="InfoWatch"
+                slot="prepend"
+                placeholder="选科目"
+                minlength="20"
+              >
+                <el-option
+                  v-for="(item, k) in grades"
+                  :key="k"
+                  :label="item.label"
+                  :value="item.label"
+                ></el-option>
               </el-select>
-              <el-button slot="append" icon="el-icon-search"></el-button>
+              <el-button  @click="InfoWatch" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
           <el-col :span="4">
@@ -91,70 +192,58 @@
             <i class="el-icon-d-arrow-right"></i>
           </el-col>
         </el-row>
-        <el-table
-          :data="dataList"
-          highlight-current-row
-          size="mini"
-          stripe
-        >
-          <el-table-column
-            label="头像"
-            header-align="center"
-          >
+        <el-table :data="dataList" highlight-current-row size="mini" stripe>
+          <el-table-column label="头像" header-align="center">
             <template scope="scope">
-              <img :src="scope.row.img" alt="" class="table-img">
+              <img :src="scope.row.img" alt class="table-img">
             </template>
           </el-table-column>
-          <el-table-column
-            prop="names"
-            label="姓名"
-            header-align="center"
-          >
-          </el-table-column>
-          <el-table-column
-            prop="number"
-            label="被报错"
-            header-align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="time"
-            label="科目"
-            header-align="center">
-          </el-table-column>
-          <el-table-column
-            prop="allTime"
-            label="批改总份数"
-            header-align="center"
-          >
-          </el-table-column>
-          <el-table-column
-            prop="rate"
-            label="批改总张数"
-            header-align="center"></el-table-column>
-          <el-table-column
-            prop="status"
-            label="平均批改时间"
-            header-align="center"></el-table-column>
-          <el-table-column
-            prop="status"
-            label="出勤"
-            header-align="center"></el-table-column>
-
+          <el-table-column prop="names" label="姓名" header-align="center"></el-table-column>
+          <el-table-column prop="number" label="被报错" header-align="center"></el-table-column>
+          <el-table-column prop="time" label="科目" header-align="center"></el-table-column>
+          <el-table-column prop="allTime" label="批改总份数" header-align="center"></el-table-column>
+          <el-table-column prop="rate" label="批改总张数" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="平均批改时间" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="出勤" header-align="center"></el-table-column>
         </el-table>
       </el-col>
       <!--当月-->
       <el-col :span="18" class="main" v-if="checkindex == 2">
         <el-row :gutter="20" class="main-header">
-          <el-col :span="5"><div class="main-header-item" @click="isShow(1)">当月报错总次数:6人</div></el-col>
+          <el-col :span="5">
+            <div class="main-header-item" @click="isShow(1)">当月报错总次数:6人</div>
+          </el-col>
           <el-col :span="10" :offset="5">
-            <el-input placeholder="请输入老师" v-model="input3" class="input-with-select">
-              <el-select v-model="select" slot="prepend" placeholder="选年级" minlength="20">
-                <el-option label="一年级" value="1"></el-option>
+            <el-input placeholder="请输入老师名字" v-model="filters2.inputValue" class="input-with-select">
+              <el-select
+                v-model="filters2.OptionsValue"
+                @change="InfoWatch"
+                slot="prepend"
+                placeholder="选年级"
+                minlength="20"
+              >
+                <el-option
+                  v-for="(item, k) in options"
+                  :key="k"
+                  :label="item.label"
+                  :value="item.label"
+                ></el-option>
               </el-select>
-              <el-select v-model="select" slot="prepend" placeholder="选科目" minlength="20">
-                <el-option label="数学" value="1"></el-option>
+              <el-select
+                v-model="filters2.gradesValue"
+                @change="InfoWatch"
+                slot="prepend"
+                placeholder="选科目"
+                minlength="20"
+              >
+                <el-option
+                  v-for="(item, k) in grades"
+                  :key="k"
+                  :label="item.label"
+                  :value="item.label"
+                ></el-option>
               </el-select>
-              <el-button slot="append" icon="el-icon-search"></el-button>
+              <el-button  @click="InfoWatch" slot="append" icon="el-icon-search"></el-button>
             </el-input>
           </el-col>
           <el-col :span="4">
@@ -163,82 +252,48 @@
             <i class="el-icon-d-arrow-right"></i>
           </el-col>
         </el-row>
-        <el-table
-          :data="dataList"
-          highlight-current-row
-          size="mini"
-          stripe
-        >
-          <el-table-column
-            label="头像"
-            header-align="center"
-          >
+        <el-table :data="dataList" highlight-current-row size="mini" stripe>
+          <el-table-column label="头像" header-align="center">
             <template scope="scope">
-              <img :src="scope.row.img" alt="" class="table-img">
+              <img :src="scope.row.img" alt class="table-img">
             </template>
           </el-table-column>
-          <el-table-column
-            prop="names"
-            label="姓名"
-            header-align="center"
-          >
-          </el-table-column>
-          <el-table-column
-            prop="number"
-            label="被报错"
-            header-align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="time"
-            label="科目"
-            header-align="center">
-          </el-table-column>
-          <el-table-column
-            prop="allTime"
-            label="批改总份数"
-            header-align="center"
-          >
-          </el-table-column>
-          <el-table-column
-            prop="rate"
-            label="批改总张数"
-            header-align="center"></el-table-column>
-          <el-table-column
-            prop="status"
-            label="正确率"
-            header-align="center"></el-table-column>
-          <el-table-column
-            prop="status"
-            label="满意度"
-            header-align="center"></el-table-column>
-          <el-table-column
-            prop="status"
-            label="平均批改时间"
-            header-align="center"></el-table-column>
-          <el-table-column
-            prop="status"
-            label="出勤率"
-            header-align="center"></el-table-column>
-
+          <el-table-column prop="names" label="姓名" header-align="center"></el-table-column>
+          <el-table-column prop="number" label="被报错" header-align="center"></el-table-column>
+          <el-table-column prop="time" label="科目" header-align="center"></el-table-column>
+          <el-table-column prop="allTime" label="批改总份数" header-align="center"></el-table-column>
+          <el-table-column prop="rate" label="批改总张数" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="正确率" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="满意度" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="平均批改时间" header-align="center"></el-table-column>
+          <el-table-column prop="status" label="出勤率" header-align="center"></el-table-column>
         </el-table>
+        <div slot="footer">
+          <!-- 分页显示 -->
+          <el-pagination
+            style="text-align:left;float:left;"
+            background
+            @size-change="handleSizeChange"
+            @current-change="pageChange"
+            :current-page.sync="currentPage"
+            :page-sizes="[10, 20, 30, 40]"
+            layout="total, prev, pager, next, jumper"
+            :total="filters.count"
+          ></el-pagination>
+          <div style="float:right;margin-left:15px;">
+            <el-button @click="myVisible = false" size="small">取 消</el-button>
+            <el-button type="primary" size="small" @click="submit">确定</el-button>
+          </div>
+          <div style="clear:both;"></div>
+        </div>
       </el-col>
       <!-- 分页显示 -->
-      <!--<el-pagination-->
-      <!--background-->
-      <!--class="all_pagination"-->
-      <!--@size-change="handleSizeChange"-->
-      <!--@current-change="pageChange"-->
-      <!--:page-sizes="[10, 20, 30, 40]"-->
-      <!--:page-size="10"-->
-      <!--layout="total, sizes, prev, pager, next, jumper"-->
-      <!--:total="filters.count">-->
-      <!--</el-pagination>-->
     </el-row>
 
     <!--可分配老师-->
-    <div class='showModel' @click="allShowModel(1)" v-if="hiddenModel"></div>
-    <div class='model' v-if="hiddenModel">
-      <div class='model-text'>
+    <div class="showModel" @click="allShowModel(1)" v-if="hiddenModel"></div>
+    <div class="model" v-if="hiddenModel">
+      <div class="model-text">
         <div class="model-text-head">
           <div>可分配老师</div>
           <div>二年级数学</div>
@@ -247,61 +302,52 @@
           <div class="model-items-left">
             <div class="model-items-left-top">
               <div>
-                <img src="../../assets/img/user.jpg" alt="" class="model-items-left-top-img">
+                <img src="../../assets/img/user.jpg" alt class="model-items-left-top-img">
                 <div style="display: inline-block">
                   <div style="font-size: 24px">李大柱</div>
                   <div class="model-items-left-top-number">等待学生:0</div>
                 </div>
               </div>
-              <div> <el-button type="success">分配</el-button></div>
+              <div>
+                <el-button type="success">分配</el-button>
+              </div>
             </div>
           </div>
           <div class="model-items-left">
             <div class="model-items-left-top">
               <div>
-                <img src="../../assets/img/user.jpg" alt="" class="model-items-left-top-img">
+                <img src="../../assets/img/user.jpg" alt class="model-items-left-top-img">
                 <div style="display: inline-block">
                   <div style="font-size: 24px">李大柱</div>
                   <div class="model-items-left-top-number">等待学生:0</div>
                 </div>
               </div>
-              <div> <el-button type="success">分配</el-button></div>
+              <div>
+                <el-button type="success">分配</el-button>
+              </div>
             </div>
           </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="showModel" @click="allShowModel(2)" v-if="isPigai"></div>
+    <div class="model" v-if="isPigai">
+      <div class="model-text">
         <div class="model-text-head">
           <div>所有未批改作业</div>
         </div>
-        <el-table
-          :data="tableData"
-          style="width: 100%">
-          <el-table-column
-            prop="date"
-            label="日期"
-            width="180">
-          </el-table-column>
-          <el-table-column
-            prop="name"
-            label="姓名"
-            width="180">
-          </el-table-column>
-          <el-table-column
-            prop="address"
-            label="地址">
-          </el-table-column>
+        <el-table :data="tableData" style="width: 100%">
+          <el-table-column prop="date" label="日期" width="180"></el-table-column>
+          <el-table-column prop="name" label="姓名" width="180"></el-table-column>
+          <el-table-column prop="address" label="地址"></el-table-column>
         </el-table>
       </div>
     </div>
   </div>
 </template>
 <script>
+<<<<<<< HEAD
   import { mapGetters, mapActions } from "vuex";
   export default {
     components: { },
@@ -355,49 +401,106 @@
           count: 0,
           orderField: "",
           orderAD: ""
+=======
+import { mapGetters, mapActions } from "vuex";
+export default {
+  components: {},
+  name: "actvResolveLabel",
+  props: {},
+  data() {
+    return {
+      checkindex: 0,
+      hiddenModel: false,
+      isPigai: false,
+      options: [
+        {
+          value: "0",
+          label: "一年级"
+        },
+        {
+          value: "1",
+          label: "二年级"
+        },
+        {
+          value: "2",
+          label: "三年级"
+        },
+        {
+          value: "3",
+          label: "四年级"
+        },
+        {
+          value: "4",
+          label: "五年级"
+        },
+        {
+          value: "5",
+          label: "六年级"
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
         }
-      };
-    },
-    watch: {},
-    computed: {
-      ...mapGetters(["getUser"])
-    },
-    methods: {
-      ...mapActions(["setUser"]),
-      selectTitle(k) {
-        console.log(k);
-        this.checkindex = k;
-      },
-      isShow(str){
-        let _this = this;
-        console.log(str)
-        if (str == 1){
-          _this.hiddenModel = true;
-        } else if (str == 2){
-          _this.isPigai = true;
+      ],
+      grades: [
+        {
+          value: "0",
+          label: "语文"
+        },
+        {
+          value: "1",
+          label: "数学"
+        },
+        {
+          value: "2",
+          label: "英语"
         }
-
-      },
-      //关闭弹框
-      allShowModel(str) {
-        let _this = this;
-        if (str == 1){
-          _this.hiddenModel = false;
-        } else if (str == 2){
-          _this.isPigai = false;
+      ],
+      ItemList: [
+        {
+          text: "数据监控"
+        },
+        {
+          text: "当天"
+        },
+        {
+          text: "当月"
         }
-      },
-      //  输入框按键方法
-      keyCodeMethod(e) {
-        if (e.keyCode === 13) return this.itemListReshow();
-      },
-      expandChange(row, expandRows) {
-        for (let item of expandRows) {
-          if (row === item) {
-            this.expandRowKeys = [row.nodId];
-          }
+      ],
+      dataList: [
+        {
+          img: "../../assets/img/user.jpg",
+          names: "阿三",
+          number: "3",
+          time: "14:22",
+          allTime: "14:22",
+          rate: "222",
+          status: "22"
+        },
+        {
+          img: "../../assets/img/user.jpg",
+          names: "阿三",
+          number: "3",
+          time: "14:22",
+          allTime: "14:22",
+          rate: "222",
+          status: "22"
         }
+      ],
+      filters: { //超级管理员数据监控
+        actvNm: "",
+        actvCrtUserId: "",
+        actvType: "",
+        actvSmallType: "",
+        // 排序
+        MaxtimeValue:"",
+        OptionsValue: "",
+        gradesValue: "",
+        inputValue: "",
+        pageNo: 1,
+        pageSize: 10,
+        count: 0,
+        orderField: "",
+        orderAD: ""
       },
+<<<<<<< HEAD
       // 点击下拉
       dropDown(){
         this.isDown = !this.isDown;
@@ -415,61 +518,198 @@
           this.filters.startDate = null;
           this.filters.endDate = null;
         }
+=======
+       filters1: { //超级管理员的当天数据
+        actvNm: "",
+        actvCrtUserId: "",
+        actvType: "",
+        actvSmallType: "",
+        // 排序
+        MaxtimeValue:"",
+        OptionsValue: "",
+        gradesValue: "",
+        inputValue: "",
+        pageNo: 1,
+        pageSize: 10,
+        count: 0,
+        orderField: "",
+        orderAD: ""
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
       },
-      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;
+       filters2: { //超级管理员的当月数据
+        actvNm: "",
+        actvCrtUserId: "",
+        actvType: "",
+        actvSmallType: "",
+        // 排序
+        MaxtimeValue:"",
+        OptionsValue: "",
+        gradesValue: "",
+        inputValue: "",
+        pageNo: 1,
+        pageSize: 10,
+        count: 0,
+        orderField: "",
+        orderAD: ""
+      }
+    };
+  },
+  watch: {},
+  computed: {
+    ...mapGetters(["getUser","monitorTeacherList"])
+  },
+  methods: {
+    ...mapActions(["setUser"]),
+    // 获取校区管理员监控数据
+    async InfoWatch() {
+      let filter = {
+      };
+      this.$store.dispatch("InfoWatch", {
+        grade: this.filters.gradesValue,
+        subject: this.filters.OptionsValue,
+        teacherName: this.filters.inputValue,
+        maxCreateTime: this.filters.MaxtimeValue,
+        pageNo: this.filters.pageNo,
+        pageSize: this.filters.pageSize
+      });
+    },
+      // 获取校区管理员当天数据
+    async InfoWatchDay() {
+      let filter = {
+      };
+      this.$store.dispatch("InfoWatchDay", {
+        grade: this.filters1.gradesValue,
+        subject: this.filters1.OptionsValue,
+        teacherName: this.filters1.inputValue,
+        maxCreateTime: this.filters1.MaxtimeValue,
+        pageNo: this.filters1.pageNo,
+        pageSize: this.filters1.pageSize
+      });
+    },
+      // 获取校区管理员当月数据
+    async InfoWatchMoth() {
+      let filter = {
+      };
+      this.$store.dispatch("InfoWatchMoth", {
+        grade: this.filters2.gradesValue,
+        subject: this.filters2.OptionsValue,
+        teacherName: this.filters2.inputValue,
+        maxCreateTime: this.filters2.MaxtimeValue,
+        pageNo: this.filters2.pageNo,
+        pageSize: this.filters2.pageSize
+      });
+    },
+    selectTitle(k) {
+      console.log(k);
+      this.checkindex = k;
+      if (k === 0){
+        this.InfoWatch()
+      }
+       if (k === 1){
+        this.InfoWatchDay()
+      }
+       if (k === 2){
+        this.InfoWatchMoth()
+      }
+    },
+    isShow(str) {
+      let _this = this;
+      console.log(str);
+      if (str == 1) {
+        _this.hiddenModel = true;
+      } else if (str == 2) {
+        _this.isPigai = true;
+      }
+    },
+    //关闭弹框
+    allShowModel(str) {
+      let _this = this;
+      if (str == 1) {
+        _this.hiddenModel = false;
+      } else if (str == 2) {
+        _this.isPigai = false;
+      }
+    },
+    //  输入框按键方法
+    keyCodeMethod(e) {
+      if (e.keyCode === 13) return this.itemListReshow();
+    },
+    expandChange(row, expandRows) {
+      for (let item of expandRows) {
+        if (row === item) {
+          this.expandRowKeys = [row.nodId];
         }
-      },
-      handleSizeChange(val) {
-        this.filters.pageSize = val;
-        this.itemListReshow();
-      },
-      // 排序
-      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;
-      },
-      // 获取创建人列表
-      // async getUserNameList() {
-      //   let {
-      //     userNameList = []
-      //   } = await this.$dao.actv.marketActDao.getUserNameList();
-      //   this.userNameList = userNameList || [];
-      //   let { list = [] } = await this.$dao.bsnsActvTypeAllList();
-      //   this.actvTypeList = list || [];
-      // }
+      }
+    },
+    // 分页
+    pageChange(val) {
+      this.filters.pageNo = val;
+      this.itemListReshow();
+    },
+    changeDateSlot(dateSlot) {
+      if (dateSlot) {
+        this.filters.startDate = dateSlot[0];
+        this.filters.endDate = dateSlot[1];
+      } else {
+        this.filters.startDate = null;
+        this.filters.endDate = null;
+      }
     },
-    mounted() {
-      // this.getsetDictByType2();
-      // this.getUserNameList();
-      // this.itemListReshow();
+    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) {
+      this.filters.pageSize = val;
+      this.itemListReshow();
+    },
+    // 排序
+    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;
     }
-  };
+    // 获取创建人列表
+    // async getUserNameList() {
+    //   let {
+    //     userNameList = []
+    //   } = await this.$dao.actv.marketActDao.getUserNameList();
+    //   this.userNameList = userNameList || [];
+    //   let { list = [] } = await this.$dao.bsnsActvTypeAllList();
+    //   this.actvTypeList = list || [];
+    // }
+  },
+  mounted() {
+    // this.getsetDictByType2();
+    // this.getUserNameList();
+    // this.itemListReshow();
+  }
+};
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
+<<<<<<< HEAD
   .aside{
     background-color: #fff;
     margin-top: 16px;
@@ -639,4 +879,128 @@
     font-size: 18px;
     margin: 0 20px;
   }
+=======
+.aside {
+  background-color: #fff;
+  margin-top: 16px;
+  padding: 0;
+}
+.main {
+  background-color: #fff;
+  margin: 16px;
+  padding: 0 !important;
+}
+.table-aside {
+  color: #666666;
+  font-size: 18px;
+  text-align: center;
+  line-height: 60px;
+}
+el-table {
+  color: #999999;
+  font-size: 18px;
+}
+.main-items {
+  color: #393939;
+  text-align: center;
+  line-height: 80px;
+}
+.main-header-item {
+  font-size: 16px;
+}
+.main-header-link {
+  color: #52cc60;
+  font-size: 18px;
+  margin-left: 10px;
+}
+.el-select {
+  width: 100px;
+  margin: 0 5px;
+}
+.el-input__inner {
+  width: 80px;
+  border-radius: 10px;
+  height: 32px;
+}
+.input-with-select .el-input-group__prepend {
+  background-color: #fff;
+}
+.active {
+  background-color: #52cc60;
+  color: #fff;
+}
+.cell {
+  font-size: 18px !important;
+}
+.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: 854px;
+  height: auto;
+  position: relative;
+  /*right: auto;*/
+  margin: auto;
+  background: #fff;
+  border-radius: 30px;
+  text-align: center;
+}
+.model-text {
+  background: rgba(255, 255, 255, 1);
+  border-radius: 10px;
+}
+.model-text-head {
+  padding: 40px 50px;
+  display: flex;
+  color: #393939;
+  font-size: 24px;
+  justify-content: space-between;
+}
+.model-items-left {
+  width: 45%;
+  color: #393939;
+  font-size: 24px;
+}
+.model-items-left-top {
+  display: flex;
+  justify-content: space-between;
+}
+.model-items {
+  padding: 0 50px 10px 50px;
+  display: flex;
+  justify-content: space-between;
+}
+.model-items-left-top-img {
+  width: 68px;
+  height: 68px;
+  border-radius: 8px;
+  position: relative;
+  bottom: 25px;
+}
+.model-items-left-top-number {
+  color: #7e7e7e;
+  font-size: 18px;
+  margin-left: 10px;
+}
+.today-time {
+  color: #7e7e7e;
+  font-size: 18px;
+  margin: 0 20px;
+}
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
 </style>

+ 10 - 0
src/permission.js

@@ -2,9 +2,15 @@
 // import store from './store'
 // import { Message } from 'element-ui'
 // import { getToken } from '@/utils/auth' // 验权
+<<<<<<< HEAD
 //
 // const whiteList = ['/login', '/aikmt/redirect_uri'] // 不重定向白名单
 //
+=======
+
+// const whiteList = ['/login', '/aikmt/redirect_uri'] // 不重定向白名单
+
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
 // router.beforeEach((to, from, next) => {
 //   if (getToken()) { // 判断是否有token
 //     // debugger
@@ -44,4 +50,8 @@
 //     }
 //   }
 // })
+<<<<<<< HEAD
 //
+=======
+
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988

+ 50 - 0
src/router/index.js

@@ -29,6 +29,7 @@ export const constantRouterMap =
       name: "微信认证重定向页",
       component: Redirect_uri
     },
+<<<<<<< HEAD
      // {
      //   path: "/super",
      //   component: Super,
@@ -96,6 +97,47 @@ export const constantRouterMap =
        name: "错误页面",
        component: Error
      }
+=======
+    {
+      path: "/home",
+      component: Home,
+      children: [
+        {
+          path: "",
+          redirect: "SchoolManager"
+        },
+        {
+          path: "SchoolManager",
+          name: "SchoolManager",
+          component: SchoolManager,
+          meta: { title: '校区管理员', roles: ['2'] }
+        },
+        {
+          path: "TeacherApporval",
+          name: "TeacherApporval",
+          component: TeacherApporval,
+          meta: { title: '教师审核', roles: ['2'] }
+  
+        },
+         {
+          path: "TeacherPay",
+          name: "TeacherPay",
+          component: TeacherPay,
+          meta: { title: '教师薪酬管理', roles: ['2'] }
+        },
+        {
+          path: "*",
+          name: "找不到页面",
+          component: Error404
+        }
+      ]
+    },
+    {
+      path: "*",
+      name: "错误页面",
+      component: Error
+    }
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
   ]
 export default new Router({
   routes: constantRouterMap
@@ -123,13 +165,21 @@ export const asyncRouterMap = [
   //       name: "TeacherApporval",
   //       component: TeacherApporval,
   //       meta: { title: '教师审核', roles: ['2'] }
+<<<<<<< HEAD
   //
+=======
+
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
   //     },
   //      {
   //       path: "TeacherPay",
   //       name: "TeacherPay",
   //       component: TeacherPay,
+<<<<<<< HEAD
   //       meta: { title: '教师薪酬管理', roles: ['1'] }
+=======
+  //       meta: { title: '教师薪酬管理', roles: ['2'] }
+>>>>>>> 06e7345471578d2840ef1d5d498827ac07097988
   //     },
   //     {
   //       path: "*",

+ 2 - 1
src/store/getters.js

@@ -5,6 +5,7 @@ const getters = {
   avatar: state => state.user.avatar,
   routers: state => state.permission.routers,
   addRouters: state => state.permission.addRouters,
-  roles: state => state.user.roles
+  roles: state => state.user.roles,
+  monitorTeacherList: state => state.user.monitorTeacherList
 }
 export default getters

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

@@ -1,4 +1,5 @@
-import { LOGIN,GET_TOKEN,GetInfo } from '@/api'
+import { LOGIN,GET_TOKEN,GetInfo,InfoWatch,InfoWatchDay,
+  InfoWatchMoth } from '@/api'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import axios from '@/axios'
 const user = {
@@ -6,7 +7,10 @@ const user = {
     token: getToken(),
     name: '',
     avatar: '',
-    roles: []
+    roles: [],
+    monitorTeacherList:[],
+    dayTeacherList:[],
+    mothTeacherList:[],
   },
 
   mutations: {
@@ -21,6 +25,15 @@ const user = {
     },
     SET_ROLES: (state, roles) => {
       state.roles = roles
+    },
+    SET_TEACHER: (state, monitorTeacherList) => {
+      state.monitorTeacherList = monitorTeacherList
+    },
+    SET_TEACHER_DAY: (state, monitorTeacherList) => {
+      state.dayTeacherList = dayTeacherList
+    },
+    SET_TEACHER_MOTH: (state, monitorTeacherList) => {
+      state.mothTeacherList = mothTeacherList
     }
   },
 
@@ -67,7 +80,45 @@ const user = {
         })
       })
     },
-
+    // 校区管理员数据监控
+    InfoWatch({ commit, state }, data) {
+      return new Promise((resolve, reject) => {
+        axios.post(InfoWatch, data).then(response => {
+          const data = response.data
+          commit('SET_TEACHER', data);
+          debugger
+          resolve(response)
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+     // 校区管理员当天数据
+     InfoWatchDay({ commit, state }, data) {
+      return new Promise((resolve, reject) => {
+        axios.post(InfoWatchDay, data).then(response => {
+          const data = response.data
+          commit('SET_TEACHER_DAY', data);
+          debugger
+          resolve(response)
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+     // 校区管理员当月数据
+     InfoWatchMoth({ commit, state }, data) {
+      return new Promise((resolve, reject) => {
+        axios.post(InfoWatchMoth, data).then(response => {
+          const data = response.data
+          commit('SET_TEACHER_MOTH', data);
+          debugger
+          resolve(response)
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
     // 登出
     // LogOut({ commit, state }) {
     //   return new Promise((resolve, reject) => {