echarts饼图与堆叠柱状图格式以及月份最后一天年份年份最后一天

柱状图

option = {
tooltip: {
trigger: ‘axis’,
axisPointer: {
type: ‘shadow’
}
},
legend: {},
grid: {
left: ‘3%’,
right: ‘4%’,
bottom: ‘3%’,
containLabel: true
},
xAxis: [
{
type: ‘category’,
axisLabel: {
rotate: 60
},
data: [‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’, ‘Fri’, ‘Sat’, ‘Sun’]
}
],
yAxis: [
{
type: ‘value’
}
],
series: [
{
name: ‘保养’,
type: ‘bar’,
stack: ‘Ad’,
emphasis: {
focus: ‘series’
},
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: ‘技能’,
type: ‘bar’,
stack: ‘Ad’,
emphasis: {
focus: ‘series’
},
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: ‘职业’,
type: ‘bar’,
stack: ‘Ad’,
emphasis: {
focus: ‘series’
},
data: [150, 232, 201, 154, 190, 330, 410]
}
]
};

饼图
var fontColor = “#fff”;
var data = [
{
name: “中央”,
value: 456,
},
{
name: “自治区”,
value: 231,
},
{
name: “盟市”,
value: 121,
},
{
name: “旗县区”,
value: 45,
},
{
name: “整合资金”,
value: 154,
},
{
name: “其他”,
value: 67,
},
];

