mirror of
https://gitee.com/vant-contrib/vant-weapp.git
synced 2025-11-06 22:12:08 +08:00
Collapse 折叠面板
引入
在app.json或index.json中引入组件,详细介绍见快速上手
"usingComponents": {
"van-collapse": "@vant/weapp/collapse/index",
"van-collapse-item": "@vant/weapp/collapse-item/index"
}
代码演示
基础用法
通过value控制展开的面板列表,activeNames为数组格式
<van-collapse value="{{ activeNames }}" bind:change="onChange">
<van-collapse-item title="有赞微商城" name="1">
提供多样店铺模板,快速搭建网上商城
</van-collapse-item>
<van-collapse-item title="有赞零售" name="2">
网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失
</van-collapse-item>
<van-collapse-item title="有赞美业" name="3" disabled>
线上拓客,随时预约,贴心顺手的开单收银
</van-collapse-item>
</van-collapse>
Page({
data: {
activeNames: ['1'],
},
onChange(event) {
this.setData({
activeNames: event.detail,
});
},
});
手风琴
通过accordion可以设置为手风琴模式,最多展开一个面板,此时activeName为字符串格式
<van-collapse accordion value="{{ activeName }}" bind:change="onChange">
<van-collapse-item title="有赞微商城" name="1">
提供多样店铺模板,快速搭建网上商城
</van-collapse-item>
<van-collapse-item title="有赞零售" name="2">
网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失
</van-collapse-item>
<van-collapse-item title="有赞美业" name="3">
线上拓客,随时预约,贴心顺手的开单收银
</van-collapse-item>
</van-collapse>
Page({
data: {
activeName: '1',
},
onChange(event) {
this.setData({
activeName: event.detail,
});
},
});
事件监听
van-collapse 提供了 change, open 和 close 事件。change 事件在面板切换时触发,open 事件在面板展开时触发,close 事件在面板关闭时触发。
<van-collapse
value="{{ activeNames }}"
bind:change="onChange"
bind:open="onOpen"
bind:close="onClose"
>
<van-collapse-item title="有赞微商城" name="1">
提供多样店铺模板,快速搭建网上商城
</van-collapse-item>
<van-collapse-item title="有赞零售" name="2">
网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失
</van-collapse-item>
<van-collapse-item title="有赞美业" name="3">
线上拓客,随时预约,贴心顺手的开单收银
</van-collapse-item>
</van-collapse>
Page({
data: {
activeNames: ['1'],
},
onChange(event) {
this.setData({
activeNames: event.detail,
});
},
onOpen(event) {
Toast(`展开: ${event.detail}`);
},
onClose(event) {
Toast(`关闭: ${event.detail}`);
},
});
自定义标题内容
<van-collapse value="{{ activeNames }}" bind:change="onChange">
<van-collapse-item name="1">
<view slot="title">有赞微商城<van-icon name="question-o" /></view>
提供多样店铺模板,快速搭建网上商城
</van-collapse-item>
<van-collapse-item title="有赞零售" name="2" icon="shop-o">
网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失
</van-collapse-item>
</van-collapse>
Page({
data: {
activeNames: ['1'],
},
onChange(event) {
this.setData({
activeNames: event.detail,
});
},
});
API
Collapse Props
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| value | 当前展开面板的 name | 非手风琴模式:(string | number)[] 手风琴模式:string | number |
- | - |
| accordion | 是否开启手风琴模式 | boolean | false |
- |
| border | 是否显示外边框 | boolean | true |
- |
Collapse Event
| 事件名 | 说明 | 参数 |
|---|---|---|
| change | 切换面板时触发 | activeNames: string | Array |
| open | 展开面板时触发 | currentName: string | number |
| close | 关闭面板时触发 | currentName: string | number |
CollapseItem Props
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| name | 唯一标识符,默认为索引值 | string | number | index |
- |
| title | 标题栏左侧内容 | string | number | - | - |
| icon | 标题栏左侧图标名称或图片链接,可选值见 Icon 组件 | string | - | - |
| value | 标题栏右侧内容 | string | number | - | - |
| label | 标题栏描述信息 | string | - | - |
| border | 是否显示内边框 | boolean | true |
- |
| is-link | 是否展示标题栏右侧箭头并开启点击反馈 | boolean | true |
- |
| clickable | 是否开启点击反馈 | boolean | false |
- |
| disabled | 是否禁用面板 | boolean | false |
- |
CollapseItem Slot
| 名称 | 说明 |
|---|---|
| - | 面板内容 |
| value | 自定义显示内容 |
| icon | 自定义icon |
| title | 自定义title |
| right-icon | 自定义右侧按钮,默认是arrow |
Collapse 外部样式类
| 类名 | 说明 |
|---|---|
| custom-class | 根节点样式类 |
CollapseItem 外部样式类
| 类名 | 说明 |
|---|---|
| custom-class | 根节点样式类 |
| content-class | 内容样式类 |