2024-06-17 09:39:01 +08:00
|
|
|
|
<template>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div ref="register"></div>
|
|
|
|
|
|
<a-modal
|
|
|
|
|
|
class="register generalModel"
|
|
|
|
|
|
:get-container="() => $refs.register"
|
|
|
|
|
|
v-model:visible="registerModel"
|
|
|
|
|
|
:footer="null"
|
|
|
|
|
|
:width="pageWidth"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
height="auto"
|
2025-06-19 10:21:17 +08:00
|
|
|
|
:maskClosable="false"
|
|
|
|
|
|
:centered="true"
|
|
|
|
|
|
:closable="false"
|
|
|
|
|
|
:mask="registerModelMask"
|
|
|
|
|
|
:keyboard="false"
|
|
|
|
|
|
:destroyOnClose="true"
|
|
|
|
|
|
:zIndex="1000"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="generalModel_btn">
|
|
|
|
|
|
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
|
|
|
|
|
<!-- <i class="fi fi-rr-cross-small"></i> -->
|
|
|
|
|
|
<svg
|
2025-08-22 10:27:48 +08:00
|
|
|
|
width="100%" height="100%"
|
2025-06-19 10:21:17 +08:00
|
|
|
|
viewBox="0 0 46 46"
|
|
|
|
|
|
fill="none"
|
|
|
|
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
|
|
|
|
>
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<circle cx="23" cy="23" r="23" fill="black" fill-opacity="0.3" />
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<rect
|
|
|
|
|
|
x="32.5063"
|
|
|
|
|
|
y="12"
|
|
|
|
|
|
width="3"
|
|
|
|
|
|
height="29"
|
|
|
|
|
|
rx="1.5"
|
|
|
|
|
|
transform="rotate(45 32.5063 12)"
|
|
|
|
|
|
fill="white"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<rect
|
|
|
|
|
|
x="34.6274"
|
|
|
|
|
|
y="32.5059"
|
|
|
|
|
|
width="3"
|
|
|
|
|
|
height="29"
|
|
|
|
|
|
rx="1.5"
|
|
|
|
|
|
transform="rotate(135 34.6274 32.5059)"
|
|
|
|
|
|
fill="white"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</svg>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="login_page">
|
|
|
|
|
|
<div class="page_content">
|
|
|
|
|
|
<!-- 账号密码和邮箱登录 start-->
|
|
|
|
|
|
<div class="login_content" v-if="isLogin === 1">
|
|
|
|
|
|
<div class="login_content_left">
|
|
|
|
|
|
<div class="login_type_list">
|
|
|
|
|
|
<div
|
|
|
|
|
|
:class="[
|
|
|
|
|
|
'login_type_item',
|
|
|
|
|
|
'username_login_item',
|
|
|
|
|
|
'login_active',
|
|
|
|
|
|
]"
|
|
|
|
|
|
>
|
2025-08-22 10:27:48 +08:00
|
|
|
|
{{ userI18n[selectUserI18n].title }}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 账号密码登录 start -->
|
|
|
|
|
|
<!-- v-show="loginType == 'username'" -->
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="login_form_content" :state="emailStap">
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<div class="login_form_title">{{ userI18n[selectUserI18n].Name }}</div>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<input
|
|
|
|
|
|
class="login_form_input"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
:placeholder="userI18n[selectUserI18n].inputName"
|
2025-06-19 10:21:17 +08:00
|
|
|
|
v-model="username"
|
|
|
|
|
|
/>
|
2025-01-07 17:15:28 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div class="login_form_title marign_top30">
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<div>{{ userI18n[selectUserI18n].Password }}</div>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<!-- <div class="tip_content" @click="changeIsLogin(2)">
|
2024-06-27 22:23:28 +08:00
|
|
|
|
Forgot password?
|
|
|
|
|
|
</div> -->
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
2026-01-14 16:56:39 +08:00
|
|
|
|
<div class="password_input_block" v-show="emailStap !== 2">
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div v-show="passwordConditionShow" class="conditionShow">
|
|
|
|
|
|
<div class="item">
|
|
|
|
|
|
<div class="icon">
|
|
|
|
|
|
<i
|
|
|
|
|
|
v-show="!passwordCondition.length"
|
|
|
|
|
|
class="fi fi-br-cross-small"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
<i
|
|
|
|
|
|
v-show="passwordCondition.length"
|
|
|
|
|
|
class="fi fi-br-check"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
</div>
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<div class="text">{{ userI18n[selectUserI18n].passwordLength }}</div>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="item">
|
|
|
|
|
|
<div class="icon">
|
|
|
|
|
|
<i
|
|
|
|
|
|
v-show="!passwordCondition.special"
|
|
|
|
|
|
class="fi fi-br-cross-small"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
<i
|
|
|
|
|
|
v-show="passwordCondition.special"
|
|
|
|
|
|
class="fi fi-br-check"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
</div>
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<div class="text">{{ userI18n[selectUserI18n].passwordSpecial }}</div>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="item">
|
|
|
|
|
|
<div class="icon">
|
|
|
|
|
|
<i
|
|
|
|
|
|
v-show="!passwordCondition.group"
|
|
|
|
|
|
class="fi fi-br-cross-small"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
<i
|
|
|
|
|
|
v-show="passwordCondition.group"
|
|
|
|
|
|
class="fi fi-br-check"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="text">
|
2025-08-22 10:27:48 +08:00
|
|
|
|
{{ userI18n[selectUserI18n].passwordMaxLength }}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<input
|
|
|
|
|
|
class="login_form_input"
|
|
|
|
|
|
:class="{
|
|
|
|
|
|
active:
|
|
|
|
|
|
Object.values(passwordCondition).filter(
|
|
|
|
|
|
(value) => value === true
|
|
|
|
|
|
).length < 3,
|
|
|
|
|
|
}"
|
|
|
|
|
|
:type="passwordType"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
:placeholder="userI18n[selectUserI18n].inputPassword"
|
2025-06-19 10:21:17 +08:00
|
|
|
|
v-model="password"
|
|
|
|
|
|
@keydown.enter="submitPerLogin()"
|
|
|
|
|
|
@input="passwordInput"
|
|
|
|
|
|
@focus="() => (passwordConditionShow = true)"
|
|
|
|
|
|
@blur="() => (passwordConditionShow = false)"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="icon iconfont icon-yanjing_yincang_o password_show_icon"
|
|
|
|
|
|
@click="changePasswordType()"
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</div>
|
2026-01-14 16:56:39 +08:00
|
|
|
|
<span style="font-weight: 400; opacity: 0.7" v-show="emailStap !== 2"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
>{{ userI18n[selectUserI18n].inputPasswordTip }}</span
|
2025-06-19 10:21:17 +08:00
|
|
|
|
>
|
2026-01-14 16:56:39 +08:00
|
|
|
|
<div class="login_form_title marign_top30" v-show="emailStap !== 2">{{ userI18n[selectUserI18n].Email }}</div>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<input
|
|
|
|
|
|
class="login_form_input"
|
2026-01-14 16:56:39 +08:00
|
|
|
|
v-show="emailStap !== 2"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
:placeholder="userI18n[selectUserI18n].inputEmail"
|
2025-06-19 10:21:17 +08:00
|
|
|
|
v-model="email"
|
|
|
|
|
|
@keydown.enter="submitPerLogin()"
|
|
|
|
|
|
/>
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<!-- 邮箱登录 start -->
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="login_form_email"
|
|
|
|
|
|
:class="{ active: emailStap === 2 }"
|
|
|
|
|
|
>
|
|
|
|
|
|
<!-- <div v-show="loginType == 'email'" class="login_form_email"> -->
|
|
|
|
|
|
<!-- <div v-show="emailStap === 1" class="forget_password_content">
|
2024-06-27 22:23:28 +08:00
|
|
|
|
<div class="forget_password_content_block" @click="changeLoginType('username')">
|
|
|
|
|
|
<span class="icon iconfont fi-br-arrow-left"></span
|
|
|
|
|
|
><span class="forget_password_content_title"
|
|
|
|
|
|
>Log on to AiDA</span
|
|
|
|
|
|
>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="login_form_content">
|
|
|
|
|
|
<div class="login_form_title">Email</div>
|
|
|
|
|
|
<input
|
|
|
|
|
|
class="login_form_input"
|
|
|
|
|
|
placeholder="Enter your email address"
|
|
|
|
|
|
v-model="email"
|
|
|
|
|
|
@keydown.enter="emailNextStepFun()"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="login_submit_button marign_top40"
|
|
|
|
|
|
@click="emailNextStepFun()"
|
2024-06-17 09:39:01 +08:00
|
|
|
|
>
|
2024-06-27 22:23:28 +08:00
|
|
|
|
Sign In
|
2024-06-17 09:39:01 +08:00
|
|
|
|
</div>
|
2024-06-27 22:23:28 +08:00
|
|
|
|
</div> -->
|
|
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div v-show="emailStap === 2" class="email_last_step">
|
|
|
|
|
|
<div class="email_last_step_block">
|
|
|
|
|
|
<span class="email_last_step_content"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
>{{userI18n[selectUserI18n].code}}</span
|
2025-06-19 10:21:17 +08:00
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
class="fi fi-br-cross email_last_step_block_icon"
|
|
|
|
|
|
@click="emailLastStepFun()"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="email_last_step_bottom">
|
|
|
|
|
|
<div class="email_last_step_des">
|
|
|
|
|
|
<div class="sent_email_content">
|
2025-08-22 10:27:48 +08:00
|
|
|
|
{{userI18n[selectUserI18n].SentTo}} {{ email }}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="tip_content">
|
|
|
|
|
|
<span v-show="time">{{ time }}s</span>
|
|
|
|
|
|
<span v-show="!time" @click="emailNextStepFun()"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
>{{userI18n[selectUserI18n].Resend}}</span
|
2025-06-19 10:21:17 +08:00
|
|
|
|
>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<VerificationCodeInput
|
|
|
|
|
|
:ct="emailCode"
|
|
|
|
|
|
@sendCaptcha="submitEmailLogin($event)"
|
|
|
|
|
|
></VerificationCodeInput>
|
2024-06-27 22:23:28 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div class="email_last_step_des">
|
|
|
|
|
|
<div class="sent_email_content email_tip_content">
|
2025-08-22 10:27:48 +08:00
|
|
|
|
{{userI18n[selectUserI18n].PleaseCheck}}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2025-06-18 21:47:27 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div class="login_form_title marign_top30">
|
|
|
|
|
|
<label :class="{ active: emailStap == 2 }">
|
|
|
|
|
|
<input :state="emailStap" type="checkbox" v-model="checked" />
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<span>{{userI18n[selectUserI18n].articles}}</span>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</label>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="thirdPartyLogin marign_top30">
|
|
|
|
|
|
<div class="label">
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="mask"
|
|
|
|
|
|
v-show="!checked"
|
|
|
|
|
|
@click="isCheckAgreement"
|
|
|
|
|
|
></div>
|
|
|
|
|
|
<googleLogin
|
|
|
|
|
|
@googelLogin="googelLogin"
|
2025-08-22 10:27:48 +08:00
|
|
|
|
:text="userI18n[selectUserI18n].google"
|
2025-06-19 10:21:17 +08:00
|
|
|
|
></googleLogin>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="label">
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="mask"
|
|
|
|
|
|
v-show="!checked"
|
|
|
|
|
|
@click="isCheckAgreement"
|
|
|
|
|
|
></div>
|
2025-08-22 10:27:48 +08:00
|
|
|
|
<weiXinLogin :text="userI18n[selectUserI18n].wechat"></weiXinLogin>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<!-- <phoneLogin></phoneLogin> -->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="login_submit_button marign_top40"
|
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
|
:state="emailStap"
|
|
|
|
|
|
@click="submitPerLogin()"
|
|
|
|
|
|
>
|
2025-08-22 10:27:48 +08:00
|
|
|
|
{{userI18n[selectUserI18n].Register}}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <div class="login_text" >
|
2024-06-27 22:23:28 +08:00
|
|
|
|
<div class="forget_password_text" @click="changeIsLogin(2)">Forgot your password</div>
|
|
|
|
|
|
</div> -->
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 账号密码登录 end -->
|
|
|
|
|
|
</div>
|
2024-06-27 22:23:28 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<!-- 邮箱登录 end -->
|
|
|
|
|
|
</div>
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<!-- 忘记密码 start -->
|
|
|
|
|
|
<div class="forget_password_content" v-else>
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="forget_password_content_block"
|
|
|
|
|
|
@click="forgetPasswordLastStepFun()"
|
|
|
|
|
|
>
|
|
|
|
|
|
<!-- <span class="icon iconfont fi-br-arrow-left"></span
|
2024-06-27 22:23:28 +08:00
|
|
|
|
> -->
|
2025-09-01 14:03:30 +08:00
|
|
|
|
<!-- <i class="fi fi-br-arrow-left"></i> -->
|
|
|
|
|
|
<i class="fi fi-br-angle-left"></i>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<span class="forget_password_content_title">Retrieve password</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div v-show="frogetPasswordStep === 1">
|
|
|
|
|
|
<div class="forget_passored_form_content">
|
|
|
|
|
|
<div class="forget_passored_form_title">Email</div>
|
|
|
|
|
|
<input
|
|
|
|
|
|
class="forget_passored_form_input"
|
|
|
|
|
|
placeholder="Enter your email"
|
|
|
|
|
|
v-model="forgetPasswordEmail"
|
|
|
|
|
|
@keydown.enter="forgetPasswordNextStepFun()"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="forget_submit_button marign_top40"
|
|
|
|
|
|
@click="forgetPasswordNextStepFun()"
|
|
|
|
|
|
>
|
|
|
|
|
|
Next step
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-06-27 22:23:28 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div v-show="frogetPasswordStep === 2">
|
|
|
|
|
|
<div class="forget_verif_code_des">Verification Code</div>
|
|
|
|
|
|
<div class="email_last_step_des">
|
|
|
|
|
|
<div class="sent_email_content">
|
|
|
|
|
|
Sent to {{ forgetPasswordEmail }}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="tip_content">
|
|
|
|
|
|
<span v-show="time">{{ time }}s</span>
|
|
|
|
|
|
<span v-show="!time" @click="forgetPasswordNextStepFun()"
|
|
|
|
|
|
>Resend</span
|
|
|
|
|
|
>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-06-27 22:23:28 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
<div v-show="frogetPasswordStep === 3">
|
|
|
|
|
|
<div class="forget_passored_form_content">
|
|
|
|
|
|
<div class="forget_passored_form_title">Password</div>
|
|
|
|
|
|
<input
|
|
|
|
|
|
class="forget_passored_form_input"
|
|
|
|
|
|
placeholder="Enter a new password"
|
|
|
|
|
|
v-model="newPassword"
|
|
|
|
|
|
@keydown.enter="submitResetPassword()"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="forget_submit_button marign_top40"
|
|
|
|
|
|
@click="submitResetPassword()"
|
|
|
|
|
|
>
|
|
|
|
|
|
Submit
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 忘记密码 end -->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</a-modal>
|
2024-06-17 09:39:01 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script lang="ts">
|
2025-06-19 10:21:17 +08:00
|
|
|
|
import { defineComponent, ref, reactive, toRefs, onMounted } from "vue";
|
2024-06-17 09:39:01 +08:00
|
|
|
|
import { Https } from "@/tool/https";
|
|
|
|
|
|
import { isEmail } from "@/tool/util";
|
2025-06-19 10:21:17 +08:00
|
|
|
|
import { setCookie, WriteCookie } from "@/tool/cookie";
|
2024-06-17 09:39:01 +08:00
|
|
|
|
import { message } from "ant-design-vue";
|
|
|
|
|
|
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
|
2024-12-11 16:26:36 +08:00
|
|
|
|
import googleLogin from "@/component/LoginPage/googleLogin.vue";
|
|
|
|
|
|
import weiXinLogin from "@/component/LoginPage/weiXinLogin.vue";
|
|
|
|
|
|
import phoneLogin from "@/component/LoginPage/phoneLogin.vue";
|
2024-06-17 09:39:01 +08:00
|
|
|
|
import { useStore } from "vuex";
|
|
|
|
|
|
import { useI18n } from "vue-i18n";
|
|
|
|
|
|
import { setLang } from "@/tool/guide";
|
2025-06-19 10:21:17 +08:00
|
|
|
|
import md5 from "md5";
|
2024-06-17 09:39:01 +08:00
|
|
|
|
export default defineComponent({
|
2025-06-19 10:21:17 +08:00
|
|
|
|
components: {
|
|
|
|
|
|
VerificationCodeInput,
|
|
|
|
|
|
googleLogin,
|
|
|
|
|
|
weiXinLogin,
|
|
|
|
|
|
phoneLogin,
|
|
|
|
|
|
},
|
|
|
|
|
|
setup() {
|
|
|
|
|
|
let timer: any = 0;
|
|
|
|
|
|
const { locale } = useI18n();
|
|
|
|
|
|
const store = useStore();
|
|
|
|
|
|
let register = reactive({
|
|
|
|
|
|
registerModel: false,
|
|
|
|
|
|
registerModelMask: true,
|
|
|
|
|
|
pageWidth: "50%",
|
|
|
|
|
|
passwordConditionShow: false,
|
2025-08-22 10:27:48 +08:00
|
|
|
|
userI18n: {
|
|
|
|
|
|
en:{
|
2025-09-02 12:59:30 +08:00
|
|
|
|
title:'Register for AiDA',
|
2025-08-22 10:27:48 +08:00
|
|
|
|
Name:'Name',
|
|
|
|
|
|
inputName:'Enter your username',
|
|
|
|
|
|
Password:'Password',
|
|
|
|
|
|
passwordLength:'At least 8 characters long',
|
|
|
|
|
|
passwordSpecial:'Must contain special characters',
|
|
|
|
|
|
passwordMaxLength:'Mix of uppercase, lowercase and numbers',
|
|
|
|
|
|
inputPassword:'Enter your password',
|
|
|
|
|
|
inputPasswordTip:'You must satisfy ALL password conditions to register.',
|
|
|
|
|
|
Email:'Email',
|
|
|
|
|
|
inputEmail:'Enter your email address',
|
|
|
|
|
|
code:'Verify using a one-time verification code',
|
|
|
|
|
|
SentTo:'Sent to',
|
|
|
|
|
|
Resend:'Resend',
|
|
|
|
|
|
PleaseCheck:"Please check the junk box if you haven't received verification code",
|
|
|
|
|
|
articles:'I agree to the Terms, Privacy Policy, and Fees.',
|
|
|
|
|
|
Register:'Register',
|
|
|
|
|
|
google:'Register with Google',
|
|
|
|
|
|
wechat:'Register with wechat',
|
|
|
|
|
|
},
|
|
|
|
|
|
cn:{
|
2025-09-02 12:59:30 +08:00
|
|
|
|
title:'注册 AiDA',
|
2025-08-22 10:27:48 +08:00
|
|
|
|
Name:'用户名',
|
|
|
|
|
|
inputName:'请输入用户名',
|
|
|
|
|
|
Password:'密码',
|
|
|
|
|
|
passwordLength:'至少8个字符',
|
|
|
|
|
|
passwordSpecial:'必须包含特殊符号',
|
|
|
|
|
|
passwordMaxLength:'大小写字母与数字混合组合',
|
|
|
|
|
|
inputPassword:'请输入密码',
|
|
|
|
|
|
inputPasswordTip:'您必须满足所有密码设置条件才能完成注册',
|
|
|
|
|
|
Email:'邮箱',
|
|
|
|
|
|
inputEmail:'请输入邮箱',
|
|
|
|
|
|
code:'使用一次性验证码进行验证',
|
|
|
|
|
|
SentTo:'发送到',
|
|
|
|
|
|
Resend:'重新发送',
|
|
|
|
|
|
PleaseCheck:"如果没有收到验证码,请检查垃圾邮件",
|
|
|
|
|
|
articles:'我同意相关条款、隐私政策以及费用规定。',
|
|
|
|
|
|
Register:'注册',
|
|
|
|
|
|
google:'使用谷歌进行注册',
|
|
|
|
|
|
wechat:'使用微信进行注册',
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
selectUserI18n:'en',
|
2025-06-19 10:21:17 +08:00
|
|
|
|
passwordCondition: {
|
|
|
|
|
|
length: false,
|
|
|
|
|
|
special: false,
|
|
|
|
|
|
group: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
return {
|
|
|
|
|
|
store,
|
|
|
|
|
|
timer,
|
|
|
|
|
|
...toRefs(register),
|
|
|
|
|
|
locale,
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
checked: false,
|
|
|
|
|
|
isLogin: 1, //是否为登录 1-登录, 2-忘记密码
|
|
|
|
|
|
loginType: "username",
|
|
|
|
|
|
emailStap: 1, // 邮箱登录步骤
|
|
|
|
|
|
emailCode: ["", "", "", "", "", ""], //邮箱验证码
|
|
|
|
|
|
emailNextStep: true,
|
|
|
|
|
|
username: "",
|
|
|
|
|
|
password: "",
|
|
|
|
|
|
email: "", //邮箱登录邮箱
|
|
|
|
|
|
frogetPasswordStep: 1, //忘记密码的步骤
|
|
|
|
|
|
forgetPasswordEmail: "",
|
|
|
|
|
|
forgetEmailCode: ["", "", "", "", "", ""], //忘记密码的邮箱验证码
|
|
|
|
|
|
forgetEmailValue: "", //忘记密码的邮箱验证码保存值
|
|
|
|
|
|
newPassword: "", //新密码
|
|
|
|
|
|
isCheckRobot: false,
|
|
|
|
|
|
time: 60, //60秒倒计时
|
|
|
|
|
|
passwordType: "password",
|
|
|
|
|
|
userId: "",
|
|
|
|
|
|
loginTime: true,
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
const data = this.$route.query;
|
|
|
|
|
|
if (data?.state == "weiXin") {
|
|
|
|
|
|
this.wechatLogin(data);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2025-08-22 10:27:48 +08:00
|
|
|
|
init(boolean: boolean) {
|
|
|
|
|
|
if(boolean){
|
|
|
|
|
|
this.selectUserI18n = 'cn'
|
|
|
|
|
|
}else{
|
|
|
|
|
|
this.selectUserI18n = 'en'
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
this.registerModel = true;
|
|
|
|
|
|
this.emailLastStepFun();
|
2024-06-17 09:39:01 +08:00
|
|
|
|
},
|
2025-06-19 10:21:17 +08:00
|
|
|
|
changeLoginType(type: string) {
|
|
|
|
|
|
this.loginType = type;
|
2025-06-18 21:47:27 +08:00
|
|
|
|
},
|
2024-06-28 11:50:11 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//是否忘记密码页面
|
|
|
|
|
|
changeIsLogin(isLogin: number) {
|
|
|
|
|
|
if (isLogin === 1) {
|
|
|
|
|
|
//登录
|
|
|
|
|
|
this.forgetPasswordEmail = "";
|
|
|
|
|
|
this.frogetPasswordStep = 1;
|
|
|
|
|
|
this.forgetEmailCode = ["", "", "", "", "", ""];
|
|
|
|
|
|
this.emailStap = 1;
|
|
|
|
|
|
this.clearTimer();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.username = "";
|
|
|
|
|
|
this.password = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
this.isLogin = isLogin;
|
|
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//邮箱登录的下一步
|
|
|
|
|
|
emailNextStepFun() {
|
|
|
|
|
|
if (!isEmail(this.email)) {
|
|
|
|
|
|
message.info("The email format is incorrect");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
email: this.email,
|
|
|
|
|
|
operationType: "LOGIN",
|
|
|
|
|
|
};
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
Https.axiosPost(Https.httpUrls.accountSendEmail, data).then((rv: any) => {
|
|
|
|
|
|
if (rv) {
|
|
|
|
|
|
this.emailStap = 2;
|
|
|
|
|
|
this.time = 60;
|
|
|
|
|
|
this.emailCode = ["", "", "", "", "", ""];
|
|
|
|
|
|
this.createTimer();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//邮箱登录的上一步
|
|
|
|
|
|
emailLastStepFun() {
|
|
|
|
|
|
this.emailStap = 1;
|
|
|
|
|
|
(this.username = ""), (this.password = ""), (this.email = "");
|
|
|
|
|
|
(this.checked = false),
|
|
|
|
|
|
(this.loginType = "username"),
|
|
|
|
|
|
(this.emailCode = ["", "", "", "", "", ""]),
|
|
|
|
|
|
this.clearTimer();
|
|
|
|
|
|
},
|
2024-06-28 11:50:11 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//忘记密码的下一步
|
|
|
|
|
|
forgetPasswordNextStepFun() {
|
|
|
|
|
|
if (!isEmail(this.forgetPasswordEmail)) {
|
|
|
|
|
|
message.info("The email format is incorrect");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
email: this.forgetPasswordEmail,
|
|
|
|
|
|
operationType: "FORGET_PWD",
|
|
|
|
|
|
};
|
|
|
|
|
|
Https.axiosPost(Https.httpUrls.accountSendEmail, data).then((rv: any) => {
|
|
|
|
|
|
if (rv) {
|
|
|
|
|
|
this.frogetPasswordStep = 2;
|
|
|
|
|
|
(this.forgetEmailCode = ["", "", "", "", "", ""]), this.createTimer();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
//忘记密码的上一步
|
|
|
|
|
|
forgetPasswordLastStepFun() {
|
|
|
|
|
|
if (this.frogetPasswordStep === 1) {
|
|
|
|
|
|
this.changeIsLogin(1);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.frogetPasswordStep = this.frogetPasswordStep - 1;
|
|
|
|
|
|
this.forgetPasswordEmail = "";
|
|
|
|
|
|
(this.forgetEmailCode = ["", "", "", "", "", ""]), this.clearTimer();
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2025-05-20 16:47:27 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//改变勾选是否是机器人
|
|
|
|
|
|
checkRobot() {
|
|
|
|
|
|
this.isCheckRobot = !this.isCheckRobot;
|
|
|
|
|
|
},
|
|
|
|
|
|
passwordInput() {
|
|
|
|
|
|
this.isPassword(this.password);
|
|
|
|
|
|
},
|
|
|
|
|
|
isPassword(password: any) {
|
|
|
|
|
|
this.passwordCondition.length = /.{8,}/.test(password);
|
|
|
|
|
|
this.passwordCondition.special =
|
|
|
|
|
|
/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password);
|
|
|
|
|
|
this.passwordCondition.group =
|
|
|
|
|
|
/[a-z]/.test(password) && /[A-Z]/.test(password) && /\d/.test(password);
|
|
|
|
|
|
return Object.values(this.passwordCondition).filter(
|
|
|
|
|
|
(value) => value === true
|
|
|
|
|
|
).length;
|
|
|
|
|
|
},
|
|
|
|
|
|
//提交账号密码预先登录
|
|
|
|
|
|
submitPerLogin() {
|
|
|
|
|
|
//输入账号密码
|
|
|
|
|
|
if (this.emailStap >= 2) {
|
|
|
|
|
|
return;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (/aida/i.test(this.username)) {
|
|
|
|
|
|
message.info(
|
|
|
|
|
|
'The name cannot contain "AiDA" or any combination of its uppercase and lowercase forms.'
|
|
|
|
|
|
);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!this.username || !this.password) {
|
|
|
|
|
|
message.info("Please enter your account number or password");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
//输入邮箱
|
|
|
|
|
|
if (!this.email) {
|
|
|
|
|
|
message.info("Please enter your email address");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
//判断邮箱格式是否正确
|
|
|
|
|
|
if (!isEmail(this.email)) {
|
|
|
|
|
|
message.info("The email format is incorrect");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
//判断是否同意隐私政策
|
|
|
|
|
|
if (!this.checked) {
|
|
|
|
|
|
message.info("Agree to all terms, privacy fees and policies");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.isPassword(this.password) < 3) {
|
|
|
|
|
|
message.info("You must satisfy ALL password conditions to register.");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
let data = {
|
|
|
|
|
|
userPassword: md5(this.password + "abc"),
|
|
|
|
|
|
userName: this.username,
|
|
|
|
|
|
userEmail: this.email,
|
|
|
|
|
|
browserIdentifiers: "",
|
|
|
|
|
|
country: "",
|
|
|
|
|
|
createDate: "",
|
|
|
|
|
|
credits: 0,
|
|
|
|
|
|
id: 0,
|
|
|
|
|
|
isBeginner: 0,
|
|
|
|
|
|
isTrial: 0,
|
|
|
|
|
|
language: "",
|
|
|
|
|
|
systemUser: 0,
|
|
|
|
|
|
updateDate: "",
|
|
|
|
|
|
validEndTime: 0,
|
|
|
|
|
|
validStartTime: 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
// this.loginType = 'email'
|
|
|
|
|
|
if (this.loginTime) {
|
|
|
|
|
|
this.loginTime = false;
|
|
|
|
|
|
Https.axiosPost(Https.httpUrls.designWorksRegister, data)
|
|
|
|
|
|
.then((rv: any) => {
|
|
|
|
|
|
// if (rv) {
|
|
|
|
|
|
// this.loginType = 'email'
|
|
|
|
|
|
// }
|
|
|
|
|
|
this.emailStap = 2;
|
|
|
|
|
|
if (rv) {
|
|
|
|
|
|
this.userId = rv.userId;
|
|
|
|
|
|
this.loginType = "email";
|
|
|
|
|
|
this.time = 60;
|
|
|
|
|
|
this.emailCode = ["", "", "", "", "", ""];
|
|
|
|
|
|
this.createTimer();
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch((res) => {
|
|
|
|
|
|
this.emailStap = 1;
|
|
|
|
|
|
});
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
this.loginTime = true;
|
|
|
|
|
|
}, 2000);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
isCheckAgreement() {
|
|
|
|
|
|
message.info("Agree to all terms, privacy fees and policies");
|
|
|
|
|
|
},
|
|
|
|
|
|
changePasswordType() {
|
|
|
|
|
|
this.passwordType =
|
|
|
|
|
|
this.passwordType === "password" ? "text" : "password";
|
|
|
|
|
|
},
|
|
|
|
|
|
//微信登录
|
|
|
|
|
|
wechatLogin(value: any) {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
code: value.code,
|
|
|
|
|
|
type: 1,
|
|
|
|
|
|
};
|
|
|
|
|
|
Https.axiosGet(Https.httpUrls.parseWeChatCode, { params: data })
|
|
|
|
|
|
.then((rv: any) => {
|
|
|
|
|
|
this.setSuccessLogin(rv);
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch((res) => {});
|
|
|
|
|
|
},
|
|
|
|
|
|
//谷歌登录
|
|
|
|
|
|
googelLogin(value: any) {
|
|
|
|
|
|
let data = { credential: value, type: 1 };
|
|
|
|
|
|
Https.axiosGet(Https.httpUrls.parseGoogleCredential, { params: data })
|
|
|
|
|
|
.then((rv: any) => {
|
|
|
|
|
|
this.setSuccessLogin(rv);
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch((res) => {});
|
|
|
|
|
|
},
|
|
|
|
|
|
setSuccessLogin(rv: any) {
|
|
|
|
|
|
if (rv) {
|
|
|
|
|
|
if (rv.systemUser == 4) {
|
|
|
|
|
|
rv.systemUser = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.createTimer();
|
|
|
|
|
|
let isTest = rv.systemUser == 3 ? true : false;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
let isBeginner = rv?.isBeginner == 1 ? true : false;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
let token = rv.token;
|
|
|
|
|
|
setCookie("token", token);
|
|
|
|
|
|
setCookie("isTest", isTest);
|
|
|
|
|
|
setCookie("isBeginner", isBeginner);
|
|
|
|
|
|
setCookie("isBeginnerNum", 0); //从第一步开始,机器人开始的话就是从第二部开始
|
|
|
|
|
|
setCookie("userInfo", JSON.stringify(rv));
|
|
|
|
|
|
let userid: any = {
|
|
|
|
|
|
ueserId: rv.userId,
|
|
|
|
|
|
systemUser: rv.systemUser,
|
|
|
|
|
|
};
|
|
|
|
|
|
if (rv.email) userid.email = rv.email;
|
|
|
|
|
|
this.store.commit("upUserDetail", userid);
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
if (window.innerWidth < 768) {
|
|
|
|
|
|
message.info(
|
|
|
|
|
|
"If you need to design, please log in using an iPad or computer."
|
|
|
|
|
|
);
|
|
|
|
|
|
this.turnToHomePage("/Square");
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.turnToHomePage("/home");
|
|
|
|
|
|
}
|
|
|
|
|
|
sessionStorage.setItem("isTimeOne", JSON.stringify(false)); //是否需要公告 提示 弹窗
|
|
|
|
|
|
let randomNum: any =
|
|
|
|
|
|
Math.floor(Math.random() * 9000000000000000) + 1000000000000000;
|
|
|
|
|
|
sessionStorage.setItem("sessionId", randomNum);
|
|
|
|
|
|
sessionStorage.setItem("record", JSON.stringify([]));
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
//邮箱登录提交
|
|
|
|
|
|
submitEmailLogin(emailVerifyCode: any) {
|
|
|
|
|
|
let affiliateRef = sessionStorage.getItem("affiliateRef");
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
email: this.email,
|
|
|
|
|
|
emailVerifyCode: emailVerifyCode,
|
|
|
|
|
|
loginType: "EMAIL",
|
|
|
|
|
|
userId: this.userId,
|
|
|
|
|
|
userEmail: this.email,
|
|
|
|
|
|
userName: this.username,
|
|
|
|
|
|
userPassword: md5(this.password + "abc"),
|
|
|
|
|
|
invitationCode: affiliateRef ? affiliateRef : "",
|
|
|
|
|
|
};
|
|
|
|
|
|
Https.axiosPost(Https.httpUrls.designWorksRegisterCode, data)
|
|
|
|
|
|
.then((rv: any) => {
|
|
|
|
|
|
this.setSuccessLogin(rv);
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch((res) => {});
|
|
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//修改密码提交
|
|
|
|
|
|
submitResetPassword() {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
email: this.forgetPasswordEmail,
|
|
|
|
|
|
emailVerifyCode: this.forgetEmailValue,
|
|
|
|
|
|
password: md5(this.newPassword + "abc"),
|
|
|
|
|
|
verifyEmail: false,
|
|
|
|
|
|
};
|
|
|
|
|
|
Https.axiosPost(Https.httpUrls.accountResetPwd, data).then((rv: any) => {
|
|
|
|
|
|
if (rv) {
|
|
|
|
|
|
message.success("Changing the password successfully");
|
|
|
|
|
|
this.changeIsLogin(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//创建定时器
|
|
|
|
|
|
createTimer() {
|
2025-11-14 14:44:03 +08:00
|
|
|
|
clearInterval(this.timer);
|
|
|
|
|
|
this.time = 60;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
this.timer = setInterval(() => {
|
|
|
|
|
|
this.time--;
|
|
|
|
|
|
if (!this.time) {
|
|
|
|
|
|
clearInterval(this.timer);
|
|
|
|
|
|
}
|
|
|
|
|
|
}, 1000);
|
|
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//清除定时器
|
|
|
|
|
|
clearTimer() {
|
|
|
|
|
|
this.time = 60;
|
|
|
|
|
|
if (this.timer) {
|
|
|
|
|
|
clearInterval(this.timer);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
//跳转到首页
|
|
|
|
|
|
turnToHomePage(str: any) {
|
|
|
|
|
|
this.getLang();
|
|
|
|
|
|
// this.$router.push("/home");
|
|
|
|
|
|
// console.log(window.location.search.substring(1));
|
|
|
|
|
|
this.store.commit("clearAllData");
|
|
|
|
|
|
this.store.commit("clearAllCollection");
|
|
|
|
|
|
this.store.commit("setAllBoardDataChoose", {});
|
|
|
|
|
|
this.store.commit("clearShowSketchboard", {});
|
|
|
|
|
|
this.$router.push(str);
|
|
|
|
|
|
},
|
|
|
|
|
|
//获取当前语言
|
|
|
|
|
|
getLang() {
|
|
|
|
|
|
let data = {};
|
|
|
|
|
|
Https.axiosPost(Https.httpUrls.getUserLanguage, data).then((rv: any) => {
|
|
|
|
|
|
if (rv) {
|
|
|
|
|
|
this.locale = rv;
|
|
|
|
|
|
setLang(rv);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
turnToWindow(url: any) {
|
|
|
|
|
|
window.open(url);
|
|
|
|
|
|
},
|
|
|
|
|
|
cancelDsign() {
|
|
|
|
|
|
this.registerModel = false;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
},
|
2025-06-19 10:21:17 +08:00
|
|
|
|
},
|
2024-06-17 09:39:01 +08:00
|
|
|
|
});
|
|
|
|
|
|
</script>
|
2024-12-11 16:26:36 +08:00
|
|
|
|
<style lang="less" scoped>
|
2025-06-19 10:21:17 +08:00
|
|
|
|
:deep(.register) {
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
// box-shadow: none;
|
|
|
|
|
|
// height: 100%;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
max-width: 95%;
|
|
|
|
|
|
&.generalModel {
|
|
|
|
|
|
.ant-modal-content {
|
|
|
|
|
|
// height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ant-modal-body {
|
2025-08-22 10:27:48 +08:00
|
|
|
|
padding: 4.3rem 3rem;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
// height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-14 00:00:34 +08:00
|
|
|
|
}
|
|
|
|
|
|
</style>
|
2024-06-17 09:39:01 +08:00
|
|
|
|
<style lang="less" scoped>
|
|
|
|
|
|
.login_page {
|
2025-06-19 10:21:17 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
.page_content {
|
|
|
|
|
|
// position: relative;
|
|
|
|
|
|
.login_content {
|
|
|
|
|
|
// position: relative;
|
|
|
|
|
|
// top: 50%;
|
|
|
|
|
|
// left: 50%;
|
|
|
|
|
|
// transform: translate(-50%,-50%);
|
|
|
|
|
|
// width: 60rem;
|
|
|
|
|
|
// width: 80%;
|
|
|
|
|
|
background: #ffffff;
|
|
|
|
|
|
// box-shadow: -0.3rem 2rem 5.9rem 0px rgba(200,200,200,0.3);
|
|
|
|
|
|
padding: 2rem 6rem 2rem;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.login_content_left {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
.login_form_email {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
transform: scale(0);
|
|
|
|
|
|
transition: 0.3s all;
|
|
|
|
|
|
border: 2px solid;
|
|
|
|
|
|
border-radius: 20px;
|
|
|
|
|
|
.email_last_step {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
#app {
|
|
|
|
|
|
height: auto;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.active {
|
|
|
|
|
|
transform: scale(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.login_type_list {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.login_type_item {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 3.6rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #d7d7d7;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
line-height: 4rem;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
height: 4rem;
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
line-height: 2rem;
|
|
|
|
|
|
font-size: 2.5rem;
|
|
|
|
|
|
height: 2rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
&.login_active {
|
|
|
|
|
|
color: #030303;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.login_form_title {
|
2025-08-22 10:27:48 +08:00
|
|
|
|
font-size: 1.8rem;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
// color: #666666;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
font-weight: 500;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
color: #000;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
box-sizing: border-box;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
font-size: 1.3rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
label {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
span {
|
|
|
|
|
|
font-size: 1.6rem;
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
font-weight: normal;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
font-size: 1.3rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
&.active {
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
input {
|
|
|
|
|
|
pointer-events: none;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.login_form_content {
|
|
|
|
|
|
margin-top: 4rem;
|
|
|
|
|
|
position: relative;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
margin-top: 2.4rem;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
height: 20rem;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
&[state="2"] {
|
|
|
|
|
|
> * {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.login_form_email {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-22 10:27:48 +08:00
|
|
|
|
> span{
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.password_input_block {
|
|
|
|
|
|
position: relative;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.password_show_icon {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
font-size: 2.4rem;
|
|
|
|
|
|
right: 2rem;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
top: 3.3rem;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
cursor: pointer;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
right: 2rem;
|
|
|
|
|
|
top: 1.4rem;
|
|
|
|
|
|
font-size: 1.8rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
> .conditionShow {
|
|
|
|
|
|
bottom: 0;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
left: auto;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
transform: translateY(-7rem);
|
2025-06-19 10:21:17 +08:00
|
|
|
|
background: #404040;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-size: 1.4rem;
|
|
|
|
|
|
padding: 2rem;
|
|
|
|
|
|
border-radius: 2rem;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
z-index: 2;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
> .item {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 0.5rem;
|
|
|
|
|
|
&:last-child {
|
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
> .icon {
|
|
|
|
|
|
margin-right: 1rem;
|
|
|
|
|
|
i {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
// &.fi-br-cross-small{
|
|
|
|
|
|
// color: red;
|
|
|
|
|
|
// }
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.login_form_input {
|
2025-08-22 10:27:48 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 6.75rem;
|
|
|
|
|
|
margin-top: 2rem;
|
|
|
|
|
|
border: 0.1rem solid #dfdfdf;
|
|
|
|
|
|
border-radius: 4.2rem;
|
|
|
|
|
|
padding-left: 2.1rem;
|
|
|
|
|
|
line-height: 5rem;
|
|
|
|
|
|
font-size: 1.6rem;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
outline: none;
|
|
|
|
|
|
transition: all .3s;
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
height: 3.8rem;
|
|
|
|
|
|
margin-top: .7rem;
|
|
|
|
|
|
border: 0.1rem solid #dfdfdf;
|
|
|
|
|
|
border-radius: 2rem;
|
|
|
|
|
|
padding-left: 1.6rem;
|
|
|
|
|
|
line-height: 3.8rem;
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
&:hover {
|
|
|
|
|
|
border: 0.1rem solid #000;
|
|
|
|
|
|
}
|
|
|
|
|
|
&::placeholder {
|
|
|
|
|
|
color: #a5b0c2;
|
|
|
|
|
|
}
|
|
|
|
|
|
&.active {
|
|
|
|
|
|
border: 0.1rem solid red;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.email_last_step {
|
|
|
|
|
|
// margin-top: 4rem;
|
|
|
|
|
|
.email_last_step_bottom {
|
|
|
|
|
|
padding: 0 40px;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
@media (max-width: 767px) {
|
|
|
|
|
|
padding: 0 2rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
.email_last_step_block {
|
|
|
|
|
|
padding: 10px;
|
|
|
|
|
|
border-bottom: 2px solid;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
.email_last_step_content {
|
|
|
|
|
|
margin-left: 1rem;
|
|
|
|
|
|
font-size: 2.2rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #030303;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
@media (max-width: 767px) {
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
margin-left: .5rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
.email_last_step_block_icon {
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
margin-right: 1rem;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.fi-br-arrow-left {
|
|
|
|
|
|
font-size: 2.5rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #030303;
|
|
|
|
|
|
transform: translateY(1rem);
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.login_submit_button {
|
|
|
|
|
|
height: 5rem;
|
|
|
|
|
|
background: #000;
|
|
|
|
|
|
border-radius: 2.5rem;
|
|
|
|
|
|
line-height: 5rem;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 1.8rem;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
transition: all 0.3s;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
height: 3.8rem;
|
|
|
|
|
|
font-size: 1.3rem;
|
|
|
|
|
|
line-height: 3.8rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
&:hover {
|
|
|
|
|
|
background: #3c3c3c;
|
|
|
|
|
|
}
|
|
|
|
|
|
&[state="2"] {
|
|
|
|
|
|
cursor: not-allowed;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.login_text {
|
|
|
|
|
|
font-size: 1.6rem;
|
|
|
|
|
|
margin-top: 4rem;
|
|
|
|
|
|
color: #151515;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: flex-end;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_password_text {
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_password_content {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translate(-50%, -50%);
|
2025-08-22 10:27:48 +08:00
|
|
|
|
width: 77rem;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
background: #ffffff;
|
|
|
|
|
|
box-shadow: -0.3rem 2rem 5.9rem 0px rgba(200, 200, 200, 0.3);
|
|
|
|
|
|
border-radius: 1rem;
|
|
|
|
|
|
padding: 3rem 6rem 6.5rem;
|
|
|
|
|
|
box-sizing: border-box;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_password_content_block {
|
|
|
|
|
|
cursor: pointer;
|
2025-09-01 14:03:30 +08:00
|
|
|
|
font-size: 3.6rem;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 1.2rem;
|
|
|
|
|
|
> i {
|
|
|
|
|
|
margin-right: 2.8rem;
|
|
|
|
|
|
font-size: 2rem;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
width: 4.6rem;
|
|
|
|
|
|
height: 4.6rem;
|
|
|
|
|
|
border-radius: 1.2rem;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
border: 1px solid #D8DADC;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.fi-br-arrow-left {
|
|
|
|
|
|
font-size: 3.8rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #030303;
|
|
|
|
|
|
transform: translateY(1rem);
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
}
|
|
|
|
|
|
.forget_password_content_title {
|
|
|
|
|
|
font-size: 3.2rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #030303;
|
|
|
|
|
|
margin-left: 2rem;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_passored_form_content {
|
|
|
|
|
|
margin-top: 3.5rem;
|
2025-06-18 21:47:27 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_passored_form_title {
|
|
|
|
|
|
font-size: 2.4rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #030303;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_passored_form_input {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 5rem;
|
|
|
|
|
|
margin-top: 1rem;
|
|
|
|
|
|
border: 0.1rem solid #dfdfdf;
|
|
|
|
|
|
border-radius: 2.5rem;
|
|
|
|
|
|
padding-left: 2.1rem;
|
|
|
|
|
|
line-height: 5rem;
|
|
|
|
|
|
font-size: 1.4rem;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
outline: none;
|
|
|
|
|
|
|
|
|
|
|
|
&::placeholder {
|
|
|
|
|
|
color: #a5b0c2;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_verif_code_des {
|
|
|
|
|
|
font-size: 2.4rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #030303;
|
|
|
|
|
|
margin-top: 3.5rem;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.forget_submit_button {
|
|
|
|
|
|
height: 5rem;
|
|
|
|
|
|
background: #000;
|
|
|
|
|
|
border-radius: 2.5rem;
|
|
|
|
|
|
line-height: 5rem;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 1.8rem;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.marign_top20 {
|
|
|
|
|
|
margin-top: 2rem;
|
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.marign_top22 {
|
|
|
|
|
|
margin-top: 2.2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.marign_top30 {
|
2025-08-22 10:27:48 +08:00
|
|
|
|
margin-top: 2.7rem;
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
margin-top: 1.5rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
.marign_top40 {
|
|
|
|
|
|
margin-top: 4rem;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
margin-top: 2rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
.thirdPartyLogin {
|
|
|
|
|
|
display: flex;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
// flex-direction: column;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
> div {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
margin-right: 1rem;
|
2025-08-22 10:27:48 +08:00
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
> .mask {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
z-index: 2;
|
2024-06-17 09:39:01 +08:00
|
|
|
|
cursor: pointer;
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
.tip_content {
|
|
|
|
|
|
font-size: 1.3rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #000;
|
|
|
|
|
|
cursor: pointer;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
@media (max-width: 767px) {
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.email_last_step_des {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
margin-top: 4rem;
|
|
|
|
|
|
margin-bottom: 2rem;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
@media (max-width: 767px) {
|
|
|
|
|
|
margin-top: 2rem;
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.sent_email_content {
|
|
|
|
|
|
font-size: 1.8rem;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #a5b0c2;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
@media (max-width: 767px) {
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
|
2025-06-19 10:21:17 +08:00
|
|
|
|
.email_tip_content {
|
|
|
|
|
|
font-size: 1.4rem;
|
|
|
|
|
|
color: #030303;
|
2026-01-14 16:56:39 +08:00
|
|
|
|
@media (max-width: 767px) {
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
}
|
2024-06-17 09:39:01 +08:00
|
|
|
|
}
|
2025-06-19 10:21:17 +08:00
|
|
|
|
</style>
|