|
|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
- <div class="encrypted">
|
|
|
+ <div class="validation">
|
|
|
<div class="container">
|
|
|
- <div class="content" v-if="activeTab == 0">
|
|
|
+ <div class="content" v-show="goFirstStep">
|
|
|
<div class="content-top">
|
|
|
<h3>添加密保设置</h3>
|
|
|
<div class="step">
|
|
|
@@ -10,393 +10,604 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="choose">
|
|
|
- <div class="active"><i class="fa fa-mobile first"></i><span>通过验证手机</span><i class="fa fa-angle-right second"></i></div>
|
|
|
- <div><i class="fa fa-envelope-o first"></i><span>通过验证邮箱</span><i class="fa fa-angle-right second"></i></div>
|
|
|
+ <div v-show="hasValidPhoneWay"
|
|
|
+ @click="chooseWay(1)">
|
|
|
+ <img src="/images/all/icon01.png" alt="" class="first mob"/>
|
|
|
+ <span>通过验证手机</span><i class="fa fa-angle-right second"></i>
|
|
|
+ </div>
|
|
|
+ <div v-show="hasValidEmailWay"
|
|
|
+ @click="chooseWay(2)">
|
|
|
+ <img src="/images/all/icon02.png" alt="" class="first"/>
|
|
|
+ <span>通过验证邮箱</span><i class="fa fa-angle-right second"></i>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content" v-if="activeTab == 1">
|
|
|
+ <div class="content" v-show="showPhoneValid">
|
|
|
<div class="content-top">
|
|
|
<h3>添加密保设置</h3>
|
|
|
<div class="step">
|
|
|
- <img src="/images/all/step02.png" alt=""/>
|
|
|
+ <img src="/images/all/step01.png" alt=""/>
|
|
|
<div class="step-item"><span class="active">账号验证</span><span>密保设置</span><span>设置完成</span></div>
|
|
|
- <a href="" class="return"><img src="/images/all/return.png" alt=""/></a>
|
|
|
+ <a @click="goPreviousStep" class="return"><img src="/images/all/return.png" alt=""/></a>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="content-bottom">
|
|
|
- <span class="use">使用手机号<em>183******08</em>接收验证码</span>
|
|
|
- <div class="form-group">
|
|
|
- <input type="text" class="form-control msg" placeholder="短信验证码"/>
|
|
|
- <span class="msg">获取验证码</span>
|
|
|
- <!--<span class="msg send">已发送(54s)</span>-->
|
|
|
+ <span class="use">使用手机号<em>{{secretMobile}}</em>接收验证码</span>
|
|
|
+ <div>
|
|
|
+ <el-form :model="valid" :rules="rules" ref="valid" label-width="100px" class="demo-ruleForm" style="margin-top: 0;">
|
|
|
+ <el-form-item prop="code">
|
|
|
+ <el-input type="text" v-model="valid.code"
|
|
|
+ v-bind:class="{ active: codeErrorChecked }"
|
|
|
+ auto-complete="off" class="msg"
|
|
|
+ placeholder="短信验证码"></el-input>
|
|
|
+ <el-button type="primary" class="code"
|
|
|
+ v-show="sendAccountCode"
|
|
|
+ @click="getCheckCode">获取验证码</el-button>
|
|
|
+ <el-button type="primary" v-show="!sendAccountCode" class="code code-send">已发送({{account_time}}s)</el-button>
|
|
|
+ <span v-show="codeErrorChecked" class="tip codeError-tip" >{{codeErrorMsg}}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <a class="btn finish"
|
|
|
+ :disabled="!codeChecked"
|
|
|
+ @click="goNextStep">下一步</a>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
- <button class="btn">下一步</button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content" v-if="activeTab == 2">
|
|
|
+ <div class="content" v-show="showEmailValid">
|
|
|
<div class="content-top">
|
|
|
<h3>添加密保设置</h3>
|
|
|
<div class="step">
|
|
|
- <img src="/images/all/step02.png" alt=""/>
|
|
|
+ <img src="/images/all/step01.png" alt=""/>
|
|
|
<div class="step-item"><span class="active">账号验证</span><span>密保设置</span><span>设置完成</span></div>
|
|
|
<a href="" class="return"><img src="/images/all/return.png" alt=""/></a>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="content-bottom">
|
|
|
- <span class="use">使用电子邮箱<em>183****08@qq.com</em>进行验证,有效期7天</span>
|
|
|
- <div class="warp"><button class="btn">发送验证请求</button></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="content" v-if="activeTab == 3">
|
|
|
- <div class="content-top">
|
|
|
- <h3>添加密保设置</h3>
|
|
|
- <div class="step">
|
|
|
- <img src="/images/all/step03.png" alt=""/>
|
|
|
- <div class="step-item"><span class="active">账号验证</span><span class="active">密保设置</span><span>设置完成</span></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <form action="">
|
|
|
- <div class="form-group">
|
|
|
- <input type="text" value="问题一" class="answer form-control"/>
|
|
|
- <ul>
|
|
|
- <li>您的母亲的生日是几月几日?</li>
|
|
|
- <li>您最喜欢的宠物叫什么名字?</li>
|
|
|
- <li>您最喜欢的电影片名是什么?</li>
|
|
|
- <li>您的学号是?</li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <input type="text" class="form-control" placeholder="答案一"/>
|
|
|
+ <span class="use">使用电子邮箱<em>{{secretEmail}}</em>进行验证,有效期7天</span>
|
|
|
+ <div class="warp"
|
|
|
+ @click="firstStepValidEmail"
|
|
|
+ v-show="!emailSendSuccess">
|
|
|
+ <button class="btn">发送验证请求</button>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <input type="text" value="问题一" class="answer form-control"/>
|
|
|
- <ul>
|
|
|
- <li>您的爷爷叫什么名字?</li>
|
|
|
- <li>您的配偶的生日是几月几日?</li>
|
|
|
- <li>您最喜欢的歌手是谁?</li>
|
|
|
- <li>您就读的小学学校全称是?</li>
|
|
|
- </ul>
|
|
|
+ <div class="warp" v-show="emailSendSuccess">
|
|
|
+ <button class="btn" :disabled="emailSendSuccess">已发送验证邮件,请查收</button>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <input type="text" class="form-control" placeholder="答案二"/>
|
|
|
- </div>
|
|
|
- <button class="btn">提交</button>
|
|
|
- </form>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="content" v-if="activeTab == 4">
|
|
|
- <div class="content-top">
|
|
|
- <h3>添加密保设置</h3>
|
|
|
- <div class="step">
|
|
|
- <img src="/images/all/step03.png" alt=""/>
|
|
|
- <div class="step-item"><span class="active">账号验证</span><span class="active">密保设置</span><span class="active">设置完成</span></div>
|
|
|
+ <!--未验证手机弹出框-->
|
|
|
+ <div>
|
|
|
+ <el-dialog class="valid-phone"
|
|
|
+ :visible.sync="goValidPhone"
|
|
|
+ @click="goVaildPhoneStep"
|
|
|
+ size="tiny">
|
|
|
+ <div class="set-tip" v-show="goValidPhone">
|
|
|
+ <p>您的账号的未验证手机,请先验证手机号</p>
|
|
|
+ <a href="/validation/phoneValidation">确定</a>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="content-bottom">
|
|
|
- <p class="passed"><img src="/images/all/pass.png" alt=""/>设置成功</p>
|
|
|
- <span>添加密保之后,您的账号更安全了!</span>
|
|
|
- <div class="close-btn">关闭</div>
|
|
|
- </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
-
|
|
|
<script>
|
|
|
export default {
|
|
|
- name: 'EncryptedSetting',
|
|
|
+ name: 'validation',
|
|
|
data () {
|
|
|
- return {
|
|
|
- activeTab: 0
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-</script>
|
|
|
-<style lang="scss" scoped>
|
|
|
- .encrypted {
|
|
|
- margin: 0 auto;
|
|
|
- width: 100%;
|
|
|
- background: #eee;
|
|
|
- .container{
|
|
|
- padding-top: 50px;
|
|
|
- margin: 0 auto;
|
|
|
- width: 980px;
|
|
|
- text-align: center;
|
|
|
- .content{
|
|
|
- padding: 0 50px;
|
|
|
- margin: 50px auto 0;
|
|
|
- width: 100%;
|
|
|
- /*height: 540px;*/
|
|
|
- text-align: center;
|
|
|
- background: #fff;
|
|
|
- .content-top{
|
|
|
- height: 80px;
|
|
|
- line-height: 80px;
|
|
|
- h3{
|
|
|
- margin-bottom: 0;
|
|
|
- font-size: 24px;
|
|
|
- color: #000;
|
|
|
- border-bottom: 1px solid #dcdcdc;
|
|
|
- }
|
|
|
- .step{
|
|
|
- position: relative;
|
|
|
- margin-top: 10px;
|
|
|
- img{
|
|
|
- width: 315px;
|
|
|
- height: 46px;
|
|
|
- }
|
|
|
- .step-item{
|
|
|
- position: absolute;
|
|
|
- top: 45px;
|
|
|
- left: 265px;
|
|
|
- span{
|
|
|
- margin-right: 85px;
|
|
|
- font-size: 14px;
|
|
|
- color: #b4b4b4;
|
|
|
- }
|
|
|
- span.active {
|
|
|
- color: #0076ad;
|
|
|
+// 第一步校验验证码
|
|
|
+ var validateFirstCode = (rule, value, callback) => {
|
|
|
+ if (value === '') {
|
|
|
+ callback(new Error('请填写正确的验证码'))
|
|
|
+ this.codeErrorChecked = false
|
|
|
+ this.codeChecked = false
|
|
|
+ } else {
|
|
|
+ if (this.valid.code !== '') {
|
|
|
+ if (this.token !== '') {
|
|
|
+ if (this.valid.code !== '' && this.getMobile !== '') {
|
|
|
+ let param = new FormData()
|
|
|
+ param.append('mobile', this.getMobile)
|
|
|
+ param.append('code', this.valid.code)
|
|
|
+ param.append('token', this.token)
|
|
|
+ let config = {
|
|
|
+ headers: {'Content-Type': 'multipart/form-data'}
|
|
|
}
|
|
|
+ this.$http.post(`/update/user/checkCode/mobile`, param, config)
|
|
|
+ .then(response => {
|
|
|
+ if (response.data.success) {
|
|
|
+ this.codeChecked = true
|
|
|
+ this.codeErrorChecked = false
|
|
|
+ } else {
|
|
|
+ this.codeErrorChecked = true
|
|
|
+ this.codeChecked = false
|
|
|
+ return Promise.reject(response.data)
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ this.codeErrorMsg = err.errMsg
|
|
|
+ })
|
|
|
}
|
|
|
- }
|
|
|
+ } else {}
|
|
|
}
|
|
|
- form {
|
|
|
- padding-bottom: 44px;
|
|
|
- margin-top: 152px;
|
|
|
- .form-group{
|
|
|
- position: relative;
|
|
|
- margin: 0 auto 16px;
|
|
|
- width: 360px;
|
|
|
- height: 44px;
|
|
|
- line-height: 44px;
|
|
|
- input{
|
|
|
- padding: 0 0 0 18px;
|
|
|
- width: 360px;
|
|
|
- height: 44px;
|
|
|
- line-height: 44px;
|
|
|
- font-size: 14px;
|
|
|
- color: #000;
|
|
|
- border-radius: 0;
|
|
|
- }
|
|
|
- input.answer {
|
|
|
- background: url("/images/all/more.png") no-repeat 325px center;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- ul{
|
|
|
- display: none;
|
|
|
- position: absolute;
|
|
|
- top: 44px;
|
|
|
- left: 0;
|
|
|
- width: 360px;
|
|
|
- background: #fff;
|
|
|
- box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
- -moz-box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
- -o-box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
- -webkit-box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
- z-index: 10;
|
|
|
- li{
|
|
|
- padding-left: 18px;
|
|
|
- width: 100%;
|
|
|
- height: 30px;
|
|
|
- line-height: 30px;
|
|
|
- text-align: left;
|
|
|
- font-size: 14px;
|
|
|
- color: #000;
|
|
|
- cursor: pointer;
|
|
|
- &:hover{
|
|
|
- background: #0076ad;
|
|
|
- color: #fff;
|
|
|
- }
|
|
|
- }
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ goFirstStep: true,
|
|
|
+ hasValidPhoneWay: false,
|
|
|
+ hasValidEmailWay: false,
|
|
|
+ showPhoneValid: false,
|
|
|
+ showEmailValid: false,
|
|
|
+ sendAccountCode: true,
|
|
|
+ account_time: 0,
|
|
|
+ codeErrorChecked: false,
|
|
|
+ codeChecked: false,
|
|
|
+ secretMobile: '',
|
|
|
+ secretEmail: '',
|
|
|
+ getMobile: '',
|
|
|
+ getEmail: '',
|
|
|
+ codeErrorMsg: '',
|
|
|
+ firstStepToken: '',
|
|
|
+ emailSendSuccess: false,
|
|
|
+ goValidPhone: false,
|
|
|
+ valid: {
|
|
|
+ code: ''
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ code: [
|
|
|
+ {validator: validateFirstCode, trigger: 'blur'}
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ logged () {
|
|
|
+// console.log(this.$store.state.option.isLogin.data.content)
|
|
|
+ return this.$store.state.option.isLogin.data.content
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted () {
|
|
|
+// 验证是否登录
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.isLogin()
|
|
|
+ // 刷新统计信息
|
|
|
+ setInterval(() => {
|
|
|
+ this.isLogin()
|
|
|
+ }, 10000)
|
|
|
+ })
|
|
|
+// 获取验证方式
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.getVerifyWay()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+// 判断用户是否登录
|
|
|
+ isLogin () {
|
|
|
+ if (!this.logged.isLogin) {
|
|
|
+// 未登录跳到登录页面
|
|
|
+ window.location.href = '/'
|
|
|
+ }
|
|
|
+ },
|
|
|
+// 获取验证方式
|
|
|
+ getVerifyWay () {
|
|
|
+ this.$http.get('/update/user/checkType').then(response => {
|
|
|
+ if (response.data.success) {
|
|
|
+ console.log(response.data.content)
|
|
|
+ if (!response.data.content.mobile) {
|
|
|
+ this.goValidPhone = true
|
|
|
+ } else {
|
|
|
+ if (response.data.content.mobile) {
|
|
|
+ this.hasValidPhoneWay = true
|
|
|
+ this.showManualAppeal = true
|
|
|
+ this.getMobile = response.data.content.mobile
|
|
|
+ var reg = /^(\d{3})\d{6}(\d{2})$/
|
|
|
+ this.secretMobile = this.getMobile.replace(reg, '$1******$2')
|
|
|
}
|
|
|
- span.tip{
|
|
|
- position: absolute;
|
|
|
- top: 0;
|
|
|
- right: -238px;
|
|
|
- font-size: 13px;
|
|
|
- color: #8c8c8c;
|
|
|
- a{
|
|
|
- font-size: 13px;
|
|
|
- color: #0076ad;
|
|
|
+ if (response.data.content.email) {
|
|
|
+ this.hasValidEmailWay = true
|
|
|
+ this.showManualAppeal = true
|
|
|
+ this.getEmail = response.data.content.email
|
|
|
+ let getEmailIndex = this.getEmail.indexOf('@')
|
|
|
+ if (getEmailIndex > 3) {
|
|
|
+ let len = this.getEmail.substring(3, getEmailIndex)
|
|
|
+ this.secretEmail = this.getEmail.replace(len, '*')
|
|
|
+ } else {
|
|
|
+ this.getEmailArr = this.getEmail.split('')
|
|
|
+ this.getEmailSplit = this.getEmailArr.splice(getEmailIndex, 0, '*')
|
|
|
+ this.secretEmail = this.getEmailArr.join('')
|
|
|
}
|
|
|
}
|
|
|
- i{
|
|
|
- position: absolute;
|
|
|
- top: 13px;
|
|
|
- left: 20px;
|
|
|
- font-size: 20px;
|
|
|
- color: #a0a0a0;
|
|
|
- }
|
|
|
- }
|
|
|
- .btn {
|
|
|
- margin: 34px 0 16px 0;
|
|
|
- width: 360px;
|
|
|
- height: 44px;
|
|
|
- line-height: 4px;
|
|
|
- font-size: 16px;
|
|
|
- color: #fff;
|
|
|
- background: #0076AD;
|
|
|
- border-radius: 3px;
|
|
|
+ this.goValidPhone = false
|
|
|
+ this.goFirstStep = true
|
|
|
}
|
|
|
}
|
|
|
- .content-bottom{
|
|
|
- margin: 155px auto 0;
|
|
|
- padding-bottom: 50px;
|
|
|
- width: 360px;
|
|
|
- div.warp{
|
|
|
- padding-bottom: 65px;
|
|
|
- }
|
|
|
- p{
|
|
|
- font-size: 24px;
|
|
|
- color: #323232;
|
|
|
- img{
|
|
|
- margin-right: 20px;
|
|
|
- width: 30px;
|
|
|
- height: 28px;
|
|
|
- }
|
|
|
- }
|
|
|
- p.pass{
|
|
|
- font-size: 24px;
|
|
|
- color: #e77405;
|
|
|
- img{
|
|
|
- height: 30px;
|
|
|
- }
|
|
|
- }
|
|
|
- p.passed {
|
|
|
- color: #2ab300;
|
|
|
- img{
|
|
|
- height: 30px;
|
|
|
- }
|
|
|
- }
|
|
|
- span{
|
|
|
- display: inline-block;
|
|
|
- margin: 15px 0 140px 0;
|
|
|
- font-size: 14px;
|
|
|
- color: #8b8b8b;
|
|
|
- }
|
|
|
- .close-btn{
|
|
|
- margin: 0 auto;
|
|
|
- width: 200px;
|
|
|
- height: 36px;
|
|
|
- line-height: 36px;
|
|
|
- font-size: 14px;
|
|
|
- text-align: center;
|
|
|
- color: #323232;
|
|
|
- border: 1px solid #d2d2d2;
|
|
|
- border-radius: 3px;
|
|
|
- cursor: pointer ;
|
|
|
- }
|
|
|
- span.use{
|
|
|
- display: inline-block;
|
|
|
- margin-bottom: 30px;
|
|
|
- width: 360px;
|
|
|
- font-size: 14px;
|
|
|
- color: #000;
|
|
|
- text-align: left;
|
|
|
- em{
|
|
|
- font-size: 14px;
|
|
|
- font-style: normal;
|
|
|
- color: #000;
|
|
|
- }
|
|
|
- }
|
|
|
- .form-group {
|
|
|
- margin: 0 auto 16px;
|
|
|
- position: relative;
|
|
|
- width: 360px;
|
|
|
- height: 44px;
|
|
|
- line-height: 44px;
|
|
|
- input.msg{
|
|
|
- float: left;
|
|
|
- width: 210px;
|
|
|
- padding: 0 0 0 18px;
|
|
|
- height: 44px;
|
|
|
- line-height: 44px;
|
|
|
- font-size: 14px;
|
|
|
- color: #000;
|
|
|
- border-radius: 0;
|
|
|
- }
|
|
|
- span.msg{
|
|
|
- float: right;
|
|
|
- margin: 0;
|
|
|
- width: 130px;
|
|
|
- height: 44px;
|
|
|
- line-height: 44px;
|
|
|
- font-size: 14px;
|
|
|
- color: #5a5a5a;
|
|
|
- background: #f4f4f4;
|
|
|
- border: 1px solid #dcdcdc;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- span.msg.send{
|
|
|
- background: #d2d2d2;
|
|
|
- color: #fff;
|
|
|
- }
|
|
|
- }
|
|
|
- .btn {
|
|
|
- margin: 34px 0 10px 0;
|
|
|
- width: 360px;
|
|
|
- height: 44px;
|
|
|
- line-height: 4px;
|
|
|
- font-size: 16px;
|
|
|
- color: #fff;
|
|
|
- background: #0076AD;
|
|
|
- border-radius: 3px;
|
|
|
- }
|
|
|
- }
|
|
|
- .choose{
|
|
|
- margin: 155px auto 0;
|
|
|
- padding-bottom: 44px;
|
|
|
- div{
|
|
|
- padding: 0 15px;
|
|
|
- margin: 0 auto 16px;
|
|
|
- width: 360px;
|
|
|
- height: 60px;
|
|
|
- line-height: 60px;
|
|
|
- text-align: left;
|
|
|
- overflow: hidden;
|
|
|
- border: 1px solid #d2d2d2;
|
|
|
- cursor: pointer;
|
|
|
- &:hover,&.active{
|
|
|
- border-color: #0076ad;
|
|
|
- span{
|
|
|
- color: #0076ad;
|
|
|
- }
|
|
|
- i.second {
|
|
|
- color: #0076ad;
|
|
|
- }
|
|
|
- }
|
|
|
- i.first{
|
|
|
- float: left;
|
|
|
- margin: 20px 20px 0 0;
|
|
|
- font-size: 20px;
|
|
|
- color: #323232;
|
|
|
- }
|
|
|
- i.first.fa-mobile{
|
|
|
- margin: 16px 24px 0 5px;
|
|
|
- font-size: 28px;
|
|
|
- }
|
|
|
- i.second {
|
|
|
- float: right;
|
|
|
- margin: 20px 0 0 5px;
|
|
|
- font-size: 20px;
|
|
|
- color: #323232;
|
|
|
- }
|
|
|
- span{
|
|
|
- float: left;
|
|
|
- font-size: 14px;
|
|
|
- color: #323232;
|
|
|
+ })
|
|
|
+ },
|
|
|
+// 没验证手机将跳转到手机验证页面
|
|
|
+ goVaildPhoneStep () {
|
|
|
+ this.$router.push({ path: '/validation/phoneValidation' })
|
|
|
+ },
|
|
|
+// 选择方式
|
|
|
+ chooseWay (flag) {
|
|
|
+ if (flag === 1) {
|
|
|
+ this.showPhoneValid = true
|
|
|
+ } else if (flag === 2) {
|
|
|
+ this.showEmailValid = true
|
|
|
+ }
|
|
|
+ this.goFirstStep = false
|
|
|
+ },
|
|
|
+// 返回上一步
|
|
|
+ goPreviousStep () {
|
|
|
+ this.goFirstStep = true
|
|
|
+ this.showPhoneValid = false
|
|
|
+ this.showEmailValid = false
|
|
|
+ },
|
|
|
+// 获取第一步手机验证码
|
|
|
+ getCheckCode () {
|
|
|
+ this.$http.get(`/update/user/check/mobile`, {params: {mobile: this.getMobile}})
|
|
|
+ .then(response => {
|
|
|
+ this.token = response.data.content.token
|
|
|
+ if (this.token !== '') {
|
|
|
+ this.$message({
|
|
|
+ message: '验证码已经发送到您的手机,请注意查收',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ this.sendAccountCode = false
|
|
|
+ this.account_time = 60
|
|
|
+ var accountTime = setInterval(() => {
|
|
|
+ this.account_time--
|
|
|
+ if (this.account_time <= 0) {
|
|
|
+ this.sendAccountCode = true
|
|
|
+ clearInterval(accountTime)
|
|
|
}
|
|
|
+ }, 1000)
|
|
|
}
|
|
|
+ }).catch(err => {
|
|
|
+ this.$message.error(err.errMsg)
|
|
|
+ })
|
|
|
+ },
|
|
|
+// 手机号验证下一步
|
|
|
+ goNextStep () {
|
|
|
+ if (this.codeChecked) {
|
|
|
+ let param = new FormData()
|
|
|
+ param.append('mobile', this.getMobile)
|
|
|
+ param.append('code', this.valid.code)
|
|
|
+ param.append('token', this.token)
|
|
|
+ let config = {
|
|
|
+ headers: {'Content-Type': 'multipart/form-data'}
|
|
|
}
|
|
|
- a.return{
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: -15px;
|
|
|
- img{
|
|
|
- width: 34px !important;
|
|
|
- height: 34px !important;
|
|
|
- }
|
|
|
+ this.$http.post(`/update/user/check/mobile`, param, config)
|
|
|
+ .then(response => {
|
|
|
+ if (response.data.success) {
|
|
|
+ this.$store.commit('login/GET_TOKEN', response.data.content)
|
|
|
+ this.showPhoneValid = false
|
|
|
+ this.$router.push({ path: '/encrypted-setting/EncryptedSettingSecondStep' })
|
|
|
+ } else {
|
|
|
+ this.showPhoneValid = true
|
|
|
+ return Promise.reject(response.data)
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ this.$message.error(err.errMsg)
|
|
|
+ })
|
|
|
}
|
|
|
+ },
|
|
|
+// 第一步验证邮箱
|
|
|
+ firstStepValidEmail () {
|
|
|
+ this.$http.get(`/update/user/check/email`, {params: {email: this.getEmail, operate: 'question'}})
|
|
|
+ .then(response => {
|
|
|
+ if (response.data.success) {
|
|
|
+ this.emailSendSuccess = true
|
|
|
+ } else {
|
|
|
+ this.emailSendSuccess = false
|
|
|
+ return Promise.reject(response.data)
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ console.log(err)
|
|
|
+// this.$message.error(err.errMsg)
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .validation {
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 100%;
|
|
|
+ background: #eee;
|
|
|
+ .container{
|
|
|
+ padding-top: 50px;
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 980px;
|
|
|
+ text-align: center;
|
|
|
+ .content{
|
|
|
+ padding: 0 50px;
|
|
|
+ margin: 50px auto 0;
|
|
|
+ width: 100%;
|
|
|
+ /*height: 540px;*/
|
|
|
+ text-align: center;
|
|
|
+ background: #fff;
|
|
|
+ .content-top{
|
|
|
+ height: 80px;
|
|
|
+ line-height: 80px;
|
|
|
+ h3{
|
|
|
+ margin-bottom: 0;
|
|
|
+ font-size: 24px;
|
|
|
+ color: #000;
|
|
|
+ border-bottom: 1px solid #dcdcdc;
|
|
|
+ }
|
|
|
+ .step{
|
|
|
+ position: relative;
|
|
|
+ margin-top: 10px;
|
|
|
+ img{
|
|
|
+ width: 315px;
|
|
|
+ height: 46px;
|
|
|
+ }
|
|
|
+ .step-item{
|
|
|
+ position: absolute;
|
|
|
+ top: 45px;
|
|
|
+ left: 265px;
|
|
|
+ span{
|
|
|
+ margin-right: 78px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #b4b4b4;
|
|
|
+ }
|
|
|
+ span.active {
|
|
|
+ color: #0076ad;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ form {
|
|
|
+ margin-top: 150px;
|
|
|
+ padding-bottom: 44px;
|
|
|
+ input{
|
|
|
+ padding: 0 0 0 18px;
|
|
|
+ width: 360px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #000;
|
|
|
+ border-radius: 0;
|
|
|
+ }
|
|
|
+ input.answer {
|
|
|
+ background: url("/images/all/more.png") no-repeat 325px center;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ ul{
|
|
|
+ display: none;
|
|
|
+ position: absolute;
|
|
|
+ top: 44px;
|
|
|
+ left: 0;
|
|
|
+ width: 360px;
|
|
|
+ background: #fff;
|
|
|
+ box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
+ -moz-box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
+ -o-box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.5);
|
|
|
+ z-index: 10;
|
|
|
+ li{
|
|
|
+ padding-left: 18px;
|
|
|
+ width: 100%;
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ text-align: left;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #000;
|
|
|
+ cursor: pointer;
|
|
|
+ &:hover{
|
|
|
+ background: #0076ad;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ span.tip{
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ right: -238px;
|
|
|
+ font-size: 13px;
|
|
|
+ color: #8c8c8c;
|
|
|
+ a{
|
|
|
+ font-size: 13px;
|
|
|
+ color: #0076ad;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ span.tip.codeError-tip{
|
|
|
+ position: absolute;
|
|
|
+ top: 3px;
|
|
|
+ left: 378px;
|
|
|
+ width: 200px;
|
|
|
+ text-align: left;
|
|
|
+ color: #ff4949;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ i{
|
|
|
+ position: absolute;
|
|
|
+ top: 13px;
|
|
|
+ left: 20px;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #a0a0a0;
|
|
|
+ }
|
|
|
+ .btn {
|
|
|
+ margin: 34px 0 16px 0;
|
|
|
+ width: 360px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #fff;
|
|
|
+ background: #0076AD;
|
|
|
+ border-radius: 3px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .content-bottom{
|
|
|
+ margin: 155px auto 0;
|
|
|
+ padding-bottom: 50px;
|
|
|
+ width: 360px;
|
|
|
+ div.warp{
|
|
|
+ padding-bottom: 65px;
|
|
|
+ }
|
|
|
+ p{
|
|
|
+ font-size: 24px;
|
|
|
+ color: #323232;
|
|
|
+ img{
|
|
|
+ margin-right: 20px;
|
|
|
+ width: 30px;
|
|
|
+ height: 28px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p.pass{
|
|
|
+ font-size: 24px;
|
|
|
+ color: #e77405;
|
|
|
+ img{
|
|
|
+ height: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p.passed {
|
|
|
+ color: #2ab300;
|
|
|
+ img{
|
|
|
+ height: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ span{
|
|
|
+ display: inline-block;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #8b8b8b;
|
|
|
+ }
|
|
|
+ span.close-tip{
|
|
|
+ margin: 15px 0 140px 0;
|
|
|
+ }
|
|
|
+ .close-btn{
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 200px;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+ font-size: 14px;
|
|
|
+ text-align: center;
|
|
|
+ color: #323232;
|
|
|
+ border: 1px solid #d2d2d2;
|
|
|
+ border-radius: 3px;
|
|
|
+ cursor: pointer ;
|
|
|
+ }
|
|
|
+ span.use{
|
|
|
+ display: inline-block;
|
|
|
+ margin-bottom: 30px;
|
|
|
+ width: 360px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #000;
|
|
|
+ text-align: left;
|
|
|
+ em{
|
|
|
+ font-size: 14px;
|
|
|
+ font-style: normal;
|
|
|
+ color: #000;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .form-group {
|
|
|
+ margin: 0 auto 16px;
|
|
|
+ position: relative;
|
|
|
+ width: 360px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ input{
|
|
|
+ padding: 0 0 0 18px;
|
|
|
+ width: 360px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #000;
|
|
|
+ border-radius: 0;
|
|
|
+ }
|
|
|
+ input.msg{
|
|
|
+ float: left;
|
|
|
+ width: 210px;
|
|
|
+ padding: 0 0 0 18px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #000;
|
|
|
+ border-radius: 0;
|
|
|
+ }
|
|
|
+ span.msg{
|
|
|
+ float: right;
|
|
|
+ margin: 0;
|
|
|
+ width: 130px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ text-align: center ;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #5a5a5a;
|
|
|
+ background: #f4f4f4;
|
|
|
+ border: 1px solid #dcdcdc;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ span.msg.send{
|
|
|
+ background: #d2d2d2;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .btn {
|
|
|
+ margin: 34px 0 10px 0;
|
|
|
+ width: 360px;
|
|
|
+ height: 44px;
|
|
|
+ line-height: 44px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #fff;
|
|
|
+ background: #0076AD;
|
|
|
+ border-radius: 3px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .choose{
|
|
|
+ margin: 155px auto 0;
|
|
|
+ padding-bottom: 44px;
|
|
|
+ div{
|
|
|
+ padding: 0 15px;
|
|
|
+ margin: 0 auto 16px;
|
|
|
+ width: 360px;
|
|
|
+ height: 60px;
|
|
|
+ line-height: 60px;
|
|
|
+ text-align: left;
|
|
|
+ overflow: hidden;
|
|
|
+ border: 1px solid #d2d2d2;
|
|
|
+ cursor: pointer;
|
|
|
+ &:hover,&.active{
|
|
|
+ border-color: #0076ad;
|
|
|
+ span{
|
|
|
+ color: #0076ad;
|
|
|
+ }
|
|
|
+ i.second {
|
|
|
+ color: #0076ad;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ img.first{
|
|
|
+ float: left;
|
|
|
+ margin: 24px 20px 0 0;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #323232;
|
|
|
+ }
|
|
|
+ img.first.mob{
|
|
|
+ margin: 22px 20px 0 5px;
|
|
|
+ font-size: 28px;
|
|
|
+ }
|
|
|
+ i.second {
|
|
|
+ float: right;
|
|
|
+ margin: 20px 0 0 5px;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #323232;
|
|
|
+ }
|
|
|
+ span{
|
|
|
+ float: left;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #323232;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ a.return{
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: -15px;
|
|
|
+ img{
|
|
|
+ width: 34px !important;
|
|
|
+ height: 34px !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
</style>
|