Collapse 折叠面板
通过折叠面板收纳内容区域
基础用法
可同时展开多个面板,面板之间不影响
主次分明
合理区分信息,快速抓住用户眼球
合理排布信息的优先级,突出主要信息,弱化次要信息
突出重点
合理区分信息,快速抓住用户眼球
合理排布信息的优先级,突出主要信息,弱化次要信息
化繁为简
合理区分信息,快速抓住用户眼球
依据相似属性,划分同类信息,将繁杂的信息精简到几个分类,减少数量
步步为营
合理区分信息,快速抓住用户眼球
对于有明确节点的任务,拆解步骤,一步一步进行,有条不紊
vue
<template>
<div class="demo-collapse">
<w-radio-group v-model="size" aria-label="size control">
<w-radio-button value="large">large</w-radio-button>
<w-radio-button value="default">default</w-radio-button>
<w-radio-button value="small">small</w-radio-button>
</w-radio-group>
<w-checkbox-group v-model="style" style="margin: 16px 0">
<w-checkbox :value="1">简洁风格</w-checkbox>
<w-checkbox :value="2">描边</w-checkbox>
<w-checkbox :value="3">圆角</w-checkbox>
</w-checkbox-group>
<w-collapse
v-model="activeNames"
:size="size"
:plain="style.includes(1)"
:border="style.includes(2)"
:round="style.includes(3)"
@change="handleChange"
>
<w-collapse-item title="主次分明" name="1">
<div>合理区分信息,快速抓住用户眼球</div>
<div>合理排布信息的优先级,突出主要信息,弱化次要信息</div>
</w-collapse-item>
<w-collapse-item disabled title="突出重点" name="2">
<div>合理区分信息,快速抓住用户眼球</div>
<div>合理排布信息的优先级,突出主要信息,弱化次要信息</div>
</w-collapse-item>
<w-collapse-item title="化繁为简" name="3">
<div>合理区分信息,快速抓住用户眼球</div>
<div>
依据相似属性,划分同类信息,将繁杂的信息精简到几个分类,减少数量
</div>
</w-collapse-item>
<w-collapse-item title="步步为营" name="4">
<div>合理区分信息,快速抓住用户眼球</div>
<div>对于有明确节点的任务,拆解步骤,一步一步进行,有条不紊</div>
</w-collapse-item>
</w-collapse>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import type { CollapseModelValue } from 'win-design-next'
const activeNames = ref(['1'])
const style = ref([2, 3])
const size = ref<'default' | 'large' | 'small'>('default')
const handleChange = (val: CollapseModelValue) => {
console.log(val)
}
</script>
隐藏源代码
手风琴效果
每次只能展开一个面板
通过 accordion 属性来设置是否以手风琴模式显示。
Consistency
Consistent with real life: in line with the process and logic of real life, and comply with languages and habits that the users are used to;
Consistent within interface: all elements should be consistent, such as: design style, icons and texts, position of elements, etc.
Feedback
Operation feedback: enable the users to clearly perceive their operations by style updates and interactive effects;
Visual feedback: reflect current state by updating or rearranging elements of the page.
Efficiency
Simplify the process: keep operating process simple and intuitive;
Definite and clear: enunciate your intentions clearly so that the users can quickly understand and make decisions;
Easy to identify: the interface should be straightforward, which helps the users to identify and frees them from memorizing and recalling.
Controllability
Decision making: giving advices about operations is acceptable, but do not make decisions for the users;
Controlled consequences: users should be granted the freedom to operate, including canceling, aborting or terminating current operation.
vue
<template>
<div class="demo-collapse">
<w-collapse v-model="activeName" accordion>
<w-collapse-item title="Consistency" name="1">
<div>
Consistent with real life: in line with the process and logic of real
life, and comply with languages and habits that the users are used to;
</div>
<div>
Consistent within interface: all elements should be consistent, such
as: design style, icons and texts, position of elements, etc.
</div>
</w-collapse-item>
<w-collapse-item title="Feedback" name="2">
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
</w-collapse-item>
<w-collapse-item title="Efficiency" name="3">
<div>
Simplify the process: keep operating process simple and intuitive;
</div>
<div>
Definite and clear: enunciate your intentions clearly so that the
users can quickly understand and make decisions;
</div>
<div>
Easy to identify: the interface should be straightforward, which helps
the users to identify and frees them from memorizing and recalling.
</div>
</w-collapse-item>
<w-collapse-item title="Controllability" name="4">
<div>
Decision making: giving advices about operations is acceptable, but do
not make decisions for the users;
</div>
<div>
Controlled consequences: users should be granted the freedom to
operate, including canceling, aborting or terminating current
operation.
</div>
</w-collapse-item>
</w-collapse>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const activeName = ref('1')
</script>
隐藏源代码
自定义面板标题
除了可以通过 title 属性以外,还可以通过具名 slot 来实现自定义面板的标题内容,以实现增加图标等效果。
Consistency
Consistent with real life: in line with the process and logic of real life, and comply with languages and habits that the users are used to;
Consistent within interface: all elements should be consistent, such as: design style, icons and texts, position of elements, etc.
Feedback
Operation feedback: enable the users to clearly perceive their operations by style updates and interactive effects;
Visual feedback: reflect current state by updating or rearranging elements of the page.
Efficiency
Simplify the process: keep operating process simple and intuitive;
Definite and clear: enunciate your intentions clearly so that the users can quickly understand and make decisions;
Easy to identify: the interface should be straightforward, which helps the users to identify and frees them from memorizing and recalling.
Controllability
Decision making: giving advices about operations is acceptable, but do not make decisions for the users;
Controlled consequences: users should be granted the freedom to operate, including canceling, aborting or terminating current operation.
vue
<template>
<div class="demo-collapse">
<w-collapse accordion>
<w-collapse-item name="1">
<template #title>
Consistency<w-icon class="header-icon">
<circle-info-filled />
</w-icon>
</template>
<div>
Consistent with real life: in line with the process and logic of real
life, and comply with languages and habits that the users are used to;
</div>
<div>
Consistent within interface: all elements should be consistent, such
as: design style, icons and texts, position of elements, etc.
</div>
</w-collapse-item>
<w-collapse-item title="Feedback" name="2">
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
</w-collapse-item>
<w-collapse-item title="Efficiency" name="3">
<div>
Simplify the process: keep operating process simple and intuitive;
</div>
<div>
Definite and clear: enunciate your intentions clearly so that the
users can quickly understand and make decisions;
</div>
<div>
Easy to identify: the interface should be straightforward, which helps
the users to identify and frees them from memorizing and recalling.
</div>
</w-collapse-item>
<w-collapse-item title="Controllability" name="4">
<div>
Decision making: giving advices about operations is acceptable, but do
not make decisions for the users;
</div>
<div>
Controlled consequences: users should be granted the freedom to
operate, including canceling, aborting or terminating current
operation.
</div>
</w-collapse-item>
</w-collapse>
</div>
</template>
<script setup lang="ts">
import { CircleInfoFilled } from '@win-design-next/icons-vue'
</script>
隐藏源代码
自定义图标
除了使用 icon 属性外,您还可以自定义面板项目图标,从而添加自定义内容。
Consistency
Consistent with real life: in line with the process and logic of real life, and comply with languages and habits that the users are used to;
Consistent within interface: all elements should be consistent, such as: design style, icons and texts, position of elements, etc.
FeedbackCollapsed
Operation feedback: enable the users to clearly perceive their operations by style updates and interactive effects;
Visual feedback: reflect current state by updating or rearranging elements of the page.
Efficiency
Simplify the process: keep operating process simple and intuitive;
Definite and clear: enunciate your intentions clearly so that the users can quickly understand and make decisions;
Easy to identify: the interface should be straightforward, which helps the users to identify and frees them from memorizing and recalling.
Controllability
Decision making: giving advices about operations is acceptable, but do not make decisions for the users;
Controlled consequences: users should be granted the freedom to operate, including canceling, aborting or terminating current operation.
vue
<template>
<div class="demo-collapse">
<w-collapse v-model="activeNames" @change="handleChange">
<w-collapse-item title="Consistency" name="1" :icon="CaretRight">
<div>
Consistent with real life: in line with the process and logic of real
life, and comply with languages and habits that the users are used to;
</div>
<div>
Consistent within interface: all elements should be consistent, such
as: design style, icons and texts, position of elements, etc.
</div>
</w-collapse-item>
<w-collapse-item title="Feedback" name="2">
<template #icon="{ isActive }">
<span class="icon-ele">
{{ isActive ? 'Expanded' : 'Collapsed' }}
</span>
</template>
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
</w-collapse-item>
<w-collapse-item title="Efficiency" name="3">
<div>
Simplify the process: keep operating process simple and intuitive;
</div>
<div>
Definite and clear: enunciate your intentions clearly so that the
users can quickly understand and make decisions;
</div>
<div>
Easy to identify: the interface should be straightforward, which helps
the users to identify and frees them from memorizing and recalling.
</div>
</w-collapse-item>
<w-collapse-item title="Controllability" name="4">
<div>
Decision making: giving advices about operations is acceptable, but do
not make decisions for the users;
</div>
<div>
Controlled consequences: users should be granted the freedom to
operate, including canceling, aborting or terminating current
operation.
</div>
</w-collapse-item>
</w-collapse>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { CaretRight } from '@win-design-next/icons-vue'
import type { CollapseModelValue } from 'win-design-next'
const activeNames = ref(['1'])
const handleChange = (val: CollapseModelValue) => {
console.log(val)
}
</script>
<style scoped>
.icon-ele {
margin: 0 8px 0 auto;
color: #2d5afa;
}
</style>
隐藏源代码
Collapse API
Attributes
| 属性名 | 详情 | 类型 | 默认值 |
|---|---|---|---|
| model-value / v-model | 当前活动面板,在手风琴模式下其类型是string,在其他模式下是array | string / array | [] |
| accordion | 是否手风琴模式 | boolean | false |
Events
| 事件名 | 说明 | 类型 |
|---|---|---|
| change | 切换当前活动面板,在手风琴模式下其类型是string,在其他模式下是array | Function |
Slots
| 插槽名 | Description | 子标签 |
|---|---|---|
| default | 自定义默认内容 | Collapse Item |
Collapse Item API
Attributes
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| name | 唯一标志符 | string / number | — |
| title | 面板标题 | string | '' |
| icon | 折叠项目的图标 | string / Component | ArrowRight |
| disabled | 是否禁用 | boolean | false |
Slot
| 插槽名 | 说明 | Type |
|---|---|---|
| default | Collapse Item 的内容 | — |
| title | Collapse Item 的标题 | — |
| icon | 折叠项目图标的内容 | object |
Copyright 2025 Winning Health 版权所有

