123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- import axios from "axios";
- import qs from "qs";
- import { MessageBox, Notification } from "element-ui";
- import router from "../router";
- import Vue from "vue";
- const mdData = datas => {
- return {
- ...datas,
- schoolId: Vue.ls.get("schoolId"),
- userId: Vue.ls.get("user", { id: "" }).id
- };
- };
- /**
- * errorCallback 请求失败的回调
- * @param {Object} error 请求失败时的错误信息
- */
- const errorCallback = error => {
- let message = "";
- if (error.response) {
- message =
- (error.response.data && error.response.data.message) || "服务错误";
- } else if (error.request) {
- message = "请求错误";
- if (error.message.indexOf("timeout") > -1) {
- message = "请求超时";
- }
- } else {
- return error;
- }
- message = message.indexOf("###") !== -1 ? "参数错误" : message;
- Notification.error({ title: "错误提示", message });
- return error;
- };
- /**
- * errorDataCallback 请求成功,结果有误的回调
- * @param {Object} error Response中的data信息
- */
- const errorDataCallback = error => {
- let message = error.message || "数据错误";
- message = message.indexOf("###") !== -1 ? "参数错误" : message;
- // TODO:自定义处理逻辑,以下为epcc实例
- if (error.code === "106") {
- message = "身份验证失效,请重新登录";
- MessageBox.confirm(message, "重新登陆?", {
- cancelButtonClass: "el-button--primary",
- confirmButtonClass: "el-button--default-act",
- type: "error",
- callback: action => {
- if (action !== "confirm") return;
- Vue.ls.clear();
- router.push({ name: "Login" });
- }
- });
- } else {
- Notification.error({ title: "错误提示", message });
- }
- return error;
- };
- /**
- * response format
- * {
- config, header, data, request, status, statusText
- }
- *
- */
- /**
- * successCallback 请求成功的回调
- * @param {Object} data Response中的data信息
- */
- const successCallback = data => {
- if (data.code === "200") {
- return data.data;
- } else {
- throw new Error(errorDataCallback(data));
- }
- };
- /**
- * get请求
- * @param {String} url 请求地址
- * @param {Object} datas 请求数据
- */
- const $get = (url, datas) => {
- const sqDatas = qs.stringify(mdData(datas), {
- arrayFormat: "brackets"
- });
- url += "?" + sqDatas;
- return axios
- .get(url)
- .then(rep => {
- return successCallback(rep.data);
- })
- .catch(error => {
- throw new Error(errorCallback(error));
- });
- };
- /**
- * post请求
- * @param {String} url 请求地址
- * @param {Object} datas 请求数据
- */
- const $post = (url, datas, config = {}) => {
- let sqDatas = {};
- if (datas.constructor === Object) {
- sqDatas = mdData(datas);
- } else {
- sqDatas = datas;
- }
- return axios
- .post(url, sqDatas, config)
- .then(rep => {
- return successCallback(rep.data);
- })
- .catch(error => {
- throw new Error(errorCallback(error));
- });
- };
- /**
- * delete请求
- * @param {String} url
- * @param {Object} datas
- */
- const $del = (url, datas) => {
- let sqDatas = "";
- if (datas) {
- sqDatas = qs.stringify(datas, { arrayFormat: "brackets" });
- url += "?" + sqDatas;
- }
- return axios
- .delete(url)
- .then(rep => {
- return rep.data;
- })
- .catch(error => {
- throw new Error(errorCallback(error));
- });
- };
- /**
- * put 请求
- * @param {String} url 请求地址
- * @param {Object} datas 请求数据
- */
- const $put = (url, datas) => {
- let sqDatas = "";
- if (datas) {
- sqDatas = qs.stringify(datas);
- }
- return axios
- .put(url, sqDatas)
- .then(rep => {
- return rep.data;
- })
- .catch(error => {
- throw new Error(errorCallback(error));
- });
- };
- /**
- * patch请求
- * @param {String} url 请求地址
- * @param {Object} datas 请求数据
- */
- const $patch = (url, datas) => {
- let sqDatas = "";
- if (datas) {
- sqDatas = qs.stringify(datas);
- }
- return axios
- .patch(url, sqDatas)
- .then(rep => {
- return rep.data;
- })
- .catch(error => {
- throw new Error(errorCallback(error));
- });
- };
- export { $get, $post, $del, $put, $patch };
|