API 速查表

所有 composable 和 $dict 的方法签名与返回值一览。

useDict

useDict(type: string): UseDictReturn
useDict(storeName: string, type: string): UseDictReturn
返回值类型说明
dataShallowRef<DictItem[] | null>字典原始数据,每项为 { value, label, ... }
translate(value: string | number) => string同步翻译函数
getDictItem(value: string | number) => DictItem | undefined同步获取完整字典项对象
loadingRef<boolean>加载状态
errorRef<string | null>错误信息
refresh() => Promise<void>手动刷新

作用域:组件级响应式。在 <script setup> 顶层调用,组件挂载时自动加载,数据变化后模板自动重渲染。

useDictTree

useDictTree(type: string): UseDictTreeReturn
useDictTree(storeName: string, type: string): UseDictTreeReturn
返回值类型说明
treeShallowRef<TreeNode[] | null>树形字典数据
translate(value: string | number) => string翻译任意节点
findPath(value: string | number) => string[]路径回溯
loadingRef<boolean>加载状态
refresh() => Promise<void>手动刷新

作用域:组件级响应式,与 useDict 一致。挂载时自动加载树形数据。

useLocale

useLocale(): { locale, setLocale, locales }
返回值类型说明
localeRef<string>当前语言
setLocale(newLocale: string) => void切换语言
localesstring[]支持的语言列表

$dict

方法签名
translate$dict.translate(type, value) / $dict.translate(type, value, { storeName?, field? })
translatePath$dict.translatePath(type, value) / $dict.translatePath(type, value, { storeName?, field?, separator? })
translateData$dict.translateData(data, mapping, suffix?) → 返回追加了翻译字段的新对象
getDictItem$dict.getDictItem(type, value) / $dict.getDictItem(type, value, { storeName? }) → 返回完整 DictItem 对象

作用域:全局同步非响应式。直接读取管理器内存缓存,不触发 Vue 重渲染。适合 computed、表格 formatter 等场景。使用前需通过 useDict / useDictTree 加载数据。

类型定义

interface DictItem {
  value: string | number;
  label: string;
  [key: string]: unknown;
}

interface TreeNode extends DictItem {
  children?: TreeNode[];
}

interface DictEntry {
  type: string;
  items: DictItem[];
  tree?: TreeNode[];
}

interface DictResponse {
  data: Record<string, DictEntry>;
}

interface DictAdapter {
  fetchDict(storeName: string, options: { types: string[]; locale: string }): Promise<DictResponse>;
  fetchVersion(storeName: string): Promise<string>;
}

interface StoreApiOptions {
  baseURL?: string;
  dictEndpoint?: string;
  versionEndpoint?: string;
  adapter?: string; // 自定义适配器文件路径,如 '~/dict/dict-adapter.ts'
  lazy?: boolean; // 是否惰性检查版本号,默认继承 api.lazy
}

defineDictAdapter

export function defineDictAdapter(adapter: DictAdapter): DictAdapter;

类型辅助函数,用于在独立文件中定义自定义适配器。原样返回传入的适配器对象,仅提供类型约束。

~/dict/dict-adapter.ts
export default defineDictAdapter({
  async fetchDict(storeName, options) {
    // 自定义获取逻辑
  },
  async fetchVersion(storeName) {
    // 自定义版本获取逻辑
  },
});