|
@@ -9,24 +9,31 @@ import './index.less'
|
|
|
|
|
|
enum authStatus {
|
|
|
success = 0,
|
|
|
- fail = 1,
|
|
|
- wait = 2
|
|
|
+ fail = -1,
|
|
|
+ wait = 2,
|
|
|
+ disable = 3
|
|
|
}
|
|
|
+
|
|
|
const PreAuth = () => {
|
|
|
- const [ status, setStatus ] = useState(authStatus.wait)
|
|
|
+ const [ state, setState ] = useState({
|
|
|
+ status: authStatus.wait,
|
|
|
+ redirect: ''
|
|
|
+ })
|
|
|
useEffect(() => {
|
|
|
const token = window.location.search.split('=')[1]
|
|
|
async function authLogin() {
|
|
|
const { code = -1, data } = await apiExternalAuthLogin(token)
|
|
|
if (code === consts.RET_CODE.SUCCESS) {
|
|
|
- setStatus(authStatus.success)
|
|
|
+ setState({ ...state, status: authStatus.success })
|
|
|
userStore.updateUserInfo(data)
|
|
|
userStore.getProjectInfo()
|
|
|
setTimeout(() => {
|
|
|
history.replace('/console/dashboard')
|
|
|
}, 250)
|
|
|
+ } else if( code === authStatus.fail) {
|
|
|
+ setState({ ...state, status: code, redirect: data.redirect })
|
|
|
} else {
|
|
|
- setStatus(authStatus.fail)
|
|
|
+ setState({ ...state, status: code })
|
|
|
}
|
|
|
}
|
|
|
authLogin()
|
|
@@ -34,25 +41,26 @@ const PreAuth = () => {
|
|
|
|
|
|
return (
|
|
|
<div className='pre-auth-container'>
|
|
|
- <img src={status === authStatus.fail ? wrong : cycling} alt="" />
|
|
|
+ <img src={state.status === authStatus.fail ? wrong : cycling} alt="" />
|
|
|
{
|
|
|
- status === authStatus.wait ? <div className='pre-auth-progress'>
|
|
|
+ state.status === authStatus.wait ? <div className='pre-auth-progress'>
|
|
|
<div className='pre-auth-loading' />
|
|
|
</div> : null
|
|
|
}
|
|
|
|
|
|
<div className='pre-auth-status'>
|
|
|
{
|
|
|
- status === authStatus.wait ? <span>
|
|
|
+ state.status === authStatus.wait ? <span>
|
|
|
正在进入...
|
|
|
</span> : null
|
|
|
}
|
|
|
{
|
|
|
- status === authStatus.fail ? <><span>请返回计量支付并</span>
|
|
|
- <span className='link' onClick={() => window.location.href= 'http://127.0.0.1:7002/dashboard'}>重新进入</span></> : null
|
|
|
+ state.status === authStatus.fail ? <><span>请返回计量支付并</span>
|
|
|
+ <span className='link' onClick={() => window.location.href = state.redirect}>重新进入</span></> : null
|
|
|
+ }
|
|
|
+ {
|
|
|
+ state.status === authStatus.disable ? <span>请联系「项目管理系统」管理员,开启账号后再进入</span> : null
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
</div>
|
|
|
</div>
|
|
|
)
|