first commit
This commit is contained in:
254
pages/me/mobile.vue
Normal file
254
pages/me/mobile.vue
Normal file
@@ -0,0 +1,254 @@
|
||||
<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="number" placeholder="请输入原手机号" maxlength="11" v-model="form.old_mobile" />
|
||||
</view>
|
||||
<view class="t-a">
|
||||
<image src="@/static/yz.png"></image>
|
||||
<input type="number" name="code" maxlength="6" placeholder="请输入验证码" v-model="form.old_code" />
|
||||
<view v-if="showTextOld" class="t-c" @click="getCode('old', form.old_mobile)">发送短信</view>
|
||||
<view v-else class="t-c" style="background-color: #a7a7a7">重新发送({{ secondOld }})</view>
|
||||
</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/sj.png"></image>
|
||||
<input type="number" placeholder="请输入新手机号" maxlength="11" v-model="form.new_mobile" />
|
||||
</view>
|
||||
<view class="t-a">
|
||||
<image src="@/static/yz.png"></image>
|
||||
<input type="number" name="code" maxlength="6" placeholder="请输入验证码" v-model="form.new_code" />
|
||||
<view v-if="showTextNew" class="t-c" @click="getCode('new', form.new_mobile)">发送短信</view>
|
||||
<view v-else class="t-c" style="background-color: #a7a7a7">重新发送({{ secondNew }})</view>
|
||||
</view>
|
||||
</form>
|
||||
<button class="b_register" @tap="register()">完 成</button>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
check: [],
|
||||
title: '修改手机号!', //填写logo或者app名称,也可以用:欢迎回来,看您需求
|
||||
secondOld: 60, //默认60秒
|
||||
secondNew: 60, //默认60秒
|
||||
showTextOld: true, //判断短信是否发送
|
||||
showTextNew: true, //判断短信是否发送
|
||||
form: {
|
||||
new_mobile: '',
|
||||
new_code: '',
|
||||
old_code: '',
|
||||
old_mobile: '',
|
||||
password: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
onLoad() {},
|
||||
methods: {
|
||||
login() {
|
||||
uni.navigateBack();
|
||||
},
|
||||
register() {
|
||||
if (!this.form.old_mobile) return uni.showToast({ title: '请输入原手机号', icon: 'none' });
|
||||
if (!this.form.old_code) return uni.showToast({ title: '请输入原手机号验证码', icon: 'none' });
|
||||
if (!this.form.password) return uni.showToast({ title: '请输入密码', icon: 'none' });
|
||||
if (!this.form.new_mobile) return uni.showToast({ title: '请输入新手机号', icon: 'none' });
|
||||
if (!this.form.new_code) return uni.showToast({ title: '请输入新手机号验证码', icon: 'none' });
|
||||
this.$http.post('/shop/v10/user/mobile', this.form).then((res) => {
|
||||
if (res.code == 0) {
|
||||
uni.navigateBack({
|
||||
delta: 2,
|
||||
complete: () => {
|
||||
setTimeout(() => {
|
||||
this.$store.commit('auth/resetUser');
|
||||
this.$store.commit('auth/resetToken');
|
||||
uni.navigateTo({
|
||||
url: `/pages/me/login`
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//获取短信验证码
|
||||
getCode(type, phone) {
|
||||
var that = this;
|
||||
var second = type == 'old' ? 'secondOld' : 'secondNew';
|
||||
var showText = type == 'old' ? 'showTextOld' : 'showTextNew';
|
||||
if (!phone) return uni.showToast({ title: '请输入手机号', icon: 'none' });
|
||||
if (phone.length != 11) return uni.showToast({ title: '请输入正确的手机号', icon: 'none' });
|
||||
|
||||
var interval = setInterval(() => {
|
||||
that[showText] = false;
|
||||
var times = that[second] - 1;
|
||||
that[second] = times;
|
||||
}, 1000);
|
||||
setTimeout(() => {
|
||||
clearInterval(interval);
|
||||
that[second] = 60;
|
||||
that[showText] = true;
|
||||
}, 60000);
|
||||
//这里请求后台获取短信验证码
|
||||
uni.showLoading({
|
||||
title: '正在获取验证码'
|
||||
});
|
||||
this.$http
|
||||
.get('/com/sms/sendcode', {
|
||||
mobile: phone
|
||||
})
|
||||
.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>
|
||||
Reference in New Issue
Block a user