From d7f731c2672c6af00065fcbd1c1164b8789442b8 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期一, 17 七月 2023 17:43:41 +0800
Subject: [PATCH] 7-17主数据导出-配置新按钮
---
Source/UBCS-WEB/dist/src/router/axios.js | 84 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 84 insertions(+), 0 deletions(-)
diff --git a/Source/UBCS-WEB/dist/src/router/axios.js b/Source/UBCS-WEB/dist/src/router/axios.js
new file mode 100644
index 0000000..64b38fe
--- /dev/null
+++ b/Source/UBCS-WEB/dist/src/router/axios.js
@@ -0,0 +1,84 @@
+/**
+ * 鍏ㄧ珯http閰嶇疆
+ *
+ * axios鍙傛暟璇存槑
+ * isSerialize鏄惁寮�鍚痜orm琛ㄥ崟鎻愪氦
+ * isToken鏄惁闇�瑕乼oken
+ */
+import axios from 'axios';
+import store from '@/store/';
+import router from '@/router/router';
+import {serialize} from '@/util/util';
+import {getToken} from '@/util/auth';
+import {Message} from 'element-ui';
+import website from '@/config/website';
+import {Base64} from 'js-base64';
+import NProgress from 'nprogress';
+import 'nprogress/nprogress.css';
+
+//榛樿瓒呮椂鏃堕棿
+axios.defaults.timeout = 10000;
+//杩斿洖鍏朵粬鐘舵�佺爜
+axios.defaults.validateStatus = function (status) {
+ return status >= 200 && status <= 500;
+};
+//璺ㄥ煙璇锋眰锛屽厑璁镐繚瀛榗ookie
+axios.defaults.withCredentials = true;
+// NProgress 閰嶇疆
+NProgress.configure({
+ showSpinner: false
+});
+//http request鎷︽埅
+axios.interceptors.request.use(config => {
+ //寮�鍚� progress bar
+ NProgress.start();
+ //headers鍒ゆ柇鏄惁闇�瑕�
+ const authorization = config.authorization === false;
+ if (!authorization) {
+ config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+ }
+ //璁╂瘡涓姹傛惡甯oken
+ const meta = (config.meta || {});
+ const isToken = meta.isToken === false;
+ if (getToken() && !isToken) {
+ config.headers[website.tokenHeader] = 'bearer ' + getToken()
+ }
+ //headers涓厤缃畉ext璇锋眰
+ if (config.text === true) {
+ config.headers["Content-Type"] = "text/plain";
+ }
+ //headers涓厤缃畇erialize涓簍rue寮�鍚簭鍒楀寲
+ if (config.method === 'post' && meta.isSerialize === true) {
+ config.data = serialize(config.data);
+ }
+ return config
+}, error => {
+ return Promise.reject(error)
+});
+//http response 鎷︽埅
+axios.interceptors.response.use(res => {
+ //鍏抽棴 progress bar
+ NProgress.done();
+ //鑾峰彇鐘舵�佺爜
+ const status = res.data.code || res.status;
+ const statusWhiteList = website.statusWhiteList || [];
+ const message = res.data.msg || res.data.error_description || '鏈煡閿欒';
+ //濡傛灉鍦ㄧ櫧鍚嶅崟閲屽垯鑷catch閫昏緫澶勭悊
+ if (statusWhiteList.includes(status)) return Promise.reject(res);
+ //濡傛灉鏄�401鍒欒烦杞埌鐧诲綍椤甸潰
+ if (status === 401) store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
+ // 濡傛灉璇锋眰涓洪潪200鍚﹁�呴粯璁ょ粺涓�澶勭悊
+ if (status !== 200) {
+ Message({
+ message: message,
+ type: 'error'
+ });
+ return Promise.reject(new Error(message))
+ }
+ return res;
+}, error => {
+ NProgress.done();
+ return Promise.reject(new Error(error));
+});
+
+export default axios;
--
Gitblit v1.9.3