【制作侧部导航栏,并添加消息提示】

40 篇文章 0 订阅
14 篇文章 1 订阅

在这里插入图片描述

整体:

提示:这里简述项目相关背景:

<template>
  <el-aside width="auto" :class="isCollapse?'menu-collapsed':'menu-expanded'">
  顶部头像/图片
  导航栏
  </el-aside>
</template>

顶部图片/头像:

提示:放置两个大小不同的图片,展开侧部导航栏时切换成大图片展示,否则显示小的,绑定changeCollapse点击事件
在这里插入图片描述

<div class="manager_name">
  <img v-if="!isCollapse" src="@/assets/images/130x52.png" class="home_img" @click="changeCollapse"/>
  <img v-else src="@/assets/images/52x52.png" style="width: 36px; height: 36px" class="home_img" @click="changeCollapse"/>
</div>
return中定义  isCollapse: false,
...
changeCollapse() {
      this.isCollapse = !this.isCollapse;
    },

导航栏部分:

在这里插入图片描述
提示:
在这里插入图片描述

<!--导航菜单-->
    <el-menu background-color="#304156"
             text-color="rgb(230, 230, 230)"
             active-text-color="rgb(64, 158, 255)"
             :default-active="activeIndex" unique-opened @select="handleSelect" router 	:collapse="isCollapse">
      <template v-for="item of $router.options.routes" v-if="!item.meta.hidden && (item.meta.accessType&userType)>0">
        <el-submenu :index="item.name" v-if="item.children">
          <template slot="title">
            <i :class="item.iconCls"/>
            {{ item.name }}
             </template>
          <el-menu-item v-for="child of item.children" :index="child.path" :key="child.path" :route="child"
                        v-if="!child.meta.hidden && (child.meta.accessType&userType)>0">
            {{ child.name }}
            </el-menu-item>
        </el-submenu>

添加提示功能

在return中定义变量等

return{
 isCollapse: false,
      activeIndex: '',
      userType: 0,
      lastReqTime: new Date(),
      msgCount: {}
      }

提示:
1.给下拉框(一级)右上角添加红色消息提示(统计管理、设备管理、个人中心)
2.没有消息时不显示红点is-dot
msgCount:消息数量
abnormalOrderCount:“异常订单”字段
item:[统计管理、设备管理、商品管理、账户管理、扶贫服务、消息管理、个人中心]
v-if=“msgCount.abnormalOrderCount>0&&item.name==‘统计管理’”:如果异常订单数大于0,且一级下拉列表为统计管理,则显示消息提示红点
在这里插入图片描述
在这里插入图片描述

<el-badge is-dot class="badge_first" v-if="msgCount.abnormalOrderCount>0&&item.name=='统计管理'"></el-badge>
<el-badge is-dot class="badge_first" v-if="(msgCount.faultDeviceCount>0||msgCount.offlineDeviceCount>0)&&item.name=='设备管理'"></el-badge>
<el-badge is-dot class="badge_first" v-if="msgCount.withdrawAccountApplyCount>0&&item.name=='个人中心'"></el-badge>

1.给二级添加带数字加的红色消息提示(统计管理【订单统计】、设备管理【设备列表、设备故障】、个人中心【商户资金】)
在这里插入图片描述
在这里插入图片描述

<el-badge class="badge_second" :value="msgCount.abnormalOrderCount" :max="99"
                      v-if="msgCount.abnormalOrderCount>0&&child.name=='订单统计'">
            </el-badge>
            <el-badge class="badge_second" :value="msgCount.faultDeviceCount" :max="99"
                      v-if="msgCount.faultDeviceCount>0&&child.name=='设备故障'">
            </el-badge>
            <el-badge class="badge_second" :value="msgCount.offlineDeviceCount" :max="99"
                      v-if="msgCount.offlineDeviceCount>0&&child.name=='设备列表'">
            </el-badge>
            <el-badge class="badge_second" :value="msgCount.withdrawAccountApplyCount" :max="99"
                      v-if="msgCount.withdrawAccountApplyCount>0&&child.name=='商户资金'">
            </el-badge>
