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
parent
c2b197a443
commit
31430f5365
|
@ -12,6 +12,7 @@
|
||||||
<fields-name />
|
<fields-name />
|
||||||
<suffix />
|
<suffix />
|
||||||
<multipleVue />
|
<multipleVue />
|
||||||
|
<tagRender />
|
||||||
</demo-sort>
|
</demo-sort>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -27,6 +28,7 @@ import Size from './size.vue';
|
||||||
import FieldsName from './fields-name.vue';
|
import FieldsName from './fields-name.vue';
|
||||||
import Suffix from './suffix.vue';
|
import Suffix from './suffix.vue';
|
||||||
import multipleVue from './multiple.vue';
|
import multipleVue from './multiple.vue';
|
||||||
|
import tagRender from './tagRender.vue';
|
||||||
|
|
||||||
import CN from '../index.zh-CN.md';
|
import CN from '../index.zh-CN.md';
|
||||||
import US from '../index.en-US.md';
|
import US from '../index.en-US.md';
|
||||||
|
@ -47,6 +49,7 @@ export default defineComponent({
|
||||||
FieldsName,
|
FieldsName,
|
||||||
Suffix,
|
Suffix,
|
||||||
multipleVue,
|
multipleVue,
|
||||||
|
tagRender,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -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>
|
|
@ -281,6 +281,7 @@ const Cascader = defineComponent({
|
||||||
...slots,
|
...slots,
|
||||||
checkable: () => <span class={`${cascaderPrefixCls.value}-checkbox-inner`} />,
|
checkable: () => <span class={`${cascaderPrefixCls.value}-checkbox-inner`} />,
|
||||||
}}
|
}}
|
||||||
|
tagRender={props.tagRender || slots.tagRender}
|
||||||
displayRender={props.displayRender || slots.displayRender}
|
displayRender={props.displayRender || slots.displayRender}
|
||||||
maxTagPlaceholder={props.maxTagPlaceholder || slots.maxTagPlaceholder}
|
maxTagPlaceholder={props.maxTagPlaceholder || slots.maxTagPlaceholder}
|
||||||
showArrow={props.showArrow}
|
showArrow={props.showArrow}
|
||||||
|
|
Loading…
Reference in New Issue