| New file |
| | |
| | | import axios from 'axios' |
| | | import config from '@/config/config' |
| | | import { getToken, removeAll } from '@/utils/auth' |
| | | import { signatureGenerate } from '@/utils/crypto' |
| | | import { Notification } from 'element-ui' |
| | | |
| | | |
| | | |
| | | // 创建 axios 实例 |
| | | const request = axios.create({ |
| | | // API 请求的默认前缀 |
| | | baseURL: config.BASE_API_URL, |
| | | |
| | | // 请求超时时间 |
| | | timeout: 20000, |
| | | }) |
| | | |
| | | /** |
| | | * 异常拦截处理器 |
| | | * |
| | | * @param {*} error |
| | | */ |
| | | const errorHandler = error => { |
| | | // 判断是否是响应错误信息 |
| | | if (error.response) { |
| | | if (error.response.status == 401) { |
| | | removeAll() |
| | | location.reload() |
| | | } else if (error.response.status == 403) { |
| | | Notification({ |
| | | title: '警告', |
| | | type: 'warning', |
| | | message: '无权限操作 ...', |
| | | position: 'top-right', |
| | | }) |
| | | } else { |
| | | Notification({ |
| | | message: '网络异常,请稍后再试...', |
| | | position: 'top-right', |
| | | }) |
| | | } |
| | | } |
| | | |
| | | return Promise.reject(error) |
| | | } |
| | | |
| | | // 请求拦截器 |
| | | request.interceptors.request.use(config => { |
| | | |
| | | const token = getToken() |
| | | if (token) { |
| | | config.headers['Authorization'] = `Bearer ${token}` |
| | | } |
| | | const signature = signatureGenerate(); |
| | | config.headers["Sign"] = signature.signature; |
| | | config.headers["Systemrandom"] = signature.systemRandom; |
| | | config.headers["Tissuepaper"] = signature.timestamp; |
| | | |
| | | // console.log("config => " + JSON.stringify(config)); |
| | | |
| | | return config |
| | | }, errorHandler) |
| | | |
| | | // 响应拦截器 |
| | | request.interceptors.response.use(response => { |
| | | return response.data |
| | | }, errorHandler) |
| | | |
| | | /** |
| | | * GET 请求 |
| | | * |
| | | * @param {String} url |
| | | * @param {Object} data |
| | | * @param {Object} options |
| | | * @returns {Promise<any>} |
| | | */ |
| | | export const get = (url, data = {}, options = {}) => { |
| | | return request({ |
| | | url, |
| | | params: data, |
| | | method: 'get', |
| | | ...options, |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * POST 请求 |
| | | * |
| | | * @param {String} url |
| | | * @param {Object} data |
| | | * @param {Object} options |
| | | * @returns {Promise<any>} |
| | | */ |
| | | export const post = (url, data = {}, options = {}) => { |
| | | return request({ |
| | | url, |
| | | method: 'post', |
| | | data: data, |
| | | ...options, |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 上传文件 POST 请求 |
| | | * |
| | | * @param {String} url |
| | | * @param {Object} data |
| | | * @param {Object} options |
| | | * @returns {Promise<any>} |
| | | */ |
| | | export const upload = (url, data = {}, options = {}) => { |
| | | return request({ |
| | | url, |
| | | method: 'post', |
| | | data: data, |
| | | ...options, |
| | | }) |
| | | } |