优化:字典缓存使用Map代替Array,更高效
This commit is contained in:
parent
4310e5e049
commit
9836d6d9bd
@ -1,29 +1,15 @@
|
|||||||
export const useDictStore = defineStore('dict', () => {
|
export const useDictStore = defineStore('dict', () => {
|
||||||
const dict = ref<
|
const dict = ref<Map<string, DictDataOption[]>>(new Map());
|
||||||
Array<{
|
|
||||||
key: string;
|
|
||||||
value: DictDataOption[];
|
|
||||||
}>
|
|
||||||
>([]);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取字典
|
* 获取字典
|
||||||
* @param _key 字典key
|
* @param _key 字典key
|
||||||
*/
|
*/
|
||||||
const getDict = (_key: string): DictDataOption[] | null => {
|
const getDict = (_key: string): DictDataOption[] | null => {
|
||||||
if (_key == null && _key == '') {
|
if (!_key) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
try {
|
return dict.value.get(_key) || null;
|
||||||
for (let i = 0; i < dict.value.length; i++) {
|
|
||||||
if (dict.value[i].key == _key) {
|
|
||||||
return dict.value[i].value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,11 +18,15 @@ export const useDictStore = defineStore('dict', () => {
|
|||||||
* @param _value 字典value
|
* @param _value 字典value
|
||||||
*/
|
*/
|
||||||
const setDict = (_key: string, _value: DictDataOption[]) => {
|
const setDict = (_key: string, _value: DictDataOption[]) => {
|
||||||
if (_key !== null && _key !== '') {
|
if (!_key) {
|
||||||
dict.value.push({
|
return false;
|
||||||
key: _key,
|
}
|
||||||
value: _value
|
try {
|
||||||
});
|
dict.value.set(_key, _value);
|
||||||
|
return true;
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Error in setDict:', e);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -45,25 +35,22 @@ export const useDictStore = defineStore('dict', () => {
|
|||||||
* @param _key
|
* @param _key
|
||||||
*/
|
*/
|
||||||
const removeDict = (_key: string): boolean => {
|
const removeDict = (_key: string): boolean => {
|
||||||
let bln = false;
|
if (!_key) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
for (let i = 0; i < dict.value.length; i++) {
|
return dict.value.delete(_key);
|
||||||
if (dict.value[i].key == _key) {
|
|
||||||
dict.value.splice(i, 1);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
bln = false;
|
console.error('Error in removeDict:', e);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return bln;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清空字典
|
* 清空字典
|
||||||
*/
|
*/
|
||||||
const cleanDict = (): void => {
|
const cleanDict = (): void => {
|
||||||
dict.value = [];
|
dict.value.clear();
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user