Vue+Elementui+iView编写后台
花了几天时间学习,谁便写了如下界面,打的都是草稿,所以命名...啥的都不规范。请大家见谅(未完待续)

1.login.vue代码部分
1 <template> 2 <div style="width: 100%;height:100%;" id="loginMain"> 3 <vueCanvasNest></vueCanvasNest> 4 <div class="Header"> 5 <div class="leftHeader"><img src="static/img/logo.png"/></div> 6 <div class="rightHeader" align="right" > 7 <el-button class="button-new-tag" size="small" >注册</el-button> 8 <el-button class="button-new-tag" size="small" >常见问题</el-button> 9 10 </div> 11 </div> 12 <div class="Content" v-bind:style="{height : fontSize + 'px' }"> 13 <div class="leftContent" align="right" ><img width="384px" height="267.6px" src="static/img/login.png" /></div> 14 <div class="rightContent"> 15 <el-button plain> 16 <form id="loginForm" name="loginForm" method="post" action="user/loginValidation"> 17 <table width="280" height="100%"> 18 <tr > 19 <td colspan="2" align="left" height="40px" > 20 账号登录 21 </td> 22 </tr> 23 24 <tr height="40px"> 25 <td> 26 <Input type="text" placeholder="请输入用户名"" > 27 <Icon type="ios-person-outline" slot="prepend"></Icon> 28 </Input> 29 </td> 30 <td></td> 31 </tr> 32 <tr height="40px"> 33 <td> 34 <Input type="password" placeholder="请输入密码"> 35 <Icon type="ios-lock-outline" slot="prepend"></Icon> 36 </Input> 37 </td> 38 <td></td> 39 </tr> 40 <tr height="40px"> 41 <td align="left"> 42 <el-checkbox v-model="checked">记住密码</el-checkbox> 43 </td> 44 <td></td> 45 </tr> 46 <tr> 47 <td align="center" > 48 <Button type="primary" long>登录</Button> 49 </td> 50 <td></td> 51 </tr> 52 </table> 53 </form> 54 </el-button> 55 </div> 56 </div> 57 <div class="Footer" align="center"> 58 <div align="center" style="width:100%;padding-top:20px"> 59 <div>Copyright © 2009-2018 BANK OF URUMQI. All right reserved.</div> 60 <div>© 2009-2018 xxxx银行股份有限公司 版权所有 新ICP备13002150号</div> 61 </div> 62 </div> 63 </div> 64 65 66 </template> 67 <style> 68 .leftContent{ 69 float:left; 70 width:50%; 71 --background-color:#666666; 72 height:100%; 73 padding-top:60px; 74 padding-right:36px; 75 76 77 } 78 .rightContent{ 79 float:left; 80 clear:right; 81 width:50%; 82 padding-top:80px; 83 padding-left:100px; 84 --background-color:#FF0000; 85 height:100%; 86 } 87 body{ 88 font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; 89 } 90 .leftHeader{ 91 --background-color:#666666; 92 --background-position:left; 93 94 padding-top:30px; 95 padding-left:90px; 96 width:50%; 97 float:left; 98 } 99 .rightHeader{ 100 float:right; 101 width:50%; 102 clear:right; 103 padding-right:50px; 104 padding-top:30px; 105 } 106 .Header{ 107 padding-top:0px; 108 line-height:60px; 109 overflow: hidden; 110 border-bottom-width:2px; 111 border-bottom-color:#0066FF; 112 --background-color:#FF0000; 113 114 } 115 .Content{ 116 width: 100%; 117 background-color:#5787F6; 118 119 } 120 .Footer{ 121 --padding-top:30px; 122 123 height:80px; 124 width: 100%; 125 --background-color:#E0ECFF; 126 } 127 </style> 128 <script> 129 import vueCanvasNest from '@/components/canvas-nest.vue' 130 export default { 131 name:'login', 132 components: { vueCanvasNest }, 133 data () { 134 return { 135 fontSize:`${document.documentElement.clientHeight}`-210 136 } 137 } 138 } 139 140 </script>
2.Main.vue代码部分
<style scoped> .layout-logo{ width: 230px; height: 30px; float: left; padding-top: 18px; padding-left: 20px; --background:#FF0; } .layout-nav{ --width: 40%; margin: 0 auto; --background:#F00; float: left; padding-top:5px; border-bottom:0px } .layout-nav-right{ --width: 40%; float:right; --background:#FFF; margin-top:25px; } .logoHeader{ height:40px; width:140px; padding-top:0px; padding-left:5px; padding-bottom:0px; background:f5f7f9; } .headerbuttion{ padding:2px 2px 2px 2px; background:#EBF1F6; } .headerbadge{ --margin-top:12px; margin-right:18px; } .line{ width:100%; border:solid 1px #515A6E; border-top-color:#515A6E; } .el-header{ --background:#515A6E; background:#EBF1F6; height: 70px; padding:0px 0px 0px 0px; } .el-main{ background:#FFFFFF; width:100% } .el-footer{ --background-color: #B3C0AA; --line-height:15px; --height:15px; background-color:#EBF1F6 ; padding-top:5px; } .el-aside{ background-color:#FFFFFF ; } </style> <template> <el-container> <el-header height="70px"> <div class="layout-logo"><el-button class="logoHeader" plain><img width="108px" height="25.6px" src="static/img/logomain.png" /></el-button></div> <div class="layout-nav" align="right" > <Menu mode="horizontal" style="background:#EBF1F6;" > <MenuItem name="1"> <span @click="jumpMenu('a')"> <Icon type="ios-navigate"></Icon> 首页 </span> </MenuItem> <MenuItem name="2"> <span @click="jumpMenu('a')"> <Icon type="ios-keypad"></Icon> 系统管理 </span> </MenuItem> <MenuItem name="3"> <span @click="jumpMenu('a')"> <Icon type="ios-analytics"></Icon> 企业管理 </span> </MenuItem> <MenuItem name="4"> <span @click="jumpMenu('a')"> <Icon type="ios-keypad"></Icon> 商户管理 </span> </MenuItem> <MenuItem name="5" > <span @click="jumpMenu('b')"> <Icon type="ios-keypad"></Icon> 我的工作台 </span> </MenuItem> </Menu> </div> <div class="layout-nav-right" align="right" > <el-badge :value="3" class="headerbadge"> <el-button size="mini" class="headerbuttion"><Icon type="md-reorder" size="23" color="#606266"/></el-button> </el-badge> <el-badge :value="3" class="headerbadge"> <el-button size="mini" class="headerbuttion"><Icon type="ios-mail-outline" size="23" color="#606266"/></el-button> </el-badge> <el-badge :value="12" class="headerbadge"> <el-button size="mini" class="headerbuttion"><Icon type="md-notifications" size="23" color="#606266" /></el-button> </el-badge> <span style="float:right;margin-top:-18px;margin-right:10px;margin-left:20px;clear:both;"> <el-badge > <Menu mode="horizontal" theme="dark" width="90px" style=" padding: 0 0 0 0;background:#EBF1F6;"> <Submenu name="1" > <template slot="title" width="20px" > <Icon size="40" type="ios-contact" style="padding: 0 0 0 0;" color="#606266"/> <span style="color:#000000">admin</span> </template> <MenuItem name="1-1" width="20px">修改信息</MenuItem> <MenuItem name="1-2" width="20px">密码修改</MenuItem> <MenuItem name="1-3" width="20px">退出</MenuItem> </Submenu> </Menu> </el-badge> <el-button size="mini" class="headerbuttion"><Icon type="md-exit" size="18" color="#606266"/></el-button> </span> </div> </el-header> <el-container style="padding: 0 0 0 0;background-color:#F0F;"> <el-aside v-bind:style="{height : fontSize + 'px'}" width="230px"> <csiimenu :csiimenu="csiimenu" @jump="jump"></csiimenu> </el-aside> <el-container> <el-main> <el-tabs v-model="editableTabsValue2" type="card" closable @tab-remove="removeTab"> <el-tab-pane > qwe </el-tab-pane> </el-tabs> </el-main> </el-container> </el-container> <csiifooter/> </el-container> </template> <script> import Vue from 'vue' import csiimenu from '@/views/csii/csiimenu' import csiifooter from '@/views/csii/csiifooter' export default { name:'index', data () { return { fontSize:`${document.documentElement.clientHeight}`-97, csiimenu:[{name:"系统管理",index:'0',icon:"el-icon-menu",childs:[{name:"用户管理",menuid:"1-1"},{name:"角色管理",menuid:"1-2"},{name:"权限管理",menuid:"1-3"},{name:"数据字典",menuid:"1-4"}]},{name:"企业管理",index:'1',icon:"el-icon-menu",childs:[{name:"企业管理1",menuid:"b1"},{name:"企业管理2",menuid:"b2"}]},{name:"商户管理",index:'2',icon:"el-icon-setting",childs:[{name:"商户管理1",menuid:"a1"},{name:"商户管理2",menuid:"a2"}]}] } }, components: { 'csiimenu': csiimenu, 'csiifooter':csiifooter }, methods:{ init(){ console.dir(this.$data); }, jumpMenu(num){ if(num=='a'){ this.$data.csiimenu=[{name:"系统管理",index:'0',icon:"el-icon-menu",childs:[{name:"用户管理",menuid:"1-1"},{name:"角色管理",menuid:"1-2"},{name:"权限管理",menuid:"1-3"},{name:"数据字典",menuid:"1-4"}]},{name:"企业管理",index:'1',icon:"el-icon-menu",childs:[{name:"企业管理1",menuid:"b1"},{name:"企业管理2",menuid:"b2"}]},{name:"商户管理",index:'2',icon:"el-icon-setting",childs:[{name:"商户管理1",menuid:"a1"},{name:"商户管理2",menuid:"a2"}]}]; }else{ this.$data.csiimenu=[{name:"我的工作台",index:'2',icon:"el-icon-setting",childs:[{name:"主题设置",menuid:"a1"},{name:"消息设置",menuid:"a2"}]}]; } console.dir(this.$refs); //console.dir(this.$data.fontSize); }, jump(name){ alert(name); } } } </script>
3.left.vue
<template> <el-menu :default-openeds="['0']" v-bind:style="{height : fontSize + 'px'}" :collapse="isCollapse"> <li v-for="(item, index) in csiimenu"> <el-submenu :index="item.index"> <template slot="title"><i :class="item.icon"></i><span slot="title">{{item.name}}</span></template> <el-menu-item-group> <li v-for="(child,index) in item.childs"> <el-menu-item :index="child.menuid" @click="jump(child.name)">{{child.name}}</el-menu-item> </li> </el-menu-item-group> </el-submenu> </li> </el-menu> </template> <script> import Vue from 'vue' export default { name:'csiimenu', props:{ csiimenu:{ type:Array, required:false, default:function(){ return [{name:"系统管理",index:'0',icon:"el-icon-menu",childs:[{name:"用户管理",menuid:"1-1"},{name:"角色管理",menuid:"1-2"},{name:"权限管理",menuid:"1-3"},{name:"数据字典",menuid:"1-4"}]},{name:"企业管理",index:'1',icon:"el-icon-menu",childs:[{name:"企业管理1",menuid:"b1"},{name:"企业管理2",menuid:"b2"}]},{name:"商户管理",index:'2',icon:"el-icon-setting",childs:[{name:"商户管理1",menuid:"a1"},{name:"商户管理2",menuid:"a2"}]}] } }}, data () { return { fontSize:`${document.documentElement.clientHeight}`-97, isCollapse: false //items:[{name:"系统管理",index:'0',icon:"el-icon-menu",childs:[{name:"用户管理",menuid:"1-1"},{name:"角色管理",menuid:"1-2"},{name:"权限管理",menuid:"1-3"},{name:"数据字典",menuid:"1-4"}]},{name:"企业管理",index:'1',icon:"el-icon-menu",childs:[{name:"企业管理1",menuid:"b1"},{name:"企业管理2",menuid:"b2"}]},{name:"商户管理",index:'2',icon:"el-icon-setting",childs:[{name:"商户管理1",menuid:"a1"},{name:"商户管理2",menuid:"a2"}]}] } }, methods:{ jump(name){ alert(name); this.$emit('jump',name); } } } </script>
4.footer.vue
<template> <el-footer height="30px" > <div align="left" style="width:50%;float:left;"><span style="padding-left:10px;">当前用户</span>:<strong style="margin-left:5px;">连长</strong></div> <div align="right" style="width:50%;float:left; "> © 版权所有及技术支持: <a href="" target="_blank" style="color:#0033CC;width:400px" title="银行技术专家" >科蓝股份有限公司</a><span style="padding-left:20px;padding-right:10px;width:300px" id="sysTime"></span> </div> </el-footer> </template> <script> window.setInterval(function(){ document.getElementById('sysTime').innerHTML=getCurrDate(); }, 1000); function fillDateZero(num){ if(parseInt(num)<10){ return "0"+num; } return num; } function getCurrDate(){ var d=new Date(); var s= d.getFullYear()+"-"; s+=(d.getMonth()+1)+"-"; s+= d.getDate()+ " "; s+= d.getHours()+":"; s += fillDateZero(d.getMinutes())+":"; s += fillDateZero(d.getSeconds()); return s; } </script>

浙公网安备 33010602011771号