日历

描述:当前是关于Echarts图表中的 示例。
 
             let history = {
          color: ['#33FF99','#33FF99','#ff3333','ffa033'],
          targetDate:[{
			"color": "#33FF99",
			"levelCode": "10001",
			"levelName": "优",
			"targetDate": "2021-08-15"
		}, {
			"color": "#33FF99",
			"levelCode": "10001",
			"levelName": "优",
			"targetDate": "2021-08-16"
		}, {
			"color": "#ff3333",
			"levelCode": "10004",
			"levelName": "差",
			"targetDate": "2021-08-30"
		}, {
			"color": "#ffa033",
			"levelCode": "10003",
			"levelName": "中",
			"targetDate": "2021-08-31"
		}],
          levelName: ['优','良','中','差']
        };
 
    let maxArr = [];

    let month = new Date('2021-08').getMonth() + 1; //获取当前月
    var year = new Date('2021-08').getFullYear(); //获取当前年
    var datas = []; //新建日期数组
    var dataLength = new Date(year, month).toJSON().substring(0, 10).split('-')[2]; //获取当前年月日期最大值
    for (var i = 0; i < Number(dataLength); i++) {
      let months = month >= 10 ? month : '0' + month;
      let day = i + 1 >= 10 ? i + 1 : '0' + (i + 1);
      datas.push({ date: year + '-' + months + '-' + day, total: 0, statu: history.levelName[i] ? history.levelName[i] : '优' }); //存入数组
    }
    let chartData = [];
    let chartData1 = [];
    let color = history.color;
    datas.forEach((item, index) => {
      if(history.targetDate.length>0){
        history.targetDate.map((itm,index1)=>{
          if(item.date == itm.targetDate){
            maxArr.push(item.total);
            chartData1.push({
              name: item.statu,
              value: [item.date, item.total],
              symbolSize: 1,
              label: {
                show: true,
                formatter: function (params) {
                  return '\n▂';
                },
                color: itm.color?itm.color : 'transparent',
                fontSize: 18,
              },
            });
            chartData.push({
              name: item.statu,
              value: [item.date, item.total],
            });
  
          }else {
            maxArr.push(item.total);
            chartData1.push({
              name: item.statu,
              value: [item.date, item.total],
              symbolSize: 1,
              label: {
                show: true,
                formatter: function (params) {
                  return '\n▂';
                },
                color: 'transparent',
                fontSize: 18,
              },
            });
            chartData.push({
              name: item.statu,
              value: [item.date, item.total],
            });
          }
        })
      }
      else {
        maxArr.push(item.total);
        chartData1.push({
          name: item.statu,
          value: [item.date, item.total],
          symbolSize: 1,
          label: {
            show: true,
            formatter: function (params) {
              return '\n▂';
            },
            color: 'transparent',
            fontSize: 18,
          },
        });
        chartData.push({
          name: item.statu,
          value: [item.date, item.total],
        });
      }

    });
    let thisMonth = '2021-08'; //当前月份

option = {

      visualMap: {
        min: 0,
        max: 300,
        inRange: {
          color: ['rgb(9,5,27)'],
        },
        show: false,
      },
      calendar: {
        cellSize: [48, 48],
        left: 'center',
        top: 'middle',
        orient: 'vertical',
        range: [thisMonth],
        itemStyle: {
          borderWidth: 0,
        },
        splitLine: {
          show: false,
        },
        yearLabel: { show: false },
        monthLabel: {
          show: false,
        },
        dayLabel: {
          show: false,
          firstDay: 1,
          margin: 10,
          nameMap: 'cn',
        },
      },
      series: [
        {
          type: 'scatter',
          coordinateSystem: 'calendar',
          symbolSize: 1,
          label: {
            normal: {
              show: true,
              formatter: function (params) {
                var d = echarts.number.parseDate(params.value[0]);
                return d.getDate();
              },
              textStyle: {
                color: '#7FA1C5',
                fontSize: 18,
                fontWeight: 'bold'
              },
            },
          },
          data: chartData,
        },
        {
          type: 'heatmap',
          coordinateSystem: 'calendar',
          data: chartData,
        },
        {
          type: 'scatter',
          coordinateSystem: 'calendar',
          data: chartData1,
        },
      ],
    };