Vue前端框架的基础配置

news2024/11/24 7:44:54

登录界面添加背景图

通过在登录界面的vue文件中,设置div标签的background-image属性,加载背景图

<style scoped>
.myvue{
        width:100%;
        height: 750px;
//添加背景图的地址
        background-image: url(../assets/oa.jpeg);
        background-size: cover;
        background-position: center;
//相对布局
        position: relative;
}
    .loginContainer{
        margin-top:200px;
        border-radius: 15px;
        background-clip: padding-box;
        margin: 0px auto;
        width:350px;
        padding:15px 35px 15px 35px;
        background-color: #fff;
        border: 1px solid #eaeaea;
        box-shadow: 0 0 25px #cac6c6;
        position: relative;
    }
    .loginTitle{
        margin: 0px auto 40px auto;
        text-align: center;
    }
    #main{
        padding-top:200px
    }
    .loginRemember{
        text-align: left;
        margin: 0px 0px 15px 0px;
    }
    .el-form-item__content{
        display:flex;
        align-items: center;
    }
    .code
    {
            width:80px;
            height:30px;
            display: inline-block;
            font-family:Arial;
            font-style:italic;
             color:blue;
             border:1px solid #dedede;
             border-radius:5px;
             padding:2px 3px;
             letter-spacing:1px;
             font-weight:bolder;                      
             cursor:pointer;
             text-align:center;
             vertical-align:middle;
    }
</style>
<template>
   <div class="myvue">
       <div id="main">
       <el-form ref="loginForm" :model="loginForm" class="loginContainer" :rules="rules">
           <h3 class="loginTitle">系统登录</h3>
           <el-form-item prop="username">
               <el-input type='text' auto-complete="false" v-model="loginForm.username" placeholder="请输入用户名">
               </el-input>
            </<el-form-item>
        </el-form>
    </div>
</div>
</template>

根据用户身份动态设置路由

在router文件夹下的index.js中,添加路由表及每个路由对应的用户身份,将其与选择结构结合,根据逐级判断,让用户与路由表对应起来。前端设计部分,利用vue框架的特点{{}}获取属性值,实现动态路由效果

<el-container>
                <el-aside width="300px">
                    <!-- 导航栏 -->
                    <!--设置导航栏的选项跳转,根据不同的index跳转到不同的界面 -->
                    <el-menu router >
                        <el-submenu  v-for="(item,index1) in this.$router.options.routes" :key="index1" v-if="!item.hidden" :index="index1">
                        <!-- <el-submenu  v-for="(item,index1) in routes" :key="index1"  :index="index1"> -->
                            <template slot="title">
                                <i class="el-icon-location" style="color:#1accff;margin-right:5px"></i>
                                <span>{{item.name}}</span>
                            </template>
                                <el-menu-item :index="children.path" v-for="(children,indexj) in item.children">{{children.name}}</el-menu-item>
                        </el-submenu>
                    </el-menu>
                </el-aside>
                <el-main>
                    <!-- 在右上方设置面包屑效果,并增加超链接 -->
                    <el-breadcrumb v-if="this.$router.currentRoute.path!='/home'" separator-class="el-icon-arrow-right">
                        <el-breadcrumb-item :to="{path:'/home'}">首页</el-breadcrumb-item>
                        <el-breadcrumb-item >{{this.$router.currentRoute.name}}</el-breadcrumb-item>
                    </el-breadcrumb>
                    <div class='welcome' v-if="this.$router.currentRoute.path=='/home'">
                        <div class="wer">
                                <el-card class="box-card" style="width:400px">
                                    <div slot="header" class="clearfix">
                                        <i class="el-icon-location" style="color:#1accff;margin-right:5px" ></i>
                                        <span id="text">正在定位..</span>
                                    </div>
                                <div id="weather" ><el-empty :image-size="50"></el-empty></div>
                                </el-card>
                         </div>
                         <div class="news">
                         
                                <el-card class="box-card" style="width:400px">
                                    <div slot="header" class="clearfix" >
                                        <i class="el-icon-location" style="color:#1accff;margin-right:5px;margin-botton:10px" ></i>
                                        <span class="news-text">时政新闻</span>
                                    </div>
                                
                                <div id="content" style="text-decoration: none;"><el-empty :image-size="50"></el-empty></div>
                                </el-card>
                         </div>
                    </div>                   
                    <router-view class="routerView"></router-view>
                </el-main>
            </el-container>
        </el-container>
var routes;
routes = [
  {
    path: '/',
//设置每个模块的用户身份
    meta:{
      roles:['admin1','admin2']
    },
    name: 'Login',
    component: Login,
    hidden:true
  },
  {
    path: '/home',
    // name属性和网页点击的文字相关联,动态地渲染组件
    name: '个人中心',
    component:Home,
    hidden:true,
    children:[
  //     // 设置子路由
      {
        path: '/userinfo',
        name: '个人中心',
        component:AdminInfo
      },
    ]
  },
  {
    path: '/home',
    // name属性和网页点击的文字相关联,动态地渲染组件
    name: '新闻管理',
    component: Home,
    hidden:true,
    children:[
          // 设置子路由
          {
            path: '/NewsList',
            name: '时政新闻',
            component: superAdmin
          },
          {
            path: '/inform',
            name: '通知内容',
            component: SysData
          },
        ]
  },
  {
    path: '/home',
    name: '常用服务',
    component:Home,
    meta:{
      roles:['admin2','admin1','user']
    },
    hidden:false,
    children:[
      {
        path: '/mail',
        name: '邮件发送',
        component:Mail
      },
      {
        path: '/sys/config',
        name: '我的通知',
        component:SysConfig
      },
    ]
  },
  {
    path: '/home',
    name: '常用服务-员工',
    component:Home,
    meta:{
      roles:['admin2','admin1']
    },
    hidden:false,
    children:[
      {
        path: '/mail',
        name: '邮件发送',
        component:Mail
      },
      {
        path: '/sign',
        name: '签到管理',
        component:Sign
      },
      {
        path: '/sys/admin',
        name: '重要通知',
        component:SysAdmin
      }
    ]
  },
  {
    path: '/home',
    // name属性和网页点击的文字相关联,动态地渲染组件
    name: '请假管理',
    meta:{
      roles:['admin2','admin1']
    },
    component: Home,
    hidden:false,
    children:[
          // 设置子路由
          {
            path: '/apply/applyUp',
            name: '请假申请',
            component: ApplyUp
          }
        ]
  },
  {
    path: '/home',
    // name属性和网页点击的文字相关联,动态地渲染组件
    name: '员工管理',
    component: Home,
    hidden:false,
      meta:{
        roles:['admin2']
      },
    children:[
      {
        path: '/emp/basic',
        name: '基本资料',
        component: EmpBasic
      }
    ]
  },
  {
    path: '/home',
    // name属性和网页点击的文字相关联,动态地渲染组件
    name: '薪资管理',
    component: Home,
    hidden:false,
    meta:{
      roles:['admin1','admin2']
    },
    children:[
      // 设置子路由
      {
        path: '/sal/table',
        name: '工资表管理',
        component: SalTable
      }
    ]
  },
  {
    path: '/home',
    meta:{
      roles:['admin1']
    },
    // name属性和网页点击的文字相关联,动态地渲染组件
    name: '统计管理',
    component: Home,
    hidden:false,
    children:[
      // 设置子路由
      {
        path: '/sta/all',
        name: '员工信息统计',
        component:chart
      }
    ]
  }
      ]
    } 
]

