From 977ce3d348f898d64ea240c8397b83d3e1cc5bb4 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 18 十二月 2019 09:23:05 +0800 Subject: [PATCH] 2019-12-18 --- src/api/index.js | 148 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 118 insertions(+), 30 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 78d5efd..026eddc 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,5 +1,6 @@ import axios from 'axios' import qs from 'qs' +import {notification } from 'antd' // axios.defaults.baseURL = 'http://qingqiumarket.cn' axios.defaults.crossDomain = true @@ -9,7 +10,7 @@ axios.interceptors.request.use((config) => { config.method = 'post' - if (config.url.includes('LoginAndRedirect')) { + if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult')) { config.data = qs.stringify(config.data) } else { config.headers.token = sessionStorage.getItem('TOKEN') || '' @@ -21,16 +22,38 @@ return Promise.reject(error) }) +const setCurrentUrl = () => { + if (!!(window.history && window.history.pushState)) { + window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') + window.location.reload() + } +} + +let GlobMap = new Map() + axios.interceptors.response.use((response) => { - return Promise.resolve(response.data) + if (response.data.ErrCode === 'LoginError') { + setCurrentUrl() + // return Promise.resolve(response.data) + } else { + return Promise.resolve(response.data) + } }, (error) => { + notification.error({ + className: 'notification-custom-error', + bottom: 0, + message: '鐘舵�佺爜-' + error.response.status + '锛岃鑱旂郴绠$悊鍛�', + placement: 'bottomRight', + duration: 15 + }) return Promise.reject(error) }) class Api { constructor() { + let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : '' if (process.env.NODE_ENV === 'production') { - axios.defaults.baseURL = document.location.origin + axios.defaults.baseURL = document.location.origin + '/' + service } else { // axios.defaults.baseURL = 'http://127.0.0.1:8888' } @@ -64,16 +87,17 @@ } }) } - + /** - * @description 鐧诲嚭绯荤粺 + * @description 鐧诲綍绯荤粺, 鑾峰彇鐢ㄦ埛淇℃伅 */ - logoutsystem () { + getusermsg (username, password) { return axios({ - url: '/local/dostar', + url: 'webapi/getjsonresult', data: { - func: 'logout', - userid: sessionStorage.getItem('UserID') + DBT: 'proc', + DBS: 'webapi_login', + DBP: JSON.stringify({ 'UserName': username, 'Password': password }) } }) } @@ -85,7 +109,7 @@ return axios({ url: '/local/dostar', data: { - func: 'ResetPassword', + func: 's_PwdUpt', userid: sessionStorage.getItem('UserID'), OriginPwd: originpwd, NewPwd: newpwd @@ -94,36 +118,87 @@ } /** - * @description 鑾峰彇涓昏彍鍗曟暟鎹� + * @description 鑾峰彇鎴栦慨鏀圭郴缁熼厤缃紝澧炲姞appkey */ - getMainMenuData () { + getSystemConfig (param) { + param.userid = sessionStorage.getItem('UserID') + param.lang = localStorage.getItem('lang') || '' + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + if (window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi + } + return axios({ url: '/webapi/dostar', - data: { - func: 'sPC_Get_MainMenu', - userid: sessionStorage.getItem('UserID'), - lang: localStorage.getItem('lang') || '', - SessionUid: sessionStorage.getItem('SessionUid') || '', - LoginUID: sessionStorage.getItem('LoginUID') || '' - } + data: param }) } /** - * @description 鑾峰彇瀛愯彍鍗曟暟鎹� - * @param {String} menuId 涓昏彍鍗旾d + * @description 鑾峰彇鎴栦慨鏀规湰鍦伴厤缃紝澧炲姞appkey */ - getSubMenuData (menuId) { + getLocalConfig (param) { + param.userid = sessionStorage.getItem('UserID') + param.lang = localStorage.getItem('lang') || '' + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + return axios({ url: '/webapi/dostar', - data: { - func: 'sPC_Get_FunMenu', - userid: sessionStorage.getItem('UserID'), - lang: localStorage.getItem('lang') || '', - SessionUid: sessionStorage.getItem('SessionUid') || '', - LoginUID: sessionStorage.getItem('LoginUID') || '', - ParentID: menuId - } + data: param + }) + } + + /** + * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey + */ + getSystemCacheConfig (param) { + param.userid = sessionStorage.getItem('UserID') + param.lang = localStorage.getItem('lang') || '' + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + if (window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi + } + + let _param = JSON.parse(JSON.stringify(param)) // 缂撳瓨鏍¢獙锛屽幓闄ゆ椂闂村拰鍔犲瘑瀛楃 + delete _param.timestamp + delete _param.secretkey + _param = JSON.stringify(_param) + + if (GlobMap.has(_param)) { + return Promise.resolve(GlobMap.get(_param)) + } else { + return new Promise(resolve => { + axios({ + url: '/webapi/dostar', + data: param + }).then(res => { + + GlobMap.set(_param, res) + resolve(res) + }) + }) + } + } + + /** + * @description 鑾峰彇涓氬姟閫氱敤鎺ュ彛 + */ + genericInterface (param) { + param.userid = sessionStorage.getItem('UserID') + param.lang = localStorage.getItem('lang') || '' + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + // param.appkey = window.GLOB.appkey || '' + + return axios({ + url: '/webapi/dostar', + data: param }) } @@ -220,6 +295,19 @@ data: param }) } + + // /** + // * @description 鐧诲嚭绯荤粺 + // */ + // logoutsystem () { + // return axios({ + // url: '/local/dostar', + // data: { + // func: 'logout', + // userid: sessionStorage.getItem('UserID') + // } + // }) + // } } export default new Api() \ No newline at end of file -- Gitblit v1.8.0