Не работает переключение между слотами

Подскажите , не могу переключатся между слотами , а также почему-то не отображается информация с права ?

const app = new Vue({
    el: '#app',
    data: {
      account: {
        username: "Nick",
        coins: "0",
        vip: null
      },
      slots: [
        {name: "fsdfds", level: 28, current: 228, max: 300, wallet: 5000, bank: 500100, fraction: null},        
        {empty: true},
        {empty: true,lock:true},
      ],
      slot: 0
    },
    methods: {
      UpdateInfoCharacter(data,acc) {
        var json = JSON.parse(data);
        var account = JSON.parse(acc);
        this.account.username = account;
        if(json[0]!=null){
          this.slots[0] = {name: json[0].Name, level: json[0].Lvl, current: json[0].Currentexp, max: json[0].Maxexp, wallet: json[0].Wallet, bank: json[0].Bank, fraction: json[0].Fraction}
        } 
        if(json[1]!=null){
          this.slots[1] = {name: json[1].Name, level: json[1].Lvl, current: json[1].Currentexp, max: json[1].Maxexp, wallet: json[1].Wallet, bank: json[1].Bank, fraction: json[1].Fraction}
        }
        if(json[2]!=null){
          this.slots[2] = {name: json[2].Name, level: json[2].Lvl, current: json[2].Currentexp, max: json[2].Maxexp, wallet: json[2].Wallet, bank: json[2].Bank, fraction: json[2].Fraction}
        }
      },
      currentSlot(index) { 
        this.slots[index] 
      },
      refillBalance() {
        // trigger to refill coins
      },

      unlockSlot(i) {
        // trigger to unlock slot
        console.log(i)
      },

      onClickDots() {
        console.log("click dots")
      },

      SelectChar() {
        mp.trigger("selectchar",this.slot);
      }
    }
});
@font-face {
    font-family: Montserrat-Regular;
    src: url("../assets/fonts/Montserrat-Regular.ttf");
  }
  
  @font-face {
    font-family: Montserrat-Medium;
    src: url("../assets/fonts/Montserrat-Medium.ttf");
  }
  
  @font-face {
    font-family: Montserrat-SemiBold;
    src: url("../assets/fonts/Montserrat-SemiBold.ttf");
  }
  
  @font-face {
    font-family: Oswald-Regular;
    src: url("../assets/fonts/Oswald-Regular.ttf");
  }
  
  * {
    padding: 0;
    margin: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  
  body {
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
  }
  
  #app {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: url("../assets/images/background.png") no-repeat center center;
    background-size: cover;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  
  #app > .characters {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
  }
  
  #app > .characters > .logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 50.92593vh;
    height: 14.81481vh;
    background: url("../assets/images/logo-default.png") no-repeat center center;
    background-size: contain;
    position: absolute;
    bottom: 95%;
    left: calc(50% - 25.46296vh);
  }
  
  #app > .characters > .logo.vip {
    background-image: url("../assets/images/logo-vip.png");
  }
  
  #app > .characters > .logo > span {
    color: #FFCD00;
    font-family: Montserrat-Medium, sans-serif;
    font-weight: 500;
    font-size: 2.40741vh;
    letter-spacing: -0.09259vh;
    text-shadow: 0 0.18519vh 0.37037vh rgba(0, 0, 0, 0.5);
    position: relative;
    top: 1.38889vh;
    left: 9.25926vh;
  }
  
  #app > .characters > .menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 42.59259vh;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  
  #app > .characters > .menu > .as-tab {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    height: 9.25926vh;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: rgba(0, 0, 0, 0.45);
    -webkit-backdrop-filter: blur(22.1825px);
            backdrop-filter: blur(22.1825px);
    border-radius: 2.22222vh;
    -webkit-box-shadow: 0 0.41667vh 3.28704vh 0.27778vh rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.41667vh 3.28704vh 0.27778vh rgba(0, 0, 0, 0.25);
    padding-left: 2.40741vh;
  }
  
  #app > .characters > .menu > .as-tab:not(:first-child) {
    margin-top: 1.85185vh;
  }
  
  #app > .characters > .menu > .account > i {
    display: block;
    width: 6.48148vh;
    height: 6.48148vh;
    background: url("../assets/svg/circle-dollar.svg") no-repeat center center;
    background-size: contain;
  }
  
  #app > .characters > .menu > .account > .data {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 27.77778vh;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-left: 1.85185vh;
  }
  
  #app > .characters > .menu > .account > .data > span {
    color: #fff;
    font-family: 'Montserrat-Regular', sans-serif;
    font-weight: normal;
    font-size: 2.31481vh;
    line-height: 2.77778vh;
  }
  
  #app > .characters > .menu > .account > .data > span:last-child {
    color: #298AEE;
    font-family: 'Montserrat-SemiBold', sans-serif;
    font-weight: 600;
  }
  
  #app > .characters > .menu > .slot.active {
    border: 0.37037vh solid #fff;
  }
  
  #app > .characters > .menu > .slot > .level-icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 6.48148vh;
    min-width: 6.48148vh;
    height: 6.48148vh;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: url("../assets/svg/level-bg.svg") no-repeat center center;
    background-size: contain;
  }
  
  #app > .characters > .menu > .slot > .level-icon > span {
    color: #fff;
    font-family: 'Oswald-Regular', sans-serif;
    font-weight: normal;
    font-size: 4.16667vh;
    text-shadow: 0 0.41667vh 0.41667vh rgba(0, 0, 0, 0.25);
  }
  
  #app > .characters > .menu > .slot > .level-icon > span.level {
    padding-right: 0.09259vh;
    padding-bottom: 0.09259vh;
  }
  
  #app > .characters > .menu > .slot > .lock-icon {
    display: block;
    width: 6.48148vh;
    height: 6.48148vh;
    background: url("../assets/svg/lock-slot.svg") no-repeat center center;
    background-size: contain;
  }
  
  #app > .characters > .menu > .slot > .data {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-left: 1.85185vh;
  }
  
  #app > .characters > .menu > .slot > .data > span {
    color: #fff;
    font-family: 'Montserrat-Regular', sans-serif;
    font-weight: normal;
    font-size: 2.31481vh;
  }
  
  #app > .characters > .menu > .slot > .data > span:last-child {
    color: #298AEE;
    font-family: 'Montserrat-SemiBold', sans-serif;
    font-weight: 600;
  }
  
  #app > .characters > .menu > .slot.active > .data > span {
    font-family: 'Montserrat-SemiBold', sans-serif;
    font-weight: 600;
  }
  
  #app > .characters > .menu > .slot > .char {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    margin-left: 1.85185vh;
    color: #fff;
    font-family: 'Montserrat-Regular', sans-serif;
    font-weight: normal;
    font-size: 2.77778vh;
  }
  
  #app > .characters > .menu > .slot.active > .char {
    font-family: 'Montserrat-SemiBold', sans-serif;
    font-weight: 600;
  }
  
  #app > .characters > .info {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 35.18519vh;
    height: 42.59259vh;
    padding-top: 4.90741vh;
    margin-left: 2.31481vh;
  }
  
  #app > .characters > .info > .window {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    height: 37.68519vh;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: rgba(0, 0, 0, 0.45);
    -webkit-backdrop-filter: blur(2.03704vh);
            backdrop-filter: blur(2.03704vh);
    border-radius: 2.22222vh;
    -webkit-box-shadow: 0 0.41667vh 3.28704vh 0.30556vh rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.41667vh 3.28704vh 0.30556vh rgba(0, 0, 0, 0.25);
    position: relative;
  }
  
  #app > .characters > .info > .window:not(.empty) {
    padding: 0 2.31481vh 2.31481vh;
  }
  
  #app > .characters > .info > .window:before {
    content: "";
    display: block;
    width: 100%;
    height: 8.7963vh;
    background: -webkit-gradient(linear, left top, left bottom, from(0), color-stop(0.42%, #2992FE), color-stop(95.58%, rgba(41, 138, 238, 0)));
    background: linear-gradient(0, #2992FE 0.42%, rgba(41, 138, 238, 0) 95.58%);
    opacity: 0.5;
    border-radius: 0 0 2.22222vh 2.22222vh;
    position: absolute;
    bottom: 0;
    z-index: 0;
  }
  
  #app > .characters > .info > .window > .level,
  #app > .characters > .info > .window > .empty-level,
  #app > .characters > .info > .window > .lock-icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 12.12963vh;
    height: 11.94444vh;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: url("../assets/svg/level-bg.svg") no-repeat center center;
    background-size: contain;
    -webkit-filter: drop-shadow(0 0.41667vh 0.60185vh rgba(0, 0, 0, 0.5));
            filter: drop-shadow(0 0.41667vh 0.60185vh rgba(0, 0, 0, 0.5));
    position: absolute;
    top: -5.83333vh;
    left: calc(50% - 6.01852vh);
    z-index: 1;
  }
  
  #app > .characters > .info > .window > .level.lock-icon,
  #app > .characters > .info > .window > .empty-level.lock-icon,
  #app > .characters > .info > .window > .lock-icon.lock-icon {
    background-image: url("../assets/svg/lock-slot.svg");
  }
  
  #app > .characters > .info > .window > .level > span,
  #app > .characters > .info > .window > .empty-level > span,
  #app > .characters > .info > .window > .lock-icon > span {
    color: #fff;
    font-family: 'Oswald-Regular', sans-serif;
    font-weight: normal;
    font-size: 8.14815vh;
    padding-right: 0.27778vh;
    padding-bottom: 0.27778vh;
  }
  
  #app > .characters > .info > .window > .dots {
    display: block;
    width: 0.55556vh;
    height: 2.22222vh;
    background: url("../assets/svg/3dots.svg") no-repeat center center;
    background-size: cover;
    position: absolute;
    top: 2.31481vh;
    right: 2.31481vh;
  }
  
  #app > .characters > .info > .window > .dots:active {
    -webkit-filter: brightness(0.8);
            filter: brightness(0.8);
  }
  
  #app > .characters > .info > .window > .name {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: #fff;
    font-family: 'Montserrat-SemiBold', sans-serif;
    font-weight: 600;
    font-size: 3.7037vh;
    text-shadow: 0 0.41667vh 0.41667vh rgba(0, 0, 0, 0.25);
    margin-bottom: 0.37037vh;
    position: relative;
    z-index: 1;
  }
  
  #app > .characters > .info > .window > .faction {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: #fff;
    font-family: 'Montserrat-Regular', sans-serif;
    font-weight: normal;
    font-size: 1.66667vh;
    margin-bottom: 1.85185vh;
  }
  
  #app > .characters > .info > .window > .stats {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 1.85185vh;
  }
  
  #app > .characters > .info > .window > .stats > .stat,
  #app > .characters > .info > .window > .current-coins {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  
  #app > .characters > .info > .window > .stats > .stat:not(:first-child),
  #app > .characters > .info > .window > .current-coins:not(:first-child) {
    margin-top: 1.2037vh;
  }
  
  #app > .characters > .info > .window > .stats > .stat.current-coins,
  #app > .characters > .info > .window > .current-coins.current-coins {
    margin-bottom: 1.85185vh;
  }
  
  #app > .characters > .info > .window > .stats > .stat > i,
  #app > .characters > .info > .window > .current-coins > i {
    display: block;
    width: 3.7037vh;
    height: 3.7037vh;
    background: url("../assets/svg/exp-icon.svg") no-repeat center center;
    background-size: contain;
    -webkit-filter: drop-shadow(0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.25));
            filter: drop-shadow(0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.25));
  }
  
  #app > .characters > .info > .window > .stats > .stat.wallet > i,
  #app > .characters > .info > .window > .current-coins.wallet > i {
    background-image: url("../assets/svg/wallet-icon.svg");
  }
  
  #app > .characters > .info > .window > .stats > .stat.bank > i,
  #app > .characters > .info > .window > .stats > .stat.current-coins > i,
  #app > .characters > .info > .window > .current-coins.bank > i,
  #app > .characters > .info > .window > .current-coins.current-coins > i {
    background-image: url("../assets/svg/bank-icon.svg");
  }
  
  #app > .characters > .info > .window > .stats > .stat > .value,
  #app > .characters > .info > .window > .current-coins > .value {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 24.53704vh;
    height: 3.7037vh;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-family: 'Montserrat-Medium', sans-serif;
    font-weight: 500;
    font-size: 1.85185vh;
    border-radius: 0.92593vh;
    -webkit-box-shadow: 0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.5);
            box-shadow: 0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.5);
  }
  
  #app > .characters > .info > .window > .empty-slot-title,
  #app > .characters > .info > .window > .lock-slot-title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: #fff;
    font-family: 'Montserrat-SemiBold', sans-serif;
    font-weight: 600;
    font-size: 3.7037vh;
    text-shadow: 0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.25);
    margin-bottom: 1.2037vh;
  }
  
  #app > .characters > .info > .window > .empty-slot,
  #app > .characters > .info > .window > .lock-slot {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    color: #fff;
    font-family: 'Montserrat-Regular', sans-serif;
    font-weight: normal;
    font-size: 1.48148vh;
    letter-spacing: -0.05926vh;
    text-align: center;
    margin-bottom: 2.22222vh;
  }
  
  #app > .characters > .info > .window > .empty-slot.lock-slot,
  #app > .characters > .info > .window > .lock-slot.lock-slot {
    letter-spacing: -0.07407vh;
  }
  
  #app > .characters > .info > .window > .newname {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    color: #fff;
    font-family: 'Montserrat-Regular', sans-serif;
    font-weight: normal;
    font-size: 1.48148vh;
    letter-spacing: -0.05926vh;
    text-align: center;
    margin-bottom: 0.92593vh;
  }
  
  #app > .characters > .info > .window > .inputinform {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 30.55556vh;
    height: 3.7037vh;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    font-family: 'Montserrat-Medium', sans-serif;
    font-weight: 500;
    font-size: 1.85185vh;
    border-radius: 0.92593vh;
    -webkit-box-shadow: 0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.5);
            box-shadow: 0 0.46296vh 0.46296vh rgba(0, 0, 0, 0.5);
    margin-bottom: 1.85185vh;
  }
  
  #app > .characters > .info > .window > .vip {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #FFCD00;
    font-family: 'Montserrat-Medium', sans-serif;
    font-weight: 500;
    font-size: 1.85185vh;
    text-shadow: 0 0.18519vh 0.37037vh rgba(0, 0, 0, 0.5);
  }
  
  #app > .characters > .info > .window > .vip > i {
    display: block;
    width: 2.22222vh;
    min-width: 2.22222vh;
    height: 1.2963vh;
    min-height: 1.2963vh;
    background: url("../assets/svg/vip-corona.svg") no-repeat center center;
    background-size: cover;
    margin: 0 0.55556vh;
  }
  
  #app > .characters > .info > .window > button {
    width: 100%;
    height: 4.16667vh;
    background: #298AEE;
    color: #FFFFFF;
    font-family: 'Montserrat-Medium', sans-serif;
    font-weight: 500;
    font-size: 1.85185vh;
    border: unset;
    border-radius: 0.83333vh;
    position: relative;
    z-index: 1;
  }
  
  #app > .characters > .info > .window > button:active {
    -webkit-filter: brightness(0.8);
            filter: brightness(0.8);
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
                    <div class="characters">
                      <div v-if="account.vip" class="logo vip">
                        <span>VIP Gold до {{ account.vip }}</span>
                      </div>
                      <div v-else class="logo"></div>
                      <div class="menu">
                        <div class="account as-tab">
                          <i></i>
                          <div class="data">
                            <span>{{ account.username }}, у вас ${{ account.coins }}</span>
                            <span @click="refillBalance">Пополнить cчет</span>
                          </div>
                        </div>
                       <div v-for="(s, i, index) in slots" :key="i" :class="['slot as-tab', {active:slot===i}]" @click="currentSlot(index)">
                          <div v-if="!s.lock" class="level-icon">
                            <span v-if="s.empty">?</span>
                            <span v-else class="level">{{ s.level }}</span>
                          </div>
                          <div v-else class="lock-icon"></div>
                          <div v-if="s.lock" class="data">
                            <span>Слот {{ i+1 }}: Заблокирован</span>
                            <span>Разблокировать слот</span>
                          </div>
                          <div v-else-if="!s.lock && s.empty" class="char empty">Слот {{ i+1 }}: Пустой</div>
                          <div v-else class="char">Слот {{ i+1 }}: {{ s.name }}</div>
                        </div>
                      </div>
                      <div class="info">
                        <div v-if="!currentSlot.empty" class="window">
                          <div class="level"><span>{{ currentSlot.level }}</span></div>
                          <div class="dots" @click="onClickDots"></div>
                          <div class="name">{{ currentSlot.name }}</div>
                          <div v-if="currentSlot.fraction" class="faction">{{ currentSlot.fraction }}</div>
                          <div v-else class="faction">Не во фракции</div>
                          <div class="stats">
                            <div class="stat xp">
                              <i></i>
                              <div class="value">{{ currentSlot.current }} / {{ currentSlot.max }}</div>
                            </div>
                            <div class="stat wallet">
                              <i></i>
                              <div class="value">{{ currentSlot.wallet }}</div>
                            </div>
                            <div class="stat bank">
                              <i></i>
                              <div class="value">{{ currentSlot.bank }}</div>
                            </div>
                          </div>
                          <button class="login" @click = "SelectChar">Bойти</button>
                        </div>
                        <div v-else-if="currentSlot.empty && !currentSlot.lock" class="window">
                          <div class="empty-level"><span>?</span></div>
                          <div class="empty-slot-title">Пустий слот</div>
                          <div class="empty-slot">
                            Lorem ipsum dolor sit, amet consectetur <br>
                            adipisicing elit. Totam numquam rerum ea <br> 
                            sunt, accusantium cupiditate laudantium quia <br>
                            veritatis assumenda odio.               
                          </div>
                          <div class="newname">Имя Фамилия персонажа:</div>
                          <input v-model="name" class="inputinform">
                          <button @click="" class="create">Создать персонажа</button>
                        </div>
                        <div v-else class="window">
                          <div class="lock-icon"></div>
                          <div class="lock-slot-title">Заблокирован</div>
                          <div class="lock-slot">
                            Lorem ipsum dolor sit amet, <br> 
                            consectetur adipisicing elit. <br> 
                            Assumenda dolorem consectetur beatae <br> 
                            porro eligendi ad.
                          </div>
                          <div class="vip">+ Бонус <i></i> VIP Gold на месяц</div>
                          <div class="current-coins">
                            <i></i>
                            <div class="value">{{ account.coins }} MsMoney</div>
                          </div>
                          <button class="unlock" @click="unlockSlot">Разблокировать</button>
                        </div>
                      </div>
                    </div>
                </div>


Ответы (0 шт):