初始提交
This commit is contained in:
114
pages/login/otherLogin.vue
Normal file
114
pages/login/otherLogin.vue
Normal file
@@ -0,0 +1,114 @@
|
||||
@@ -0,0 +1,70 @@
|
||||
<template>
|
||||
<view>
|
||||
<web-view :src="url"></web-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getTicketStatus,
|
||||
socialsLogin
|
||||
} from '@/api/common.js'
|
||||
import {
|
||||
useUserStore
|
||||
} from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
url: '',
|
||||
ticket: '',
|
||||
ssoTimer: null,
|
||||
tenantUserInfo: [],
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.url = uni.getStorageSync('ssoUrl')
|
||||
this.ticket = option.ssoTicket
|
||||
this.ssoTimer = setInterval(() => {
|
||||
this.getTicketStatus()
|
||||
}, 1000)
|
||||
},
|
||||
onUnload() {
|
||||
this.clearTimer()
|
||||
},
|
||||
methods: {
|
||||
getTicketStatus() {
|
||||
const userStore = useUserStore()
|
||||
if (!this.ticket) return
|
||||
getTicketStatus(this.ticket).then(res => {
|
||||
if (res.data.status != 2) {
|
||||
this.clearTimer()
|
||||
// 登录成功
|
||||
if (res.data.status == 1) {
|
||||
uni.showLoading({
|
||||
title: '登录中'
|
||||
})
|
||||
userStore.setToken(res.data.value)
|
||||
userStore.getCurrentUser().then(res => {
|
||||
uni.hideLoading()
|
||||
uni.reLaunch({
|
||||
url: '/pages/index/index'
|
||||
});
|
||||
}).catch(() => {
|
||||
uni.hideLoading()
|
||||
uni.reLaunch({
|
||||
url: '/pages/index/index'
|
||||
});
|
||||
})
|
||||
} else if (res.data.status == 4) {
|
||||
uni.setStorageSync('ssoTicket', this.ticket)
|
||||
uni.reLaunch({
|
||||
url: '/pages/login/index',
|
||||
success: () => this.$u.toast('第三方账号未绑定,5分钟内登录本系统账号密码自动绑定该账号!')
|
||||
})
|
||||
|
||||
} else if (res.data.status == 6) {
|
||||
let tenantUserInfo = JSON.parse(res.data.value)
|
||||
if (tenantUserInfo.length == 1) {
|
||||
uni.showLoading({
|
||||
title: '登录中'
|
||||
})
|
||||
userStore.setToken(res.data.value)
|
||||
uni.hideLoading()
|
||||
uni.reLaunch({
|
||||
url: '/pages/index/index'
|
||||
});
|
||||
} else {
|
||||
uni.reLaunch({
|
||||
url: '/pages/login/index?data=' + JSON.stringify(tenantUserInfo)
|
||||
})
|
||||
}
|
||||
} else if (res.data.status == 7) {
|
||||
this.$u.toast('第三方账号未绑定账号,请绑定后重试')
|
||||
setTimeout(() => {
|
||||
uni.reLaunch({
|
||||
url: '/pages/login/index'
|
||||
})
|
||||
}, 600)
|
||||
} else {
|
||||
this.show = false
|
||||
this.ssoUrl = ''
|
||||
uni.showToast({
|
||||
title: res.data.value || '操作超时,请重新点击登录',
|
||||
icon: 'none'
|
||||
})
|
||||
uni.reLaunch({
|
||||
url: '/pages/login/index'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
clearTimer() {
|
||||
if (this.ssoTimer) {
|
||||
clearInterval(this.ssoTimer)
|
||||
this.ssoTimer = null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user