初始提交

This commit is contained in:
2026-01-04 11:09:06 +08:00
commit 8fa31df250
1326 changed files with 213907 additions and 0 deletions

114
pages/login/otherLogin.vue Normal file
View 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>