From 9dec22acde84e111a4f8f2d54d738586e50ff7ec Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 23 八月 2022 03:19:31 +0800
Subject: [PATCH] 添加单点登录跳转

---
 src/router/index.js         |    7 +++
 src/views/webroot/index.vue |   84 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index cb04519..f0fba58 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -124,10 +124,17 @@
     path: "/dataView",
     name: "dataView",
     component: () => import(/* webpackChunkName: "about" */ "../views/dataView")
+  },  
+  {
+    // 鍗曠偣鐧诲綍
+    path: "/webroot",
+    name: "webroot",
+    component: () => import(/* webpackChunkName: "about" */ "../views/webroot")
   }
 ]
 
 const router = new VueRouter({
+  mode:'history',
   routes
 })
 
diff --git a/src/views/webroot/index.vue b/src/views/webroot/index.vue
new file mode 100644
index 0000000..e9ae404
--- /dev/null
+++ b/src/views/webroot/index.vue
@@ -0,0 +1,84 @@
+<template>
+  <div>
+    <span>{{msg}}</span>
+  </div>
+</template>
+
+<script>
+import { tologin, getMenuPermission } from "@/api/login"
+
+export default {
+  name: "webroot",
+  metaInfo: {
+    title: "姹囦赴鍗曠偣鐧诲綍"
+  },
+  data() {
+    return {
+      msg:""
+    }
+  },
+  mounted() {
+    this.loginRobot()
+  },
+  methods: {
+    loginRobot() {
+      // 瑙f瀽璺敱鍙傛暟锛屽苟缂撳瓨
+      let userInfoEncode = this.getQueryVariable("str")
+      console.log("鍗曠偣鐧诲綍", userInfoEncode)
+      if (userInfoEncode && userInfoEncode.length) {
+        let userInfo = decodeURIComponent(userInfoEncode)
+        console.log(userInfo)
+        sessionStorage.setItem("autoLogin", userInfo)
+        this.systemLogin({soStr: userInfo})
+        return
+      }
+
+      // 鐧婚檰瓒呮椂鍚庣殑閲嶆柊鐧婚檰
+      let sessionInfo = sessionStorage.getItem("autoLogin")
+      if (sessionInfo) {
+        this.systemLogin({soStr: sessionInfo})
+        return
+      }
+
+      this.$router.push("/login")
+    },  
+    systemLogin(param) {
+      console.log("鍙戣捣鐧诲綍璇锋眰")
+      tologin(param).then(rsp => {
+          const data = rsp.data
+
+          const loginedInfo = {
+            access_token: data.token_type + " " + data.access_token,
+            refresh_token: data.refresh_token
+          }
+          sessionStorage.setItem("expires_in", data.expires_in)
+          sessionStorage.setItem("loginedInfo", JSON.stringify(loginedInfo))
+
+          getMenuPermission().then((rep) => {
+            data.userInfo.permissions = rep.data.permissions
+            sessionStorage.setItem("userInfo", JSON.stringify(data.userInfo))
+            this.$router.push("/manageCenter")
+          })
+        })
+        .catch((err) => {
+          this.$router.push("/login")
+        })
+    },
+    getQueryVariable(variable) {
+      var query = window.location.search.substring(1)
+      var vars = query.split("&")
+      for (var i = 0; i < vars.length; i++) {
+        var pair = vars[i].split("=")
+        if (pair[0] == variable) {
+          return pair[1]
+        }
+      }
+      return false
+    }    
+  }
+}
+</script>
+
+<style>
+
+</style>

--
Gitblit v1.8.0