瀏覽代碼

增加正在加载中提示、实时判断密码是否一致、营业执照输入正则更改和上传文件为pdf格式显示默认图片

hangb 7 年之前
父節點
當前提交
bbecc41d16

+ 47 - 9
components/appeal/ChangeManagerAppeal.vue

@@ -44,7 +44,7 @@
                        accept="image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf"
                        @change="upload"/>
               </a>
-              <a class="thumbnail" v-if="changeManager.businessCodeImage !== ''"><img class="previewImg" alt="" :src="changeManager.businessCodeImage"></a>
+              <a class="thumbnail" v-if="changeManager.businessCodeImage !== ''"><img class="previewImg" alt="" :src="isPdf?'/images/all/timg.png':changeManager.businessCodeImage"></a>
             </el-form-item>
             <el-form-item prop="corporation">
               <el-input v-model="changeManager.corporation" placeholder="法定代表人"></el-input>
@@ -136,13 +136,18 @@
           <div class="close-btn" @click="goCloudCenter">关闭</div>
         </div>
       </div>
+      <loading v-show="isShowLoading"/>
     </div>
   </div>
 </template>
 
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
     name: 'AccountAppeal',
+    components: {
+      Loading
+    },
     data () {
       var validateMobile = (rule, value, callback) => {
         if (value === '') {
@@ -171,8 +176,10 @@
           this.codeChecked = false
         } else {
           if (this.changeManager.code !== '') {
-            if (this.token !== '') {
-              if (this.changeManager.code !== '' && this.changeManager.mobile !== '') {
+            if (this.changeManager.mobile === '') {
+              callback(new Error('请先填写正确的手机号'))
+            } else {
+              if (this.token) {
                 let param = new FormData()
                 param.append('mobile', this.changeManager.mobile)
                 param.append('code', this.changeManager.code)
@@ -191,10 +198,15 @@
                       return Promise.reject(response.data)
                     }
                   }).catch(err => {
-                    this.$message.error(err.errMsg)
+                    this.codeErrorMsg = err.errMsg
+                  // this.$message.error(err.errMsg)
                   })
+              } else {
+                callback(new Error('请先获取验证码'))
+                this.codeChecked = false
+                this.codeErrorChecked = false
               }
-            } else {}
+            }
           }
           callback()
         }
