<template>
    <el-card style="width: 49.9%;">
        <template #header>
            <div class="card-header">
                <span>客户统计</span>
            </div>
        </template>
        <div style="height:40px">
            <el-date-picker v-model="year" @change='getCustom' value-format="YYYY" type="year" style="float:right"
                :placeholder="year" />
        </div>


        <div style="display: flex;justify-content: space-around;">
            <div v-for=" item in customList" :key="item" style="text-align: center;">
                <div>{{ item.value }}</div>
                <div>{{ item.name }}</div>
            </div>
        </div>
        <div id="customNum" class="chart" v-if="showChart"></div>
    </el-card>
</template>
<script setup>
import * as echarts from 'echarts';
import { apistatisticscustoms } from '@/api/statistics'

const year = ref('')
const showChart = ref(true)
year.value = new Date().getFullYear()

const customList = reactive([
    {
        name: "客户总数",
        value: 3
    },
    {
        name: "今年增加",
        value: 3
    }
])

const labelOption = {
    show: true,
    rich: {
        name: {}
    }
};

const initChart = (id, opt) => {
    var chartDom = document.getElementById(id);
    var myChart = echarts.init(chartDom);
    myChart.setOption(opt);
}

const setHistogramOption = (legend, xAxisData, series) => {
    return {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            }
        },

        legend,
        toolbox: {
            show: true,
            orient: 'vertical',
            left: 'right',
            top: 'center',
        },
        xAxis: [
            {
                type: 'category',
                axisTick: { show: false },
                data: xAxisData
            }
        ],
        yAxis: [
            {
                type: 'value'
            }
        ],
        series
    }

}

const getCustom = async () => {
    showChart.value = false
    let res = await apistatisticscustoms({ year: year.value })
    showChart.value = true
    await nextTick()
    initChart("customNum", setHistogramOption({ data: [res.series.name] }, res.column
        , [{
            name: res.series.name,
            type: 'bar',
            barGap: 0,
            label: labelOption,
            emphasis: {
                focus: 'series'
            },
            data: res.series.data
        },]))
    customList[0].value = res.custom_total
    customList[1].value = res.this_year_add
}

getCustom()
</script>
<style lang="scss" scoped>
#main,
#main2,
#main3 {
    width: 100%;
    height: 300px;
}

.chart {
    width: 100%;
    height: 300px;
}
</style>