|
@@ -10,14 +10,15 @@
|
|
|
<view class="item ">
|
|
|
<text class="item-tip">验证码:</text>
|
|
|
<input placeholder="输入验证码" type="number" :value="code" @input="onCodeInput"></input>
|
|
|
- <text class="get-code gray" @tap="getCodeNumber">获取验证码</text>
|
|
|
+ <text v-if="show" class="get-code gray" @tap="getCodeNumber">获取验证码</text>
|
|
|
+ <text v-if="!show" class="get-code gray">{{count}} s</text>
|
|
|
</view>
|
|
|
<!-- </block> -->
|
|
|
</view>
|
|
|
|
|
|
<view class="btn-box">
|
|
|
- <text class="sure-btn gray">确定</text>
|
|
|
- <text class="sure-btn ">确定</text>
|
|
|
+ <text v-if="phonenum && code" class="sure-btn" @click="bindMobile">确定</text>
|
|
|
+ <text v-else class="sure-btn gray">确定</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
</template>
|
|
@@ -26,12 +27,17 @@
|
|
|
// pages/binding-phone/binding-phone.js
|
|
|
var http = require("../../utils/http.js");
|
|
|
var config = require("../../utils/config.js");
|
|
|
-
|
|
|
+import {
|
|
|
+ AppType
|
|
|
+} from "../../utils/constant.js";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
phonenum: '',
|
|
|
- code: ''
|
|
|
+ code: '',
|
|
|
+ show: true,
|
|
|
+ count: '',
|
|
|
+ timer: null
|
|
|
};
|
|
|
},
|
|
|
|
|
@@ -79,38 +85,74 @@ export default {
|
|
|
onShareAppMessage: function () {},
|
|
|
methods: {
|
|
|
getCodeNumber: function () {
|
|
|
- if (this.phoneNumber == "") {
|
|
|
+ if (!this.phonenum) {
|
|
|
uni.showToast({
|
|
|
title: '请输入手机号',
|
|
|
icon: "none"
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
var params = {
|
|
|
url: "/p/sms/send",
|
|
|
method: "POST",
|
|
|
data: {// phonenum: this.data.phonenum,
|
|
|
// code: this.data.code
|
|
|
+ mobile: this.phonenum
|
|
|
},
|
|
|
callBack: res => {
|
|
|
- this.setData({
|
|
|
- phonenum: this.phonenum,
|
|
|
- code: this.code
|
|
|
- });
|
|
|
+ const timeCount = 60;
|
|
|
+ if (!this.timer) {
|
|
|
+ this.count = timeCount
|
|
|
+ this.show = false;
|
|
|
+ this.timer = setInterval(() => {
|
|
|
+ if (this.count > 0 && this.count <= timeCount) {
|
|
|
+ this.count--;
|
|
|
+ } else {
|
|
|
+ clearInterval(this.timer);
|
|
|
+ this.timer = null,
|
|
|
+ this.show = true
|
|
|
+ }
|
|
|
+ }, 1000)
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
http.request(params);
|
|
|
},
|
|
|
onPhoneInput: function (e) {
|
|
|
+ console.log('e.detail.value:', e.detail.value)
|
|
|
this.setData({
|
|
|
phonenum: e.detail.value
|
|
|
});
|
|
|
+ console.log('phonenum:', this.phonenum)
|
|
|
},
|
|
|
onCodeInput: function (e) {
|
|
|
this.setData({
|
|
|
code: e.detail.value
|
|
|
});
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绑定
|
|
|
+ */
|
|
|
+ bindMobile() {
|
|
|
+ var params = {
|
|
|
+ url: '/user/registerOrBindUser',
|
|
|
+ method: 'PUT',
|
|
|
+ data: {
|
|
|
+ appType: AppType.MP,
|
|
|
+ mobile: this.phonenum,
|
|
|
+ validCode: this.code,
|
|
|
+ validateType: 1, // 验证类型:1验证码验证 ,
|
|
|
+ registerOrBind: 2 // 验证类型 1注册 2绑定
|
|
|
+ },
|
|
|
+ callBack: res => {
|
|
|
+ http.loginSuccess(res)
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/index/index'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ }
|
|
|
+ http.request(params)
|
|
|
}
|
|
|
}
|
|
|
};
|