@@ -234,11 +246,17 @@
           this.businessCodeChecked = false
         } else {
           if (this.changeManager.businessCode !== '') {
-            if (value.length > 20) {
-              callback(new Error('输入长度过长,20个字符以内'))
-              this.businessCodeChecked = false
+            let reg = /^[A-Za-z0-9]+$/
+            if (reg.test(value)) {
+              if (value.length > 20) {
+                callback(new Error('输入长度过长,20个字符以内'))
+                this.businessCodeChecked = false
+              } else {
+                this.businessCodeChecked = true
+              }
             } else {
-              this.businessCodeChecked = true
+              callback(new Error('请填写正确的营业执照号'))
+              this.businessCodeChecked = false
             }
           }
           callback()
@@ -343,6 +361,8 @@
           contactTel: '',
           contactEmail: ''
         },
+        isShowLoading: false,
+        isPdf: false,
         checked: true,
         showAddressBox: false,
         isShowAddressBox: false,
@@ -441,8 +461,10 @@
       },
 //      获取校验码
       getCheckCode () {
+        this.isShowLoading = true
         this.$http.get(`/appeal/check/mobile`, {params: {mobile: this.changeManager.mobile}})
           .then(response => {
+            this.isShowLoading = false
             this.token = response.data.content.token
             if (this.token !== '') {
               this.$message({
@@ -460,14 +482,17 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
       //      上传营业执照扫描件
       upload (e) {
+        this.isShowLoading = true
         let file = e.target.files[0]
         if (file.size > 5 * 1024 * 1024) {
           this.uploadFileChecked = false
+          this.isShowLoading = false
         } else {
           let param = new FormData()
           param.append('image', file, file.name)
@@ -477,9 +502,19 @@
 //          图片上传接口
           this.$http.post('/api/userspace/upload', param, config)
             .then(response => {
+              this.isShowLoading = false
+              let path = response.data.content
+              console.log(path)
+              console.log(path.slice(path.lastIndexOf('.')).toLowerCase())
+              if (path.slice(path.lastIndexOf('.')).toLowerCase() === '.pdf') {
+                this.isPdf = true
+              } else {
+                this.isPdf = false
+              }
               this.changeManager.businessCodeImage = response.data.content
               this.uploadFileChecked = true
             }, err => {
+              this.isShowLoading = false
               console.log(err)
               this.uploadFileChecked = false
             })
@@ -539,6 +574,7 @@
       //    提交表单
       submit () {
         if (this.mobileChecked && this.codeChecked && this.spaceNameChecked && this.businessCodeChecked && this.uploadFileChecked && this.addressCheck && this.descriptionChecked && this.contactNameChecked && this.contactTelChecked && this.contactEmailChecked && this.checked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.changeManager.mobile)
           param.append('code', this.changeManager.code)
@@ -562,12 +598,14 @@
           this.$http.post('/appeal/resetPwd', param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
                 this.goNextStep = false
               } else {
                 this.goNextStep = true
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 63 - 9
components/appeal/PasswordRestAppeal.vue

@@ -20,7 +20,7 @@
                          @click="getCheckCode"
                          :disabled="getCodeBtnIsDisabled">获取验证码</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" >验证码输入错误</span>-->
+              <span v-show="codeErrorChecked" class="tip codeError-tip" >{{codeErrorMsg}}</span>
             </el-form-item>
             <el-form-item prop="password">
               <el-input type="password" v-model="passwordRest.password" auto-complete="off" placeholder="新密码"></el-input>
@@ -30,7 +30,12 @@
               <div class="pwd low" v-show="showMsgTip4">密码强度 <em></em><em></em><em></em></div>
             </el-form-item>
             <el-form-item prop="confirm">
-              <el-input type="password" v-model="passwordRest.confirm" auto-complete="off" placeholder="密码确认"></el-input>
+              <el-input type="password"
+                        v-model="passwordRest.confirm"
+                        v-bind:class="{active: showPasswordError}"
+                        auto-complete="off"
+                        placeholder="密码确认"></el-input>
+              <span class="tip passwordError" v-show="showPasswordError">两次输入密码不一致</span>
             </el-form-item>
             <el-form-item prop="description">
               <el-input type="textarea" v-model="passwordRest.description" placeholder="申诉说明"></el-input>
@@ -67,13 +72,18 @@
           <div class="close-btn" @click="goCloudCenter">关闭</div>
         </div>
       </div>
+      <loading v-show="isShowLoading"/>
     </div>
   </div>
 </template>
 
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
     name: 'AccountAppeal',
+    components: {
+      Loading
+    },
     data () {
       var validateMobile = (rule, value, callback) => {
         if (value === '') {
@@ -102,8 +112,10 @@
           this.codeChecked = false
         } else {
           if (this.passwordRest.code !== '') {
-            if (this.token !== '') {
-              if (this.passwordRest.code !== '' && this.passwordRest.mobile !== '') {
+            if (this.passwordRest.mobile === '') {
+              callback(new Error('请先填写正确的手机号'))
+            } else {
+              if (this.token) {
                 let param = new FormData()
                 param.append('mobile', this.passwordRest.mobile)
                 param.append('code', this.passwordRest.code)
@@ -122,10 +134,15 @@
                       return Promise.reject(response.data)
                     }
                   }).catch(err => {
-                    this.$message.error(err.errMsg)
+                    this.codeErrorMsg = err.errMsg
+                  // this.$message.error(err.errMsg)
                   })
+              } else {
+                this.codeChecked = false
+                this.codeErrorChecked = false
+                callback(new Error('请先获取验证码'))
               }
-            } else {}
+            }
           }
           callback()
         }
@@ -187,6 +204,17 @@
               callback(new Error('密码须为8-20字符的英文、数字混合'))
               this.passwordChecked = false
             }
+            if (this.passwordRest.confirm !== '') {
+              if (value !== this.passwordRest.confirm) {
+                this.showPasswordError = true
+                // callback(new Error('两次输入密码不一致!'))
+                this.confirmChecked = false
+              } else {
+                this.confirmChecked = true
+                this.showPasswordError = false
+                callback()
+              }
+            }
           }
           callback()
         }
@@ -194,12 +222,15 @@
       var validateConfirm = (rule, value, callback) => {
         if (value === '') {
           callback(new Error('请再次输入密码'))
+          this.showPasswordError = false
           this.confirmChecked = false
         } else if (value !== this.passwordRest.password) {
-          callback(new Error('两次输入密码不一致!'))
+          // callback(new Error('两次输入密码不一致!'))
+          this.showPasswordError = true
           this.confirmChecked = false
         } else {
           this.confirmChecked = true
+          this.showPasswordError = false
           callback()
         }
       }
@@ -273,6 +304,9 @@
         }
       }
       return {
+        isShowLoading: false,
+        showPasswordError: false,
+        codeErrorMsg: false,
         goNextStep: true,
         passwordRest: {
           mobile: '',
@@ -338,8 +372,10 @@
       },
 //      获取校验码
       getCheckCode () {
+        this.isShowLoading = true
         this.$http.get(`/appeal/check/mobile`, {params: {mobile: this.passwordRest.mobile}})
           .then(response => {
+            this.isShowLoading = false
             this.token = response.data.content.token
             if (this.token !== '') {
               this.$message({
@@ -357,12 +393,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
       //    提交表单
       submit () {
         if (this.mobileChecked && this.codeChecked && this.passwordChecked && this.confirmChecked && this.descriptionChecked && this.contactNameChecked && this.contactTelChecked && this.contactEmailChecked && this.checked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.passwordRest.mobile)
           param.append('code', this.passwordRest.code)
@@ -378,6 +416,7 @@
           this.$http.post('/appeal/resetPwd', param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
                 this.goNextStep = false
 //                待跳转到设置页面
 //                window.loaction.href = ''
@@ -386,6 +425,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -532,8 +572,22 @@
     text-align: left;
   }
   span.tip.codeError-tip {
-    right: -112px;
-    color: #f56c6c;
+    position: absolute;
+    top: 3px;
+    left: 378px;
+    width: 200px;
+    text-align: left;
+    color: #ff4949;
+    font-size: 12px;
+  }
+  span.tip.passwordError{
+    position: absolute;
+    top: 3px;
+    left: 380px;
+    width: 200px;
+    text-align: left;
+    color: #ff4949;
+    font-size: 12px;
   }
   i{
     position: absolute;

+ 44 - 17
components/certification/EnterpriseCertification.vue

@@ -38,7 +38,7 @@
                        accept="image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf"
                        @change="upload"/>
               </a>
-              <a class="thumbnail" v-if="enterprise.businessCodeImage !== ''"><img class="previewImg" alt="" :src="enterprise.businessCodeImage"></a>
+              <a class="thumbnail" v-if="enterprise.businessCodeImage !== ''"><img class="previewImg" alt="" :src="isPdf?'/images/all/timg.png':enterprise.businessCodeImage"></a>
             </el-form-item>
             <el-form-item prop="corporation">
               <el-input v-model="enterprise.corporation" placeholder="法定代表人"></el-input>
@@ -149,13 +149,18 @@
           <div class="close-btn">关闭</div>
         </div>
       </div>
+      <loading v-show="isShowLoading"/>
     </div>
   </div>
 </template>
 
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
     name: 'enterpriseCertification',
+    components: {
+      Loading
+    },
     data () {
 //      企业认证第一步
       var validateSpaceName = (rule, value, callback) => {
@@ -194,23 +199,30 @@
           this.isBusinessCodeValid = false
         } else {
           if (this.enterprise.businessCode !== '') {
-            if (value.length > 20) {
-              callback(new Error('输入长度过长,20个字符以内'))
-            } else {
-              this.$http.get(`/api/userspace/businessCode/valid`, {params: {businessCode: this.enterprise.businessCode}})
-                .then(response => {
-                  if (!response.data.content.isValid) {
-                    this.businessCodeChecked = true
-                    this.isBusinessCodeValid = false
-                  } else {
-                    this.businessCodeChecked = false
-                    this.isBusinessCodeValid = true
-                    return Promise.reject(response.data)
-                  }
-                }).catch(err => {
+            let reg = /^[A-Za-z0-9]+$/
+            if (reg.test(value)) {
+              if (value.length > 20) {
+                callback(new Error('输入长度过长,20个字符以内'))
+              } else {
+                this.$http.get(`/api/userspace/businessCode/valid`, {params: {businessCode: this.enterprise.businessCode}})
+                  .then(response => {
+                    if (!response.data.content.isValid) {
+                      this.businessCodeChecked = true
+                      this.isBusinessCodeValid = false
+                    } else {
+                      this.businessCodeChecked = false
+                      this.isBusinessCodeValid = true
+                      return Promise.reject(response.data)
+                    }
+                  }).catch(err => {
 //                  console.log(err)
-                  this.$message.error(err.errMsg)
-                })
+                    this.$message.error(err.errMsg)
+                  })
+              }
+            } else {
+              callback(new Error('请填写正确的营业执照号'))
+              this.businessCodeChecked = false
+              this.isBusinessCodeValid = false
             }
           }
           callback()
@@ -232,6 +244,8 @@
         }
       }
       return {
+        isShowLoading: false,
+        isPdf: false,
         enterpriseRegister: true,
         enterprise: {
           spaceName: '',
@@ -312,9 +326,11 @@
       },
 //      上传营业执照扫描件
       upload (e) {
+        this.isShowLoading = true
         let file = e.target.files[0]
         if (file.size > 5 * 1024 * 1024) {
           this.uploadFileChecked = false
+          this.isShowLoading = false
         } else {
           let param = new FormData()
           param.append('image', file, file.name)
@@ -324,9 +340,17 @@
 //          图片上传接口
           this.$http.post('/api/userspace/upload', param, config)
             .then(response => {
+              this.isShowLoading = false
+              let path = response.data.content
+              if (path.slice(path.lastIndexOf('.')).toLowerCase() === '.pdf') {
+                this.isPdf = true
+              } else {
+                this.isPdf = false
+              }
               this.enterprise.businessCodeImage = response.data.content
               this.uploadFileChecked = true
             }, err => {
+              this.isShowLoading = false
               console.log(err)
               this.uploadFileChecked = false
             })
@@ -386,6 +410,7 @@
 //      提交表单
       submitForm () {
         if (this.checked && this.spaceNameChecked && this.businessCodeChecked && this.corporationChecked && this.uploadFileChecked && this.addressCheck) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('spaceName', this.enterprise.spaceName)
           param.append('businessCode', this.enterprise.businessCode)
@@ -402,12 +427,14 @@
           this.$http.post('/valid/userspace/submit', param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
                 this.enterpriseRegister = false
               } else {
                 this.enterpriseRegister = true
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 9 - 0
components/certification/RealNameCertification.vue

@@ -77,12 +77,17 @@
           <div class="close-btn">关闭</div>
         </div>
       </div>
+      <loading v-show="isShowLoading"/>
     </div>
   </div>
 </template>
 
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
+    components: {
+      Loading
+    },
     name: 'realNameCertification',
     data () {
       var validateRealName = (rule, value, callback) => {
@@ -132,6 +137,7 @@
         }
       }
       return {
+        isShowLoading: false,
         goNextStep: true,
         showMsgTip: false,
         checked: true,
@@ -181,6 +187,7 @@
       },
       submitRealName () {
         if (this.checked && this.realNameChecked && this.idCardChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('realName', this.certification.realName)
           param.append('idCard', this.certification.idCard)
@@ -190,12 +197,14 @@
           this.$http.post('/valid/user/identity/submit', param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
                 this.goNextStep = false
               } else {
                 this.goNextStep = true
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 15 - 0
components/encrypted-setting/EncryptedSetting.vue

@@ -88,12 +88,17 @@
           </div>
         </el-dialog>
       </div>
+      <loading v-show="isShowLoading"/>
     </div>
   </div>
 </template>
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
     name: 'validation',
+    components: {
+      Loading
+    },
     data () {
 //      第一步校验验证码
       var validateFirstCode = (rule, value, callback) => {
@@ -132,6 +137,7 @@
         }
       }
       return {
+        isShowLoading: false,
         goFirstStep: true,
         hasValidPhoneWay: false,
         hasValidEmailWay: false,
@@ -242,8 +248,10 @@
       },
 //      获取第一步手机验证码
       getCheckCode () {
+        this.isShowLoading = true
         this.$http.get(`/update/user/check/mobile`, {params: {mobile: this.getMobile}})
           .then(response => {
+            this.isShowLoading = false
             this.token = response.data.content.token
             if (this.token !== '') {
               this.$message({
@@ -261,12 +269,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
 //      手机号验证下一步
       goNextStep () {
         if (this.codeChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.getMobile)
           param.append('code', this.valid.code)
@@ -277,6 +287,7 @@
           this.$http.post(`/update/user/check/mobile`, param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
                 this.$store.commit('login/GET_TOKEN', response.data.content)
                 this.showPhoneValid = false
                 this.$router.push({ path: '/encrypted-setting/EncryptedSettingSecondStep' })
@@ -285,21 +296,25 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
       },
 //      第一步验证邮箱
       firstStepValidEmail () {
+        this.isShowLoading = true
         this.$http.get(`/update/user/check/email`, {params: {email: this.getEmail, operate: 'question'}})
           .then(response => {
             if (response.data.success) {
+              this.isShowLoading = false
               this.emailSendSuccess = true
             } else {
               this.emailSendSuccess = false
               return Promise.reject(response.data)
             }
           }).catch(err => {
+            this.isShowLoading = false
             console.log(err)
 //          this.$message.error(err.errMsg)
           })

+ 9 - 0
components/encrypted-setting/EncryptedSettingSecondStep.vue

@@ -43,13 +43,18 @@
           </div>
         </div>
       </div>
+      <loading v-show="isShowLoading"/>
     </div>
   </div>
 </template>
 
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
     name: 'validation',
+    components: {
+      Loading
+    },
     data () {
 //      第二步验证手机
       var validateSecondAnswer1 = (rule, value, callback) => {
@@ -93,6 +98,7 @@
         }
       }
       return {
+        isShowLoading: false,
         answer1SecondChecked: false,
         question1SecondChecked: false,
         answer2SecondChecked: false,
@@ -139,6 +145,7 @@
 //      设置密保
       questionSubmit () {
         if (this.answer1SecondChecked && this.question1SecondChecked && this.answer2SecondChecked && this.question2SecondChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           let userQuestion = []
           userQuestion.push({'question': this.valid2.question1, 'answer': this.valid2.answer1, 'sort': '1'}, {'question': this.valid2.question2, 'answer': this.valid2.answer2, 'sort': '2'})
@@ -151,11 +158,13 @@
           this.$http.post(`/update/user/setQuestion`, param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
                 this.$router.push({ path: '/encrypted-setting/EncryptedSettingThirdStep' })
               } else {
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 9 - 0
components/login/Login.vue

@@ -85,12 +85,17 @@
         </div>
       </el-dialog>
     </div>
+    <loading v-show="isShowLoading"/>
   </div>
 </template>
 
 <script>
+  import Loading from '~components/common/loading/Loading.vue'
   export default {
     name: 'login',
+    components: {
+      Loading
+    },
     data () {
       var validateUsername = (rule, value, callback) => {
         if (value === '') {
@@ -148,6 +153,7 @@
           captcha: '',
           spaceUU: ''
         },
+        isShowLoading: false,
         checkUsername: false,
         checkPassword: false,
         showCheckCode: false,
@@ -212,6 +218,7 @@
       },
 //      登录
       isLogin (flag) {
+        this.isShowLoading = true
         if (!this.checkUsername) {
           this.$message.error('请填写账号')
         } else if (!this.checkPassword) {
@@ -231,6 +238,7 @@
           this.$http.post('/sso/login', param, config)
             .then(response => {
               if (response.data.success) {
+                this.isShowLoading = false
 //                console.log(response.data.content)
                 if (response.data.content.spaces) {
 //                   弹框让用户选择企业
@@ -268,6 +276,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               let _this = this
               setTimeout(function () {
                 _this.getCode()

+ 55 - 10
components/register/EnterpriseRegistration.vue

@@ -22,7 +22,7 @@
                          @click="getCheckCode"
                          :disabled="getCodeBtnIsDisabled">获取验证码</el-button>
               <el-button type="primary"  v-show="!sendEnterpriseCode" class="code code-send">已发送({{enterprise_time}}s)</el-button>
-              <!--<span v-show="codeErrorChecked" class="codeError-tip">验证码输入错误</span>-->
+              <span v-show="codeErrorChecked" class="codeError-tip">{{codeErrorMsg}}</span>
             </el-form-item>
             <el-form-item>
               <a class="btn finish"
@@ -70,13 +70,15 @@
                         auto-complete="off"
                         placeholder="密码确认"
                         v-bind:class="{ correct: this.passwordChecked }"></el-input>
-              <span class="sure" v-if="isHasRegister" v-show="phoneIsRegisterTip">手机号已注册,请输入原密码 <a>忘记密码?</a></span>
+              <span class="sure" v-if="isHasRegister" v-show="phoneIsRegisterTip">手机号已注册,请输入原密码 <a href="/reset/ForgetPasswordValidationAccount">忘记密码?</a></span>
             </el-form-item>
             <el-form-item prop="confirm" v-if="!isHasRegister">
               <el-input type="password"
                         auto-complete="off"
                         placeholder="密码确认"
+                        v-bind:class="{active: showPasswordError}"
                         v-model="enterprise1.confirm"></el-input>
+              <span class="tip passwordError" v-show="showPasswordError">两次输入密码不一致</span>
             </el-form-item>
             <el-form-item prop="email" v-if="!isHasEmail">
               <el-input type="text" v-model="enterprise1.email" auto-complete="off" placeholder="联系邮箱"></el-input>
@@ -139,8 +141,10 @@
           this.codeChecked = false
         } else {
           if (this.enterprise.code !== '') {
-            if (this.token !== '') {
-              if (this.enterprise.code !== '' && this.enterprise.mobile !== '') {
+            if (this.enterprise.mobile === '') {
+              callback(new Error('请先填写正确的手机号'))
+            } else {
+              if (this.token) {
                 let param = new FormData()
                 param.append('mobile', this.enterprise.mobile)
                 param.append('code', this.enterprise.code)
@@ -159,10 +163,16 @@
                       return Promise.reject(response.data)
                     }
                   }).catch(err => {
-                    this.$message.error(err.errMsg)
+                    this.codeErrorChecked = true
+                    this.codeErrorMsg = err.errMsg
+                  // this.$message.error(err.errMsg)
                   })
+              } else {
+                callback(new Error('请先获取验证码'))
+                this.codeChecked = false
+                this.codeErrorChecked = false
               }
-            } else {}
+            }
           }
           callback()
         }
@@ -204,7 +214,7 @@
           this.isBusinessCodeExist = false
         } else {
           if (this.enterprise1.businessCode !== '') {
-            let reg = /^[0-9]*$/
+            let reg = /^[A-Za-z0-9]+$/
             if (reg.test(value)) {
               if (value.length > 20) {
                 callback(new Error('输入长度过长,20个字符以内'))
@@ -320,6 +330,17 @@
                 callback(new Error('密码须为8-20字符的英文、数字混合'))
                 this.passwordChecked = false
               }
+              if (this.enterprise1.confirm !== '') {
+                if (value !== this.enterprise1.confirm) {
+                  this.showPasswordError = true
+                  // callback(new Error('两次输入密码不一致!'))
+                  this.passwordConfirmChecked = false
+                } else {
+                  this.passwordConfirmChecked = true
+                  this.showPasswordError = false
+                  callback()
+                }
+              }
             }
             callback()
           }
@@ -332,10 +353,14 @@
           if (value === '') {
             callback(new Error('请再次输入密码'))
             this.passwordConfirmChecked = false
+            this.showPasswordError = false
           } else if (value !== this.enterprise1.password) {
-            callback(new Error('两次输入密码不一致!'))
+            // callback(new Error('两次输入密码不一致!'))
+            this.showPasswordError = true
+            this.passwordConfirmChecked = false
           } else {
             this.passwordConfirmChecked = true
+            this.showPasswordError = false
             callback()
           }
         }
@@ -376,7 +401,9 @@
           confirm: '',
           email: ''
         },
+        showPasswordError: false,
         isShowLoading: false,
+        codeErrorMsg: '',
         checked: true,
         getCodeBtnIsDisabled: true,
         mobileChecked: false,
@@ -462,6 +489,7 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
@@ -508,15 +536,16 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
       },
 //      确认注册
       sureRegister () {
-        this.isShowLoading = true
         if (!this.isHasRegister) {
           if (this.spaceNameChecked && this.businessCodeChecked && this.vipNameChecked && this.passwordChecked && this.passwordConfirmChecked && this.emailChecked && this.checked) {
+            this.isShowLoading = true
             var url = window.location.search
             var request = {}
             if (url.indexOf('?' !== -1)) {
@@ -546,12 +575,14 @@
                   return Promise.reject(response.data)
                 }
               }).catch(err => {
+                this.isShowLoading = false
                 this.$message.error(err.errMsg)
               })
           }
         } else {
           if (this.isHasEmail) {
             if (this.spaceNameChecked && this.businessCodeChecked && this.passwordChecked) {
+              this.isShowLoading = true
               let param = new FormData()
               param.append('spaceName', this.enterprise1.spaceName)
               param.append('businessCode', this.enterprise1.businessCode)
@@ -571,11 +602,13 @@
                     return Promise.reject(response.data)
                   }
                 }).catch(err => {
+                  this.isShowLoading = false
                   this.$message.error(err.errMsg)
                 })
             }
           } else {
             if (this.spaceNameChecked && this.businessCodeChecked && this.passwordChecked && this.emailChecked) {
+              this.isShowLoading = true
               let param = new FormData()
               param.append('spaceName', this.enterprise1.spaceName)
               param.append('businessCode', this.enterprise1.businessCode)
@@ -595,6 +628,7 @@
                     return Promise.reject(response.data)
                   }
                 }).catch(err => {
+                  this.isShowLoading = false
                   this.$message.error(err.errMsg)
                 })
             }
@@ -643,7 +677,9 @@
               span.codeError-tip{
                 position: absolute;
                 top: 3px;
-                right: -105px;
+                left: 378px;
+                width: 200px;
+                text-align: left;
                 color: #ff4949;
                 font-size: 12px;
               }
@@ -737,6 +773,15 @@
                   color: #2d8cf0;
                 }
               }
+              span.tip.passwordError{
+                position: absolute;
+                top: 3px;
+                left: 380px;
+                width: 200px;
+                text-align: left;
+                color: #ff4949;
+                font-size: 12px;
+              }
               input.msg{
                 float: left;
                 width: 210px;

+ 34 - 3
components/register/PersonalRegistration.vue

@@ -18,7 +18,12 @@
               <div class="pwd low" v-show="showMsgTip4">密码强度 <em></em><em></em><em></em></div>
             </el-form-item>
             <el-form-item prop="confirm">
-              <el-input type="password" v-model="item.confirm" auto-complete="off" placeholder="密码确认"></el-input>
+              <el-input type="password"
+                        v-model="item.confirm"
+                        v-bind:class="{active: showPasswordError}"
+                        auto-complete="off"
+                        placeholder="密码确认"></el-input>
+              <span class="tip passwordError" v-show="showPasswordError">两次输入密码不一致</span>
             </el-form-item>
             <el-form-item prop="mobile">
               <el-input v-model="item.mobile"
@@ -137,6 +142,17 @@
               callback(new Error('密码须为8-20字符的英文、数字混合'))
               this.passwordChecked = false
             }
+            if (this.item.confirm !== '') {
+              if (value !== this.item.confirm) {
+                this.showPasswordError = true
+                // callback(new Error('两次输入密码不一致!'))
+                this.confirmChecked = false
+              } else {
+                this.confirmChecked = true
+                this.showPasswordError = false
+                callback()
+              }
+            }
           }
           callback()
         }
@@ -145,11 +161,14 @@
         if (value === '') {
           callback(new Error('请再次输入密码'))
           this.confirmChecked = false
+          this.showPasswordError = false
         } else if (value !== this.item.password) {
-          callback(new Error('两次输入密码不一致!'))
+          // callback(new Error('两次输入密码不一致!'))
+          this.showPasswordError = true
           this.confirmChecked = false
         } else {
           this.confirmChecked = true
+          this.showPasswordError = false
           callback()
         }
       }
@@ -234,6 +253,7 @@
           code: ''
         },
         isShowLoading: false,
+        showPasswordError: false,
         vipNameChecked: false,
         passwordChecked: false,
         confirmChecked: false,
@@ -279,8 +299,8 @@
       },
 //      表单提交
       submit () {
-        this.isShowLoading = true
         if (this.vipNameChecked && this.passwordChecked && this.confirmChecked && this.mobileChecked && this.codeChecked && this.checked) {
+          this.isShowLoading = true
           var url = window.location.search
           var request = {}
           if (url.indexOf('?' !== -1)) {
@@ -311,6 +331,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -343,6 +364,7 @@
               }, 1000)
             } else {}
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       }
@@ -481,6 +503,15 @@
               color: #ff4949;
               font-size: 12px;
             }
+            span.tip.passwordError{
+              position: absolute;
+              top: 3px;
+              left: 380px;
+              width: 200px;
+              text-align: left;
+              color: #ff4949;
+              font-size: 12px;
+            }
             input.msg{
               float: left;
               width: 210px;

+ 12 - 4
components/reset/ChangePasswordChooseStyle.vue

@@ -133,7 +133,7 @@
           this.codeChecked = false
         } else {
           if (this.valid.code !== '') {
-            if (this.token !== '') {
+            if (this.token) {
               if (this.valid.code !== '' && this.getMobile !== '') {
                 let param = new FormData()
                 param.append('mobile', this.getMobile)
@@ -154,9 +154,13 @@
                     }
                   }).catch(err => {
                     this.codeErrorMsg = err.errMsg
+                    this.codeErrorChecked = false
+                    this.codeChecked = false
                   })
               }
-            } else {}
+            } else {
+              callback(new Error('请先获取验证码'))
+            }
           }
           callback()
         }
@@ -312,13 +316,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
 //      原密码验证
       goPasswordNextStep () {
-        this.isShowLoading = true
         if (this.oldPasswordChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('password', this.valid1.password)
           let config = {
@@ -336,14 +341,15 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
       },
 //      手机号验证下一步
       goNextStep () {
-        this.isShowLoading = true
         if (this.codeChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('code', this.valid.code)
           param.append('token', this.token)
@@ -362,6 +368,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -379,6 +386,7 @@
               return Promise.reject(response.data)
             }
           }).catch(err => {
+            this.isShowLoading = false
             console.log(err)
 //          this.$message.error(err.errMsg)
           })

+ 11 - 3
components/reset/ForgetPasswordChooseStyle.vue

@@ -102,7 +102,7 @@
           this.codeChecked = false
         } else {
           if (this.valid.code !== '') {
-            if (this.token !== '') {
+            if (this.token) {
               if (this.valid.code !== '' && this.getMobile !== '') {
                 let param = new FormData()
                 param.append('mobile', this.getMobile)
@@ -122,10 +122,15 @@
                       return Promise.reject(response.data)
                     }
                   }).catch(err => {
+                    this.codeErrorChecked = true
                     this.codeErrorMsg = err.errMsg
                   })
               }
-            } else {}
+            } else {
+              callback(new Error('请先获取验证码'))
+              this.codeErrorChecked = false
+              this.codeChecked = false
+            }
           }
           callback()
         }
@@ -236,13 +241,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
 //      手机号验证下一步
       goNextStep () {
-        this.isShowLoading = true
         if (this.codeChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('code', this.valid.code)
           param.append('token', this.token)
@@ -261,6 +267,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -278,6 +285,7 @@
               return Promise.reject(response.data)
             }
           }).catch(err => {
+            this.isShowLoading = false
             console.log(err)
 //          this.$message.error(err.errMsg)
           })

+ 2 - 1
components/reset/ForgetPasswordValidationAccount.vue

@@ -86,8 +86,8 @@
     },
     methods: {
       sureAccount () {
-        this.isShowLoading = true
         if (this.mobileChecked && this.captchaChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.valid.mobile)
           param.append('captcha', this.valid.captcha)
@@ -104,6 +104,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 4 - 2
components/reset/PasswordResetNewPassword.vue

@@ -124,6 +124,7 @@
         console.log(callback)
         if (value === '') {
           callback(new Error('请再次输入密码'))
+          this.showPasswordError = false
           this.confirmChecked = false
         } else if (value !== this.newPassword.password) {
           // callback(new Error('两次输入密码不一致!'))
@@ -179,8 +180,8 @@
     },
     methods: {
       passwordSubmit () {
-        this.isShowLoading = true
         if (this.passwordChecked && this.confirmChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('password', this.newPassword.password)
           param.append('token', this.firstStepToken)
@@ -196,6 +197,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -354,7 +356,7 @@
   span.tip.passwordError{
     position: absolute;
     top: 3px;
-    left: 378px;
+    left: 380px;
     width: 200px;
     text-align: left;
     color: #ff4949;

+ 2 - 1
components/reset/PasswordResetValidQuestion.vue

@@ -150,8 +150,8 @@
       },
 //      第一步验证密保提交
       validQuestionSubmit () {
-        this.isShowLoading = true
         if (this.answer1SecondChecked && this.answer2SecondChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           let answer = []
           answer.push({'answer': this.validQuestion.answer1, id: this.id1}, {'answer': this.validQuestion.answer2, id: this.id2})
@@ -172,6 +172,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 9 - 5
components/validation/EmailValidation.vue

@@ -37,7 +37,7 @@
           <h3>验证邮箱</h3>
           <div class="step">
             <img src="/images/all/step01.png" alt=""/>
-            <div class="step-item"><span class="active">账号验证</span><span>新手机号码</span><span>设置完成</span></div>
+            <div class="step-item"><span class="active">账号验证</span><span>新邮箱地址</span><span>设置完成</span></div>
             <a @click="goPreviousStep" class="return"><img src="/images/all/return.png" alt=""/></a>
           </div>
         </div>
@@ -70,7 +70,7 @@
           <h3>验证邮箱</h3>
           <div class="step">
             <img src="/images/all/step01.png" alt=""/>
-            <div class="step-item"><span class="active">账号验证</span><span>新手机号码</span><span>设置完成</span></div>
+            <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>
@@ -91,7 +91,7 @@
           <h3>验证邮箱</h3>
           <div class="step">
             <img src="/images/all/step01.png" alt=""/>
-            <div class="step-item"><span class="active">账号验证</span><span>新手机号码</span><span>设置完成</span></div>
+            <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>
@@ -376,13 +376,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
 //      手机号验证下一步
       goNextStep () {
-        this.isShowLoading = true
         if (this.codeChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.getMobile)
           param.append('code', this.valid.code)
@@ -402,6 +403,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -419,14 +421,15 @@
               return Promise.reject(response.data)
             }
           }).catch(err => {
+            this.isShowLoading = false
             console.log(err)
 //          this.$message.error(err.errMsg)
           })
       },
 //      第一步验证密保提交
       validQuestionSubmit () {
-        this.isShowLoading = true
         if (this.answer1SecondChecked && this.answer2SecondChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           let answer = []
           answer.push({'answer': this.validQuestion.answer1, 'sort': this.sort1}, {'answer': this.validQuestion.answer2, 'sort': this.sort2})
@@ -447,6 +450,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 2 - 1
components/validation/EmailValidationSecondStep.vue

@@ -87,8 +87,8 @@
     methods: {
 //      设置新邮箱
       sendVerificationRequest () {
-        this.isShowLoading = true
         if (this.emailSecondChecked) {
+          this.isShowLoading = true
           this.$http.get(`/update/user/setEmail`, {params: {email: this.valid2.email, token: this.firstStepToken}})
             .then(response => {
               if (response.data.success) {
@@ -99,6 +99,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               console.log(err)
 //                  this.$message.error(err.errMsg)
             })

+ 6 - 2
components/validation/PhoneValidation.vue

@@ -359,13 +359,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             this.$message.error(err.errMsg)
           })
       },
 //      手机号验证下一步
       goNextStep () {
-        this.isShowLoading = true
         if (this.codeChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.getMobile)
           param.append('code', this.valid.code)
@@ -385,6 +386,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }
@@ -402,14 +404,15 @@
               return Promise.reject(response.data)
             }
           }).catch(err => {
+            this.isShowLoading = false
             console.log(err)
 //          this.$message.error(err.errMsg)
           })
       },
 //      第一步验证密保提交
       validQuestionSubmit () {
-        this.isShowLoading = true
         if (this.answer1SecondChecked && this.answer2SecondChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           let answer = []
           answer.push({'answer': this.validQuestion.answer1, 'sort': this.sort1}, {'answer': this.validQuestion.answer2, 'sort': this.sort2})
@@ -430,6 +433,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               this.$message.error(err.errMsg)
             })
         }

+ 3 - 1
components/validation/PhoneValidationSecondStep.vue

@@ -165,13 +165,14 @@
               }, 1000)
             }
           }).catch(err => {
+            this.isShowLoading = false
             console.log(err)
           })
       },
 //      设置新手机号
       setNewMobile () {
-        this.isShowLoading = true
         if (this.mobileSecondChecked && this.secondCodeChecked) {
+          this.isShowLoading = true
           let param = new FormData()
           param.append('mobile', this.valid2.mobile)
           param.append('code', this.valid2.code)
@@ -188,6 +189,7 @@
                 return Promise.reject(response.data)
               }
             }).catch(err => {
+              this.isShowLoading = false
               console.log(err)
             })
         }

二進制
static/images/all/timg.png