add avatar to kit

This commit is contained in:
kandrusyak
2022-10-27 18:25:03 +03:00
parent 444f144d33
commit 3869a64888
4 changed files with 69 additions and 6 deletions

View File

@@ -1,7 +1,8 @@
<template lang="pug"> <template lang="pug">
.change-person-wrapper(:class="openOptions") .change-person-wrapper(:class="openOptions")
.header.flex.items-center.pl-1.pr-2 .header.flex.items-center.pl-1.pr-2
img.img-wrapper.mr-2(:src="info.avatarSrc" alt="Charge person avatar") BaseAvatar(:size="32").mr-6px
img(:src="info.avatarSrc" alt="Charge person avatar")
span.font-bold.text-sm.mr-6px {{ info.name }} span.font-bold.text-sm.mr-6px {{ info.name }}
.dot.mr-4 .dot.mr-4
.icon-wrapper.icon-down-arrow.flex.items-center.justify-center.text-xxs.cursor-pointer(@click="changeState") .icon-wrapper.icon-down-arrow.flex.items-center.justify-center.text-xxs.cursor-pointer(@click="changeState")
@@ -18,8 +19,10 @@
</template> </template>
<script> <script>
import BaseAvatar from "@/components/base/BaseAvatar";
export default { export default {
name: "HeaderActiveClientPanel", name: "HeaderActiveClientPanel",
components: { BaseAvatar },
props: { props: {
info: Object, info: Object,
}, },

View File

@@ -10,7 +10,8 @@
button.header-buttons.flex.justify-center.items-center.mr-8.p-0 button.header-buttons.flex.justify-center.items-center.mr-8.p-0
.icon-bell.text-xxl .icon-bell.text-xxl
.flex.justify-centflexer.items-center .flex.justify-centflexer.items-center
img.avatar-img.mr-2(:src="avatarSrc") BaseAvatar(:size="32").mr-2
img(:src="avatarSrc")
button.header-buttons button.header-buttons
.icon-down-arrow.text-xxs.flex.justify-center.items-center.p-0 .icon-down-arrow.text-xxs.flex.justify-center.items-center.p-0
</template> </template>
@@ -21,9 +22,15 @@ import chargePersonAvatar from "@/assets/images/charge-person-avatar.svg";
import HeaderInputs from "./HeaderInputs.vue"; import HeaderInputs from "./HeaderInputs.vue";
import HeaderActiveClientPanel from "./HeaderActiveClientPanel.vue"; import HeaderActiveClientPanel from "./HeaderActiveClientPanel.vue";
import HeaderAddClientButton from "./HeaderAddClientButton.vue"; import HeaderAddClientButton from "./HeaderAddClientButton.vue";
import BaseAvatar from "@/components/base/BaseAvatar";
export default { export default {
name: "TheHeader", name: "TheHeader",
components: { HeaderInputs, HeaderActiveClientPanel, HeaderAddClientButton }, components: {
BaseAvatar,
HeaderInputs,
HeaderActiveClientPanel,
HeaderAddClientButton,
},
data() { data() {
return { return {
avatarSrc: img, avatarSrc: img,

View File

@@ -0,0 +1,53 @@
<template lang="pug">
.base-avatar(:style="styles")
slot
</template>
<script>
export default {
name: "BaseAvatar",
props: {
size: {
type: Number,
size: 32,
},
color: {
type: String,
default: "#D3D4DC",
},
},
computed: {
styles() {
return {
width: this.size + "px",
height: this.size + "px",
minWidth: this.size + "px",
backgroundColor: this.color,
};
},
},
};
</script>
<style scoped lang="sass">
.base-avatar
align-items: center
border-radius: 50%
display: inline-flex
justify-content: center
line-height: normal
position: relative
text-align: center
vertical-align: middle
overflow: hidden
color: var(--font-dark-blue-color)
text-transform: uppercase
img,
svg
border-radius: inherit
display: inline-flex
height: inherit
width: inherit
</style>

View File

@@ -1,16 +1,16 @@
<template lang="pug"> <template lang="pug">
.flex.box-border.px-4.items-center.gap-x-3.w-full.text-sm(:style="{ minWidth : width + 'px' }") .flex.box-border.px-4.items-center.gap-x-3.w-full.text-sm(:style="{ minWidth : width + 'px' }")
.flex.avatar.justify-center.items-center BaseAvatar(:size="36") {{avatar}}
span {{avatar}}
span.font-semibold(v-if="!isOpenChange") {{value.fullName}} span.font-semibold(v-if="!isOpenChange") {{value.fullName}}
base-input(v-if="isOpenChange" type="text" v-model:value="value.fullName" :width-input="300") base-input(v-if="isOpenChange" type="text" v-model:value="value.fullName" :width-input="300")
</template> </template>
<script> <script>
import BaseInput from "@/components/base/BaseInput"; import BaseInput from "@/components/base/BaseInput";
import BaseAvatar from "@/components/base/BaseAvatar";
export default { export default {
name: "TableCellBodyName", name: "TableCellBodyName",
components: { BaseInput }, components: { BaseAvatar, BaseInput },
props: { props: {
value: Object, value: Object,
avatar: String, avatar: String,