vue實(shí)現(xiàn)登錄界面
使用Vue實(shí)現(xiàn)簡(jiǎn)單的用戶登錄界面,登錄成功以后查詢(xún)賬號(hào)用戶類(lèi)型進(jìn)行相應(yīng)的頁(yè)面路由跳轉(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='賬號(hào)' ? ? ? ? ? ? ? ? ? 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">注冊(cè)新賬號(hào)</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: "請(qǐng)輸入賬號(hào)", trigger: "blur"} ? ? ? ? ? ], ? ? ? ? ? passWord: [{required: true, message: "請(qǐng)輸入密碼", 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: '密碼錯(cuò)誤,登陸失?。? ? ? ? ? ? ? }) ? ? ? ? ? } ? ? ? ? ? //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: '查詢(xún)失敗!' ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? } 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; ? }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用?vue-socket.io三種方式及踩坑實(shí)例解析
這篇文章主要為大家介紹了vue使用?vue-socket.io三種方式及踩坑實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09vue router返回到指定的路由的場(chǎng)景分析
這篇文章主要介紹了vue router返回到指定的路由的場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11vue實(shí)現(xiàn)淘寶購(gòu)物車(chē)功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)淘寶購(gòu)物車(chē)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動(dòng)效果
這篇文章主要介紹了Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Vue elementUI 自定義表單模板組件功能實(shí)現(xiàn)
在項(xiàng)目開(kāi)發(fā)中,我們會(huì)遇到這種需求,在管理后臺(tái)添加自定義表單,在指定的頁(yè)面使用定義好的表單,這篇文章主要介紹了Vue elementUI 自定義表單模板組件,需要的朋友可以參考下2022-12-12