|
@@ -0,0 +1,551 @@
|
|
|
+<script setup>
|
|
|
+import {ref,reactive} from 'vue'
|
|
|
+import {ElMessageBox,ElMessage} from 'element-plus'
|
|
|
+import { useRouter } from 'vue-router';
|
|
|
+import {CaretBottom} from '@element-plus/icons-vue'
|
|
|
+
|
|
|
+ const router = useRouter()
|
|
|
+ const loginFormRef=ref(null)
|
|
|
+
|
|
|
+ const isMobile=ref(window.innerWidth>768?false:true)
|
|
|
+
|
|
|
+ const loginForm=reactive({
|
|
|
+ email:'',
|
|
|
+ phone:'',
|
|
|
+ phonePre:'+86',
|
|
|
+ password:'',
|
|
|
+ })
|
|
|
+ const loginFormRules=reactive({
|
|
|
+ email:[{required: true, message:'邮箱不能为空', trigger: 'blur'},
|
|
|
+ {type:'email',message:'邮箱格式不正确', trigger: 'blur'}],
|
|
|
+ phone:[{required: true, message:'手机号不能为空', trigger: 'blur'},
|
|
|
+ {validator:(rule,value,callback)=>{
|
|
|
+ if(!Number(value) || value.indexOf('.')!=-1){
|
|
|
+ callback(new Error('必须都为数字'))
|
|
|
+ }else{
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }, trigger: 'blur'}],
|
|
|
+ password:{required: true, message:'密码不能为空', trigger: 'blur'}
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ const copyEmail=()=>{
|
|
|
+ if (navigator.clipboard && window.isSecureContext) {
|
|
|
+ // navigator clipboard 向剪贴板写文本
|
|
|
+ navigator.clipboard.writeText('xxxxxxxxxxxxx@qq.com').then(() => {
|
|
|
+ ElMessage.success('复制成功')
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ const input = document.createElement('input');
|
|
|
+ input.setAttribute('readonly', 'readonly');
|
|
|
+ input.setAttribute('value', 'xxxxxxxxxxxxx@qq.com');
|
|
|
+ document.body.appendChild(input);
|
|
|
+ input.setSelectionRange(0, input.value.length);
|
|
|
+ input.select();
|
|
|
+ document.execCommand('copy');
|
|
|
+ document.body.removeChild(input);
|
|
|
+ ElMessage.success('复制成功')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log();
|
|
|
+ const login=()=>{
|
|
|
+ loginFormRef.value.validate(valid=>{
|
|
|
+ if(valid){
|
|
|
+ //TODO 登录接口对接
|
|
|
+ // if(!loginForm.phonePre && loginType.value==2){
|
|
|
+ // ElMessage.error('请选择手机区号')
|
|
|
+ // }
|
|
|
+ // console.log(loginForm);
|
|
|
+ // if(Math.random()>0.75){
|
|
|
+ // ElMessageBox.confirm("您的账号未曾注册,请注册后登录", '提示',
|
|
|
+ // {
|
|
|
+ // customClass:isMobile.value?'mobile-message-confirm':'PC-message-confirm',
|
|
|
+ // confirmButtonClass:isMobile.value?'mobile-confirm-button':'',
|
|
|
+ // confirmButtonText: '立即注册',
|
|
|
+ // showCancelButton:false,
|
|
|
+ // }).then(res=>{
|
|
|
+ // router.push('/register')
|
|
|
+ // }).catch(()=>{})
|
|
|
+ // }else if(Math.random()>0.5){
|
|
|
+ // ElMessageBox.confirm("您的手机号未绑定账号,请检查","提示",
|
|
|
+ // {
|
|
|
+ // customClass:isMobile.value?'mobile-message-confirm':'PC-message-confirm',
|
|
|
+ // confirmButtonClass:isMobile.value?'mobile-confirm-button':'',
|
|
|
+ // confirmButtonText: '知道了',
|
|
|
+ // showCancelButton:false,
|
|
|
+ // }).then(res=>{
|
|
|
+ // console.log('您的手机号未绑定账号,请检查');
|
|
|
+ // }).catch(()=>{})
|
|
|
+ // }else if(Math.random()>0.25){
|
|
|
+ // ElMessage.error('密码错误,请检查')
|
|
|
+ // }else if(Math.random()>0.2){
|
|
|
+ //TODO 登录成功,跳转
|
|
|
+ localStorage.setItem('yben_token','FDSAFWRFEGGREGEe1')
|
|
|
+ let redirectPath=sessionStorage.getItem('login_redirect') || '/'
|
|
|
+ sessionStorage.removeItem('login_redirect')
|
|
|
+ router.replace(redirectPath)
|
|
|
+ // }else{
|
|
|
+ // ElMessageBox.confirm("您的报告试用权限已超一个月,如需要延长试用期或其他帮助,请联系我们:XXXXXXXXXXXXXXXXXX","提示",
|
|
|
+ // {
|
|
|
+ // customClass:isMobile.value?'mobile-message-confirm':'PC-message-confirm',
|
|
|
+ // confirmButtonClass:isMobile.value?'mobile-confirm-button':'',
|
|
|
+ // confirmButtonText: '复制邮箱',
|
|
|
+ // showCancelButton:false,
|
|
|
+ // }).then(res=>{
|
|
|
+ // copyEmail()
|
|
|
+ // }).catch(()=>{})
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 去注册页
|
|
|
+ const registerPageGo=()=>{
|
|
|
+ let {href} = router.resolve("/register");
|
|
|
+ window.open(href,'_blank');
|
|
|
+ }
|
|
|
+ const psdMissingPageGo=()=>{
|
|
|
+ let {href} = router.resolve("/passwordMissing");
|
|
|
+ window.open(href,'_blank');
|
|
|
+ }
|
|
|
+ // 登录方式 1-邮箱 2-手机号
|
|
|
+ const loginType=ref(1)
|
|
|
+ // 操作方式 1-登录 2-注册
|
|
|
+ const operationType=ref(1)
|
|
|
+ const changeLoginType=(type)=>{
|
|
|
+ if(type == loginType.value) return
|
|
|
+ loginType.value=type
|
|
|
+ }
|
|
|
+ const changeOperationType=(type)=>{
|
|
|
+ if(type == operationType.value) return
|
|
|
+ operationType.value=type
|
|
|
+ }
|
|
|
+
|
|
|
+ // --------------------------------------------------移动端 - 注册
|
|
|
+ // 第几步
|
|
|
+ const step=ref(1)
|
|
|
+
|
|
|
+ const registerForm=reactive({
|
|
|
+ userName:'',
|
|
|
+ companyName:'',
|
|
|
+ email:'',
|
|
|
+ verificationCode:'',
|
|
|
+ password:'',
|
|
|
+ passwordConfirm:''
|
|
|
+ })
|
|
|
+ const registerFormRef=ref(null)
|
|
|
+ const registerFormRules=reactive({
|
|
|
+ userName:{required: true, message:'姓名不能为空', trigger: 'blur'},
|
|
|
+ companyName:{required: true, message:'公司名称不能为空', trigger: 'blur'},
|
|
|
+ email:[{required: true, message:'邮箱不能为空', trigger: 'blur'},
|
|
|
+ {type:'email',message:'邮箱格式不正确', trigger: 'blur'}],
|
|
|
+ verificationCode:{required: true, message:'邮箱验证码不能为空', trigger: 'blur'},
|
|
|
+ password:{required: true, message:'密码不能为空', trigger: 'blur'},
|
|
|
+ passwordConfirm:[{required: true, message:'密码不能为空', trigger: 'blur'},
|
|
|
+ {validator:(rule,value,callback)=>{
|
|
|
+ if(registerForm.passwordConfirm!==registerForm.password){
|
|
|
+ callback(new Error('两次密码不一致'))
|
|
|
+ }else{
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }, trigger: 'blur'}]
|
|
|
+ })
|
|
|
+
|
|
|
+ let codeTimer=null
|
|
|
+ const codeInfo=reactive({
|
|
|
+ timeout:60,// 秒
|
|
|
+ isRequesting:false
|
|
|
+ })
|
|
|
+
|
|
|
+ const sendVerCode=()=>{
|
|
|
+ codeInfo.isRequesting=true
|
|
|
+ codeInfo.timeout--
|
|
|
+ codeTimer=setInterval(()=>{
|
|
|
+ if(codeInfo.timeout==1){
|
|
|
+ codeInfo.isRequesting=false
|
|
|
+ codeInfo.timeout=60
|
|
|
+ codeTimer=null
|
|
|
+ }
|
|
|
+ codeInfo.timeout--
|
|
|
+ },1000)
|
|
|
+ // TODO 发送验证码
|
|
|
+ ElMessage.success('已发送验证码')
|
|
|
+ }
|
|
|
+
|
|
|
+ const register=()=>{
|
|
|
+ registerFormRef.value.validate(valid=>{
|
|
|
+ if(valid){
|
|
|
+ if(step.value==1){
|
|
|
+ // 进入下一步
|
|
|
+ step.value=2
|
|
|
+ return
|
|
|
+ }
|
|
|
+ console.log(registerForm);
|
|
|
+ // if(Math.random()>0.75){
|
|
|
+ // ElMessageBox.confirm("您的邮箱已注册,请直接登录","提示",
|
|
|
+ // {
|
|
|
+ // customClass:'mobile-message-confirm',
|
|
|
+ // confirmButtonClass:'mobile-confirm-button',
|
|
|
+ // confirmButtonText: '立即登录',
|
|
|
+ // showCancelButton:false,
|
|
|
+ // }).then(res=>{
|
|
|
+ // router.push('/login')
|
|
|
+ // }).catch(()=>{})
|
|
|
+ // }else if(Math.random()>0.25){
|
|
|
+ // //TODO 注册成功,跳转
|
|
|
+ sessionStorage.setItem('transitionPageMessage','register')
|
|
|
+ router.replace('/transitionPage')
|
|
|
+ // }else{
|
|
|
+ // ElMessageBox.confirm("您的报告试用权限已超一个月,如需要延长试用期或其他帮助,请联系我们:XXXXXXXXXXXXXXXXXX","提示",
|
|
|
+ // {
|
|
|
+ // customClass:'mobile-message-confirm',
|
|
|
+ // confirmButtonClass:'mobile-confirm-button',
|
|
|
+ // confirmButtonText: '复制邮箱',
|
|
|
+ // showCancelButton:false,
|
|
|
+ // }).then(res=>{
|
|
|
+ // copyEmail()
|
|
|
+ // }).catch(()=>{})
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+</script>
|
|
|
+<template>
|
|
|
+ <div class="login-container" id="login-container">
|
|
|
+ <!-- PC端 -->
|
|
|
+ <div id="PC-part">
|
|
|
+ <div class="login_background_image">
|
|
|
+ </div>
|
|
|
+ <div class="login-container-main">
|
|
|
+ <div class="login-container-right">
|
|
|
+ <div class="login-container-header">
|
|
|
+ <span>HORIZONINSIGHTS</span>
|
|
|
+ </div>
|
|
|
+ <div class="login-container-body">
|
|
|
+ <div class="login-type-tab">
|
|
|
+ <span :class="loginType==1?'active-tab':''" @click="changeLoginType(1)">邮箱登录</span>
|
|
|
+ <div class="tab-split"></div>
|
|
|
+ <span :class="loginType==2?'active-tab':''" @click="changeLoginType(2)">手机号登录</span>
|
|
|
+ </div>
|
|
|
+ <el-form :model="loginForm" class="login-form" :rules="loginFormRules" ref="loginFormRef">
|
|
|
+ <el-form-item prop="email" v-if="loginType==1">
|
|
|
+ <el-input v-model.trim="loginForm.email" size="large" placeholder="请输入邮箱" style="width: 360px;"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="phone" v-else >
|
|
|
+ <div class="phone-item">
|
|
|
+ <el-select v-model="loginForm.phonePre" style="max-width: 90px;margin-right: 10px;" placeholder="请选择" size="large">
|
|
|
+ <el-option label="+86" value="+86" />
|
|
|
+ <el-option label="101" value="101" />
|
|
|
+ <el-option label="3" value="3" />
|
|
|
+ </el-select>
|
|
|
+ <el-input v-model.trim="loginForm.phone" style="flex-grow: 1;" placeholder="请输入手机号" size="large">
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="password" style="width: 360px;">
|
|
|
+ <el-input v-model="loginForm.password" size="large" type="password" placeholder="请输入密码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div class="register-message-row">
|
|
|
+ <div class="register-message">
|
|
|
+ 还没有账号?<span @click="registerPageGo">去注册</span>
|
|
|
+ </div>
|
|
|
+ <div class="password-miss" @click="psdMissingPageGo">
|
|
|
+ 忘记密码?
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-button class="submit-button" type="primary" size="large" @click="login">立即登录</el-button>
|
|
|
+ <div class="login-hint">若有任何问题,请发邮件至xxxxxxxxxx</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 移动端 -->
|
|
|
+ <div id="mobile-part">
|
|
|
+ <div class="fixed-header">
|
|
|
+ <span>
|
|
|
+ HORIZONINSIGHTS
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div class="verification-body">
|
|
|
+ <div class="login-type-tab" v-if="step==1 || operationType==1">
|
|
|
+ <span :class="operationType==1?'active-tab':''" @click="changeOperationType(1)">登录</span>
|
|
|
+ <div class="tab-split"></div>
|
|
|
+ <span :class="operationType==2?'active-tab':''" @click="changeOperationType(2)">注册</span>
|
|
|
+ </div>
|
|
|
+ <div class="register-psd-hint" v-else>
|
|
|
+ 请设置密码
|
|
|
+ </div>
|
|
|
+ <!-- 登录 -->
|
|
|
+ <div class="mobile-login-box" v-if="operationType==1">
|
|
|
+ <el-form :model="loginForm" label-width="55px" label-position="left" id="mobile-form-field" :rules="loginFormRules"
|
|
|
+ ref="loginFormRef" hide-required-asterisk>
|
|
|
+ <el-form-item prop="email" v-if="loginType==1" label="邮箱" size="large" >
|
|
|
+ <el-input v-model.trim="loginForm.email" size="large" placeholder="请输入邮箱"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="phone" v-else >
|
|
|
+ <template #label>
|
|
|
+ <el-select v-model="loginForm.phonePre" :suffix-icon="CaretBottom"
|
|
|
+ style="max-width: 55px;" placeholder="请选择" size="large">
|
|
|
+ <el-option label="+886" value="+86" />
|
|
|
+ <el-option label="101" value="101" />
|
|
|
+ <el-option label="3" value="3" />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ <el-input v-model.trim="loginForm.phone" style="flex-grow: 1;" placeholder="请输入手机号" size="large"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="password" label="密码" size="large">
|
|
|
+ <el-input v-model="loginForm.password" size="large" type="password" placeholder="请输入密码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div class="mobile-login-type-change">
|
|
|
+ <span @click="changeLoginType(loginType==1?2:1)">切换至{{ loginType==1?"手机号码":"邮箱" }}登录</span>
|
|
|
+ <span @click="psdMissingPageGo">忘记密码?</span>
|
|
|
+ </div>
|
|
|
+ <el-button type="primary" class="submit-button" @click="login" size="large">立即登录</el-button>
|
|
|
+ <div class="mobile-login-hint">若有任何问题,请发邮件至xxxxxxxxxx</div>
|
|
|
+ </div>
|
|
|
+ <!-- 注册 -->
|
|
|
+ <div class="mobile-register-box" v-else>
|
|
|
+ <el-form :model="registerForm" label-width="55px" label-position="left" id="mobile-form-field"
|
|
|
+ :rules="registerFormRules" ref="registerFormRef" hide-required-asterisk>
|
|
|
+ <el-form-item prop="userName" label="姓名" size="large" v-if="step==1">
|
|
|
+ <el-input v-model.trim="registerForm.userName" size="large" placeholder="请输入姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="companyName" label="公司" size="large" v-if="step==1">
|
|
|
+ <el-input v-model="registerForm.companyName" size="large" placeholder="请输入公司名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="email" label="邮箱" size="large" v-if="step==1">
|
|
|
+ <el-input v-model="registerForm.email" size="large" placeholder="请输入邮箱">
|
|
|
+ <template #suffix>
|
|
|
+ <span style=" color: var(--el-color-primary);cursor: pointer;white-space: nowrap;"
|
|
|
+ @click="sendVerCode" v-if="!codeInfo.isRequesting">获取验证码</span>
|
|
|
+ <span style=" color: #999999;white-space: nowrap;" v-else>{{ codeInfo.timeout }}s后再获取</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="verificationCode" label="验证码" size="large" v-if="step==1">
|
|
|
+ <el-input v-model="registerForm.verificationCode" size="large" placeholder="请输入验证码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="password" label="密码" size="large" v-if="step==2">
|
|
|
+ <el-input v-model="registerForm.password" size="large" type="password" placeholder="请输入密码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="passwordConfirm" style="margin-bottom: 0;" label="密码" size="large" v-if="step==2">
|
|
|
+ <el-input v-model="registerForm.passwordConfirm" size="large" type="password" placeholder="请再次输入密码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-button type="primary" class="submit-button" @click="register" size="large" v-if="step==1">下一步</el-button>
|
|
|
+ <el-button type="primary" class="submit-button" size="large" v-if="step==2" @click="register">提交信息</el-button>
|
|
|
+ <div class="mobile-login-hint">若有任何问题,请发邮件至xxxxxxxxxx</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .login-container{
|
|
|
+ .login-type-tab{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 36px;
|
|
|
+ .tab-split{
|
|
|
+ height: 18px;
|
|
|
+ width: 1px;
|
|
|
+ background-color: #1856A7;
|
|
|
+ margin: 0 20px;
|
|
|
+ }
|
|
|
+ span{
|
|
|
+ display: inline-block;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 18px;
|
|
|
+ line-height: 25px;
|
|
|
+ color: #999999;
|
|
|
+ }
|
|
|
+ .active-tab{
|
|
|
+ color: #1856A7;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .submit-button{
|
|
|
+ margin-top: 26px;
|
|
|
+ width: 100%;
|
|
|
+ background-color: #1856A7;
|
|
|
+ }
|
|
|
+ #PC-part{
|
|
|
+ width: 100%;
|
|
|
+ height:100vh;
|
|
|
+ .login_background_image{
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ height: 100vh;
|
|
|
+ width: 100vw;
|
|
|
+ background-color: rgba(24, 86, 167, 0.2);
|
|
|
+ z-index: -1;
|
|
|
+ background-image: url('@/assets/login_bci.png');
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-size: cover;
|
|
|
+ }
|
|
|
+ .login-container-main{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+
|
|
|
+ .login-container-right{
|
|
|
+ background-color: white;
|
|
|
+ width: 600px;
|
|
|
+ height: 500px;
|
|
|
+ opacity: 0.95;
|
|
|
+ border: 1px solid #DCDFE6;
|
|
|
+ border-radius: 8px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ .login-container-header{
|
|
|
+ height: 68px;
|
|
|
+ border-bottom: solid 1px #DCDFE6;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 100%;
|
|
|
+ span{
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #1856A7;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .login-container-body{
|
|
|
+ width: 360px;
|
|
|
+ padding-top: 45px;
|
|
|
+ .login-form{
|
|
|
+ .phone-item{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .register-message-row{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ .register-message{
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333333;
|
|
|
+ span{
|
|
|
+ color: #1856A7;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .password-miss{
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333333;;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .login-hint{
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 20px;
|
|
|
+ color: #999999;
|
|
|
+ margin-top: 26px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #mobile-part{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 移动端样式
|
|
|
+ @media screen and (max-width: 768px) {
|
|
|
+ .login-container{
|
|
|
+ #PC-part{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ #mobile-part{
|
|
|
+ background-color: white;
|
|
|
+ display:block ;
|
|
|
+ width: 100%;
|
|
|
+ height:100%;
|
|
|
+ min-height: 100%;
|
|
|
+ .verification-body{
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ padding: 100px 30px 30px;
|
|
|
+ .login-type-tab{
|
|
|
+ margin-bottom: 30px;
|
|
|
+ .tab-split{
|
|
|
+ height: 16px;
|
|
|
+ width: 2px;
|
|
|
+ background-color: #1856A7;
|
|
|
+ margin: 0 20px;
|
|
|
+ }
|
|
|
+ span{
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .register-psd-hint{
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 22px;
|
|
|
+ color: #333333;
|
|
|
+ margin-bottom: 40px;
|
|
|
+ }
|
|
|
+ .mobile-login-box{
|
|
|
+ .mobile-login-type-change{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ span{
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 17px;
|
|
|
+ color: #1856A7;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mobile-login-hint{
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 17px;
|
|
|
+ color: #999999;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mobile-register-box{
|
|
|
+ .mobile-login-type-change{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ span{
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 17px;
|
|
|
+ color: #1856A7;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mobile-login-hint{
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 17px;
|
|
|
+ color: #999999;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|
|
|
+<style lang="scss">
|
|
|
+@media screen and (max-width: 768px) {
|
|
|
+ .el-form-item__error{
|
|
|
+ left: -55px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|