<template>
    <div class="box">
        <div class="title">
            <img src="../assets/客户侧总体用能情况分析/图层 2.png" alt="" />
            <p>山东需求响应工作开展情况</p>
            <img src="../assets/客户侧总体用能情况分析/反白稿.png" alt="" />
        </div>
        <div class="containter">
            <div class="left">
                <div class="ndqyyh">
                    <p class="title">省综代理用户情况</p>
                    <div class="bg_title">
                        <p class="tit_first">2356<span class="tit_danwei">户</span></p>
                        <div class="tit_second">
                            <div>
                                <p>工业户数</p>
                                <p class="tb_percent">324<span style="color: #fff;">户</span></p>
                            </div>
                            <div>
                                <p>楼宇户数</p>
                                <p class="tb_percent">324<span style="color: #fff;">户</span></p>
                            </div>
                        </div>
                    </div>
                    <div id="qyyh"></div>
                </div>
                <div class="ndsdl">
                    <p class="title">年度售电量</p>
                    <div class="bg_title">
                        <p class="tit_first">7,5624<span class="tit_danwei">MWH</span></p>
                        <div class="tit_second">
                            <div>
                                <p>同比</p>
                                <p class="tb_percent">12.23% <img src="../assets/zhsdy/325数值上升 (4).png" alt=""></p>
                            </div>
                            <div>
                                <p>环比</p>
                                <p class="tb_percent">27.16% <img src="../assets/zhsdy/325数值上升(1).png" alt=""> </p>
                            </div>
                        </div>
                    </div>
                    <div id="ndsdl"></div>
                </div>
            </div>
            <div class="right">
                <div class="ndsdje">
                    <p class="title">年度售电金额</p>
                    <div id="ndsdje">
                        <div class="infos" v-for="(item, index) in lists" :key="index">
                            <div class="first">
                                <p>
                                    <img src="../assets/zhsdy/组 3189.png" alt="">
                                    <span class="titles">{{ item.title }}</span>
                                </p>
                                <p class="money">{{ item.money }}<span class="danwei">万元</span></p>
                            </div>
                            <div class="second">
                                <div class="s_tit">
                                    <div>
                                        <p>同比</p>
                                        <p class="tb_percent">{{ item.tb }}% <img src="../assets/zhsdy/325数值上升 (4).png"
                                                alt=""></p>
                                    </div>
                                    <div>
                                        <p>环比</p>
                                        <p class="tb_percent">{{ item.hb }}% <img src="../assets/zhsdy/325数值上升(1).png"
                                                alt="">
                                        </p>
                                    </div>
                                </div>
                                <div class="bigBox">
                                    <div class="smallBox" :style="{ width: `${item.percent}px` }"></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="pcfx">
                    <p class="title">偏差分析</p>
                    <div id="pcfx">
                        <div class="pc_tit" v-for="(item, index) in pclist" :key="index">
                            <div class="pc_l">
                                <img src="../assets/zhsdy/组 3192.png" alt="">
                                <span class="pc_name">{{ item.name }}</span>
                                <span class="pc_count">{{ item.count }}</span>
                                <span class="pc_danwei">{{ item.danwei }}</span>
                            </div>
                            <div class="pc_r">
                                <p>环比</p>
                                <p class="tb_percent">{{ item.hb }}% <img src="../assets/zhsdy/325数值上升(1).png" alt=""> </p>
                            </div>
                        </div>
                        <div id="pcfxb"></div>
                    </div>
                </div>
                <div class="yhhyzb">
                    <p class="title">用户行业占比</p>
                    <div id="yhhyzb"></div>
                </div>
            </div>
            <div id="map"></div>
            <div class="footer">
                <div class="ndqylfb">
                    <p class="title">年度签约量分布</p>
                    <div id="ndqylfb"></div>
                </div>
                <div class="ggzcxx">
                    <p class="title">山东需求侧响应动态热点</p>
                    <div id="ggzcxx">
                        <ul>
                            <li v-for="(item, index) in infos">
                                <img src="../assets/zhsdy/组 3147.png" alt="" class="img">
                                <span class="times">{{ item.time }}</span>
                                <span class="info">{{ item.info }}</span>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
