mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 19:21:27 +03:30
184 lines
3.8 KiB
Vue
184 lines
3.8 KiB
Vue
<template>
|
|
<v-navigation-drawer
|
|
id="app-drawer"
|
|
v-model="inputValue"
|
|
app
|
|
dark
|
|
floating
|
|
persistent
|
|
mobile-break-point="991"
|
|
width="260"
|
|
>
|
|
<v-img
|
|
:src="image"
|
|
height="100%"
|
|
>
|
|
<v-layout
|
|
class="fill-height"
|
|
tag="v-list"
|
|
column
|
|
>
|
|
<v-list-tile avatar>
|
|
<v-list-tile-avatar
|
|
color="white"
|
|
>
|
|
<!-- <v-img
|
|
:src="logo"
|
|
height="34"
|
|
contain
|
|
/> -->
|
|
</v-list-tile-avatar>
|
|
<v-list-tile-title class="title">
|
|
{{ $store.state.user.name }}
|
|
</v-list-tile-title>
|
|
</v-list-tile>
|
|
<v-divider/>
|
|
<v-list-tile
|
|
v-if="responsive"
|
|
>
|
|
<v-text-field
|
|
class="purple-input search-input"
|
|
label="Search..."
|
|
color="purple"
|
|
/>
|
|
</v-list-tile>
|
|
<v-list-tile
|
|
v-for="(link, i) in links"
|
|
:key="i"
|
|
:to="link.to"
|
|
:active-class="color"
|
|
avatar
|
|
class="v-list-item"
|
|
>
|
|
<v-list-tile-action>
|
|
<v-icon>{{ link.icon }}</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-title
|
|
v-text="link.text"
|
|
/>
|
|
</v-list-tile>
|
|
<!-- <v-list-tile
|
|
disabled
|
|
active-class="primary"
|
|
class="v-list-item v-list__tile--buy"
|
|
to="/upgrade"
|
|
>
|
|
<v-list-tile-action>
|
|
<v-icon>mdi-package-up</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-title class="font-weight-light">
|
|
Upgrade To PRO
|
|
</v-list-tile-title>
|
|
</v-list-tile> -->
|
|
</v-layout>
|
|
</v-img>
|
|
</v-navigation-drawer>
|
|
</template>
|
|
|
|
<script>
|
|
// Utilities
|
|
import {
|
|
mapMutations,
|
|
mapState
|
|
} from 'vuex'
|
|
|
|
export default {
|
|
data: () => ({
|
|
logo: './img/vuetifylogo.png',
|
|
links: [
|
|
{
|
|
to: {name: 'Dashboard'},
|
|
icon: 'mdi-view-dashboard',
|
|
text: 'Dashboard'
|
|
},
|
|
{
|
|
to: {name: 'MyInfo'},
|
|
icon: 'mdi-account',
|
|
text: 'My Info'
|
|
},
|
|
{
|
|
to: {name: 'AllResultTest'},
|
|
icon: 'description',
|
|
text: 'All Test Result'
|
|
},
|
|
{
|
|
to: {name: 'ManageUsers'},
|
|
icon: 'far fa-address-book',
|
|
text: 'Manage Users'
|
|
},
|
|
{
|
|
to: {name: 'ListTestType'},
|
|
icon: 'fas fa-vial',
|
|
text: 'List Test Type'
|
|
},
|
|
{
|
|
to: {name: 'SubmitTestResult'},
|
|
icon: 'done',
|
|
text: 'Submit Test Result'
|
|
},
|
|
{
|
|
to: {name: 'Statistics'},
|
|
icon: 'fas fa-chart-bar',
|
|
text: 'Statistics'
|
|
},
|
|
],
|
|
responsive: false
|
|
}),
|
|
computed: {
|
|
...mapState('app', ['image', 'color']),
|
|
inputValue: {
|
|
get () {
|
|
return this.$store.state.app.drawer
|
|
},
|
|
set (val) {
|
|
this.setDrawer(val)
|
|
}
|
|
},
|
|
items () {
|
|
return this.$t('Layout.View.items')
|
|
}
|
|
},
|
|
mounted () {
|
|
this.onResponsiveInverted()
|
|
window.addEventListener('resize', this.onResponsiveInverted)
|
|
},
|
|
beforeDestroy () {
|
|
window.removeEventListener('resize', this.onResponsiveInverted)
|
|
},
|
|
methods: {
|
|
...mapMutations('app', ['setDrawer', 'toggleDrawer']),
|
|
onResponsiveInverted () {
|
|
if (window.innerWidth < 991) {
|
|
this.responsive = true
|
|
} else {
|
|
this.responsive = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
#app-drawer {
|
|
.v-list__tile {
|
|
border-radius: 4px;
|
|
|
|
&--buy {
|
|
margin-top: auto;
|
|
margin-bottom: 17px;
|
|
}
|
|
}
|
|
|
|
.v-image__image--contain {
|
|
top: 9px;
|
|
height: 60%;
|
|
}
|
|
|
|
.search-input {
|
|
margin-bottom: 30px !important;
|
|
padding-left: 15px;
|
|
padding-right: 15px;
|
|
}
|
|
}
|
|
</style>
|