methods{
 handleSelect: function (index) {
      this.activeIndex = index;
    },
    changeCollapse() {
      this.isCollapse = !this.isCollapse;
    },
     getNewMsgOnce() {
      this.lastReqTime = new Date();
      const that = this;
      this.get('franchiseeMessages/statistics').then((res) => {
        console.log(res)
        if (res.errorCode == 0) {
          that.msgCount = res.data;
        } else {
          that.$message.error(res.message);
        }
      });
    },
    getNewMsg() {
      const seconds = ((new Date()) - this.lastReqTime) / 1000;
      if (seconds < 120) {
        return false;
      }
      this.getNewMsgOnce();
    },
mounted() {
    this.getNewMsgOnce();
    EventBus.$on('getNewMsg', () => {
      this.getNewMsgOnce();
    });
 }
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这是一个比较具体的问题,需要分步骤回答,我会尽量详细地解答。首先,我需要确认一下您的技术栈是否是基于 Bootstrap 框架进行开发的,因为 Bootshape 这个词并不常见,可能您是想说 Bootstrap。 如果您的技术栈是基于 Bootstrap 框架的,那么您可以按照以下步骤制作带颜色和背景的伸缩导航栏: 1. 创建一个导航栏容器 您可以使用 Bootstrap 提供的导航栏组件来创建一个容器,代码如下: ```html <nav class="navbar navbar-expand-lg navbar-light bg-light"> <!-- 这里放置导航栏的内容 --> </nav> ``` 其中,`navbar` 是 Bootstrap 导航栏组件的类名,`navbar-expand-lg` 表示在屏幕宽度大于等于 lg(992px) 时展开导航栏,`navbar-light` 表示导航栏的背景颜色为浅色系,`bg-light` 则是设置导航栏的背景色为灰色。 2. 添加 Logo 图片 在导航栏添加 Logo 图片,您可以使用 Bootstrap 提供的图片组件。代码如下: ```html <a class="navbar-brand" href="#"> <img src="logo.png" width="30" height="30" alt=""> </a> ``` 其中,`navbar-brand` 是 Bootstrap 导航栏组件的类名,`href` 是 Logo 图片的链接地址,`img` 则是用来添加图片的标签,`width` 和 `height` 属性可以设置图片的宽度和高度。 3. 添加下拉菜单 在导航栏添加下拉菜单,您可以使用 Bootstrap 提供的下拉菜单组件。代码如下: ```html <ul class="navbar-nav mr-auto"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 下拉菜单 </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">选项1</a> <a class="dropdown-item" href="#">选项2</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">其他</a> </div> </li> </ul> ``` 其中,`navbar-nav` 是用来放置导航栏链接的容器,`mr-auto` 表示链接会自动向右对齐,`nav-item` 是 Bootstrap 导航栏链接组件的类名,`dropdown` 表示这个链接是一个下拉菜单,`nav-link` 是用来定义链接样式的类名,`data-toggle` 和 `aria-haspopup` 属性用来声明这是一个下拉菜单链接,`dropdown-menu` 是下拉菜单容器的类名,`dropdown-item` 则是下拉菜单选项的类名,`dropdown-divider` 是下拉菜单选项分割线的类名。 4. 添加表单元素 在导航栏添加表单元素,您可以使用 Bootstrap 提供的表单组件。代码如下: ```html <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="搜索" aria-label="搜索"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button> </form> ``` 其中,`form-inline` 是 Bootstrap 表单组件的类名,表示这是一个内联表单,`form-control` 是用来定义表单控件样式的类名,`mr-sm-2` 表示在屏幕宽度小于等于 sm(576px) 时,表单控件向右偏移 2 个单位,`type="search"` 表示这是一个搜索框,`placeholder` 属性用来设置搜索框的提示文本,`aria-label` 属性用来设置搜索框的标签,`btn` 是 Bootstrap 按钮组件的类名,`btn-outline-success` 表示按钮是浅色系的绿色,`my-2` 表示按钮上下边距为 2 个单位,`my-sm-0` 表示在屏幕宽度小于等于 sm 时,按钮上下边距为 0。 5. 设置配色和对齐方式等样式 最后,您可以使用 Bootstrap 提供的样式类名来设置导航栏的配色和对齐方式等样式。例如,您可以使用 `text-right` 类名来将导航栏的内容右对齐,使用 `navbar-dark` 类名来设置导航栏的背景颜色为深色系。完整的代码如下: ```html <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#"> <img src="logo.png" width="30" height="30" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 下拉菜单 </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">选项1</a> <a class="dropdown-item" href="#">选项2</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">其他</a> </div> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="搜索" aria-label="搜索"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button> </form> </div> </nav> ``` 希望我的回答能够对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

礼礼。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值