|
|
|
@ -1,8 +1,7 @@
|
|
|
|
|
import { Result, Spin, Flex, Typography } from 'antd'
|
|
|
|
|
import React, { useEffect, useState } from 'react'
|
|
|
|
|
import { useNavigate } from 'react-router-dom'
|
|
|
|
|
|
|
|
|
|
import { useAuthContext } from '@/stores/AuthContext'
|
|
|
|
|
import useAuthStore from '@/stores/AuthStore'
|
|
|
|
|
|
|
|
|
|
const { Title } = Typography
|
|
|
|
|
|
|
|
|
@ -11,8 +10,8 @@ const { Title } = Typography
|
|
|
|
|
function DingdingQRCode() {
|
|
|
|
|
|
|
|
|
|
const navigate = useNavigate()
|
|
|
|
|
const { loginUser } = useAuthContext()
|
|
|
|
|
const [loginStatus, setLoginStatus] = useState(0)
|
|
|
|
|
// const { loginUser } = useAuthContext()
|
|
|
|
|
const { loginStatus, fetchUser } = useAuthStore()
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
import('https://g.alicdn.com/dingding/h5-dingtalk-login/0.21.0/ddlogin.js').then(() => {
|
|
|
|
@ -32,29 +31,9 @@ function DingdingQRCode() {
|
|
|
|
|
},
|
|
|
|
|
(loginResult) => {
|
|
|
|
|
const { authCode } = loginResult
|
|
|
|
|
console.log(loginResult)
|
|
|
|
|
setLoginStatus(200)
|
|
|
|
|
|
|
|
|
|
fetch(`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth?authCode=${authCode}`)
|
|
|
|
|
.then(response => response.json())
|
|
|
|
|
.then(json => {
|
|
|
|
|
if (json.errcode === 0) {
|
|
|
|
|
loginUser.userId = json.result.opisn
|
|
|
|
|
loginUser.accountName = json.result.opicode
|
|
|
|
|
loginUser.username = json.result.nick
|
|
|
|
|
loginUser.avatarUrl = json.result.avatarUrl
|
|
|
|
|
loginUser.mobile = '+' + json.result.stateCode + '-' + json.result.mobile
|
|
|
|
|
loginUser.email = json.result.email
|
|
|
|
|
loginUser.openId = json.result.openId
|
|
|
|
|
loginUser.accountList = json.result.accountlist
|
|
|
|
|
navigate('/account/profile')
|
|
|
|
|
} else {
|
|
|
|
|
setLoginStatus(403)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
fetchUser(authCode)
|
|
|
|
|
},
|
|
|
|
|
(errorMsg) => {
|
|
|
|
|
setLoginStatus(403)
|
|
|
|
|
console.error(`Login Error: ${errorMsg}`)
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
@ -74,6 +53,8 @@ function DingdingQRCode() {
|
|
|
|
|
/>
|
|
|
|
|
</Flex>
|
|
|
|
|
)
|
|
|
|
|
} else if (loginStatus === 302) {
|
|
|
|
|
navigate('/account/profile')
|
|
|
|
|
} else if (loginStatus === 403) {
|
|
|
|
|
return (
|
|
|
|
|
<Flex justify='center' align='center' gap='middle' vertical>
|
|
|
|
|