ProfilePage.vue 3.39 KiB
<template>
<div class="form_wrapper">
<div class="form_container">
<div class="title_container">
<h2>Profile</h2>
<div class="underline-title"></div>
</div>
<div class="row clearfix">
<div class="">
<div class="form">
<div class="profile-label">
<div> Username</div>
<div>{{profile.username}} </div>
</div>
<div class="form-border"></div>
<div class="profile-label">
<div> Email</div>
<div>{{profile.email}} </div>
</div>
<div class="form-border"></div>
<div class="profile-label">
<div> First Name</div>
<div>{{profile.firstName}} </div>
</div>
<div class="form-border"></div>
<div class="profile-label">
<div> Last Name</div>
<div>{{profile.lastName}} </div>
</div>
<div class="form-border"></div>
<button id="submit-btn" @click.prevent="onClickResetPassword" type="submit" value="Submit">
Reset Password
</button>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from "vue";
import { useRouter } from "vue-router";
import {getProfile} from "../services/UserService";
const router = useRouter();
const profile = reactive({
username: "",
email: "",
firstName: "",
lastName: "",
});
onMounted(async () => {
await getProfile()
.then((response) => {
if (response.status == "OK") {
const data = response.data
profile.username = data["username"]
profile.email = data["email"]
profile.firstName = data["firstName"]
profile.lastName = data["lastName"]
} else {
alert(response.message)
}
})
})
const onClickResetPassword = () => {
router.push("/resetpassword");
};
</script>
<style scoped>
body {
font-family: Verdana, Geneva, sans-serif;
font-size: 14px;
background: #f2f2f2;
}
.form_wrapper {
justify-content: center;
align-items: center;
display: flex;
}
.form_container {
background: #fbfbfb;
border-radius: 8px;
box-shadow: 1px 2px 8px rgba(0, 0, 0, 0.65);
height: auto;
width: 30%;
padding: 12px 44px;
}
.title_container {
font-family: "Raleway Thin", sans-serif;
letter-spacing: 4px;
padding-bottom: 23px;
padding-top: 13px;
text-align: center;
}
.form {
align-items: left;
display: flex;
flex-direction: column;
}
.form-content {
background: #fbfbfb;
border: none;
outline: none;
padding-top: 14px;
}
.form-border {
background: #2ec06f;
height: 1px;
width: 100%;
}
.profile-label {
padding-top: 13px;
display: flex;
flex-direction: row;
justify-content: space-between;
}
#submit-btn {
background: #2ec06f;
border: none;
border-radius: 21px;
box-shadow: 0px 1px 8px #24c64f;
cursor: pointer;
color: white;
font-family: "Raleway SemiBold", sans-serif;
height: 42.3px;
margin: 0 auto;
margin-top: 50px;
transition: 0.25s;
width: 153px;
}
#submit-btn:hover {
box-shadow: 0px 1px 18px #24c64f;
}
.underline-title {
background: -webkit-linear-gradient(right, #a6f77b, #2ec06f);
height: 2px;
margin: -1.1rem auto 0 auto;
width: 200px;
}
.input_field radio_option {
margin-top: 10px;
}
</style>