<script setup>

import { ref, onBeforeMount,onMounted } from 'vue'
import jiantou from '../assets/img/jiantou.png'

const showPopup = ref(false);
const popupMessage = ref('');
const totalScore = ref(4000) // 初始分数
const myLucky = ref()
// 新增变量记录基础分数
//const baseScore = 4000
const wheelConfig = ref({
})
const prizes = ref([
    { fonts: [{ text: '-199', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#FAF9F0' },  //0
    { fonts: [{ text: '-55', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#F5D7AD' },   //1
    { fonts: [{ text: '+200', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#FAF9F0' },   //2
    { fonts: [{ text: '-88', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#F5D7AD' },    //3
    { fonts: [{ text: '-11', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#FAF9F0' },    //4
    { fonts: [{ text: '-299', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#F5D7AD' },   //5
    { fonts: [{ text: '+200', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#FAF9F0' },   //6
    { fonts: [{ text: '-66', top: '10%', fontColor: '#FF2C29', fontSize: '40px' }], background: '#F5D7AD' },    //7
])
const blocks = ref([{ padding: '13px', background: '	#FF2A00' }])
const buttons = ref([{
    radius: '35%',
    imgs: [{
        src: jiantou,
        width: '100%',
        top: '-130%'
    }],
    //background: '#8a9bf3',

    pointer: true,

}])

//自定义数组
const customOrder = ref([0, 4, 3, 1, 2, 4, 5, 7, 3, 4, 0])
let orderIndex = 0;

function startCallback() {
    // 重置为初始分数
    //totalScore.value = baseScore
    // 调用抽奖组件的play方法开始游戏
    myLucky.value.play()
    // 模拟调用接口异步抽奖
    setTimeout(() => {
        // 
        console.log(orderIndex, 'orderIndex')

        const index = orderIndex

        console.log(customOrder.value[index], 'custome')
        // 调用stop停止旋转并传递中奖索引
        myLucky.value.stop(customOrder.value[index])
        //更新指针(循环)
        orderIndex = (index + 1) % customOrder.value.length;
    }, 3000)
}
const scoreAnimation = ref(false)


// 抽奖结束end回调
function endCallback(prize) {
    const result = Number(prize.fonts[0].text)
    console.log(prize.fonts[0].text)
    // 更新总分
    totalScore.value = totalScore.value + result
    // 触发动画
    animateScoreChange()
    // 先清空文字
  popupMessage.value = ""; 
  showPopup.value = true;
    // 设置弹窗内容
    setTimeout(() => {
      popupMessage.value= `${result}金币`; 
 }, 1000); //  <---  正确的用法
  
    showPopup.value = true;
    // 3秒后隐藏弹窗
    setTimeout(() => {
        showPopup.value = false;
    }, 3000);
}
// 添加分数变化动画方法
const animateScoreChange = () => {
    scoreAnimation.value = true
    setTimeout(() => {
        scoreAnimation.value = false
    }, 3000)
}

onMounted(() => {
    console.log(import.meta.env.MODE,'1111')
    console.log(process.env.NODE_ENV,'2222')
})

</script>

<template>
    <div class="full-background">
        <!-- <img :src="jiantou" alt="111"> -->
        <div class="art-text" :class="{ 'score-change': scoreAnimation }">
            {{ totalScore }}金币
        </div>
        <div class="luckyWheel">
            <LuckyWheel class="lucky" ref="myLucky" width="434px" height="434px" :default-config="wheelConfig"
                :prizes="prizes" :blocks="blocks" :buttons="buttons" @start="startCallback" @end="endCallback" />

        </div>


        <div class="full-background">
            <!-- 其他原有代码不变 -->

        </div>

        <div class="wheel-base">
        </div>
        <transition name="popup-fade">
            <div v-if="showPopup" class="score-popup" :class="{ 'boom-effect': showPopup }">
            <!-- <div class="score-popup" :class="{ 'boom-effect': showPopup }"> -->
                <div class="ziti">
                    
                    {{ popupMessage }}
                </div>
            </div>

        </transition>

    </div>
</template>

<style scoped>
/* 爆炸动画关键帧 */
@keyframes boom {
    0% {
        transform: translate(-50%, -50%) scale(0);
        opacity: 0;
    }

    50% {
        transform: translate(-50%, -50%) scale(1.2);
        opacity: 1;
    }

    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
}



.score-popup {
    /* 基础样式同上 */


    position: fixed;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);

    z-index: 1000;

    /* 背景图配置 */
    background:
        url('/public/tanchuang.png') center/contain no-repeat;
    padding: 120px 80px;
    /* 根据图片留出边距 */

    /* 尺寸控制 */
    width: 800px;
    height: 1000px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.score-popup::before {
    background: rgba(255, 215, 0, 0.1);
}

.ziti {
    /* 文字样式 */
    font-family: '华康金文体', 'Arial Black', sans-serif;
    
    font-size: 100px;

    /* 根据图片调整字号 */
    color: #ffd904;
    /* 金色文字 */
    line-height: 250px;
    /* 垂直居中文字 */
    text-shadow: 2px 2px 0 #B8860B;
    /* 略微加粗文字 */
    margin-bottom: 100px;
}

/* 添加艺术字样式 */
.art-text {
    position: fixed;
    left: 30%;
    bottom: 20%;
    transform: translateX(-50%);
    font-family: 'Arial Black', sans-serif;
    font-size: 150px;
    color: #FFD700;
    /* 金色 */
    text-shadow:
        3px 3px 0 #FF0000,
        /* 红色描边 */
        -1px -1px 0 #000,
        1px -1px 0 #000,
        -1px 1px 0 #000,
        1px 1px 0 #000;
    transition: transform 0.3s ease;
    z-index: 1000;
}



/* 添加分数变化动画 */
.score-change {
    transform: translateX(-50%) scale(1.2);
    color: hwb(69 0% 0%);
    /* 变化时的橙色 */
}

.full-background {
    background-image: url('/public/bg.png');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 0;
}

.custom-text {
    position: fixed;
    left: 300px;
    bottom: 200px;
    color: black;
    font-size: 150px;
    z-index: 999;
}

.luckyWheel {
    position: fixed;
    z-index: 999;
    left: 1140px;
    top: 443px;
    pointer-events: auto;
}

/* 转盘底的样式 */
.wheel-base {
    background-image: url('/public/wheel-base.png');
    position: fixed;
    left: 1065px;
    top: 350px;
    width: 568px;
    height: 600px;
    z-index: 990;

}



.luckyWheel .lucky {
    aspect-ratio: 1/1;
    color: aqua;
}

h1 {
    position: relative;
    z-index: 1;
    text-align: center;
    /* 居中标题 */
    width: 100%;
    top: 50px;
    /* 让标题占据整个宽度 */
    font-size: 100px;
    /* 文字大小 */

}
</style>