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"
>
+
+
+