king
2024-06-21 2bccb9ec7bdefe23292a22bc153463cfa1479a49
src/api/index.js
@@ -15,7 +15,8 @@
window.GLOB.$error = false
let service = window.GLOB.service ? '-' + window.GLOB.service.replace('/', '') : ''
let db = `mkdb${service}`
let lang = sessionStorage.getItem('lang') !== 'zh-CN' ? sessionStorage.getItem('lang') : ''
let db = `mkdb${service + lang}`
if (window.indexedDB) {
  CacheUtils.openIndexDB(db)
@@ -57,6 +58,9 @@
    return Promise.reject(response.data)
  } else {
    if (response.config.requestId) {
      response.data.$requestId = response.config.requestId
    }
    return Promise.resolve(response.data)
  }
}, (error) => {
@@ -94,13 +98,16 @@
  }
  /**
   * @description 微信业务请求
   * @description 微信业务请求 原接口 'wxpay/getaccesstoken'
   */
  wxAccessToken (domain = '') {
    let _url = window.GLOB.baseurl + 'wxpay/getaccesstoken'
    let _url = domain || window.GLOB.baseurl
    if (domain) {
      _url = domain + 'wxpay/getaccesstoken'
    if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) {
      _url = _url.replace('http://qingqiumarket.cn', 'http://qingqiumarket.cn:8080')
      _url = _url.replace('http://cloud.mk9h.cn', 'http://cloud.mk9h.cn:8080')
      _url = _url.replace('https://qingqiumarket.cn', 'https://qingqiumarket.cn:8443')
      _url = _url.replace('https://cloud.mk9h.cn', 'https://cloud.mk9h.cn:8443')
    }
    return new Promise(resolve => {
@@ -109,13 +116,15 @@
      } else {
        window.GLOB.accessToken = {domain}
        axios({
          url: _url,
          method: 'get'
          url: _url + 'wechat/jsapi/getaccesstoken',
          method: 'post',
          headers: { 'Content-Type': 'application/json' },
          data: JSON.stringify({appId: 'wx4d8a34c8d4494872'})
        }).then(res => {
          if (res.oa_access_token || res.mini_access_token) {
          if (res.oa_access_token) {
            window.GLOB.accessToken.accessTime = parseInt(new Date().getTime() / 1000)
            window.GLOB.accessToken.oa_access_token = res.oa_access_token
            window.GLOB.accessToken.mini_access_token = res.mini_access_token
            // window.GLOB.accessToken.mini_access_token = res.mini_access_token
          }
          resolve(res)
        })
@@ -125,6 +134,7 @@
  /**
   * @description 微信业务请求
   * 39上 qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn
   */
  wxNginxRequest (url, method, param) {
    let _url = url
@@ -134,16 +144,11 @@
      if (process.env.NODE_ENV === 'production') {
        _url = document.location.origin + '/' + url
      }
      if (/^http:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
        _url = window.GLOB.location + ':8080/' + url
        if (process.env.NODE_ENV === 'production') {
          _url = document.location.origin + ':8080/' + url
        }
      } else if (/^https:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
        _url = window.GLOB.location + ':8443/' + url
        if (process.env.NODE_ENV === 'production') {
          _url = document.location.origin + ':8443/' + url
        }
      if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) {
        _url = _url.replace('http://qingqiumarket.cn', 'http://qingqiumarket.cn:8080')
        _url = _url.replace('http://cloud.mk9h.cn', 'http://cloud.mk9h.cn:8080')
        _url = _url.replace('https://qingqiumarket.cn', 'https://qingqiumarket.cn:8443')
        _url = _url.replace('https://cloud.mk9h.cn', 'https://cloud.mk9h.cn:8443')
      }
    }
    
@@ -398,7 +403,7 @@
        this.getSystemConfig(param).then(res => {
          if (!res.status) {
            reject()
            reject(res.message)
            return
          }
@@ -438,7 +443,7 @@
          CacheUtils.updateIndexDBversion({version: res.app_version || '1.00', createDate: curTime})
          resolve()
          resolve(list)
        })
      }, () => {
        reject()
@@ -645,7 +650,7 @@
    param.sign = md5(values)
    param.t = new Date().getTime();
    ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => {
    ['arr_field', 'custom_script', 'LText', 'DateCount'].forEach(key => {
      if (param[key]) {
        let val = param[key]
        delete param[key]
@@ -659,7 +664,7 @@
  /**
   * @description 获取系统配置,优先从缓存中取值,增加appkey
   * @param {Object}  param   请求参数
   * @param {Boolean} SSO     是否为单点登录地址
   * @param {Boolean} cache   是否使用缓存
   */
  getSystemCacheConfig (param, cache = true) {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
@@ -755,7 +760,7 @@
      param = this.encryptParam(param)
      axios({
        url: token.interface,
        url: `${token.interface}${param.func ? '/' + param.func : ''}`,
        method: 'post',
        data: JSON.stringify(param)
      }).then(res => {
@@ -804,7 +809,7 @@
          param = this.encryptParam(param)
          axios({
            url: token.interface,
            url: `${token.interface}${param.func ? '/' + param.func : ''}`,
            method: 'post',
            data: JSON.stringify(param)
          }).then(res => {
@@ -834,7 +839,7 @@
   * @description 获取业务通用接口
   * 访问 'https://sso.mk9h.cn/webapi/dostars'或云端时,传入userid、LoginUID
   */
  genericInterface (param) {
  genericInterface (param, script = '', position, requestId = '') {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.lang = param.lang || sessionStorage.getItem('lang') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
@@ -852,9 +857,6 @@
      param.fullname = sessionStorage.getItem('Full_Name') || ''
    }
    let login = false
    let rduri = null
    if (param.rduri && /\s|\n/.test(param.rduri)) {
      param.rduri = param.rduri.replace(/\s|\n/g, '')
      if (!param.rduri) {
@@ -862,31 +864,50 @@
      }
    }
    if (param.$login && !window.GLOB.transfer) {
      login = true
      rduri = param.rduri || ''
    }
    delete param.$login
    if (script) {
      try {
        // eslint-disable-next-line
        let func = new Function('axios', 'Api', 'param', 'position', 'systemType', 'notification', script)
        let promise = func(axios, this, param, position, window.GLOB.systemType, notification)
    let url = '/webapi/dostars'
        if (promise instanceof Promise) {
          return promise
        }
      } catch (e) {
        console.warn(e)
      }
    if (param.rduri && !window.GLOB.transfer && /\/dostars/.test(param.rduri) && param.func !== 'webapi_ChangeUser') {
      url = param.rduri
      return Promise.resolve({
        status: false,
        message: '自定义脚本执行错误',
        ErrCode: 'E'
      })
    } else if (param.$login) {
      let rduri = param.rduri || ''
      delete param.$login
      delete param.rduri
    }
    param = this.encryptParam(param)
      param = this.encryptParam(param)
    if (login) {
      let time = +sessionStorage.getItem(rduri)
      let c_time = Math.round(new Date().getTime() / 1000)
      if (time && c_time - time <= 1800) {
        sessionStorage.setItem(rduri, c_time)
        return axios({
          url: `${url}${param.func ? '/' + param.func : ''}`,
          method: 'post',
          data: JSON.stringify(param)
        return new Promise((resolve, reject) => {
          axios({
            url: `${rduri}${param.func ? '/' + param.func : ''}`,
            method: 'post',
            data: JSON.stringify(param)
          }).then(result => {
            if (result && result.ErrCode === 'LoginError') {
              sessionStorage.removeItem(rduri)
            }
            resolve(result)
          }, () => {
            reject()
          })
        })
      }
@@ -895,11 +916,13 @@
          if (res.status) {
            sessionStorage.setItem(rduri, c_time)
            axios({
              url: `${url}${param.func ? '/' + param.func : ''}`,
              url: `${rduri}${param.func ? '/' + param.func : ''}`,
              method: 'post',
              data: JSON.stringify(param)
            }).then(result => {
              resolve(result)
            }, () => {
              reject()
            })
          } else {
            resolve(res)
@@ -918,10 +941,19 @@
        })
      })
    } else {
      let url = '/webapi/dostars'
      if (param.rduri && !window.GLOB.transfer && /\/dostars/.test(param.rduri) && param.func !== 'webapi_ChangeUser') {
        url = param.rduri
        delete param.rduri
      }
      param = this.encryptParam(param)
      return axios({
        url: `${url}${param.func ? '/' + param.func : ''}`,
        method: 'post',
        data: JSON.stringify(param)
        data: JSON.stringify(param),
        requestId
      })
    }
  }
@@ -998,16 +1030,11 @@
    if (process.env.NODE_ENV === 'production') {
      _url = document.location.origin + '/file/oss/upload'
    }
    if (/^http:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
      _url = window.GLOB.location + ':8080/file/oss/upload'
      if (process.env.NODE_ENV === 'production') {
        _url = document.location.origin + ':8080/file/oss/upload'
      }
    } else if (/^https:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
      _url = window.GLOB.location + ':8443/file/oss/upload'
      if (process.env.NODE_ENV === 'production') {
        _url = document.location.origin + ':8443/file/oss/upload'
      }
    if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) {
      _url = _url.replace('http://qingqiumarket.cn', 'http://qingqiumarket.cn:8080')
      _url = _url.replace('http://cloud.mk9h.cn', 'http://cloud.mk9h.cn:8080')
      _url = _url.replace('https://qingqiumarket.cn', 'https://qingqiumarket.cn:8443')
      _url = _url.replace('https://cloud.mk9h.cn', 'https://cloud.mk9h.cn:8443')
    }
    
    return axios({
@@ -1031,6 +1058,21 @@
    })
  }
  /**
   * @description 微信支付退款
   */
  setRefund (orderId) {
    let _param = new FormData()
    _param.append('out_biz_no', orderId)
    return axios({
      url: '/wxpay/wxRefund',
      headers: { 'Content-Type': 'multipart/form-data' },
      method: 'post',
      data: _param
    })
  }
  postekPrint (data) {
    return axios({
      url: 'http://127.0.0.1:888/postek/print',
@@ -1042,10 +1084,10 @@
  /**
   * @description sql检验
   */
  sDebug (sql, rduri = null) {
  sDebug (sql) {
    let param = {
      func: 's_debug_sql',
      exec_type: 'y',
      exec_type: window.GLOB.execType || 'y',
      timestamp: moment().format('YYYY-MM-DD HH:mm:ss'),
      userid: sessionStorage.getItem('UserID') || '',
      lang: sessionStorage.getItem('lang') || '',
@@ -1053,6 +1095,16 @@
      LoginUID: sessionStorage.getItem('LoginUID') || '',
      appkey: window.GLOB.appkey || ''
    }
    sql = sql.replace(/@time_id@/ig, `'${Utils.getuuid()}'`)
    sql = sql.replace(/@ID@/ig, `'${Utils.getuuid()}'`)
    sql = sql.replace(/@BID@/ig, `'${Utils.getuuid()}'`)
    sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID')}'`)
    sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid')}'`)
    sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID')}'`)
    sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey}'`)
    sql = sql.replace(/@lang@/ig, `'${sessionStorage.getItem('lang')}'`)
    // sql = sql.replace(/@datam@/ig, `''`)
    if (window.GLOB.externalDatabase !== null) {
      sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase)
@@ -1062,16 +1114,12 @@
    sql = sql.replace(/\n/ig, ' ')
    param.LText = Utils.formatOptions(sql)
    param.LText = Utils.formatOptions(sql, param.exec_type)
    param.secretkey = Utils.encrypt('', param.timestamp)
    param = this.encryptParam(param)
    let url = '/webapi/dostars'
    if (rduri) {
      url = rduri
    }
    let timer = setTimeout(() => {
      let _param = {