Files
pqs-9100_client/frontend/src/stores/modules/dict.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-11-05 11:23:38 +08:00
import type { Dict } from './../../api/interface/index';
import { defineStore } from 'pinia'
import piniaPersistConfig from '@/stores/helper/persist'
import { DICT_STORE_KEY } from '@/stores/constant'
// 模拟数据
2024-11-05 11:23:38 +08:00
//import dictData from '@/api/system/dictData'
import { getDictList } from '@/api/user/login.ts'
2024-11-05 11:23:38 +08:00
// 初始值设为空数组
let dictData: Dict[] = [];
async function fetchDictData() {
try {
const response = await getDictList();
dictData = response.data as unknown as Dict[];
console.log('Fetched dictionary data:', dictData);
} catch (error) {
console.error('Failed to fetch dictionary data:', error);
}
}
fetchDictData();
2024-11-04 18:43:24 +08:00
export const useDictStore = defineStore({
id: DICT_STORE_KEY,
state: () => ({
dictData,
}),
getters: {},
actions: {
// 获取字典数据数组,如果为空则返回空数组
getDictData(code: string) {
const dict = this.dictData.find(item => item.code === code )
2024-11-05 11:23:38 +08:00
return dict?.children || [];
},
// 初始化获取全部字典数据并缓存
2024-11-05 11:23:38 +08:00
async initDictData() {
await fetchDictData();
},
},
persist: piniaPersistConfig(DICT_STORE_KEY),
})