使用ElementUI + Vue框架实现门生管理系统前端页面设计

打印 上一主题 下一主题

主题 805|帖子 805|积分 2415

目次

一.什么是ElementUI?
二.使用ElementUI和Vue-cli搭建前端页面
三.具体步调
1.创建vue-cli项目
2.分析
3.创建组件
四.总结


一.什么是ElementUI?

ElementUI是一种网站快速成型工具,一套为开辟者,设计师准备的基于Vue2.0的桌面端组件库。
ElementUI官方网站如下:Element - 网站快速成型工具
此中ElementUI提供了很多种组件的原型,以及源码供开辟者们使用。

二.使用ElementUI和Vue-cli搭建前端页面

目标页面如下:




三.具体步调

1.创建vue-cli项目


2.分析

 我们现在需要登录的前端页面,管理系统的前端页面,以及两个管理系统中的门生管理和专业管理界面,以是需要创建四个 .vue 组件。
还需要创建一个.js去设置路由。设置好路由一定要在main.js中导入路由对象。
首先,我们需要使用 vue-cli 和 ElementUI 就需要通过终端将 router 组件和 elementui的组件举行导入:
  1. //导入router组件
  2. npm i vue-router@3.5.3
复制代码
  1. //导入ElementUI组件
  2. npm i element-ui -S
复制代码
下载完成后在package.json中查看是否导入乐成。

导入乐成后在main.js中设置:

3.创建组件

首先我们先来创建前端首页的第一个登岸界面:
留意:1.账号和密码为空时点击登录要提示信息。

2.密码框要接纳隐蔽式

各人也可以添加其他的组件到Login.vue中,使得页面更加新奇耐看。
  1. <!-- 一个.vue文件是一个组件,可以理解为一个页面,但是和页面不同
  2.   内容都写在一个template标签中,
  3.   template标签必须有一个根标签
  4. -->
  5. <template>
  6.          <div class="login_container">
  7.              <!-- 登录盒子-->
  8.              <div class="login_box">
  9.                   <!-- 头像盒子-->
  10.                   <div class="img_box">
  11.                         <img src="./assets/tx.jpg" />
  12.                   </div>
  13.                           <!-- 登录表单-->
  14.                          <div style="margin-top: 100px; padding-right: 20px;">
  15.                                 <el-form ref="form" label-width="80px" >
  16.                                 <el-form-item label="账号">
  17.                                     <el-input v-model="account" ></el-input>
  18.                                   </el-form-item>
  19.                                 <el-form-item label="密码" >
  20.                                       <el-input show-password v-model="password"></el-input>
  21.                                     </el-form-item>
  22.                                 <el-form-item>
  23.                                     <el-button type="primary" @click="login()" >登录</el-button>
  24.                                     <el-button>取消</el-button>
  25.                                   </el-form-item>
  26.                                 </el-form>
  27.                          </div>
  28.                        
  29.                                
  30.                
  31.              </div>
  32.           </div>
  33. </template>
  34. <script>
  35. /* 导出组件,并为组件定义数据,函数,生命周期函数 */
  36. export default{
  37.          data(){
  38.                  return{
  39.                          account:"",
  40.                          password:""
  41.                  }
  42.          },
  43.          methods:{
  44.                  login(){
  45.                          //进行前端判断账号密码不能为空
  46.                          if(this.account.length==0){
  47.                                 this.$message({ message: '账号不能为空', type: 'warning'});
  48.                                 return;
  49.                          }
  50.                          if(this.password.length==0){
  51.                                 this.$message({ message: '密码不能为空', type: 'warning'});
  52.                                 return;
  53.                          }
  54.                          
  55.                          //与后端交互
  56.                          //后端响应回来一个数据,用来判断是否登陆成功,如果登陆成功就跳转下个页面
  57.                          //this.$router.push("路由地址")  用来跳转页面
  58.                          
  59.                          this.$router.push("/main");
  60.                          
  61.                  },
  62.          }
  63. }
  64. </script>
  65. <style>
  66.   .login_container{
  67.     height: 100vh;
  68.     margin: 0px;
  69.     padding: 0px;
  70.         background-image: url(assets/vue-cli.png);
  71.   }
  72.     .login_box{
  73.       width: 450px;
  74.       height: 350px;
  75.       background-color: #fff;
  76.       border-radius: 10px;
  77.       position: absolute;
  78.       left: 50%;
  79.       top: 50%;
  80.       transform: translate(-50%,-50%);
  81.           opacity: 0.95;
  82.     }
  83.     .img_box{
  84.        width: 130px;
  85.        height: 130px;
  86.        position: absolute;
  87.        left: 50%;
  88.        transform: translate(-50%,-50%);
  89.        background-color: #fff;
  90.        border-radius: 50%;
  91.        padding: 5px;
  92.        border: 1px solid #eee;
  93.     }
  94.    
  95.     .img_box img{
  96.          width: 100%;
  97.          height: 100%;
  98.          border-radius: 50%;
  99.          background-color: #eee;
  100.      }
  101. </style>
