king
2021-02-05 a8ec1d4136507d54580c2599fbfbc70a9a38ee62
2021-02-05
2个文件已修改
102 ■■■■■ 已修改文件
src/api/cacheutils.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/cacheutils.js
@@ -138,7 +138,7 @@
  }
  /**
   * @description 创建websql中配置信息的保存时间
   * @description 获取websql中的配置信息
   */
  static getWebSqlMenuConfig (MenuID, userid) {
    if (!window.GLOB.WebSql || !MenuID || !userid) return Promise.reject()
@@ -199,7 +199,6 @@
        }
        if (!window.GLOB.IndexDB.objectStoreNames.contains('configs')) {
          let objectStore = window.GLOB.IndexDB.createObjectStore('configs', { keyPath: 'id' })
          objectStore.createIndex('type', 'type', { unique: false })
          objectStore.createIndex('menuid', 'menuid', { unique: false })
          objectStore.createIndex('userid', 'userid', { unique: false })
        }
@@ -285,4 +284,63 @@
    }
  }
  /**
   * @description 删除IndexedDB中保存的配置信息
   */
  static delMenuIndexDBConfig (key) {
    if (!window.GLOB.IndexDB || !key) return Promise.resolve()
    return new Promise(resolve => {
      let request = window.GLOB.IndexDB.transaction(['configs'], 'readwrite')
        .objectStore('configs')
        .delete(key)
      request.onsuccess = () => {
        resolve()
      }
      request.onerror = () => {
        window.GLOB.IndexDB = null
        resolve()
      }
    })
  }
  /**
   * @description 获取IndexedDB中的配置信息
   */
  static getIndexDBMenuConfig (MenuID, userid) {
    if (!window.GLOB.IndexDB || !MenuID || !userid) return Promise.reject()
    let key = MenuID + userid
    return new Promise((resolve, reject) => {
      let request = window.GLOB.IndexDB.transaction(['configs']).objectStore('configs').get(key)
      request.onerror = () => {
        window.GLOB.IndexDB = null
        reject()
      }
      request.onsuccess = () => {
        if (request.result) {
          resolve(request.result)
        } else {
          reject()
        }
      }
    })
  }
  /**
   * @description 将数据写入IndexedDB
   */
  static writeInIndexDB (data) {
    if (!window.GLOB.IndexDB || !data) return
    let request = window.GLOB.IndexDB.transaction(['configs'], 'readwrite')
      .objectStore('configs')
      .add(data)
    request.onerror = () => {
      window.GLOB.IndexDB = null
    }
  }
}
src/api/index.js
@@ -15,7 +15,7 @@
  1589782279158ngr675kk3oksin35sul,1589788042787ffdt9hle4s45k9r1nvs,15900310928174dro07ihfckghpb5h13,1594095599055qicg2eb642v5qglhnuo,1599613340050c8nu6rbst9d4emnnbsq,1577972969199lei1g0qkvlh4tkc908m,
  1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv`
if (window.openDatabase) {
if (!window.openDatabase) {
  CacheUtils.openWebSql()
} else if (window.indexedDB) {
  CacheUtils.openIndexDB()
@@ -343,7 +343,17 @@
   * @description 删除某个菜单配置信息
   */
  deleteMenuStorage (menuId) {
    return CacheUtils.delMenuWebSqlConfig(menuId)
    if (window.GLOB.IndexDB) {
      let key = menuId + (sessionStorage.getItem('UserID') || '')
      if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) {
        key = menuId + (sessionStorage.getItem('CloudUserID') || '')
      }
      return CacheUtils.delMenuIndexDBConfig(key)
    } else {
      return CacheUtils.delMenuWebSqlConfig(menuId)
    }
  }
  /**
@@ -518,6 +528,32 @@
          })
        })
      })
    } else if (window.GLOB.IndexDB) {
      return new Promise(resolve => {
        CacheUtils.getIndexDBMenuConfig(param.MenuID, param.userid).then(res => {
          resolve(res)
        }, () => {
          param = this.encryptParam(param)
          axios({
            url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
            method: 'post',
            data: param
          }).then(res => {
            if (res.status && window.GLOB.IndexDB) {
              let msg = {
                ...res,
                userid: param.userid,
                menuid: param.MenuID,
                id: param.MenuID + param.userid
              }
              CacheUtils.writeInIndexDB(msg)
            } else if (res.status) {
              window.GLOB.CacheMap.set(_param, res)
            }
            resolve(res)
          })
        })
      })
    } else if (window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {