From 64670f4cc6ea077f7794b46fcc4b92845b0a66b3 Mon Sep 17 00:00:00 2001
From: xiexiaoqin <xie.xiaoqin@mingwork.com>
Date: Wed, 22 Apr 2020 15:58:09 +0800
Subject: [PATCH] perf:修改登录和请求

---
 api/login.js  | 33 ++++++++++++++++++---------------
 api/xFetch.js | 29 ++++++++++++++++++++++-------
 2 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/api/login.js b/api/login.js
index 8f87c74..49d0ea4 100644
--- a/api/login.js
+++ b/api/login.js
@@ -18,31 +18,34 @@ export default async function login() {
           method: 'POST',
           dataType: 'json',
           success: function (res) {
-            const { oapiUser } = res.data.data;
-            getApp().globalData.token = res.data.data.accessToken.access_token;
-            getApp().globalData.name = res.data.data.oapiUser.name;
-            getApp().globalData.userid = res.data.data.oapiUser.userid;
-            getApp().globalData.avatar = res.data.data.oapiUser.avatar;
-            getApp().globalData.userInfo = JSON.stringify({
-              username: oapiUser.name,
-              userId: oapiUser.userid,
-              headUrl: oapiUser.avatar,
-              platform: "dingtalk"
-            });
-            lock = false;
-            resolve(res)
+            if (res.data.code == 0) {
+              const { oapiUser } = res.data.data;
+              getApp().globalData.token = res.data.data.accessToken.access_token;
+              getApp().globalData.name = res.data.data.oapiUser.name;
+              getApp().globalData.userid = res.data.data.oapiUser.userid;
+              getApp().globalData.avatar = res.data.data.oapiUser.avatar;
+              getApp().globalData.userInfo = JSON.stringify({
+                username: oapiUser.name,
+                userId: oapiUser.userid,
+                headUrl: oapiUser.avatar,
+                platform: "dingtalk"
+              });
+              lock = false;
+              resolve(res)
+            } else {
+              lock = false;
+              reject(res.data);
+            }
           },
           fail: function (err) {
             lock = false;
             reject(err);
-            console.log('err:' + err);
           }
         })
       },
       fail: function (err) {
         lock = false;
         reject(err);
-        console.log('fail:' + err);
       }
     })
   })
diff --git a/api/xFetch.js b/api/xFetch.js
index 5af61ef..6bfe439 100644
--- a/api/xFetch.js
+++ b/api/xFetch.js
@@ -1,3 +1,5 @@
+import login from "./login";
+
 export default function xFetch({ url, method, data, type }) {
     if (type == 'binding') {
         url = `${getApp().globalData.globalUrl2}${url}`
@@ -14,22 +16,35 @@ export default function xFetch({ url, method, data, type }) {
             method: method,
             dataType: "json",
             data: data,
-            timeout: 10000,
+            timeout: 15000,
             success: function (res) {
                 if (res.data.code == 0) {
                     resolve(res);
                 } else {
-                    rejects({ ...res.data, refresh: true });
-                    dd.alert({
-                        content: res.data.msg || "请求数据异常",
-                        buttonText: "确定"
-                    });
+                    if (res.data.code == 401) {
+                        login();
+                    }
+                    alertOnce('请求异常,请重试', rejects);
                 }
             },
             fail: function (err) {
-                rejects({ refresh: true });
+                alertOnce('网络异常,请重试', rejects);
             }
         });
     });
 }
 
+let alert = false;
+function alertOnce(content, rejects) {
+    if (alert == false) {
+        dd.alert({
+            content: content,
+            buttonText: "确定",
+            success: () => {
+                rejects({ refresh: true });
+                alert = false;
+            }
+        });
+    }
+    alert = true;
+}
\ No newline at end of file
--
libgit2 0.26.0