复制代码
下面我们要来写管理系统平台的页面:
留意:1.左侧为导航栏,下拉选择,并且每点击一个选择都会跳转到对应的界面,但是不会重新开一个界面(这里就要用到路由嵌套)。
2.点击右侧系统按钮会弹出选项,并且点击安全退出就会跳转到登录界面。

3.点击安全退出会弹出警告消息,让用户确认退出。

  1. <template>
  2.         <div>
  3.                 <el-container>
  4.                   <el-header style="text-align: right; font-size: 12px">
  5.                           <div class="header-title">后台管理系统</div>
  6.                         <el-dropdown>
  7.                           <i class="el-icon-setting" style="margin-right: 15px"></i>
  8.                           <el-dropdown-menu slot="dropdown">
  9.                             <el-dropdown-item >修改密码</el-dropdown-item>
  10.                             <el-dropdown-item ><span @click="logout()">安全退出</span></el-dropdown-item>
  11.                           </el-dropdown-menu>
  12.                         </el-dropdown>
  13.                         <span>赵逸康</span>
  14.                       </el-header>
  15.                   <el-container>
  16.                     <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
  17.                         <el-menu :default-openeds="['1', '3']" router>
  18.                           <el-submenu index="1" >
  19.                             <template slot="title"><i class="el-icon-message"></i>操作菜单</template>
  20.                             <el-menu-item-group>
  21.                               <el-menu-item index="/majorlist">专业管理</el-menu-item>
  22.                               <el-menu-item index="/studentlist">学生管理</el-menu-item>
  23.                             </el-menu-item-group>
  24.                           </el-submenu>
  25.                         </el-menu>
  26.                       </el-aside>
  27.                           
  28.                     <el-main>
  29.                                 <router-view></router-view>
  30.                         </el-main>
  31.                   </el-container>
  32.                 </el-container>
  33.                
  34.         </div>
  35. </template>
  36. <script>
  37.         export default{
  38.                 data(){
  39.                         return{
  40.                                
  41.                         }
  42.                 },
  43.                 methods:{
  44.                         logout(){
  45.                                 this.$confirm('您确定要退出吗?', '提示', {
  46.                                           confirmButtonText: '确定',
  47.                                           cancelButtonText: '取消',
  48.                                           type: 'warning'
  49.                                         }).then(() => {
  50.                                           this.$router.push("/login");
  51.                                         })
  52.                         }
  53.                 }
  54.         }
  55. </script>
  56. <style>
  57.         .el-header {
  58.             background-color: #00a7fa;
  59.             color: #333;
  60.             line-height: 60px;
  61.           }
  62.           .el-main {
  63.             background-color: aliceblue;
  64.             height: 100vh;
  65.           }
  66.           .header-title{
  67.                   width: 300px;
  68.                   float: left;
  69.                   text-align: left;
  70.                   font-size: 20px;
  71.                   color: white;
  72.           }
  73.           
  74. </style>
复制代码
再接下来就是两个专业管理和门生管理的子界面了,这两个界面都是再Main.vue下的子界面,以是在设置路由的时间就需要使用到路由嵌套,并且在Main.vue中还需要加上画布。

