Browse Source

移动登录页面代理页面登录延时问题

hangb 7 years ago
parent
commit
e7880a397a
2 changed files with 78 additions and 14 deletions
  1. 39 7
      components/mobile/loginMobile.vue
  2. 39 7
      pages/agency/index.vue

+ 39 - 7
components/mobile/loginMobile.vue

@@ -155,15 +155,25 @@
                 for (let n in param) {
                   a += (n + '=' + param[n] + '&')
                 }
+                // for (let i in response.data.content.loginUrls) {
+                //   this.$jsonp(`${response.data.content.loginUrls[i]}?` + a.substr(0, a.length - 1), function (err) {
+                //     if (err) throw err
+                //   })
+                // }
+                this.$indicator.open('跳转中...')
+                const crossAfter = this.crossAfter
+                let promises = []
                 for (let i in response.data.content.loginUrls) {
-                  this.$jsonp(`${response.data.content.loginUrls[i]}?` + a.substr(0, a.length - 1), function (err) {
-                    if (err) throw err
-                  })
+                  promises.push(this.getJsonp(`${response.data.content.loginUrls[i]}?` + a.substr(0, a.length - 1)))
                 }
-                this.$indicator.open('跳转中...')
-                setTimeout(function () {
-                  window.location.href = response.data.content.returnUrl || 'http://www.ubtob.com'
-                }, 3000)
+                Promise.all(promises).then(() => {
+                  crossAfter(response.data.content.returnUrl || 'http://www.ubtob.com')
+                }).catch(() => {
+                  crossAfter(response.data.content.returnUrl || 'http://www.ubtob.com')
+                })
+                // setTimeout(function () {
+                //   window.location.href = response.data.content.returnUrl || 'http://www.ubtob.com'
+                // }, 3000)
               }
             } else {
               this.login.password = ''
@@ -191,6 +201,28 @@
               iconClass: 'el-icon-error'
             })
           })
+      },
+      getJsonp: function (url) {
+        return new Promise((resolve, reject) => {
+          this.$jsonp(url, {
+            name: 'successCallback',
+            timeout: 200
+          }, function (err, data) {
+            if (err) {
+              reject(err)
+              throw err
+            } else {
+              resolve(data)
+            }
+          })
+        })
+      },
+      crossAfter (url) {
+        try {
+          window.location.href = url
+        } catch (err) {
+          console.log(err)
+        }
       }
     }
   }

+ 39 - 7
pages/agency/index.vue

@@ -75,15 +75,25 @@
                 for (let n in param) {
                   a += (n + '=' + param[n] + '&')
                 }
+                const crossAfter = this.crossAfter
+                let promises = []
                 for (let i in response.data.content.loginUrls) {
-                  this.$jsonp(`${response.data.content.loginUrls[i]}?` + a.substr(0, a.length - 1), function (err, data) {
-                    if (err) throw err
-                    console.log(data)
-                  })
+                  promises.push(this.getJsonp(`${response.data.content.loginUrls[i]}?` + a.substr(0, a.length - 1)))
                 }
-                setTimeout(function () {
-                  window.location.href = response.data.content.returnUrl || 'http://www.ubtob.com'
-                }, 3000)
+                Promise.all(promises).then(() => {
+                  crossAfter(response.data.content.returnUrl || 'http://www.ubtob.com')
+                }).catch(() => {
+                  crossAfter(response.data.content.returnUrl || 'http://www.ubtob.com')
+                })
+                // for (let i in response.data.content.loginUrls) {
+                //   this.$jsonp(`${response.data.content.loginUrls[i]}?` + a.substr(0, a.length - 1), function (err, data) {
+                //     if (err) throw err
+                //     console.log(data)
+                //   })
+                // }
+                // setTimeout(function () {
+                //   window.location.href = response.data.content.returnUrl || 'http://www.ubtob.com'
+                // }, 3000)
               }
             } else {
               return Promise.reject(response.data)
@@ -91,6 +101,28 @@
           }).catch(err => {
             this.$message.error(err.errMsg)
           })
+      },
+      getJsonp: function (url) {
+        return new Promise((resolve, reject) => {
+          this.$jsonp(url, {
+            name: 'successCallback',
+            timeout: 200
+          }, function (err, data) {
+            if (err) {
+              reject(err)
+              throw err
+            } else {
+              resolve(data)
+            }
+          })
+        })
+      },
+      crossAfter (url) {
+        try {
+          window.location.href = url
+        } catch (err) {
+          console.log(err)
+        }
       }
     }
   }