Files
houyi-uniapp/pages/me/logon.vue
PC-202306242200\Administrator 85b89ccea7 first commit
2026-03-28 23:27:25 +08:00

257 lines
6.3 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 type="text" placeholder="请输入用户名" maxlength="32" v-model="form.username" />
</view>
<view class="t-a">
<image src="/static/icon/pass.png"></image>
<input type="password" placeholder="请输入密码" maxlength="32" v-model="form.password" />
</view>
<view class="t-a">
<image src="/static/icon/yqs.png"></image>
<input type="text" placeholder="请输入邀请码" v-model="form.invite_code" />
</view>
<view class="t-a">
<image src="@/static/sj.png"></image>
<input type="number" placeholder="请输入手机号" maxlength="11" v-model="form.mobile" />
</view>
<view class="t-a">
<image src="@/static/yz.png"></image>
<input type="number" name="code" maxlength="6" placeholder="请输入验证码" v-model="form.code" />
<view v-if="showText" class="t-c" @click="getCode()">发送短信</view>
<view v-else class="t-c" style="background-color: #a7a7a7">重新发送({{ second }})</view>
</view>
</form>
<view class="u-flex u-flex-xy-center" style="font-size: 26rpx; font-weight: 800; width: 650rpx; margin-left: -25rpx; margin-bottom: 20rpx">
<u-checkbox-group v-model="check" shape="square">
<u-checkbox labelSize="28rpx" label="我已阅读并同意" :name="1"></u-checkbox>
</u-checkbox-group>
<navigator url="/pages/policy/user" style="color: dodgerblue" open-type="navigate">用户注册服务协议</navigator>
<navigator url="/pages/policy/privacy" style="color: dodgerblue" open-type="navigate">隐私政策</navigator>
</view>
<button class="b_register" @tap="register()"> </button>
<button class="b_login" @tap="login()"> </button>
</view>
</template>
<script>
export default {
data() {
return {
check: [],
title: '欢迎回来!', //填写logo或者app名称也可以用欢迎回来看您需求
second: 60, //默认60秒
showText: true, //判断短信是否发送
form: {
username: '',
password: '',
mobile: '',
code: '',
invite_code: ''
}
};
},
onLoad(option) {
var self = this;
if (option && option.invite_code) {
self.form.invite_code = option.invite_code;
}
const invite_code = uni.getStorageSync('invite_code');
console.log(invite_code);
if (invite_code && invite_code != 'undefined') {
self.form.invite_code = invite_code;
} else {
self.form.invite_code = '';
}
},
methods: {
login() {
uni.navigateBack();
},
register() {
if (this.check.length < 1) return uni.showToast({ title: '请阅读并同意《用户注册服务协议》《隐私政策》', icon: 'none' });
if (!this.form.username) return uni.showToast({ title: '请输入用户名', icon: 'none' });
if (!this.form.password) return uni.showToast({ title: '请输入密码', icon: 'none' });
if (!this.form.invite_code) return uni.showToast({ title: '请输入邀请码', icon: 'none' });
if (!this.form.mobile) return uni.showToast({ title: '请输入手机号', icon: 'none' });
// if (!uni.$u.test.mobile(this.form.phone)) return uni.showToast({ title: '请输入正确的手机号', icon: 'none' });
if (!this.form.code) return uni.showToast({ title: '请输入验证码', icon: 'none' });
this.$http.get('/shop/v10/auth/logon', this.form).then((res) => {
if (res.success) {
uni.navigateBack();
}
});
},
//获取短信验证码
getCode() {
console.log(123456);
var that = this;
if (!this.form.mobile) return uni.showToast({ title: '请输入手机号', icon: 'none' });
var interval = setInterval(() => {
that.showText = false;
var times = that.second - 1;
//that.second = times<10?'0'+times:times ;//小于10秒补 0
that.second = times;
console.log(times);
}, 1000);
setTimeout(() => {
clearInterval(interval);
that.second = 60;
that.showText = true;
}, 60000);
//这里请求后台获取短信验证码
uni.showLoading({
title: '正在获取验证码'
});
this.$http.get('/com/sms/sendcode', this.form).then((res) => {
if (res.success) {
uni.hideLoading();
uni.$u.toast('验证码已发送有效期5分钟');
that.showText = false;
}
});
}
}
};
</script>
<style>
page {
background-color: #fff;
}
.img-a {
position: absolute;
width: 100%;
top: -280rpx;
right: -100rpx;
z-index: -1;
}
.img-b {
position: absolute;
width: 50%;
bottom: 0;
left: -50rpx;
z-index: -1;
}
.t-login {
width: 600rpx;
margin: 0 auto;
font-size: 28rpx;
color: #000;
}
.t-login .b_login {
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 .b_register {
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 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: 250rpx 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;
z-index: 999;
}
.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>