king
2019-12-18 977ce3d348f898d64ea240c8397b83d3e1cc5bb4
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 主菜单Id
   * @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
    })
  }
@@ -205,6 +280,34 @@
      data: param
    })
  }
  /**
   * @description 通用接口(提交)
   * @param {Object} param 查询及提交参数
   */
  submitInterface (param) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    return axios({
      url: '/webapi/dostar',
      data: param
    })
  }
  // /**
  //  * @description 登出系统
  //  */
  // logoutsystem () {
  //   return axios({
  //     url: '/local/dostar',
  //     data: {
  //       func: 'logout',
  //       userid: sessionStorage.getItem('UserID')
  //     }
  //   })
  // }
}
export default new Api()