From be9a443769435710fb61d7dd6f521dae625ad313 Mon Sep 17 00:00:00 2001 From: betavs Date: Wed, 8 Jan 2025 20:32:00 +0800 Subject: [PATCH] fix(auto-complete): the display effect is abnormal when the option is empty --- src/_common | 2 +- src/auto-complete/__tests__/index.test.jsx | 4 ++-- src/auto-complete/auto-complete.tsx | 2 +- src/auto-complete/option-list.tsx | 7 +++++-- src/config-provider/type.ts | 12 ++++++++++++ 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/_common b/src/_common index 53786c5875..17d0a74f75 160000 --- a/src/_common +++ b/src/_common @@ -1 +1 @@ -Subproject commit 53786c58752401e648cc45918f2a4dbb9e8cecfa +Subproject commit 17d0a74f75281bb4abff81ed90184cc78c568aae diff --git a/src/auto-complete/__tests__/index.test.jsx b/src/auto-complete/__tests__/index.test.jsx index 46f91fa39f..63a3a200cc 100644 --- a/src/auto-complete/__tests__/index.test.jsx +++ b/src/auto-complete/__tests__/index.test.jsx @@ -12,9 +12,9 @@ describe('Anchor', () => { }); await wrapper.setProps({ popupProps: { visible: true } }); expect(wrapper.find('.t-auto-complete').exists()).toBeTruthy(); - const panelNode = document.querySelector('.t-autocomplete__panel'); + const panelNode = document.querySelector('.t-auto-complete__panel'); expect(document.querySelectorAll('.t-select-option').length).toBe(3); - expect(document.querySelector('.t-autocomplete__panel')).toBeTruthy(); + expect(document.querySelector('.t-auto-complete__panel')).toBeTruthy(); panelNode.parentNode.removeChild(panelNode); }); }); diff --git a/src/auto-complete/auto-complete.tsx b/src/auto-complete/auto-complete.tsx index 1d00dcaa2f..92f0eb9fd1 100644 --- a/src/auto-complete/auto-complete.tsx +++ b/src/auto-complete/auto-complete.tsx @@ -149,7 +149,7 @@ export default defineComponent({ const topContent = renderTNodeJSX('panelTopContent'); const bottomContent = renderTNodeJSX('panelBottomContent'); const panelContent = Boolean(topContent || props.options?.length || bottomContent) ? ( -
+
{topContent} {listContent} {bottomContent} diff --git a/src/auto-complete/option-list.tsx b/src/auto-complete/option-list.tsx index 4030ea3ebd..17535d9998 100644 --- a/src/auto-complete/option-list.tsx +++ b/src/auto-complete/option-list.tsx @@ -4,7 +4,7 @@ import HighlightOption from './highlight-option'; import { CommonClassNameType } from '../hooks/useCommonClassName'; import { AutoCompleteOptionObj, TdAutoCompleteProps } from './type'; import log from '../_common/js/log'; -import { usePrefixClass } from '../hooks/useConfig'; +import { useConfig, usePrefixClass } from '../hooks/useConfig'; import { on, off } from '../utils/dom'; import isString from 'lodash/isString'; import escapeRegExp from 'lodash/escapeRegExp'; @@ -30,6 +30,8 @@ export default defineComponent({ const active = ref(''); const classPrefix = usePrefixClass(); + const { globalConfig } = useConfig('autoComplete'); + const classes = computed(() => `${classPrefix.value}-select__list`); const optionClasses = computed(() => [ `${classPrefix.value}-select-option`, @@ -138,7 +140,8 @@ export default defineComponent({ }); return () => { - if (!tOptions.value.length) return null; + if (!tOptions.value.length) + return
{globalConfig.value.empty}
; return (
    {tOptions.value.map((item) => { diff --git a/src/config-provider/type.ts b/src/config-provider/type.ts index 9e699b6674..1f5be4413d 100644 --- a/src/config-provider/type.ts +++ b/src/config-provider/type.ts @@ -13,6 +13,10 @@ import { ImageProps } from '../image'; import { TNode, SizeEnum } from '../common'; export interface GlobalConfigProvider { + /** + * 自动填充全局配置 + */ + autoComplete?: AutoCompleteConfig; /** * 警告全局配置 */ @@ -148,6 +152,14 @@ export interface GlobalConfigProvider { upload?: UploadConfig; } +export interface AutoCompleteConfig { + /** + * 语言配置,“暂无数据”描述文本 + * @default '' + */ + empty?: string; +} + export interface InputConfig { /** * 是否开启自动填充功能