king
2022-04-25 9e716f3bd30820a08757845b592db73363faa48c
src/api/index.js
@@ -14,12 +14,12 @@
  1585192949946f3et2ts8tn82krmumdf,15855615451212m12ip23vpcm79kloro,1587005717541lov40vg61q7l1rbveon,1590458676585agbbr63t6ihighg2i1g,1602315375262ikd33ii0nii34pt861o,1582771068837vsv54a089lgp45migbg,
  1582777675954ifu05upurs465omoth7,158294809668898cklbv6c5bou8e1fpu,1584676379094iktph45fb8imhg96bql,1584695125339vo5g7iqgfn01qmrd6s2,1584699661372vhmpp9dn9foo0eob722,15848421131551gg04ie8sitsd3f7467,
  1589782279158ngr675kk3oksin35sul,1589788042787ffdt9hle4s45k9r1nvs,15900310928174dro07ihfckghpb5h13,1594095599055qicg2eb642v5qglhnuo,1599613340050c8nu6rbst9d4emnnbsq,1577972969199lei1g0qkvlh4tkc908m,
  1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv`
  1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv,15827879285193g85m3i2uprektpgmpf`
if (window.openDatabase) {
  CacheUtils.openWebSql()
  CacheUtils.openWebSql(options.sysType)
} else if (window.indexedDB) {
  CacheUtils.openIndexDB()
  CacheUtils.openIndexDB(options.sysType)
}
axios.defaults.crossDomain = true
@@ -48,7 +48,7 @@
    }
    sessionStorage.clear()
    sessionStorage.setItem('loginError', JSON.stringify({request: res.config ? res.config.data : '', response: JSON.stringify(res.data)}))
    sessionStorage.setItem('loginError', JSON.stringify({url: res.config ? res.config.url : '', request: res.config ? res.config.data : '', response: JSON.stringify(res.data)}))
    window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login')
    window.location.reload()
  }
@@ -59,7 +59,7 @@
    if (window.debugger === true) {
      response.data.ErrCode = 'E'
      return Promise.resolve(response.data)
    } else {
    } else if (!sessionStorage.getItem('loginError')) {
      setCurrentUrl(response)
    }
  } else {
@@ -141,7 +141,7 @@
  /**
   * @description 游客登录
   */
  getTouristMsg () {
  getTouristMsg (appid, openid, memberid, scanId) {
    let _SessionUid = localStorage.getItem('SessionUid')
    if (!_SessionUid) { // 手动清除SessionUid时,实时生成
@@ -153,13 +153,22 @@
      func: 's_visitor_login',
      timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), 
      SessionUid: _SessionUid,
      TypeCharOne: 'pc'
      TypeCharOne: 'pc',
      kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host))
    }
    
    param.LText = md5(window.btoa(_SessionUid + param.timestamp))
    param.secretkey = md5(param.LText + 'mingke' + param.timestamp)
    param.appkey = window.GLOB.appkey || ''
    if (appid) {
      param.binding_type = 'mk'
      param.thd_party_member_id = memberid
      param.thd_party_openid = openid
      param.thd_party_appid = appid
      param.id = scanId
    }
    let url = '/webapi/dologon/s_visitor_login'
    if (window.GLOB.mainSystemApi) {
@@ -187,7 +196,9 @@
      way_no: 'sms_vcode',
      systemType: options.sysType,
      login_city: city,
      login_id_address: ipAddress
      login_id_address: ipAddress,
      kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)),
      device_id: localStorage.getItem('SessionUid')
    }
    param.appkey = window.GLOB.appkey || ''
@@ -224,11 +235,11 @@
      systemType: options.sysType,
      Type: 'S',
      login_city: city,
      login_id_address: ipAddress
      login_id_address: ipAddress,
      kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)),
      device_id: localStorage.getItem('SessionUid')
    }
    // Type: 'S' 时
    let shaObj = new jsSHA('SHA-1', 'TEXT')
    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
    let sys_datetime = sessionStorage.getItem('sys_datetime')
@@ -238,12 +249,22 @@
      param.timestamp = moment(sys_datetime, 'YYYY-MM-DD HH:mm:ss').add(seconds, 'seconds').format('YYYY-MM-DD HH:mm:ss')
    }
    
    // Type: 'S' 时
    let shaObj = new jsSHA('SHA-1', 'TEXT')
    shaObj.update(password)
    param.Password = shaObj.getHash('HEX').toUpperCase()
    param.Password = md5(username + param.Password + param.timestamp)
    // Type: 'mk_' 时
    // param.Type = '公钥'
    // let shaObj = new jsSHA('SHA-1', 'TEXT')
    // shaObj.update(password)
    // param.Password = shaObj.getHash('HEX').toUpperCase()
    // param.Password = md5('私钥' + username + param.Password + param.timestamp)
    // Type: 'X' 时
    // param.Password = Utils.formatOptions(password)
    param.appkey = window.GLOB.appkey || ''
    let url = '/webapi/dologon'
