Skip to content

Collapse

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

基本用法

可同时展开多个面板,面板之间不影响

一致性 Consistency
与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;
在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。
反馈 Feedback
可控 Controllability
<template>
  <Collapse v-model="openedValue">
    <CollapseItem name="a" title="一致性 Consistency">
      <div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
      <div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
    </CollapseItem>
    <CollapseItem name="b" title="反馈 Feedback">
      <div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
      <div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
    </CollapseItem>
    <CollapseItem name="c" title="可控 Controllability" disabled>
      <div>简化流程:设计简洁直观的操作流程;</div>
    </CollapseItem>
  </Collapse>
</template>

<script setup>
import { ref } from 'vue'
import Collapse from '@/components/Collapse/Collapse.vue'
import CollapseItem from '@/components/Collapse/CollapseItem.vue'

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

手风琴效果

每次只能展开一个面板

一致性 Consistency
与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;
在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。
反馈 Feedback
可控 Controllability
<template>
  <Collapse v-model="openedValue" accordion>
    <CollapseItem name="a" title="一致性 Consistency">
      <div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
      <div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
    </CollapseItem>
    <CollapseItem name="b" title="反馈 Feedback">
      <div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
      <div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
    </CollapseItem>
    <CollapseItem name="c" title="可控 Controllability" disabled>
      <div>简化流程:设计简洁直观的操作流程;</div>
    </CollapseItem>
  </Collapse>
</template>

<script setup>
import { ref } from 'vue'
import Collapse from '@/components/Collapse/Collapse.vue'
import CollapseItem from '@/components/Collapse/CollapseItem.vue'

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

自定义面板标题

除了可以通过 title 属性以外,还可以通过具名 slot 来实现自定义面板的标题内容,以实现增加图标等效果。

一致性 Consistency

与现实生活一致:

与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念
反馈 Feedback
可控 Controllability
<template>
  <Collapse v-model="openedValue">
    <CollapseItem name="a">
      <template #title>
        <h1 style="font-size: 16px;">一致性 Consistency<Icon icon="pen" color="#999"></Icon> </h1>
      </template>
      <h1>与现实生活一致:</h1>
      <div>与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念</div>
    </CollapseItem>
    <CollapseItem name="b" title="反馈 Feedback">
      <div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
      <div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
    </CollapseItem>
    <CollapseItem name="c" title="可控 Controllability" disabled>
      <div>简化流程:设计简洁直观的操作流程;</div>
    </CollapseItem>
  </Collapse>
</template>

<script setup>
import { ref } from 'vue'
import Collapse from '@/components/Collapse/Collapse.vue'
import CollapseItem from '@/components/Collapse/CollapseItem.vue'
import Icon from '@/components/Icon/Icon.vue'

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

Collapse Attributes

参数说明类型可选值默认值
accordion是否手风琴模式booleanfalse
value当前展开的面板,可以使用 v-model 双向绑定数据array

Collapse Events

事件名称说明回调参数
change当前展开的面板改变时触发(使用 v-model 时必用)展开的面板 key 值

Collapse Item Attributes

参数说明类型可选值默认值
name唯一标志符string
title面板标题string
disabled是否禁用面板booleanfalse
hide-arrow是否隐藏面板右上角箭头booleanfalse

Released under the MIT License.