123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { encrypt, decrypt } from '@/common/crypto.js'
- // 在开发环境下不需要加密数据
- const encryptFlag = false
- // 预设字段头
- const prefix = 'HEHE_'
- // 缓存有效期 默认有效期为15天
- const expiredTime = 15 * 24 * 60 * 60 * 1000
- // 从缓存中读取数据(期限)
- export function setStorage(key, value, options = {}) {
- if (!options.expiredTime) {
- options.expiredTime = expiredTime
- }
- const nowTime = Date.now()
- // 加密
- if (encryptFlag) {
- value = encrypt(value)
- }
- const payload = {
- expiredTime: nowTime + options.expiredTime,
- data: value
- }
- key = prefix + key
- uni.setStorageSync(key, payload)
- }
- // 将数据添加到缓存中(期限)
- export function getStorage(key) {
- key = prefix + key
- const nowTime = Date.now()
- const payload = uni.getStorageSync(key)
- if (nowTime > payload.expiredTime) {
- uni.removeStorageSync(key)
- return null
- }
- // 解密
- if (encryptFlag) {
- payload.data = decrypt(payload.data)
- }
- return payload.data
- }
- const install = Vue => {
- Vue.prototype.$setStorage = setStorage
- Vue.prototype.$getStorage = getStorage
- }
- export default install
|