OfficeSystem/utils/dict.js

66 lines
1.7 KiB
JavaScript

import { useDictStore } from '@/store/dict'
/**
* 字典工具函数
* 提供便捷的字典映射方法
*/
/**
* 根据字典类型和值获取字典标签
* @param {string} dictType 字典类型
* @param {string|number} dictValue 字典值
* @returns {string} 字典标签
*/
export const getDictLabel = (dictType, dictValue) => {
const dictStore = useDictStore()
return dictStore.getDictLabel(dictType, dictValue)
}
/**
* 根据字典类型获取字典列表
* @param {string} dictType 字典类型
* @returns {Array} 字典项列表
*/
export const getDictList = (dictType) => {
const dictStore = useDictStore()
return dictStore.getDictByType(dictType)
}
/**
* 根据字典类型和值获取完整的字典项
* @param {string} dictType 字典类型
* @param {string|number} dictValue 字典值
* @returns {Object|null} 字典项对象
*/
export const getDictItem = (dictType, dictValue) => {
const dictStore = useDictStore()
return dictStore.getDictItem(dictType, dictValue)
}
/**
* 批量获取字典标签
* @param {string} dictType 字典类型
* @param {Array<string|number>} dictValues 字典值数组
* @returns {Array<string>} 字典标签数组
*/
export const getDictLabels = (dictType, dictValues) => {
const dictStore = useDictStore()
return dictStore.getDictLabels(dictType, dictValues)
}
/**
* 初始化字典数据
* @param {boolean} forceRefresh 是否强制刷新
* @returns {Promise}
*/
export const initDictData = async (forceRefresh = true) => {
const dictStore = useDictStore()
console.log('initDictData',dictStore)
// 先从缓存初始化
dictStore.initFromCache()
// 然后加载最新数据
return dictStore.loadDictData(forceRefresh)
}