|
|
@@ -0,0 +1,100 @@
|
|
|
+/**
|
|
|
+ * author 赵越
|
|
|
+ * 2018-11-04
|
|
|
+ */
|
|
|
+
|
|
|
+import axios from 'axios'
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @param {string} path 请求地址的 path
|
|
|
+ * @param {string} data 请求实体
|
|
|
+ * @param {object} payload 其他选项
|
|
|
+ * @param {object} promise 返回一个 promise
|
|
|
+ */
|
|
|
+export const get = async (path, data, payload) => {
|
|
|
+ let result = null
|
|
|
+ await request('get', path, data, payload)
|
|
|
+ .then(res => result = res)
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @param {string} path 请求地址的 path
|
|
|
+ * @param {string} data 请求实体
|
|
|
+ * @param {object} payload 其他选项
|
|
|
+ * @param {object} promise 返回一个 promise
|
|
|
+ */
|
|
|
+export const post = async (path, data = {}, payload) => {
|
|
|
+ let result = null
|
|
|
+ await request('post', path, data, payload)
|
|
|
+ .then(res => result = res)
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @param {string} path 请求地址的 path
|
|
|
+ * @param {string} data 请求实体
|
|
|
+ * @param {object} payload 其他选项
|
|
|
+ * @param {object} promise 返回一个 promise
|
|
|
+ */
|
|
|
+export const form = async (path, data = {}, payload) => {
|
|
|
+ let result = null
|
|
|
+ let formData = ''
|
|
|
+ for (const key in data) {
|
|
|
+ if (data.hasOwnProperty(key)) {
|
|
|
+ const element = data[key]
|
|
|
+ formData += `${key}=${element}&`
|
|
|
+ }
|
|
|
+ }
|
|
|
+ formData = formData.slice(0, formData.length - 1)
|
|
|
+
|
|
|
+ await request('post', path, formData, { config: { headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } } })
|
|
|
+ .then(res => result = res)
|
|
|
+
|
|
|
+ // await axios.post(path, formData, { headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'} })
|
|
|
+ // .then(res => result = res.data)
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @param {method} method 请求方法
|
|
|
+ * @param {string} path 请求地址的 path
|
|
|
+ * @param {string} data 请求实体
|
|
|
+ * @param {object} payload 其他选项
|
|
|
+ * @param {object} promise 返回一个 promise
|
|
|
+ */
|
|
|
+export const request = async (method, path, data, payload = {}) => {
|
|
|
+ let host = ''
|
|
|
+ let url = host + path
|
|
|
+ const body = {
|
|
|
+ url,
|
|
|
+ data,
|
|
|
+ method,
|
|
|
+ params: data,
|
|
|
+ }
|
|
|
+ if (payload.config) Object.assign(body, payload.config, { params: '' })
|
|
|
+
|
|
|
+ console.log(`url: ${url}`)
|
|
|
+ consoleFormat({body})
|
|
|
+
|
|
|
+ const res = await axios.request(body)
|
|
|
+ let rData = res.data
|
|
|
+ if (typeof rData !== 'object') rData = JSON.parse(rData)
|
|
|
+ consoleFormat({rData})
|
|
|
+ if(rData.status === -99) {
|
|
|
+ location.href = '/#/login'
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return rData
|
|
|
+}
|
|
|
+
|
|
|
+const consoleFormat = obj => {
|
|
|
+ const key = Object.keys(obj)[0]
|
|
|
+ console.log(key + ':')
|
|
|
+ console.dir(obj[key])
|
|
|
+ // console.log()
|
|
|
+}
|