frontend/src/views/Register.vue
2023-11-22 15:08:28 +00:00

179 lines
No EOL
4.6 KiB
Vue

<template>
<v-app>
<top-bar :show-back-icon="true" :page-title="pageTitle" />
<v-main>
<div class="text-center mt-8 mb-16">
<div class="text-h4">
<div class="font-weight-bold">Little Lines</div>
</div>
<div>ระบบนำทางสำหร Micromobility</div>
</div>
<div class="mx-5">
<v-text-field
class="email"
v-model="input.email"
label="อีเมล"
variant="solo"
>
<template v-slot:append-inner>
<img
class="iconEdit"
:src="edit"
>
</template>
</v-text-field>
<v-text-field
class="password"
v-model="input.password"
label="รหัสผ่าน"
variant="solo"
>
<template v-slot:append-inner>
<img
class="iconEdit"
:src="edit"
>
<img
class="iconEyeNotLooking"
:src="eyeNotLooking"
>
</template>
</v-text-field>
<v-text-field
class="passwordC"
v-model="input.passwordConfirm"
label="ยืนยันรหัสผ่าน"
variant="solo"
>
<template v-slot:append-inner>
<img
class="iconEdit"
:src="edit"
>
<img
class="iconEyeNotLooking"
:src="eyeNotLooking"
>
</template>
</v-text-field>
</div>
<v-checkbox color="#F16322" class="check">
<template v-slot:label>
<div>นไดานและยอมร</div>
<a href="https://www.google.co.th/?hl=th" >นโยบายความเปนสวนต</a>
</template>
</v-checkbox>
<div class="button-register">
<v-btn @click.prevent="register" rounded="xl" variant="flat" class="text-white" width="45vw" height="44px" color="#f16322">
สมครสมาช</v-btn>
</div>
</v-main>
</v-app>
</template>
<script setup>
import edit from '../../icons/Material/edit.svg';
import eyeNotLooking from '../../icons/Material/eye-not-looking.svg';
</script>
<script>
import TopBar from '@/components/TopBar.vue';
export default {
components: {
TopBar
},
name: 'register',
data() {
return {
pageTitle: 'สมัครสมาชิก',
input: {
email: '',
password: '',
passwordConfirm:''
}
};
},
methods: {
register() {
if (this.input.username !== '' && ((this.input.password !='') && (this.input.password == this.input.passwordConfirm))) {
console.log('Authenticated: Checking with Backend');
fetch("https://little-lines-backend.techtransthai.org/api/users/create", {
method: "POST",
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: "temp",
password: this.input.password,
email: this.input.email,
isGoogleAccount: false
})
})
.then((res) => {
if(res.ok){
return res.json()
}
else{
return res.json().then(data => {throw Error(`${data.registerStatus}`) });
}
})
.then((data) => {
console.log(data.registerStatus)
this.$router.push({name : 'login'})
})
.catch((err) =>{
console.log(err)
})
console.log("fisnished fetch");
} else {
console.log('Email and Password cannot be empty');
}
}
},
};
</script>
<style>
.user {
background-color: aqua;
}
.email, .password {
margin-bottom: -21px;
}
.check {
display: flex;
justify-content:center;
padding-top: 5%;
padding-bottom: 5%;
}
.button-register {
margin: 0;
position: absolute;
left: 50%;
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
.iconEdit, .iconEyeNotLooking {
width: 25px;
height: 25px;
}
.iconEdit {
margin-right: 10px;
}
.iconEyeNotLooking {
margin-right: 10px;
margin-left: 10px;
}
</style>