53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
/**
|
|
interface DB {
|
|
url: string // 网络地址(唯一)
|
|
local: string // 本地地址
|
|
}
|
|
*/
|
|
|
|
class Storage {
|
|
constructor(name) {
|
|
this.name = name
|
|
this.db = uni.getStorageSync(name) || []
|
|
}
|
|
// 获取缓存
|
|
get storage() {
|
|
return this.db
|
|
}
|
|
// 设置缓存
|
|
set storage(data = []) {
|
|
uni.setStorageSync(this.name, data)
|
|
this.db = data
|
|
return data
|
|
}
|
|
// 插入数据
|
|
insert({ url, local }) {
|
|
if (!url || !local) return
|
|
const data = [...this.storage]
|
|
const index = data.findIndex(ele => ele.url === url)
|
|
index > -1 && data.splice(index, 1)
|
|
data.push({ url, local })
|
|
this.storage = data
|
|
return data
|
|
}
|
|
// 删除数据
|
|
delete(obj = {}) {
|
|
const keys = Object.keys(obj)
|
|
const data = this.storage.filter(ele => !keys.some(k => obj[k] === ele[k]))
|
|
this.storage = data
|
|
return data
|
|
}
|
|
// 查询数据
|
|
select(obj = {}) {
|
|
const keys = Object.keys(obj)
|
|
const data = this.storage.filter(ele => keys.every(k => obj[k] === ele[k]))
|
|
return data
|
|
}
|
|
// 清空数据
|
|
clear() {
|
|
this.storage = []
|
|
}
|
|
}
|
|
|
|
export default new Storage('imgcache')
|