feat(TreeSelect): add content slot (#2006)

This commit is contained in:
君寻 2019-09-10 10:27:05 +08:00 committed by neverland
parent 92acec945e
commit 9bd12ede08
3 changed files with 44 additions and 8 deletions

View File

@ -1,22 +1,35 @@
<demo-block title="基础用法"> <demo-block title="单选模式">
<van-tree-select <van-tree-select
content-item-class="content-item-class"
items="{{ items }}" items="{{ items }}"
main-active-index="{{ mainActiveIndex }}" main-active-index="{{ mainActiveIndex }}"
active-id="{{ activeId }}" active-id="{{ activeId }}"
bind:click-item="onClickItem" bind:click-item="onClickItem"
bind:click-nav="onClickNav" bind:click-nav="onClickNav"
content-item-class="content-item-class"
></van-tree-select> ></van-tree-select>
</demo-block> </demo-block>
<demo-block title="多选"> <demo-block title="多选模式">
<van-tree-select <van-tree-select
content-item-class="content-item-class"
max="2"
items="{{ items }}" items="{{ items }}"
main-active-index="{{ mainActiveIndexMulti }}" main-active-index="{{ mainActiveIndexMulti }}"
active-id="{{ activeIdMulti }}" active-id="{{ activeIdMulti }}"
bind:click-item="onClickItemMulti" bind:click-item="onClickItemMulti"
bind:click-nav="onClickNavMulti" bind:click-nav="onClickNavMulti"
max="2"
content-item-class="content-item-class"
></van-tree-select> ></van-tree-select>
</demo-block> </demo-block>
<demo-block title="自定义内容">
<van-tree-select
content-item-class="content-item-class"
items="{{ items }}"
main-active-index="{{ mainActiveIndexMulti }}"
active-id="{{ activeIdMulti }}"
bind:click-item="onClickItemMulti"
bind:click-nav="onClickNavMulti"
>
<image src="https://img.yzcdn.cn/vant/apple-1.jpg" slot="content" />
</van-tree-select>
</demo-block>

View File

@ -12,7 +12,7 @@
## 代码演示 ## 代码演示
### 基础用法 ### 单选模式
可以在任意位置上使用 van-tree-select 标签。传入对应的数据即可。 可以在任意位置上使用 van-tree-select 标签。传入对应的数据即可。
此组件支持单选或多选,具体行为完全基于事件 click-item 的实现逻辑如何为属性 active-id 赋值,当 active-id 为数组时即为多选状态。 此组件支持单选或多选,具体行为完全基于事件 click-item 的实现逻辑如何为属性 active-id 赋值,当 active-id 为数组时即为多选状态。
@ -48,13 +48,14 @@ Page({
}); });
``` ```
### 多选 ### 多选模式
```html ```html
<van-tree-select <van-tree-select
items="{{ items }}" items="{{ items }}"
main-active-index="{{ mainActiveIndex }}" main-active-index="{{ mainActiveIndex }}"
active-id="{{ activeId }}" active-id="{{ activeId }}"
max="{{ max }}"
bind:click-nav="onClickNav" bind:click-nav="onClickNav"
bind:click-item="onClickItem" bind:click-item="onClickItem"
/> />
@ -64,7 +65,8 @@ Page({
Page({ Page({
data: { data: {
mainActiveIndex: 0, mainActiveIndex: 0,
activeId: [] activeId: [],
max: 2
}, },
onClickNav({ detail = {} }) { onClickNav({ detail = {} }) {
@ -88,6 +90,20 @@ Page({
}); });
``` ```
### 自定义内容
```html
<van-tree-select
items="{{ items }}"
main-active-index="{{ mainActiveIndex }}"
active-id="{{ activeId }}"
bind:click-nav="onClickNav"
bind:click-item="onClickItem"
>
<image src="https://img.yzcdn.cn/vant/apple-1.jpg" slot="content" />
<van-tree-select/>
```
## API ## API
### Props ### Props
@ -106,6 +122,12 @@ Page({
| bind:click-nav | 左侧导航点击时,触发的事件 | event.detail.index被点击的导航的索引 | | bind:click-nav | 左侧导航点击时,触发的事件 | event.detail.index被点击的导航的索引 |
| bind:click-item | 右侧选择项被点击时,会触发的事件 | event.detail: 该点击项的数据 | | bind:click-item | 右侧选择项被点击时,会触发的事件 | event.detail: 该点击项的数据 |
### Slots
| 名称 | 说明 |
|-----------|-----------|
| content | 自定义右侧区域内容,如果存在 items则插入在顶部 |
### items 数据结构 ### items 数据结构
`items` 整体为一个数组,数组内包含一系列描述分类的对象 `items` 整体为一个数组,数组内包含一系列描述分类的对象

View File

@ -21,6 +21,7 @@
class="van-tree-select__content" class="van-tree-select__content"
style="height: {{ itemHeight }}px" style="height: {{ itemHeight }}px"
> >
<slot name="content" />
<view <view
wx:for="{{ subItems }}" wx:for="{{ subItems }}"
wx:key="id" wx:key="id"