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-09
Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動效果
這篇文章主要介紹了Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
Vue elementUI 自定義表單模板組件功能實(shí)現(xiàn)
在項(xiàng)目開發(fā)中,我們會遇到這種需求,在管理后臺添加自定義表單,在指定的頁面使用定義好的表單,這篇文章主要介紹了Vue elementUI 自定義表單模板組件,需要的朋友可以參考下2022-12-12

