单点登录提交
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import axios from '@/common/axiosV2'
|
||||
|
||||
// 流程发起
|
||||
export function checkPage(params) {
|
||||
return axios({
|
||||
url: '/api/checkPage',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
<template>
|
||||
<div class="checkPage">
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapMutations, mapActions } from 'vuex'
|
||||
import { checkPage } from '@/api/login'
|
||||
import { Loading } from 'element-ui';
|
||||
export default {
|
||||
name: 'CheckPage',
|
||||
data() {
|
||||
return {
|
||||
loading: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const data = {
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
}
|
||||
this.loading = Loading.service(data)
|
||||
},
|
||||
mounted() {
|
||||
let Base64 = require('js-base64').Base64
|
||||
const str = Base64.encode(this.$route.query.username)
|
||||
const params = {
|
||||
username: str
|
||||
}
|
||||
checkPage(params).then(res => {
|
||||
if (res.ok) {
|
||||
this.loginNew(res)
|
||||
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
|
||||
this.loading.close();
|
||||
});
|
||||
} else if (res.respCode === 'r0012') {
|
||||
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
|
||||
this.loading.close();
|
||||
});
|
||||
this.$router.go(-1)
|
||||
this.$message.error(res.message)
|
||||
} else {
|
||||
this.$router.go(-1)
|
||||
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
|
||||
this.loading.close();
|
||||
});
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
|
||||
this.loading.close();
|
||||
});
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
getMenu () {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$http.get('sarUser/user/menu', {
|
||||
userId: this.$store.getters.userInfo.userId,
|
||||
}, {
|
||||
_this: this,
|
||||
}, res => {
|
||||
if (res.ok) {
|
||||
resolve(res.data)
|
||||
}
|
||||
}, e => {
|
||||
reject(e)
|
||||
})
|
||||
})
|
||||
},
|
||||
loginNew (res) {
|
||||
console.log(res)
|
||||
if (res.data.orgId === null || res.data.orgId === '') {
|
||||
this.$message.warning('未分配组织机构,请联系管理员分配后重新登录')
|
||||
return
|
||||
}
|
||||
let Base64 = require('js-base64').Base64
|
||||
let userInfoStr = Base64.decode(res.data)
|
||||
let userInfo2 = decodeURIComponent(userInfoStr)
|
||||
let userInfoObj = JSON.parse(userInfo2)
|
||||
userInfoObj.userId = userInfoObj.usid
|
||||
console.log(1)
|
||||
window.sessionStorage.setItem('userInfoObj', userInfoObj); // del
|
||||
this.setToken(userInfoObj.token) // vuex存储token
|
||||
let userInfo = {}
|
||||
for (let key in userInfoObj) {
|
||||
if (key !== 'uname') {
|
||||
userInfo[key] = userInfoObj[key]
|
||||
} else {
|
||||
userInfo.uName = userInfoObj[key]
|
||||
}
|
||||
}
|
||||
this.setUserInfo(JSON.stringify((userInfo)))
|
||||
// this.resetTime()
|
||||
// 获取用户菜单
|
||||
console.log(2)
|
||||
window.sessionStorage.setItem('userInfo', userInfo); // del
|
||||
console.log('寄')
|
||||
this.getMenu().then((menuList) => {
|
||||
let hasHomeMenu = false
|
||||
menuList.map((menuItem) => {
|
||||
if (menuItem.id === 'asdfadf') {
|
||||
hasHomeMenu = true
|
||||
}
|
||||
})
|
||||
console.log(3)
|
||||
window.sessionStorage.setItem('hasHomeMenu', hasHomeMenu); // del
|
||||
window.sessionStorage.setItem('menuList', menuList); // del
|
||||
if (hasHomeMenu) {
|
||||
this.setMenu(JSON.stringify(menuList)).then(res => {
|
||||
if (this.showIETips) {//判断是否IE浏览器
|
||||
alert('为了最佳显示效果 请使用google chrome')
|
||||
}
|
||||
console.log(4)
|
||||
this.$router.push('/home2')
|
||||
}, e => {
|
||||
this.$message.warning('未获取到菜单')
|
||||
})
|
||||
} else {
|
||||
alert('无系统权限')
|
||||
// window.location.href = 'http://testsso1.foton.com.cn/oauth2.0/authorize?client_id=app_slrs&redirect_uri=http://127.0.0.1:9090&response_type=code';
|
||||
}
|
||||
})
|
||||
},
|
||||
...mapMutations(['setToken', 'setUserInfo', 'resetTime', 'rememberPwd', 'setJESSCookie']),
|
||||
...mapActions(['setMenu'])
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.checkPage {
|
||||
|
||||
}
|
||||
</style>
|
||||
+45
-45
@@ -148,53 +148,53 @@
|
||||
})
|
||||
},
|
||||
loginNew (res) {
|
||||
if (res.data.orgId === null || res.data.orgId === '') {
|
||||
this.$message.warning('未分配组织机构,请联系管理员分配后重新登录')
|
||||
return
|
||||
if (res.data.orgId === null || res.data.orgId === '') {
|
||||
this.$message.warning('未分配组织机构,请联系管理员分配后重新登录')
|
||||
return
|
||||
}
|
||||
let Base64 = require('js-base64').Base64
|
||||
let userInfoStr = Base64.decode(res.data)
|
||||
let userInfo2 = decodeURIComponent(userInfoStr)
|
||||
let userInfoObj = JSON.parse(userInfo2)
|
||||
userInfoObj.userId = userInfoObj.usid
|
||||
window.sessionStorage.setItem('userInfoObj', userInfoObj); // del
|
||||
this.setToken(userInfoObj.token) // vuex存储token
|
||||
let userInfo = {}
|
||||
for (let key in userInfoObj) {
|
||||
if (key !== 'uname') {
|
||||
userInfo[key] = userInfoObj[key]
|
||||
} else {
|
||||
userInfo.uName = userInfoObj[key]
|
||||
}
|
||||
}
|
||||
this.setUserInfo(JSON.stringify((userInfo)))
|
||||
// this.resetTime()
|
||||
// 获取用户菜单
|
||||
window.sessionStorage.setItem('userInfo', userInfo); // del
|
||||
this.getMenu().then((menuList) => {
|
||||
let hasHomeMenu = false
|
||||
menuList.map((menuItem) => {
|
||||
if (menuItem.id === 'asdfadf') {
|
||||
hasHomeMenu = true
|
||||
}
|
||||
let Base64 = require('js-base64').Base64
|
||||
let userInfoStr = Base64.decode(res.data)
|
||||
let userInfo2 = decodeURIComponent(userInfoStr)
|
||||
let userInfoObj = JSON.parse(userInfo2)
|
||||
userInfoObj.userId = userInfoObj.usid
|
||||
window.sessionStorage.setItem('userInfoObj', userInfoObj); // del
|
||||
this.setToken(userInfoObj.token) // vuex存储token
|
||||
let userInfo = {}
|
||||
for (let key in userInfoObj) {
|
||||
if (key !== 'uname') {
|
||||
userInfo[key] = userInfoObj[key]
|
||||
} else {
|
||||
userInfo.uName = userInfoObj[key]
|
||||
}
|
||||
}
|
||||
this.setUserInfo(JSON.stringify((userInfo)))
|
||||
// this.resetTime()
|
||||
// 获取用户菜单
|
||||
window.sessionStorage.setItem('userInfo', userInfo); // del
|
||||
this.getMenu().then((menuList) => {
|
||||
let hasHomeMenu = false
|
||||
menuList.map((menuItem) => {
|
||||
if (menuItem.id === 'asdfadf') {
|
||||
hasHomeMenu = true
|
||||
}
|
||||
})
|
||||
window.sessionStorage.setItem('hasHomeMenu', hasHomeMenu); // del
|
||||
window.sessionStorage.setItem('menuList', menuList); // del
|
||||
if (hasHomeMenu) {
|
||||
this.setMenu(JSON.stringify(menuList)).then(res => {
|
||||
if (this.showIETips) {//判断是否IE浏览器
|
||||
alert('为了最佳显示效果 请使用google chrome')
|
||||
}
|
||||
this.$router.push('/home2')
|
||||
}, e => {
|
||||
this.$message.warning('未获取到菜单')
|
||||
})
|
||||
} else {
|
||||
alert('无系统权限')
|
||||
// window.location.href = 'http://testsso1.foton.com.cn/oauth2.0/authorize?client_id=app_slrs&redirect_uri=http://127.0.0.1:9090&response_type=code';
|
||||
}
|
||||
})
|
||||
window.sessionStorage.setItem('hasHomeMenu', hasHomeMenu); // del
|
||||
window.sessionStorage.setItem('menuList', menuList); // del
|
||||
if (hasHomeMenu) {
|
||||
this.setMenu(JSON.stringify(menuList)).then(res => {
|
||||
if (this.showIETips) {//判断是否IE浏览器
|
||||
alert('为了最佳显示效果 请使用google chrome')
|
||||
}
|
||||
this.$router.push('/home2')
|
||||
}, e => {
|
||||
this.$message.warning('未获取到菜单')
|
||||
})
|
||||
},
|
||||
} else {
|
||||
alert('无系统权限')
|
||||
// window.location.href = 'http://testsso1.foton.com.cn/oauth2.0/authorize?client_id=app_slrs&redirect_uri=http://127.0.0.1:9090&response_type=code';
|
||||
}
|
||||
})
|
||||
},
|
||||
...mapMutations(['setToken', 'setUserInfo', 'resetTime', 'rememberPwd', 'setJESSCookie']),
|
||||
...mapActions(['setMenu'])
|
||||
},
|
||||
|
||||
@@ -36,6 +36,17 @@ const routes = [
|
||||
path: '*',
|
||||
redirect: '/loginVerify'
|
||||
},
|
||||
// 单点登录跳转页面
|
||||
{
|
||||
path: '/checkPage',
|
||||
name: 'CheckPage',
|
||||
component: resolve => require(['@/pages/login/checkPage.vue'], resolve),
|
||||
meta: {
|
||||
requireAuth: true,
|
||||
isBoolean: true,
|
||||
title: '跳转'
|
||||
}
|
||||
},
|
||||
// 登录页
|
||||
{
|
||||
path: '/login',
|
||||
|
||||
Reference in New Issue
Block a user