From a4d7993d0b44faffe2e548250a9d2bc27c77e521 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 19 七月 2023 12:27:46 +0800 Subject: [PATCH] 集成获取分类接口(包含编码规则码段码值信息) --- 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