Jelajahi Sumber

create admin views

Starink 6 tahun lalu
induk
melakukan
646fa016e7

+ 0 - 9
assets/css/person.scss

@@ -69,15 +69,6 @@
     }
   }
 
-  &__selections{
-    width: 100%;
-    text-align: center;
-  }
-
-  &__selection{
-    width: 200px;
-  }
-
   &__tab{
     margin: 20px;
 

+ 5 - 5
components/Navi.vue

@@ -11,7 +11,10 @@
         <el-button slot="append" icon="el-icon-search" disabled></el-button>
       </el-input>
       <ul class="nav__list nav__list-right" v-if="isLogin">
-        <li class="nav__item"><router-link to="/person/info">个人中心</router-link></li>
+        <li class="nav__item">
+          <router-link to="/person/info" v-if="!isAdmin">个人中心</router-link>
+          <router-link to="/admin/checkApplications" v-else>平台管理</router-link>
+        </li>
         <li class="nav__item">
           <el-popover
             placement="bottom-start"
@@ -24,10 +27,7 @@
             </div>
             <el-menu
               class="el-menu-vertical-demo drop-list">
-              <el-menu-item index="1" v-if="isAdmin">
-                平台管理
-              </el-menu-item>
-              <el-menu-item index="2" v-if="isAdmin">
+              <el-menu-item index="2" v-if="isTeacher">
                 教师界面
               </el-menu-item>
               <el-menu-item index="3" @click="logout">

+ 56 - 0
layouts/admin.vue

@@ -0,0 +1,56 @@
+<template>
+  <div>
+    <navi></navi>
+    <div class="person-container">
+      <el-menu
+        :default-active="activeIndex"
+        class="el-menu-vertical-demo side-bar"
+        @select="handleSelect">
+        <el-menu-item index="1">
+          <i class="el-icon-s-check"></i>
+          <span slot="title">认证审核</span>
+        </el-menu-item>
+        <el-menu-item index="2">
+          <i class="el-icon-data-analysis"></i>
+          <span slot="title">平台统计</span>
+        </el-menu-item>
+        <el-menu-item index="3" disabled>
+          <i class="el-icon-menu"></i>
+          <span slot="title">教务管理</span>
+        </el-menu-item>
+      </el-menu>
+      <el-card class="main-card">
+        <nuxt />
+      </el-card>
+    </div>
+    <foot></foot>
+  </div>
+</template>
+<script>
+  import Navi from "~/components/Navi";
+  import Foot from "~/components/Foot";
+
+  export default{
+    name: 'admin',
+    components: {Navi, Foot},
+    data(){
+      return{
+        activeIndex: "1"
+      }
+    },
+    methods: {
+      handleSelect(index){
+        const routes=['/admin/checkApplications', '/admin/statistics', '/admin/educationAdmin'];
+        this.$router.push(routes[index-1]);
+      }
+    },
+    mounted(){
+      const routes=['/admin/checkApplications', '/admin/statistics', '/admin/educationAdmin'];
+      this.activeIndex = (1 + routes.indexOf(this.$router.app._route.path)) + "";
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  @import '~/assets/css/person.scss';
+</style>

+ 4 - 0
middleware/auth.js

@@ -50,4 +50,8 @@ export default function (context) {
 
   }
 
+  else if(store.state.user.role !== 'ADMIN' && mainPath.indexOf('/admin') >= 0){
+    redirect('/unauthorized');
+  }
+
 }

+ 16 - 0
pages/admin/checkApplications.vue

@@ -0,0 +1,16 @@
+<template>
+  <div>
+
+  </div>
+</template>
+
+<script>
+  export default {
+    name: "checkApplications",
+    layout: 'admin'
+  };
+</script>
+
+<style scoped>
+
+</style>

+ 14 - 0
pages/admin/statistics.vue

@@ -0,0 +1,14 @@
+<template>
+  <div></div>
+</template>
+
+<script>
+  export default {
+    name: "statistics",
+    layout: 'admin'
+  };
+</script>
+
+<style scoped>
+
+</style>