| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- import router from '../router'
- import axios from 'axios'
- import qs from 'qs'
- import config from '../../static/config'
- import {
- Message,
- Loading
- } from 'element-ui'
- import {
- getToken
- } from '@/utils/auth'
- axios.defaults.timeout = 10000
- axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8;'
- //TODO:配置读取
- axios.defaults.headers['Accept-Language'] = "zh-Hans"
- // axios.defaults.baseURL = '';
- axios.defaults.baseURL = config.base.ip
- // POST传参序列化
- axios.interceptors.request.use((config) => {
- // eslint-disable-next-line eqeqeq
- if (getToken() != '') {
- config.headers.Authorization = 'Bearer ' + getToken()
- } else {
- router.replace({
- path: '/login'
- })
- }
- return config
- }, (error) => {
- return Promise.reject(error)
- })
- // 返回状态判断
- axios.interceptors.response.use((res) => {
- // return Promise.reject(res);
- return res
- }, (err) => {
- // 404等问题可以在这里处理
- if (err.response) {
- const error = err.error = {}
- switch (err.response.status) { // 判断后台返回的token值是否失效
- case 401:
- Message({
- message: '登录过期,请重新登录!',
- type: 'error',
- duration: 5 * 1000
- })
- router.replace({
- path: '/login'
- })
- return
- case 400:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 403:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 404:
- if (!err.response.data) {
- error.code = '未找到服务!'
- } else {
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- }
- break
- case 408:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 500:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 501:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 502:
- error.code = "502 Bad Gateway"
- break
- case 503:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 504:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- case 505:
- error.code = err.response.data.error.code
- error.message = err.response.data.error.message
- error.details = err.response.data.error.details
- break
- default:
- }
- return Promise.reject(err)
- } else if (err.request) {
- return Promise.reject(err.request)
- } else {
- // Something happened in setting up the request that triggered an Error
- return Promise.reject('Error', err.message)
- }
- })
- export default {
- posts(url, params) {
- return new Promise((resolve, reject) => {
- axios.post(url, params)
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: !err.error.code?err.error.message:err.error.code,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- gets(url, params) {
- return new Promise((resolve, reject) => {
- axios.get(url, {
- 'params': params
- })
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: !err.error.code?err.error.message:err.error.code,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- deletes(url, params) {
- return new Promise((resolve, reject) => {
- axios.delete(url, {
- 'params': params
- })
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: !err.error.code?err.error.message:err.error.code,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- puts(url, params) {
- return new Promise((resolve, reject) => {
- axios.put(url, params)
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: !err.error.code?err.error.message:err.error.code,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- downLoad(url, params) {
- var instance = axios.create({
- responseType: 'blob'
- })
- instance.defaults.headers.Authorization = 'Bearer ' + getToken()
- instance.defaults.headers['Accept-Language']="zh-Hans"
- return new Promise((resolve, reject) => {
- instance.get(url, {
- 'params': params
- })
- .then(response => {
- resolve(response)
- }, err => {
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- instancePosts(url, params) { // 登录
- var instance = axios.create({
- baseURL: config.auth.ip
- })
- if (params.tenant && params.tenant.trim() != '') {
- url = url + "?__tenant=" + params.tenant
- }
- var data = qs.stringify(params)
- return new Promise((resolve, reject) => {
- instance.post(url, data)
- .then(response => {
- resolve(response.data)
- }, err => {
- if (err.response.status === 400) {
- Message({
- message: '用户名或密码错误',
- type: 'error',
- duration: 5 * 1000
- })
- } else {
- Message({
- message: err.message,
- type: 'error',
- duration: 5 * 1000
- })
- }
- reject(err)
- })
- .catch((error) => {
- Message({
- message: '登录异常',
- type: 'error',
- duration: 5 * 1000
- })
- reject(error)
- })
- })
- },
- getUserInfo(url) { // 获取用户信息
- var instance = axios.create({
- baseURL: config.auth.ip
- })
- instance.defaults.headers.Authorization = 'Bearer ' + getToken()
- return new Promise((resolve, reject) => {
- instance.get(url)
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: err.message,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- getPermissions(url, params) {
- var instance = axios.create({
- baseURL: config.base.ip
- })
- instance.defaults.headers.Authorization = 'Bearer ' + getToken()
- return new Promise((resolve, reject) => {
- instance.get(url, {
- 'params': params
- })
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: err.message,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- getMenus(url, params) {
- return new Promise((resolve, reject) => {
- axios.get(url, {
- 'params': params
- })
- .then(response => {
- resolve(response.data)
- }, err => {
- Message({
- message: err.message,
- type: 'error',
- duration: 5 * 1000
- })
- reject(err)
- })
- .catch((error) => {
- reject(error)
- })
- })
- }
- }
|