import useAuthStore from '@/stores/AuthStore' import { Flex, Result, Spin, Typography } from 'antd' import { useEffect } from 'react' import { useNavigate } from 'react-router-dom' const { Title } = Typography // 钉钉扫码开发文档:https://open.dingtalk.com/document/orgapp/tutorial-obtaining-user-personal-information#title-qpi-0qv-anm function QRCode() { const navigate = useNavigate() const { loginStatus, loginUser, login, setLoginStatus } = useAuthStore() useEffect(() => { if (loginUser.userId > 0) { navigate('/') } }, []) useEffect(() => { import('https://g.alicdn.com/dingding/h5-dingtalk-login/0.21.0/ddlogin.js').then(() => { window.DTFrameLogin( { id: 'qrCodeContainer', width: 300, height: 300, }, { redirect_uri: encodeURIComponent('https://sales.mycht.cn/p/dingding/callback'), client_id: 'dingwgdx6emlxr3fcrg8', scope: 'openid', response_type: 'code', state: 'global-sales', prompt: 'consent', }, (loginResult) => { const { authCode } = loginResult login(authCode) }, (errorMsg) => { setLoginStatus(403) console.error(`Login Error: ${errorMsg}`) }, ) }) }, []) if (loginStatus === 200) { return ( ]} /> ) } else if (loginStatus === 302) { navigate('/') } else if (loginStatus === 403) { return ( ) } else { return ( 使用钉钉扫码
) } } export default QRCode