【Vue项目搭建】修改【若依框架】的侧边栏、导航栏、面包屑样式、修改全局页面样式

2023-11-01

掌握分寸感,找目标一致的人协同你,有效地调配资源,就可以提高效率。

写在前面的话:博主最近想要搭建自己的前端若依项目,因此此系列博客会做一些记录。我的项目gitee地址: https://gitee.com/xuruicong/rachel-front-show

说明:只运行前端项目,只需要要下载官方项目http://www.ruoyi.vip/ 修改vue.config.js文件中的target: `http://localhost:8080`为:

target: `http://vue.ruoyi.vip/prod-api/`, 

修改效果预览: 


目录

  一、修改左侧导航栏sidebar

 1. 修改系统logo

2. 修改菜单栏颜色

 二、修改顶部导航栏Navbar

1. 删除部分工具栏

 2. 修改默认头像

三、修改面包屑hamburger

1. 修改收起展开图标和标题 

2. 不显示tagsview

3. 添加自定义面包屑

四、修改全局边距


  一、修改左侧导航栏sidebar

(tips: 全局搜索sidebar-title)

src-->layout-->component-->sidebar-->  Logo.vue

只需要修改对应的图标logo.png即可

2. 修改菜单栏颜色

(tips:全局搜索.sidebar-container)

src-->layout-->component-->sidebar--> SidebarItem.vue

src-->assets-->styles-->sidebar.scss

src-->assets-->styles-->  variables.scss

// variable.scss
// 默认菜单主题风格
$base-menu-color: #333333; // 菜单全部字体颜色
$base-menu-color-active: #e60012; // 父级菜单激活的字体颜色
$base-menu-background: #fff; // 菜单栏背景颜色(非激活状态)
$base-logo-title-color: #e60012; // 系统标题颜色

$base-menu-light-color: rgba(0, 0, 0, 0.7);
$base-menu-light-background: #e60012; // 选中菜单的字体颜色
$base-logo-light-title-color: #fff; // 对应base-logo-title-color

$base-sub-menu-background: #f5f7fa; // 选中的菜单的子菜单背景颜色
$base-sub-menu-hover: #f7f0f1; // 子菜单hover背景颜色

如果还想要修改 激活的菜单的样式需要在sidebar.scss中添加和修改如下代码:

// sidebar.scss
.el-menu-item.is-active {
      color: #e60012 !important;
      background-color: $base-sub-menu-hover !important; // 点击菜单的颜色
      &:hover {
        background-color: $base-sub-menu-hover !important;
      }
    }

// menu hover
.submenu-title-noDropdown, .el-submenu__title {
      &:hover {
        background-color: $base-sub-menu-hover !important;
      }
}

& .theme-dark .nest-menu .el-submenu > .el-submenu__title,
& .theme-dark .el-submenu .el-menu-item {
      // background-color: $base-sub-menu-background !important;
      color: #333333 !important;
      background-color: #fff;

      &:hover {
        background-color: $base-sub-menu-hover !important;
      }
}

修改之后的效果如下:

 二、修改顶部导航栏Navbar

1. 删除部分工具栏

src-->layout-->component-->Navbar.vue

<!-- <template v-if="device!=='mobile'">
        <search id="header-search" class="right-menu-item" /> 
        <el-tooltip content="源码地址" effect="dark" placement="bottom">
          <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
        </el-tooltip>
        <el-tooltip content="文档地址" effect="dark" placement="bottom">
          <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
        </el-tooltip>
        <screenfull id="screenfull" class="right-menu-item hover-effect" />
        <el-tooltip content="布局大小" effect="dark" placement="bottom">
          <size-select id="size-select" class="right-menu-item hover-effect" />
        </el-tooltip>
</template> -->

 2. 修改默认头像

(tips:全局搜索profile.jpg)

src-->store-->modules-->user.js

替换profile.jpg图片即可

三、修改面包屑hamburger

 1. 修改收起展开图标和标题 

src-->layout-->component-->Navbar.vue

注释掉面包屑部分,我们一会自己写

src-->component-->Hamburger--> index.vue

// humburger index.vue
<template>
  <div style="padding: 0 15px; display: flex">
    <img
      src="../../assets/logo/svg.png"
      @click="toggleClick"
      :class="{ 'is-active': isActive }"
      class="hamburger"
    />
    <div class="nabar-title">综合管理系统</div>
  </div>
</template>
<style scoped>
.hamburger {
  display: inline-block;
  vertical-align: middle;
  margin-top: 18px;
  width: 16px;
  color: #e60012;
  height: 16px;
  margin-left: 6px;
}

.hamburger.is-active {
  transform: rotate(180deg);
}
.nabar-title {
  margin-left: 18px;
  height: 100%;
  width: 200px;
  line-height: 54px;
  color: #e60012;
  font-weight: 600;
  vertical-align: middle;
}
</style>

2. 不显示tagsview

在全局settings文件中,若以框架已经定义了是否显示tagsView,设置属性为false即可。

/**
 * 是否显示 tagsView
*/
tagsView: true,

 

 3. 添加自定义面包屑

src-->layout-->component-->Navbar.vue

 需要修改Navbar的高度,并添加面包屑

// Navbar.vue
<template>
  <div class="navbar">
    <div style="background: #fff">
      <hamburger
        id="hamburger-container"
        :is-active="sidebar.opened"
        class="hamburger-container"
        @toggleClick="toggleSideBar"
      />

      <!-- <breadcrumb
      id="breadcrumb-container"
      class="breadcrumb-container"
      v-if="!topNav"
    />
    <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" /> -->

      <div class="right-menu">
        <el-dropdown
          class="avatar-container right-menu-item hover-effect"
          trigger="click"
        >
          <div class="avatar-wrapper">
            <img :src="avatar" class="user-avatar" />
            <i class="el-icon-caret-bottom" />
          </div>
          <el-dropdown-menu slot="dropdown">
            <router-link to="/user/profile">
              <el-dropdown-item>个人中心</el-dropdown-item>
            </router-link>
            <!-- <el-dropdown-item @click.native="setting = true">
            <span>布局设置</span>
          </el-dropdown-item> -->
            <el-dropdown-item divided @click.native="logout">
              <span>退出登录</span>
            </el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
      </div>
    </div>
    <!-- 自定义面包屑 -->
    <div class="new-breadcrumb">
      <i
        class="el-icon-location-outline"
        style="margin-left: 20px; margin-top: 16px"
      ></i>
      <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
    </div>
  </div>
</template>
// navbar的height:100px
.new-breadcrumb {
    height: 50px;
    background: rgb(240, 241, 243);
    display: flex;
  }
.navbar {
    height: 100px;
}

由于修改了navbar的高从50px--->100px,会影响页面整个的高度。(整个页面的高度是100vh,下面内容app-main的高度就是100vh-navbar的高度)因此需要修改app-main高度

src--> layout-->components-->AppMain.vue

.app-main {
  /* 100= navbar  100  */
  min-height: calc(100vh - 100px);  // 原来是50px
  width: 100%;
  position: relative;
  overflow: hidden;
}

但是希望去掉首页/,因为不是所有页面都是通过首页进入的。

src-->components-->Breadcrumb-->index.vue

注释掉默认的首页即可

 // if (!this.isDashboard(first)) {
      //   matched = [{ path: '/index', meta: { title: '首页' }}].concat(matched)
      // }

四、修改全局边距

可以看到 ,所有页面都包含在app-container下的,如果需要修改样式则需呀修改全局的app-container样式。

src-->assets-->styles-->index.scss

//main-container全局样式
.app-content {
  border: 20px solid rgb(240, 241, 243);
  border-top: none;
}

.app-container {
  padding: 10px 20px;
}

