element的折叠面板Collapse组件的二次封装

一、封装Collapse组件

新建 Collapse.vue文件,放在vue项目的components文件夹下

<template>
  <div class="collapse-container">
    <el-collapse accordion v-model="activeNames" @change="handleCollapseChange">
      <el-collapse-item name="collapsePanel">
        <template slot="title">
          <i class="search el-icon-fa-search"></i>
          <span class="search">搜索</span>
        </template>
        <slot />
      </el-collapse-item>
    </el-collapse>
  </div>
</template>
<script>
export default {
  computed: {
    activeNames: {
      // collapse的默认展开与否,arrs中的路由,默认为展开状态
      get() {
        const arrs = ["/default", "/attr"];
        if (arrs.includes(this.$route.path)) {
          return "collapsePanel";
        } else {
          return "";
        }
      },
      set() {}
    }
  },
  methods: {
    handleCollapseChange(val) {
      this.$emit("handleCollapseChange", val);
    }
  }
};
</script>
<style lang="scss">
.collapse-container {
  .search {
    color: $icon_color;
    font-size: 15px;
    font-weight: 600;
    margin-left: 10px;
  }
  .el-collapse-item__header {
    height: 35px;
    line-height: 35px;
  }
  .el-collapse-item__content {
    padding-bottom: 0;
  }
}
</style>

二、使用刚刚封装的组件

<template>
     // 3. 使用组件
     <div>
      <comn-collapse @handleCollapseChange="handleCollapseChange">
          <div> 这里根据不同情况,放置了不同情况的表单</div>
       </comn-collapse>
       </div>
 </template>
 <script>
 import comnCollapse from "@/components/Collapse.vue"; // 1. 局部引入组件,根据情况定,是否全局引入
 export default {
	components:{
		comnCollapse  // 2. 注册组件
	},
	data(){
	return {
		collapsePanel:"",  // 它有值,代表此时折叠面板处于展开状态
	}
	},
  methods: {
	 handleCollapseChange(val) {
       this.collapsePanel = val;
   	  }
	}
 }
</script>

在这里插入图片描述在这里插入图片描述
应用情况如下(项目中的页面设计,在多处有类似的情况):
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值