首页 > 移动平台 > 详细

axios项目二次封装

时间:2019-03-10 16:29:41      阅读:172      评论:0      收藏:0      [点我收藏+]
import axios from ‘axios‘
import qs from ‘qs‘

const baseURL = "http://10.4.108.117:8081/"

exports.install = function (Vue, options) {
  Vue.prototype.get = function (url, data, success) {
    axios({
      url: baseURL + url,
      params: data,
      headers: {
        "token": localStorage.getItem("token")
      }
    }).then((respose) => {
      if (respose.status == 200) {
        var resultMap = respose.data;
        if (resultMap) {
          if (!resultMap.code) {
            success(resultMap);
          } else {
            if (resultMap.code == 200) {
              success(resultMap.data);
            } else {
              if (resultMap.msg) {
                let errorMsg = resultMap.msg.replace(/\d+/, "").replace("|", "");
                this.$Message.error(errorMsg);
                let _this = this;
                if (errorMsg == "帐号未登录") {
                  setTimeout(function () {
                    // 退出登录
                    _this.$store.commit(‘logout‘, this);
                    _this.$store.commit(‘clearOpenedSubmenu‘);
                    _this.$router.push({
                      name: ‘login‘
                    });
                  }, 300);
                }
              }
            }
          }
        }
      } else {
        this.$Message.error(respose.statusText);
      }
    }).catch((error) => {
    })
  };
  Vue.prototype.post = function (url, data, success) {
    axios.post(baseURL + url, qs.stringify(data), {
      headers: {
        "token": localStorage.getItem("token")
      }
    }).then((respose) => {
      if (respose.status == 200) {
        var resultMap = respose.data;
        if (resultMap) {
          if (resultMap.code == 200) {
            success(resultMap.data)
          } else {
            if (resultMap.msg) {
              let errorMsg = resultMap.msg.replace(/\d+/, "").replace("|", "");
              this.$Message.error(errorMsg);
              let _this;
              if (errorMsg == "帐号未登录") {
                setTimeout(function () {
                  // 退出登录
                  _this.$store.commit(‘logout‘, this);
                  _this.$store.commit(‘clearOpenedSubmenu‘);
                  _this.$router.push({
                    name: ‘login‘
                  });
                }, 300);
              }
            }
          }
        }
      } else {
        this.$Message.error(respose.statusText);
      }
    }).catch((error) => {
      console.log(error)
    })
  };
  Vue.prototype.postHandle = function (url, data, success) {
    axios.post(baseURL + url, qs.stringify(data)).then((respose) => {
      if (success) {
        success(respose)
      }
    }).catch((error) => {
      console.log(error)
    })
  };
  Vue.prototype.getBaseUrl = function () {
    return baseURL;
  }

  Vue.prototype.getUrlParameter = function (obj) {
    let _paramter = "?token=" + localStorage.getItem("token");
    if (obj) {
      Object.keys(obj).forEach(function (key) {
        if (typeof obj[key] == "number" || obj[key]) {
          _paramter = _paramter + "&" + key + "=" + obj[key];
        }
      });
    }
    return _paramter;
  }
}

 

axios项目二次封装

原文:https://www.cnblogs.com/caoruichun/p/9427432.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!