0.0.9 • Published 2 years ago

@hnutils/utils v0.0.9

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

@hn-utils/utils

http包下载

npm install @hnutils/utils

http使用

http.js

import { httpClientInstall } from '@hnutils/utils';
Vue.use(httpClientInstall, {
  loading(config, msg) {
    // loading
    console.log(config);
  },
  error(response) {
    // error-inspect
    console.log('response', response);
    if (response.status === 404) {
      message.error('网络异常');
    }
    if (response.status !== 401 && response.status !== 404) {
      if (response.data) {
        message.error(response.data.message || response.data.error);
      } else if (response.message) {
        message.error(response.message);
      } else if (response.error) {
        message.error(response.error);
      } else {
        message.error(response)
      }
    }
  },
  streamTypes: ['application/vnd.ms-excel;charset=UTF-8'],  // 不需要对返回对象处理的content-type
  clear() {
  },
  responseCb(response) {
    console.log('response-inspect', responseCb);
  },
  errHeader: {
    'x-test': '我是x-test请求头报错返回'   // 用于自定义处理请求头特定报错
  },
  requestCb(config) {
    console.log('request-inspect', config);
    <!-- const _sign = window.location.search.split('tgt=')[1];
    if (_sign) {
      setToken(_sign);
    }
    const meta = config.meta || {};
    const isToken = meta.isToken === false;
    if (getToken() && !isToken) {
      config.headers[website.Authorization] = website.Authorization + getToken(); // 让每个请求携带token--['Authorization']为自定义key 请根据实际情况自行修改
    }
    config.headers['csrftoken'] = createCSRFToken(config.url); -->
  },
  encrypt: process.env.NODE_ENV === 'local' ? false : website.VUE_APP_ENCRYPT === 'encrypt', // 加解密
  gateway: process.env.NODE_ENV !== 'local' ? website.VUE_APP_GATEWAY + website.VUE_APP_BASE_API : '',  // 网关
  baseApi: process.env.NODE_ENV !== 'local' ? website.VUE_APP_BASE_API : '',  // baseApi
  mode: process.env.NODE_ENV === 'local' ? 'debugRemote' : '' // local: 本地不加网关; debugRemote:本地加网关;
});
export default Vue.prototype.$http;

api.js

import request from './http.js';
const xxx = {
  getTableData(data) {
    return request({
      url: 'xxx',
      method: 'post',
      data: data,
      closeEncrypt: true   // 单个关闭加密
      responseType: 'blob' // 文件类型上传,对返回实体不做任何处理
    });
  },
};
export default xxx;

http代理

// 加密接口,本地调试默认加上/proxy代理
getBaseUrl() {
    if (this.options.mode === 'local') {
      return '/proxy${this.options.gateway}';
    }
    if (this.options.mode === 'debugRemote') {
      return `/proxy${this.options.gateway}`;
    }
    return '';
  }
// 其他接口,默认加/proxy代理
getBaseUrl() {
    if (this.options.mode === 'local') {
      return '/proxy';
    }
    if (this.options.mode === 'debugRemote') {
      return `/proxy${this.options.gateway}${this.options.baseApi}`;
    }
    return `${this.options.gateway}${this.options.baseApi}`;
  }
// vue.config.js文件代理相关
devServer: {
    proxy: {
      '/proxy': {
        target: 'http://172.16.120.88:9999', //代理地址,这里设置的地址会代替axios中设置的baseURL
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite: { '/proxy': '' }
      }
    },
  },
0.0.9

2 years ago

0.0.8

2 years ago

0.0.5

2 years ago

0.0.7

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago