ElementUI搭建

概述

Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组
件库.

安装 ElementUI

npm 安装

推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。

npm i element-ui -S

在控制台输入此命令来安装ElementUI

在 main.js 中写入以下内容:
import ElementUI from 'element-ui' ;
import 'element-ui/lib/theme-chalk/index.css' ;
Vue.use(ElementUI);
new Vue({
render: h => h(App),
}).$mount('#app');
具体组件使用参考 API 文档
https://element.eleme.cn/2.11/#/zh-CN

在这个网址来用来截取自己想用的组件来开发项目

5. 路由嵌套
{
path: '/main',
component: Main, // 路由嵌套 在 main 下面的嵌套子路由
children:[
{
path:"/admin",
component:Admin
}
]
}

源代码

/* main.js */
import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false


/* 导入路由 */
import router from './router/index.js'
Vue.use(router);


/* 导入elementui */
import ElementUI  from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

new Vue({
  render: h => h(App),
  router
}).$mount('#app')

<!-- App.vue -->
<template>
  <div id="app">
	  <!-- 显示一级组件不显示子级组件
	  -->
   <router-view></router-view>
  </div>
</template>

<script>


export default {
  name: 'app',
 
}
</script>

<style>
<!-- Login.vue -->

<!-- 一个.vue文件是一个组件,可以理解为一个页面,但是和页面不同 
  内容都写在一个template标签中,
  template标签必须有一个根标签
-->
<template>
	 <div class="login_container">
	     <!-- 登录盒子-->
	     <div class="login_box">
	          <!-- 头像盒子-->
	          <div class="img_box">
	                <img src="./assets/logo.png" />
	          </div>
			  
			  <!-- 登录表单-->
			  
			 <div   style="margin-top: 100px;padding-right:20px;">
				 
				 <el-form ref="form"  label-width="80px">
					 <el-form-item label="账号">
					     <el-input v-model="account"></el-input>
					   </el-form-item>
					   
					   <el-form-item label="密码">
					       <el-input v-model="password"show-password></el-input>
					     </el-form-item>
						 
						 <el-form-item>
						     <el-button type="primary"  @click="login()">登录</el-button>
						     <el-button>注册</el-button>
						   </el-form-item>
					   
				</el-form>
				 
			 </div> 
			  
			
				
		
	     </div>
	  </div>
</template>

<script>
/* 导出组件,并为组件定义数据,函数,生命周期函数 */
 export default{
	 data(){
		 return{
			 account:"",
			 password:""
			 
		 }
	 },
	 methods:{
		 login(){
			 //前端验证账号和密码不能为空
			 if(this.account.length==0){
				 this.$message({message:"账号不能为空",type:'warning'});
				 return;
			 }
			 if(this.password.length==0){
			 				 this.$message({message:"密码不能为空",type:'warning'});
			 				 return;
			 }
			 
			 //与后端交互
			 
			 
			 //后端响应一个结果
			 this.$router.push('/main');
		 }
	 }
 }
</script>

<style>
  .login_container{
    height: 100vh;
    margin: 0px;
    padding: 0px;
	background-image: url(assets/bg.jpg);
  }
  
  
  /* 	background-repeat: no-repeat;
	background-size: cover;*/

    .login_box{
      width: 450px;
      height: 350px;
      background-color: #fff;
      border-radius: 10px;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
	  opacity: 0.95;
    }

    .img_box{
       width: 130px;
       height: 130px;
       position: absolute;
       left: 50%;
       transform: translate(-50%,-50%);
       background-color: #fff;
       border-radius: 50%;
       padding: 5px;
       border: 1px solid #eee;
    }
    
    .img_box img{
         width: 100%;
         height: 100%;
         border-radius: 50%;
         background-color: #eee;
     }
</style>

<!-- Main.vue -->
<template>
	<div>
		<el-container>
			
		 <el-header style="text-align: right; font-size: 12px">
			 <div class="header-title">后台管理系统</div>
		       <el-dropdown>
		         <i class="el-icon-setting" style="margin-right: 15px"></i>
		         <el-dropdown-menu slot="dropdown">
		           <el-dropdown-item>修改密码</el-dropdown-item>
		           <el-dropdown-item><span @click="logout()">安全退出</span></el-dropdown-item>
		           
		         </el-dropdown-menu>
		       </el-dropdown>
		       <span>王小虎</span>
		     </el-header>
			 
			 
		  <el-container>
			  
			  
		    <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
		        <el-menu :default-openeds="['1', '3']" router>  <!-- 给这个菜单加路由器可以切换组件 (切换网页(零件))-->
		          <el-submenu index="1">
		            <template slot="title"><i class="el-icon-message"></i>操作菜单</template>
		            <el-menu-item-group>
		              
		              <el-menu-item index="/majorlist">专业管理</el-menu-item>
		              <el-menu-item index="/studentlist">学生管理</el-menu-item>
		            </el-menu-item-group>
		            
		          </el-submenu>
		          
		          
		        </el-menu>
		      </el-aside>
			
			<!-- 工作区间 -->
		    <el-main>
				<!-- 显示子路由 (子组件) -->
			     <router-view></router-view>
			
			</el-main>
			
		  </el-container>
		</el-container>
	</div>
</template>

<script>
	export default{
		data(){
			return {
				
				
			}
		},
		methods:{
			logout(){
				this.$confirm('您确定要退出吗?', '提示', {
				          confirmButtonText: '确定',
				          cancelButtonText: '取消',
				          type: 'warning'
				        }).then(() => {
				          this.$router.push("/login");
				        })
			}
		}
	}
</script>

<style>
  .el-header {
    background-color: #00a7fa;
    color: #333;
    line-height: 60px;
  }

  .header-title{
     width: 300px;
     float: left;
     text-align: left;
     font-size: 20px;
     color: white;
  }
  
  .el-main{
	  background-color: aliceblue;
	  height: 100vh;
  }
</style>
<!-- MajorList.vue -->

<template>
	
	<div>
		专业管理
	</div>
</template>

<script>
	export default{
		data(){
			return {
				
			}
		},
		methods:{
			
		}
		
	}
</script>

<style>
</style>

<!-- StudentList.vue -->

<template>
	
	<div>
		学生管理
	</div>
</template>

<script>
	export default{
		data(){
			return {
				
			}
		},
		methods:{
			
		}
		
	}
</script>

<style>
</style>

/* index.js */
import Vue from 'vue';
import router from 'vue-router'; /* 导入路由 */



/* 导入组件 */
import Login from "../Login.vue";
import Main from "../Main.vue";

import MajorList from "../views/major/MajorList.vue";
import StudentList from "../views/student/StudentList.vue";


/* 注册  定义组件访问地址 */

Vue.use(router)
/* 定义组件路由 */
var rout = new router({
   routes: [
	   {
	   	path:"/",
	   	component:Login
	   },
		   {
		path: '/login',
		component: Login
		  },
		{
		path: '/main',
		component: Main,
		children:[
		{
			path: '/majorlist',
			component: MajorList
		},
		{
			path: '/studentlist',
			component: StudentList
		}
		]
		}
		
		
		
		]
		});
//导出路由对象
export default rout;

看一下效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

#03动态规划

要点&#xff1a; 动态规划方法与贪心法、分治法的异同&#xff1b; 动态规划方法的基本要素与求解步骤&#xff1b; 动态规划方法的应用。 难点&#xff1a; 如何根据问题的最优子结构性质构造构造动态规划方法中的递归公式或动态规划方程。 动态规划的基本思想 动态规…

Jetpack架构组件_Navigaiton组件_1.Navigaiton切换Fragment

1.Navigation主要作用 方便管理Fragment &#xff08;1&#xff09;方便我们管理Fragment页面的切换 &#xff08;2&#xff09;可视化的页面导航图&#xff0c;便于理清页面间的关系。 &#xff08;3&#xff09;通过destination和action完成页面间的导航 &#xff08;4&a…

基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

SSL证书类型解析:DV、OV、EV证书的区别与适用场景

在互联网时代&#xff0c;数据安全和用户隐私保护变得尤为重要。SSL证书作为加密网站通信的主要工具&#xff0c;为用户提供了一个安全的浏览环境。然而&#xff0c;面对市场上多种类型的SSL证书&#xff0c;许多网站所有者常常感到困惑。本文将重点解析三种常见的SSL证书类型—…

第二证券:突然飙升!涨超10%!“躺赚”机会又来

接近2024年上半年底&#xff0c;国债逆回购操作的“窗口期”或正在到来&#xff0c;相关国债逆回购的利率有望呈现飙升。 就在今天上午&#xff0c;沪深买卖所3天期国债逆回购利率已呈现大幅上涨&#xff0c;盘中最大涨幅均超过了10%。 国债逆回购操作“窗口期”或正在到来 …

TDengine 推出新连接器,与 Wonderware Historian 无缝连接

在最新发布的TDengine 3.2.3.0 版本中&#xff0c;我们进一步更新了 TDengine 的数据接入功能&#xff0c;推出了一款新的连接器&#xff0c;旨在实现 Wonderware Historian&#xff08;现称为 AVEVA Historian&#xff09;与 TDengine 的集成。这一更新提供了更加便捷和高效的…

Appium+python自动化(二十五)- 那些让人抓耳挠腮、揪头发和掉头发的事 - 获取控件ID(超详解)

简介 在前边的第二十二篇文章里&#xff0c;已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置&#xff0c;那么还有没有其他方法来获取控件点击事件所需要的点击位置呢&#xff1f;答案是&#xff1a;Yes&#xff01;因为在不同的大小屏幕的手机上获取控件的坐…

零基础STM32单片机编程入门(三)中断详解及按键中断实战含源码视频

文章目录 一.概要二.可嵌套的向量中断控制器 (NVIC)三.中断向量表四.中断优先级详解五.STM32外部中断控制器(EXTI)1.EXTI简介2.EXTI在中断向量表的位置3.EXTI外部中断产生的信号流向4.EXTI中断产生后的中断服务程序 六.CubeMX配置一个GPIO输入中断的例程七.CubeMX工程源代码下载…

四步轻松搞定!探索字节最新AnimateDiff-Lightning:高质量视频生成的秘密武器!

字节前脚刚发布了文生图大模型 SDXL-Lightning&#xff0c;后脚就又对文生视频领域下手了。 就在这几天又推出了文生视频模型&#xff1a;AnimateDiff-Lightning&#xff0c;它是一种快速的文本到视频生成模型。它生成视频的速度比原始 AnimateDiff 快十倍以上&#xff0c;只需…

二、大模型原理(Transformer )

Transformer是一种基于自注意力机制&#xff08;Self-Attention Mechanism&#xff09;的深度学习模型&#xff0c;它在2017年由Vaswani等人在论文《Attention Is All You Need》中提出。Transformer模型的出现极大地推动了自然语言处理&#xff08;NLP&#xff09;领域的发展&…

浏览器扩展V3开发系列之 chrome.cookies 的用法和案例

【作者主页】&#xff1a;小鱼神1024 【擅长领域】&#xff1a;JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 chrome.cookies API能够让我们在扩展程序中去操作浏览器的cookies。 在使用 chrome.cookies 要先声明…

IDEA中使用leetcode 刷题

目录 1.IDEA下载leetcode插件 2.侧边点开插件 3.打开网页版登录找到cookie复制 4.回到IDEA登录 5.刷题 6.共勉 1.IDEA下载leetcode插件 2.侧边点开插件 3.打开网页版登录找到cookie复制 4.回到IDEA登录 5.刷题 6.共勉 算法题来了不畏惧&#xff0c; 挑战前行是成长的舞台…

中文检测程序(静态代码扫描)

欢迎您关注我们&#xff0c;经常分享有关Android出海&#xff0c;iOS出海&#xff0c;App市场政策实时更新&#xff0c;互金市场投放策略&#xff0c;最新互金新闻资讯等文章&#xff0c;期待与您共航世界之海。 在前些日子&#xff0c;给大家安利了我们在用的AS中文实时检测插…

服务器数据恢复—用raid6阵列磁盘组建raid5阵列如何恢复原raid数据?

服务器存储数据恢复环境&#xff1a; 华为OceanStor 5800存储&#xff0c;该存储中有一组由10块硬盘组建的raid6磁盘阵列&#xff0c;供企业内部使用&#xff0c;服务器安装linux操作系统EXT3文件系统&#xff0c;划分2个lun。 服务器存储故障&#xff1a; 管理员发现存储中rai…

Flask之表单

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、HTML表单 二、使用Flask-WTF处理表单 2.1、定义WTForms表单类 2.2、输出HTML代码 2.3、在模板中渲染表单 三、处理表单数据 3.1、提…

【数据结构与算法】静态查找表(顺序查找,折半查找,分块查找)详解

顺序查找、折半查找、分块查找算法适合的场合。 顺序查找&#xff1a;顺序存储或链式存储的静态查找表均可。 折半查找&#xff08;二分查找&#xff09;&#xff1a;采用顺序存储结构的有序表。 分块查找&#xff08;索引顺序查找 &#xff09;&#xff1a;分块有序表。 …

项目管理计划(DOC原件)

本文档为XXX系统项目管理计划&#xff0c;本计划的主要目的是通过本方案明确本项目的项目管理体系。方案的主要内容包括&#xff1a;明确项目的目标及工作范围&#xff0c;明确项目的组织结构和人员分工&#xff0c;确立项目的沟通环境&#xff0c;确立项目进度管理方法&#x…

【ai】trition:tritonclient yolov4:部署ubuntu18.04成功

X:\05_trition_yolov4_clients\01-python server代码在115上,client本想在windows上, 【ai】trition:tritonclient.utils.shared_memory 仅支持linux 看起来要分离。 client代码远程部署在ubuntu18.04上 ubuntu18.04 创建yolov4-trition python=3.7 环境 (base) zhangbin@ub…

MCU复位时GPIO是什么状态?

大家一定遇到过上电或者复位时外部的MOS电路或者芯片使能信号意外开启&#xff0c;至此有经验的工程师就会经常关心一个问题&#xff0c;MCU复位时GPIO是什么状态&#xff1f;什么电路需要外部加上下拉&#xff1f; MCU从上电到启动&#xff0c;实际可分为复位前和复位后、初始…

uniapp - 微信小程序 - 自定义底部tabbar

废话不多说&#xff0c;直接行源码 这里需要的底部tabbar的图片在这里 我的资源里面呢 图片是这样的 先看成品吧 首先 - BaseApp\components\Tabbar.vue <script setup>import {ref,nextTick,watch} from "vue"// 核心 - 隐藏uniapp自带的底部tabbaruni.hi…