<template>
    <div class="_running_mains">
        <div class="_running_mains_left" id="runWidth" :style="{ '--heightRunning': heightRun + 'px' }">
            <div class="_running_mains_left_tuan"></div>
            <div class="_running_mains_left_conter">
                <div class="_running_mains_left_conter_num">{{ resultData.VisitorCount || 0 }}</div>
                <div class="_running_mains_left_conter_text">访客总量</div>
            </div>
        </div>
        <div class="_running_mains_right">
            <div class="_running_mains_right_item" v-for="item, index in runningList" :key="index">
                <div class="_running_mains_right_item_tuan">
                    <span class="_running_mains_right_item_tuan_flag" :style="{ backgroundColor: item.color }"></span>
                    <el-text class="w-150px mb-2" truncated style="color: #ccc;">
                        {{ item.name }}
                    </el-text>
                </div>
                <div class="_running_mains_right_item__txt">
                    {{ item.state || 0 }}
                </div>
            </div>
        </div>
    </div>
</template>

<script setup>
import { ref } from "vue";
const props = defineProps({
    resultData: {
        type: Object,
        default: {}
    }
})

const runningList = ref([
    { name: '签到数量', state: 0, color: '#15acaa' },
    { name: '通行数量', state: 0, color: '#FFC107' },
    { name: '离场数量', state: 0, color: '#F44336' },
])

watch(() => props.resultData, (newVal) => {
    if (newVal) {
        runningList.value[0].state = newVal.SignInCount
        runningList.value[1].state = newVal.TransitCount
        runningList.value[2].state = newVal.Exit
    }
}, { deep: true, immediate: true } // 开启深度监听
)
const heightRun = ref(0)
// 生命周期
onMounted(() => {
    var element = document.getElementById("runWidth");
    var width = element.offsetWidth;
    heightRun.value = width
});
</script>
<style lang="scss" scoped>
._running {
    display: flex;
    flex-direction: column;

    &_mains {
        flex: 1;
        width: calc(100% - 30px);
        padding-left: 30px;
        display: flex;
        align-items: center;

        &_left {
            width: 50%;
            height: var(--heightRunning);
            position: relative;
            flex-shrink: 0;

            &_tuan {
                width: 100%;
                height: 100%;
                background: url("@/assets/images/content_circle.png");
                background-size: 100% 100%;
                background-position: center;
                background-repeat: no-repeat;
                animation: scanning 4s linear infinite;
            }

            &_conter {
                position: absolute;
                left: 0;
                top: 0;
                flex-shrink: 0;
                width: 100%;
                height: 100%;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                color: #fff;

                &_num {
                    font-size: 18px;
                }

                &_text {
                    font-size: 12px;
                }
            }
        }

        &_right {
            margin-left: 10px;
            flex: 1;
            color: #fff;

            &_item {
                display: flex;
                align-items: center;
                gap: 40px;
                padding: 5px 0;

                &_tuan {
                    display: flex;
                    align-items: center;

                    &_flag {
                        display: block;
                        width: 7px;
                        height: 7px;
                        border-radius: 50%;
                        margin-right: 10px;
                    }
                }

                &__txt {
                    font-size: 24px;
                }
            }
        }


    }
}

@keyframes scanning {
    to {
        transform: rotate(1turn);
    }
}
</style>