下面两个StudentList.vue 和 MajorList.vue两个组件就很简单了,只需要在ElementUI中挑选出自己喜欢的表格组件,公道套用即可。
MajorList.vue:
  1. <template>
  2.         <el-table
  3.               :data="tableData"
  4.               style="width: 35%">
  5.               <el-table-column
  6.                 prop="grade"
  7.                 label="年级"
  8.                 width="180">
  9.               </el-table-column>
  10.               <el-table-column
  11.                 prop="major"
  12.                 label="专业"
  13.                 width="180">
  14.               </el-table-column>
  15.               <el-table-column
  16.                 prop="students"
  17.                 label="学生人数">
  18.               </el-table-column>
  19.             </el-table>
  20. </template>
  21. <script>
  22.         export default{
  23.                 data(){
  24.                         return{
  25.                                 tableData: [{
  26.                                             grade: '20级',
  27.                                             major: '计算机科学与技术',
  28.                                             students: 300
  29.                                           }, {
  30.                                             grade: '21级',
  31.                                             major: '计算机科学与技术',
  32.                                             students: 350
  33.                                           }, {
  34.                                             grade: '22级',
  35.                                             major: '计算机科学与技术',
  36.                                             students: 330
  37.                                           }, {
  38.                                             grade: '23级',
  39.                                             major: '计算机科学与技术',
  40.                                             students: 360
  41.                                           }]
  42.                         }
  43.                 },
  44.                 methods:{
  45.                        
  46.                 }
  47.         }
  48. </script>
  49. <style>
  50. </style>
复制代码
 StudentList.vue:
  1. <template>
  2.          <el-table
  3.             :data="tableData"
  4.             border
  5.             style="width: 100%">
  6.             <el-table-column
  7.               fixed
  8.               prop="id"
  9.               label="学号"
  10.               width="200">
  11.             </el-table-column>
  12.             <el-table-column
  13.               prop="name"
  14.               label="姓名"
  15.               width="120">
  16.             </el-table-column>
  17.             <el-table-column
  18.               prop="major"
  19.               label="专业"
  20.               width="170">
  21.             </el-table-column>
  22.             <el-table-column
  23.               prop="class"
  24.               label="班级"
  25.               width="150">
  26.             </el-table-column>
  27.             <el-table-column
  28.               prop="address"
  29.               label="家庭地址"
  30.               width="530">
  31.             </el-table-column>
  32.             <el-table-column
  33.               prop="zip"
  34.               label="邮编"
  35.               width="120">
  36.             </el-table-column>
  37.             <el-table-column
  38.               fixed="right"
  39.               label="操作"
  40.               width="100">
  41.               <template slot-scope="scope">
  42.                 <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
  43.                 <el-button type="text" size="small">编辑</el-button>
  44.               </template>
  45.             </el-table-column>
  46.           </el-table>
  47. </template>
  48. <script>
  49.         export default{
  50.                 data(){
  51.                         return{
  52.                                 tableData: [{
  53.                                           id: "1001",
  54.                                           name: '张三',
  55.                                           major: '计算机科学与技术',
  56.                                           class: '计科2201',
  57.                                           address: '陕西省渭南市大荔县666号',
  58.                                           zip: 111111
  59.                                         }, {
  60.                                           id: '1002',
  61.                                           name: '王小虎',
  62.                                           major: '计算机科学与技术',
  63.                                           class: '计科2201',
  64.                                           address: '上海市普陀区金沙江路 1517 弄',
  65.                                           zip: 200333
  66.                                         }, {
  67.                                           id: '1003',
  68.                                           name: '李四',
  69.                                           major: '网络工程',
  70.                                           class: '网络2201',
  71.                                           address: '陕西省延安市宝塔区888号',
  72.                                           zip: 222222
  73.                                         }, {
  74.                                           id: '1004',
  75.                                           name: '王小虎',
  76.                                           major: '人工智能',
  77.                                           class: '智能2201',
  78.                                           address: '陕西省西安市未央区777号',
  79.                                           zip: 333333
  80.                                         }]
  81.                         }
  82.                 },
  83.                 methods:{
  84.                         handleClick(row) {
  85.                                 console.log(row);
  86.                               }
  87.                 }
  88.         }
  89. </script>
  90. <style>
  91. </style>
复制代码
四.总结

本篇博客呢,带领各人做了一个简单的vue-cli框架和ElementUI的综合使用和搭建,此中还是包括很多细节的,好比嵌套路由后的添加画布以及组件切换需要加的router都是非常小的细节部分,我们做步伐员必须要细节一些的。到这里呢,就要和各人说再见了,期待我们的下次再见,对于本篇博客有问题的同砚可以在批评区留言大概私信博主嗷,我们一起进步!!!制作不易,还请各人可以多多支持,一键三连,谢谢各人!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表