| | |
| | | <template> |
| | | <div class="login_page"> |
| | | <headers :mess="loginWay" /> |
| | | <div class="img_mess"> |
| | | <div class="logo_content animated fadeInRight"> |
| | | <img :src="Logo" alt /> |
| | | </div> |
| | | <headers /> |
| | | <div class="login_title animated slideInDown"> |
| | | <span>{{ $t("hj15") }}</span> |
| | | </div> |
| | | <div class="logins_content"> |
| | | <div class="login_title animated slideInDown"> |
| | | <span>{{ '邮箱注册' }}</span> |
| | | </div> |
| | | <div class="login_forms"> |
| | | <div class="top_forms"> |
| | | <div class="user_name"> |
| | | <input type="text" :placeholder="placeholder" v-model="phone" /> |
| | | </div> |
| | | <div class="captcha"> |
| | | <input type="text" :placeholder="verification" v-model="code" /> |
| | | <div v-if="codeshow" @click="checkCodeBox">获取验证码</div> |
| | | <div v-if="!codeshow" class="getcode">{{count}}s</div> |
| | | </div> |
| | | <div class="password"> |
| | | <input type="password" placeholder="密码为6~12位数字、字母或符号" v-model="userPassword" /> |
| | | <!-- @input="handleInput()" --> |
| | | </div> |
| | | <div class="password"> |
| | | <input type="password" placeholder="请再次确认密码" v-model="rePassword" /> |
| | | </div> |
| | | <div class="user_name"> |
| | | <input type="text" placeholder="机构代码" v-model="userName" /> |
| | | </div> |
| | | <div class="forms_title">{{ placeholder }}</div> |
| | | <el-input :placeholder="$t('请输入')" :size="medium" v-model="phone" clearable @input="handleInput()"> |
| | | </el-input> |
| | | |
| | | <!-- <div class="forms_title">{{ $t("hj25") }}</div> |
| | | <el-input :placeholder="$t('请输入')" :size="medium" v-model="yzmCode" clearable @input="handleInput()"> |
| | | <template slot="append"> |
| | | <van-button type="info" size="small" @click="getYzm" :loading="djs > 0" :loading-text="djs + ''"> |
| | | <span style="font-size: 14px;">{{ $t('获取验证码') }}</span> |
| | | </van-button> |
| | | </template> |
| | | </el-input> --> |
| | | |
| | | <div class="forms_title">{{ $t("Password") }}</div> |
| | | <el-input :placeholder="$t('hj19')" :size="medium" v-model="userPassword" clearable @input="handleInput()"> |
| | | </el-input> |
| | | |
| | | <div class="forms_title">{{ $t("hj20") }}</div> |
| | | <el-input :placeholder="$t('请输入')" :size="medium" v-model="rePassword" clearable @input="handleInput()"> |
| | | </el-input> |
| | | |
| | | <div class="forms_title">{{ $t("hj21") }}</div> |
| | | <el-input :placeholder="$t('请输入')" :size="medium" v-model="userName" clearable @input="handleInput()"> |
| | | </el-input> |
| | | </div> |
| | | <div class="bottom_btns"> |
| | | <div class="top_btn" @click="gook" :class="btnClass ? 'on' : 'off'"> |
| | | <span>{{ '安全注册' }}</span> |
| | | </div> |
| | | <div |
| | | class="register-form-item agree-model" |
| | | <div class="radio-con" style="display: flex; align-items: center; font-size: 14px"> |
| | | <van-checkbox v-model="checked" @change="handleInput()"> |
| | | {{ $t("我已閱讀並同意") }} |
| | | </van-checkbox> |
| | | <span @click="gotoxy" style="color: #0e7ddd"> |
| | | {{ $t("《用戶服務協議》") }} |
| | | </span> |
| | | </div> |
| | | <div class="bottom_btns" :class="btnClass ? 'on' : 'off'"> |
| | | <van-button type="info" :disabled="!btnClass" class="butn" @click="gook">{{ $t("立即注册") }}</van-button> |
| | | |
| | | <!-- <van-button |
| | | type="info" |
| | | class="butn_2" |
| | | plain |
| | | @click="$router.push('/login')" |
| | | > |
| | | <i @click="isAgree" |
| | | :class="agree?'glyphicon glyphicon glyphicon-ok-sign blue':'glyphicon glyphicon-ok-circle'"></i> |
| | | 我已阅读并同意 |
| | | <a style="color:#fff">《注册协议》</a> |
| | | </div> |
| | | <div class="mes"> |
| | | <span>{{ '已有账户?' }}</span> |
| | | <span @click="$router.push('/NewLogin')" style="color: rgb(54,124,248);">{{ '登录>' }}</span> |
| | | </div> |
| | | {{ $t("已有賬號?") + $t("馬上登錄") }} |
| | | </van-button> --> |
| | | </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 |
| | | import headers from "./components/header.vue"; |
| | | import { isNull, isPhone, pwdReg } from "@/utils/utils"; |
| | | import * as api from "@/axios/api"; |
| | | import { Notify } from "vant"; |
| | | import { mapMutations } from "vuex"; |
| | | import deTh from "@/utils/deTh"; |
| | | export default { |
| | | components: { |
| | | headers |
| | | }, |
| | | name: "newRegister", |
| | | data() { |
| | | return { |
| | | checked: false, |
| | | verification: this.$t("hj25"), |
| | | loginWay: this.$t("hj26"), |
| | | loginWay: this.$t("hj26"), |
| | | placeholder: this.$t("hj16"), |
| | | phone: "", |
| | | userName: "", |
| | | yzmCode: '6666', |
| | | code: "", |
| | | userPassword: "", |
| | | btnClass: false, |
| | | rePassword: "", |
| | | medium: "medium", |
| | | djs: 0, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.userName = this.$route.query.agentCode |
| | | ? this.$route.query.agentCode |
| | | : ""; |
| | | }, |
| | | methods: { |
| | | gotoxy() { |
| | | this.$router.push("/help_fwxy"); |
| | | }, |
| | | name: "newRegister", |
| | | data () { |
| | | return{ |
| | | verification:"验证码", |
| | | loginWay: "手机号注册", |
| | | loginWay: "手机号注册", |
| | | placeholder: "手机号", |
| | | Logo, |
| | | phone:"", |
| | | userName: "", |
| | | code:"", |
| | | userPassword: "", |
| | | btnClass: true, |
| | | codeshow: true, |
| | | count: '', // 倒计时 |
| | | clickFalg: 0, // 点击次数 |
| | | rePassword:"", |
| | | agree:false, |
| | | }}, |
| | | mounted(){ |
| | | handleInput() { |
| | | if ( |
| | | this.userPassword !== "" && |
| | | this.yzmCode !== "" && |
| | | this.phone !== "" && |
| | | this.userPassword == this.rePassword && |
| | | this.userName != "" && |
| | | this.checked |
| | | ) { |
| | | this.btnClass = true; |
| | | } else { |
| | | this.btnClass = false; |
| | | } |
| | | }, |
| | | async getYzm() { |
| | | |
| | | }, |
| | | methods:{ |
| | | checkCodeBox () { |
| | | if (isNull(this.phone) || !isPhone(this.phone)) { |
| | | Toast('请输入正确的手机号') |
| | | } else { |
| | | this.checkPhone() |
| | | } |
| | | }, |
| | | 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 = /^[0-9]{11}$/ // 手机号码验证 |
| | | if (isNull(this.phone)) { |
| | | Toast('手机号不可为空') |
| | | } else { |
| | | if (!reg.test(this.phone)) { |
| | | Toast('请输入正确的手机号码') |
| | | } 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) |
| | | } |
| | | } else { |
| | | Toast(result.msg) |
| | | } |
| | | let data = await api.getsendmail({ email: this.phone }); |
| | | if (data.status == 0) { |
| | | Notify({ type: 'primary', message: data.msg }); |
| | | |
| | | this.djs = 60; |
| | | let time = setInterval(() => { |
| | | this.djs--; |
| | | if (this.djs <= 0) { |
| | | clearInterval(time); |
| | | } |
| | | } |
| | | }, |
| | | async gook () { |
| | | // 注册 |
| | | if (!this.agree) { |
| | | Toast('需同意注册协议才能注册!') |
| | | } else if (isNull(this.phone) || !isPhone(this.phone)) { |
| | | Toast('请输入正确的手机号码') |
| | | } else if (isNull(this.userPassword)) { |
| | | Toast('请输入密码') |
| | | } else if (isNull(this.rePassword)) { |
| | | Toast('请确认密码') |
| | | } else if (isNull(this.code)) { |
| | | Toast('请输入验证码') |
| | | } else if (this.userPassword !== this.rePassword) { |
| | | Toast('两次输入的密码不一致') |
| | | this.password = 0 |
| | | this.password2 = 0 |
| | | }, 1000); |
| | | } else { |
| | | Notify({ type: "warning", message: data.msg }); |
| | | } |
| | | }, |
| | | async gook() { |
| | | if (this.phone.length == 0) { |
| | | Notify({ type: "warning", message: this.$t("hj28") }); |
| | | } else if (isNull(this.userPassword)) { |
| | | Notify({ type: "warning", message: this.$t("hj30") }); |
| | | } else if (isNull(this.rePassword)) { |
| | | Notify({ type: "warning", message: this.$t("hj31") }); |
| | | } else { |
| | | if (this.userPassword !== this.rePassword) { |
| | | this.password = 0; |
| | | this.password2 = 0; |
| | | Notify({ type: "warning", message: this.$t("hj32") }); |
| | | } else if (!pwdReg(this.userPassword)) { |
| | | Toast('密码为6~12位,数字、字母或符号') |
| | | Notify({ type: "warning", message: this.$t("hj19") }); |
| | | } else if (isNull(this.userName)) { |
| | | Toast('请输入机构代码') |
| | | Notify({ type: "warning", message: this.$t("hj33") }); |
| | | } else { |
| | | let opts = { |
| | | // agentCode:'4023', // SR330001 |
| | | phone: this.phone, |
| | | yzmCode: this.code, |
| | | yzmCode: this.yzmCode, |
| | | userPwd: this.userPassword, |
| | | agentCode: this.userName |
| | | } |
| | | let data = await api.register(opts) |
| | | }; |
| | | let data = await api.register(opts); |
| | | if (data.status === 0) { |
| | | Toast('注册成功,请登录') |
| | | this.$router.push('/NewLogin') |
| | | setTimeout(() => { |
| | | this.$router.push("/login"); |
| | | }, 1000); |
| | | } else { |
| | | Toast(data.msg) |
| | | Notify({ type: "warning", message: data.msg }); |
| | | } |
| | | } |
| | | }, |
| | | isAgree () { |
| | | this.agree=!this.agree |
| | | }, |
| | | async checkPhone () { |
| | | // 先验证是否已经注册 |
| | | let data = await api.checkPhone({ phoneNum: this.phone }) |
| | | if (data.status === 0) { |
| | | // 如果用户已存在返回 0 |
| | | Toast('用户已注册,请登录') |
| | | this.$router.push('/login') |
| | | } else { |
| | | // this.dialogShow = false |
| | | // this.adminUrl = process.env.API_HOST |
| | | // if (this.adminUrl === undefined) { |
| | | // this.adminUrl = '' |
| | | // } |
| | | // this.gook() |
| | | this.getcode() |
| | | } |
| | | }, |
| | | }, |
| | | |
| | | } |
| | | } |
| | | if (navigator.vibrate) { |
| | | // 支持 |
| | | navigator.vibrate([55]); |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .logins_content { |
| | | width: 100%; |
| | | height: 9.7436rem; |
| | | margin-top: 0.4359rem; |
| | | padding: 0 0.2564rem; |
| | | .login_title { |
| | | width: 100%; |
| | | height: 2.0513rem; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 0.6923rem; |
| | | color: #fff; |
| | | } |
| | | .login_forms { |
| | | width: 100%; |
| | | height: 7.9231rem; |
| | | .top_forms { |
| | | width: 100%; |
| | | height: 4.5128rem; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | .user_name,.captcha, |
| | | .password { |
| | | width: 100%; |
| | | height: 35%; |
| | | background: #1e1e1e; |
| | | border-radius: 0.3564rem; |
| | | margin-top: 0.2rem; |
| | | > input { |
| | | width: 100%; |
| | | height: 100%; |
| | | padding-left: 0.3564rem; |
| | | font-size: 0.4615rem; |
| | | } |
| | | } |
| | | .captcha{ |
| | | display: flex; |
| | | align-items: center; |
| | | > input { |
| | | width: 80%!important; |
| | | <style scoped lang="less"> |
| | | @green: #0e7ddd; |
| | | @Black1: #13161e; |
| | | |
| | | } |
| | | } |
| | | } |
| | | .bottom_btns { |
| | | width: 100%; |
| | | height: 3.3333rem; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-items: center; |
| | | margin-top: 4.8128rem; |
| | | .top_btn { |
| | | width: 100%; |
| | | height: 40%; |
| | | border-radius: 0.3564rem; |
| | | background: rgb(131, 174, 243); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 0.5128rem; |
| | | } |
| | | .top_btn.on { |
| | | background: rgb(0, 71, 187); |
| | | } |
| | | .mes { |
| | | width: 100%; |
| | | height: 40%; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | font-size: 0.3846rem; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .img_mess { |
| | | .register { |
| | | font-style: normal; |
| | | font-weight: 500; |
| | | font-size: 0.37333rem; |
| | | color: #8c9fad; |
| | | text-align: center; |
| | | margin: 20px auto; |
| | | // margin-top: 10px; |
| | | } |
| | | |
| | | .radio-con { |
| | | margin-top: 0.32rem; |
| | | } |
| | | |
| | | /deep/ .el-input-group__append { |
| | | background: #13161e; |
| | | border: none !important; |
| | | size: .3rem; |
| | | } |
| | | |
| | | /deep/ .van-checkbox__icon--checked .van-icon { |
| | | background: @green; |
| | | border-color: @green; |
| | | } |
| | | |
| | | /deep/ .van-checkbox__label { |
| | | font-style: normal; |
| | | font-weight: 500; |
| | | font-size: 0.37333rem; |
| | | line-height: 0.53333rem; |
| | | color: #8c9fad; |
| | | } |
| | | |
| | | /deep/ .van-button__text { |
| | | font-size: 24px; |
| | | font-family: "DINPro"; |
| | | } |
| | | |
| | | .login_title { |
| | | font-family: "DINPro", serif; |
| | | font-style: normal; |
| | | font-weight: 500; |
| | | font-size: 0.48rem; |
| | | line-height: 0.66667rem; |
| | | padding: 0.6rem 0.6rem 0; |
| | | } |
| | | |
| | | .login_page { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | overflow-y: auto; |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 100vh; |
| | | } |
| | | |
| | | .logins_content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | flex: 1; |
| | | width: 100%; |
| | | height: 9.7436rem; |
| | | padding: 0.4rem 0.6rem 0; |
| | | border-top-left-radius: 0.26667rem; |
| | | border-top-right-radius: 0.26667rem; |
| | | |
| | | .login_title { |
| | | width: 100%; |
| | | height: 4.0513rem; |
| | | height: 2.0513rem; |
| | | display: flex; |
| | | justify-content: center; |
| | | padding: 0.6rem 0.6rem 0; |
| | | align-items: center; |
| | | .logo_content { |
| | | width: 3rem; |
| | | height: 3.5769rem; |
| | | > img { |
| | | font-size: 0.7023rem; |
| | | color: #000; |
| | | font-weight: 600 !important; |
| | | |
| | | >span { |
| | | font-weight: 600 !important; |
| | | } |
| | | } |
| | | |
| | | .login_forms { |
| | | width: 100%; |
| | | |
| | | border-top-left-radius: 0.26667rem; |
| | | border-top-right-radius: 0.26667rem; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .top_forms { |
| | | width: 100%; |
| | | height: auto; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | |
| | | .forms_title { |
| | | font-size: 0.3rem; |
| | | margin-top: 0.5rem; |
| | | margin-bottom: 0.2rem; |
| | | font-weight: 300; |
| | | opacity: 0.7; |
| | | } |
| | | |
| | | .user_name, |
| | | .password { |
| | | width: 100%; |
| | | height: 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: 70px; |
| | | background-color: @Black1 !important; |
| | | font-size: 0.3rem !important; |
| | | border: @Black1 solid 1px; |
| | | color: #fff; |
| | | border-bottom: rgba(#fff, 0.7) solid 1px; |
| | | } |
| | | |
| | | .bottom_btns { |
| | | width: 100%; |
| | | height: 3.3333rem; |
| | | |
| | | // margin-top: 0.8528rem; |
| | | .butn { |
| | | width: 100%; |
| | | margin-top: 40px; |
| | | height: 60px; |
| | | border-radius: 8px; |
| | | background-color: @green; |
| | | border-color: @green; |
| | | } |
| | | |
| | | .butn_2 { |
| | | width: 100%; |
| | | margin-top: 40px; |
| | | height: 60px; |
| | | border-radius: 8px; |
| | | color: @green; |
| | | border-color: @green; |
| | | margin-top: 0.4rem; |
| | | } |
| | | |
| | | .mes { |
| | | width: 100%; |
| | | height: 20%; |
| | | margin-top: 0.4rem; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | font-size: 0.3846rem; |
| | | } |
| | | } |
| | | } |
| | | .agree-model{ |
| | | margin-top: 0.2rem; |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | |
| | | /deep/ .el-input-group__prepend { |
| | | border: none !important; |
| | | border-radius: 0 !important; |
| | | font-size: 0.45rem !important; |
| | | } |
| | | |
| | | .on .top_btn { |
| | | background: #2d8cf0 !important; |
| | | } |
| | | |
| | | .agree-model { |
| | | margin-top: 0.2rem; |
| | | } |
| | | </style> |