Skip to content
12:13

TnCollapse-折叠面板

该组件用于折叠内容,只显示标题,点击标题展开内容

组件位置

typescript
import TnCollapse from '@tuniao/tnui-vue3-uniapp/components/collapse/src/collapse.vue'
import TnCollapseItem from '@tuniao/tnui-vue3-uniapp/components/collapse/src/collapse-item.vue'
import TnCollapse from '@tuniao/tnui-vue3-uniapp/components/collapse/src/collapse.vue'
import TnCollapseItem from '@tuniao/tnui-vue3-uniapp/components/collapse/src/collapse-item.vue'
typescript
import TnCollapse from '@/uni_modules/tuniaoui-vue3/components/collapse/src/collapse.vue'
import TnCollapseItem from '@/uni_modules/tuniaoui-vue3/components/collapse/src/collapse-item.vue'
import TnCollapse from '@/uni_modules/tuniaoui-vue3/components/collapse/src/collapse.vue'
import TnCollapseItem from '@/uni_modules/tuniaoui-vue3/components/collapse/src/collapse-item.vue'

平台差异说明

App(vue)H5微信小程序支付宝小程序...
适配中

基础使用

  • 通过v-model绑定TnCollapseItem的索引值,控制内容的展开与收起,如果accordionfalse传递必须为一个数组
vue
<script lang="ts" setup>
import { ref } from 'vue'

const currentCollapse = ref<number>()

const collapseData = [
  {
    title: '关雎',
    content:
      '关关雎鸠,在河之洲。窈窕淑女,君子好逑。参差荇菜,左右流之。窈窕淑女,寤寐求之。求之不得,寤寐思服。悠哉悠哉,辗转反侧。参差荇菜,左右采之。窈窕淑女,琴瑟友之。参差荇菜,左右芼之。窈窕淑女,钟鼓乐之。',
  },
  {
    title: '长歌行',
    content:
      '青青园中葵,朝露待日晞。阳春布德泽,万物生光辉。常恐秋节至,焜黄华叶衰。百川东到海,何时复西归?少壮不努力,老大徒伤悲!',
  },
  {
    title: '秋风辞',
    content:
      '秋风起兮白云飞,草木黄落兮雁南归。兰有秀兮菊有芳,怀佳人兮不能忘。泛楼船兮济汾河,横中流兮扬素波。少壮几时兮奈老何!',
  },
]
</script>

<template>
  <TnCollapse v-model="currentCollapse">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
    >
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const currentCollapse = ref<number>()

const collapseData = [
  {
    title: '关雎',
    content:
      '关关雎鸠,在河之洲。窈窕淑女,君子好逑。参差荇菜,左右流之。窈窕淑女,寤寐求之。求之不得,寤寐思服。悠哉悠哉,辗转反侧。参差荇菜,左右采之。窈窕淑女,琴瑟友之。参差荇菜,左右芼之。窈窕淑女,钟鼓乐之。',
  },
  {
    title: '长歌行',
    content:
      '青青园中葵,朝露待日晞。阳春布德泽,万物生光辉。常恐秋节至,焜黄华叶衰。百川东到海,何时复西归?少壮不努力,老大徒伤悲!',
  },
  {
    title: '秋风辞',
    content:
      '秋风起兮白云飞,草木黄落兮雁南归。兰有秀兮菊有芳,怀佳人兮不能忘。泛楼船兮济汾河,横中流兮扬素波。少壮几时兮奈老何!',
  },
]
</script>

<template>
  <TnCollapse v-model="currentCollapse">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
    >
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>

手风琴模式

手风琴模式默认为开启状态,在开启手风琴后只允许展开一个面板

通过修改accordion属性来开启手风琴模式

在手风琴模式下v-model的值为number 类型

在非手风琴模式下v-model的值为number[] 类型

vue
<template>
  <TnCollapse v-model="currentCollapse" :accordion="false">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
    >
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>
<template>
  <TnCollapse v-model="currentCollapse" :accordion="false">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
    >
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>

禁止操作

通过给TnCollapseItemdisabled属性设置为true来禁止操作

禁止第二个折叠面板操作

vue
<template>
  <TnCollapse v-model="currentCollapse">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
      :disabled="index === 1"
    >
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>
<template>
  <TnCollapse v-model="currentCollapse">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
      :disabled="index === 1"
    >
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>

自定义标题

通过TnCollapseItemtitle插槽来自定义标题

vue
<template>
  <TnCollapse v-model="currentCollapse">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
    >
      <template #title>
        <view class="tn-gray_text">{{ item.title }}</view>
      </template>
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>
<template>
  <TnCollapse v-model="currentCollapse">
    <TnCollapseItem
      v-for="(item, index) in collapseData"
      :key="index"
      :title="item.title"
    >
      <template #title>
        <view class="tn-gray_text">{{ item.title }}</view>
      </template>
      {{ item.content }}
    </TnCollapseItem>
  </TnCollapse>
</template>

API

Collapse Props

属性名说明类型默认值可选值
model-value/v-model绑定对应展开的折叠内容的唯一标识Number | Array<number>--
accordion是否开启手风琴效果,每次只能打开一个面板Booleantruefalse
show-arrow是否显示折叠面板的箭头Booleantruefalse
arrow-color折叠面板箭头的颜色,show-arrowtrue时生效,支持图鸟内置的颜色值、hex、rgb、rgbaString--

Collapse Events

事件名说明类型
change折叠状态发生改变时触发(value: (string | number)[] | string | number) => void

Collapse Slots

插槽名说明子标签
default自定义内容TnCollapseItem

CollapseItem Props

属性名说明类型默认值可选值
titleCollapseItem 标题String--
disabled禁止 CollapseItem 进行折叠展开操作Booleanfalsetrue

CollapseItem Slots

插槽名说明
default折叠显示的内容
title自定义折叠面板的标题

Tuniao UI