亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Vue實現登陸跳轉

瀏覽:11日期:2022-09-28 10:30:13

本文實例為大家分享了Vue實現登陸跳轉的具體代碼,供大家參考,具體內容如下

不說廢話,先上效果圖~

Vue實現登陸跳轉

Vue實現登陸跳轉

Vue實現登陸跳轉

Vue實現登陸跳轉

Vue實現登陸跳轉

具體的實現方法,參照以下步驟~

1.創建login.vue,繪制login畫面,添加跳轉事件。

<template> <div class='login-container'><el-form :model='ruleForm2' :rules='rules2' status-icon ref='ruleForm2' label-position='left' label- class='demo-ruleForm login-page'> <h3 class='title'>登錄平臺</h3> <el-form-item prop='username'><el-input type='text' v-model='ruleForm2.username' auto-complete='off' placeholder='用戶名'></el-input> </el-form-item> <el-form-item prop='password'><el-input type='password' v-model='ruleForm2.password' auto-complete='off' placeholder='密碼'></el-input> </el-form-item> <el-form-item style='width:100%;'><el-button type='primary' @click='handleSubmit' :loading='logining'>登錄</el-button> </el-form-item> <el-form-item ><el-checkbox v-model='checked' class='rememberme'>記住密碼</el-checkbox><el-button type='text' @click='forgetpassword'>忘記密碼</el-button> </el-form-item> </el-form> </div></template><script> import { requestLogin } from ’../api/api’; export default { data() { return {logining: false,ruleForm2: {},rules2: { account: [ { required: true, message: ’請輸入賬號’, trigger: ’blur’ }, ], checkPass: [ { required: true, message: ’請輸入密碼’, trigger: ’blur’ }, ]},checked: true }; }, methods: { handleReset2() {this.$refs.ruleForm2.resetFields(); }, handleSubmit(ev) {this.$refs.ruleForm2.validate((valid) => { if (valid) { this.logining = true; var loginParams = { username: this.ruleForm2.username, password: this.ruleForm2.password, identifycode: this.ruleForm2.identifycode }; requestLogin(loginParams).then(data => { this.logining = false; let { msg, code, user } = data; if (code !== 200) {this.$message({ message: msg, type: ’error’}); } else {if (user.type === 'admin'){ sessionStorage.setItem(’user’, JSON.stringify(user)); this.$router.push({ path: ’/homepage’ });} else if (user.type === 'advert') { sessionStorage.setItem(’user’, JSON.stringify(user)); this.$router.push({ path: ’/table’ });} } }); } else { console.log(’error submit!!’); return false; }}); }, forgetpassword(){ this.$alert(’請聯系管理員找回密碼,管理員電話:131xxxxxxxx’, ’提示’, { confirmButtonText: ’確定’, type: ’warning’}) } } }</script><style scoped> label.el-checkbox.rememberme {margin: 0px 0px 15px;text-align: left; } label.el-button.forget {margin: 0;padding: 0;border: 1px solid transparent;outline: none; }</style>

2.創建Home.vue菜單欄頁面

