mirror of
				https://github.com/continew-org/continew-admin-ui.git
				synced 2025-10-31 22:57:15 +08:00 
			
		
		
		
	chore: 优化字典重复请求问题
This commit is contained in:
		| @@ -2,20 +2,32 @@ import { ref, toRefs } from 'vue' | ||||
| import { listCommonDict } from '@/apis' | ||||
| import { useDictStore } from '@/stores' | ||||
|  | ||||
| const dictStore = useDictStore() | ||||
| const tmpCodeZone: string[] = [] | ||||
| export function useDict(...codes: Array<string>) { | ||||
|   const res = ref<any>({}) | ||||
|   return (() => { | ||||
|     const dictStore = useDictStore() | ||||
|     codes.forEach((code) => { | ||||
|       res.value[code] = [] | ||||
|       const dict = dictStore.getDict(code) | ||||
|       if (dict) { | ||||
|         res.value[code] = dict | ||||
|       } else { | ||||
|         listCommonDict(code).then((resp) => { | ||||
|           res.value[code] = resp.data | ||||
|           dictStore.setDict(code, res.value[code]) | ||||
|         }) | ||||
|         if (!tmpCodeZone.includes(code)) { | ||||
|           // 防止多次触发 | ||||
|           tmpCodeZone.push(code) | ||||
|           listCommonDict(code).then((resp) => { | ||||
|             res.value[code] = resp.data | ||||
|             dictStore.setDict(code, res.value[code]) | ||||
|             tmpCodeZone.splice(tmpCodeZone.indexOf(code), 1) | ||||
|           }).catch(() => { | ||||
|             tmpCodeZone.splice(tmpCodeZone.indexOf(code), 1) | ||||
|           }) | ||||
|         } else { | ||||
|           res.value[code] = computed(() => { | ||||
|             return dictStore.getDict(code) | ||||
|           }) | ||||
|         } | ||||
|       } | ||||
|     }) | ||||
|     return toRefs(res.value) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 秋帆
					秋帆