Files
mosr-web/src/stores/cache.js
2024-03-04 19:13:43 +08:00

48 lines
937 B
JavaScript

import {defineStore} from "pinia";
import {ref} from "vue";
import {getCacheOpt, getCacheType} from "../api/cache";
export const useCacheStore = defineStore('cache',()=>{
const cacheKeyOpt = ref(new Map())
const cacheKeyType = ref(new Map())
const setCacheKey = async (key) => {
try {
const { code, data } = await getCacheType(key)
if(code === 1000) {
cacheKeyType.value.set(key, data[key])
}
} catch(err) {
new Error(err)
}
}
const getDict = (key) => {
let dict
if (!cacheKeyType.value.has(key)) {
setCacheKey(key)
} else {
dict = cacheKeyType.value.get(key)
}
return dict
}
const checkKey = (keys) => {
let result = []
for (let key of keys) {
if (!cacheKeyType.value.has(key) ) {
result.push(key)
}
}
return result;
}
return {
cacheKeyOpt,
cacheKeyType,
setCacheKey,
getDict,
}
})