feat: add ajax request function 94/94194/1
authorcyuamber <xuranyjy@chinamobile.com>
Fri, 23 Aug 2019 09:55:21 +0000 (17:55 +0800)
committercyuamber <xuranyjy@chinamobile.com>
Fri, 23 Aug 2019 09:55:31 +0000 (17:55 +0800)
Change-Id: Ib52fbe8c39f5d1e37dc4880c36f5a68171530d38
Issue-ID: USECASEUI-307
Signed-off-by: cyuamber <xuranyjy@chinamobile.com>
usecaseui-portal/package.json
usecaseui-portal/src/app/shared/utils/http.ts [new file with mode: 0644]

index e85f236..9bfae90 100644 (file)
@@ -28,6 +28,7 @@
     "@angular/router": "^5.2.0",
     "@ngx-translate/core": "^9.1.1",
     "@ngx-translate/http-loader": "^2.0.1",
+    "axios": "^0.19.0",
     "core-js": "^2.4.1",
     "d3": "^3.5.17",
     "echarts": "^4.1.0",
diff --git a/usecaseui-portal/src/app/shared/utils/http.ts b/usecaseui-portal/src/app/shared/utils/http.ts
new file mode 100644 (file)
index 0000000..f68ea5e
--- /dev/null
@@ -0,0 +1,63 @@
+import axios from 'axios';\r
+\r
+\r
+export default function http (url:string,data:object = {},method:any = 'get',query?:string | object):any {\r
+  return new Promise((resolve,reject) => {\r
+    method = method.trim().toLocaleLowerCase()\r
+    let promise:any;\r
+    if(method === 'get' || method === 'delete'){\r
+      // 若无参数则不传递data\r
+      let options:object;\r
+      if(JSON.stringify(data) === '{}'){\r
+        options = { method, url };\r
+      }else{\r
+        options = { method, url, params: data};\r
+      }\r
+\r
+      // 若请求方式为delete请求,则携带请求头\r
+      if(method === 'delete'){\r
+\r
+      }\r
+\r
+      promise = axios(options);\r
+\r
+    }else if (method === 'post' || method === 'put') {\r
+      if(method === 'post' && query){\r
+        let params:string;\r
+        if(<string>query){\r
+          query = JSON.parse((<string>query));\r
+        }\r
+        for(let key in <object>query){\r
+          params = '&' + key + '=' + query[key];\r
+        }\r
+        params = params.slice(1);\r
+        url += '?' + params;\r
+      }\r
+      promise = axios({\r
+        method,\r
+        url,\r
+        data,\r
+      })\r
+    }\r
+    promise\r
+      .then((response) => {\r
+        // 请求成功返回携带成功状态及响应数据的promise对象\r
+        if(response.status === 200 || 304){\r
+          resolve(response.data)\r
+        }else{\r
+          reject(response)\r
+        }\r
+      })\r
+      .catch((error) => {\r
+        if(error.status === 404){\r
+          reject('请求资源不存在')\r
+        }else{\r
+          reject(error.message)\r
+        }\r
+        \r
+      })\r
+\r
+  })\r
+}\r
+\r
+\r