<script setup>
import { ref, onMounted, onBeforeUnmount } from "vue";
const props = defineProps({
  isFinal: {
    type: Boolean,
    default: false,
  },
  round: {
    type: Number,
    default: 0,
  },
  bluePoint: {
    type: Number,
    default: 0,
  },
  redPoint: {
    type: Number,
    default: 0,
  },
  roundData: {
    type: Object,
    default: () => ({}),
  },
  onAutoClose: {
    type: Function,
    default: () => {},
  },
});
const count = ref(props.isFinal ? 10 : 3);
const tiemr = ref(null);
function startCount() {
  if (tiemr.value) clearInterval(tiemr.value);
  tiemr.value = setInterval(() => {
    if (count.value === 0) {
      clearInterval(tiemr.value);
      props.onAutoClose();
    } else count.value -= 1;
  }, 1000);
}
onMounted(() => {
  startCount();
});
onBeforeUnmount(() => {
  if (tiemr.value) clearInterval(tiemr.value);
});
</script>

<template>
  <view class="round-end-tip">
    <text>第{{ round }}轮射箭结束</text>
    <block v-if="!isFinal">
      <view class="point-view1" v-if="bluePoint !== 0 || redPoint !== 0">
        <text>本轮蓝队</text>
        <text>{{
          (roundData.blueArrows || []).reduce(
            (last, next) => last + next.ring,
            0
          )
        }}</text>
        <text>环，红队</text>
        <text>{{
          (roundData.redArrows || []).reduce(
            (last, next) => last + next.ring,
            0
          )
        }}</text>
        <text>环</text>
      </view>
      <text
        v-if="bluePoint === 0 && redPoint === 0"
        :style="{ marginTop: '20px' }"
      >
        连续3个来回双方均无人射箭，比赛取消。
      </text>
      <text v-if="bluePoint !== 0 && bluePoint === redPoint">
        红队、蓝队各得<text :style="{ color: '#fed847', margin: '0 5px' }">{{
          redPoint
        }}</text
        >分
      </text>
      <text v-if="bluePoint > redPoint">
        蓝队获胜，得<text :style="{ color: '#fed847', margin: '0 5px' }">{{
          bluePoint
        }}</text
        >分
      </text>
      <text v-if="bluePoint < redPoint">
        红队获胜，得<text :style="{ color: '#fed847', margin: '0 5px' }">{{
          redPoint
        }}</text
        >分
      </text>
    </block>
    <block v-if="isFinal">
      <view class="point-view2">
        <text>蓝队</text>
        <text>{{ bluePoint }}</text>
        <text>分，红队</text>
        <text>{{ redPoint }}</text>
        <text>分</text>
      </view>
      <text>同分僵局！最后一箭定江山</text>
      <view class="final-shoot">
        <text>{{ count }}</text>
        <text>秒后蓝红双方</text>
        <text>决金箭</text>
        <text>一箭决胜负</text>
      </view>
    </block>
  </view>
</template>

<style scoped>
.round-end-tip {
  width: 100%;
  color: #fff9;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 32rpx;
}
.round-end-tip > text:first-child {
  font-size: 36rpx;
  color: #fff;
}
.point-view1 {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
  margin-bottom: 3px;
}
.point-view1 > text:nth-child(2),
.point-view1 > text:nth-child(4) {
  color: #fed847;
  margin: 0 5px;
}
.point-view2 {
  margin: 12px 0;
  font-size: 48rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.point-view2 > text:nth-child(2),
.point-view2 > text:nth-child(4) {
  color: #fed847;
  width: 30px;
  text-align: center;
  font-size: 30px;
}
.final-shoot {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  font-size: 28rpx;
  word-break: keep-all;
}
.final-shoot > text:nth-child(1) {
  width: 20px;
  text-align: right;
}
.final-shoot > text:nth-child(1),
.final-shoot > text:nth-child(3) {
  font-size: 32rpx;
  color: #fed847;
  margin-left: 10px;
  margin-right: 5px;
}
</style>
