king
2020-09-10 d6c12fa87e6ab2f35f4005181cf64ec1b7a0754a
src/api/index.js
@@ -59,6 +59,11 @@
const setCurrentUrl = () => {
  if (!!(window.history && window.history.pushState)) {
    if (window.location.href.indexOf('paramsmain') > -1) {
      let _href = window.location.href.split('#')
      localStorage.setItem(_href[0] + 'paramsmain', _href[1])
    }
    sessionStorage.clear()
    window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login')
    window.location.reload()
@@ -69,7 +74,12 @@
axios.interceptors.response.use((response) => {
  if (response.data.ErrCode === 'LoginError') {
    setCurrentUrl()
    if (window.debugger === true) {
      response.data.ErrCode = 'E'
      return Promise.resolve(response.data)
    } else {
      setCurrentUrl()
    }
  } else {
    return Promise.resolve(response.data)
  }
@@ -114,20 +124,7 @@
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    param = this.encryptParam(param)
    return axios({
      url: '/webapi/dostar',
@@ -282,20 +279,7 @@
        param.rduri = window.GLOB.mainSystemApi
      }
  
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
      param = this.encryptParam(param)
  
      return new Promise((resolve, reject) => {
        axios({
@@ -407,20 +391,7 @@
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    param = this.encryptParam(param)
    return axios({
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
@@ -446,20 +417,7 @@
      param.rduri = window.GLOB.mainSystemApi
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    param = this.encryptParam(param)
    return axios({
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
@@ -477,20 +435,7 @@
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    param = this.encryptParam(param)
    return axios({
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
@@ -527,20 +472,7 @@
    _param  = md5(_param)
    
    if (mkDataBase && storUsable) {
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
      param = this.encryptParam(param)
      return new Promise(resolve => {
        mkDataBase.transaction(tx => {
@@ -587,20 +519,7 @@
    } else if (window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
      param = this.encryptParam(param)
      return new Promise(resolve => {
        axios({
@@ -627,26 +546,40 @@
  }
  /**
   * @description dostars 参数加密
   */
  encryptParam (param) {
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (param[key] === undefined) {
        delete param[key]
      } else if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign = md5(values)
    param.t = new Date().getTime()
    return param
  }
  /**
   * @description 获取系统配置,优先从缓存中取值,增加appkey
   * @param {Object}  param   请求参数
   * @param {Boolean} SSO     是否为单点登录地址
   */
  getSystemCacheConfig (param, SSO = true) {
    param.userid = sessionStorage.getItem('UserID') || ''
  getSystemCacheConfig (param) {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    if (sessionStorage.getItem('isEditState') === 'true' && SSO) { // 编辑状态,单点登录服务器为云端
      if (options.cloudServiceApi) { // 存在云端地址时,使用云端系统参数
        param.rduri = options.cloudServiceApi
        param.userid = sessionStorage.getItem('CloudUserID') || ''
        param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
      }
    } else if (window.GLOB.mainSystemApi && SSO) {
      param.rduri = window.GLOB.mainSystemApi
    }
    let _param = JSON.parse(JSON.stringify(param)) // 缓存校验,去除时间和加密字符
    delete _param.timestamp
@@ -658,20 +591,7 @@
    if (window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
      param = this.encryptParam(param)
      return new Promise(resolve => {
        axios({
@@ -702,20 +622,7 @@
      param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    param = this.encryptParam(param)
    return axios({
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
@@ -801,20 +708,7 @@
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    param = this.encryptParam(param)
    if (param.rduri) {
      param.rduri = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image')