From cc0364057691163739b46ec3204bb7ecb560fc6c Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 10 Oct 2019 09:48:11 +0800 Subject: [PATCH] feat(TreeSelect): add className option (#4671) --- src/tree-select/README.md | 2 ++ src/tree-select/README.zh-CN.md | 2 ++ src/tree-select/index.tsx | 3 ++- src/tree-select/test/index.spec.js | 19 ++++++++++++++++++- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/tree-select/README.md b/src/tree-select/README.md index efb8c498837..a4a47127144 100644 --- a/src/tree-select/README.md +++ b/src/tree-select/README.md @@ -145,6 +145,8 @@ In every tree object, `text` property defines `id` stands for the unique key whi info: 3, // Whether to show red dot dot: true, + // ClassName of parent node + className: 'my-class', // leaves of this parent node children: [ { diff --git a/src/tree-select/README.zh-CN.md b/src/tree-select/README.zh-CN.md index a0b177a6b8c..4fb894ec988 100644 --- a/src/tree-select/README.zh-CN.md +++ b/src/tree-select/README.zh-CN.md @@ -151,6 +151,8 @@ export default { info: 3, // 是否在导航名称右上角显示小红点 dot: true, + // 导航节点额外类名 + className: 'my-class', // 该导航下所有的可选项 children: [ { diff --git a/src/tree-select/index.tsx b/src/tree-select/index.tsx index 92d69a49060..73dbde2303c 100644 --- a/src/tree-select/index.tsx +++ b/src/tree-select/index.tsx @@ -13,6 +13,7 @@ export type TreeSelectItem = { dot?: boolean; info?: string | number; disabled?: boolean; + className?: any; children: TreeSelectChildren[]; }; @@ -62,7 +63,7 @@ function TreeSelect( info={item.info} title={item.text} disabled={item.disabled} - class={bem('nav-item')} + class={[bem('nav-item'), item.className]} /> )); diff --git a/src/tree-select/test/index.spec.js b/src/tree-select/test/index.spec.js index 4c68339f6bb..aa5fd9b3529 100644 --- a/src/tree-select/test/index.spec.js +++ b/src/tree-select/test/index.spec.js @@ -262,7 +262,6 @@ test('max prop', () => { data() { return { activeId: [], - mainActiveIndex: 0, items: [ { text: 'group1', @@ -278,3 +277,21 @@ test('max prop', () => { items.at(1).trigger('click'); expect(wrapper.vm.activeId).toEqual([mockItem.id]); }); + +test('className of nav', () => { + const wrapper = mount(TreeSelect, { + propsData: { + mainActiveIndex: 0, + items: [ + { + text: 'group1', + className: 'my-class', + children: [] + } + ] + } + }); + + const items = wrapper.findAll('.van-tree-select__nav-item'); + expect(items.at(0).element.classList.contains('my-class')).toBeTruthy(); +});