From 40a616ea1aad3ffb9ba0536cae8fa0118adf673d Mon Sep 17 00:00:00 2001 From: David Kitano <63226115+DavidKitano@users.noreply.github.com> Date: Sat, 18 Jan 2025 09:23:33 +0800 Subject: [PATCH] feat(components): [cascader] add `prefix` slot (#19631) * feat(components): [cascader] add prefix slot * docs(components): [cascader] add preview slot * Revert "docs(components): [cascader] add preview slot" This reverts commit 1a40ca13ea3dbfb7b32a3260af9b1bf0bdff87a3. * docs(components): [cascader] revert for typo * fix(components): do not render prefix if prefix slot is not used * docs(components): [cascader] prefix version number added Co-authored-by: btea <2356281422@qq.com> * docs(components): [cascader] format docs --------- Co-authored-by: btea <2356281422@qq.com> --- docs/en-US/component/cascader.md | 9 +++++---- .../cascader/__tests__/cascader.test.tsx | 15 +++++++++++++++ packages/components/cascader/src/cascader.vue | 3 +++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/en-US/component/cascader.md b/docs/en-US/component/cascader.md index 748c7e9e24..90ecbbf36f 100644 --- a/docs/en-US/component/cascader.md +++ b/docs/en-US/component/cascader.md @@ -175,10 +175,11 @@ cascader/panel ### Cascader Slots -| Name | Description | Scope | -| ------- | ---------------------------------------------------------------------------------------------- | ----------------------------------- | -| default | the custom content of cascader node, which are current Node object and node data respectively. | ^[object]`{ node: any, data: any }` | -| empty | content when there is no matched options. | — | +| Name | Description | Scope | +| --------------- | ---------------------------------------------------------------------------------------------- | ----------------------------------- | +| default | the custom content of cascader node, which are current Node object and node data respectively. | ^[object]`{ node: any, data: any }` | +| empty | content when there is no matched options. | — | +| prefix ^(2.9.4) | content as Input prefix | — | ### Cascader Exposes diff --git a/packages/components/cascader/__tests__/cascader.test.tsx b/packages/components/cascader/__tests__/cascader.test.tsx index 731d92bcd4..3e05fb0bab 100644 --- a/packages/components/cascader/__tests__/cascader.test.tsx +++ b/packages/components/cascader/__tests__/cascader.test.tsx @@ -559,4 +559,19 @@ describe('Cascader.vue', () => { expect(emptySlotEl?.textContent).toBe('-=-empty-=-no-data') }) }) + + describe('render prefix slot', () => { + it('correct render prefix slot', async () => { + _mount(() => ( + + {{ + prefix: () =>
-=-prefix-=-
, + }} +
+ )) + + const prefixSlotEl = document.querySelector('.el-input__prefix-inner') + expect(prefixSlotEl?.textContent).toBe('-=-prefix-=-') + }) + }) }) diff --git a/packages/components/cascader/src/cascader.vue b/packages/components/cascader/src/cascader.vue index 27e875bcd2..a8531d4c44 100644 --- a/packages/components/cascader/src/cascader.vue +++ b/packages/components/cascader/src/cascader.vue @@ -42,6 +42,9 @@ @blur="handleBlur" @input="handleInput" > +