Skip to content

Collapse 折叠面板

预览
01:38

组件名:rice-collapse、rice-collapse-item

通过折叠面板收纳内容区域

平台兼容性

uni-app x

AndroidiOS鸿蒙Next微信小程序h5

基础用法

通过v-model 控制展开的面板列表

html
<rice-collapse v-model="opened">
  <rice-collapse-item name="a" :title="title1" :content-text="text1"></rice-collapse-item>
  <rice-collapse-item name="b" :title="title2" :content-text="text2"></rice-collapse-item>
  <rice-collapse-item name="c" :title="title3">
    <text class="text">{{text3}} 当前打开的面板:{{opened.join('-')}}</text>
  </rice-collapse-item>
</rice-collapse>

<script setup>
  const opened = ref(['a'])
</script>

手风琴

通过 accordion 可以设置为手风琴模式,最多展开一个面板,此时 activeName 为字符串格式。

html
<rice-collapse accordion border>
  <rice-collapse-item :title="title1" :content-text="text1"></rice-collapse-item>
  <rice-collapse-item :title="title2" :content-text="text2"></rice-collapse-item>
  <rice-collapse-item :title="title3" :content-text="text3"></rice-collapse-item>
</rice-collapse>

禁用状态

通过 disabled 属性来禁用单个面板。 通过 readonly 属性设置单个面板为只读。

html

<rice-collapse-item :title="`${title1} (只读)`" readonly :content-text="text1"></rice-collapse-item>
<rice-collapse-item :title="title2" disabled>
  <text class="text">{{text2}}</text>
</rice-collapse-item>
<rice-collapse-item :title="title3" disabled>
  <text class="text">{{text3}}</text>
</rice-collapse-item>

自定义标题

html
<rice-collapse accordion v-model="value">
  <rice-collapse-item :title="title1" name="a">
    <template #title>
      <view class="slot-title">
        <text class="slot-title__text">{{title1}}</text>
        <rice-icon name="like-fill" color="#f56c6c" />
      </view>
    </template>
    <template #value>
      <text class="slot-value">{{value=='a'?'收起':'展开'}}</text>
    </template>
    <text class="text">{{text1}}</text>
  </rice-collapse-item>
  <rice-collapse-item :title="title2" name="b" :value="value=='b'?'收起':'展开'">
    <text class="text">{{text2}}</text>
    <template #rightIcon>
      <rice-icon :name="value=='b'?'arrow-down':'arrow-right'"></rice-icon>
    </template>
  </rice-collapse-item>
</rice-collapse>

API

Collapse Props

属性名类型说明默认值
v-model\ model-valueString|Array当前活动面板,在手风琴模式下类型是string|number,非手风琴模式下类型是(number | string)[]-
accordionBoolean是否手风琴模式 默认false-
borderBoolean是否显示上下边框,默认 false-
durationNumber动画过渡时间,单位ms,默认 250-
custom-styleObject自定义样式-

CollapseItem Props

属性名类型说明默认值
nameString|Number唯一标识-
iconString标题栏左侧图标名称,等同于Icon组件的name属性-
titleString|Number标题栏左侧内容-
valueString|Number标题栏右侧内容-
content-textString|Number内容区域文字-
durationNumber动画过渡时间单位ms,默认 250-
arrowBoolean是否显示右侧的箭头,默认true-
clickableBoolean是否开启点击反馈,默认true-
borderBoolean是否显示标题下面的边框,默认true-
content-borderBoolean是否显示内容区域下面的边框,默认true-
disabledBoolean是否禁用,默认false-
readonlyBoolean是否只读,默认false-
title-styleBoolean标题栏左侧样式-
value-styleBoolean标题栏右侧样式-
content-styleBoolean展开的内容区域样式-
custom-styleObject自定义样式-

Collapse Events

事件名说明回调参数
change切换面板时触发(Array<string | number> | string | number)

Slot

名称说明
default内容区域
leftIcon左侧图标
title标题
value右侧内容
rightIcon右侧图标

类型定义

组件导出如下类型

ts
const collapseRef=ref<RiceCollapseComponentPublicInstance|null>(null)
const collapseItemRef=ref<RiceCollapseItemComponentPublicInstance|null>(null)