|
|
|
|
@ -22,6 +22,20 @@ export interface DictState {
|
|
|
|
|
isSetDict: boolean
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const normalizeDictMap = (dictMap: Recordable = {}) => {
|
|
|
|
|
const normalizedDictMap: Recordable = {}
|
|
|
|
|
Object.keys(dictMap || {}).forEach((dictType) => {
|
|
|
|
|
const normalizedDictType = dictType.trim()
|
|
|
|
|
const dictList = dictMap[dictType]
|
|
|
|
|
if (Array.isArray(normalizedDictMap[normalizedDictType]) && Array.isArray(dictList)) {
|
|
|
|
|
normalizedDictMap[normalizedDictType].push(...dictList)
|
|
|
|
|
} else {
|
|
|
|
|
normalizedDictMap[normalizedDictType] = dictList
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return normalizedDictMap
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const useDictStore = defineStore('dict', {
|
|
|
|
|
state: (): DictState => ({
|
|
|
|
|
dictMap: new Map<string, any>(),
|
|
|
|
|
@ -31,7 +45,7 @@ export const useDictStore = defineStore('dict', {
|
|
|
|
|
getDictMap(): Recordable {
|
|
|
|
|
const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE)
|
|
|
|
|
if (dictMap) {
|
|
|
|
|
this.dictMap = dictMap
|
|
|
|
|
this.dictMap = normalizeDictMap(dictMap)
|
|
|
|
|
}
|
|
|
|
|
return this.dictMap
|
|
|
|
|
},
|
|
|
|
|
@ -43,13 +57,15 @@ export const useDictStore = defineStore('dict', {
|
|
|
|
|
async setDictMap() {
|
|
|
|
|
const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE)
|
|
|
|
|
if (dictMap) {
|
|
|
|
|
const dictTypes = Object.keys(dictMap || {})
|
|
|
|
|
const normalizedDictMap = normalizeDictMap(dictMap)
|
|
|
|
|
const dictTypes = Object.keys(normalizedDictMap || {})
|
|
|
|
|
const firstDictType = dictTypes[0]
|
|
|
|
|
const firstList = firstDictType ? dictMap[firstDictType] : undefined
|
|
|
|
|
const firstList = firstDictType ? normalizedDictMap[firstDictType] : undefined
|
|
|
|
|
const needsUpgrade =
|
|
|
|
|
Array.isArray(firstList) && firstList.length > 0 && !('labelEn' in (firstList[0] || {}))
|
|
|
|
|
if (!needsUpgrade) {
|
|
|
|
|
this.dictMap = dictMap
|
|
|
|
|
this.dictMap = normalizedDictMap
|
|
|
|
|
wsCache.set(CACHE_KEY.DICT_CACHE, normalizedDictMap, { exp: 60 })
|
|
|
|
|
this.isSetDict = true
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
@ -58,11 +74,12 @@ export const useDictStore = defineStore('dict', {
|
|
|
|
|
const res = await getSimpleDictDataList()
|
|
|
|
|
const dictDataMap = new Map<string, any>()
|
|
|
|
|
res.forEach((dictData: DictDataVO) => {
|
|
|
|
|
const enumValueObj = dictDataMap[dictData.dictType]
|
|
|
|
|
const dictType = dictData.dictType.trim()
|
|
|
|
|
const enumValueObj = dictDataMap[dictType]
|
|
|
|
|
if (!enumValueObj) {
|
|
|
|
|
dictDataMap[dictData.dictType] = []
|
|
|
|
|
dictDataMap[dictType] = []
|
|
|
|
|
}
|
|
|
|
|
dictDataMap[dictData.dictType].push({
|
|
|
|
|
dictDataMap[dictType].push({
|
|
|
|
|
value: dictData.value,
|
|
|
|
|
label: dictData.label,
|
|
|
|
|
labelEn: (dictData as any).labelEn,
|
|
|
|
|
@ -91,11 +108,12 @@ export const useDictStore = defineStore('dict', {
|
|
|
|
|
const res = await getSimpleDictDataList()
|
|
|
|
|
const dictDataMap = new Map<string, any>()
|
|
|
|
|
res.forEach((dictData: DictDataVO) => {
|
|
|
|
|
const enumValueObj = dictDataMap[dictData.dictType]
|
|
|
|
|
const dictType = dictData.dictType.trim()
|
|
|
|
|
const enumValueObj = dictDataMap[dictType]
|
|
|
|
|
if (!enumValueObj) {
|
|
|
|
|
dictDataMap[dictData.dictType] = []
|
|
|
|
|
dictDataMap[dictType] = []
|
|
|
|
|
}
|
|
|
|
|
dictDataMap[dictData.dictType].push({
|
|
|
|
|
dictDataMap[dictType].push({
|
|
|
|
|
value: dictData.value,
|
|
|
|
|
label: dictData.label,
|
|
|
|
|
labelEn: (dictData as any).labelEn,
|
|
|
|
|
|