diff --git a/src/tree-select/README.md b/src/tree-select/README.md index f8aa6338e..b4d311a0c 100644 --- a/src/tree-select/README.md +++ b/src/tree-select/README.md @@ -118,6 +118,7 @@ export default { | main-active-index | The index of selected parent node | _number \| string_ | `0` | | active-id | Id of selected item | _number \| string \|
(number \| string)[]_ | `0` | | max `v2.2.0` | Maximum number of selected items | _number \| string_ | `Infinity` | +| selected-icon `v2.9.0` | Selected icon | _string_ | `success` | ### Events diff --git a/src/tree-select/README.zh-CN.md b/src/tree-select/README.zh-CN.md index c2c7e7939..e7afbd870 100644 --- a/src/tree-select/README.zh-CN.md +++ b/src/tree-select/README.zh-CN.md @@ -126,6 +126,7 @@ export default { | main-active-index | 左侧选中项的索引 | _number \| string_ | `0` | | active-id | 右侧选中项的 id,支持传入数组 | _number \| string \|
(number \| string)[]_ | `0` | | max `v2.2.0` | 右侧项最大选中个数 | _number \| string_ | `Infinity` | +| selected-icon `v2.9.0` | 自定义右侧栏选中状态的图标 | _string_ | `success` | ### Events diff --git a/src/tree-select/index.tsx b/src/tree-select/index.tsx index e8581dc51..0ca699f6d 100644 --- a/src/tree-select/index.tsx +++ b/src/tree-select/index.tsx @@ -34,6 +34,7 @@ export type TreeSelectProps = { height: number | string; items: TreeSelectItem[]; activeId: TreeSelectActiveId; + selectedIcon: string; mainActiveIndex: number | string; }; @@ -49,7 +50,7 @@ function TreeSelect( slots: TreeSelectSlots, ctx: RenderContext ) { - const { height, items, mainActiveIndex, activeId } = props; + const { items, height, activeId, selectedIcon, mainActiveIndex } = props; const selectedItem: Partial = items[+mainActiveIndex] || {}; const subItems = selectedItem.children || []; @@ -110,7 +111,7 @@ function TreeSelect( > {item.text} {isActiveItem(item.id) && ( - + )} )); @@ -152,6 +153,10 @@ TreeSelect.props = { type: [Number, String, Array], default: 0, }, + selectedIcon: { + type: String, + default: 'success', + }, mainActiveIndex: { type: [Number, String], default: 0, diff --git a/src/tree-select/test/__snapshots__/index.spec.js.snap b/src/tree-select/test/__snapshots__/index.spec.js.snap index 5ddc82df5..245f661d1 100644 --- a/src/tree-select/test/__snapshots__/index.spec.js.snap +++ b/src/tree-select/test/__snapshots__/index.spec.js.snap @@ -34,3 +34,8 @@ exports[`nav info 1`] = `
`; + +exports[`selected-icon prop 1`] = ` +
city1 +
+`; diff --git a/src/tree-select/test/index.spec.js b/src/tree-select/test/index.spec.js index 8314203ab..3b45a3936 100644 --- a/src/tree-select/test/index.spec.js +++ b/src/tree-select/test/index.spec.js @@ -330,3 +330,16 @@ test('should sync value before trigger click-item event', (done) => { const items = wrapper.findAll('.van-tree-select__item'); items.at(1).trigger('click'); }); + +test('selected-icon prop', () => { + const wrapper = mount(TreeSelect, { + propsData: { + items: mockItems, + activeId: 1, + mainActiveIndex: 0, + selectedIcon: 'foo', + }, + }); + + expect(wrapper.find('.van-tree-select__item')).toMatchSnapshot(); +});