app bar

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            let datas = [
    {
        name: '2021-06-13 17:00:00',
        value: 16,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-13 18:00:00',
        value: 13,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-13 19:00:00',
        value: 17,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-13 20:00:00',
        value: 19,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-13 21:00:00',
        value: 19,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-13 22:00:00',
        value: 20,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-13 23:00:00',
        value: 22,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 00:00:00',
        value: 21,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 01:00:00',
        value: 20,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 02:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 03:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 04:00:00',
        value: 20,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 05:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 06:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 07:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 08:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 09:00:00',
        value: 17,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 10:00:00',
        value: 19,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 11:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 12:00:00',
        value: 17,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 13:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 14:00:00',
        value: 20,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 15:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 16:00:00',
        value: 16,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 17:00:00',
        value: 18,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 18:00:00',
        value: 20,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 19:00:00',
        value: 21,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 20:00:00',
        value: 23,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 21:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 22:00:00',
        value: 23,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-14 23:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 00:00:00',
        value: 23,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 01:00:00',
        value: 23,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 02:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 03:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 04:00:00',
        value: 23,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 05:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 06:00:00',
        value: 25,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 07:00:00',
        value: 26,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 08:00:00',
        value: 27,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 09:00:00',
        value: 26,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 10:00:00',
        value: 24,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 11:00:00',
        value: 25,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 12:00:00',
        value: 28,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 13:00:00',
        value: 31,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 14:00:00',
        value: 36,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 15:00:00',
        value: 43,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 16:00:00',
        value: 42,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 17:00:00',
        value: 41,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 18:00:00',
        value: 35,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 19:00:00',
        value: 31,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 20:00:00',
        value: 31,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 21:00:00',
        value: 31,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 22:00:00',
        value: 29,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-15 23:00:00',
        value: 29,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 00:00:00',
        value: 29,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 01:00:00',
        value: 29,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 02:00:00',
        value: 29,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 03:00:00',
        value: 29,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 04:00:00',
        value: 30,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 05:00:00',
        value: 33,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 06:00:00',
        value: 34,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 07:00:00',
        value: 35,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 08:00:00',
        value: 38,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 09:00:00',
        value: 37,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 10:00:00',
        value: 32,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 11:00:00',
        value: 32,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 12:00:00',
        value: 33,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 13:00:00',
        value: 35,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 14:00:00',
        value: 34,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 15:00:00',
        value: 33,
        itemStyle: {
            color: '#64C601',
        },
    },
    {
        name: '2021-06-16 16:00:00',
        value: 32,
        itemStyle: {
            color: '#64C601',
        },
    },
];
option = {
    dataZoom: [
        {
            type: 'inside',
            xAxisIndex: [0],
            zoomLock: true,
            startValue: datas.length - 20,
            end: 100,
            preventDefaultMouseMove: true,
        },
    ],
    tooltip: {
        trigger: 'axis',
        triggerOn: 'none',
        backgroundColor: '#3BBFF5',
        formatter: function ([param]) {
            return `${param.axisValue} ${param.seriesName}:${param.value}`;
        },
        position: function (point, params, dom, rect, size) {
            return [point[0], point[1] - 45];
        },
        textStyle: {
            color: '#FFFFFF',
        },
        borderWidth:0,
        extraCssText: 'border-radius: 37px 37px 37px 0px;box-shadow: 0px 2px 5px rgba(98, 170, 255, 0.45);',
    },
    grid: {
        left: 0,
        right: '2%',
        bottom: '3%',
        top: '3%',
        containLabel: true,
    },
    xAxis: {
        type: 'category',
        data: datas.map((t) => t.name).concat(new Array(5).fill('')),
        axisTick: {
            alignWithLabel: true,
        },
        axisLine: { show: false },
        axisTick: { show: false },
    },
    yAxis: {
        type: 'value',
        scale: true,
        axisLine: {},
        axisTick: {},
        min: '0',
    },
    series: {
        name: 'AQI',
        type: 'bar',
        barWidth: '70%',
        lineStyle: {
            width: 3,
        },
        data: datas,
    },
};
setTimeout(function () {
    myChart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: datas.length - 1,
    });
    myChart.on('dataZoom', function ({ batch }) {
        let [b] = batch;
        let diff = b.end - b.start,
            sum = b.start + b.end,
            r = ((sum - 100) / (100 - diff)) * diff;
        let index = Math.round((datas.length * (sum + r)) / 200);
        myChart.dispatchAction({
            type: 'showTip',
            seriesIndex: 0,
            dataIndex: index >= datas.length ? datas.length - 1 : index,
        });
    });
}, 100);