Jelajahi Sumber

数据中心增加授权

hanfucheng 1 tahun lalu
induk
melakukan
fcce6a5738

+ 1 - 1
data-ui/src/permission.js

@@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request'
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/integrated/index','/integrated/bigdata','/integrated/forest', '/integrated/fire-forest', '/integrated/monitor']
+const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/integrated/index','/integrated/bigdata','/integrated/forest', '/integrated/fire-forest', '/integrated/monitor', '/40101']
 
 router.beforeEach((to, from, next) => {
   NProgress.start()

+ 5 - 0
data-ui/src/router/index.js

@@ -62,6 +62,11 @@ export const constantRoutes = [
     hidden: true
   },
   {
+    path: '/40101',
+    component: () => import('@/views/error/40101'),
+    hidden: true
+  },
+  {
     path: '',
     component: Layout,
     redirect: 'index',

+ 1 - 0
data-ui/src/utils/errorCode.js

@@ -2,5 +2,6 @@ export default {
   '401': '认证失败,无法访问系统资源',
   '403': '当前操作没有权限',
   '404': '访问资源不存在',
+  '40101': '授权已过期',
   'default': '系统未知错误,请反馈给管理员'
 }

+ 9 - 0
data-ui/src/utils/request.js

@@ -93,6 +93,15 @@ service.interceptors.response.use(res => {
       });
     }
       return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+    } else if (code == 40101) {
+      store.dispatch('LogOut').then(() => {
+        location.href = '/40101';
+      })
+    } else if (code == 1307) {
+      Message({
+        message: msg,
+        type: 'error'
+      })
     } else if (code === 500) {
       Message({
         message: msg,

+ 101 - 0
data-ui/src/views/error/40101.vue

@@ -0,0 +1,101 @@
+<template>
+  <div class="errPage-container">
+    <el-button icon="arrow-left" class="pan-back-btn" @click="back">
+      返回
+    </el-button>
+    <el-row>
+      <el-col :span="14">
+        <h1 class="text-jumbo text-ginormous">
+          项目授权已过期!
+        </h1>
+        <h2>对不起,此项目授权已过期,请联系管理员!</h2>
+<!--        <ul class="list-unstyled">-->
+<!--          <li class="link-type">-->
+<!--            <router-link to="/">-->
+<!--              回首页-->
+<!--            </router-link>-->
+<!--          </li>-->
+<!--        </ul>-->
+      </el-col>
+      <el-col :span="10">
+        <img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream.">
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import errGif from '@/assets/401_images/401.gif'
+import {MessageBox} from "element-ui";
+import store from "@/store";
+import {isRelogin} from "@/utils/request";
+
+export default {
+  name: 'Page40101',
+  data() {
+    return {
+      errGif: errGif + '?' + +new Date()
+    }
+  },
+  methods: {
+    back() {
+      if (!isRelogin.show) {
+        isRelogin.show = true;
+        MessageBox.confirm('授权已过期,您可以继续留在该页面,或者联系管理员重新授权!', '系统提示', {
+          confirmButtonText: '重新登录',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          isRelogin.show = false;
+          store.dispatch('LogOut').then(() => {
+            location.href = '/index';
+          })
+        }).catch(() => {
+          isRelogin.show = false;
+        });
+      }
+      return Promise.reject('请重新登录。')
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .errPage-container {
+    width: 800px;
+    max-width: 100%;
+    margin: 100px auto;
+    .pan-back-btn {
+      background: #008489;
+      color: #fff;
+      border: none!important;
+    }
+    .pan-gif {
+      margin: 0 auto;
+      display: block;
+    }
+    .pan-img {
+      display: block;
+      margin: 0 auto;
+      width: 100%;
+    }
+    .text-jumbo {
+      font-size: 60px;
+      font-weight: 700;
+      color: #484848;
+    }
+    .list-unstyled {
+      font-size: 14px;
+      li {
+        padding-bottom: 5px;
+      }
+      a {
+        color: #008489;
+        text-decoration: none;
+        &:hover {
+          text-decoration: underline;
+        }
+      }
+    }
+  }
+</style>