lsw il y a 2 mois
Parent
commit
1ba71bfcab
2 fichiers modifiés avec 161 ajouts et 156 suppressions
  1. 154 154
      admin-ui/src/utils/request.js
  2. 7 2
      admin-ui/src/utils/ruoyi.js

+ 154 - 154
admin-ui/src/utils/request.js

@@ -1,176 +1,176 @@
 import Vue from 'vue';
 import axios from 'axios'
-import {Notification,MessageBox,Message,} from 'element-ui'
+import { Notification, MessageBox, Message, } from 'element-ui'
 import store from '@/store'
-import {getToken} from '@/utils/auth'
+import { getToken } from '@/utils/auth'
 import errorCode from '@/utils/errorCode'
-import {tansParams,blobValidate} from "@/utils/ruoyi";
+import { tansParams, blobValidate } from "@/utils/ruoyi";
 import cache from '@/plugins/cache'
-import {saveAs} from 'file-saver'
+import { saveAs } from 'file-saver'
 // 是否显示重新登录
-export let isRelogin = {show: false};
+export let isRelogin = { show: false };
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 // 创建axios实例
 const service = axios.create({
-	// axios中请求配置有baseURL选项,表示请求URL公共部分
-	baseURL: process.env.VUE_APP_BASE_API,
-	// 超时
-	timeout: 2000000
+  // axios中请求配置有baseURL选项,表示请求URL公共部分
+  baseURL: process.env.VUE_APP_BASE_API,
+  // 超时
+  timeout: 2000000
 })
-
 // request拦截器
 service.interceptors.request.use(config => {
-	Vue.prototype.$layer.loading({content:'请稍等!'});
-	// 是否需要设置 token
-	const isToken = (config.headers || {}).isToken === false
-	// 是否需要防止数据重复提交
-	const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
-	if (getToken() && !isToken) {
-		config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
-	}
-	// get请求映射params参数
-	if (config.method === 'get' && config.params) {
-		let url = config.url + '?' + tansParams(config.params);
-		url = url.slice(0, -1);
-		config.params = {};
-		config.url = url;
-	}
-	if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
-		const requestObj = {
-			url: config.url,
-			data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
-			time: new Date().getTime()
-		}
-		const sessionObj = cache.session.getJSON('sessionObj')
-		if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
-			cache.session.setJSON('sessionObj', requestObj)
-		} else {
-			cache.session.setJSON('sessionObj', requestObj)
-		}
-	}
-	return config
+  config.loading = config.loading || 'true';
+  if (config.loading === 'true') {
+    Vue.prototype.$layer.loading({ content: '请稍等!' });
+  }
+  // 是否需要设置 token
+  const isToken = (config.headers || {}).isToken === false
+  // 是否需要防止数据重复提交
+  const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
+  if (getToken() && !isToken) {
+    config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+  }
+  // get请求映射params参数
+  if (config.method === 'get' && config.params) {
+    let url = config.url + '?' + tansParams(config.params);
+    url = url.slice(0, -1);
+    config.params = {};
+    config.url = url;
+  }
+  if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
+    const requestObj = {
+      url: config.url,
+      data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
+      time: new Date().getTime()
+    }
+    const sessionObj = cache.session.getJSON('sessionObj')
+    if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
+      cache.session.setJSON('sessionObj', requestObj)
+    } else {
+      cache.session.setJSON('sessionObj', requestObj)
+    }
+  }
+  return config
 }, error => {
-	console.log(error)
-	Promise.reject(error)
+  console.log(error)
+  Promise.reject(error)
 })
-
 // 响应拦截器
 service.interceptors.response.use(res => {
-		setTimeout(() => {
-			Vue.prototype.$layer.closeAll('loading');
-		}, 500);
-		// 未设置状态码则默认成功状态
-		const code = res.data.code || 200;
-		// 获取错误信息
-		const msg = errorCode[code] || res.data.msg || errorCode['default']
-		// 二进制数据则直接返回
-		if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
-			return res.data
-		}
-		if (code === 401) {
-			if (!isRelogin.show) {
-				isRelogin.show = true;
-				MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
-					confirmButtonText: '重新登录',
-					cancelButtonText: '取消',
-					type: 'warning'
-				}).then(() => {
-					isRelogin.show = false;
-					store.dispatch('LogOut').then(() => {
-//						location.href = '/admin/index';
-						location.href = '/index';
-					})
-				}).catch(() => {
-					isRelogin.show = false;
-				});
-			}
-			return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
-		} else if (code === 500) {
-			Message({
-				message: msg,
-				type: 'error'
-			})
-			return Promise.reject(new Error(msg))
-		} else if (code !== 200) {
-			Notification.error({
-				title: '错误',
-				message: msg
-			})
-			return Promise.reject('error')
-		} else {
-			return res.data
-		}
-	},
-	error => {
-		console.log('err' + error)
-		setTimeout(() => {
-			Vue.prototype.$layer.closeAll('loading');
-		}, 500);
-		let {message} = error;
-		if (message == "Network Error") {
-			message = "后端接口连接异常";
-		} else if (message.includes("timeout")) {
-			message = "系统接口请求超时";
-		} else if (message.includes("Request failed with status code")) {
-			message = "系统接口" + message.substr(message.length - 3) + "异常";
-		}
-		Message({message: message,type: 'error',duration: 5 * 1000})
-		return Promise.reject(error)
-	}
+    setTimeout(() => {
+      Vue.prototype.$layer.closeAll('loading');
+    }, 500);
+    // 未设置状态码则默认成功状态
+    const code = res.data.code || 200;
+    // 获取错误信息
+    const msg = errorCode[code] || res.data.msg || errorCode['default']
+    // 二进制数据则直接返回
+    if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
+      return res.data
+    }
+    if (code === 401) {
+      if (!isRelogin.show) {
+        isRelogin.show = true;
+        MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
+          confirmButtonText: '重新登录',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          isRelogin.show = false;
+          store.dispatch('LogOut').then(() => {
+            //						location.href = '/admin/index';
+            location.href = '/index';
+          })
+        }).catch(() => {
+          isRelogin.show = false;
+        });
+      }
+      return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+    } else if (code === 500) {
+      Message({
+        message: msg,
+        type: 'error'
+      })
+      return Promise.reject(new Error(msg))
+    } else if (code !== 200) {
+      Notification.error({
+        title: '错误',
+        message: msg
+      })
+      return Promise.reject('error')
+    } else {
+      return res.data
+    }
+  },
+  error => {
+    console.log('err' + error)
+    setTimeout(() => {
+      Vue.prototype.$layer.closeAll('loading');
+    }, 500);
+    let { message } = error;
+    if (message == "Network Error") {
+      message = "后端接口连接异常";
+    } else if (message.includes("timeout")) {
+      message = "系统接口请求超时";
+    } else if (message.includes("Request failed with status code")) {
+      message = "系统接口" + message.substr(message.length - 3) + "异常";
+    }
+    Message({ message: message, type: 'error', duration: 5 * 1000 })
+    return Promise.reject(error)
+  }
 )
