Selaa lähdekoodia

完成单点登陆,工程信息化跳入,OA跳入的相关问题

YaolongHan 4 vuotta sitten
vanhempi
commit
80b3ba243d
3 muutettua tiedostoa jossa 80 lisäystä ja 62 poistoa
  1. 78 50
      src/router/index.js
  2. 2 2
      src/store/index.js
  3. 0 10
      src/views/overview/index.vue

+ 78 - 50
src/router/index.js

@@ -88,7 +88,12 @@ const router = new VueRouter({
 const ignore = ["/404"]
 
 router.beforeEach(async (to, from, next) => {
-    console.log('to', from.path, to)
+    // 如果路径上有plazaId就保存
+    let plazaId = to.query.plazaId ?to.query.plazaId:''
+    if (plazaId) {
+        localStorage.setItem('PLAZAID', plazaId)
+        store.commit('STOREPLAZAID', plazaId)
+    }
     // 取出刷新时的 ssoToken, 路由拦截时app.vue 生命周期还没有执行,store中还没有数据,
     let beforeunload = localStorage.getItem("beforeunload"),
         __token = null
@@ -108,71 +113,55 @@ router.beforeEach(async (to, from, next) => {
                 token = sessionStorage.getItem("SSOTOKEN")
                 store.commit("SETSSOTOKEN", sessionStorage.getItem("SSOTOKEN")) //存vuex
             } else {
-                let lastRoute = {
-                    path: to.path,
-                    params: to.params,
-                    query: to.query,
-                }
-                store.commit("SETLASTROUTER", lastRoute)
-                let ssoServer = "http://oauth.wanda-dev.cn"
-                if (process.env.NODE_ENV == "wanda_build") {
-                    ssoServer = "http://oauth.wanda.cn"
-                }
-                let systemcode = "CAD156",
-                    signal = new Date().getTime(),
-                    version = "1.0.0"
-                window.location.href = `${ssoServer}/login?systemcode=${systemcode}&signal=${signal}&version=${version}`
+                redirectGetToken(to,from)
             }
         }
+        // 如果有token
         if (token) {
-            if (to.path == "/") {
-                next("/group")
-            }
-            if (to.path == "/group" || to.path == "/home/homepage") {
-                if (store.state.accessLevel == -1) {
-                    await store.dispatch("getUserInfo", router)
-                    console.log('getUserInfo', 4)
-                    await store.dispatch("getBrand")
-                    // await store.dispatch('getFact')
-                }
-            }
-            console.log("token", token)
-            await store.dispatch("getFloors")
-            await store.dispatch("getBrand")
+            // 有token 将数据 isPreview赋给 vuex方便取值
+            store.commit('SETISPREVIEW', sessionStorage.getItem("SETISPREVIEW"))
             // 如果在跳转获取token之前保存了指定的路径,则后去token后需要跳转到相关页面
             if (sessionStorage.getItem("TOURL")) {
                 // 如果去的地址等于缓存的地址
                 if (sessionStorage.getItem("TOURL") == to.path) {
                     sessionStorage.setItem("TOURL", '')
+                    if (to.path == "/") {
+                        next("/group")
+                    }
+                    if (to.path == "/group" || to.path == "/home/homepage") {
+                        if (store.state.accessLevel == -1) {
+                            await store.dispatch("getUserInfo", router)
+                            console.log('getUserInfo', 4)
+                            await store.dispatch("getBrand")
+                            // await store.dispatch('getFact')
+                        }
+                    }
+                    await store.dispatch("getFloors")
+                    await store.dispatch("getBrand")
                     next()
                 } else {
                     next(sessionStorage.getItem("TOURL"))
                 }
             } else {
+                if (to.path == "/") {
+                    next("/group")
+                }
+                if (to.path == "/group" || to.path == "/home/homepage") {
+                    if (store.state.accessLevel == -1) {
+                        await store.dispatch("getUserInfo", router)
+                        console.log('getUserInfo', 4)
+                        await store.dispatch("getBrand")
+                        // await store.dispatch('getFact')
+                    }
+                }
+                await store.dispatch("getFloors")
+                await store.dispatch("getBrand")
                 next()
             }
+
+
         } else {
-            let lastRoute = {
-                path: to.path,
-                params: to.params,
-                query: to.query,
-            }
-            store.commit("SETLASTROUTER", lastRoute)
-            let ssoServer = "http://oauth.wanda-dev.cn"
-            if (process.env.NODE_ENV == "wanda_build") {
-                ssoServer = "http://oauth.wanda.cn"
-            }
-            let systemcode = "CAD156",
-                signal = new Date().getTime(),
-                version = "1.0.0";
-            // 获取token前需要保存跳转前路径
-            if (!ignore.includes(to.path)) {
-                sessionStorage.setItem("TOURL", to.path)
-            } else {
-                // 如果重定向前为404则跳入/
-                sessionStorage.setItem("TOURL", '/')
-            }
-            window.location.href = `${ssoServer}/login?systemcode=${systemcode}&signal=${signal}&version=${version}`
+            redirectGetToken(to,from)
         }
     } else {
         next()
@@ -197,4 +186,43 @@ router.afterEach((to) => {
             console.log("error", res)
         })
 })
+
+function redirectGetToken (to) {
+    let lastRoute = {
+        path: to.path,
+        params: to.params,
+        query: to.query,
+    }
+    store.commit("SETLASTROUTER", lastRoute)
+    let ssoServer = "http://oauth.wanda-dev.cn"
+    if (process.env.NODE_ENV == "wanda_build") {
+        ssoServer = "http://oauth.wanda.cn"
+    }
+    let systemcode = "CAD156",
+        signal = new Date().getTime(),
+        version = "1.0.0";
+    // 获取token前需要保存跳转前路径
+    if (!ignore.includes(to.path)) {
+        console.log('to.query.isPreview',to.query.isPreview);
+        console.log('to.query.isPreview',to.query.plazaId)
+    let previewUrl = to.query.isPreview ? to.query.isPreview : '';
+    let plazaId = to.query.plazaId ?to.query.plazaId:''
+    if (previewUrl) {
+        sessionStorage.setItem("SETISPREVIEW", previewUrl)
+        store.commit('SETISPREVIEW', previewUrl)
+    }else{
+        sessionStorage.setItem("SETISPREVIEW", 'false')
+        store.commit('SETISPREVIEW', 'false')
+    }
+    if (plazaId) {
+        localStorage.setItem('PLAZAID', plazaId)
+        store.commit('STOREPLAZAID', plazaId)
+    }
+        sessionStorage.setItem("TOURL", to.path)
+    } else {
+        // 如果重定向前为404则跳入/
+        sessionStorage.setItem("TOURL", '/')
+    }
+    window.location.href = `${ssoServer}/login?systemcode=${systemcode}&signal=${signal}&version=${version}`
+}
 export default router

+ 2 - 2
src/store/index.js

@@ -14,9 +14,9 @@ import router from '../router'
 Vue.use(Vuex)
 export default new Vuex.Store({
     state: {
-        ssoToken: 'admin:chuyushu',
+        // ssoToken: 'admin:chuyushu',
         // ssoToken: '',
-        // ssoToken: null,
+        ssoToken: null,
         plazaName: '',
         isPreview: false,
         lastRoute: '',

+ 0 - 10
src/views/overview/index.vue

@@ -401,16 +401,6 @@ export default {
             //     previewUrl = Boolean(previewUrl.split('=')[1])
             //     this.$store.commit('SETISPREVIEW', previewUrl)
             // }
-            let previewUrl = this.$route.query.isPreview,
-                plazaId = this.$route.query.plazaId
-            if (previewUrl != '') {
-                console.log(previewUrl)
-                this.$store.commit('SETISPREVIEW', previewUrl)
-            }
-            if (plazaId) {
-                localStorage.setItem('PLAZAID', plazaId)
-                this.$store.commit('STOREPLAZAID', plazaId)
-            }
             // let previewUrl = location.href.split('=')[1] ? location.href.split('=')[1].split('&')[0] : false,
             // plazaId = location.href.split('=')[2] ? location.href.split('=')[2] : '1000423'
         }