You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
3.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>正在进入报名系统</title>
<style>
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
background: #f4f7fb;
color: #1f2937;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
}
main {
width: min(100%, 420px);
padding: 32px 24px;
border: 1px solid #e5e7eb;
border-radius: 8px;
background: #ffffff;
text-align: center;
box-shadow: 0 8px 24px rgba(31, 41, 55, 0.08);
}
.spinner {
width: 42px;
height: 42px;
margin: 0 auto 20px;
border: 4px solid #dbeafe;
border-top-color: #2563eb;
border-radius: 50%;
animation: spin 0.9s linear infinite;
}
h1 {
margin: 0;
font-size: 22px;
line-height: 1.4;
}
p {
margin: 12px 0 22px;
color: #6b7280;
font-size: 15px;
line-height: 1.7;
}
a {
display: inline-flex;
min-height: 44px;
align-items: center;
justify-content: center;
padding: 10px 20px;
border-radius: 6px;
background: #2563eb;
color: #ffffff;
font-size: 16px;
text-decoration: none;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
</style>
</head>
<body>
<main>
<div class="spinner" aria-hidden="true"></div>
<h1>正在进入报名系统</h1>
<p id="handoff-message">请稍候,系统正在为您跳转。若页面没有自动跳转,请点击下方按钮继续。</p>
<a href="{{ $redirectUrl }}">继续报名</a>
<noscript>
<p>浏览器未启用 JavaScript,请点击“继续报名”进入报名页面。</p>
</noscript>
</main>
<script>
(() => {
const token = {{ Illuminate\Support\Js::from($token) }};
const user = {{ Illuminate\Support\Js::from($user) }};
const competitionSlug = {{ Illuminate\Support\Js::from($competitionSlug) }};
const redirectUrl = {{ Illuminate\Support\Js::from($redirectUrl) }};
try {
localStorage.setItem('cxxfds_token', token);
localStorage.setItem('cxxfds_user', JSON.stringify(user));
localStorage.setItem('cxxfds_participant_competition_slug', competitionSlug);
location.replace(redirectUrl);
} catch (error) {
document.getElementById('handoff-message').textContent =
'自动跳转未完成,请点击下方按钮继续报名。';
}
})();
</script>
</body>
</html>