element-plus/website/docs/en-US/collapse.md
三咲智子 55348b30b6
style: use prettier (#3228)
* style: use prettier

* style: just prettier format, no code changes

* style: eslint fix
object-shorthand, prefer-const

* style: fix no-void

* style: no-console
2021-09-04 19:29:28 +08:00

7.9 KiB

Collapse

Use Collapse to store contents.

Basic usage

You can expand multiple panels

:::demo

<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.

<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

<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

Collapse Item Slot

Name Description
content of Collapse Item
title content of Collapse Item title