150 lines
3.7 KiB
Vue
150 lines
3.7 KiB
Vue
<template lang="pug">
|
|
.header-wrapper.relative.flex.justify-center.box-border.py-2.pl-4_75px.pr-6
|
|
transition(name="form")
|
|
base-client-form-create(
|
|
v-if="isOpenForm",
|
|
:close-form="closeForm",
|
|
:set-updated-clients="setUpdatedClients",
|
|
:write-created-client-id="writeCreatedClientId",
|
|
)
|
|
.flex.items-center.box-border.cursor-pointer.mr-auto
|
|
img.logo-img.mr-29_25px(src="@/assets/images/logo.svg", alt="Logo")
|
|
header-inputs
|
|
//- .charge-person-container
|
|
//- header-active-client-panel(:info="chargePersonInfo")
|
|
.flex.ml-auto
|
|
base-button.mr-9(
|
|
left-icon="icon-plus",
|
|
:icon-left-size="10",
|
|
:size="40",
|
|
right-icon="icon-person",
|
|
:icon-right-size="18",
|
|
@click="openForm"
|
|
)
|
|
button.header-buttons.flex.justify-center.items-center.mr-8.p-0
|
|
.icon-bell.text-xxl
|
|
.flex.justify-centflexer.items-center.relative
|
|
base-avatar.mr-2(:size="36", :color="userData.color", v-if="!userData.photo") {{changeName}}
|
|
base-avatar.mr-2(:size="32", v-else)
|
|
img.h-full.object-cover(:src="url + userData.photo", alt="Avatar")
|
|
button.header-buttons(@click="openPopup")
|
|
.icon-down-arrow.text-xxs.flex.justify-center.items-center.p-0
|
|
base-popup.right-2.top-10(
|
|
corner,
|
|
v-if="showPopup",
|
|
:width="160",
|
|
v-click-outside="openPopup"
|
|
)
|
|
.text-popup.flex.cursor-pointer.pl-2(@click="logout") Выйти
|
|
</template>
|
|
|
|
<script>
|
|
import img from "@/assets/images/avatar.svg";
|
|
import chargePersonAvatar from "@/assets/images/charge-person-avatar.svg";
|
|
import HeaderInputs from "./HeaderInputs.vue";
|
|
import BaseAvatar from "@/components/base/BaseAvatar";
|
|
import BaseButton from "@/components/base/BaseButton.vue";
|
|
import BasePopup from "@/components/base/BasePopup.vue";
|
|
import BaseClientFormCreate from "@/components/base/BaseClientFormCreate";
|
|
export default {
|
|
name: "TheHeader",
|
|
components: {
|
|
HeaderInputs,
|
|
BaseAvatar,
|
|
BaseButton,
|
|
BasePopup,
|
|
BaseClientFormCreate,
|
|
},
|
|
props: {
|
|
url: String,
|
|
openForm: Function,
|
|
closeForm: Function,
|
|
isOpenForm: Boolean,
|
|
setUpdatedClients: Function,
|
|
writeCreatedClientId: Function,
|
|
},
|
|
data() {
|
|
return {
|
|
avatarSrc: img,
|
|
chargePersonInfo: {
|
|
avatarSrc: chargePersonAvatar,
|
|
name: "Гордеев Николай Степанович",
|
|
},
|
|
showPopup: false,
|
|
userData: JSON.parse(localStorage.getItem("userData")),
|
|
};
|
|
},
|
|
computed: {
|
|
changeName() {
|
|
return `${this.userData.last_name || ""} ${
|
|
this.userData.first_name || ""
|
|
} ${this.userData.patronymic || ""}`;
|
|
},
|
|
},
|
|
methods: {
|
|
logout() {
|
|
localStorage.removeItem("tokenAccess");
|
|
this.$router.push("/login");
|
|
},
|
|
openPopup() {
|
|
this.showPopup = !this.showPopup;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="sass" scoped>
|
|
.form-enter-from
|
|
opacity: 0
|
|
transform: translateY(300px)
|
|
pointer-events: none
|
|
|
|
.form-enter-active
|
|
transition: 0.5s ease
|
|
|
|
.form-leave-to
|
|
opacity: 0
|
|
transform: translateY(300px)
|
|
pointer-events: none
|
|
|
|
.form-leave-active
|
|
transition: 0.5s ease
|
|
|
|
.form-move
|
|
transition: 0.5s ease
|
|
|
|
.header-buttons
|
|
outline: none
|
|
border: none
|
|
background-color: transparent
|
|
color: var(--font-dark-blue-color)
|
|
|
|
.header-wrapper
|
|
width: 100%
|
|
height: 56px
|
|
background-color: var(--default-white)
|
|
position: relative
|
|
z-index: 11
|
|
|
|
.logo-img
|
|
height: 32px
|
|
width: 70px
|
|
|
|
.icon-down-arrow
|
|
width: 24px
|
|
height: 24px
|
|
|
|
.icon-bell
|
|
width: 24px
|
|
height: 24px
|
|
color: var(--font-dark-blue-color)
|
|
|
|
.charge-person-container
|
|
position: absolute
|
|
|
|
.text-popup
|
|
color: var(--btn-blue-color)
|
|
&:hover
|
|
opacity: 0.8
|
|
</style>
|