<template> <el-row class='container'><el-col :span='24' class='header'> <el-col :span='18' >{{sysName}} </el-col> <el-col :span='4' class='userinfo'> <el-dropdown trigger='hover'> <span class='el-dropdown-link userinfo-inner'><img :src='http://www.aoyou183.cn/bcjs/this.sysUserAvatar' /> {{sysUserName}}</span> <el-dropdown-menu slot='dropdown'> <el-dropdown-item>我的消息</el-dropdown-item> <el-dropdown-item>設置</el-dropdown-item> <el-dropdown-item @click.native='logout'>退出登錄</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </el-col> </el-col><el-col :span='24' class='main'> <aside><el-menu :default-active='$route.path' @select='handleselect'unique-opened router ><template v-for='(item,index) in $router.options.routes' v-if='!item.hidden'> <el-submenu :index='index+’’' v-if='!item.leaf'> <template slot='title'><i :class='item.iconCls'></i>{{item.name}}</template> <el-menu-item v-for='child in item.children' :index='child.path' :key='child.path' v-if='!child.hidden'>{{child.name}}</el-menu-item> </el-submenu> <el-menu-item v-if='item.leaf&&item.children.length>0' :index='item.children[0].path'><i :class='item.iconCls'></i>{{item.children[0].name}}</el-menu-item> </template></el-menu> </aside> <section class='content-container'> <div class='grid-content bg-purple-light'> <el-col :span='24' class='breadcrumb-container'> <strong class='title'>{{$route.name}}</strong> </el-col> <el-col :span='24' class='content-wrapper'> <transition name='fade' mode='out-in'> <router-view></router-view> </transition> </el-col> </div> </section> </el-col> </el-row></template><script>export default { data() { return { sysName:’xxx管理平臺’, sysUserName: ’’, sysUserAvatar: ’’, form: { name: ’’, region: ’’, date1: ’’, date2: ’’, delivery: false, type: [], resource: ’’, desc: ’’ } }}, methods: { //退出登錄 logout: function () { var _this = this; this.$confirm(’確認退出嗎?’, ’提示’, { //type: ’warning’ }).then(() => { sessionStorage.removeItem(’user’); _this.$router.push(’/login’); }).catch(() => { }); } }, mounted() { var user = sessionStorage.getItem(’user’); if (user) { user = JSON.parse(user); this.sysUserName = user.name || ’’; this.sysUserAvatar = user.avatar || ’’; } }}</script><style scoped lang='scss'>@import ’../style/vars.scss’; .container { position: absolute; top: 0px; bottom: 0px; width: 100%; } .header { height: 60px; line-height: 60px; background: $color-primary; color:#fff; .userinfo { text-align: right; padding-right: 35px; float: right; .userinfo-inner { cursor: pointer; color:#fff; img { width: 40px; height: 40px; border-radius: 20px; margin: 10px 0px 10px 10px; float: right; } } } .logo { height:60px; font-size: 22px; padding-left:20px; img { width: 40px; float: left; margin: 10px 10px 10px 0px; } .txt { color:#fff; } } .logo-width{ width:230px; } .logo-collapse-width{ width:60px } .title{font-size: 22px; padding-left:20px; line-height: 60px; color:#fff; }} .main { display: flex; position: absolute; top: 60px; bottom: 0px; overflow: hidden; aside { flex:0 0 230px; width: 230px; .el-menu{ height: 100%; /* width: 34%; */ } } .content-container { flex:1; /* overflow-y: scroll; */ padding: 20px; .breadcrumb-container { .title { width: 200px; float: left; color: #475669; } .breadcrumb-inner { float: right; } } .content-wrapper { background-color: #fff; box-sizing: border-box; } } }</style>

3.制作子頁面

<template> <p> homepage</p></template>

4.路由配置

import Login from ’./views/Login.vue’import Home from ’./views/Home.vue’import Homepage from ’./views/list/homepage.vue’ import Table from ’./views/list/Table.vue’let routes = [ {path: ’/login’,component: Login,name: ’’,hidden: true }, {path: ’/’,component: Home,name: ’’,leaf: true,//只有一個節點iconCls: ’el-icon-menu’, //圖標樣式classchildren: [ { path: ’/homepage’, component: Homepage, name: ’首頁’ },] }, {path: ’/’,component: Home,name: ’菜單’,// leaf: true,//只有一個節點iconCls: ’el-icon-message’, //圖標樣式classchildren: [ { path: ’/table’, component: Table, name: ’子菜單01’ }] }];export default routes;

5.main.js實現

// The Vue build version to load with the `import` command// (runtime-only or standalone) has been set in webpack.base.conf with an alias.import Vue from ’vue’import App from ’./App’import VueRouter from ’vue-router’import routes from ’./routes’import Vuex from ’vuex’import store from ’./vuex/store’import ElementUI from ’element-ui’import ’element-ui/lib/theme-chalk/index.css’import Mock from ’./mock’Mock.bootstrap();import ’./style/login.css’/* Vue.use(VueAxios, axios) */Vue.use(ElementUI)Vue.use(VueRouter)Vue.use(Vuex)Vue.config.productionTip = falseconst router = new VueRouter({ routes})router.beforeEach((to, from, next) => { //NProgress.start(); if (to.path == ’/login’) { sessionStorage.removeItem(’user’); } let user = JSON.parse(sessionStorage.getItem(’user’)); if (!user && to.path != ’/login’) { next({ path: ’/login’ }) } else { next() }})new Vue({ router, store, render: h => h(App)}).$mount(’#app’)

這樣一個登陸畫面就實現了,具體的源碼可以參照:Vue實現登陸跳轉

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 日韩免费一区二区 | 欧美成人精品第一区二区三区 | 91免费资源网站入口 | 国产成人在线网址 | 中国美女一级黄色片 | 国产精品国产福利国产秒拍 | 亚洲狠狠婷婷综合久久久久 | 国产高清国内精品福利色噜噜 | 国产草逼视频 | 成人看免费一级毛片 | 精品一区二区三区的国产在线观看 | 日本欧美久久久久免费播放网 | 日韩一级片在线免费观看 | 免费永久在线观看黄网 | 超91精品手机国产在线 | 人妖欧美一区二区三区四区 | 中国黄色片视频 | 亚洲欧洲一区二区三区在线 | 国产欧美激情一区二区三区 | 国产日产欧产精品精品推荐在线 | 丁香六月 久久久 | 黑人艹 | 国产51页 | 亚洲欧美一区二区三区二厂 | 国产欧美亚洲精品第一页青草 | 亚洲国产精品一区二区第一页 | 优看影院污 | 亚洲午夜免费 | 99久久免费国产特黄 | 亚洲欧洲日韩在线 | 一色屋精品亚洲香蕉网站 | 久久精品久久精品久久 | 亚洲欧美视频一区二区三区 | chinese在线播放91国内 | 激情777| 亚洲国产精品久久久久久网站 | 精品一区二区三区的国产在线观看 | 奇米网狠狠干 | www.黄色在线 | 2020阿v天堂网手机版 | 又爽又黄又无遮挡的视频在线观看 |