Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

App.js

Blame
  • Forked from YU SUN / react-list
    Source project has a limited visibility.
    Drawer.vue 3.57 KiB
    <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-snackbar
              v-model="logoutSnackbar"
              timeout = "2000"
              :top="true"
              color="cyan"
            >
              로그아웃 성공.
            </v-snackbar>
    
            <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">
                우 미 알
              </v-list-tile-title>
            </v-list-tile>
            <v-divider/>
            
            <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 v-if="$store.state.isUserInfoGetted===true" active-class="success" class="v-list-item v-list__tile--buy" @click="logOut" to="/">
              <v-list-tile-action>
                <v-icon>mdi-package-up</v-icon>
              </v-list-tile-action>
              <v-list-tile-title class="font-weight-light">
                Log Out
              </v-list-tile-title>
            </v-list-tile>
    
            <v-list-tile v-if="$store.state.isUserInfoGetted===false" active-class="success" class="v-list-item v-list__tile--buy" to="/login">
              <v-list-tile-action>
                <v-icon>mdi-package-up</v-icon>
              </v-list-tile-action>
              <v-list-tile-title class="font-weight-light">
                Login
              </v-list-tile-title>
            </v-list-tile>
    
            <v-list-tile v-if="$store.state.isUserInfoGetted===false" active-class="success" class="v-list-item" to="/signup">
              <v-list-tile-action>
                <v-icon>mdi-package-up</v-icon>
              </v-list-tile-action>
              <v-list-tile-title class="font-weight-light">
                SingUp
              </v-list-tile-title>
            </v-list-tile>
    
          </v-layout>
        </v-img>
      </v-navigation-drawer>
    </template>
    
    <script>
    // Utilities
    import {mapMutations, mapState} from 'vuex'
    
    export default {
      props: {
        opened: {
          type: Boolean,
          default: false
        }
      },
      data: () => ({
        logo: 'favicon.ico',
        logoutSnackbar: false,
        links: [
          {
            to: '/',
            icon: 'mdi-view-dashboard',
            text: 'Home'
          },
          {
            to: '/finderboard',
            icon: 'mdi-account',
            text: 'Finder Board'
          },
          {
            to: '/losterboard',
            icon: 'mdi-clipboard-outline',
            text: 'Loster Board'
          },
          {
            to: '/mypage',
            icon: 'mdi-format-font',
            text: 'My Page'
          }
        ]
      }),
      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')
        }
      },
    
      methods: {
        ...mapMutations('app', ['setDrawer', 'toggleDrawer']),
        
        logOut: function(){
          this.logoutSnackbar = true;
          this.$http.get('/login/logout').then((res)=>{
            if(res.data.success==true){
              this.$store.commit("setInitialize");
            }
          })
        }
      }
    }
    </script>
    
    <style lang="scss">
      #app-drawer {
        .v-list__tile {
          border-radius: 4px;
    
          &--buy {
            margin-top: auto;
            margin-bottom: 5px;
          }
        }
      }
    </style>