| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- <template>
- <div class="register">
- <div class="r-header">
- <div class="content">
- <nuxt-link to="/" class="logo">
- <!--<span class="img"></span>-->
- <img class="img" v-if="webConfigData.pcLogoImgText" :src="webConfigData.pcLogoImgText"/>
- <!--<span class="text">蓝海创新科技</span>-->
- </nuxt-link>
- <div class="go-login">{{$t('ucPassword.thinkingPassword')}}
- <nuxt-link to="/login"
- class="login-btn">{{$t('ucPassword.goLogin')}}</nuxt-link>
- </div>
- </div>
- </div>
- <!-- 第一步 -->
- <div class="r-con"
- v-if="registerStep==1"
- :style="{margin:$t('language')=='en'?'80px auto':'100px auto'}"
- >
- <div class="steps">
- <div :class="['item', registerStep==1?'active':'']">
- <div class="number">1</div>
- <div class="text">{{$t('ucPassword.verifyMobileNumber')}}</div>
- </div>
- <div class="item">
- <div class="number">2</div>
- <div class="text">{{$t('ucPassword.fillInPassword')}}</div>
- </div>
- <div class="item">
- <div class="number">3</div>
- <div class="text">{{$t('ucPassword.completion')}}</div>
- </div>
- </div>
- <div class="con-box">
- <div :class="['item',errorTips==1? 'error':'']">
- <div class="input-box phone">
- <span class="ic">+86</span>
- <input type="text"
- class="input"
- v-model="mobile"
- :placeholder="$t('ucPassword.enterCellNumber')">
- </div>
- <div class="error-text"
- v-if="errorTips==1">{{$t('ucPassword.enterCorrectNumber')}}</div>
- </div>
- <div :class="['item',errorTips==2? 'error':'']">
- <div class="input-box code">
- <input type="text"
- class="input"
- v-model="validCode"
- :placeholder="$t('ucPassword.pleaseEnter')">
- <a href="javascript:void(0)"
- class="send-code"
- v-show="show"
- @click="getCode">{{$t('ucPassword.getCode')}}</a>
- <a href="javascript:void(0)"
- v-show="!show"
- class="send-code"
- style="cursor: not-allowed;">{{count}} s</a>
- </div>
- <div class="error-text"
- v-if="errorTips==2">{{$t('ucPassword.pleaseEnter')}}</div>
- </div>
- <span class="next"
- @click="registerNext">{{$t('ucPassword.nextStep')}}</span>
- </div>
- </div>
- <!-- /第一步 -->
- <!-- 第二步 -->
- <div class="r-con"
- :style="{margin:$t('language')=='en'?'80px auto':'100px auto'}"
- v-if="registerStep==2">
- <div class="steps">
- <div class="item active">
- <div class="number">1</div>
- <div class="text">{{$t('ucPassword.verifyMobileNumber')}}</div>
- </div>
- <div :class="['item', registerStep==2?'active':'']">
- <div class="number">2</div>
- <div class="text">{{$t('ucPassword.fillInPassword')}}</div>
- </div>
- <div class="item">
- <div class="number">3</div>
- <div class="text">{{$t('ucPassword.completion')}}</div>
- </div>
- </div>
- <div class="con-box">
- <!-- <div :class="['item',errorTips==3? 'error':'']">
- <div class="input-box">
- <input type="text"
- class="input"
- v-model="userName"
- placeholder="请您设置账号">
- </div>
- <div class="error-text"
- v-if="errorTips==3">账号为4~16位字母、数字或下划线</div>
- </div> -->
- <div :class="['item',errorTips==4? 'error':'']">
- <div class="input-box">
- <input type="password"
- class="input"
- v-model="password"
- :placeholder="$t('ucPassword.setYourPassword')">
- </div>
- <div class="error-text"
- v-if="errorTips==4">{{$t('ucPassword.enterNewPasswordTips1')}}</div>
- </div>
- <div :class="['item',errorTips==5? 'error':'']">
- <div class="input-box">
- <input type="password"
- class="input"
- v-model="confirmPwd"
- :placeholder="$t('ucPassword.enterPasswordAgain')">
- </div>
- <div class="error-text"
- v-if="errorTips==5">{{$t('ucPassword.enterNewPasswordTips5')}}</div>
- </div>
- <span class="next"
- @click="registerNext">{{$t('ucPassword.nextStep')}}</span>
- </div>
- </div>
- <!-- /第二步 -->
- <!-- 第三步 -->
- <div class="r-con"
- :style="{margin:$t('language')=='en'?'80px auto':'100px auto'}"
- v-if="registerStep==3">
- <div class="con-box">
- <div class="register-success">
- <div class="img">
- <!-- <img src="~/assets/images/success.png" alt=""> -->
- </div>
- <div class="text">
- <div class="text-div">{{$t('ucPassword.passwordChangeSuccessful')}}</div>
- <div class="text-span"><span style="color:blue">{{loCount}}</span>{{$t('ucPassword.jumpPage')}}</div>
- </div>
- </div>
- <nuxt-link to="/login"
- class="next suc-btn">{{$t('ucPassword.goLogin')}}</nuxt-link>
- </div>
- </div>
- <!-- /第三步 -->
- <div class="content r-footer">
- <!-- <div class="links">
- <nuxt-link to="/"
- class="item">{{$t('ucPassword.mallHome')}}</nuxt-link>
- <a href="https://www.mall4j.com/" target="_blank"
- class="item">{{$t('ucPassword.officialWebsite')}}</a>
- <a href=""
- class="item">{{$t('ucPassword.openSourceWebsite')}}</a>
- </div> -->
- <div class="copyright">{{$t('language')=='zh'?webConfigData.pcCopyrightCn:webConfigData.pcCopyrightEn}}</div>
- <!--<div class="copyright">©Copyright 2018 广州市蓝海创新科技有限公司 版权所有 | 粤ICP备18115813号-1</div>-->
- </div>
- <!-- 登录弹窗组件 -->
- <LoginPopup v-if="showLogin"
- v-on:hideLoginPop='hideLoginPop' />
- <!-- /登录弹窗组件 -->
- </div>
- </template>
- <script>
- import util from '../plugins/util'
- import Cookie from 'js-cookie'
- import LoginPopup from '~/components/login-popup'
- import { encrypt } from '~/plugins/crypto.js'
- export default {
- components: {
- LoginPopup
- },
- layout: 'empty',
- data () {
- return {
- registerStep: 1, // 注册步骤
- errorTips: 0, // 输入错误提示: 1手机号输入错误 2验证码输入错误 3账号输入错误 4密码输入错误 5验证密码输入错误
- mobile: '',
- validCode: '',
- userName: '',
- password: '',
- confirmPwd: '',
- checkRegisterSmsFlag: '', // 校验登录注册验证码成功的标识
- // 验证码相关
- show: true,
- count: '',
- timer: null,
- hadGotCode: false,
- // 登录弹窗
- showLogin: false,
- // 完成跳转登录页倒计时
- loTimer: null,
- loCount: 0,
- webConfigData: {} // 网站配置信息
- }
- },
- methods: {
- /**
- * 获取验证码
- */
- getCode () {
- if (!util.checkPhoneNumber(this.mobile)) {
- this.errorTips = 1
- return
- }
- if(this.hadGotCode){
- return
- }
- this.hadGotCode = true
- let sendSmsParam = {
- mobile: this.mobile,
- }
- this.$axios.post('/sms/sendUpdatePwdCode', sendSmsParam).then(({ data }) => {
- const timeCount = 60;
- if (!this.timer) {
- this.count = timeCount;
- this.show = false;
- this.timer = setInterval(() => {
- if (this.count > 0 && this.count <= timeCount) {
- this.count--;
- } else {
- this.show = true;
- clearInterval(this.timer);
- this.timer = null;
- this.hadGotCode = false
- }
- }, 1000)
- }
- })
- },
- /**
- * 注册-下一步按钮
- */
- registerNext () {
- if (this.registerStep == 1) {
- if(!util.checkPhoneNumber(this.mobile)){
- this.errorTips = 1
- return
- }
- else if (!this.validCode.trim()) {
- this.errorTips = 2
- return
- } else {
- this.errorTips = 0
- // 校验验证码
- let checkRegisterSmsParam = {
- mobile: this.mobile,
- validCode: this.validCode
- }
- this.$axios.put('/user/checkUpdatePwdSms', checkRegisterSmsParam)
- .then(({ data }) => {
- this.checkRegisterSmsFlag = data
- this.registerStep += 1;
- })
- }
- } else if (this.registerStep == 2) {
- if (!this.password.trim()) {
- this.errorTips = 4
- return
- } else if (this.password != this.confirmPwd) {
- this.errorTips = 5
- return
- } else {
- this.errorTips = 0
- // 请求注册
- let userRegisterParam = {
- appType: 3, // 应用类型 1小程序 2微信公众号 3 PC
- checkRegisterSmsFlag: this.checkRegisterSmsFlag, // 校验登录注册验证码成功的标识
- mobile: this.mobile,
- userName: this.userName,
- password: encrypt(this.password),
- }
- this.$axios.put('/user/updatePwd', userRegisterParam)
- .then(({ data }) => {
- this.registerStep += 1;
- this.loginOut()
- setTimeout(() => {
- // window.location.pathname == '/register' ? this.$router.push({ path: '/' }) : window.location.reload();
- this.$router.push('/login')
- }, 3000)
- const loTimeCount = 3;
- if (!this.loTimer) {
- this.loCount = loTimeCount;
- this.loTimer = setInterval(() => {
- if (this.loCount > 0 && this.loCount <= loTimeCount) {
- this.loCount--;
- } else {
- clearInterval(this.loTimer);
- this.loTimer = null;
- }
- }, 1000)
- }
- })
- }
- }
- },
- /**
- * 退出登录
- */
- loginOut () {
- Cookie.remove('token')
- window.localStorage.clear()
- // this.$route.path == '/' ? location.reload() : this.$router.push({ path: '/' })
- },
- showLoginPopup () {
- this.showLogin = true
- },
- hideLoginPop () {
- this.showLogin = false
- },
- },
- mounted () {
- this.$axios.get('/webConfig/getPcWebConfig').then(({ data }) => {
- this.webConfigData = data
- localStorage.setItem('webConfig', JSON.stringify(data))
- })
- document.title = this.$i18n.t('ucPassword.forgotPassword')
- },
- }
- </script>
- <style scoped src='~/assets/css/register.css'></style>
|