@@ -272,7 +293,6 @@
   * @description 获取系统版本信息,启用或更新websql
   */
  getAppVersion (_resolve, _reject) {
    let appVersion = {}
    if (!window.GLOB.WebSql && !window.GLOB.IndexDB) {
      return Promise.reject()
    }
@@ -288,10 +308,14 @@
    if (window.GLOB.WebSql) {
      return new Promise((resolve, reject) => {
        CacheUtils.getWebSqlVersion().then(msg => {
          appVersion.oldVersion = msg.version || ''
          let modifydate = msg.createDate || curTime
          if (modifydate.indexOf('Invalid date') > -1) {
            modifydate = curTime
          }
          let param = {
            func: 's_get_app_version',
            modifydate: msg.createDate || curTime,
            modifydate
          }
  
          this.getSystemConfig(param).then(res => {
@@ -300,9 +324,7 @@
              return
            }
            let clear = false
            let version = res.app_version || '1.00'
            appVersion.newVersion = version
            appVersion.oldVersion = appVersion.oldVersion || version
            let version = '1.00'
  
            if (res.menu_data && res.menu_data.length > 0) {
              res.menu_data.forEach(mid => {
@@ -325,7 +347,7 @@
              CacheUtils.createWebSqlversion(version, curTime)
            }
  
            resolve(appVersion)
            resolve()
          })
        }, () => {
          reject()
@@ -334,10 +356,13 @@
    } else {
      return new Promise((resolve, reject) => {
        CacheUtils.getIndexDBVersion().then(msg => {
          appVersion.oldVersion = msg.version || ''
          let modifydate = msg.createDate || curTime
          if (modifydate.indexOf('Invalid date') > -1) {
            modifydate = curTime
          }
          let param = {
            func: 's_get_app_version',
            modifydate: msg.createDate || curTime,
            modifydate
          }
          this.getSystemConfig(param).then(res => {
@@ -346,9 +371,7 @@
              return
            }
            let clear = false
            let version = res.app_version || '1.00'
            appVersion.newVersion = version
            appVersion.oldVersion = appVersion.oldVersion || version
            let version = '1.00'
  
            if (res.menu_data && res.menu_data.length > 0) {
              res.menu_data.forEach(mid => {
@@ -365,9 +388,9 @@
              }
            }
            CacheUtils.updateIndexDBversion({version: appVersion.oldVersion, createDate: curTime})
            CacheUtils.updateIndexDBversion({version: version, createDate: curTime})
  
            resolve(appVersion)
            resolve()
          })
        }, () => {
          reject()
@@ -379,12 +402,13 @@
  /**
   * @description 更新系统版本信息,清空配置信息
   */
  updateAppVersion (newVersion) {
  updateAppVersion () {
    let curTime = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
    CacheUtils.clearWebSqlConfig()
    CacheUtils.updateWebSqlversion(newVersion, curTime)
    CacheUtils.updateWebSqlversion('1.00', curTime)
    CacheUtils.clearIndexDBConfig()
    CacheUtils.updateIndexDBversion({version: newVersion, createDate: curTime})
    CacheUtils.updateIndexDBversion({version: '1.00', createDate: curTime})
    CacheUtils.clearFuncs(options.sysType)
  }
  /**
@@ -431,12 +455,36 @@
  /**
   * @description 获取或修改系统配置,增加appkey
   */
  getSystemFuncs (time) {
    let param = {
      func: 's_get_func_base_sso',
      update_date: time,
      userid: sessionStorage.getItem('UserID') || '',
      lang: sessionStorage.getItem('lang') || '',
      SessionUid: localStorage.getItem('SessionUid') || '',
      LoginUID: sessionStorage.getItem('LoginUID') || '',
      appkey: window.GLOB.appkey
    }
    let url = window.GLOB.mainSystemApi || '/webapi/dostars'
    param = this.encryptParam(param)
    return axios({
      url: `${url}/${param.func}`,
      method: 'post',
      data: param
    })
  }
  /**
   * @description 获取或修改系统配置,增加appkey
   */
  getSystemConfig (param) {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.lang = param.lang || sessionStorage.getItem('lang') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    param.appkey = param.appkey || window.GLOB.appkey
    let url = '/webapi/dostars'
    if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 编辑状态,且存在云端地址
@@ -623,7 +671,15 @@
      }
    })
    param.sign = md5(values)
    param.t = new Date().getTime()
    param.t = new Date().getTime();
    ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => {
      if (param[key]) {
        let val = param[key]
        delete param[key]
        param[key] = val
      }
    })
    return param
  }
@@ -633,7 +689,7 @@
   * @param {Object}  param   请求参数
   * @param {Boolean} SSO     是否为单点登录地址
   */
  getSystemCacheConfig (param) {
  getSystemCacheConfig (param, cache = true) {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.lang = param.lang || sessionStorage.getItem('lang') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
@@ -653,7 +709,7 @@
    _param = JSON.stringify(_param)
    _param  = md5(_param)
    if (window.GLOB.CacheMap.has(_param)) {
    if (cache && window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {
      param = this.encryptParam(param)
@@ -743,7 +799,7 @@
            }
            resolve()
          }
        } catch {
        } catch (e) {
          resolve({
            ErrCode: 'E',
            ErrMesg: '文件解析错误',
@@ -771,22 +827,17 @@
    param = this.encryptParam(param)
    let url = '/webapi/SaveBase64Image'
    if (param.rduri) {
      let url = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image')
      url = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image')
      delete param.rduri
      return axios({
        url,
        method: 'post',
        data: param
      })
    } else {
      return axios({
        url: '/webapi/SaveBase64Image',
        method: 'post',
        data: param
      })
    }
    return axios({
      url,
      method: 'post',
      data: param
    })
  }
  /**