/**
* axios + vue
*/
let baseUrl = `/api`;
let mixin = {
data: function () {
return {
params: {
page: 1,
rows: 10,
sort: "id",
order: "asc",
keyword: ""
},
fileUrl: `${baseUrl}/file/upload`,
imageUrl: `${baseUrl}/image`
};
},
methods: {
/**
* GET 请求
* @param url 请求地址
* @param params 请求参数
* }
*/
getData: async function (url, params = {}) {
let queryString = getQueryString(params);
url = queryString ? `${url}?${queryString}` : url;
let requestUrl = `${baseUrl}/${url}`;
let resp = await axios.get(requestUrl);
let result = resp["data"];
return result;
},
/**
*
* 将 {"page": 1, "rows": 10} 转换成
* page=1&rows=10
*
* @param params 参数对象
* @return string 结果字符串
*
*/
getQueryString(params) {
let queryStringArr = [];
if (params && Object.keys(params).length > 0) {
Object.keys(params).forEach(key => {
let value = params[key];
if (Array.isArray(value)) {
let arrStr = value.toString();
let arr = arrStr.split(",");
arr.forEach(item => {
if (item) {
queryStringArr.push(`${key}=${item}`);
}
});
} else {
if (value) {
queryStringArr.push(`${key}=${value}`);
}
}
});
}
return queryStringArr.join('&');
},
/**
* POST 提交 json
* @param url 提交地址
* @param body 提交数据 json
*/
postData: async function (url, data) {
let requestUrl = `${baseUrl}/${url}`;
let resp = await axios.post(requestUrl, data);
let result = resp["data"];
return result;
},
/**
* 提交表单
* @param url 提交地址
* @param formData 表单
* @param config 请求配置
*/
postFormData: async function (
url,
formData,
config = { headers: { ContentType: "application/x-www-form-urlencoded" } }
) {
let requestUrl = `${baseUrl}/${url}`;
let resp = await axios.post(requestUrl, formData, config);
let result = resp["data"];
return result;
}
}
};
转载于:https://www.cnblogs.com/rexunil/p/10258248.html