<template>
    <div class="_running">
        <HeadlineTag value="信息发布设备统计"></HeadlineTag>
        <div class="_running_mains">
            <div class="_running_mains_left" id="videoWidth" :style="{ '--heightRun': heightVideo + 'px' }">
                <div class="_running_mains_left_tuan"></div>
                <div class="_running_mains_left_conter">
                    <div class="_running_mains_left_conter_num">{{getTotal() || 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">
                        <span>{{ item.state || 0 }}</span>
                        <span :style="{ color: item.color, 'font-size': '12px', 'margin-left': '5px' }">{{ item.unit }}</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script setup>
import { ref } from "vue";
import HeadlineTag from '@/components/HeadlineTag'
const props = defineProps({
    resultData: {
        type: Object,
        default: {}
    }
})
const runningList = ref([
    { name: '正常', state: 0, color: '#409eff', unit: '台' },
    { name: '故障', state: 0, color: 'rgb(244, 67, 54)', unit: '台' },
    { name: '空闲', state: 0, color: '#15acaa', unit: '台' },
])
watch(() => props.resultData, (newVal) => {
    if (newVal) {
        runningList.value[0].state = newVal.Normal
        runningList.value[1].state = newVal.Fault
        runningList.value[2].state = newVal.Idle
    }
}, { deep: true, immediate: true } // 开启深度监听
)
function getTotal (){
    let num = runningList.value[0].state + runningList.value[1].state + runningList.value[2].state
    return num
}
const heightVideo = ref(0)
// 生命周期
onMounted(() => {
    var element = document.getElementById("videoWidth");
    var width = element.offsetWidth;
    heightVideo.value = width
});
</script>
<style lang="scss">
._running {
    display: flex;
    flex-direction: column;

    &_mains {
        flex: 1;
        margin: 30px;
        display: flex;
        align-items: center;

        &_left {
            width: 50%;
            height: var(--heightRun);
            position: relative;

            &_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>