source: ReserveNGo-frontend/src/components/Project/register_.vue@ 2a2614e

Last change on this file since 2a2614e was 2a2614e, checked in by Ljubomir Ilievski <ilievski.ljubomir@…>, 3 months ago

Celosno funkcionalna logika na login/register/logout

  • Property mode set to 100644
File size: 3.4 KB
Line 
1<script>
2
3
4import { userStore } from '@/PiniaStores/UserStore.js'
5import {useRouter} from 'vue-router'
6import router from '@/router/index.js'
7
8export default {
9 data() {
10 return {
11 path: '',
12 url: 'http://localhost:8080/api/auth/register/',
13
14 form_info:{
15 firstName: '',
16 lastName: '',
17 email: '',
18 password: '',
19 phoneNumber: '',
20
21 },
22 /* data: {
23 id: 0,
24 firstName: "",
25 lastName: "",
26 email: "",
27 phoneNumber: "",
28 role: "",
29 token: ""
30 },*/
31 userStore_: userStore(),
32 router: useRouter()
33
34 }
35 },
36
37 methods: {
38 async register() {
39 await fetch(this.wholeUrl, {
40 method: 'POST',
41 headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
42 body: new URLSearchParams({
43 firstName: this.form_info.firstName,
44 lastName: this.form_info.lastName,
45 email: this.form_info.email,
46 password: this.form_info.password,
47 phoneNumber: this.form_info.phoneNumber})
48 }).then((response) => response.json())
49 .then((json) => {this.userStore_.setLocalStorage(json);
50 router.push('/')})
51 //console.log("Data received:", this.data);
52 //this.userStore_.setLocalStorage(json)
53 //console.log(json)
54
55 //console.log(this.userStore_.data)
56 }
57
58 },
59 computed: {
60 wholeUrl(){
61 return this.url+this.path;
62 },
63 testJson(){
64 return JSON.stringify({
65 firstName: this.form_info.firstName,
66 lastName: this.form_info.lastName,
67 email: this.form_info.email,
68 password: this.form_info.password,
69 phoneNumber: this.form_info.phoneNumber})
70 }
71 }
72
73
74}
75
76
77
78</script>
79
80<template>
81 <div class="container-xxl">
82 <div class="row justify-content-center">
83
84<!-- <form @submit.prevent="register" method="POST">-->
85<!-- <form v-bind:action="wholeUrl" method="POST">-->
86
87 <div class="col-3">
88 <form @submit.prevent="register" method="POST">
89 <label for="name" class="form-label" >Name</label>
90 <input v-model="this.form_info.firstName" type="text" id="name" name="firstName" class="form-control" placeholder="Name" required>
91
92 <label for="surname" class="form-label">Surname</label>
93 <input v-model="form_info.lastName" type="text" id="surname" name="lastName" class="form-control" placeholder="Surname" required>
94
95 <label for="phone_number" class="form-label">Phone Number</label>
96 <input v-model="form_info.phoneNumber" type="text" id="phone_number" name="phoneNumber" class="form-control" required>
97
98 <label for="email" class="form-label">Email Address</label>
99 <input v-model="form_info.email" type="email" id="email" name="email" class="form-control" placeholder="someone@example.com" required>
100
101 <label for="password" class="form-label">Password</label>
102 <input v-model="form_info.password" type="password" id="password" name="password" class="form-control">
103
104 <label for="role" class="form-label">Role</label>
105 <select class="form-control" id="role" v-model="path">
106
107 <option value="customer">Customer</option>
108
109 <option value="local-worker">Local Worker</option>
110
111 <option value="local-manager">Local Manager</option>
112
113 </select>
114
115 <button type="submit" class="btn btn-dark">Register</button>
116 </form>
117 </div>
118
119 </div>
120
121
122 </div>
123
124</template>
125
126<style scoped>
127
128</style>
Note: See TracBrowser for help on using the repository browser.