-
 // 通用下载方法
 export function download(url, params, filename, config) {
-	Notification.success({
-		title: '提示',
-		message: '开始下载...'
-	})
-	return service.post(url, params, {
-		transformRequest: [(params) => {
-			return tansParams(params)
-		}],
-		headers: {
-			'Content-Type': 'application/x-www-form-urlencoded'
-		},
-		responseType: 'blob',
-		...config
-	}).then(async (data) => {
-		const isLogin = await blobValidate(data);
-		if (isLogin) {
-			const blob = new Blob([data])
-			saveAs(blob, filename)
-		} else {
-			const resText = await data.text();
-			const rspObj = JSON.parse(resText);
-			const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
-			Message.error(errMsg);
-		}
-	}).catch((r) => {
-		console.error(r)
-		Message.error('下载文件出现错误,请联系管理员!')
-	})
+  Notification.success({
+    title: '提示',
+    message: '开始下载...'
+  })
+  return service.post(url, params, {
+    transformRequest: [(params) => {
+      return tansParams(params)
+    }],
+    headers: {
+      'Content-Type': 'application/x-www-form-urlencoded'
+    },
+    responseType: 'blob',
+    ...config
+  }).then(async (data) => {
+    const isLogin = await blobValidate(data);
+    if (isLogin) {
+      const blob = new Blob([data])
+      saveAs(blob, filename)
+    } else {
+      const resText = await data.text();
+      const rspObj = JSON.parse(resText);
+      const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+      Message.error(errMsg);
+    }
+  }).catch((r) => {
+    console.error(r)
+    Message.error('下载文件出现错误,请联系管理员!')
+  })
 }
 // 通用下载方法
-export function fileDownload(url,fileName) {
-	Notification.success({
-		title: '提示',
-		message: '开始下载...'
-	})
-	axios({
-		url: url,
-		method: 'GET',
-		responseType: 'arraybuffer',
-		onDownloadProgress: progressEvent => {
-			const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
-			console.log(percentCompleted); // 可以将进度显示在控制台或其他位置
-		}
-	}).then(response => {
-		const blob = new Blob([response.data]);
-		const link = document.createElement('a');
-		link.href = URL.createObjectURL(blob);
-		link.download =fileName;
-		link.click();
-		URL.revokeObjectURL(link.href);
-	});
+export function fileDownload(url, fileName) {
+  Notification.success({
+    title: '提示',
+    message: '开始下载...'
+  })
+  axios({
+    url: url,
+    method: 'GET',
+    responseType: 'arraybuffer',
+    onDownloadProgress: progressEvent => {
+      const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
+      console.log(percentCompleted); // 可以将进度显示在控制台或其他位置
+    }
+  }).then(response => {
+    const blob = new Blob([response.data]);
+    const link = document.createElement('a');
+    link.href = URL.createObjectURL(blob);
+    link.download = fileName;
+    link.click();
+    URL.revokeObjectURL(link.href);
+  });
 }
-export default service
+export default service

+ 7 - 2
admin-ui/src/utils/ruoyi.js

@@ -254,10 +254,12 @@ export function get(opt) {
   opt = opt || {};
   opt.url = opt.url || '';
   opt.data = opt.data || null;
+  opt.loading = opt.loading || 'true';
   return request({
     url: opt.url,
     method: 'get',
-    params: opt.data
+    params: opt.data,
+    loading:opt.loading
   })
 }
 // 通用请求
@@ -266,17 +268,20 @@ export function ajax(opt) {
   opt.method = opt.method || 'get';
   opt.url = opt.url || '';
   opt.data = opt.data || null;
+  opt.loading = opt.loading || 'true';
   if (opt.method == 'get' || opt.method == 'delete') {
     return request({
       url: opt.url,
       method: opt.method,
       params: opt.data,
+      loading:opt.loading
     })
   } else {
     return request({
       url: opt.url,
       method: opt.method,
-      data: opt.data
+      data: opt.data,
+      loading:opt.loading
     })
   }
 }