Эх сурвалжийг харах

Merge branch 'master' into dev

wangcz 7 жил өмнө
parent
commit
17f9a8fd80

+ 4 - 0
assets/scss/common.scss

@@ -906,3 +906,7 @@ form .questions .el-form-item__content span.question {
   background-color: #f5f5f5;
   border-radius: 4px;
 }
+
+.code-input2 {
+  width: 92px !important;
+}

+ 27 - 1
components/mobile/registerEnterprise/index.vue

@@ -13,6 +13,11 @@
                     type="tel"
           ></mt-field>
         </div>
+        <div class="page-part">
+          <mt-field placeholder="验证码" v-model="code">
+            <img :src="imgSrc" height="45px" width="100px" @click="getCode">
+          </mt-field>
+        </div>
         <div class="page-part">
           <mt-field auto-complete="off"
                     placeholder="短信验证码"
@@ -99,6 +104,8 @@
     name: 'registerEnterprise',
     data () {
       return {
+        code: '',
+        imgSrc: '',
         step: 1,
         state: {
           mobile: 'error',
@@ -131,6 +138,11 @@
         progress: '弱'
       }
     },
+    mounted () {
+      this.$nextTick(() => {
+        this.getCode()
+      })
+    },
     watch: {
       'step1.token': {
         handler (newVal) {
@@ -142,6 +154,9 @@
       }
     },
     methods: {
+      getCode () {
+        this.imgSrc = '/sso/resetPwd/checkCaptcha?timestamp=' + (new Date()).valueOf()
+      },
       // 注册
       goRegister () {
         window.location.href = `/register/personalRegistration${this.$store.state.option.fullPath}`
@@ -210,14 +225,25 @@
       getCheckCode () {
         if (this.tokenTime > 0 && this.tokenTime < 60) {
           this.downToast('请稍后再点击,我在倒计时')
+        } else if (this.code === '') {
+          this.downToast('请输入验证码后获取!')
         } else {
           this.validateMobile()
           if (this.state.mobile === 'success') {
             this.$indicator.open('获取中...')
             let _this = this
-            this.$http.get('/sso/personal/register/checkCode', {params: {mobile: this.step1.mobile, timestamp: new Date().getTime() + ''}})
+            this.$http.get('/sso/personal/register/checkCode', {params: {mobile: this.step1.mobile, timestamp: new Date().getTime() + '', code: this.code}})
               .then(response => {
                 this.$indicator.close()
+                if (response.data.errMsg) {
+                  this.$toast({
+                    message: response.data.errMsg,
+                    iconClass: 'el-icon-error'
+                  })
+                  this.code = ''
+                  this.getCode()
+                  return
+                }
                 if (response.data) {
                   this.tokenCode = response.data.token
                   this.$toast({

+ 32 - 4
components/mobile/registerPersonal/index.vue

@@ -35,6 +35,11 @@
                   v-model="mobile"
                   type="tel"></mt-field>
       </div>
+      <div class="page-part">
+        <mt-field placeholder="验证码" v-model="code">
+          <img :src="imgSrc" height="45px" width="100px" @click="getCode">
+        </mt-field>
+      </div>
       <div class="page-part">
         <mt-field :state="state.token"
                   placeholder="短信验证码"
@@ -58,13 +63,16 @@
     name: 'registerPerson',
     data () {
       return {
+        imgSrc: '',
+        code: '',
         step: 1,
         state: {
           vipName: 'error',
           password: 'error',
           confirm: 'error',
           mobile: 'error',
-          token: 'error'
+          token: 'error',
+          code: 'error'
         },
         vipName: '',
         password: '',
@@ -77,6 +85,11 @@
         checked: true
       }
     },
+    mounted () {
+      this.$nextTick(() => {
+        this.getCode()
+      })
+    },
     watch: {
       'token': {
         handler (newVal) {
@@ -88,6 +101,9 @@
       }
     },
     methods: {
+      getCode () {
+        this.imgSrc = '/sso/resetPwd/checkCaptcha?timestamp=' + (new Date()).valueOf()
+      },
       // 注册
       goRegister () {
         window.location.href = `/register/enterpriseRegistration${this.$store.state.option.fullPath}`
@@ -215,13 +231,25 @@
       },
       // 获取验证码
       loadCheckCode () {
-        this.codeMobile()
-        if (this.state.mobile === 'success') {
+        if (this.state.mobile !== 'success') {
+          this.codeMobile()
+        } else if (this.code === '') {
+          this.downToast('请输入验证码后获取!')
+        } else {
           this.$indicator.open('获取中...')
           let _this = this
-          this.$http.get('/sso/personal/register/checkCode', {params: {mobile: this.mobile, timestamp: new Date().getTime() + ''}})
+          this.$http.get('/sso/personal/register/checkCode', {params: {code: this.code, mobile: this.mobile, timestamp: new Date().getTime() + ''}})
             .then(response => {
               this.$indicator.close()
+              if (response.data.errMsg) {
+                this.$toast({
+                  message: response.data.errMsg,
+                  iconClass: 'el-icon-error'
+                })
+                this.code = ''
+                this.getCode()
+                return
+              }
               if (response.data) {
                 this.tokenCode = response.data.token
                 this.$toast({

+ 47 - 6
components/register/EnterpriseRegistration.vue

@@ -18,10 +18,31 @@
                                     auto-complete="off"
                                     class="msg"
                                     placeholder="短信验证码"></el-input>
-              <el-button type="primary" class="code"
-                         v-show="sendEnterpriseCode"
-                         @click="getCheckCode"
-                         :disabled="getCodeBtnIsDisabled">获取验证码</el-button>
+
+              <!--<el-button type="primary" class="code"-->
+                         <!--v-show="sendEnterpriseCode"-->
+                         <!--@click="getCheckCode"-->
+                         <!--:disabled="getCodeBtnIsDisabled">获取验证码</el-button>-->
+              <el-popover
+                placement="top"
+                width="300"
+                v-model="visible2">
+                <div>
+                  <el-input type="text"
+                            v-model="ImgCode"
+                            auto-complete="off"
+                            class="code-input2"></el-input>
+                  <img  id="captchaImage2" class="code-img" src="/sso/login/checkCode"/>
+                  <a class="code-click" @click="getCode"  style="font-size: 12px">看不清换一张</a>
+                </div>
+                <div style="text-align: right; margin: 0">
+                  <el-button size="mini" type="text" @click="visible2 = false">取消</el-button>
+                  <el-button type="primary" size="mini" @click="getCheckCode">确定</el-button>
+                </div>
+                <el-button type="primary" class="code"
+                           v-show="sendEnterpriseCode" slot="reference" :disabled="getCodeBtnIsDisabled">获取验证码</el-button>
+              </el-popover>
+
               <el-button type="primary"  v-show="!sendEnterpriseCode" class="code code-send">已发送({{enterprise_time}}s)</el-button>
               <span v-show="codeErrorChecked" class="codeError-tip">{{codeErrorMsg}}</span>
             </el-form-item>
@@ -113,7 +134,7 @@
       <loading v-show="isShowLoading"/>
     </div>
     <!--尾部-->
-    <div v-html="loginStyle.footUrl" class="footer"></div>
+    <!--<div v-html="loginStyle.footUrl" class="footer"></div>-->
   </div>
 </template>
 
@@ -465,6 +486,8 @@
         }
       }
       return {
+        visible2: false,
+        ImgCode: '',
 //        企业注册第一步
         enterprise: {
           mobile: '',
@@ -559,9 +582,15 @@
 //      获取链接
       this.$nextTick(() => {
         this.getUrl()
+        this.getCode()
       })
     },
     methods: {
+      //    获取验证码
+      getCode () {
+        let imgSrc = document.getElementById('captchaImage2')
+        imgSrc.setAttribute('src', '/sso/resetPwd/checkCaptcha?timestamp=' + (new Date()).valueOf())
+      },
       // 获取链接
       getUrl () {
         var url = window.location.search
@@ -589,11 +618,20 @@
 //      获取校验码
       getCheckCode () {
         this.isShowLoading = true
-        this.$http.get(`/sso/userspace/register/checkCode`, {params: {mobile: this.enterprise.mobile, timestamp: new Date().getTime() + ''}})
+        this.$http.get(`/sso/userspace/register/checkCode`, {params: {mobile: this.enterprise.mobile, timestamp: new Date().getTime() + '', code: this.ImgCode}})
           .then(response => {
             this.isShowLoading = false
             if (response.data) {
               this.token = response.data.token
+              if (response.data.errMsg) {
+                this.$message({
+                  message: response.data.errMsg,
+                  type: 'error'
+                })
+                this.ImgCode = ''
+                this.getCode()
+                return
+              }
               if (this.token !== '') {
                 this.$message({
                   message: '验证码已经发送到您的手机,请注意查收',
@@ -601,6 +639,8 @@
                 })
                 this.sendEnterpriseCode = false
                 this.enterprise_time = 60
+                this.visible2 = false
+                this.ImgCode = ''
                 var enterpriseTime = setInterval(() => {
                   this.enterprise_time--
                   if (this.enterprise_time <= 0) {
@@ -608,6 +648,7 @@
                     clearInterval(enterpriseTime)
                   }
                 }, 1000)
+                this.getCode()
               }
             } else {
               return Promise.reject(response.data)

+ 48 - 5
components/register/PersonalRegistration.vue

@@ -36,10 +36,33 @@
             <el-form-item prop="code">
               <el-input type="text" v-model="item.code"
                         v-bind:class="{ active: codeErrorChecked }" auto-complete="off" class="msg" placeholder="短信验证码"></el-input>
-              <el-button type="primary" class="code"
-                         v-show="sendPersonalCode"
-                         @click="getCheckCode"
-                         :disabled="this.checkMobile">获取验证码</el-button>
+
+              <el-popover
+                placement="top"
+                width="300"
+                v-model="visible2">
+                <div>
+                  <el-input type="text"
+                            v-model="ImgCode"
+                            auto-complete="off"
+                            class="code-input2"></el-input>
+                  <img  id="captchaImage2" class="code-img" src="/sso/login/checkCode"/>
+                  <a class="code-click" @click="getCode"  style="font-size: 12px">看不清换一张</a>
+                </div>
+                <div style="text-align: right; margin: 0">
+                  <el-button size="mini" type="text" @click="visible2 = false">取消</el-button>
+                  <el-button type="primary" size="mini" @click="getCheckCode">确定</el-button>
+                </div>
+                <el-button type="primary" class="code"
+                           v-show="sendPersonalCode" slot="reference" :disabled="this.checkMobile">获取验证码</el-button>
+              </el-popover>
+
+
+              <!--<el-button type="primary" class="code"-->
+                         <!--v-show="sendPersonalCode"-->
+                         <!--@click="getCheckCode"-->
+                         <!--:disabled="this.checkMobile">获取验证码</el-button>-->
+
               <el-button type="primary"  v-show="!sendPersonalCode" class="code code-send">已发送({{personal_time}}s)</el-button>
               <span v-show="codeErrorChecked" class="codeError-tip">{{codeErrorMsg}}</span>
             </el-form-item>
@@ -303,6 +326,8 @@
         }
       }
       return {
+        ImgCode: '',
+        visible2: false,
         item: {
           vipName: '',
           password: '',
@@ -358,6 +383,7 @@
 //      获取链接
       this.$nextTick(() => {
         this.getUrl()
+        this.getCode()
       })
     },
     computed: {
@@ -514,21 +540,37 @@
 //        let { data } = await this.$http.get(`/sso/personal/register/checkCode`, {params: {mobile: this.item.mobile}})
 //        this.token = data.token
 //      },
+      //    获取验证码
+      getCode () {
+        let imgSrc = document.getElementById('captchaImage2')
+        imgSrc.setAttribute('src', '/sso/resetPwd/checkCaptcha?timestamp=' + (new Date()).valueOf())
+      },
       getCheckCode () {
         this.isShowLoading = true
 //        this.getCode()
-        this.$http.get(`/sso/personal/register/checkCode`, {params: {mobile: this.item.mobile, timestamp: new Date().getTime() + ''}})
+        this.$http.get(`/sso/personal/register/checkCode`, {params: {mobile: this.item.mobile, timestamp: new Date().getTime() + '', code: this.ImgCode}})
           .then(response => {
             this.isShowLoading = false
             if (response.data) {
               this.token = response.data.token
+              if (response.data.errMsg) {
+                this.$message({
+                  message: response.data.errMsg,
+                  type: 'error'
+                })
+                this.ImgCode = ''
+                this.getCode()
+                return
+              }
               if (this.token !== '') {
                 this.$message({
                   message: '验证码已经发送到您的手机,请注意查收',
                   type: 'success'
                 })
                 this.sendPersonalCode = false
+                this.visible2 = false
                 this.personal_time = 60
+                this.ImgCode = ''
                 var personalTime = setInterval(() => {
                   this.personal_time--
                   if (this.personal_time <= 0) {
@@ -536,6 +578,7 @@
                     clearInterval(personalTime)
                   }
                 }, 1000)
+                this.getCode()
               }
             } else {
               return Promise.reject(response.data)