| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- /* eslint-disable */
- import axios from 'axios' // 引用axios
- import base from "../common/base";
- import {
- getToken, getAdminToken
- } from '@/utils/auth'
- import store from '@/store'
- import router from '@/router'
- import { Loading, Message } from 'element-ui';
- const service1 = axios.create({
- timeout: 120000 * 10
- });
- const service2 = axios.create({
- timeout: 120000 * 10
- });
- var loading = null; // loading
- /**
- * @param {Boolean} showLoading 是否显示loading
- * @param {string} loadingText 文案
- */
- function showLoading(config) {
- let data = config.method == 'get' ? config.params : config.data;
- if (data && data.showLoading) {
- loading = Loading.service({
- lock: true,
- text: data.loadingText || 'Loading...',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- });
- delete data.showLoading;
- if (data.loadingText) delete data.loadingText;
- }
- }
- function hideLoading() {
- if (loading) loading.close();
- }
- // axios 配置
- // axios.defaults.timeout = 120000 //设置接口响应时间
- service1.interceptors.request.use(
- config => {
- showLoading(config) // loading start
- // do something before request is sent
- if (store.getters.token) {
- config.headers['Authorization'] = getToken()
- }
- // 设置请求头
- // if(!config.headers["content-type"]) { // 如果没有设置请求头
- // if(config.method === 'post') {
- // config.headers["content-type"] = "application/x-www-form-urlencoded"; // post 请求
- // config.data = qs.stringify(config.data); // 序列化,比如表单数据
- // } else {
- // config.headers["content-type"] = "application/json"; // 默认类型
- // }
- // }
- return config
- }
- )
- service2.interceptors.request.use(
- config => {
- showLoading(config); // loading start
- if (store.getters.adminToken) {
- config.headers['Authorization'] = getAdminToken();
- }
- return config;
- }
- );
- // // response interceptor
- service1.interceptors.response.use(
- response => {
- hideLoading(); // loading end
- const res = response
- if (res.config.responseType == "blob") {
- return res;
- }
- // if the custom code is not 20000, it is judged as an error.
- if (res.data.code) {
- if (res.data.code >= 400) {
- // Message({message: res.data.msg,type: 'warning'})
- }
- if (res.data.code == 500) {
- // Message({message: res.data.msg,type: 'warning'})
- }
- if (res.data.code === 401) {
- //未登录 跳转到登录页
- window.location.href = base.STUDENT_LOGIN;
- }
- return Promise.resolve(res)
- } else {
- return Promise.reject(res)
- }
- },
- error => {
- console.log('err----' + error) // for debug
- if (error.response.status == 500) {
- Message({
- message: '网络请求超时,请重试!',
- type: 'warning'
- })
- }
- return Promise.reject(error)
- }
- )
- service2.interceptors.response.use(
- response => {
- hideLoading(); // loading end
- const res = response
- if (res.config.responseType == "blob") {
- return res;
- }
- // if the custom code is not 20000, it is judged as an error.
- if (res.data.code) {
- if (res.data.code >= 400) {
- Message(
- {
- message: res.data.msg,
- type: 'warning',
- duration: 5,
- })
- }
- if (res.data.code === 401) {
- store.dispatch("adminUser/adminLogout").then(() => {
- // router.push('/login')
- }).catch(err => {
- console.log(err)
- })
- }
- return Promise.resolve(res)
- } else {
- return Promise.reject(res)
- }
- },
- error => {
- console.log('err----' + error) // for debug
- if (error.response.status == 500) {
- Message({
- message: '网络请求超时,请重试!',
- type: 'warning'
- })
- }
- return Promise.reject(error)
- }
- )
- export { service1, service2 };
- /**
- * fetch 请求方法
- * @param url
- * @param params
- * @returns {Promise}
- */
- export function get(url, params = {}, useService1 = false,loginUrl) {
- const service = useService1 ? service2 : service1;
- return new Promise((resolve, reject) => {
- service.get(url, {
- params: {
- ...params
- }
- })
- .then(response => {
- resolve(response.data)
- })
- .catch(err => {
- reject(err)
- })
- })
- }
- export function downLoadByBlob(url, params = {}, useService1 = false) {
- const service = useService1 ? service2 : service1;
- return service({
- method: 'GET',
- url: url,
- responseType: 'blob',
- params,
- headers: {
- 'Accept': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/octet-stream'
- },
- })
- }
- /**
- * post 请求方法
- * @param url
- * @param data
- * @returns {Promise}
- */
- export function post(url, data = {}, useService1 = false, loginUrl) {
- const service = useService1 ? service2 : service1;
- return new Promise((resolve, reject) => {
- service.post(url, data, loginUrl).then(
- response => {
- resolve(response.data)
- },
- err => {
- reject(err)
- }
- )
- })
- }
- /**
- * 上传文件方法 (FormData)
- * @param url 请求地址
- * @param formData FormData对象
- * @param useService1 是否使用service2
- * @returns {Promise}
- */
- export function upload(url, formData, useService1 = false) {
- const service = useService1 ? service2 : service1;
- // 设置上传文件的headers
- const config = {
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- };
- return new Promise((resolve, reject) => {
- service.post(url, formData, config)
- .then(response => {
- resolve(response.data);
- })
- .catch(err => {
- reject(err);
- });
- });
- }
- /**
- * patch 方法封装
- * @param url
- * @param data
- * @returns {Promise}
- */
- export function patch(url, data = {}, useService1 = false) {
- const service = useService1 ? service2 : service1;
- return new Promise((resolve, reject) => {
- service.patch(url, data).then(
- response => {
- resolve(response.data)
- },
- err => {
- reject(err)
- }
- )
- })
- }
- /**
- * put 方法封装
- * @param url
- * @param data
- * @returns {Promise}
- */
- export function put(url, data = {}, useService1 = false) {
- const service = useService1 ? service2 : service1;
- return new Promise((resolve, reject) => {
- service.put(url, data).then(
- response => {
- resolve(response.data)
- },
- err => {
- reject(err)
- }
- )
- })
- }
- /**
- * delete 方法封装
- * @param url
- * @param params
- * @returns {Promise}
- */
- export function deleteRequest(url, params = {}, type, useService1 = false) {
- const service = useService1 ? service2 : service1;
- return new Promise((resolve, reject) => {
- if (type == 'arr') {
- service.delete(url, {
- data: {
- ...params
- }
- }).then(
- response => {
- resolve(response.data)
- },
- err => {
- reject(err)
- }
- )
- } else if (type == 'array') {
- service.delete(url, {
- data: [...params]
- }).then(
- response => {
- resolve(response.data)
- },
- err => {
- reject(err)
- }
- )
- } else {
- service.delete(url, {
- params: {
- ...params
- }
- }).then(
- response => {
- resolve(response.data)
- },
- err => {
- reject(err)
- }
- )
- }
- })
- }
|