193 lines
3.7 KiB
Vue
193 lines
3.7 KiB
Vue
<template>
|
||
<view class="t-login">
|
||
<u-navbar :autoBack="true"></u-navbar>
|
||
<!-- 页面装饰图片 -->
|
||
<image class="img-a" src="/static/2.png"></image>
|
||
<image class="img-b" src="/static/3.png"></image>
|
||
<!-- 标题 -->
|
||
<view class="t-b">{{ title }}</view>
|
||
<form class="cl">
|
||
<view class="t-a">
|
||
<image src="/static/icon/acee.png"></image>
|
||
<input placeholder="请输入用户名" maxlength="32" v-model="form.username" />
|
||
</view>
|
||
<view class="t-a">
|
||
<image src="/static/icon/pass.png"></image>
|
||
<input style="margin-bottom: 20rpx;" type="password" maxlength="32" placeholder="请输入密码" v-model="form.password" />
|
||
</view>
|
||
<view class="u-flex u-flex-reverse" style="margin-bottom: 20rpx;">
|
||
<view @click="$utils.tn('/pages/me/getBackAccount')">
|
||
<u--text color="#5677fc" text="找回用户名"></u--text>
|
||
</view>
|
||
<view @click="$utils.tn('/pages/me/password')" style="margin-right: 25rpx">
|
||
<u--text color="#5677fc" text="忘记密码"></u--text>
|
||
</view>
|
||
</view>
|
||
<button class="b_login" @click="login()">登 录</button>
|
||
<button class="b_register" @tap="register()">立 即 注 册</button>
|
||
</form>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
title: '欢迎回来!', //填写logo或者app名称,也可以用:欢迎回来,看您需求
|
||
form: {
|
||
username: '',
|
||
password: ''
|
||
}
|
||
};
|
||
},
|
||
onLoad() {},
|
||
methods: {
|
||
async login() {
|
||
if (!this.form.username) return uni.showToast({ title: '请输入用户名', icon: 'none' });
|
||
if (!this.form.password) return uni.showToast({ title: '请输入密码', icon: 'none' });
|
||
// 注册
|
||
try {
|
||
let { data } = await this.$http.post('/shop/v10/auth/login', this.form);
|
||
this.$store.commit('auth/setUser', data.user);
|
||
this.$store.commit('auth/setToken', data.token);
|
||
uni.navigateBack();
|
||
} catch (e) {
|
||
console.log(e);
|
||
}
|
||
},
|
||
register() {
|
||
uni.navigateTo({ url: '/pages/me/logon' });
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
<style>
|
||
page {
|
||
background-color: #fff;
|
||
}
|
||
.img-a {
|
||
position: absolute;
|
||
width: 100%;
|
||
top: -280rpx;
|
||
right: -100rpx;
|
||
}
|
||
|
||
.img-b {
|
||
position: absolute;
|
||
width: 50%;
|
||
bottom: 0;
|
||
left: -50rpx;
|
||
}
|
||
|
||
.t-login {
|
||
width: 600rpx;
|
||
margin: 0 auto;
|
||
font-size: 28rpx;
|
||
color: #000;
|
||
}
|
||
|
||
.t-login .b_login {
|
||
font-size: 28rpx;
|
||
background: #5677fc;
|
||
color: #fff;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
border-radius: 50rpx;
|
||
box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
|
||
}
|
||
|
||
.t-login .b_register {
|
||
font-size: 28rpx;
|
||
background: rgba(86, 119, 252, 0.6);
|
||
color: #fff;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
border-radius: 50rpx;
|
||
box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
|
||
margin-top: 30rpx;
|
||
}
|
||
|
||
.t-login input {
|
||
padding: 0 20rpx 0 120rpx;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
margin-bottom: 50rpx;
|
||
background: #f8f7fc;
|
||
border: 1px solid #e9e9e9;
|
||
font-size: 28rpx;
|
||
border-radius: 50rpx;
|
||
}
|
||
|
||
.t-login .t-a {
|
||
position: relative;
|
||
}
|
||
|
||
.t-login .t-a image {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
position: absolute;
|
||
left: 40rpx;
|
||
top: 28rpx;
|
||
border-right: 2rpx solid #dedede;
|
||
padding-right: 20rpx;
|
||
}
|
||
|
||
.t-login .t-b {
|
||
text-align: left;
|
||
font-size: 46rpx;
|
||
color: #000;
|
||
padding: 300rpx 0 120rpx 0;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.t-login .t-c {
|
||
position: absolute;
|
||
right: 22rpx;
|
||
top: 22rpx;
|
||
background: #5677fc;
|
||
color: #fff;
|
||
font-size: 24rpx;
|
||
border-radius: 50rpx;
|
||
height: 50rpx;
|
||
line-height: 50rpx;
|
||
padding: 0 25rpx;
|
||
}
|
||
|
||
.t-login .t-d {
|
||
text-align: center;
|
||
color: #999;
|
||
margin: 80rpx 0;
|
||
}
|
||
|
||
.t-login .t-e {
|
||
text-align: center;
|
||
width: 250rpx;
|
||
margin: 80rpx auto 0;
|
||
}
|
||
|
||
.t-login .t-g {
|
||
float: left;
|
||
width: 50%;
|
||
}
|
||
|
||
.t-login .t-e image {
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
}
|
||
|
||
.t-login .uni-input-placeholder {
|
||
color: #000;
|
||
}
|
||
|
||
.cl {
|
||
zoom: 1;
|
||
}
|
||
|
||
.cl:after {
|
||
clear: both;
|
||
display: block;
|
||
visibility: hidden;
|
||
height: 0;
|
||
content: '\20';
|
||
}
|
||
</style>
|