vue實(shí)現(xiàn)登錄界面
更新時間:2022年06月16日 16:12:42 作者:Hi-Sun
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
使用Vue實(shí)現(xiàn)簡單的用戶登錄界面,登錄成功以后查詢賬號用戶類型進(jìn)行相應(yīng)的頁面路由跳轉(zhuǎn),效果如下圖所示:
HTML部分:
<div class="loginbody"> ? ? <div class="login"> ? ? ? <div class="mylogin" align="center"> ? ? ? ? <h4>登錄</h4> ? ? ? ? <el-form ? ? ? ? ? :model="loginForm" ? ? ? ? ? :rules="loginRules" ? ? ? ? ? ref="loginForm" ? ? ? ? ? label-width="0px" ? ? ? ? > ? ? ? ? ? <el-form-item ? ? ? ? ? ? label="" ? ? ? ? ? ? prop="account" ? ? ? ? ? ? style="margin-top:10px;" ? ? ? ? ? > ? ? ? ? ? ? <el-row> ? ? ? ? ? ? ? <el-col :span='2'> ? ? ? ? ? ? ? ? <span class="el-icon-s-custom"></span> ? ? ? ? ? ? ? </el-col> ? ? ? ? ? ? ? <el-col :span='22'> ? ? ? ? ? ? ? ? <el-input ? ? ? ? ? ? ? ? ? class="inps" ? ? ? ? ? ? ? ? ? placeholder='賬號' ? ? ? ? ? ? ? ? ? v-model="loginForm.account"> ? ? ? ? ? ? ? ? </el-input> ? ? ? ? ? ? ? </el-col> ? ? ? ? ? ? </el-row> ? ? ? ? ? </el-form-item> ? ? ? ? ? <el-form-item ? ? ? ? ? ? label="" ? ? ? ? ? ? prop="passWord" ? ? ? ? ? > ? ? ? ? ? ? <el-row> ? ? ? ? ? ? ? <el-col :span='2'> ? ? ? ? ? ? ? ? <span class="el-icon-lock"></span> ? ? ? ? ? ? ? </el-col> ? ? ? ? ? ? ? <el-col :span='22'> ? ? ? ? ? ? ? ? <el-input ? ? ? ? ? ? ? ? ? class="inps" ? ? ? ? ? ? ? ? ? type="password" ? ? ? ? ? ? ? ? ? placeholder='密碼' ? ? ? ? ? ? ? ? ? v-model="loginForm.passWord" ? ? ? ? ? ? ? ? ></el-input> ? ? ? ? ? ? ? </el-col> ? ? ? ? ? ? </el-row> ? ? ? ? ? </el-form-item> ? ? ? ? ? <el-form-item style="margin-top:55px;"> ? ? ? ? ? ? <el-button ? ? ? ? ? ? ? type="primary" ? ? ? ? ? ? ? round ? ? ? ? ? ? ? class="submitBtn" ? ? ? ? ? ? ? @click="submitForm" ? ? ? ? ? ? >登錄 ? ? ? ? ? ? </el-button> ? ? ? ? ? </el-form-item> ? ? ? ? ? <div class="unlogin"> ? ? ? ? ? ? <router-link :to="{ path: '/forgetpwd'}"> ? ? ? ? ? ? ? 忘記密碼? ? ? ? ? ? ? </router-link> ? ? ? ? ? ? | ? ? ? ? ? ? <router-link :to="{path: '/register'}"> ? ? ? ? ? ? ? <a href="register.vue" target="_blank" align="right">注冊新賬號</a> ? ? ? ? ? ? </router-link> ? ? ? ? ? </div> ? ? ? ? </el-form> ? ? ? </div> ? ? </div> ? </div>
JS部分
?import {mapMutations} from "vuex"; ? ? export default { ? ? name: "Login", ? ? data: function () { ? ? ? return { ? ? ? ? loginForm: { ? ? ? ? ? account: '', ? ? ? ? ? passWord: '' ? ? ? ? }, ? ? ? ? loginRules: { ? ? ? ? ? account: [ ? ? ? ? ? ? {required: true, message: "請輸入賬號", trigger: "blur"} ? ? ? ? ? ], ? ? ? ? ? passWord: [{required: true, message: "請輸入密碼", trigger: "blur"}] ? ? ? ? } ? ? ? } ? ? }, ? ? ? ? methods: { ? ? ? ...mapMutations(['changeLogin']), ? ? ? submitForm() { ? ? ? ? let self = this; ? ? ? ? const userAccount = this.loginForm.account; ? ? ? ? const userPassword = this.loginForm.passWord; ? ? ? ? const userForm = new FormData(); ? ? ? ? userForm.append('userAccount', userAccount); ? ? ? ? userForm.append('userPassword', userPassword); ? ? ? ? this.axios.post('URL1', userForm ? ? ? ? ).then((res) => { ? ? ? ? ? if (res.data == 0) { ? ? ? ? ? ? self.$message({ ? ? ? ? ? ? ? type: 'error', ? ? ? ? ? ? ? message: '密碼錯誤,登陸失??!' ? ? ? ? ? ? }) ? ? ? ? ? } ? ? ? ? ? //token ? ? ? ? ? self.sessiontoken = res.headers['sessiontoken']; ? ? ? ? ? self.PageToken = Math.random().toString(36).substr(2); ? ? ? ? ? sessionStorage.setItem('PageToken', self.PageToken); ? ? ? ? ? self.changeLogin({sessiontoken: self.sessiontoken}); ? ? ? ? ? //登錄成功 ? ? ? ? ? if (res.data == 1) { ? ? ? ? ? ? self.axios.get("URL2" ? ? ? ? ? ? ).then((res) => { ? ? ? ? ? ? ? if (res.data == null) { ? ? ? ? ? ? ? ? self.$message({ ? ? ? ? ? ? ? ? ? type: 'error', ? ? ? ? ? ? ? ? ? message: '查詢失?。? ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? if (res.data.userType == 0) { ? ? ? ? ? ? ? ? ? self.$router.push({path: '/supermana', replace: true}) ? ? ? ? ? ? ? ? } else if (res.data.userType == 1) { ? ? ? ? ? ? ? ? ? self.$router.push({path: '/manauser', replace: true}) ? ? ? ? ? ? ? ? } else if (res.data.userType == 2) { ? ? ? ? ? ? ? ? ? self.$router.push({path: '/ordinauser', replace: true}) ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? } ? ? ? ? ? ? }).catch((error) => { ? ? ? ? ? ? ? console.log(error) ? ? ? ? ? ? }) ? ? ? ? ? } ? ? ? ? }) ? ? ? }, ? ? } ? }
CSS部分
?.loginbody { ? ? overflow: scroll; ? ? overflow-y: hidden; ? ? overflow-x: hidden; ? } ? ? .login { ? ? width: 100vw; ? ? padding: 0; ? ? margin: 0; ? ? height: 100vh; ? ? font-size: 16px; ? ? background-position: left top; ? ? background-color: #242645; ? ? color: #fff; ? ? font-family: "Source Sans Pro"; ? ? position: relative; ? ? background-image: url('/static/images/background.jpg'); ? ? background-repeat: no-repeat; ? ? background-size: 100% 100%; ? } ? ? .mylogin { ? ? width: 240px; ? ? height: 280px; ? ? position: absolute; ? ? top: 0; ? ? left: 0; ? ? right: 0; ? ? bottom: 0; ? ? margin: auto; ? ? padding: 50px 40px 40px 40px; ? ? box-shadow: -15px 15px 15px rgba(6, 17, 47, 0.7); ? ? opacity: 1; ? ? background: linear-gradient( ? ? ? 230deg, ? ? ? rgba(53, 57, 74, 0) 0%, ? ? ? rgb(0, 0, 0) 100% ? ? ); ? } ? ? .inps input { ? ? border: none; ? ? color: #fff; ? ? background-color: transparent; ? ? font-size: 12px; ? } ? ? .submitBtn { ? ? background-color: transparent; ? ? color: #39f; ? ? width: 200px; ? }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用?vue-socket.io三種方式及踩坑實(shí)例解析
這篇文章主要為大家介紹了vue使用?vue-socket.io三種方式及踩坑實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動效果
這篇文章主要介紹了Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01Vue elementUI 自定義表單模板組件功能實(shí)現(xiàn)
在項(xiàng)目開發(fā)中,我們會遇到這種需求,在管理后臺添加自定義表單,在指定的頁面使用定義好的表單,這篇文章主要介紹了Vue elementUI 自定義表單模板組件,需要的朋友可以參考下2022-12-12