* Add register function. * Add register function. Co-authored-by: Longbao Ye <yelongbao@126.com>
This commit is contained in:
@@ -59,6 +59,13 @@ export function authProfile(data) {
|
||||
})
|
||||
}
|
||||
const AuthRegister='wx/auth/register'; //账号注册
|
||||
export function authRegister(data) {
|
||||
return request({
|
||||
url: AuthRegister,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
const AuthReset='wx/auth/reset'; //账号密码重置
|
||||
export function authReset(data) {
|
||||
return request({
|
||||
|
||||
@@ -10,8 +10,9 @@ export default [
|
||||
component: () => import('@/views/login/register-getCode')
|
||||
},
|
||||
{
|
||||
path: '/login/registerSubmit',
|
||||
path: '/login/registerSubmit/:phone',
|
||||
name: 'registerSubmit',
|
||||
props: true,
|
||||
component: () => import('@/views/login/register-submit')
|
||||
},
|
||||
{
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<script>
|
||||
import field from '@/components/field/';
|
||||
import fieldGroup from '@/components/field-group/';
|
||||
import { mobileReg } from '@/utils/validate';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
@@ -30,7 +31,21 @@ export default {
|
||||
|
||||
methods: {
|
||||
submitCode() {
|
||||
this.$router.push({ name: 'registerSubmit' });
|
||||
if(this.mobile === ''){
|
||||
return
|
||||
}
|
||||
if(!mobileReg.test(this.mobile)){
|
||||
this.mobile = ''
|
||||
return
|
||||
}
|
||||
try {
|
||||
this.$router.push({
|
||||
name: 'registerSubmit',
|
||||
params: { phone: this.mobile}
|
||||
});
|
||||
} catch (error) {
|
||||
console.log(error.message);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -5,39 +5,63 @@
|
||||
<div>{{statusText}}</div>
|
||||
</div>
|
||||
|
||||
<div class="status_text"><span class="red">3秒</span>后返回到登录页, 您也可以<router-link to="/login" class="red">点此登录</router-link></div>
|
||||
<div class="status_text">
|
||||
<span class="red">
|
||||
<countdown v-if="counting" :time="3000" @end="countDownEnd">
|
||||
<template slot-scope="props">{{ +props.seconds || 3 }}</template>秒
|
||||
</countdown>
|
||||
</span>
|
||||
后返回到登录页, 您也可以
|
||||
<router-link to="/login" class="red">点此登录</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import field from '@/components/field/';
|
||||
import fieldGroup from '@/components/field-group/';
|
||||
|
||||
export default {
|
||||
name: 'payment-status',
|
||||
name: 'payment-status',
|
||||
|
||||
props: {
|
||||
status: String
|
||||
},
|
||||
props: {
|
||||
status: String
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
isSuccess: true
|
||||
};
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
counting: true,
|
||||
isSuccess: true
|
||||
};
|
||||
},
|
||||
|
||||
computed: {
|
||||
statusText() {
|
||||
return this.isSuccess ? '注册成功' : '注册失败';
|
||||
},
|
||||
statusIcon() {
|
||||
return this.isSuccess ? 'checked' : 'fail';
|
||||
},
|
||||
statusClass() {
|
||||
return this.isSuccess ? 'success_icon' : 'fail_icon';
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
countDownEnd() {
|
||||
this.counting = false;
|
||||
window.location = '#/login/';
|
||||
}
|
||||
},
|
||||
|
||||
activated() {
|
||||
this.isSuccess = this.status === 'success';
|
||||
}
|
||||
computed: {
|
||||
statusText() {
|
||||
return this.isSuccess ? '注册成功' : '注册失败';
|
||||
},
|
||||
statusIcon() {
|
||||
return this.isSuccess ? 'checked' : 'fail';
|
||||
},
|
||||
statusClass() {
|
||||
return this.isSuccess ? 'success_icon' : 'fail_icon';
|
||||
}
|
||||
},
|
||||
|
||||
activated() {
|
||||
this.isSuccess = this.status === 'success';
|
||||
},
|
||||
|
||||
components: {
|
||||
[field.name]: field,
|
||||
[fieldGroup.name]: fieldGroup
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
<md-field-group class="register_submit">
|
||||
<md-field v-model="code" icon="mobile" placeholder="请输入验证码">
|
||||
<div slot="rightIcon" @click="getCode" class="getCode red">
|
||||
<countdown v-if="counting" :time="60000" @end="countdownend">
|
||||
<countdown v-if="counting" :time="60000" @end="countDownEnd">
|
||||
<template slot-scope="props">{{ +props.seconds || 60 }}秒后获取</template>
|
||||
</countdown>
|
||||
<span v-else>获取验证码</span>
|
||||
</div>
|
||||
</md-field>
|
||||
<md-field v-model="username" icon="username" placeholder="请输入用户名"/>
|
||||
<md-field v-model="password" icon="lock" placeholder="请输入密码"/>
|
||||
<md-field v-model="repeatPassword" icon="lock" placeholder="请再次确认密码"/>
|
||||
|
||||
@@ -20,29 +21,83 @@
|
||||
<script>
|
||||
import field from '@/components/field/';
|
||||
import fieldGroup from '@/components/field-group/';
|
||||
import { authRegisterCaptcha } from '@/api/api';
|
||||
import { authRegister } from '@/api/api';
|
||||
import {Toast} from "vant";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
counting: true,
|
||||
code: '',
|
||||
password: '',
|
||||
repeatPassword: ''
|
||||
};
|
||||
},
|
||||
props: {
|
||||
phone: String
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
counting: true,
|
||||
code: '',
|
||||
username: '',
|
||||
password: '',
|
||||
repeatPassword: ''
|
||||
};
|
||||
},
|
||||
mounted:function(){
|
||||
this.getCode();
|
||||
},
|
||||
|
||||
methods: {
|
||||
registerSubmit() {
|
||||
this.$router.push({
|
||||
name: 'registerStatus',
|
||||
params: { status: 'success' }
|
||||
if(this.username === '' || this.code === ''){
|
||||
return
|
||||
}
|
||||
if(this.password === '' || this.repeatPassword === ''){
|
||||
return
|
||||
}
|
||||
if(this.password !== this.repeatPassword){
|
||||
this.password = ''
|
||||
this.repeatPassword = ''
|
||||
return
|
||||
}
|
||||
let data = this.getRegisterData();
|
||||
authRegister(data).then(res => {
|
||||
this.$router.push({
|
||||
name: 'registerStatus',
|
||||
params: { status: 'success' }
|
||||
});
|
||||
}).catch (error => {
|
||||
Toast.fail(error.data.errmsg);
|
||||
if (error.data.errno == 705) {
|
||||
window.location = '#/login/';
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getCode() {
|
||||
this.counting = true;
|
||||
let data = {
|
||||
mobile: this.phone
|
||||
};
|
||||
authRegisterCaptcha(data).then(res => {
|
||||
this.counting = true;
|
||||
}).catch(error => {
|
||||
alert(error.data.errmsg);
|
||||
this.counting = true;
|
||||
});
|
||||
},
|
||||
countdownend() {
|
||||
|
||||
getRegisterData() {
|
||||
const password = this.password;
|
||||
const code = this.code;
|
||||
const repeatPassword = this.repeatPassword;
|
||||
const mobile = this.phone;
|
||||
const username = this.username;
|
||||
return {
|
||||
code: code,
|
||||
username: username,
|
||||
password: password,
|
||||
repeatPassword: repeatPassword,
|
||||
mobile: mobile
|
||||
};
|
||||
},
|
||||
|
||||
countDownEnd() {
|
||||
this.counting = false;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -318,14 +318,13 @@ public class WxAuthController {
|
||||
|
||||
// token
|
||||
String token = UserTokenManager.generateToken(user.getId());
|
||||
|
||||
|
||||
Map<Object, Object> result = new HashMap<Object, Object>();
|
||||
result.put("token", token);
|
||||
result.put("userInfo", userInfo);
|
||||
return ResponseUtil.ok(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 请求验证码
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user