<template>
    <div id="digital-flop">
        <div class="digital-flop-item" v-for="item in state.digitalFlopData" :key="item.title">
            <div class="digital-flop-title">{{ item.title }}</div>
            <div class="digital-flop">
                <dv-digital-flop :config="item.number" style="width:100px;height:50px;" />
                <div class="unit">{{ item.unit }}</div>
            </div>
        </div>

        <dv-decoration-10 />
    </div>
</template>
  
<script setup name='digitalFlop' lang="ts">
import { reactive } from 'vue'

const randomExtend = (minNum: number, maxNum: number) => {
    if (minNum > 100) {
        return parseInt(Math.random() * minNum + 1 + '', 10)
    } else {
        return parseInt(Math.random() * (maxNum - minNum + 1) + minNum + '', 10)
    }
}

const state = reactive({
    digitalFlopData: [
        {
            title: '管养里程',
            number: {
                number: [randomExtend(20000, 30000)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#4d99fc',
                    fontWeight: 'bold'
                }
            },
            unit: '公里'
        },
        {
            title: '桥梁',
            number: {
                number: [randomExtend(20, 30)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#f46827',
                    fontWeight: 'bold'
                }
            },
            unit: '座'
        },
        {
            title: '涵洞隧道',
            number: {
                number: [randomExtend(20, 30)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#40faee',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        },
        {
            title: '匝道',
            number: {
                number: [randomExtend(10, 20)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#4d99fc',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        },
        {
            title: '隧道',
            number: {
                number: [randomExtend(5, 10)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#f46827',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        },
        {
            title: '服务区',
            number: {
                number: [randomExtend(5, 10)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#40faee',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        },
        {
            title: '收费站',
            number: {
                number: [randomExtend(5, 10)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#4d99fc',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        },
        {
            title: '超限站',
            number: {
                number: [randomExtend(5, 10)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#f46827',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        },
        {
            title: '停车区',
            number: {
                number: [randomExtend(5, 10)],
                content: '{nt}',
                textAlign: 'right',
                style: {
                    fill: '#40faee',
                    fontWeight: 'bold'
                }
            },
            unit: '个'
        }
    ]
})

setInterval(randomExtend, 3000)
</script>
  
<style lang="scss">
#digital-flop {
    position: relative;
    height: 15%;
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: rgba(6, 30, 93, 0.5);

    .dv-decoration-10 {
        position: absolute;
        width: 95%;
        left: 2.5%;
        height: 5px;
        bottom: 0px;
    }

    .digital-flop-item {
        width: 11%;
        height: 80%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        border-left: 3px solid rgb(6, 30, 93);
        border-right: 3px solid rgb(6, 30, 93);
    }

    .digital-flop-title {
        font-size: 20px;
        margin-bottom: 20px;
    }

    .digital-flop {
        display: flex;
    }

    .unit {
        margin-left: 10px;
        display: flex;
        align-items: flex-end;
        box-sizing: border-box;
        padding-bottom: 13px;
    }
}
</style>