web/buyer/src/pages/signUp/InputInfo.vue
2021-05-13 10:56:04 +08:00

93 lines
3.0 KiB
Vue

<template>
<div class="info-form">
<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80" >
<FormItem label="用户名" prop="name">
<i-input v-model="formValidate.name" clearable size="large" placeholder="请输入你的姓名"></i-input>
</FormItem>
<FormItem label="邮箱" prop="mail">
<i-input v-model="formValidate.mail" clearable size="large" placeholder="请输入你的邮箱"></i-input>
</FormItem>
<FormItem label="密码" prop="password">
<i-input type="password" v-model="formValidate.password" clearable size="large" placeholder="请输入你的密码"></i-input>
</FormItem>
<FormItem label="确认密码" prop="repassword">
<i-input type="password" v-model="formValidate.repassword" clearable size="large" placeholder="请再次输入你的密码"></i-input>
</FormItem>
<Button type="error" size="large" long @click="handleSubmit('formValidate')">注册</Button>
</Form>
</div>
</template>
<script>
import store from '@/vuex/store';
import { mapMutations, mapActions } from 'vuex';
export default {
name: 'InputInfo',
data () {
const validatePassCheck = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.formValidate.password) {
callback(new Error('两次输入的密码不一样'));
} else {
callback();
}
};
return {
formValidate: {
name: '',
mail: '',
password: '',
repassword: ''
},
ruleValidate: {
name: [
{ required: true, message: '用户名不能为空', trigger: 'blur' }
],
mail: [
{ required: true, message: '邮箱不能为空', trigger: 'blur' },
{ type: 'email', message: '邮箱格式错误', trigger: 'blur' }
],
password: [
{ required: true, message: '密码不能为空', trigger: 'blur' },
{ type: 'string', min: 6, message: '密码长度不能小于6', trigger: 'blur' }
],
repassword: [
{ validator: validatePassCheck, trigger: 'blur' }
]
}
};
},
methods: {
...mapMutations(['SET_SIGN_UP_SETP']),
...mapActions(['addSignUpUser']),
handleSubmit (name) {
const father = this;
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('注册成功');
const userinfo = {
username: this.formValidate.name,
password: this.formValidate.password,
mail: this.formValidate.mail,
phone: this.$route.query.phone
};
this.addSignUpUser(userinfo);
father.SET_SIGN_UP_SETP(2);
this.$router.push({ path: '/SignUp/signUpDone' });
} else {
this.$Message.error('注册失败');
}
});
}
},
store
};
</script>
<style scoped>
.info-form {
width: 90% !important;
}
</style>