Selaa lähdekoodia

无控制台时默认页面不请求数据

zhouna 6 vuotta sitten
vanhempi
commit
a6b4df9902
2 muutettua tiedostoa jossa 46 lisäystä ja 27 poistoa
  1. 25 18
      src/components/admin/Console.vue
  2. 21 9
      src/components/common/HomePage.vue

+ 25 - 18
src/components/admin/Console.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <crumbs title="控制台"></crumbs>
-        <div class="console">
+        <div class="console" v-if="hasConcole">
             <h2>平台数据</h2>
             <el-row :gutter="20">
                 <el-col :span="6">
@@ -36,31 +36,38 @@
 
   export default {
     name: 'admin-console',
+    props:['hasConcole'],
     data: function () {
       return {
         orderCount: '...',
         authCount: '...'
       }
     },
-    created() {
-      api.getOrderNum().then((res) => {
-        const result = res.data;
-        if (result.code == '0') {
-          this.orderCount = result.data.count;
+    beforeRouteEnter(to,form,next){
+      next(vm=>{
+        if(!vm.hasConcole){
+          vm.$emit('redirect-page');
+          return;
         }
-      }).catch((error) => {
-        console.log(error)
+        //获取控制台默认显示数字
+        api.getOrderNum().then((res) => {
+          const result = res.data;
+          if (result.code == '0') {
+            vm.orderCount = result.data.count;
+          }
+        }).catch((error) => {
+          console.log(error)
+        });
+        api.getAuthNum().then((res) => {
+          const result = res.data;
+          if (result.code == '0') {
+            vm.authCount = result.data.count;
+          }
+        }).catch((error) => {
+          console.log(error)
+        });
       });
-      api.getAuthNum().then((res) => {
-        const result = res.data;
-        if (result.code == '0') {
-          this.authCount = result.data.count;
-        }
-      }).catch((error) => {
-        console.log(error)
-      });
-
-    }
+    },
   }
 </script>
 

+ 21 - 9
src/components/common/HomePage.vue

@@ -23,7 +23,7 @@
                 </div>
             </el-header>
             <el-main>
-              <router-view v-on:status-change="changeStatus"></router-view>
+              <router-view v-if="ok" v-on:status-change="changeStatus" v-on:redirect-page="redirectPage" :hasConcole="hasConcole"></router-view>
             </el-main>
         </el-container>
     </el-container>
@@ -41,7 +41,7 @@
     components: {
       'lt-badge': LtBadge,
       'lt-menu': LtMenu,
-			'console': Console
+      'console': Console
     },
     data: function () {
       return {
@@ -49,7 +49,9 @@
         organization: null,
         userLoginDTO: null,
         authStatus: null,
-        authStatusName:''
+        authStatusName:'',
+        ok:false,           //是否已获取到菜单
+        hasConcole:true         //是否有控制台权限,登录后跳转用
       }
     },
     computed: {
@@ -57,22 +59,32 @@
         return this.userLoginDTO && this.userLoginDTO.type == '0' ? 'user' : 'admin';
       }
     },
-    created() {
+    beforeRouteEnter (to, from, next) {
       //获取菜单
       api.getAccessdMenu().then((res) => {
         if (res.data.code == '0') {
           const data = res.data.data;
-          this.menuWrappers = data.menuWrappers;
-          this.organization = data.organization;
-          this.userLoginDTO = data.userLoginDTO;
-          data.userLoginDTO && data.userLoginDTO.type == '0' && this.getAuthStatus();
+          next(vm=>{
+            vm.ok = true;
+            const hasConcole=data.menuWrappers.findIndex((it)=>{
+              return it.code == 'LT-KZT'
+            });
+            vm.hasConcole = hasConcole!=-1;
+            vm.menuWrappers = data.menuWrappers;
+            vm.organization = data.organization;
+            vm.userLoginDTO = data.userLoginDTO;
+            data.userLoginDTO && data.userLoginDTO.type == '0' && vm.getAuthStatus();
+          })
         }
       }).catch((error) => {
         console.log(error);
       });
-
     },
     methods: {
+      redirectPage(){
+        const url = this.getRole=='user'?'/user':'/admin';
+        this.$router.push({path:url});
+      },
       changeStatus(text){       //账号信息中提交认证后修改状态
         this.authStatus = 2;
         this.authStatusName = text;