首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用一个按钮切换ElementPlus Vue3库的所有el-折叠项?

如何用一个按钮切换ElementPlus Vue3库的所有el-折叠项?
EN

Stack Overflow用户
提问于 2022-07-29 11:25:57
回答 2查看 273关注 0票数 1

使用此代码,如何展开和折叠。只需一个按钮就可以切换ElementPlus Vue3库的所有el-折叠项?

代码语言:javascript
复制
<template>
<div class="demo-collapse">
<el-collapse v-model="activeName" accordion>
  <el-collapse-item title="Consistency" name="1">

<script lang="ts" setup>
import { ref } from 'vue'

const activeName = ref('1')
</script>

https://element-plus.org/en-US/component/collapse.html#accordion

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-29 11:43:38

您不能在手风琴模式下这样做。正如文件所述:

在手风琴模式下,一次只能展开一个面板。

要做到这一点,您必须删除手风琴支柱,并将activeName值更改为数组,如文档中所示:

代码语言:javascript
复制
  const activeNames = ref(['1'])

若要展开/折叠所有项,可以创建一个函数,该函数将更改activeNames的值,以包含el折叠项组件的所有名称或为空,例如

代码语言:javascript
复制
toggleElements() {
  if(activeName.value.length) {
    activeName.value = [];
  } else {
    activeName.value = ['1', '2', '3', ...];
  }
}
票数 0
EN

Stack Overflow用户

发布于 2022-07-29 11:51:32

请看下面的片段:

代码语言:javascript
复制
const { ref } = Vue

const app = Vue.createApp({
  setup() {
    const items = ref([{id: 1, title: "first", text: "aaaaaaaaaaaa"}, {id: 2, title: "second", text: "bbbbbbbbbbbb"}, {id: 3, title: "third", text: "ccccccccccc"}])
    const activeName = ref([1]);
    const toggleAll = () => {
      activeName.value = activeName.value.length === items.value.length 
        ? [] 
        : items.value.map(i => i.id)
    }
    return { items, activeName, toggleAll };
  },
})
app.use(ElementPlus);
app.mount('#demo')
代码语言:javascript
复制
<link rel="stylesheet" href="//unpkg.com/element-plus/dist/index.css" />
<script src="//unpkg.com/vue@3"></script>
<script src="//unpkg.com/element-plus"></script>

<div id="demo">
  <div class="flex justify-space-between mb-4 flex-wrap gap-4">
    <el-button type="primary" text bg @click="toggleAll">toggle all</el-button>
  </div>
  <div class="demo-collapse">
    <el-collapse v-model="activeName" accordion>
      <el-collapse-item v-for="item in items" :key="item.id" :title="item.title" :name="item.id">
        <div>
          {{ item.text }}
        </div>
      </el-collapse-item>
    </el-collapse>
  </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73165968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档