You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.0 KiB
80 lines
2.0 KiB
<template>
|
|
<div class="auth-page">
|
|
<div class="container page">
|
|
<div class="row">
|
|
<div class="col-md-6 offset-md-3 col-xs-12">
|
|
<h1 class="text-xs-center">Sign up</h1>
|
|
<p class="text-xs-center">
|
|
<router-link :to="{ name: 'login' }">
|
|
Have an account?
|
|
</router-link>
|
|
</p>
|
|
<ul v-if="errors" class="error-messages">
|
|
<li v-for="(v, k) in errors" :key="k">{{ k }} {{ v | error }}</li>
|
|
</ul>
|
|
<form @submit.prevent="onSubmit">
|
|
<fieldset class="form-group">
|
|
<input
|
|
class="form-control form-control-lg"
|
|
type="text"
|
|
v-model="username"
|
|
placeholder="Username"
|
|
/>
|
|
</fieldset>
|
|
<fieldset class="form-group">
|
|
<input
|
|
class="form-control form-control-lg"
|
|
type="text"
|
|
v-model="email"
|
|
placeholder="Email"
|
|
/>
|
|
</fieldset>
|
|
<fieldset class="form-group">
|
|
<input
|
|
class="form-control form-control-lg"
|
|
type="password"
|
|
v-model="password"
|
|
placeholder="Password"
|
|
/>
|
|
</fieldset>
|
|
<button class="btn btn-lg btn-primary pull-xs-right">
|
|
Sign up
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState } from "vuex";
|
|
import { REGISTER } from "@/store/actions.type";
|
|
|
|
export default {
|
|
name: "RwvRegister",
|
|
data() {
|
|
return {
|
|
username: "",
|
|
email: "",
|
|
password: ""
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState({
|
|
errors: state => state.auth.errors
|
|
})
|
|
},
|
|
methods: {
|
|
onSubmit() {
|
|
this.$store
|
|
.dispatch(REGISTER, {
|
|
email: this.email,
|
|
password: this.password,
|
|
username: this.username
|
|
})
|
|
.then(() => this.$router.push({ name: "home" }));
|
|
}
|
|
}
|
|
};
|
|
</script>
|