uniapp好看的登錄頁面
本登錄方式有兩種
1.賬號(hào)和密碼登錄
2.賬號(hào)和驗(yàn)證碼登錄
文章來源:http://www.zghlxwxcb.cn/news/detail-778701.html
1.登錄頁面的代碼
<template>
<view class="login">
<view class="login-title">體育場(chǎng)館預(yù)約</view>
<view class="login-content">
<view class="login-username">
<i class="el-icon-user"></i>
<input type="text" placeholder="請(qǐng)輸入賬號(hào)" v-model="phone">
</view>
<view class="login-password">
<i class="el-icon-key"></i>
<input type="safe-password" name="" id="" placeholder="請(qǐng)輸入密碼" v-model="password">
</view>
</view>
<view class="button"><button @click="onsubmit">登錄</button></view>
<view class="login-botton">
<view class="login-password" @click="findPassword">找回密碼</view>
<span>|</span>
<view class="login-zhuce" @click="Registration">注冊(cè)賬號(hào)</view>
</view>
<!-- 其他的登錄方式 -->
<view class="login-other">
<view class="login-top">
其他的登錄方式
</view>
<view class="login-icon">
<image src="../../static/index/QQ.png" mode="widthFix"></image>
<image src="../../static/index/weixin.png" mode="widthFix"></image>
</view>
</view>
</view>
</template>
<script>
import { mapMutations } from 'vuex';
export default {
data() {
return {
phone:'',
password:'',
rules: {
phone: [{ required: true, message: '請(qǐng)輸入手機(jī)號(hào)', rule: '/^1[23456789]\d{9}$/' }],
password: [{ required: true, message: '請(qǐng)輸入密碼', trigger: 'blur' }]
}
};
},
methods: {
// ...mapMutations(['user_Login']),
//登錄
onsubmit() {
if(this.phone==''||this.password==''){
uni.showToast({
title:"內(nèi)容不能為空哦!",
icon:"none"
})
}else{
let data={
phone:this.phone,
password:this.password
}
uni.request({
url: '/api/login/loginUser',
method: 'POST',
data: data,
success: res => {
console.log(res.data.data.data);
if (res.data.code == 200) {
this.$store.commit("userLogin",res.data.data.data );
localStorage.setItem('status',true)
//頁面跳轉(zhuǎn)
this.$router.push('/pages/index/index');
uni.showToast({
title: res.data.data.msg,
icon: 'none'
});
} else {
uni.showToast({
title: res.data.data.msg,
icon: 'none'
});
}
}
});
}
},
Registration() {
console.log('hah ');
uni.navigateTo({
url: '../../pages/login/registration'
});
},
findPassword() {
console.log('hah ');
this.$router.push('/pages/login/findPassword');
},
loginOther(){
uni.share({
provider: "weixin",
scene: "WXSceneSession",
type: 1,
summary: "我正在使用HBuilderX開發(fā)uni-app,趕緊跟我一起來體驗(yàn)!",
success: function (res) {
console.log("success:" + JSON.stringify(res));
},
fail: function (err) {
console.log("fail:" + JSON.stringify(err));
}
});
}
}
};
</script>
<style lang="less">
.login {
// background-image: linear-gradient(120deg, #05ee28, #6a3dad);
background-color: #fff;
width: 100%;
background-position: center;
background-size: cover;
// background-color: #464646;
margin:0px;
background-size:100% 100%;
background-attachment:fixed;
height: 1535rpx;
opacity: 0.8;
.login-title {
padding-top: 150rpx;
display: flex;
justify-content: flex-start;
margin-left: 50rpx;
font-weight: 700;
font-size: 40rpx;
color: #11cd6e;
letter-spacing: 5rpx;
margin-bottom: 50rpx;
}
.login-content{
.login-username{
display: flex;
align-items: center;
margin: 0 50rpx;
border-bottom: 1rpx solid gainsboro;
input{
padding: 10rpx;
height: 60rpx;
width: 80%;
}
i {
color: #11c53e;
padding-right: 20rpx;
font-size: 50rpx;
}
}
.login-password{
display: flex;
align-items: center;
margin: 0 50rpx;
border-bottom: 1rpx solid gainsboro;
margin-top: 50rpx;
input{
padding: 10rpx;
height: 60rpx;
width: 80%;
}
i {
color: #11c53e;
padding-right: 20rpx;
font-size: 50rpx;
}
}
}
.button{
margin-top: 120rpx;
button{
background-color:#11c53e;
width: 90%;
height: 85rpx;
text-align: center;
line-height: 85rpx;
color: #fff;
}
}
.login-botton{
display: flex;
justify-content: center;
margin-top: 100rpx;
.login-password{
padding: 0 15rpx;
color: #11c53e;
}
.login-zhuce{
padding: 0 15rpx;
color: #11c53e;
}
}
.login-other{
position: absolute;
bottom: 100rpx;
left: 37%;
display: flex;
flex-direction: column;
justify-content: center;
.login-top{
text-align:center;
}
.login-icon{
display: flex;
justify-content: space-between;
margin-top: 50rpx;
image{
width: 80rpx;
}
}
}
}
</style>
2.注冊(cè)頁面
文章來源地址http://www.zghlxwxcb.cn/news/detail-778701.html
<template>
<view class="registration">
<view class="registration-content">
<view class="login-username">
<i class="el-icon-mobile"></i>
<input type="text" name="" id="" placeholder="請(qǐng)輸入手機(jī)號(hào)" v-model="phone" />
</view>
<view class="login-code">
<i class="el-icon-cpu"></i>
<input type="text" placeholder="請(qǐng)輸入驗(yàn)證碼" v-model="userCode" />
<button type="warning" :disabled="disabled" @click="sendCode">{{ codeMsg }}</button>
</view>
</view>
<view class="login-button"><button @click="login">下一步</button></view>
<view class="registration-botton"><view class="registration-password" @click="goBack">密碼登陸</view></view>
</view>
</template>
<script>
export default {
data() {
return {
phone: '',
userCode: '',
disabled: false,
codeNum: 10,
codeMsg: '獲取驗(yàn)證碼',
code: '',
rules: {
phone: {
rule: '/^1[23456789]\d{9}$/',
meg: '手機(jī)的格式不對(duì)'
}
}
};
},
methods: {
sendCode() {
if (this.phone == '') {
uni.showToast({
title: '手機(jī)號(hào)不能為空',
icon: 'none'
});
} else if (this.phone != '') {
var reg = /^1[3456789]\d{9}$/;
if (!reg.test(this.phone)) {
uni.showToast({
title: '輸入有效的手機(jī)號(hào)',
icon: 'none'
});
} else {
//禁用按鈕
this.disabled = true;
//發(fā)送請(qǐng)求
uni.request({
url: '/api/login/code',
method: 'POST',
data: {
phone: this.phone
},
success: res => {
console.log('11', res.data.data);
if (res.data.data.success) {
this.code = res.data.data.data;
}
}
});
//倒計(jì)時(shí)
let timer = setInterval(() => {
--this.codeNum;
this.codeMsg = `重新發(fā)送 ${this.codeNum}`;
}, 1000);
//判斷定時(shí)器停止
setTimeout(() => {
clearInterval(timer);
(this.disabled = false), (this.codeMsg = '獲取驗(yàn)證碼'), (this.codeNum = 10);
}, 10000);
}
}
},
//登錄
login() {
if (this.code == '' || this.phone == '') {
uni.showToast({
title: '手機(jī)號(hào)不能為空',
icon: 'none'
});
} else if (this.userCode == this.code) {
//驗(yàn)證碼正確
uni.request({
url: '/api/login/addUser',
method: 'POST',
data: {
phone: this.phone
},
success: res => {
//code 200 注冊(cè)成功
if (res.data.code == 200) {
uni.showToast({
title: res.data.data.msg,
icon: 'none'
});
//給vuex添加數(shù)據(jù)
this.$store.commit('userLogin', res.data.data.data);
//路由跳轉(zhuǎn)
this.$router.push('/pages/index/index');
} else {
uni.showToast({
title: res.data.data.msg,
icon: 'none'
});
}
}
});
}
},
//密碼登錄
goBack() {
this.$router.push('/pages/login/login');
},
validate(key) {
let bool = true;
if (!this.rules[key].rule.test(this[key])) {
uni.showToast({
title: this.rules[key].meg,
icon: 'none'
});
bool = false;
return false;
}
return bool;
}
}
};
</script>
<style lang="less">
.registration {
width: 100%;
background-position: center;
background-size: cover;
background-color: #fff;
margin: 0px;
background-size: 100% 100%;
background-attachment: fixed;
opacity: 0.8;
// margin-top: 100rpx;
.registration-content{
display: flex;
flex-direction: column;
margin: 0 50rpx;
input{
padding: 10rpx;
width:60%;
height: 70rpx;
}
i {
color: #11c53e;
padding-right: 20rpx;
font-size: 50rpx;
}
.login-username{
display: flex;
align-items: center;
border-bottom: 1rpx solid gainsboro;
margin-top: 30rpx;
}
.login-code{
display: flex;
align-items: center;
border-bottom: 1rpx solid gainsboro;
margin-top: 30rpx;
button{
width:250rpx;
height: 85rpx;
font-size: 30rpx;
line-height: 85rpx;
background-color: #11c53e;
color: #fff;
}
}
}
.login-button{
margin-top: 150rpx;
width: 90%;
margin-left: 5%;
button{
background-color: #11c53e;
color: #fff;
}
}
}
.registration-botton {
display: flex;
margin-top: 50rpx;
justify-content: space-between;
.registration-password {
padding-left: 40rpx;
color: #fff;
}
.registration-zhuce {
padding-right: 40rpx;
color: #fff;
}
}
</style>
到了這里,關(guān)于uniapp好看的登錄頁面的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!