最终页面效果如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Vue项目搭建】修改【若依框架】的侧边栏、导航栏、面包屑样式、修改全局页面样式 的相关文章

  • 我如何在 AngularJS 中监听点击并按住的情况?

    我制作了一个时间计数器 您可以通过单击按钮来增加或减少时间 然而 我希望当我单击并按住按钮时 时间的价值会不断攀升 所以目前如果你看到我的Plunkr http plnkr co edit BxX9x5zYFMXVqt5JsN1F p pr
  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t
  • 仅当表单已提交时才触发 jQuery 表单验证?

    不引人注目的验证基于这样的想法 don t进行表单验证 直到用户提交表单 一旦发生这种情况 如果表单上的某些内容无效 那么一旦用户更改了每个字段 就会立即验证它 我想做的是 不显眼地 触发表单元素的验证 也就是说 only如果用户已尝试提交
  • 如何使用 selenium 和 Mocha 获取 xPath() 选择的锚标记的文本

    我已经成功选择了 a 标签 我想显示锚标记的文本 但无法这样做 我正在使用 selenium mocha javascript 和 phantomJS 这是我的脚本 详细 var assert require assert var test
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • jQuery 选择 # id 以单词为前缀,计数器为后缀

    有没有办法用 jQuery 选择所有带有前缀 my 和后缀 0 9 的 id 像这样的 my 1 4 还是可以用循环来实现 div div div div div div div div div div 第一个想法 似乎效果很好 div i
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 将 javascript 整数转换为字节数组并返回

    function intFromBytes x var val 0 for var i 0 i lt x length i val x i if i lt x length 1 val val lt lt 8 return val func
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch

随机推荐

  • Castle Windsor 的AOP 实践

    前言 最近接手了一个二手项目 该项目的最大特点就是 拥有众多的上下游 外部产品或项目 运维时总会时不时出现各种异常 有系统本身的 有业务的 这时要求能最快定位到问题点 这就需要有详细的日志流来支撑这样的工作 翻开代码查看 记录日志的模式主要
  • 初学者了解mounted和this.$nextTick()的区别,在哪种情况下使用;

    其实看下图 就应该很清除的了解两个命令在vue中的执行阶段 就可以知道该如何使用了 两者的使用区别 mounted适合在初始化渲染完成后数据和页面没有发生变化的情况下使用 nextTick 适合初始化完成后 我们对数据进行操作并且页面发生了
  • win10+cuda10.0+vs2017+pytorch1.2.0+anaconda3+maskrcnn_benchmark+python3.6

    首先 版本不重要 cuda9 2也好9 0也好10 1也好 pytorch1 1 0也好 应该都能配置maskrcnn benchmark 为什么呢 网址 https github com NVIDIA apex issues 433 ht
  • 设计模式系列3 观察者模式

    什么是观察者模式 观察者模式的定义 在对象之间定义了一对多的依赖 这样一来 当一个对象改变状态 依赖它的对象会收到通知并自动更新 说白了就是发布订阅模式 发布者发布信息 订阅者获取信息 订阅了就能收到信息 没订阅就收不到信息 为什么用观察者
  • 腾讯云免费服务器 如何领取?

    经常看到很多人都在询问免费的服务器如何试用 怎么获得 每个云平台只要注册了账号 都是有免费的服务器试用的 因企业和个人账号的不同 试用的时间是不一样的 想要长期免费的是不存在的 下面我以腾讯云的服务器为例 详细看看有哪些产品 配置 试用时间
  • MobaXterm连接到Linux虚拟机教程

    一 启动虚拟机 鼠标右击 点击 Open Terminal 打开后端 输入ifconfig查看自己虚拟的的host和用户名 二 打开MobaXterm 依次点击 Session gt SSH 输入host和用户名 然后会让你输入自己Linu
  • 什么是域名解析?

    域名解析就是域名到IP地址的转换过程 IP地址是网路上标识您站点的数字地址 为了简单好记 采用域名来代替ip地址标识 站点地址 域名的解析工作由DNS服务器完成 12 域名可以使用哪些字符 英文26个字母和10个阿拉伯数字以及横杠 减号 可
  • 生产遇到的疑难问题汇总

    一 有一个这样的需求 统计出在每个国家的销量并排序 所得的结果应该包含国家 销量 排名等字段 排序好办 有一个问题是如何新增排名这个字段 可以有如下几种方式 假设对销量排序的结果是中间表temp 包括国家 delivery country
  • 一个TCP长连接设备管理后台工程(三)---TCP应用层协议说明

    TCP协议整合JTT808协议 前面简单说明了基于golang的net库进行TCP通讯 现在我们需要将现有的协议整合进去 行业内车辆终端一般都是对接交通部的JTT808协议 此处我们要实现的是JTT808 2019版本 消息结构 标识位 消
  • Git安装、基本使用、团队协作树状图

    前言 学习任何新知识 最重要的永远都是搭建属于自己的知识框架 随后学习的细碎知识点往框架里面填入 最后形成一棵属于自己的知识大树 本系列的博客专注更新总结好的思维导图 非md笔记 希望可以帮助大家快速理清知识结构 持续更新 更多可见 7Gi
  • Python实现简单的插入排序

    Python插入排序 要求 生成一个包含20个 1 50 随机整数的列表 然后使用插入法对给定整数列表中的所有元素升序排序 思路如下 1 将列表切片 并在切片的列表中 找到最小值的位置 2 根据切片的最小值 i i代表循环的第几次 的来确定
  • 爬取中国大学排名并以csv格式存储

    爬取中国大学排名并以csv格式存储 import requests from bs4 import BeautifulSoup import bs4 def get content url try user agent Mozilla 5
  • linux下使用gitee搭建hexo个人博客(完全免费)

    在linux下使用gitee搭建hexo个人博客 一 前言 什么是 Hexo Hexo是一个快速 简洁且高效的博客框架 Hexo使用Markdown 或其他渲染引擎 解析文章 在几秒内 即可利用靓丽的主题生成静态网页 什么是gitee 大家
  • 网络协议详解 :UDP

    目录 网络存在的问题 网络传送的不可靠 网络不安全 传输层的UDP UDP工作机制 应用层观察UDP的特点 缺点 优点 UDP Header结构 checksum 校验和 UDP接收缓冲区 缓冲区概念 接收缓冲区 UDP发送成功现象 UDP
  • C++ 基础: std::string

    一 常见的使用 std string是C 标准库中的一个类 用于表示可变长度的字符串 它是由字符类型 通常是char 的数组实现的 并提供了许多字符串操作函数 std string的构造函数有多种形式 可以用于初始化空字符串 从字符数组或另
  • IntelliJ IDEA 学习笔记 - 首次使用IntelliJ IDEA

    本文记录首次打开IntelliJ IDEA的情况 参考IntelliJ IDEA 简体中文专题教程 英文好的同学可以查看英文官网文档 1 打开 IntelliJ IDEA 是没有类似 Eclipse 的工作空间的概念 Workspaces
  • C++/Python机器学习—逻辑回归

    一 Python import numpy as np import matplotlib pyplot as plt 定义sigmoid函数 def sigmoid x return 1 1 np exp x 定义训练函数 def tra
  • HTML5新增API FileReader 显示缩略图

    div class content div
  • 【Java】继承——子类与父类有同名属性的情况。

    package TcmStudy day20 class Father public int a 10 public int b 20 class Son extends Father public int a 20 public void
  • 【Vue项目搭建】修改【若依框架】的侧边栏、导航栏、面包屑样式、修改全局页面样式

    掌握分寸感 找目标一致的人协同你 有效地调配资源 就可以提高效率 写在前面的话 博主最近想要搭建自己的前端若依项目 因此此系列博客会做一些记录 我的项目gitee地址 https gitee com xuruicong rachel fro