feat: cascader add tagRender slot (#5954)

* Cascader :修复 tagRender 选项,并添加demo  🐛 📝
Cascader: Fix the tagRender option and add Demo 🐛 📝

* 修改 test 中等待时机

* Update index.tsx

* Update index.test.js

Co-authored-by: yang <29636098325@qq.com>
Co-authored-by: tangjinzhou <415800467@qq.com>
pull/6019/head
yang 2022-09-26 22:06:52 +08:00 committed by GitHub
parent c2b197a443
commit 31430f5365
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 95 additions and 0 deletions

View File

@ -12,6 +12,7 @@
<fields-name />
<suffix />
<multipleVue />
<tagRender />
</demo-sort>
</template>
<script>
@ -27,6 +28,7 @@ import Size from './size.vue';
import FieldsName from './fields-name.vue';
import Suffix from './suffix.vue';
import multipleVue from './multiple.vue';
import tagRender from './tagRender.vue';
import CN from '../index.zh-CN.md';
import US from '../index.en-US.md';
@ -47,6 +49,7 @@ export default defineComponent({
FieldsName,
Suffix,
multipleVue,
tagRender,
},
});
</script>

View File

@ -0,0 +1,91 @@
<docs>
---
order: 10
title:
zh-CN: 自定义 tag 内容
en-US: The custom tag
---
</docs>
<template>
<a-cascader
v-model:value="value"
multiple
:options="options"
placeholder="Please select"
suffix-icon="Shopping Around"
>
<template #tagRender="data">
<a-tag :key="data.value" color="blue">{{ data.label }}</a-tag>
</template>
</a-cascader>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import type { CascaderProps } from 'ant-design-vue';
const options: CascaderProps['options'] = [
{
value: 'zhejiang',
label: 'Zhejiang',
children: [
{
value: 'freezeKey',
label: 'freeze',
children: [
{
value: 'key1',
label: 'salmon',
},
{
value: 'key2',
label: 'beef',
},
],
},
{
value: 'fruitsKey',
label: 'fruits',
children: [
{
value: 'key11',
label: 'apple',
},
{
value: 'key22',
label: 'banana',
},
],
},
],
},
{
value: 'Chinese delicious food',
label: '中国美食',
children: [
{
value: 'key3',
label: '月饼',
children: [
{
value: 'key4',
label: '蛋黄馅',
},
{
value: 'key5',
label: '五仁馅',
},
],
},
],
},
];
export default defineComponent({
setup() {
return {
value: ref<string[]>([]),
options,
};
},
});
</script>

View File

@ -281,6 +281,7 @@ const Cascader = defineComponent({
...slots,
checkable: () => <span class={`${cascaderPrefixCls.value}-checkbox-inner`} />,
}}
tagRender={props.tagRender || slots.tagRender}
displayRender={props.displayRender || slots.displayRender}
maxTagPlaceholder={props.maxTagPlaceholder || slots.maxTagPlaceholder}
showArrow={props.showArrow}