Skip to content

Cascader: Fix the tagRender option and add Demo 🐛 📝 #5954

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions components/cascader/demo/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<fields-name />
<suffix />
<multipleVue />
<tagRender />
</demo-sort>
</template>
<script>
Expand All @@ -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';
Expand All @@ -47,6 +49,7 @@ export default defineComponent({
FieldsName,
Suffix,
multipleVue,
tagRender,
},
});
</script>
Expand Down
91 changes: 91 additions & 0 deletions components/cascader/demo/tagRender.vue
Original file line number Diff line number Diff line change
@@ -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>
1 change: 1 addition & 0 deletions components/cascader/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,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}
Expand Down