option = {
color: [
“#bf19ff”,
“#854cff”,
“#5f45ff”,
“#02cdff”,
“#314976”,
“#f9e264”,
“#f47a75”,
“#009db2”,
“#024b51- 0780cf”,
“#765005”,
],
backgroundColor: “#0f375f”,
title: {
text: 7789,
subtext: “总计”,
textStyle: {
color: “#f2f2f2”,
fontSize: 40,
},
subtextStyle: {
fontSize: 30,
color: [“#ff9d19”],
},
x: “center”,
y: “center”,
},
tooltip: {
trigger: “item”,
formatter: “{b}
{c}亿元 ({d}%)”,
},
legend: {
bottom:15,
textStyle: {
color: “#f2f2f2”,
fontSize: 15,
},
data: data,
},
series: [
{
radius: [“50%”, “80%”],
center: [“50%”, “50%”],
type: “pie”,
label: {
position: “inner”,
formatter: “{d}%”,
},
labelLine: {
normal: {
show: true,
},
emphasis: {
show: true,
},
},
data: data,
}
]
};

饼图调整

var data = [
{
name: “保养”,
value: 456,
},
{
name: “技改”,
value: 231,
},
{
name: “交机”,
value: 121,
},
{
name: “巡检”,
value: 45,
},
{
name: “维修”,
value: 154,
},
];

option = {
color: [
“#2D9AFF”,
“#FF939A”,
“#86E2B6”,
“#B8A3FB”,
“#F9D010”
],
tooltip: {
trigger: “item”,
formatter: “{b}
{c}亿元 ({d}%)”,
},
legend: {
bottom:15,
textStyle: {
color: “#000”,
fontSize: 15,
},
data: data,
},
series: [
{
radius: [“50%”, “80%”],
center: [“50%”, “50%”],
type: “pie”,
label: {
position: “inner”,
formatter: “{d}%”,
},
labelLine: {
normal: {
show: true,
},
emphasis: {
show: true,
},
},
data: data,
}
]
};

let someDate = new Date(2021 , 6, 0)  6月最后一天
let someYear = new Date( 2021 , 0 , 0) 年份最后一天
console.log( someDate ,someYear, '六月的最后一天')
    // 月分最后一天
let someDate = new Date(Number(this.year), Number(this.month), 0)
// 年份最后一天
let someYear = new Date(Number(this.year), 0, 0)
// 月分最后一天
let someDate = new Date(Number(this.year), Number(this.month), 0)
// 年份最后一天
let someYear = new Date(Number(this.year), 0, 0)
// console.log(moment(someDate).format('DD'),'每月最后一天')
// console.log(moment(someYear).format('DD'),'每年最后一天')
// 开始日期
let start = this.barState ? `${this.year}-${this.month}-01` : `${this.year}-01-01`;
let startEnd = this.barState ? `${this.year}-${this.month}-${moment(someDate).format('DD')}` : `${this.year}-12-${moment(someYear).format('DD')}`;
堆叠柱状图格式处理
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      function isNullArr(datas) {
        let objectArr = {
          交机: [],
          海外: [],
          巡检: [],
          维修: [],
          保养: [],
          技改: [],
          召请: [],
        };
        //   遍历对象
        for (let key in datas) {
          // 将null进行赋值操作
          if (datas[key] == null) {
            datas[key] = {
              交机: [],
              海外: [],
              巡检: [],
              维修: [],
              保养: [],
              技改: [],
              召请: [],
            };
          } else {
            datas[key] = { ...objectArr, ...datas[key] };
            // console.log(datas[key])
          }
        }
        return datas;
      }

      let orderStatistics = {
        20220701: { 维修: [{ name: 1 }] },
        20220704: { 维修: [], 保养: [{ name: 4 }] },
        20220705: null,
      };
      let res = isNullArr(orderStatistics);
      console.log(res);

      let dateList = [];
      let nameList = [];

      for (var date in res) {
        // console.log(date)
        dateList.push(date);
      }
      dateList.forEach((item) => {
        for (var date in res[item]) {
          if (nameList.indexOf(date) == -1) {
            nameList.push(date);
          }
        }
      });

      let s = {};
      nameList.forEach((items) => {
        s[items] = [];
        dateList.forEach((item, index) => {
          s[items].push(res[item][items] ? res[item][items].length : 0);
        });
      });
      console.log(s);
      let zhuArr = []
      // 自定义柱状图颜色
      for (var name in s) {
            zhuArr.push({
              name: name,
              type: 'bar',
              barWidth: 5,
              stack: 'Search Engine',
              emphasis: {
                focus: 'series'
              },
              itemStyle: {//自定义颜色
                normal: { color: { '交机': '#2D9AFF', '海外': '#FF939A', '巡检': '#86E2B6', '维修': '#B8A3FB', '保养': '#F9D010', '技改': '#3CB371', '召请': '#00FF00', }[name] },
              },
              data: s[name]
            })
          }
          console.log(dateList )
        console.log(zhuArr)
         
    </script>
  </body>
</html>


饼图格式以及颜色
let arr = [ { name: '交机', color: '#2D9AFF', value: 0 },
              { name: '海外', color: '#FF939A', value: 0 },
              { name: '巡检', color: '#86E2B6', value: 0 },
              { name: '维修', color: '#B8A3FB', value: 0 },
              { name: '保养', color: '#F9D010', value: 0 },
              { name: '技改', color: '#3CB371', value: 0 },
              { name: '召请', color: '#00FF00', value: 0 }]
      console.log(arr )




饼图计算总数 vue
<template>
    <div class="ten-exchartsl">
        <div class="echarts-box">
            <div class="ten-box" id="tenl"></div>
        </div>
    </div>
</template>

<script>
import * as echarts from 'echarts';

export default {
    data() {
        return {
            list: [
                {
                    name: '中央',
                    value: 456
                },
                {
                    name: '自治区',
                    value: 231
                },
                {
                    name: '盟市',
                    value: 121
                },
                {
                    name: '旗县区',
                    value: 45
                },
                {
                    name: '整合资金',
                    value: 154
                },
                {
                    name: '其他',
                    value: 67
                }
            ],
            sumData: 0
        };
    },
    mounted() {
        this.getData();
    },
    methods: {
        getData() {
            this.$nextTick(() => {
                this.getIndex();
            });
        },
        getIndex() {
            var myChart = echarts.init(document.getElementById('tenl'));
            myChart.off('legendselectchanged'); //解决重复触发
            let number = 0;
            this.list.forEach(item => {
                number += item.value;
            });

            let option = {
                color: [
                    '#bf19ff',
                    '#854cff',
                    '#5f45ff',
                    '#02cdff',
                    '#314976',
                    '#f9e264',
                    '#f47a75',
                    '#009db2',
                    '#024b51- 0780cf',
                    '#765005'
                ],
                backgroundColor: '#0f375f',
                title: {
                    text: number,
                    subtext: '总计',
                    textStyle: {
                        color: '#f2f2f2',
                        fontSize: 40
                    },
                    subtextStyle: {
                        fontSize: 30,
                        color: ['#ff9d19']
                    },
                    x: 'center',
                    y: 'center'
                },
                tooltip: {
                    trigger: 'item',
                    formatter: '{b}<br/> {c}亿元  ({d}%)'
                },
                legend: {
                    bottom: 15,
                    textStyle: {
                        color: '#f2f2f2',
                        fontSize: 15
                    },
                    data: this.list
                },
                series: [
                    {
                        radius: ['50%', '80%'],
                        center: ['50%', '50%'],
                        type: 'pie',
                        label: {
                            position: 'inner',
                            formatter: '{d}%'
                        },
                        labelLine: {
                            normal: {
                                show: true
                            },
                            emphasis: {
                                show: true
                            }
                        },
                        data: this.list
                    }
                ]
            };
            myChart.on('legendselectchanged', e => {
                let nameArray = [];
                for (let key in e.selected) {
                    nameArray.push({ title: key, isTitle: e.selected[key] });
                }
                let arr = []
                 arr = this.list.reduce((pre, cur) => {
                    let target = pre.find(ee => ee.title == cur.name);
                    if (target) {
                        Object.assign(target, cur);
                    } else {
                        pre.push(cur);
                    }
                    return pre;
                }, nameArray);

                // 计算
                let number = 0;
               arr.forEach(item => {
                    if (item.isTitle) {
                        if(item.value) {
                        number += item.value;
                        }
                    }
                });
                option.title.text = number;
                myChart.setOption(option);
            });
            myChart.setOption(option, true);
        }
    }
};
</script>

<style scoped>
.ten-exchartsl {
    /* padding: 0px 16px; */
    margin-top: 10px;
    width: 100%;
    margin-bottom: 20px;
}

.ten-box {
    height: 500px;
}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值