VUE 实现 Studio 管理后台(五):手风琴式折叠组件(Accordion)

作为一个有目标的人(目标是做一个好用的 Bootstrap 可视化编辑器,第一个版本已经实现,演示地址:https://vular.cn/rxeditor/,代码地址:https://github.com/vularsoft/rxeditor),工作比较积极,思维也比较活跃,睡眠相对较少。今早 6:30 就起床了,吃早饭前,实现了一个手风琴式折叠组件,具体效果如下:

在这里插入图片描述

一般情况,这样的控件有两种表现形式:

1、排他展开,也就是一次只有一个项目展开,其它闭合,类似 QQ 的好友分组。

2、随意展开,不拍它,可以同时展开多个

只实现第二种方式,相对比较容易,每个子项目控制自己的状态就可以,不用跟其它项目交互。我的目标式做一个控件,两种方式都支持,通过属性参数 multiple 确定是否可以同时展开多个。

添加新的文件跟目录:

在这里插入图片描述

跟上次实现 Tabs 控件一样,有一个通用的子组件:CollapsibleItem,基于这个组件实现折叠组件:SimpleAccordion。如果以后像实现其它风格的折叠组件,可以共用 CollapsibleItem 组件。根据我个人的习惯,首先设想这个组件的使用方式,应该是这样:

<SimpleAccordion :multiple='true'> 
    <CollapsibleItem>
    <template #heading>标题1</template>
    <template #body>内容1....</template>
    </CollapsibleItem>
    <CollapsibleItem>
    <template #heading>标题2</template>
    <template #body>内容2....</template>
    </CollapsibleItem>
</SimpleAccordion>

按照这样的需求,先写 SimpleAccordion 的模板代码:

<template>
  <div class="simple-accordion">
    <slot></slot>
  </div>
</template>

看起来非常简单,接下来再写 CollapsibleItem 的模板代码:

<template>
  <div class="collapsible-item" :class="!isActive ? 'item-collapse' : ''">
    <div class="item-heading" @click="click">
      <slot name="heading"></slot>
    </d
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值