post和get的封装请求

97 阅读1分钟

image.png 1:封装,Eap.js文件

import axios from "axios"
import qs from "qs";

const eap = {

     getUserInfo: _ => JSON.parse(sessionStorage.getItem('hy-user-info')) || defUserInfo,
    getToken: _ => eap.getUserInfo().userToken || defToken,
    
    post: (url,params,cb)=>{
        params = params || {}
        let token = params.token || eap.getToken()
        delete params.token
        params.userInfo = eap.getUserInfo()
        if(params.paramsType =='keyvalue'){
            delete params.paramsType
            params = qs.stringify(params)
        }
        if(params.afterParams){
            params.afterParams(params)
        }
        return axios.post(url, params, {
            headers: { 'x-token': token }
        });
    },
    get: (url, params) => {
        params = params || {}
        params.token = params.token || eap.getToken()
        delete params.token
        params.userInfo = eap.getUserInfo()
        if (params.afterParams) {
            params.afterParams(params)
        }
        return axios.get(`${url}?${eap.queryStringify(params)}`, {
            headers: { 'x-token': token }
        });
    },
    //判断数据是否为空
    isEmpty :(v, allowBlank)=>{
        return v === null
            || v === undefined
            || (_.isArray(v) && ((!v.length)||v.length==0))
            || (!allowBlank ? (v === ''|| v ==='null'): false)
            || (_.isObject(v) && _.isEmpty(v));
        },
        
     //`qs.stringify` 是把一个参数对象格式化为一个字符串。

        let params = { c: 'b', a: 'd' };
        qs.stringify(params)
        
        // 结果是
        'c=b&a=d'

        queryStringify: (params) => {
            return qs.stringify(params);
        },
   }

export default eap

2:接口链接,SafeprodApi.js文件

  import Vue from "vue";
  import eap from "@lib/Eap.js";

    function prefix() {
        return Vue.prototype.$env != 'dev' || Vue.prototype.$useTestApi ? '/WMCenter/sfetyInput' : '/api/safeprod';
    }
    
    export default{
         async getRevisionConfigInfo(params) {
            return eap.post(`${prefix()}/standard/getRevisionConfigInfo`, params);
        },
    }
    

3:调用

   import eap from "@lib/Eap";
   import SafeprodApi from "@api/SafeprodApi.js";
   
   async findlist(){
         const resp = await SafeprodApi.getRevisionConfigInfo({
         query: {versionObjectTypeCode: this.versionObjectTypeCode,}
        });
        if (resp.success && !eap.isEmpty(resp.data.data)) {

        }
   }