<script setup>
import Container from "@/components/Container.vue";
import { ref } from "vue";

const selectedIndex = ref(0);

const handleSelect = (index) => {
  selectedIndex.value = index;
};

const toMatchPage = () => {
  uni.navigateTo({
    url: "/pages/match-room",
  });
};
</script>

<template>
  <Container title="排行赛"
    ><view class="ranking-my-data">
      <view>
        <view class="user-info">
          <view class="avatar" @click="toUserPage">
            <image src="../static/avatar-frame.png" mode="widthFix" />
            <image src="../static/avatar.png" mode="widthFix" />
          </view>
          <text>打酱油·路过</text>
        </view>
        <view class="ranking-season">
          <text>第14赛季</text>
          <image src="../static/triangle.png" mode="widthFix" />
        </view>
      </view>
      <view class="my-data">
        <view>
          <text>段位</text>
          <text :style="{ color: '#83CDFF' }">砖石 III</text>
        </view>
        <view>
          <text>赛季平均环数</text>
          <text :style="{ color: '#FFD947' }">9.7环</text>
        </view>
        <view>
          <text>赛季胜率</text>
          <text :style="{ color: '#FF507E' }">52%</text>
        </view>
      </view>
      <view class="rank-type">
        <image
          src="../static/battle1v1.png"
          mode="widthFix"
          @click="toMatchPage"
        />
        <image
          src="../static/battle5.png"
          mode="widthFix"
          @click="toMatchPage"
        />
        <image
          src="../static/battle10.png"
          mode="widthFix"
          @click="toMatchPage"
        />
      </view>
      <view class="data-progress">
        <text>【1 V 1】 163 场 胜率 51%</text>
        <view>
          <view :style="{ width: '50%', backgroundColor: '#FF507E' }" />
        </view>
      </view>
      <view class="data-progress">
        <text>【5人大乱斗】 12 场 得分率 56%</text>
        <view>
          <view :style="{ width: '60%', backgroundColor: '#FFD947' }" />
        </view>
      </view>
      <view class="data-progress">
        <text>【10 人大乱斗】 12 场 得分率 5</text>
        <view>
          <view :style="{ width: '45%', backgroundColor: '#FFD947' }" />
        </view>
      </view>
      <view>查看我的比赛记录</view>
    </view>
    <view class="ranking-data">
      <view>
        <view
          v-for="(rankType, index) in ['积分表', 'MVP榜', '十环榜', '最牛省份']"
          :key="index"
          :style="{
            color: index === selectedIndex ? '#000' : '#fff',
            backgroundColor:
              index === selectedIndex ? '#FFD947' : 'transparent',
          }"
          @tap="handleSelect(index)"
        >
          {{ rankType }}
        </view>
      </view>
      <view
        v-for="(rankType, index) in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
        :key="index"
        :style="{
          backgroundColor: index % 2 === 0 ? '#ffffff1f' : 'transparent',
        }"
        class="rank-item"
      >
        <image v-if="index === 0" src="../static/champ1.png" />
        <image v-if="index === 1" src="../static/champ2.png" />
        <image v-if="index === 2" src="../static/champ3.png" />
        <view v-if="index > 2">{{ rankType }}</view>
        <image src="../static/avatar.png" mode="widthFix" />
        <view>
          <text>打酱油大声路过</text>
          <text>钻石三级，20场</text>
        </view>
        <text>8850<text>分</text></text>
      </view>
    </view>
  </Container>
</template>

<style scoped>
.ranking-my-data,
.ranking-data {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background-color: #54431d33;
  border: 1px solid #54431d;
  border-radius: 10px;
  margin: 0 15px;
  margin-bottom: 15px;
}
.ranking-my-data {
  padding: 15px;
}
.ranking-my-data > view:first-of-type {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  border-bottom: 1px solid #48494e;
  padding-bottom: 15px;
}
.user-info {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 14px;
}
.avatar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 15px;
}
.avatar > image:first-child {
  position: absolute;
  width: 40px;
  height: 40px;
}
.avatar > image {
  width: 30px;
  height: 30px;
  border-radius: 50%;
}
.ranking-season {
  display: flex;
  justify-content: center;
  align-items: center;
}
.ranking-season > image {
  width: 12px;
}
.ranking-season > text {
  color: #ffd947;
  font-size: 14px;
  margin-right: 5px;
}
.my-data {
  display: flex;
  align-items: center;
  justify-content: space-around;
  color: #b3b3b3;
  width: 100%;
  margin-top: 15px;
}
.my-data > view {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
  height: 60px;
}
.my-data > view:nth-child(2) {
  border-left: 1px solid #48494e;
  border-right: 1px solid #48494e;
  padding: 0 20px;
}
.my-data > view > text:first-child {
  font-size: 14px;
}
.my-data > view > text:last-child {
  font-size: 18px;
}
.rank-type {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: 15px;
}
.rank-type > image {
  width: 32%;
}
.data-progress {
  width: 100%;
  color: #b3b3b3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 15px;
}
.data-progress > view {
  width: 100%;
  height: 5px;
  border-radius: 10px;
  background-color: #696969;
  margin-top: 10px;
}
.data-progress > view > view {
  height: 5px;
  border-radius: 10px;
}
.ranking-my-data > view:last-child {
  color: #39a8ff;
  font-size: 14px;
  text-align: center;
  width: 100%;
  padding-top: 15px;
}
.ranking-data > view:first-of-type {
  width: calc(100% - 30px);
  display: flex;
  justify-content: space-around;
  font-size: 15px;
  padding: 15px;
}
.ranking-data > view:first-of-type > view {
  width: 25%;
  padding: 7px 10px;
  text-align: center;
  border-radius: 20px;
}
.rank-item {
  width: calc(100% - 30px);
  height: 55px;
  padding: 0 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.rank-item > view:first-child {
  width: 24px;
  height: 24px;
  border-radius: 12px;
  background-color: #767676;
  color: #fff;
  text-align: center;
  line-height: 24px;
  font-size: 14px;
}
.rank-item > image:first-child {
  width: 24px;
  height: 24px;
}
.rank-item > image:nth-child(2) {
  width: 35px;
  height: 35px;
}
.rank-item > view:nth-child(3) {
  display: flex;
  flex-direction: column;
  width: 55%;
}
.rank-item > view:nth-child(3) > text:first-child {
  color: #fff9;
  font-size: 14px;
}
.rank-item > view:nth-child(3) > text:last-child {
  color: #fff4;
  font-size: 13px;
}
.rank-item > text:last-child {
  color: #fff;
}
.rank-item > text:last-child text {
  color: #fff4;
  font-size: 13px;
  margin-left: 3px;
}
</style>