const fontSizeRem = (size) => {
    const clientWidth =
        window.innerWidth ||
        document.documentElement.clientWidth ||
        document.body.clientWidth;
    if (!clientWidth) return;
    let fontSize = clientWidth / 1920; //尺寸大小
    return size * fontSize;
}
import * as echarts from "echarts";
// import { fontSizeRem } from "../assets/function";
export default {
    data() {
        return {
            res: "日",
            type: "电",
            option: {
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        type: 'shadow'
                    },
                    backgroundColor: 'rgba(9, 24, 48, 0.5)',
                    borderColor: 'rgba(75, 253, 238, 0.4)',
                    textStyle: {
                        color: '#CFE3FC',
                    },
                    borderWidth: 1,
                },
                grid: {
                    top: '15%',
                    right: '5%',
                    left: "8%",
                    bottom: '12%'
                },
                xAxis: [{
                    name: "",
                    type: 'category',
                    data: ["济南", "烟台", "威海", "德州", "滨州", "泰安", "临沂", "烟台", "青岛", "青岛", "青岛", "青岛", "青岛",],
                    axisLine: {
                        lineStyle: {
                            color: '#FFFFFF'
                        }
                    },
                    axisLabel: {
                        margin: 10,
                        color: '#e2e9ff',
                        textStyle: {
                            fontSize: 12
                        },
                    },
                    axisTick: {
                        show: false
                    }
                }],
                yAxis: [{
                    name: "单位：MWh",
                    axisLabel: {
                        formatter: '{value}',
                        color: '#e2e9ff',
                    },
                    axisTick: {
                        show: false
                    },
                    axisLine: {
                        show: true,
                        lineStyle: {
                            color: '#FFFFFF'
                        }
                    },
                    splitLine: {
                        lineStyle: {
                            color: 'rgba(255,255,255,0.12)'
                        }
                    }
                }],
                series: [{
                    type: 'bar',
                    data: [760, 520, 850, 400, 756, 200, 400, 700, 550, 440, 220, 160, 300, 400],
                    barWidth: '30%',
                    itemStyle: {
                        normal: {
                            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                offset: 0,
                                color: 'rgba(0,244,255,1)' // 0% 处的颜色
                            }, {
                                offset: 1,
                                color: 'rgba(0,77,167,1)' // 100% 处的颜色
                            }], false),
                            shadowColor: 'rgba(0,160,221,1)',
                            shadowBlur: 4,
                        }
                    },
                    label: {
                        normal: {
                            show: true,
                            lineHeight: 10,
                            formatter: '{c}',
                            position: 'top',
                            textStyle: {
                                color: '#00D6F9',
                                fontSize: 12
                            }

                        }
                    }
                }]
            },
            infos: [
                {
                    time: "2021-10-02  11:13:52",
                    info: "(山东）山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实"
                },
                {
                    time: "2021-10-02  11:13:52",
                    info: "(山东）山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实"
                }, {
                    time: "2021-10-02  11:13:52",
                    info: "(山东）山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实"
                }, {
                    time: "2021-10-02  11:13:52",
                    info: "(山东）山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实"
                }, {
                    time: "2021-10-02  11:13:52",
                    info: "(山东）山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实"
                }, {
                    time: "2021-10-02  11:13:52",
                    info: "(山东）山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实"
                },
            ],
            lists: [
                {
                    title: "年度销售指标完成率",
                    money: "7,965",
                    tb: "12.23",
                    hb: "27.16",
                    percent: "80",
                },
                {
                    title: "年度收益金额",
                    money: "5,665",
                    tb: "12.23",
                    hb: "27.16",
                    percent: "40",
                }
            ],
            pclist: [
                {
                    name: "月度偏差电量",
                    count: "5514",
                    danwei: "MWh",
                    hb: "27.16"
                },
                {
                    name: "月度偏差率",
                    count: "25",
                    danwei: "%",
                    hb: "27.16"
                },
            ]
        };
    },
    methods: {
        defineEcharts(dom, option) {
            var chartDom = document.getElementById(dom);
            var myChart = this.$echarts.init(chartDom, null, {
                devicePixelRatio: 10, // 设置为2或更高的值
            });
            myChart.setOption(option);
            window.addEventListener("resize", function () {
                myChart.resize();
            });
        },
        qyyh() {
            let option = {
                // backgroundColor: '#081736',
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        lineStyle: {
                            color: {
                                type: 'linear',
                                x: 0,
                                y: 0,
                                x2: 0,
                                y2: 1,
                                colorStops: [
                                    {
                                        offset: 0,
                                        color: 'rgba(0, 255, 233,0)'
                                    },
                                    {
                                        offset: 0.5,
                                        color: 'rgba(255, 255, 255,1)'
                                    },
                                    {
                                        offset: 1,
                                        color: 'rgba(0, 255, 233,0)'
                                    }
                                ],
                                global: false
                            }
                        }
                    }
                },

                grid: {
                    top: '12%',
                    left: '10%',
                    right: '10%',
                    bottom: '25%'
                    // containLabel: true
                },
                xAxis: [
                    {
                        type: 'category',
                        axisLine: {
                            show: true,
                            lineStyle: {
                                color: '#009dff'
                            }
                        },

                        axisLabel: {
                            color: '#fff',
                            width: 100
                        },
                        splitLine: {
                            show: true,
                            lineStyle: {
                                color: '#00BFF3',
                                opacity: 0.23
                            }
                        },
                        axisTick: {
                            show: false
                        },
                        boundaryGap: false,
                        data: [
                            "01",
                            "02",
                            "03",
                            "04",
                            "05",
                            "06",
                            "07",
                            "08",
                            "09",
                            "10",
                            "11",
                            "12",
                        ] //this.$moment(data.times).format("HH-mm") ,
                    }
                ],

                yAxis: [
                    {
                        type: 'value',
                        min: 0,
                        // max: 140,
                        splitNumber: 4,
                        splitLine: {
                            show: true,
                            lineStyle: {
                                color: '#00BFF3',
                                opacity: 0.23
                            }
                        },
                        axisLine: {
                            show: true,
                            lineStyle: {
                                color: '#009dff'
                            }
                        },
                        axisLabel: {
                            show: true,
                            margin: 20,
                            textStyle: {
                                color: '#fff'
                            }
                        },
                        axisTick: {
                            show: false
                        }
                    }
                ],
                series: [
                    {
                        name: '',
                        type: 'line',
                        smooth: true,
                        showAllSymbol: true,
                        // symbol: 'circle',
                        symbolSize: 2,
                        lineStyle: {
                            normal: {
                                color: '#2CABE3'
                            }
                        },
                        itemStyle: {
                            color: '#2CABE3',
                            borderColor: '#2CABE3',
                            borderWidth: 2
                        },
                        data: [
                            4, 7, 5, 4, 3, 5, 8, 7, 5, 4, 3, 5, 8, 4, 7, 5, 4, 3, 5, 8, 7, 5, 4, 3,
                            5, 8
                        ] //data.values
                    },
                    {
                        name: '',
                        type: 'line',
                        smooth: true,
                        showAllSymbol: true,
                        // symbol: 'circle',
                        symbolSize: 2,
                        lineStyle: {
                            normal: {
                                color: '#7def86'
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: '#7def86',
                                borderColor: 'rgba(0, 255, 240, 1)',
                                lineStyle: {
                                    color: 'rgba(0, 255, 240, 1)'
                                }
                            }
                        },
                        data: [
                            3, 5, 4, 2, 1, 7, 6, 5, 4, 2, 1, 7, 6, 3, 5, 4, 2, 1, 7, 6, 5, 4, 2, 1,
                            7, 6
                        ] //data.values
                    }
                ]
            };
            this.defineEcharts("qyyh", option)
        },
        // 年度售电量
        ndsdl() {
            // 假数据
            let left1 = {
                code: 200,
                msg: "人数趋势图获取成功",
                data: {
                    count: [
                        153456,
                        143456,
                        163456,
                        183456,
                        163456,
                        153456,
                        163456,
                        133456,
                        163456,
                        143456,
                        103456,
                        113456,
                        153456,
                        133456,
                        143456
                    ],
                    time: [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12"
                    ]
                }
            };
            //计算最大值
            function maxNumCount(num) {
                let maxNum = "";
                //将数字转化为数组
                let max = num.toString().split("");
                for (var i = 0; i < max.length; i++) {
                    if (i > 1) {
                        maxNum += "0";
                    }
                }
                //组装补0
                if (maxNum.length > 1) {
                    if (max[1] == "9") {
                        maxNum = parseInt(max[0]) + 1 + "0" + maxNum;
                    } else {
                        maxNum = max[0] + (parseInt(max[1]) + 1) + maxNum;
                    }
                } else {
                    maxNum = "100";
                }
                return maxNum;
            }
            //计算最小值
            function minNumCount(num) {
                if (num < 10000) {
                    return "0";
                }
                let minNum = "";
                //将数字转化为数组
                let min = num.toString().split("");
                for (var i = 0; i < min.length; i++) {
                    //组装补0
                    if (i > 1) {
                        minNum += "0";
                    }
                }
                if (min[1] == "0") {
                    minNum = parseInt(min[0]) - 1 + "9" + minNum;
                } else {
                    minNum = min[0] + parseInt(min[1]) + minNum;
                }

                return minNum;
            }

            let maxNum = Math.max(...left1.data.count);
            let minNum = Math.min(...left1.data.count);
            maxNum = maxNumCount(maxNum);
            minNum = minNumCount(minNum);
            let yName = "人数（万）";
            if (maxNum > 9999999) {
                yName = "人数（千万）";
            }
            var option;

            option = {
                grid: {
                    width: "84%",
                    height: "75%",
                    top: "20%", //生成的图片和顶部的间距
                    left: "5%",
                    bottom: "0%",
                    right: "16%",
                    containLabel: true //为ture才会生效
                },
                tooltip: {
                    trigger: "axis"
                    //   axisPointer: {
                    //     type: "shadow",
                    //   },
                },
                xAxis: {
                    // name: "日期",
                    nameTextStyle: {
                        color: "#03CECF",
                        fontSize: 14
                    },
                    type: "category",
                    boundaryGap: false,
                    data: left1.data.time,
                    axisLabel: {
                        color: "#03CECF",
                        fontSize: 14,
                        margin: 10
                        // interval: 0, //使x轴上的文字显示完全,
                    },
                    axisLine: {
                        show: true,
                        lineStyle: {
                            color: "rgb(37,52,82)"
                        }
                    },
                    axisTick: {
                        show: false
                    }
                },
                yAxis: {
                    type: "value",
                    name: yName,
                    nameTextStyle: {
                        color: "#03CECF",
                        fontSize: 14
                    },
                    min: minNum,
                    max: maxNum,
                    axisLine: {
                        lineStyle: {
                            color: "rgb(37,52,82)"
                        },
                        show: true
                    },
                    splitLine: {
                        show: true,
                        lineStyle: {
                            color: "rgba(37,52,82)"
                        }
                    },
                    axisLabel: {
                        color: "#03CECF",
                        fontSize: 14,
                        interval: 20,
                        formatter: function (value, index) {
                            if (yName.indexOf("千万") && maxNum > 10000000) {
                                value = (value / 10000000).toFixed(2);
                            } else if (maxNum > 10000 && maxNum < 10000000) {
                                value = value / 10000;
                            }
                            return value;
                        }
                    }
                },
                splitLine: {
                    show: false
                },
                series: [
                    {
                        data: left1.data.count,
                        type: "line",
                        showSymbol: true,
                        itemStyle: {
                            emphasis: {
                                color: "rgb(7,162,148)",
                                borderColor: "rgba(7,162,148,0.6)",
                                borderWidth: 20
                            },
                            normal: {
                                color: "rgb(62,195,221)",
                                borderColor: "rgb(6,65,95)",
                                lineStyle: {
                                    color: "rgb(101,184,196)"
                                }
                            }
                        },
                        areaStyle: {
                            normal: {
                                color: new echarts.graphic.LinearGradient(
                                    0,
                                    0,
                                    0,
                                    1,
                                    [
                                        {
                                            offset: 0,
                                            color: "#68e3e5"
                                        },
                                        {
                                            offset: 1,
                                            color: "rgba(24, 68, 121,0)"
                                        }
                                    ],
                                    false
                                )
                            }
                        }
                    }
                ]
            };
        },
        //偏差分析
        pcfx() {
            // mock 数据
            const dataArr = {
                xdata: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
                rateData: [-10, -12, -13, -15, -12, 0, 5, 8, 9, 14, 17, 21],
                rateData2: [-6, -8, -9, -11, -8, 4, 9, 12, 15, 17, 21, 24],
                disinfeced: [320, 340, 480, 140, 380, 400, 300, 257, 420, 356, 268, 300, 321],
                disinfeced2: [320, 340, 480, 140, 380, 400, 300, 257, 420, 356, 268, 300, 321],
            }
            const grid = { top: '20%', left: '10%', right: '10%', bottom: '15%' }
            // xAxis
            const xAxis = {
                axisTick: { show: true },
                axisLine: { lineStyle: { color: 'rgba(255,255,255, .2)' } },
                axisLabel: { textStyle: { fontSize: 12, color: '#fff' }, },
                data: dataArr.xdata
            }
            // yAxis
            const yAxis = [{
                type: "value",
                name: "单位MWh",
                splitLine: { lineStyle: { color: 'rgba(255,255,255, .05)' } },
                axisLine: { show: false, lineStyle: { color: "#fff" } },
                axisLabel: { textStyle: { fontSize: 12, color: '#fff' } }
            }, {
                // 双y轴，主要用于折线图，所以不需要显示坐标
                type: "value",
                show: true,
                min: -20,
                max: 30,
                axisLabel: {
                    formatter: "{value}" + "%",
                    textStyle: { fontSize: 12, color: '#fff' }
                }
            }]

            // series
            const series = [
                {
                    z: 1,
                    // stack: '总量',
                    type: 'bar',
                    name: '电费',
                    barWidth: 9,
                    // barGap: '-100%',
                    data: dataArr.disinfeced,
                    itemStyle: {
                        color: {
                            type: 'linear',
                            x: 0, x2: 1, y: 0, y2: 0,
                            colorStops: [{ offset: 0, color: 'rgba(1, 197, 185, 1)' }, { offset: 0.5, color: 'rgba(1, 197, 185, .8)' }, { offset: 0.5, color: 'rgba(1, 197, 185, .8)' }, { offset: 1, color: 'rgba(1, 197, 185, 1)' }]
                        }
                    },
                },
                {
                    z: 2,
                    // stack: '总量',
                    type: 'bar',
                    name: '',
                    barWidth: 9,
                    // barGap: '-100%',
                    data: dataArr.disinfeced2,
                    itemStyle: {
                        color: {
                            type: 'linear',
                            x: 0, x2: 1, y: 0, y2: 0,
                            colorStops: [{ offset: 0, color: 'rgba(17, 195, 255, .7)' }, { offset: 0.5, color: 'rgba(17, 195, 255, .5)' }, { offset: 0.5, color: 'rgba(17, 195, 255, .5)' }, { offset: 1, color: 'rgba(17, 195, 255, .7)' }]
                        }
                    },
                },
                {
                    z: 9,
                    // 双y轴
                    yAxisIndex: 1,
                    name: '销售电价', type: 'line',
                    symbol: 'circle',
                    symbolSize: [6, 6],
                    color: {
                        type: 'linear', x: 1, y: 0, x2: 0, y2: 0,
                        // 0% 处的颜色                           // 100% 处的颜色
                        colorStops: [{ offset: 0, color: '#9DBA19 ' }, { offset: 1, color: '#9DBA19' }],
                        global: false // 缺省为 false
                    },
                    lineStyle: {
                        color: {
                            type: 'linear', x: 1, y: 0, x2: 0, y2: 0,
                            // 0% 处的颜色                           // 100% 处的颜色
                            colorStops: [{ offset: 0, color: '#9DBA19 ' }, { offset: 1, color: '#9DBA19' }],
                            global: false // 缺省为 false
                        }
                    },
                    data: dataArr.rateData
                },
                {
                    z: 9,
                    // 双y轴
                    yAxisIndex: 1,
                    name: '', type: 'line',
                    symbol: 'circle',
                    symbolSize: [6, 6],
                    color: {
                        type: 'linear', x: 1, y: 0, x2: 0, y2: 0,
                        // 0% 处的颜色                           // 100% 处的颜色
                        colorStops: [{ offset: 0, color: '#01BC5A ' }, { offset: 1, color: '#01BC5A' }],
                        global: false // 缺省为 false
                    },
                    lineStyle: {
                        color: {
                            type: 'linear', x: 1, y: 0, x2: 0, y2: 0,
                            // 0% 处的颜色                           // 100% 处的颜色
                            colorStops: [{ offset: 0, color: '#01BC5A ' }, { offset: 1, color: '#01BC5A' }],
                            global: false // 缺省为 false
                        }
                    },
                    data: dataArr.rateData2
                }]
            let option = { xAxis, yAxis, series, grid }
            this.defineEcharts("pcfxb", option);
        },
        yhhyzb() {
            var trafficWay = [{
                name: '钢铁',
                value: 280
            }, {
                name: '水泥',
                value: 280
            }, {
                name: '化工',
                value: 280
            }, {
                name: '制造',
                value: 280
            }, {
                name: '其他',
                value: 280
            }];
            var data = [];
            var color = ['#00C6B7', '#058DDB', '#91D449', '#232A3C', '#7A7A7A', '#ff5b00', '#ff3000']
            for (var i = 0; i < trafficWay.length; i++) {
                data.push({
                    value: trafficWay[i].value,
                    name: trafficWay[i].name,
                    itemStyle: {
                        normal: {
                            borderWidth: 5,
                            shadowBlur: 20,
                            borderColor: color[i],
                            shadowColor: color[i]
                        }
                    }
                }, {
                    value: 60,
                    name: "",
                    itemStyle: {
                        normal: {
                            label: {
                                show: false
                            },
                            labelLine: {
                                show: false
                            },
                            color: 'rgba(0, 0, 0, 0)',
                            borderColor: 'rgba(0, 0, 0, 0)',
                            borderWidth: 0
                        }
                    }
                });
            }
            var seriesOption = [{
                name: '',
                type: 'pie',
                clockWise: false,
                center: ["36%", '50%'],
                radius: [105, 109],
                hoverAnimation: false,
                itemStyle: {
                    normal: {
                        label: {
                            show: false,
                        },
                        labelLine: {
                            show: false,
                            color: '#00ffff'
                        }
                    }
                },
                data: data
            }];
            let option = {
                color: color,
                title: {
                    text: '28%',
                    subtext: "钢铁",
                    top: '48%',
                    textAlign: "center",
                    left: "35%",
                    textStyle: {
                        color: '#fff',
                        fontSize: 32,
                        fontWeight: '400'
                    },
                    subtextStyle: {
                        fontFamily: "微软雅黑",
                        fontSize: 16,
                        color: '#fff',
                    }
                },
                graphic: {
                    elements: [{
                        type: "image",
                        z: 3,
                        style: {
                            image: "transparent",
                            width: 178,
                            height: 178
                        },
                        left: 'center',
                        top: 'center',
                        position: [100, 100]
                    }]
                },
                tooltip: {
                    show: false
                },
                legend: {
                    icon: "rect",
                    orient: '',
                    x: 'right',
                    data: [{
                        name: '钢铁',
                        value: 280
                    }, {
                        name: '水泥',
                        value: 280
                    }, {
                        name: '化工',
                        value: 280
                    }, {
                        name: '制造',
                        value: 280
                    }, {
                        name: '其他',
                        value: 280
                    }],
                    formatter: function (name) {
                        var percent = 0;
                        var total = 0;
                        for (var i = 0; i < trafficWay.length; i++) {
                            total += trafficWay[i].value;
                        }
                        const item = trafficWay.filter((item) => item.name === name)[0];
                        console.log(item);
                        percent = ((item.value / total) * 100).toFixed(2);
                        if (name !== '') {
                            return `{name|${name}}` + "\t" + "\t" + `{num|${percent}}{num|%}`;
                            // return `{name|${name}` + `{num|${percent}}{name|kWh}`;
                        } else {
                            return '';
                        }
                    },
                    left: 320,
                    bottom: 145,
                    align: 'left',
                    textStyle: {
                        color: "#fff",
                        rich: {
                            name: {
                                fontSize: 16,
                                color: "#fff",
                            },
                            num: {
                                fontSize: 12,
                                color: color[1],
                            }
                        },
                    },
                    itemGap: 20
                },
                toolbox: {
                    show: false
                },
                series: seriesOption
            }
            this.defineEcharts("yhhyzb", option)
        },
    },
    mounted() {
        this.defineEcharts("ndqylfb", this.option);
        // this.defineEcharts("ynl", this.option1);
        this.qyyh();
        this.pcfx();
        this.yhhyzb();
        var data = [
            {
                name: "南京市",
                value: 1,
            },
            {
                name: "济南市",
                value: 2,
            },
            {
                name: "徐州市",
                value: 3,
            },
            {
                name: "常州市",
                value: 4,
            },
            {
                name: "苏州市",
                value: 5,
            },
            {
                name: "南通市",
                value: 6,
            },
            {
                name: "连云港市",
                value: 7,
            },
            {
                name: "淮安市",
                value: 8,
            },
            {
                name: "盐城市",
                value: 9,
            },
            {
                name: "扬州市",
                value: 10,
            },
            {
                name: "镇江市",
                value: 11,
            },
            {
                name: "泰州市",
                value: 12,
            },
            {
                name: "宿迁市",
                value: 13,
            },
        ];
        var splitList = [
            {
                start: 1,
                end: 1,
                label: "济南市",
                color: "#236da8",
            },
            {
                start: 2,
                end: 2,
                label: "无锡市",
                color: "#2884db",
            },
            {
                start: 3,
                end: 3,
                label: "徐州市",
                color: "#244779",
            },
            {
                start: 4,
                end: 4,
                label: "常州市",
                color: "#246198",
            },
            {
                start: 5,
                end: 5,
                label: "苏州市",
                color: "#2884db",
            },
            {
                start: 6,
                end: 6,
                label: "南通市",
                color: "#2884db",
            },
            {
                start: 7,
                end: 7,
                label: "连云港市",
                color: "#244779",
            },
            {
                start: 8,
                end: 8,
                label: "淮安市",
                color: "#244779",
            },
            {
                start: 9,
                end: 9,
                label: "盐城市",
                color: "#244779",
            },
            {
                start: 10,
                end: 10,
                label: "扬州市",
                color: "#246198",
            },
            {
                start: 11,
                end: 11,
                label: "镇江市",
                color: "#2884db",
            },
            {
                start: 12,
                end: 12,
                label: "泰州市",
                color: "#2884db",
            },
            {
                start: 13,
                end: 13,
                label: "宿迁市",
                color: "#244779",
            },
        ];
        var chartDom = document.getElementById("map");
        var myChart = this.$echarts.init(chartDom, null, {
            devicePixelRatio: 10, // 设置为2或更高的值
        });

        //获取山东地图数据。
        $.get(
            "https://geo.datav.aliyun.com/areas_v3/bound/370000_full.json",
            function (geojson) {
                echarts.registerMap("山东", geojson);
                let option = {
                    series: [
                        {
                            tooltip: {
                                trigger: "item",
                            },
                            name: "山东",
                            type: "map3D",
                            map: "山东",
                            boxDepth: 60, //地图倾斜度
                            regionHeight: 6, //地图厚度
                            label: {
                                show: true, //是否显示市
                                textStyle: {
                                    color: "#fff", //文字颜色
                                    fontSize: 12, //文字大小
                                    fontFamily: "微软雅黑",
                                    backgroundColor: "rgba(0,0,0,0)", //透明度0清空文字背景
                                },
                            },
                            itemStyle: {
                                opacity: 1, // 透明度
                                borderWidth: 1.5, //分界线宽度
                                borderColor: "#0699E4", //分界线颜色
                            },
                            groundplane: {
                                show: true,
                            },
                            data: data,
                            //shading: 'realistic',
                            // 真实感材质相关配置 shading: 'realistic'时有效
                            realisticMaterial: {
                                detailTexture: "#093099", // 纹理贴图
                                textureTiling: 0, // 纹理平铺，1是拉伸，数字表示纹理平铺次数
                                roughness: 0, // 材质粗糙度，0完全光滑，1完全粗糙
                                metalness: 1, // 0材质是非金属 ，1金属
                                roughnessAdjust: 0,
                            },
                            viewControl: {
                                distance: 80, // 地图视角 控制初始大小
                                rotateSensitivity: 1, // 旋转
                                zoomSensitivity: 1, // 缩放
                            },
                        },
                    ],
                    dataRange: {
                        show: false,
                        splitList: splitList,
                    },
                    animation: true,
                };
                myChart.setOption(option);
                myChart.on("click", this.chartClick);
                let chartClick = function (param) {
                    console.log(param);
                    myChart.setOption(option, false);
                    window.addEventListener("resize", function () {
                        myChart.resize();
                    });
                    var selectedPro = param.name;
                    if (!cityProper[selectedPro]) {
                        option.series.splice(1);
                        option.legend = null;
                        option.visualMap = null;
                        myChart.setOption(option, true);
                        return;
                    }
                    //获取点击区域数据
                    $.get(cityProper[selectedPro], function (geojson) {
                        echarts.registerMap(selectedPro, geojson);
                        //根据需求，如果要替换青岛地图，series参数为[0]，不替换为[1],其中left、top自己设置。
                        option.series[0] = {
                            name: "",
                            type: "map",
                            map: selectedPro,
                            boxDepth: 80, //地图倾斜度
                            regionHeight: 5, //地图厚度
                            itemStyle: {
                                normal: {
                                    label: {
                                        show: true,
                                    },
                                },
                                emphasis: {
                                    label: {
                                        show: true,
                                    },
                                },
                            },
                            groundplane: {
                                show: false,
                            },
                            data: data,
                            shading: "realistic",
                            // 真实感材质相关配置 shading: 'realistic'时有效
                            realisticMaterial: {
                                detailTexture: "#fff", // 纹理贴图
                                textureTiling: 1, // 纹理平铺，1是拉伸，数字表示纹理平铺次数
                                roughness: 0, // 材质粗糙度，0完全光滑，1完全粗糙
                                metalness: 0, // 0材质是非金属 ，1金属
                                roughnessAdjust: 0,
                            },
                            viewControl: {
                                distance: 100, // 地图视角 控制初始大小
                                rotateSensitivity: 1, // 旋转
                                zoomSensitivity: 1, // 缩放
                            },
                        };
                        myChart.setOption(option);
                    });
                };
            }
        );
    },
    beforeDestroy() {
        //离开页面后，删除屏幕监听，防止监听事件一直存在
        window.removeEventListener("resize", this.getResize);
    },
};
</script>
<style scoped lang="less">
.box {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    color: #fff;

    .title {
        width: 100%;
        height: 76px;
        background: url(../assets/客户侧总体用能情况分析/标题背景.png);
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 10px;

        p {
            width: 527px;
            height: 47px;
            font-size: 44px;
            font-family: " Alibaba PuHuiTi" 2, " Alibaba PuHuiTi" 20;
            font-weight: 600;
            line-height: 47px;
            letter-spacing: 3px;
            color: #fff;
            margin-left: -60px;
        }

        img:nth-of-type(1) {
            width: 231px;
            height: 59px;
        }

        img:nth-of-type(2) {
            width: 158px;
            height: 28px;
        }
    }

    .containter {
        width: 100%;
        height: 967px;
        display: flex;
        position: relative;
        justify-content: space-between;

        .left {
            width: 436px;
            height: 100%;

            .ndqyyh {
                // height: 27.22vh;
                height: 294px;
                //   width: 100%;
                background: url("../assets/客户侧总体用能情况分析/组 3117.png");
                background-size: cover;
                position: relative;
                display: flex;
                flex-direction: column;
                align-items: center;

                .title {
                    position: absolute;
                    left: 160px;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    line-height: 36px;
                }


                .bg_title {
                    width: 394px;
                    height: 62px;
                    background: url(../assets/zhsdy/组\ 3187.png);
                    background-size: cover;
                    position: absolute;
                    top: 40px;
                    display: flex;
                    justify-content: space-around;

                    .tit_first {
                        width: 116px;
                        height: 44px;
                        font-size: 32px;
                        font-weight: 700;
                        color: #14ADFD;
                        line-height: 44px;
                        display: flex;

                        .tit_danwei {
                            width: 14px;
                            height: 44px;
                            font-size: 14px;
                            font-weight: 400;
                            color: #FFFFFF;
                            line-height: 44px;
                        }
                    }

                    .tit_second {
                        width: 132px;
                        display: flex;
                        justify-content: space-between;

                        div {
                            p:nth-child(1) {
                                width: 28px;
                                height: 24px;
                                font-size: 14px;
                                font-weight: 400;
                                color: #FFFFFF;
                                line-height: 24px;
                            }

                            p.tb_percent {
                                width: 57px;
                                height: 30px;
                                font-size: 16px;
                                font-weight: 700;
                                color: #F2B810;
                                line-height: 30px;
                                display: flex;

                                img {
                                    width: 12px;
                                    height: 12px;
                                    margin-top: 4x;
                                }
                            }
                        }
                    }
                }

                #qyyh {
                    width: 100%;
                    height: 180px;
                    margin-top: 100px;
                }
            }

            .ndsdl {
                height: 315px;
                background: url("../assets/客户侧总体用能情况分析/实时负荷走势-框.png");
                background-size: cover;
                margin-top: 6px;
                position: relative;
                display: flex;
                flex-direction: column;
                align-items: center;

                .title {
                    position: absolute;
                    left: 160px;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    line-height: 36px;
                }

                .bg_title {
                    width: 394px;
                    height: 62px;
                    background: url(../assets/zhsdy/组\ 3187.png);
                    background-size: cover;
                    position: absolute;
                    top: 40px;
                    display: flex;
                    justify-content: space-around;

                    .tit_first {
                        width: 116px;
                        height: 44px;
                        font-size: 32px;
                        font-weight: 700;
                        color: #14ADFD;
                        line-height: 44px;
                        display: flex;

                        .tit_danwei {
                            width: 14px;
                            height: 44px;
                            font-size: 14px;
                            font-weight: 400;
                            color: #FFFFFF;
                            line-height: 44px;
                        }
                    }

                    .tit_second {
                        width: 132px;
                        display: flex;
                        justify-content: space-between;

                        div {
                            p:nth-child(1) {
                                width: 28px;
                                height: 24px;
                                font-size: 14px;
                                font-weight: 400;
                                color: #FFFFFF;
                                line-height: 24px;
                            }

                            p.tb_percent {
                                width: 57px;
                                height: 30px;
                                font-size: 16px;
                                font-weight: 700;
                                color: #F2B810;
                                line-height: 30px;
                                display: flex;

                                img {
                                    width: 12px;
                                    height: 12px;
                                    margin-top: 4x;
                                }
                            }
                        }
                    }
                }

                #ndsdl {
                    position: absolute;
                    width: 100%;
                    height: 200px;
                    bottom: 10px;
                }
            }

        }

        .right {
            width: 436px;
            height: 100%;

            .ndsdje {
                height: 294px;
                width: 100%;
                background: url("../assets/客户侧总体用能情况分析/组 3117.png");
                background-size: cover;
                position: relative;

                .title {
                    position: absolute;
                    left: 160px;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    line-height: 36px;
                }

                #ndsdje {
                    width: 100%;
                    height: 100%;
                    padding-top: 50px;

                    .infos {
                        width: 396px;
                        height: 104px;
                        display: flex;
                        justify-content: space-between;
                        background: url(../assets/zhsdy/组\ 3168.png);
                        background-size: cover;
                        margin: 0 auto;
                        margin-bottom: 15px;

                        .first {
                            width: 180px;

                            p:nth-child(1) {
                                width: 180px;
                                height: 44px;
                                display: flex;
                                justify-content: space-between;

                                img {
                                    width: 15px;
                                    height: 15px;
                                    border: none;
                                    display: block;
                                    margin-top: 10px;
                                    margin-left: 10px;
                                }

                                span.titles {
                                    width: 140px;
                                    height: 44px;
                                    font-size: 14px;
                                    font-weight: 400;
                                    color: #FFFFFF;
                                    line-height: 44px;
                                    display: block;
                                }
                            }

                            p.money {
                                width: 145px;
                                height: 44px;
                                font-size: 40px;
                                font-weight: 700;
                                color: #52C2FF;
                                line-height: 44px;

                                .danwei {
                                    color: #fff;
                                    font-size: 14px;
                                }
                            }
                        }

                        .second {
                            width: 172px;
                            height: 100%;

                            div.s_tit {
                                width: 172px;
                                display: flex;
                                justify-content: space-around;

                                p:nth-child(1) {
                                    width: 28px;
                                    height: 36px;
                                    font-size: 14px;
                                    font-weight: 400;
                                    color: #FFFFFF;
                                    line-height: 36px;
                                }

                                p.tb_percent {
                                    width: 57px;
                                    height: 30px;
                                    font-size: 16px;
                                    font-weight: 700;
                                    color: #F2B810;
                                    line-height: 30px;
                                    display: flex;

                                    img {
                                        width: 12px;
                                        height: 12px;
                                        margin-top: 8px;
                                    }
                                }
                            }

                            .bigBox {
                                width: 172px;
                                height: 10px;
                                background-color: #273546;
                                border-radius: 67px 67px 67px 67px;
                                margin-top: 5px;

                                .smallBox {
                                    width: 100px;
                                    height: 10px;
                                    border-radius: 67px 67px 67px 67px;
                                    background: linear-gradient(to right,
                                            rgba(38, 206, 253, 1) 20%,
                                            rgba(42, 254, 255, 1) 100%,
                                            rgba(38, 206, 253, 1) 20%);
                                }
                            }
                        }
                    }
                }
            }

            .pcfx {
                height: 294px;
                width: 100%;
                background: url("../assets/客户侧总体用能情况分析/组 3117.png");
                background-size: cover;
                position: relative;
                margin-top: 6px;

                .title {
                    position: absolute;
                    left: 160px;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    line-height: 36px;
                }

                #pcfx {
                    width: 100%;
                    height: 100%;
                    padding-top: 40px;

                    .pc_tit {
                        width: 398px;
                        height: 48px;
                        margin: 0 auto;
                        background: url(../assets/zhsdy/组\ 3169.png);
                        background-size: cover;
                        display: flex;
                        justify-content: space-between;
                        margin-top: 5px;

                        .pc_l {
                            width: 272px;
                            height: 48px;
                            display: flex;
                            justify-content: flex-start;

                            .pc_name {
                                margin-left: 18px;
                                height: 44px;
                                font-size: 14px;
                                font-weight: 400;
                                color: #FFFFFF;
                                line-height: 44px;
                                display: block;
                            }

                            img {
                                width: 15px;
                                height: 15px;
                                margin-top: 18px;
                                margin-left: 10px;
                            }

                            .pc_count {
                                margin-left: 14px;
                                height: 44px;
                                font-size: 24px;
                                font-weight: 700;
                                color: #0AA7FF;
                                line-height: 44px;
                                display: block;
                            }

                            .pc_danwei {
                                margin-left: 6px;
                                width: 33px;
                                height: 44px;
                                font-size: 14px;
                                font-weight: 400;
                                color: #FFFFFF;
                                line-height: 44px;
                            }
                        }

                        .pc_r {
                            margin-right: 20px;

                            p:nth-child(1) {
                                width: 28px;
                                height: 24px;
                                font-size: 14px;
                                font-weight: 400;
                                color: #FFFFFF;
                                line-height: 24px;
                            }

                            p.tb_percent {
                                width: 57px;
                                height: 24px;
                                font-size: 16px;
                                font-weight: 700;
                                color: #F2B810;
                                line-height: 24px;
                                display: flex;

                                img {
                                    width: 12px;
                                    height: 12px;
                                    margin-top: 8px;
                                }
                            }
                        }
                    }

                    #pcfxb {
                        width: 100%;
                        height: 150px;
                    }
                }
            }

            .yhhyzb {
                height: 353px;
                width: 100%;
                background: url("../assets/客户侧总体用能情况分析/组 3119.png");
                background-size: cover;
                position: relative;
                margin-top: 6px;

                .title {
                    position: absolute;
                    left: 160px;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    line-height: 36px;
                }

                #yhhyzb {
                    width: 100%;
                    height: 100%;
                }
            }
        }

        .footer {
            position: absolute;
            width: 1445px;
            height: 325px;
            bottom: 10px;
            display: flex;
            justify-content: space-between;

            .ndqylfb {
                width: 776px;
                height: 100%;
                background: url(../assets/zhsdy/用能量-框.png);
                background-size: cover;
                position: relative;

                .title {
                    position: absolute;
                    left: 50%;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    transform: translateX(-50%);
                    line-height: 36px;
                }

                #ndqylfb {
                    width: 100%;
                    height: 100%;
                }
            }

            .ggzcxx {
                width: 653px;
                height: 325px;
                background: url(../assets/zhsdy/组\ 3120.png);
                background-size: cover;
                position: relative;

                .title {
                    position: absolute;
                    left: 50%;
                    width: 144px;
                    height: 36px;
                    font-size: 18px;
                    font-family: "Source Han Sans";
                    font-weight: 700;
                    color: rgba(255, 255, 255, 0.87);
                    line-height: 36px;
                    transform: translateX(-50%);
                }

                #ggzcxx {
                    width: 100%;
                    margin-top: 60px;

                    ul {
                        width: 100%;


                        li {
                            width: 100%;
                            height: 40px;
                            padding: 0px 36px 0px 18px;
                            box-sizing: border-box;
                            display: flex;
                            justify-content: space-between;
                            align-items: center;

                            .img {
                                width: 12px;
                                height: 12px;
                                display: block;
                            }

                            .times {
                                width: 145px;
                                height: 36px;
                                color: #52C2FF;
                                font-size: 14px;
                                line-height: 36px;
                                display: block;
                            }

                            .info {
                                width: 381px;
                                height: 36px;
                                white-space: nowrap;
                                text-overflow: ellipsis;
                                overflow: hidden;
                                font-size: 14px;
                                line-height: 36px;
                                display: block;
                            }
                        }

                        li:nth-child(2n+2) {
                            background: #0E2C7E;
                        }
                    }
                }
            }
        }

        #map {
            width: 994px;
            position: absolute;
            height: 627px;
            left: 50%;
            transform: translateX(-50%);
            overflow: hidden;
        }
    }
}
</style>
  