Files
foton-laws-system-front/src/pages/login/checkPage.vue
T
2022-04-14 10:40:17 +08:00

138 lines
4.0 KiB
Vue

<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: this.$route.query.userName
}
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.push('login')
this.$message.error(res.message)
} else {
this.$router.push('login')
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>