From 7535bd6096278a2778386489ae812991a93069ce Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 4 Jul 2025 14:24:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20dictOptions=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 +++ apps/web-antd/src/utils/dict.ts | 45 ++++++--------------------------- 2 files changed, 12 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1adad54e..9c75122d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - Modal/Drawer中使用VxeTable tooltip需要设置更高的z-index 防止被遮挡 +**OTHERS** + +- 移除`getDict`方法 + # 1.4.1 **FEATURES** diff --git a/apps/web-antd/src/utils/dict.ts b/apps/web-antd/src/utils/dict.ts index bd147be1..41b0a741 100644 --- a/apps/web-antd/src/utils/dict.ts +++ b/apps/web-antd/src/utils/dict.ts @@ -3,20 +3,17 @@ import { dictDataInfo } from '#/api/system/dict/dict-data'; import { useDictStore } from '#/store/dict'; /** - * 抽取公共逻辑的基础方法 + * 一般是Select, Radio, Checkbox等组件使用 + * @warning 注意内部为异步实现 所以不要写这种`getDictOptions()[0]`的代码 会获取不到 + * @warning 需要保持`formatNumber`统一 在所有调用地方需要一致 不能出现A处为string B处为number + * * @param dictName 字典名称 - * @param dataGetter 获取字典数据的函数 * @param formatNumber 是否格式化字典value为number类型 - * @returns 数据 + * @returns Options数组 */ -function fetchAndCacheDictData( - dictName: string, - dataGetter: () => T[], - formatNumber = false, -): T[] { - const { dictRequestCache, setDictInfo } = useDictStore(); - // 有调用方决定如何获取数据 - const dataList = dataGetter(); +export function getDictOptions(dictName: string, formatNumber = false) { + const { dictRequestCache, setDictInfo, getDictOptions } = useDictStore(); + const dataList = getDictOptions(dictName); // 检查请求状态缓存 if (dataList.length === 0 && !dictRequestCache.has(dictName)) { @@ -54,29 +51,3 @@ function fetchAndCacheDictData( } return dataList; } - -/** - * 这里是提供给渲染标签使用的方法 - * @deprecated 使用getDictOptions代替 于下个版本删除 - * @param dictName 字典名称 - * @returns 字典信息 - */ -export function getDict(dictName: string) { - const { getDictOptions } = useDictStore(); - return fetchAndCacheDictData(dictName, () => getDictOptions(dictName)); -} - -/** - * 一般是Select, Radio, Checkbox等组件使用 - * @param dictName 字典名称 - * @param formatNumber 是否格式化字典value为number类型 - * @returns Options数组 - */ -export function getDictOptions(dictName: string, formatNumber = false) { - const { getDictOptions } = useDictStore(); - return fetchAndCacheDictData( - dictName, - () => getDictOptions(dictName), - formatNumber, - ); -}