From fd7586c8d91473d2850af1e48b12f1a289e6b8d1 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期四, 13 六月 2024 00:10:43 +0800 Subject: [PATCH] 新增文件 --- 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