From fc15f2e904fade9e1505bad70b29829d7d99c124 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期三, 05 六月 2024 12:04:59 +0800
Subject: [PATCH] 1

---
 src/utils/request.js |  109 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 86 insertions(+), 23 deletions(-)

diff --git a/src/utils/request.js b/src/utils/request.js
index 82891d0..346ff97 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,5 +1,5 @@
 import axios from 'axios';
-import { ElNotification, ElMessageBox } from 'element-plus';
+import { ElNotification, ElMessageBox, ElMessage } from 'element-plus';
 import sysConfig from "@/config";
 import tool from '@/utils/tool';
 import router from '@/router';
@@ -12,12 +12,13 @@
 axios.interceptors.request.use(
 	(config) => {
 		let token = tool.cookie.get("TOKEN");
-		if(token){
+		config.headers['Authorization'] = 'Basic c2FiZXI6c2FiZXJfc2VjcmV0'
+		if (token) {
 			config.headers[sysConfig.TOKEN_NAME] = sysConfig.TOKEN_PREFIX + token
 		}
-		if(!sysConfig.REQUEST_CACHE && config.method == 'get'){
+		if (!sysConfig.REQUEST_CACHE && config.method == 'get') {
 			config.params = config.params || {};
-			config.params['_'] = new Date().getTime();
+			// config.params['_'] = new Date().getTime();
 		}
 		Object.assign(config.headers, sysConfig.HEADERS)
 		return config;
@@ -33,6 +34,14 @@
 // HTTP response 鎷︽埅鍣�
 axios.interceptors.response.use(
 	(response) => {
+		if (response.data.code && response.data.code !== 200) {
+			// ElMessage({
+			// 	message: response.data.msg,
+			// 	type: 'warning',
+			// })
+			// return new Error()
+			// return new Error();
+		}
 		return response;
 	},
 	(error) => {
@@ -48,7 +57,7 @@
 					message: error.response.data.message || "Status:500锛屾湇鍔″櫒鍙戠敓閿欒锛�"
 				});
 			} else if (error.response.status == 401) {
-				if(!MessageBox_401_show){
+				if (!MessageBox_401_show) {
 					MessageBox_401_show = true
 					ElMessageBox.confirm('褰撳墠鐢ㄦ埛宸茶鐧诲嚭鎴栨棤鏉冮檺璁块棶褰撳墠璧勬簮锛岃灏濊瘯閲嶆柊鐧诲綍鍚庡啀鎿嶄綔銆�', '鏃犳潈闄愯闂�', {
 						type: 'error',
@@ -60,14 +69,14 @@
 							done()
 						}
 					}).then(() => {
-						router.replace({path: '/login'});
-					}).catch(() => {})
+						router.replace({ path: '/login' });
+					}).catch(() => { })
 				}
 			} else {
-				ElNotification.error({
-					title: '璇锋眰閿欒',
-					message: error.message || `Status:${error.response.status}锛屾湭鐭ラ敊璇紒`
-				});
+				// ElNotification.error({
+				// 	title: '璇锋眰閿欒',
+				// 	message: error.message || `Status:${error.response.status}锛屾湭鐭ラ敊璇紒`
+				// });
 			}
 		} else {
 			ElNotification.error({
@@ -79,6 +88,18 @@
 		return Promise.reject(error.response);
 	}
 );
+function qsStringify(obj) {
+	return Object.keys(obj)
+		.map(key => {
+			if (Array.isArray(obj[key])) {
+				return obj[key]
+					.map(arrayValue => `${encodeURIComponent(key)}=${encodeURIComponent(arrayValue)}`)
+					.join('&');
+			}
+			return `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`;
+		})
+		.join('&');
+}
 
 var http = {
 
@@ -87,7 +108,7 @@
 	 * @param  {object} params 璇锋眰鍙傛暟
 	 * @param  {object} config 鍙傛暟
 	 */
-	get: function(url, params={}, config={}) {
+	get: function (url, params = {}, config = {}) {
 		return new Promise((resolve, reject) => {
 			axios({
 				method: 'get',
@@ -97,17 +118,24 @@
 			}).then((response) => {
 				resolve(response.data);
 			}).catch((error) => {
-				reject(error);
+				if (error?.status == 400) {
+					ElMessage({
+						message: error.data.msg,
+						type: 'warning',
+					})
+				} else {
+					reject(error);
+				}
 			})
 		})
 	},
 
-	/** post 璇锋眰
+	/** post 璇锋眰 request payload
 	 * @param  {string} url 鎺ュ彛鍦板潃
 	 * @param  {object} data 璇锋眰鍙傛暟
 	 * @param  {object} config 鍙傛暟
 	 */
-	post: function(url, data={}, config={}) {
+	post: function (url, data = {}, config = {}) {
 		return new Promise((resolve, reject) => {
 			axios({
 				method: 'post',
@@ -117,17 +145,44 @@
 			}).then((response) => {
 				resolve(response.data);
 			}).catch((error) => {
+				if (error?.status == 400) {
+					ElMessage({
+						message: error.data.msg,
+						type: 'warning',
+					})
+				} else {
+					reject(error);
+				}
+			})
+		})
+	},
+	/** post 璇锋眰 query string parameters
+	 * @param  {string} url 鎺ュ彛鍦板潃
+	 * @param  {object} data 璇锋眰鍙傛暟
+	 * @param  {object} config 鍙傛暟
+	 */
+	postJ: function (url, data = {}, config = {}) {
+		return new Promise((resolve, reject) => {
+			axios({
+				method: 'post',
+				url: url,
+				headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
+				data: qsStringify(data),
+				...config
+			}).then((response) => {
+				resolve(response.data);
+			}).catch((error) => {
+				resolve(error.data);
 				reject(error);
 			})
 		})
 	},
-
 	/** put 璇锋眰
 	 * @param  {string} url 鎺ュ彛鍦板潃
 	 * @param  {object} data 璇锋眰鍙傛暟
 	 * @param  {object} config 鍙傛暟
 	 */
-	put: function(url, data={}, config={}) {
+	put: function (url, data = {}, config = {}) {
 		return new Promise((resolve, reject) => {
 			axios({
 				method: 'put',
@@ -137,6 +192,7 @@
 			}).then((response) => {
 				resolve(response.data);
 			}).catch((error) => {
+				resolve(error.data);
 				reject(error);
 			})
 		})
@@ -147,7 +203,7 @@
 	 * @param  {object} data 璇锋眰鍙傛暟
 	 * @param  {object} config 鍙傛暟
 	 */
-	patch: function(url, data={}, config={}) {
+	patch: function (url, data = {}, config = {}) {
 		return new Promise((resolve, reject) => {
 			axios({
 				method: 'patch',
@@ -167,7 +223,7 @@
 	 * @param  {object} data 璇锋眰鍙傛暟
 	 * @param  {object} config 鍙傛暟
 	 */
-	delete: function(url, data={}, config={}) {
+	delete: function (url, data = {}, config = {}) {
 		return new Promise((resolve, reject) => {
 			axios({
 				method: 'delete',
@@ -177,7 +233,14 @@
 			}).then((response) => {
 				resolve(response.data);
 			}).catch((error) => {
-				reject(error);
+				if (error.status == 400) {
+					ElMessage({
+						message: error.data.msg,
+						type: 'warning',
+					})
+				} else {
+					reject(error);
+				}
 			})
 		})
 	},
@@ -186,19 +249,19 @@
 	 * @param  {string} url 鎺ュ彛鍦板潃
 	 * @param  {string} name JSONP鍥炶皟鍑芥暟鍚嶇О
 	 */
-	jsonp: function(url, name='jsonp'){
+	jsonp: function (url, name = 'jsonp') {
 		return new Promise((resolve) => {
 			var script = document.createElement('script')
 			var _id = `jsonp${Math.ceil(Math.random() * 1000000)}`
 			script.id = _id
 			script.type = 'text/javascript'
 			script.src = url
-			window[name] =(response) => {
+			window[name] = (response) => {
 				resolve(response)
 				document.getElementsByTagName('head')[0].removeChild(script)
 				try {
 					delete window[name];
-				}catch(e){
+				} catch (e) {
 					window[name] = undefined;
 				}
 			}

--
Gitblit v1.9.3