AccountModal.vue 2.8 KB
<template>
  <van-popup :show="visible">
    <div class="wrap">
      <a class="close" @click="closeModal('accountModalVisible')" />
      <div class="account-info">
        <div class="username">
          {{ decodeURIComponent(accountInfo['roleName'] || '') }}
        </div>
        <div class="info-item title">等级</div>
        <div class="info-item title">职业</div>
        <div class="info-item title">区服</div>
        <div class="info-item">LV{{ accountInfo['lv'] || 0 }}</div>
        <div class="info-item">
          {{ decodeURIComponent(accountInfo['roleJob'] || '') }}
        </div>
        <div class="info-item">{{ accountInfo['serverName'] }}</div>
      </div>
      <div class="source-info">
        <div class="point-info">
          <div class="title">我的夏日积分:</div>
          <div class="info-item">{{ score || 0 }}</div>
        </div>
        <div class="card-info">
          <div class="title">我的红包券:</div>
          <div class="info-box">
            <div v-for="item in bagList" :key="item.id" class="info-box-item">
              <div class="info-item name">{{ item.bag }}</div>
              <div class="num">{{ item.cardNum || 0 }}张</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </van-popup>
</template>

<script>
export default {
  name: 'AccountModal',
  inject: ['closeModal'],
  props: {
    visible: Boolean,
    score: {
      type: Number,
      required: true
    },
    bagList: {
      type: Object,
      required: true
    },
    accountInfo: {
      type: Object,
      required: true
    }
  },
  data() {
    return {}
  },
  methods: {}
}
</script>

<style scoped lang="scss">
.wrap {
  position: relative;
  width: 599px;
  height: 546px;
  margin: 40px 0;
  padding-top: 138px;
  background: url('@/assets/image/accountModal-bg.png') no-repeat center/100%
    100%;
}
.close {
  position: absolute;
  top: -40px;
  right: 0;
  width: 37px;
  height: 34px;
  background: url('@/assets/image/close.png') no-repeat center/100% 100%;
}
.account-info {
  display: flex;
  flex-wrap: wrap;
  width: 452px;
  margin-left: 76px;
  font-size: 28px;
  color: #fff;
  text-align: center;
  .username {
    width: 100%;
    height: 54px;
    line-height: 54px;
  }
  .info-item {
    width: calc(452px / 3);
    height: 42px;
    line-height: 44px;
    &.title {
      color: rgba(255, 255, 255, 0.75);
    }
  }
}
.source-info {
  line-height: 56px;
  margin: 20px 0 0 76px;
  font-size: 28px;
  color: rgba(255, 255, 255, 0.75);
  .title {
    width: 200px;
    color: #fff;
    flex-shrink: 0;
    text-align: justify;
  }
  .point-info {
    display: flex;
  }
  .info-item {
    width: 190px;
    flex-shrink: 0;
  }
  .card-info {
    display: flex;
  }
  .info-box-item {
    display: flex;
  }
  .num {
    white-space: nowrap;
  }
}
</style>