73 lines
2.3 KiB
Vue
73 lines
2.3 KiB
Vue
<script setup>
|
|
import { ref } from 'vue';
|
|
import axios from 'axios';
|
|
const username = ref('');
|
|
const password = ref('');
|
|
|
|
|
|
async function onLoginClick() {
|
|
var login =
|
|
{
|
|
username: username.value,
|
|
password: password.value
|
|
};
|
|
try {
|
|
const response = await axios.post(`http://localhost:3001/login`, login);
|
|
console.log(response);
|
|
if (response.status === 200) {
|
|
localStorage.setItem('token', response.data.token);
|
|
}
|
|
}
|
|
catch (error) {
|
|
console.error(error);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
<template>
|
|
<div
|
|
class="surface-ground flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden">
|
|
<div class="flex flex-column align-items-center justify-content-center">
|
|
|
|
<div
|
|
style="border-radius: 56px; padding: 0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%)">
|
|
<div class="w-full surface-card py-8 px-5 sm:px-8" style="border-radius: 53px">
|
|
<div class="text-center mb-5">
|
|
<span class="text-600 font-medium">Log in to continue</span>
|
|
</div>
|
|
|
|
<div>
|
|
<label for="username1" class="block text-900 text-xl font-medium mb-2">Username</label>
|
|
<InputText id="username1" type="text" placeholder="Username" class="w-full md:w-30rem mb-5"
|
|
style="padding: 1rem" v-model="username" />
|
|
|
|
<label for="password1" class="block text-900 font-medium text-xl mb-2">Password</label>
|
|
<Password id="password1" v-model="password" placeholder="Password" :toggleMask="true"
|
|
class="w-full mb-3" inputClass="w-full" inputStyle="padding:1rem" :feedback="false">
|
|
</Password>
|
|
<router-link to="/home">
|
|
<Button label="Log In" class="w-full p-3 text-xl" @click="onLoginClick()"></Button>
|
|
</router-link>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.pi-eye {
|
|
transform: scale(1.6);
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.pi-eye-slash {
|
|
transform: scale(1.6);
|
|
margin-right: 1rem;
|
|
}
|
|
</style>
|