<template>
|
<div class="login_page">
|
<!-- <headers :mess="loginWay" />
|
<div class="logins_content">
|
<div class="login_title animated slideInDown">
|
<span>{{ $t('hj18') }}</span>
|
</div>
|
<div class="login_forms">
|
<div class="top_forms">
|
<el-input :placeholder="placeholder" size="medium" v-model="phone" clearable @input="handleInput()" maxlength="11">
|
</el-input>
|
|
<el-input style="margin-top: 0.46rem;" show-password :placeholder="$t('hj19')" size="medium"
|
v-model="userPassword" @input="handleInput()">
|
</el-input>
|
<el-input style="margin-top: 0.46rem;" show-password :placeholder="$t('hj20')" size="medium" v-model="rePassword"
|
@input="handleInput()">
|
</el-input>
|
<el-input style="margin-top: 0.46rem;" :placeholder="$t('hj21')" size="medium" v-model="userName" clearable
|
@input="handleInput()">
|
</el-input>
|
</div>
|
<div class="bottom_btns" :class="btnClass ? 'on' : 'off'">
|
<div class="top_btn " @click="gook" :class="dengl ? 'animated pulse' : ''">
|
<span>{{ $t('hj22') }}</span>
|
</div>
|
|
<div class="mes">
|
<span>{{ $t('hj23') }}?</span>
|
<span @click="$router.push('/login')" style="color: rgb(54,124,248);"> {{ $t('hj24') }} ></span>
|
</div>
|
</div>
|
</div>
|
</div>
|
<el-alert v-show="alertShow" :closable="closable" :title="texts" :type="elType" center></el-alert> -->
|
|
<div class="header-section">
|
<div class="back-btn" @click="$router.go(-1)"></div>
|
<div class="header-content">
|
<h1 class="page-title">{{ $t('register_accountOpening') }}</h1>
|
<div class="features">
|
<div class="feature-item">
|
<span class="check-icon">✓</span>
|
<span>{{ $t('register_zeroCommissionOpening') }}</span>
|
</div>
|
<div class="feature-item">
|
<span class="check-icon">✓</span>
|
<span>{{ $t('register_fastTrading') }}</span>
|
</div>
|
<div class="feature-item">
|
<span class="check-icon">✓</span>
|
<span>{{ $t('register_secureReliable') }}</span>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="form-container">
|
<div class="form-card">
|
<div class="form-field">
|
<label class="field-label">{{ $t('login_phoneNumber') }}</label>
|
<div class="input-wrapper">
|
<el-select v-model="areaCode" :placeholder="$t('register_selectAreaCode')" class="area-select">
|
<el-option label="86" :value="86"> </el-option>
|
</el-select>
|
<input :placeholder="$t('jy311')" v-model="phone" class="field-input" />
|
</div>
|
</div>
|
|
<div class="form-field">
|
<label class="field-label">{{ $t('login_loginPassword') }}</label>
|
<input
|
:placeholder="$t('hj30')"
|
v-model="userPassword"
|
type="password"
|
class="field-input"
|
/>
|
</div>
|
|
<div class="form-field">
|
<label class="field-label">{{ $t('register_confirmPassword') }}</label>
|
<input
|
:placeholder="$t('jy312')"
|
v-model="rePassword"
|
type="password"
|
class="field-input"
|
/>
|
</div>
|
|
<div class="form-field">
|
<label class="field-label">{{ $t('register_inviteCode') }}</label>
|
<input :placeholder="$t('jy313')" v-model="userName" class="field-input" />
|
</div>
|
|
<div class="agreement">
|
<input type="checkbox" id="agreement" v-model="agree" />
|
<label for="agreement">
|
{{ $t('login_agreeToTerms') }} <span class="agreement-link" @click.stop="viewAgreement">{{ $t('login_userAgreement') }}</span>
|
</label>
|
</div>
|
|
<div class="loginBtn" v-loading="loginBtn" @click="gook">
|
{{ $t('register_openAccountNow') }}
|
</div>
|
|
<div class="login-link">
|
<span @click="$router.push('/login')">{{ $t('register_haveAccountLoginNow') }}</span>
|
</div>
|
|
<div class="features-section">
|
<div class="feature-item">
|
<div class="feature-icon">
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
|
<polyline points="14 2 14 8 20 8"></polyline>
|
<line x1="16" y1="13" x2="8" y2="13"></line>
|
<line x1="16" y1="17" x2="8" y2="17"></line>
|
</svg>
|
</div>
|
<div class="feature-title">{{ $t('register_fastAccountOpening') }}</div>
|
<div class="feature-desc">{{ $t('register_completedIn3Minutes') }}</div>
|
</div>
|
|
<div class="feature-item">
|
<div class="feature-icon">
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
|
</svg>
|
</div>
|
<div class="feature-title">{{ $t('register_bankLevelSecurity') }}</div>
|
<div class="feature-desc">{{ $t('register_fundProtection') }}</div>
|
</div>
|
|
<div class="feature-item">
|
<div class="feature-icon">
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
|
</svg>
|
</div>
|
<div class="feature-title">{{ $t('register_professionalService') }}</div>
|
<div class="feature-desc">{{ $t('register_investmentAdvisor') }}</div>
|
</div>
|
</div>
|
</div>
|
|
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import headers from "./components/header.vue";
|
import Logo from "@/assets/img/LOGO2.png";
|
import { isNull, isPhone, pwdReg } from "@/utils/utils";
|
import { Toast } from "mint-ui";
|
import * as api from "@/axios/api";
|
export default {
|
components: {
|
headers
|
},
|
name: "newRegister",
|
data() {
|
return {
|
verification: this.$t("hj25"),
|
loginWay: this.$t("hj26"),
|
loginWay: this.$t("hj26"),
|
placeholder: this.$t("hj27"),
|
Logo,
|
phone: "",
|
areaCode: 86,
|
userName: "",
|
code: "",
|
userPassword: "",
|
btnClass: false,
|
codeshow: true,
|
count: "", // 倒计时
|
clickFalg: 0, // 点击次数
|
rePassword: "",
|
agree: false,
|
dengl: false,
|
alertShow: false,
|
closable: false,
|
loginBtn: false,
|
texts: "",
|
elType: "warning",
|
codeNum: "",
|
countNum: "",
|
time: null,
|
showTime: false,
|
yzmCode: ""
|
};
|
},
|
mounted() {},
|
methods: {
|
setTime() {
|
let TIME_COUNT = 60;
|
if (!this.timer) {
|
this.countNum = TIME_COUNT;
|
this.showTime = true;
|
this.timer = setInterval(() => {
|
if (this.countNum > 0 && this.countNum <= TIME_COUNT) {
|
this.countNum--;
|
} else {
|
this.showTime = false;
|
clearInterval(this.timer);
|
this.timer = null;
|
}
|
}, 1000);
|
}
|
},
|
viewAgreement() {
|
// 跳转到用户协议页面
|
this.$router.push('/about?e=2');
|
},
|
getCodeRandom(){
|
const code = Math.floor(1000 + Math.random() * 9000).toString();
|
this.yzmCode = code;
|
this.setTime();
|
},
|
async send() {
|
// 手机号码验证
|
const phoneRegex = /^1[3-9]\d{9}$/;
|
if (isNull(this.phone)) {
|
return Toast(this.$t("hj29"));
|
} else if(!phoneRegex.test(this.phone)){
|
return Toast(this.$t("hj28"));
|
}
|
let data = await api.sendRegSms({
|
phoneNum: this.phone
|
});
|
if (data.status === 0) {
|
Toast(this.$t('register_verificationCodeSentSuccess'))
|
this.setTime();
|
} else {
|
return Toast(data.msg);
|
}
|
},
|
handleInput() {
|
if (
|
this.userPassword !== "" &&
|
this.phone !== "" &&
|
this.userPassword == this.rePassword &&
|
this.userName != ""
|
) {
|
this.btnClass = true;
|
} else {
|
this.btnClass = false;
|
}
|
},
|
checkCodeBox() {
|
if (isNull(this.phone) || this.phone.length < 8) {
|
// Toast('请输入正确的手机号')
|
// this.texts = this.$t('hj28')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj28"));
|
} else {
|
this.checkPhone();
|
}
|
},
|
async is_login() {
|
//获取localStorage中的token
|
let token = localStorage.getItem("USERTOEKN");
|
if (token) {
|
this.$router.push("/home");
|
}
|
},
|
|
async getcode() {
|
// if(!this.checkCode()){
|
// // 验证图形码是否正确
|
// Toast('请输入正确图形验证码')
|
// return
|
// }
|
// 获取验证码
|
if (this.clickFalg !== 0) {
|
this.clickFalg = 0;
|
return;
|
}
|
this.clickFalg++;
|
// var reg = 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/
|
let reg = /^\d{8}(\d{3}){0,1}$/; // 手机号码验证
|
if (isNull(this.phone)) {
|
// this.texts = this.$t('hj29')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj29"));
|
} else {
|
if (!reg.test(this.phone)) {
|
// this.texts = this.$t('hj28')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj28"));
|
} else {
|
// var sign = this.$md5(this.phone+'W&WzL42v').toUpperCase()
|
let result = await api.getCode({ phoneNum: this.phone });
|
if (result.status === 0) {
|
const TIME_COUNT = 60;
|
if (!this.timer) {
|
this.count = TIME_COUNT;
|
this.codeshow = false;
|
this.clickFalg = 0;
|
this.timer = setInterval(() => {
|
if (this.count > 0 && this.count <= TIME_COUNT) {
|
this.count--;
|
} else {
|
this.codeshow = true;
|
clearInterval(this.timer);
|
this.timer = null;
|
}
|
}, 1000);
|
} else {
|
Toast(result.msg);
|
// this.texts = result.msg
|
// this.elType = "success"
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// this.elType = "warning"
|
// }, 2000)
|
}
|
} else {
|
// this.texts = result.msg
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(result.msg);
|
}
|
}
|
}
|
},
|
async gook() {
|
this.dengl = true;
|
setTimeout(() => {
|
this.dengl = false;
|
}, 1000);
|
if (this.loginBtn) {
|
return;
|
}
|
this.loginBtn = true;
|
// 注册
|
// if (!this.agree) {
|
// Toast('需同意注册协议才能注册!')
|
// this.loginBtn = false;
|
// } else
|
if (isNull(this.phone) || !isPhone(this.phone)) {
|
// this.texts = this.$t('hj28')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj28"));
|
this.loginBtn = false;
|
} else if (isNull(this.yzmCode)) {
|
// this.texts = this.$t('hj30')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("jy459"));
|
this.loginBtn = false;
|
} else if (isNull(this.userPassword)) {
|
// this.texts = this.$t('hj30')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj30"));
|
this.loginBtn = false;
|
} else if (isNull(this.rePassword)) {
|
// this.texts = this.$t('hj31')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj31"));
|
this.loginBtn = false;
|
} else {
|
if (this.userPassword !== this.rePassword) {
|
// this.texts = this.$t('hj32')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj32"));
|
this.password = 0;
|
this.password2 = 0;
|
this.loginBtn = false;
|
} else if (!pwdReg(this.userPassword)) {
|
// this.texts = this.$t('hj19')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj19"));
|
this.loginBtn = false;
|
} else if (isNull(this.userName)) {
|
// this.texts = this.$t('hj33')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
Toast(this.$t("hj33"));
|
this.loginBtn = false;
|
} else {
|
let opts = {
|
// agentCode:'4023', // SR330001
|
phone: this.phone,
|
yzmCode: this.yzmCode,
|
userPwd: this.userPassword,
|
agentCode: this.userName
|
};
|
let data = await api.register(opts);
|
if (data.status === 0) {
|
// this.texts = this.$t('hj34')
|
// this.elType = "success"
|
// this.alertShow = true
|
Toast(this.$t("hj34"));
|
setTimeout(() => {
|
this.$router.push("/login");
|
// this.alertShow = false
|
// this.elType = "warning"
|
}, 1000);
|
this.loginBtn = false;
|
} else {
|
Toast(data.msg);
|
// this.texts = data.msg
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
this.loginBtn = false;
|
}
|
}
|
}
|
if (navigator.vibrate) {
|
// 支持
|
navigator.vibrate([55]);
|
}
|
// if (isNull(this.code)) {
|
// this.texts="请输入验证码"
|
// this.alertShow=true
|
// setTimeout(()=>{
|
// this.alertShow=false
|
// },2000)
|
// this.loginBtn = false;
|
// } else
|
},
|
isAgree() {
|
this.agree = !this.agree;
|
},
|
async checkPhone() {
|
// 先验证是否已经注册
|
let data = await api.checkPhone({ phoneNum: this.phone });
|
if (data.status === 0) {
|
// 如果用户已存在返回 0
|
Toast(this.$t("hj35"));
|
// this.texts = this.$t('hj35')
|
// this.alertShow = true
|
// setTimeout(() => {
|
// this.alertShow = false
|
// }, 2000)
|
this.$router.push("/login");
|
} else {
|
// this.dialogShow = false
|
// this.adminUrl = process.env.API_HOST
|
// if (this.adminUrl === undefined) {
|
// this.adminUrl = ''
|
// }
|
// this.gook()
|
this.getcode();
|
}
|
}
|
}
|
};
|
</script>
|
|
<style scoped lang="less">
|
.login_page {
|
position: relative;
|
background-image: url("~@/assets/imgRed/14.png");
|
background-size: cover;
|
background-position: center;
|
background-repeat: no-repeat;
|
width: 100%;
|
height: 100%;
|
overflow: hidden;
|
overflow-y: auto;
|
}
|
|
.logins_content {
|
width: 100%;
|
height: 9.7436rem;
|
margin-top: 0.4359rem;
|
padding: 0 0.4564rem;
|
|
.login_title {
|
width: 100%;
|
height: 2.0513rem;
|
display: flex;
|
|
align-items: center;
|
font-size: 0.7023rem;
|
color: #000;
|
font-weight: 600 !important;
|
|
> span {
|
font-weight: 600 !important;
|
}
|
}
|
|
.login_forms {
|
width: 100%;
|
height: auto;
|
margin-top: 0.35rem;
|
|
.top_forms {
|
width: 100%;
|
height: auto;
|
display: flex;
|
align-items: center;
|
flex-wrap: wrap;
|
|
.user_name,
|
.password {
|
width: 100%;
|
height: 35%;
|
background: rgb(246, 246, 247);
|
// background: #1e1e1e;
|
border-radius: 0.3564rem;
|
|
> input {
|
width: 100%;
|
height: 100%;
|
padding-left: 0.3564rem;
|
font-size: 0.4615rem;
|
}
|
}
|
}
|
|
/deep/.el-input__inner {
|
width: 100%;
|
height: 1.45rem !important;
|
background-color: rgb(246, 246, 247) !important;
|
// background: #1e1e1e;
|
border-radius: 0.3564rem;
|
font-size: 0.45rem !important;
|
}
|
|
.bottom_btns {
|
width: 100%;
|
height: 3.3333rem;
|
margin-top: 0.8528rem;
|
|
.top_btn {
|
width: 100%;
|
height: 1.25rem;
|
border-radius: 0.3564rem;
|
background: rgb(154, 197, 250);
|
color: #fff;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
font-size: 0.5128rem;
|
margin-top: 0.75rem;
|
|
> span {
|
font-weight: 530 !important;
|
}
|
}
|
|
.mes {
|
width: 100%;
|
height: 20%;
|
margin-top: 0.4rem;
|
display: flex;
|
justify-content: flex-end;
|
align-items: center;
|
font-size: 0.3846rem;
|
}
|
}
|
}
|
}
|
|
.login_bom {
|
position: absolute;
|
bottom: 2.6rem;
|
width: 100%;
|
height: 4rem;
|
padding: 0 2rem;
|
}
|
|
.line {
|
//分割线
|
width: 100%;
|
height: 0.3846rem;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
margin-top: 0.3846rem;
|
|
.left_line {
|
width: 20%;
|
height: 0.01rem;
|
background: #e5e5e5;
|
}
|
|
.center_line {
|
width: 50%;
|
height: 0.01rem;
|
background: #fff;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
|
> span {
|
font-size: 0.3046rem;
|
color: #000;
|
background-color: #fff;
|
}
|
}
|
|
.right_line {
|
width: 20%;
|
height: 0.01rem;
|
background: #e5e5e5;
|
}
|
}
|
|
.myzh {
|
width: calc(100% - 4rem);
|
position: absolute;
|
bottom: 0.01rem;
|
text-align: center;
|
|
.mes {
|
width: 100%;
|
height: 40%;
|
|
font-size: 0.3846rem;
|
}
|
}
|
|
.imgDemo {
|
display: flex;
|
justify-content: space-between;
|
position: relative;
|
transform: translateY(50%);
|
}
|
|
.appImg {
|
width: 1.4rem;
|
height: 1.4rem;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
background-color: rgb(246, 246, 247);
|
border-radius: 100%;
|
}
|
|
.appImg img {
|
width: 0.8rem;
|
height: 0.8rem;
|
}
|
|
.img_mess {
|
width: 100%;
|
height: 4.0513rem;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
|
.logo_content {
|
width: 3rem;
|
height: 3.5769rem;
|
|
> img {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
}
|
|
/deep/.el-alert {
|
width: 70% !important;
|
height: 1rem !important;
|
position: absolute !important;
|
top: 0 !important;
|
bottom: 0 !important;
|
left: 0 !important;
|
right: 0 !important;
|
margin: auto !important;
|
font-size: 0.3rem !important;
|
}
|
|
/deep/.el-alert__title {
|
font-size: 0.3rem !important;
|
}
|
|
/deep/el-input__suffix {
|
width: 1rem !important;
|
}
|
|
/deep/.el-input__suffix-inner {
|
width: 1rem !important;
|
}
|
|
/deep/.el-input__icon {
|
width: 1rem !important;
|
}
|
|
/deep/.el-icon-circle-close::before {
|
font-size: 0.5rem !important;
|
}
|
|
/deep/.el-input__clear {
|
font-size: 0.5rem !important;
|
}
|
|
.on .top_btn {
|
background: #2d8cf0 !important;
|
}
|
|
.agree-model {
|
margin-top: 0.2rem;
|
}
|
|
.header-section {
|
width: 100%;
|
position: relative;
|
margin-bottom: 0.5rem;
|
}
|
|
.back-btn {
|
position: absolute;
|
left: 0.5rem;
|
top: 0.5rem;
|
width: 0.5rem;
|
height: 0.5rem;
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAVdJREFUSEut1usqBVEYxvH/c1MuRJJDkhwTEpIkJUlyCEk++CJJckpycw49Gs3Wa+y9Z82eNd/Xr5n38KwRNR7bE0APMK1OHdtTwAWQGZcdQbZngPMc+QImK0O2Z4GzgIxLuqoE2Z4DTgMyJuk6K08yZHseOAnIqKSbRo2TINsLwHFARiTdxkaVQrYXgaOADEu6K3a7LWR7CTjMD2XdaYq0rZHtFWA/Rz6BIUn3reau6RvZXgX28kMfOfLQbnj/QbbXgN380HuOPJZtwB/I9jqwE5ABSc9lyJ8a2d4AtgPSL+klBfmFbG8CWwHpk/SaivxAtjMgg7Inq0mvpLcqSHehTOvKpzU+oSvFDlj99gesOJCDkp7Kip+yIknT3XL7C0tbum9lMbIMHKQkQEqwJWVSKZTPWTElq0dt6GYxt6uHf8DqX0cBq39BBqz+lR2w+j8RAfv9rfkGqF24CUdT9E4AAAAASUVORK5CYII=)
|
no-repeat 50%;
|
background-size: 100%;
|
cursor: pointer;
|
z-index: 10;
|
}
|
|
.header-content {
|
padding-top: 1rem;
|
|
.page-title {
|
font-size: 0.65rem;
|
font-weight: 600;
|
color: #333;
|
margin: 0 0 0.5rem 0;
|
padding-left: 0.5rem;
|
}
|
|
.features {
|
display: flex;
|
flex-wrap: wrap;
|
gap: 0.3rem;
|
padding-left: 0.5rem;
|
|
.feature-item {
|
display: flex;
|
align-items: center;
|
gap: 0.2rem;
|
font-size: 0.28rem;
|
color: #666;
|
|
.check-icon {
|
width: 0.4rem;
|
height: 0.4rem;
|
border-radius: 50%;
|
background: #4CAF50;
|
color: #fff;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
font-size: 0.25rem;
|
font-weight: bold;
|
}
|
}
|
}
|
}
|
|
.form-container {
|
width: 100%;
|
margin-top: 100px;
|
}
|
|
.form-card {
|
background: #fff;
|
border-radius: 0.3rem;
|
padding: 30px 15px;
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
}
|
|
.form-field {
|
margin-bottom: 1rem;
|
|
.field-label {
|
display: block;
|
font-size: 0.32rem;
|
font-weight: 600;
|
color: #333;
|
margin-bottom: 0.3rem;
|
}
|
|
.input-wrapper {
|
display: flex;
|
align-items: center;
|
border: 1px solid #e0e0e0;
|
border-radius: 0.2rem;
|
overflow: hidden;
|
background: #F5F7FA;
|
|
.area-select {
|
width: 2rem;
|
border: none;
|
border-right: 1px solid #e0e0e0;
|
background: #F5F7FA;
|
|
/deep/ .el-input__inner {
|
border: none;
|
height: 1.3rem;
|
padding: 0 0.3rem;
|
font-size: 0.32rem;
|
background: #F5F7FA;
|
}
|
}
|
|
.field-input {
|
flex: 1;
|
border: none;
|
height: 1.3rem;
|
padding: 0 0.3rem;
|
font-size: 0.32rem;
|
background: #F5F7FA;
|
}
|
}
|
|
.field-input {
|
width: 100%;
|
height: 1.3rem;
|
border: 1px solid #e0e0e0;
|
border-radius: 0.2rem;
|
padding: 0 0.3rem;
|
font-size: 0.32rem;
|
background: #F5F7FA;
|
|
&:focus {
|
outline: none;
|
border-color: #1890ff;
|
}
|
}
|
}
|
|
.formDemo span {
|
width: 0.406rem;
|
height: 0.406rem;
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEAklEQVRYhbWXXWgcVRTHf2dmk1jjS4QK9qEKKamFYrDgixUfShKUipYiRgRL6iZtRUSpJpsvRCFN3V0CihY02fTDFmmKeVBTkIjBmvSh2Ddb1GLRllDMuxHzMXPkzkcy2WayOzb9s7Azd845//8998y5d4QE+PiUpubmeQHYi/A4yiaFeWAa4WdVRquqGH1znyyWG7VsAflB3S1CHtjmean3WxFF/ctfXKU90ybny4lrlTLY0TAhA0PaL8I3ZZCb/20ijOUKevTRpgslJ1jSID+onSIcXbJW/lYYVuUrV7lm26hCncAehTRwXyTykY609P5vAQNDukthHLAD8imF5vY2ubWafa6gm4ARhCeDIVWlMdMq38dxxC6BSb3CRxHyS7P/0hBHbtDRKrf+maMBuLQ0QeHD7U0/xk409kFuUBstYTwgn1tw2Np1SG7E2UfRP6gPpWx+U6gyw67S1NUq361mG5sBS3g+UnBflEtu0H1Abhif8F7huVie2CjCY2G1q1LWK1WEsYDcTGZHcgF+kwnFXE/K7irXI/4PJhag4ATOJgOJOmYgwAr9CWMlEQDMhLRiUZtUgG18lmXPJBcg/MRyh9uTVACmiAMofqxkAuDLSHttzg9rXbnc2ROe7Uuw1LJHEwtob5UpgctBgJQq5/oHtboUed+QVhtbz8cfutz1qkwlFmDguLzFcjHWp2wm88d1S5x99oRuSdlMAPUBuRPEiEXJ6s4V9B38bTjEvMJp4GsRfldfaK1leWv+ClAZvn6u0tmTluwdCfBmVtB2ET4wGdPIePGWHBlzA/Ko8FVR8jyQLehmEUxROWWSGziWxdYjx3VzqfhrZiBb0DeCs0B1DPlCcFURfe41L/9qVqGzZ798kkhAblgrgWNAKytndsVRzqoyYVn8cebcRa/BvLh35wMpm4cRdlkWLytsLxJaUHi9t0XmSwoIyM1G0hgJcg14+/ORyfNXx5/SYp8oHnn6ouxrfmK3wgBQF8mG2Y6fLRaxWg0UisiHLYv6TFrGSpEb/PrtTu3eL2PGB2E44tCocGrNDGQLmhbxBITk+UxaOkqRroW+k5ozfS0UotD2bosUbstA36e6UYRchPzM6ZHJzJ2QG/S2SEfQN8K4uZ6CbrxNQGUFh4H7A6Obiw6HrpSR8nKw6PCawk3PVKip8rmWBbx3TM3Z7WCkg3X3HJDZ9SA3eD8tsyZmZMEPZj7zOH0B997DMwo1Afl0VSUj60Ue4s8ZzqrLdHBbYziXBLjqV703YDFyOMG3Xbk42SmObfsTC86ZjUsCJDg0BhvLhfUmD+EqP4TLHHKGRVgbPrAsrt4tAY67Ira3rXsCFDb4sliwLf66WwIqUt7ZMNw/NgD8B2plfW1RGaDfAAAAAElFTkSuQmCC)
|
no-repeat 50%;
|
background-size: 100%;
|
margin-top: 0.431rem;
|
margin-left: 0.25346rem;
|
}
|
|
.formDemos {
|
display: flex;
|
height: 1.26923rem;
|
width: 100%;
|
background: #fff;
|
border: 1px solid #e0e0e0;
|
border-radius: 0.2rem;
|
position: relative;
|
margin-bottom: 0.4rem;
|
align-items: center;
|
}
|
.pwdIcon {
|
width: 0.406rem;
|
height: 0.406rem;
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADMklEQVRYha2WXYhMYRjHf88xu2uJ5EZJWiFFkq8LJYRSvpILRMQ2NheIlWXJd5F2JKTY3Qi5FeFKiciNC+Vjb2R9XOyVVqHFzJ7z6Mx5j52ZPWfmHTP/5nSa877P8/+/z9c5Qploa9fxjrADWK4wEQH16EZ4qMqVlib5Uo7HsgS0tes+RzgF1Gtordlf6O2XwtGWpKSqLiDVoacFWgk4fyHcVY+XPrkIcxHWKNQbTWdaknKoagJSHbpS4L4hf66waf/2/FCf7cim5rbCfPNoVUtSHlQs4NINddJp3gBTXeV1IsG85kbpi9p77poOcz1eADMQumprmL5ni3jF/DulBKTTLPDJNTj9zjhyH/sapc/12GWONTWdydoWRUkBnrLQFFz3gSZ5Vmp/a7CnO7StWIBCg6n2d6X2/rNR3prOaKhYgONQa1rth60AhJ8E3VFbsYC8Pi8TNnY2KQhQ5sy0FR3p9my7LhwiJBUm41/CaIVegY8aY537XGECMBqhF3jvX65H5+GkPC0pINWpR1FO5J5cB6auDXn8unCsdZucjBWQ6tSVKPeNQQ/CY4W+CsmHAYsRxqpfT8Kqw9sGJmQi7/hKs3HyKlHDor1b5TtVQNtNHZnp54kKM4Fm4J8AJ5+fOeZ+oVrkPvZvke8eXDDRmZO7VtgFI0zOv1aLPETWZ+B7RLyAnIKrNkSiWzOvBkLyoq8vgyOXtW74UF4YtfMONkq6RAQGd1KhgHCDzRCpr2MMwiyC000CukrZRPktLEJrSE6eXI8htuSFHJGjWMooAtuIRZFHCyiTHEvBcSIHdUG55NnOsQhB3EstEbHXKqQZl2+1NfT65BmPTxYmkQcclALbfB5rkh/9LlNcZcrx7VLyYyXkLtqGcZUahyNJsZ+YMYOoMAK/jYBR1o4tkePzdzEB74zKddOWPavaRG5Y8VJEWB9y5K7lpcBVrjvCbMdh9eb18x/JBr3jKf3ZRVPtGsqSwSmL+mYQIeEpa4El/n9HuBYr4HOPXpkwTpYCa3wDTwOj/yXPDqn8xN/70MPViK0DOH9LE38y7FZImu/BxP+SG/gR/AC019Vw8eBGCSLqA/gLhUArt4NKdJwAAAAASUVORK5CYII=)
|
no-repeat 50%;
|
background-size: 100%;
|
margin-top: 0.431rem;
|
margin-left: 0.25346rem;
|
}
|
.pwdIcons {
|
width: 0.406rem;
|
height: 0.406rem;
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAADIUlEQVRIia2WWYhPYRTAf2dMyFbWUvZ1SsmLrBMPiCwveCCRsjyIB548WGqiZEJNTBjCAw9keZks02SyxIMlKco6MpNJzYNi7Efn3nPHN9e9xvxzHv73+5/7fef3neU735V9RxUTTX7Ex/HQpERhFTAHYShKd4UmhPvAJYXTAt+SNclCN0Woj2A5oO7AAYXVQKdkpQa78CWvFdYDV/8GsnFxDqgvUKsw3hXNKOcV7iN8BAYrzBOYpjAMqAY2IlTmgUyKM0BFwIUAdAhlq8KHlEe7FGYCpwyOUKFQL1CdBYoN/5mjNQqlrihD2ZABStZcB6YiNCh0Ejio0DULZFKUAtmEza54gLIzI0ekiuGtwgbXW0gXZ4EiWAo0BhjrFm2XP9sBJXqrynrXLswCma4oAJmMCqruzj+CEv1dnzsyC9TqWbCTHkF5t3QAZNLi455ZoKhA2risNAY5Gt0BUJICe9GQBdLEsyB09/wc2XhZB0DDgUm+yRtZoDiMbTuDhe6MG1yhVtbtg2zDFUj0/A6czALFnv3ZgrYJNNm5AS76OcoDdQGqEOa7ao/CqyzQ75y1rbp3CiuAL0B/hDqFKoHpCt089Nau1gKPkKh3mtQo7MgDRbb3VmkICnduHlnbGpDS/3Cvw/I+4c34ax6IsPRTBq3XrVPonRG6NMh0k4FFCJIHIun6KYMrvan2cr0lvQ64o/AS+IzQDxgHzPZKLEE4q3AFmJsFiq6YFGgnwnYFkfiQVgDlwPucFmT/ZiHRDTARmKJxhdtzIHCOwH5xALL7aId7+lRhKfCY1JkJdxo9hGsKNcAShWcIPRVqgc5AqcLNVs987QSEcgc9UZhh3rQDCkOlCmf9/yAH2bhvOD/pIPsVOgt8Ukt0x0DpYpBgnoTzLb6T7Mb13O0GnhcA2qTwAnhj3T94dxxoRGgEDlrOljvoE1BZoEcWjRHhPH/2DmwssWos9RfWQJsLDN1KYIHGNdBHocznHwMeek7riluvBrhVIMjErqYj/m4IBottXLby//11BVuI+97RAkHp0GXbcNhhhcP/EWTFcBsYpP6pEAnwC3pQe5rECoGFAAAAAElFTkSuQmCC)
|
no-repeat 50%;
|
background-size: 100%;
|
margin-top: 0.431rem;
|
margin-left: 0.25346rem;
|
}
|
.formDemos input {
|
background: transparent;
|
height: 1.25rem;
|
width: 7rem;
|
font-size: 0.4rem;
|
color: #000;
|
margin-left: 0.25rem;
|
}
|
.formDemo input {
|
background: transparent;
|
height: 1.25rem;
|
width: 7rem;
|
font-size: 0.4rem;
|
color: #000;
|
margin-left: 0.25rem;
|
}
|
|
//input默认字样式
|
::-webkit-input-placeholder {
|
color: #999;
|
font-size: 0.32rem;
|
}
|
.djzc {
|
width: 8.5rem;
|
margin: 0.45rem auto;
|
display: -webkit-box;
|
display: -ms-flexbox;
|
display: flex;
|
-webkit-box-pack: justify;
|
-ms-flex-pack: justify;
|
justify-content: flex-end;
|
font-size: 0.375rem;
|
color: #ec4a58;
|
}
|
.agreement {
|
display: flex;
|
align-items: center;
|
margin: 0.5rem 0;
|
font-size: 0.28rem;
|
color: #666;
|
|
input[type="checkbox"] {
|
width: 0.45rem;
|
height: 0.45rem;
|
margin-right: 0.25rem;
|
cursor: pointer;
|
appearance: none;
|
-webkit-appearance: none;
|
border: 2px solid #d9d9d9;
|
border-radius: 0.08rem;
|
background-color: #fff;
|
position: relative;
|
flex-shrink: 0;
|
transition: all 0.3s ease;
|
|
&:checked {
|
background-color: #1890ff;
|
border-color: #1890ff;
|
|
&::after {
|
content: '✓';
|
position: absolute;
|
top: 50%;
|
left: 50%;
|
transform: translate(-50%, -50%);
|
color: #fff;
|
font-size: 0.32rem;
|
font-weight: bold;
|
line-height: 1;
|
}
|
}
|
|
&:hover {
|
border-color: #1890ff;
|
}
|
|
&:focus {
|
outline: none;
|
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
|
}
|
}
|
|
label {
|
display: flex;
|
align-items: center;
|
cursor: pointer;
|
user-select: none;
|
}
|
|
.agreement-link {
|
color: #1890ff;
|
text-decoration: none;
|
|
&:hover {
|
text-decoration: underline;
|
}
|
}
|
}
|
|
.loginBtn {
|
width: 100%;
|
height: 1.3rem;
|
background: linear-gradient(-55deg, rgb(241, 22, 20), rgb(240, 40, 37));
|
border-radius: 0.2rem;
|
margin: 0.5rem 0;
|
color: #fff;
|
font-weight: 600;
|
font-size: 0.38rem;
|
text-align: center;
|
line-height: 1.3rem;
|
cursor: pointer;
|
border: none;
|
}
|
|
.login-link {
|
text-align: center;
|
margin-top: 0.5rem;
|
|
span {
|
font-size: 0.28rem;
|
color: #999;
|
cursor: pointer;
|
|
&:hover {
|
color: #1890ff;
|
}
|
}
|
}
|
|
.features-section {
|
display: flex;
|
justify-content: space-around;
|
align-items: center;
|
padding: 1rem 0.5rem;
|
background: #fff;
|
|
.feature-item {
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
flex: 1;
|
|
.feature-icon {
|
width: 1rem;
|
height: 1rem;
|
background: #1890ff;
|
border-radius: 0.2rem;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
margin-bottom: 0.3rem;
|
|
svg {
|
width: 0.6rem;
|
height: 0.6rem;
|
color: #fff;
|
}
|
}
|
|
.feature-title {
|
font-size: 0.28rem;
|
font-weight: 600;
|
color: #333;
|
margin-bottom: 0.15rem;
|
}
|
|
.feature-desc {
|
font-size: 0.24rem;
|
color: #999;
|
}
|
}
|
}
|
</style>
|