vue elementui简易侧拉栏的使用小结

 更新时间:2024年06月27日 10:41:37   作者:极端~  
这篇文章主要介绍了vue elementui简易侧拉栏的使用,增加了侧拉栏,目的是可以选择多条数据展示数据,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

如图所示,增加了侧拉栏,目的是可以选择多条数据展示数据

组件: celadon.vue

<template>
  <div class="LayoutMain">
    <el-aside :width="sidebarIsCollapse ? '180px' : '0px'" class="aside-wrap">
      <template>
        <div
          :class="[
            'aside-wrap-header',
            { 'aside-wrap-header--hide': sidebarIsCollapse },
          ]"
          @click="toggleCollapse"
        ></div>
        <div class="aside-wrap-slot">
          <slot class="btnSlot" name="asideWrapSlot" />
        </div>
      </template>
    </el-aside>
    <div
      class="layout-main-btn"
      :class="['left', { hide: !sidebarIsCollapse }]"
      @click="toggleCollapse"
    >
      <template v-if="sidebarIsCollapse">
        <i class="el-icon-arrow-left" />
      </template>
      <template v-else>
        <i class="el-icon-arrow-right" />
      </template>
    </div>
  </div>
</template>
<script>
export default {
  name: "LayoutMain",
  components: {},
  props: {
    sidebarIsCollapse: {
      type: Boolean,
      default: false,
    },
    menuName: {
      type: String,
      default: "",
    },
  },
  data() {
    return {};
  },
  methods: {
    toggleCollapse() {
      this.$emit("toggleCollapse");
    },
  },
};
</script>
<style  lang="scss" scoped>
.LayoutMain {
  background: transparent;
  height: 100%;
  width: 100%;
  display: flex;
  ::v-deep .el-main {
    padding: 16px !important;
  }
  .aside-wrap {
    height: 100%;
    background: rgba(67, 133, 219, 0.301);
    transition: width 0.4s;
    .aside-wrap-header {
      display: flex;
    //   height: 48px;
      align-items: center;
      padding: 0 16px;
      font-size: 14px;
      font-family: PingFangSC-Semibold, PingFang SC;
      font-weight: 600;
      color: #333333;
      cursor: pointer;
      &::v-deep .el-menu::-webkit-scrollbar {
        width: 0 !important;
        -ms-overflow-style: scroll;
        overflow: scroll;
      }
    }
  }
  .layout-main-btn {
    position: absolute;
    top: 40px;
    z-index: 999;
    height: 56px;
    line-height: 54px;
    text-align: center;
    width: 14px;
    border-radius: 10px;
    border: 0.5px solid #ccc;
    background: rgb(27, 118, 238);
    cursor: pointer;
    i {
      color: #e4dada;
      font-size: 14px;
    }
  }
  .left {
    left: 180px;
    transition: left 0.4s;
  }
  .hide {
    left: -5px;
    transition: left 0.4s;
  }
}
</style>

在页面使用

<!--数据分析侧拉栏-->
          <div style="z-index:999; position: absolute;width: 180px;height: 300px;"
          >
            <celadon
              style="
                margin-top: 40px;
                height: 100%;
                width: 100%;
                overflow: scroll;
              "
              :sidebar-is-collapse="sidebarIsCollapse"
              @toggleCollapse="toggleCollapse"
            >
              <div class="select-items" slot="asideWrapSlot">
                <div
                  class="selset-item"
                  v-for="(item, index) in items"
                  :key="index"
                >
                  <input
                    type="checkbox"
                    :id="'checkbox-' + index"
                    v-model="selectedItems"
                    :value="item"
                    @click="selectCheckBox"
                  />
                  <label :for="'checkbox-' + index">{{ item.name }}</label>
                </div>
                <el-button style="margin: 20px 30px" size="small" type="primary"
                  >选择</el-button
                >
              </div>
            </celadon>
          </div>
          <!--data-->
          items: [
        { name: "1号设备", value: "12" },
        { name: "2号设备", value: "13" },
        { name: "3号设备", value: "4" },
        { name: "3号设备", value: "2" },
        { name: "3号设备", value: "3" },
        { name: "3号设备", value: "1" },
        { name: "3号设备", value: "11" },
        { name: "3号设备", value: "14" },
        { name: "3号设备", value: "15" },
        { name: "3号设备", value: "16" },
        { name: "3号设备", value: "17" },
        { name: "3号设备", value: "33" },
        { name: "3号设备", value: "22" },
        { name: "3号设备", value: "55" },
        { name: "3号设备", value: "66" },
        { name: "3号设备", value: "31" },
        { name: "3号设备", value: "56" },
        { name: "3号设备", value: "45" },
      ],
          <!--methods-->
    selectCheckBox(value){
      console.log(value)
    },
    toggleCollapse() {
      this.sidebarIsCollapse = !this.sidebarIsCollapse;
    },

到此这篇关于vue elementui简易侧拉栏的使用的文章就介绍到这了,更多相关vue elementui侧拉栏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Vue中使用JSONP进行跨域数据传输的完整指南

    在Vue中使用JSONP进行跨域数据传输的完整指南

    本文将介绍JSONP(JSON with Padding)的原理和用法,以及如何使用JSONP进行跨域数据传输,详细解释JSONP的工作原理,并提供前端和后端的代码示例,帮助你理解和实践JSONP跨域请求,需要的朋友可以参考下
    2023-06-06
  • Vue.js组件通信的几种姿势

    Vue.js组件通信的几种姿势

    组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。下面通过本文给大家分享Vue.js组件通信的几种姿势,感兴趣的朋友一起看看吧
    2017-10-10
  • Vue3之修改端口号方式

    Vue3之修改端口号方式

    这篇文章主要介绍了Vue3之修改端口号方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue内点击url下载文件的最佳解决方案分享

    vue内点击url下载文件的最佳解决方案分享

    这篇文章主要给大家介绍了关于vue内点击url下载文件的最佳解决方案,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • vue打印功能实现的两种方法总结

    vue打印功能实现的两种方法总结

    在项目中,有时需要打印页面的表格,所以下面这篇文章主要给大家介绍了关于vue打印功能实现的两种方法,以及批量打印的完整代码,需要的朋友可以参考下
    2021-06-06
  • vue实现循环切换动画

    vue实现循环切换动画

    这篇文章主要为大家详细介绍了vue实现循环切换动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • vue项目打包之后背景样式丢失的解决方案

    vue项目打包之后背景样式丢失的解决方案

    今天小编就为大家分享一篇关于vue项目打包之后背景样式丢失的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Vue中使用v-model双向数据绑定select、checked等多种表单元素的方法

    Vue中使用v-model双向数据绑定select、checked等多种表单元素的方法

     v-model 指令可以用在表单 input、textarea 及 select 元素上创建双向数据绑定,它会根据控件类型自动选取正确的方法来更新元素,本文给大家介绍Vue中如何使用v-model双向数据绑定select、checked等多种表单元素,感兴趣的朋友一起看看吧
    2023-10-10
  • vue.config.js中配置分包策略及常见的配置选项

    vue.config.js中配置分包策略及常见的配置选项

    在Vue.js中分包(Code Splitting)是一种将应用程序代码拆分为不同的块或包的技术,从而在需要时按需加载这些包,下面这篇文章主要给大家介绍了关于vue.config.js中配置分包策略及常见的配置选项的相关资料,需要的朋友可以参考下
    2024-02-02
  • vite中的glob-import批量导入的实现

    vite中的glob-import批量导入的实现

    本文主要介绍了vite中的glob-import批量导入的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论