mirror of
https://github.com/element-plus/element-plus.git
synced 2024-12-27 03:01:14 +08:00
880b1910bf
Co-authored-by: 无星 <32910694@qq.com>
169 lines
6.8 KiB
Markdown
169 lines
6.8 KiB
Markdown
## Collapse
|
|
|
|
Use Collapse to store contents.
|
|
|
|
### Basic usage
|
|
|
|
You can expand multiple panels
|
|
|
|
:::demo
|
|
```html
|
|
<el-collapse v-model="activeNames" @change="handleChange">
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
activeNames: ['1']
|
|
};
|
|
},
|
|
methods: {
|
|
handleChange(val) {
|
|
console.log(val);
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<!--
|
|
<setup>
|
|
|
|
import { defineComponent, ref } from 'vue';
|
|
|
|
export default defineComponent({
|
|
setup() {
|
|
const activeNames = ref(['1']);
|
|
const handleChange = (val) => {
|
|
console.log(val);
|
|
};
|
|
return {
|
|
activeNames,
|
|
handleChange,
|
|
};
|
|
},
|
|
});
|
|
|
|
</setup>
|
|
-->
|
|
```
|
|
:::
|
|
|
|
### Accordion
|
|
|
|
In accordion mode, only one panel can be expanded at once
|
|
|
|
:::demo Activate accordion mode using the `accordion` attribute.
|
|
```html
|
|
<el-collapse v-model="activeName" accordion>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
activeName: '1'
|
|
};
|
|
}
|
|
}
|
|
</script>
|
|
<!--
|
|
<setup>
|
|
|
|
import { defineComponent, ref } from 'vue';
|
|
|
|
export default defineComponent({
|
|
setup() {
|
|
const activeName = ref('1');
|
|
|
|
return {
|
|
activeName,
|
|
};
|
|
},
|
|
});
|
|
|
|
</setup>
|
|
-->
|
|
```
|
|
:::
|
|
|
|
### Custom title
|
|
|
|
Besides using the `title` attribute, you can customize panel title with named slots, which makes adding custom content, e.g. icons, possible.
|
|
|
|
:::demo
|
|
```html
|
|
<el-collapse accordion>
|
|
<el-collapse-item name="1">
|
|
<template #title>
|
|
Consistency<i class="header-icon el-icon-info"></i>
|
|
</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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
<el-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>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
```
|
|
:::
|
|
|
|
### Collapse Attributes
|
|
| Attribute | Description | Type | Accepted Values | Default |
|
|
|---------- |-------------- |---------- |-------------------------------- |-------- |
|
|
| model-value / v-model | currently active panel | string (accordion mode) / array (non-accordion mode) | — | — |
|
|
| accordion | whether to activate accordion mode | boolean | — | false |
|
|
|
|
### Collapse Events
|
|
| Event Name | Description | Parameters |
|
|
|---------|---------|---------|
|
|
| change | triggers when active panels change | (activeNames: array (non-accordion mode) / string (accordion mode)) |
|
|
|
|
### Collapse Item Attributes
|
|
| Attribute | Description | Type | Accepted Values | Default |
|
|
|---------- |-------------- |---------- |-------------------------------- |-------- |
|
|
| name | unique identification of the panel | string/number | — | — |
|
|
| title | title of the panel | string | — | — |
|
|
| disabled | disable the collapse item | boolean | — | — |
|