storage.js 1.28 KB
import constant from './constant'

// 存储变量名
let storageKey = 'storage_data'

// 存储节点变量名
let storageNodeKeys = [
  constant.avatar,
  constant.name,
  constant.roles,
  constant.permissions,
  // user profile fields persisted by GetInfo
  constant.code,
  constant.deptPaths,
  constant.id,
  constant.username,
  constant.roleCodes,
  constant.telephone
]

const storage = {
  set: function(key, value) {
    if (storageNodeKeys.indexOf(key) != -1) {
      let tmp = uni.getStorageSync(storageKey)
      tmp = tmp ? tmp : {}
      tmp[key] = value
      uni.setStorageSync(storageKey, tmp)
    }
  },
  get: function(key) {
    let storageData = uni.getStorageSync(storageKey) || {}
    // Provide sensible defaults for array-type keys
    const arrayDefaults = [
      constant.roles,
      constant.permissions,
      constant.roleCodes,
      constant.deptPaths
    ]
    if (storageData[key] === undefined || storageData[key] === null) {
      return arrayDefaults.includes(key) ? [] : ""
    }
    return storageData[key]
  },
  remove: function(key) {
    let storageData = uni.getStorageSync(storageKey) || {}
    delete storageData[key]
    uni.setStorageSync(storageKey, storageData)
  },
  clean: function() {
    uni.removeStorageSync(storageKey)
  }
}

export default storage