export const getRole=()=>{
  var name=JSON.parse(window.sessionStorage.getItem('username'));
  getRequest('/role?name='+name).then(resp=>{
      // 获取当前用户的角色
      var role=resp.role;
      var human=resp.human;
      window.sessionStorage.setItem('role',role);
      window.sessionStorage.setItem('human',human);
      // 根据角色,设置动态路由
      if(role==='admin1'){
        var roleList=[false,true,false,true,true,true,false,true,false,true,true];
        var index=0;
        for(var i=3;i<routes.length;i++){
          routes[i].hidden=roleList[index++];
        }
      }
      else if((role==='admin2')){
        var roleList=[false,true,false,true,false,false,true,true,true,true,true];
        var index=0;
        for(var i=3;i<routes.length;i++){
          routes[i].hidden=roleList[index++];
        }
      }      
      else if((role==='user')){
        var roleList=[true,false,true,false,true,true,true,true,false,true,false];
        var index=0;
        for(var i=3;i<routes.length;i++){
          routes[i].hidden=roleList[index++];
        }
      }
    })

面包屑效果(首页>邮件发送) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux更改固定IP地址

1.VMware里更改虚拟网络 一: 二: 三:确定就好了 2.修改Linux系统的固定IP 一:进入此文件 效果如下: 执行以下命令: 此时IP已更改 3.远程连接 这个是前提!!! 更改网络编辑器后网络适配器可能会修改,我就是遇着这个,困住我了一会 一:可以以主机IP对应连接 连接成功 二:主机名连…

[OS] 2.Wait for signal (do_wait),task_struct

Wait for signal (do_wait) Linux 内核中 do_wait() 函数的实现&#xff0c;该函数是父进程等待子进程结束的系统调用的一部分。它通过在内核模式下等待信号&#xff0c;处理进程终止以及与父子进程相关的机制。让我们详细解读您提供的信息&#xff0c;涉及 do_wait() 的执行过…

微软推出针对个人的 “AI伴侣” Copilot 会根据用户的行为模式、习惯自动进化

微软推出了为每个人提供的“AI伴侣”Copilot&#xff0c;它不仅能够理解用户的需求&#xff0c;还能根据用户的日常习惯和偏好进行适应和进化。帮助处理各种任务和复杂的日常生活场景。 它能够根据用户的生活背景提供帮助和建议&#xff0c;保护用户的隐私和数据安全。Copilot…

Crypto虐狗记---”你“和小鱼(八)

前言&#xff1a;剧情八 提示&#xff1a; 下载&#xff1a; 只给了公钥 那么可以用RsaCtfTool去分离公钥---》 得到(e&#xff0c;n)&#xff1a; 如何安装参考&#xff1a; kail下安装RsaCtfTool - 九皋777 - 博客园 (cnblogs.com) 已知n&#xff0c;那么去得到p q 或者使…

智能制造领域的系统都有啥,MES、APS、PLC、SCADA等

提及制造业&#xff0c;大家都能想到工业4.0.那么与工业4.0紧密相连的B端系统都有哪些类型的&#xff0c;本文为大家详细解读下。 在智能制造领域&#xff0c;常见的系统包括MES&#xff08;制造执行系统&#xff09;、APS&#xff08;高级计划与排程系统&#xff09;、PLC&am…

Oracle 数据库安装和配置详解

Oracle 数据库安装和配置详解 Oracle 数据库是一款功能强大、广泛使用的企业级关系数据库管理系统 (RDBMS)&#xff0c;适用于处理大型数据库和复杂事务。本文将介绍如何在 Linux 和 Windows 环境下安装 Oracle 数据库&#xff0c;并对其进行基本配置&#xff0c;帮助开发者快…

maven指定模块快速打包idea插件Quick Maven Package

问题背景描述 在实际开发项目中&#xff0c;我们的maven项目结构可能不是单一maven项目结构&#xff0c;项目一般会用parent方式将各个项目进行规范&#xff1b; 随着组件的数量增加&#xff0c;就会引入一个问题&#xff1a;我们只想打包某一个修改后的组件A时就变得很不方便…

8位单片机与32位单片机

8位单片机与32位单片机 8位与32位指的是什么 单片机的8位或32位说的是什么呢&#xff1f;要搞懂这个问题&#xff0c;首先要搞明白8位或32位说的是单片机上的哪一个部件。 这是单片机的内部框图。单片机内部由这么多部件构成&#xff0c;并不单单是一个CPU&#xff0c;它内部…

NASA:GES DISC 的 ATMOS L1 光谱和运行日志 V3 (ATMOSL1)大气痕量分子光谱(ATMOS)1 级产品

目录 简介 变量 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATMOS L1 Spectra and Runlogs V3 (ATMOSL1) at GES DISC 简介 这是第三版大气痕量分子光谱&#xff08;ATMOS&#xff09;1 级产品&#xff0c;包含 netCDF 格式的光谱和运行日志&#xff08;即 &…

Valve通过新的基础架构设计加强对Arch Linux的支持

Valve 宣布与 Arch Linux 发行版开展新的合作。 该公司透露&#xff0c;它将为 Arch Linux 的两项重要计划–构建服务基础设施和安全签名飞地–提供资金支持。这次合作将为 Arch Linux 解决一些老大难问题。 志愿开发人员利用业余时间开发项目。 然而&#xff0c;有些任务需要投…

查缺补漏----信道利用率与数据传输速率(计算题)

1.发送窗口与接收窗口 GBN的发送窗口为&#xff0c;若 大于 &#xff0c;则会造成接收方无法分辨新数据帧和旧数据帧。 这其实是所有重传协议必须满足的要求&#xff0c;即发送窗口为&#xff0c;例如这道题&#xff1a; 发送窗口为就是非常重要的条件&#xff0c;后面有讲解。…

认知杂谈100《穿越顺逆之镜》

内容摘要&#xff1a; 顺境和逆境都是成长的催化剂&#xff0c;但它们的作用并非绝对。顺境有助于积累经验&#xff0c;但可能导致自满和错误估计自身能力。逆境能激发智慧&#xff0c;但也可能使人陷入绝望&#xff0c;且失败的原因可能是不可控的外部因素。 成功可能让我们变…

【C语言】预处理指令详解

目录 一、预定义符号 二、#define 定义常量 三、#define 定义宏 &#xff08;1&#xff09;宏定义的使用 &#xff08;2&#xff09;带副作用的宏参数 &#xff08;3&#xff09;宏替换的规则 &#xff08;4&#xff09;宏与函数对比 &#xff08;5&#xff09;#和## …

Html批量转word工具2.1

2024年10月7日记录&#xff1a; 有客户反馈&#xff0c;2.0刚运行就提示转换完成 有问题就解决。正好国庆假期这几天有空&#xff0c;2.1版就出炉了。 2.1 更新记录&#xff1a; 修复了1个bug&#xff1a;刚运行就提示转换完成 下载地址&#xff1a;Html 转 word 批量处理工具…

基于Springboot+Vue的线上课堂系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

分析CppCrash(进程崩溃)(一)

一、Cpp Crash异常检测能力 进程崩溃基于posix信号机制&#xff0c;目前主要支持对以下崩溃异常信号的处理&#xff1a; 信号值(signo)信号解释触发原因4SIGILL非法指令。进程执行了非法、格式错误、未知或特权指令。5SIGTRAP断点或陷阱异常。异常或trap指令发生。6SIGABRT进程…

谷歌发布了日语版的 Gemma2 模型——gemma-2-2b-jpn-it

Gemma 是一系列同类最佳的开放式模型&#xff0c;其灵感和技术源自 Gemini 系列模型。 它们是具有开放权重的文本到文本、纯解码器大型语言模型。 Gemma 模型非常适合各种文本生成任务&#xff0c;包括问题解答、摘要和推理。 Gemma-2-JPN 是一个针对日语文本进行微调的 Gemma…

读数据工程之道:设计和构建健壮的数据系统01数据工程概述

1. 数据工程 1.1. 自从公司开始使用数据做事&#xff0c;数据工程就以某种形式存在了 1.1.1. 预测性分析、描述性分析和报告 1.2. 数据工程师获取数据、存储数据&#xff0c;并准备数据供数据科学家、分析师和其他人使用 1.3. 数据工程是系统和流程的开发、实施和维护&…

No.0 笔记 | 从小白到入门:我的渗透测试笔记

嘿&#xff0c;小伙伴们&#xff01;好久不见啊&#xff0c;是不是都以为我失踪了&#xff1f;&#x1f602; 其实呢&#xff0c;最近一直在埋头苦学&#xff0c;感觉自己就像是在技术的海洋里游泳&#xff0c;每天都在吸收新知识。现在终于有时间冒个泡&#xff0c;跟大家分享…

如何通过 Alt 键打出所有特殊字符?

有时我们需要键入键盘上没有的字符&#xff0c;例如版权符号 ©&#xff0c;怎么办呢&#xff1f; 上一篇文章说过&#xff0c;可以用输入法自带的符号表功能。但除此之外&#xff0c;Windows 官方有一个功能&#xff0c;可以让我们可以通过 Alt 键输入任何特殊符号。 ‍…