ionic4 + Angular7 使用echarts创建日历图,并添加点击事件

2023-05-16

1.安装echarts

npm install echarts --save
npm install ngx-echarts --save

2.angular.json引入   echarts.min.js

"build": {
    "options": {
        ...
        "scripts": ["node_modules/echarts/dist/echarts.min.js"]
        ...
    }
}

3.app.module.ts 引入 NgxEchartsModule

import {NgxEchartsModule} from 'ngx-echarts';

@NgModule({
    imports: [
        ...
        NgxEchartsModule,
        ...
    ],
    declarations: []
})

4.echarts.component.html

<div echarts [options]="option" class="echarts" id="main"></div>

5.echarts.component.ts

import {Component, ElementRef, OnInit, SimpleChanges} from '@angular/core';
const echarts = require('echarts');

@Component({
    selector: 'app-echarts',
    templateUrl: './echarts.component.html',
    styleUrls: ['./echarts.component.scss'],
})

export class EchartsComponent implements OnInit {
    option;
    my_chart;
    data = [
        ['2019-1-1', '初四'],
        ['2019-1-2', '初五'],
        ['2019-1-3', '初六'],
        ['2019-1-4', '初七'],
        ['2019-1-5', '初八', '小寒'],
        ['2019-1-6', '初九'],
        ['2019-1-7', '初十'],
        ['2019-1-8', '十一'],
        ['2019-1-9', '十二'],
        ['2019-1-10', '十三'],
        ['2019-1-11', '十四'],
        ['2019-1-12', '十五'],
        ['2019-1-13', '十六'],
        ['2019-1-14', '十七'],
        ['2019-1-15', '十八'],
        ['2019-1-16', '十九'],
        ['2019-1-17', '二十'],
        ['2019-1-18', '廿一'],
        ['2019-1-19', '廿二'],
        ['2019-1-20', '廿三', '大寒'],
        ['2019-1-21', '廿四'],
        ['2019-1-22', '廿五'],
        ['2019-1-23', '廿六'],
        ['2019-1-24', '廿七'],
        ['2019-1-25', '廿八'],
        ['2019-1-26', '廿九'],
        ['2019-1-27', '三十'],
        ['2019-1-28', '正月'],
        ['2019-1-29', '初二'],
        ['2019-1-30', '初三'],
        ['2019-1-31', '初四'],
        ['2019-2-1', '初五'],
        ['2019-2-2', '初六'],
        ['2019-2-3', '初七', '立春'],
        ['2019-2-4', '初八'],
        ['2019-2-5', '初九'],
        ['2019-2-6', '初十'],
        ['2019-2-7', '十一'],
        ['2019-2-8', '十二'],
        ['2019-2-9', '十三'],
        ['2019-2-10', '十四'],
        ['2019-2-11', '十五'],
        ['2019-2-12', '十六'],
        ['2019-2-13', '十七'],
        ['2019-2-14', '十八'],
        ['2019-2-15', '十九'],
        ['2019-2-16', '二十'],
        ['2019-2-17', '廿一'],
        ['2019-2-18', '廿二', '雨水'],
        ['2019-2-19', '廿三'],
        ['2019-2-20', '廿四'],
        ['2019-2-21', '廿五'],
        ['2019-2-22', '廿六'],
        ['2019-2-23', '廿七'],
        ['2019-2-24', '廿八'],
        ['2019-2-25', '廿九'],
        ['2019-2-26', '二月'],
        ['2019-2-27', '初二'],
        ['2019-2-28', '初三'],
        ['2019-3-1', '初四'],
        ['2019-3-2', '初五'],
        ['2019-3-3', '初六'],
        ['2019-3-4', '初七'],
        ['2019-3-5', '初八', '驚蟄'],
        ['2019-3-6', '初九'],
        ['2019-3-7', '初十'],
        ['2019-3-8', '十一'],
        ['2019-3-9', '十二'],
        ['2019-3-10', '十三'],
        ['2019-3-11', '十四'],
        ['2019-3-12', '十五'],
        ['2019-3-13', '十六'],
        ['2019-3-14', '十七'],
        ['2019-3-15', '十八'],
        ['2019-3-16', '十九'],
        ['2019-3-17', '二十'],
        ['2019-3-18', '廿一'],
        ['2019-3-19', '廿二'],
        ['2019-3-20', '廿三', '春分'],
        ['2019-3-21', '廿四'],
        ['2019-3-22', '廿五'],
        ['2019-3-23', '廿六'],
        ['2019-3-24', '廿七'],
        ['2019-3-25', '廿八'],
        ['2019-3-26', '廿九'],
        ['2019-3-27', '三十'],
        ['2019-3-28', '三月'],
        ['2019-3-29', '初二'],
        ['2019-3-30', '初三'],
        ['2019-3-31', '初四'],
        ['2019-4-1', '初五'],
        ['2019-4-2', '初六'],
        ['2019-4-3', '初七'],
        ['2019-4-4', '初八', '清明'],
        ['2019-4-5', '初九'],
        ['2019-4-6', '初十'],
        ['2019-4-7', '十一'],
        ['2019-4-8', '十二'],
        ['2019-4-9', '十三'],
        ['2019-4-10', '十四'],
        ['2019-4-11', '十五'],
        ['2019-4-12', '十六'],
        ['2019-4-13', '十七'],
        ['2019-4-14', '十八'],
        ['2019-4-15', '十九'],
        ['2019-4-16', '二十'],
        ['2019-4-17', '廿一'],
        ['2019-4-18', '廿二'],
        ['2019-4-19', '廿三'],
        ['2019-4-20', '廿四', '穀雨'],
        ['2019-4-21', '廿五'],
        ['2019-4-22', '廿六'],
        ['2019-4-23', '廿七'],
        ['2019-4-24', '廿八'],
        ['2019-4-25', '廿九'],
        ['2019-4-26', '四月'],
        ['2019-4-27', '初二'],
        ['2019-4-28', '初三'],
        ['2019-4-29', '初四'],
        ['2019-4-30', '初五'],
        ['2019-5-1', '初六'],
        ['2019-5-2', '初七'],
        ['2019-5-3', '初八'],
        ['2019-5-4', '初九'],
        ['2019-5-5', '初十', '立夏'],
        ['2019-5-6', '十一'],
        ['2019-5-7', '十二'],
        ['2019-5-8', '十三'],
        ['2019-5-9', '十四'],
        ['2019-5-10', '十五'],
        ['2019-5-11', '十六'],
        ['2019-5-12', '十七'],
        ['2019-5-13', '十八'],
        ['2019-5-14', '十九'],
        ['2019-5-15', '二十'],
        ['2019-5-16', '廿一'],
        ['2019-5-17', '廿二'],
        ['2019-5-18', '廿三'],
        ['2019-5-19', '廿四'],
        ['2019-5-20', '廿五'],
        ['2019-5-21', '廿六', '小滿'],
        ['2019-5-22', '廿七'],
        ['2019-5-23', '廿八'],
        ['2019-5-24', '廿九'],
        ['2019-5-25', '三十'],
        ['2019-5-26', '五月'],
        ['2019-5-27', '初二'],
        ['2019-5-28', '初三'],
        ['2019-5-29', '初四'],
        ['2019-5-30', '初五'],
        ['2019-5-31', '初六'],
        ['2019-6-1', '初七'],
        ['2019-6-2', '初八'],
        ['2019-6-3', '初九'],
        ['2019-6-4', '初十'],
        ['2019-6-5', '十一', '芒種'],
        ['2019-6-6', '十二'],
        ['2019-6-7', '十三'],
        ['2019-6-8', '十四'],
        ['2019-6-9', '十五'],
        ['2019-6-10', '十六'],
        ['2019-6-11', '十七'],
        ['2019-6-12', '十八'],
        ['2019-6-13', '十九'],
        ['2019-6-14', '二十'],
        ['2019-6-15', '廿一'],
        ['2019-6-16', '廿二'],
        ['2019-6-17', '廿三'],
        ['2019-6-18', '廿四'],
        ['2019-6-19', '廿五'],
        ['2019-6-20', '廿六'],
        ['2019-6-21', '廿七', '夏至'],
        ['2019-6-22', '廿八'],
        ['2019-6-23', '廿九'],
        ['2019-6-24', '六月'],
        ['2019-6-25', '初二'],
        ['2019-6-26', '初三'],
        ['2019-6-27', '初四'],
        ['2019-6-28', '初五'],
        ['2019-6-29', '初六'],
        ['2019-6-30', '初七'],
        ['2019-7-1', '初八'],
        ['2019-7-2', '初九'],
        ['2019-7-3', '初十'],
        ['2019-7-4', '十一'],
        ['2019-7-5', '十二'],
        ['2019-7-6', '十三'],
        ['2019-7-7', '十四', '小暑'],
        ['2019-7-8', '十五'],
        ['2019-7-9', '十六'],
        ['2019-7-10', '十七'],
        ['2019-7-11', '十八'],
        ['2019-7-12', '十九'],
        ['2019-7-13', '二十'],
        ['2019-7-14', '廿一'],
        ['2019-7-15', '廿二'],
        ['2019-7-16', '廿三'],
        ['2019-7-17', '廿四'],
        ['2019-7-18', '廿五'],
        ['2019-7-19', '廿六'],
        ['2019-7-20', '廿七'],
        ['2019-7-21', '廿八'],
        ['2019-7-22', '廿九', '大暑'],
        ['2019-7-23', '閏六',],
        ['2019-7-24', '初二'],
        ['2019-7-25', '初三'],
        ['2019-7-26', '初四'],
        ['2019-7-27', '初五'],
        ['2019-7-28', '初六'],
        ['2019-7-29', '初七'],
        ['2019-7-30', '初八'],
        ['2019-7-31', '初九'],
        ['2019-8-1', '初十'],
        ['2019-8-2', '十一'],
        ['2019-8-3', '十二'],
        ['2019-8-4', '十三'],
        ['2019-8-5', '十四'],
        ['2019-8-6', '十五'],
        ['2019-8-7', '十六', '立秋'],
        ['2019-8-8', '十七'],
        ['2019-8-9', '十八'],
        ['2019-8-10', '十九'],
        ['2019-8-11', '二十'],
        ['2019-8-12', '廿一'],
        ['2019-8-13', '廿二'],
        ['2019-8-14', '廿三'],
        ['2019-8-15', '廿四'],
        ['2019-8-16', '廿五'],
        ['2019-8-17', '廿六'],
        ['2019-8-18', '廿七'],
        ['2019-8-19', '廿八'],
        ['2019-8-20', '廿九'],
        ['2019-8-21', '三十'],
        ['2019-8-22', '七月'],
        ['2019-8-23', '初二', '處暑'],
        ['2019-8-24', '初三'],
        ['2019-8-25', '初四'],
        ['2019-8-26', '初五'],
        ['2019-8-27', '初六'],
        ['2019-8-28', '初七'],
        ['2019-8-29', '初八'],
        ['2019-8-30', '初九'],
        ['2019-8-31', '初十'],
        ['2019-9-1', '十一'],
        ['2019-9-2', '十二'],
        ['2019-9-3', '十三'],
        ['2019-9-4', '十四'],
        ['2019-9-5', '十五'],
        ['2019-9-6', '十六'],
        ['2019-9-7', '十七', '白露'],
        ['2019-9-8', '十八'],
        ['2019-9-9', '十九'],
        ['2019-9-10', '二十'],
        ['2019-9-11', '廿一'],
        ['2019-9-12', '廿二'],
        ['2019-9-13', '廿三'],
        ['2019-9-14', '廿四'],
        ['2019-9-15', '廿五'],
        ['2019-9-16', '廿六'],
        ['2019-9-17', '廿七'],
        ['2019-9-18', '廿八'],
        ['2019-9-19', '廿九'],
        ['2019-9-20', '八月'],
        ['2019-9-21', '初二'],
        ['2019-9-22', '初三'],
        ['2019-9-23', '初四', '秋分'],
        ['2019-9-24', '初五'],
        ['2019-9-25', '初六'],
        ['2019-9-26', '初七'],
        ['2019-9-27', '初八'],
        ['2019-9-28', '初九'],
        ['2019-9-29', '初十'],
        ['2019-9-30', '十一'],
        ['2019-10-1', '十二'],
        ['2019-10-2', '十三'],
        ['2019-10-3', '十四'],
        ['2019-10-4', '十五'],
        ['2019-10-5', '十六'],
        ['2019-10-6', '十七'],
        ['2019-10-7', '十八'],
        ['2019-10-8', '十九', '寒露'],
        ['2019-10-9', '二十'],
        ['2019-10-10', '廿一'],
        ['2019-10-11', '廿二'],
        ['2019-10-12', '廿三'],
        ['2019-10-13', '廿四'],
        ['2019-10-14', '廿五'],
        ['2019-10-15', '廿六'],
        ['2019-10-16', '廿七'],
        ['2019-10-17', '廿八'],
        ['2019-10-18', '廿九'],
        ['2019-10-19', '三十'],
        ['2019-10-20', '九月'],
        ['2019-10-21', '初二'],
        ['2019-10-22', '初三'],
        ['2019-10-23', '初四', '霜降'],
        ['2019-10-24', '初五'],
        ['2019-10-25', '初六'],
        ['2019-10-26', '初七'],
        ['2019-10-27', '初八'],
        ['2019-10-28', '初九'],
        ['2019-10-29', '初十'],
        ['2019-10-30', '十一'],
        ['2019-10-31', '十二'],
        ['2019-11-1', '十三'],
        ['2019-11-2', '十四'],
        ['2019-11-3', '十五'],
        ['2019-11-4', '十六'],
        ['2019-11-5', '十七'],
        ['2019-11-6', '十八'],
        ['2019-11-7', '十九', '立冬'],
        ['2019-11-8', '二十'],
        ['2019-11-9', '廿一'],
        ['2019-11-10', '廿二'],
        ['2019-11-11', '廿三'],
        ['2019-11-12', '廿四'],
        ['2019-11-13', '廿五'],
        ['2019-11-14', '廿六'],
        ['2019-11-15', '廿七'],
        ['2019-11-16', '廿八'],
        ['2019-11-17', '廿九'],
        ['2019-11-18', '十月'],
        ['2019-11-19', '初二'],
        ['2019-11-20', '初三'],
        ['2019-11-21', '初四'],
        ['2019-11-22', '初五', '小雪'],
        ['2019-11-23', '初六'],
        ['2019-11-24', '初七'],
        ['2019-11-25', '初八'],
        ['2019-11-26', '初九'],
        ['2019-11-27', '初十'],
        ['2019-11-28', '十一'],
        ['2019-11-29', '十二'],
        ['2019-11-30', '十三'],
        ['2019-12-1', '十四'],
        ['2019-12-2', '十五'],
        ['2019-12-3', '十六'],
        ['2019-12-4', '十七'],
        ['2019-12-5', '十八'],
        ['2019-12-6', '十九'],
        ['2019-12-7', '二十', '大雪'],
        ['2019-12-8', '廿一'],
        ['2019-12-9', '廿二'],
        ['2019-12-10', '廿三'],
        ['2019-12-11', '廿四'],
        ['2019-12-12', '廿五'],
        ['2019-12-13', '廿六'],
        ['2019-12-14', '廿七'],
        ['2019-12-15', '廿八'],
        ['2019-12-16', '廿九'],
        ['2019-12-17', '三十'],
        ['2019-12-18', '十一月',],
        ['2019-12-19', '初二'],
        ['2019-12-20', '初三'],
        ['2019-12-21', '初四'],
        ['2019-12-22', '初五', '冬至'],
        ['2019-12-23', '初六'],
        ['2019-12-24', '初七'],
        ['2019-12-25', '初八'],
        ['2019-12-26', '初九'],
        ['2019-12-27', '初十'],
        ['2019-12-28', '十一'],
        ['2019-12-29', '十二'],
        ['2019-12-30', '十三'],
        ['2019-12-31', '十四']
    ];

    constructor(private el: ElementRef) {}

    ngOnInit() {
        this.my_chart = echarts.init(this.el.nativeElement.querySelector('#main'));

        // 点击日历上的号数,触发的事件
        this.my_chart.on('click', (params) => {
            this.my_chart.setOption(this.option);
        });
    }

    echarts(){
        const heatmapData = [];
        const lunarData = [];
        for (let i = 0; i < this.data.length; i++) {
            heatmapData.push([
                this.data[i][0],
                Math.random() * 300
            ]);
            lunarData.push({
                value:[this.data[i][0],1,this.data[i][1],this.data[i][2] ],
                symbol:'rect', // 核心1,这边长方形来填充
                itemStyle:{
                    color:'rgba(0,0,0,0)',  // 填充色颜色
                    borderColor : '#ff4546', // 选中,边框颜色
                },
            });
        }

        this.option = {
            tooltip: {
                formatter(params) {
                    return '降雨量: ' + params.value[1].toFixed(2);
                }
            },

            visualMap: {
                show: true,
                min: 0,
                max: 300,
                calculable: true,
                seriesIndex: [2],
                orient: 'horizontal',
                left: 'center',
                bottom: 20,
                inRange: {
                    color: ['#e0ffff', '#006edd'],
                    opacity: 0.3
                },
                controller: {
                    inRange: {
                        opacity: 0.5
                    }
                }
            },

            calendar: [{
                left: 'center',
                top: 'middle',
                cellSize: ['auto', 55],
                yearLabel: {show: true},
                orient: 'vertical',
                dayLabel: {
                    firstDay: 1,
                    // nameMap: 'cn',
                    nameMap: ['周日','周一','周二','周三','周四','周五','周六'],
                    margin: 0, // 星期标签与轴线之间的距离
                    padding: [15,22,15,22],
                    /*backgroundColor: '#FAFAFA', // 可以是直接的颜色值,例如:'#123234', 'red', rgba(0,23,11,0.3)'
                    color : '#85807C',*/
                },
                monthLabel: {show: false},
                range: this.range,
                itemStyle: {
                    borderColor:'#F0F0F0'
                },
                splitLine : {
                    show:false
                }
            }],

            series: [
                {
                    type: 'scatter',
                    coordinateSystem: 'calendar',
                    symbolSize: (e)=> {
                        // console.log(e);
                        if (e[0] === this.current_day) {
                            return [50,55];
                        } else {
                            return 1;
                        }
                    },
                    label: {
                        normal: {
                            show: true,
                            formatter(params) {
                                const d = echarts.number.parseDate(params.value[0]);
                                return d.getDate() + '\n\n'+params.value[2] + '\n\n'
                            },
                            textStyle: {
                                color: '#000'
                            }
                        }
                    },
                    data: lunarData
                },
                {
                    type: 'scatter',
                    coordinateSystem: 'calendar',
                    symbolSize: 1,
                    label: {
                        normal: {
                            show: true,
                            formatter(params) {
                                return '\n\n' + (params.value[3] || '');
                            },
                            textStyle: {
                                fontSize: 12,
                                fontWeight: 700,
                                color: '#a00'
                            }
                        }
                    },
                    data: lunarData
                },
                {
                    name: '降雨量',
                    type: 'heatmap',
                    coordinateSystem: 'calendar',
                    data: heatmapData,
                }
            ]
        };
    }
    
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ionic4 + Angular7 使用echarts创建日历图,并添加点击事件 的相关文章

  • 基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟

    基于51单片机 74HC595移位寄存器 8位数码管时钟 Proteus仿真 实例代码 span class token macro property span class token directive hash span span cl
  • 51单片机外部中断使用示例程序

    51单片机外部中断使用示例程序 本实例来源以STC89演示示例 xff0c 为了方便初学者更好的阅读 xff0c 直接将其贴出来 首先分享一份 STC单片机资源一览表 你也可以从https www stcisp com 下载到 xff0c
  • 使用kubeadm部署kubernetes集群

    一 安装环境准备 1 安装环境 xff1a centos7 5 xff0c 一个master节点 xff0c 两个node节点 CentOS Linux release 7 5 1804 Core 2 设置 etc hosts文件的IP和主
  • 【Proteus仿真】51单片机自定义倒计时

    Proteus仿真 51单片机自定义倒计时 Proteus仿真 类似一个时间闹铃的一个功能 只不过这是只是一个用来倒计时的 程序源码 span class token comment 实验说明 实验接线 1 动态数码管模块 gt 单片机管脚
  • 微信小程序云开发之数据库操作

    一 初始化 xff1a 在做数据的操作 xff08 增删改查 xff09 之前 xff0c 先要获取数据库的对象 xff0c 可以通过wx cloud database函数来获取到 xff0c 这个函数默认会使用wx cloud init方
  • QT中QTablewidget表格常用操作

    QTabwidget常用操作 0 QTableWidget初始化示例1 列设置 xff08 表头 xff09 1 1 添加表头1 2 设置表头样式 xff08 颜色和字体 xff09 1 3 设置表头宽度1 4 自适应表头宽度1 5 设置表
  • qt获取天气代码

    qt显示天气信息 1 发送网络请求获取天气数据1 1 需要包含的头文件1 2 创建QNetworkAccessManager对象1 3 发送请求1 4 获取数据并解析 2 天气JSON格式数据3 demo代码4 最终效果 1 发送网络请求获
  • qt弹窗界面模态设置

    1 模态说明 模态 xff1a 启动模态界面时 xff0c 例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框 xff0c 除了该对话框整个应用程序窗口都无法接受用户响应 xff0c 无法切换界面 xff0c 无法切换当前Qt应用
  • QTabWidget常用样式设置

    1 前言 个人使用qt xff0c 感觉QTabwidget是个非常好用的控件 xff0c 但有时候总是感觉其tab样式不好控制或说不够灵活 xff0c 从而导致放弃使用该控件 比如说 xff0c 标签横向显示的时候 xff0c 文字随之也
  • qt环形进度条控件设计

    上效果 推荐文章 xff1a qt电池控件设计 xff1a https blog csdn net weixin 42887343 article details 113932145QWidget控件拖动 xff1a https blog
  • GPL协议认识

    图片链接 xff1a https www runoob com w3cnote open source license html GPL协议 1 GPL GNU General Public License xff0c GNU通用公共许可协
  • C++中的Lambda函数

    Lambda函数也叫匿名函数 xff0c 是自定义函数的一种 专指用关键字 lambda 定义的无名短函数 xff0c 所以也有Lambda表达式这种说法 这种函数得名于省略了用def声明函数的标准步骤 xff0c 是C 43 43 11中
  • go语言判断文件是否为UTF8编码

    一 思路 xff1a 1 UTF8编码规则 xff1a 对于单字节字符 xff0c 8个比特位最高位为0 对于多字节字符 xff0c 若字符由n个字节组成 xff0c 则第一个字节8个比特中最高n位都是1 xff0c 剩下n 1字节中最高位
  • qtcreator调试经常断点导致卡死问题解决

    一 问题描述 在qt开发中 xff0c 使用debuging进行调试 xff08 点击下面按钮 xff09 总会出现 xff0c 软件运行还好 xff0c 就是运行到断点的时候 xff0c 软件一直在等待卡死 在windows上面没有遇到过
  • python+opencv读取摄像头并显示

    解释看注释 xff0c 直接上代码 xff01 span class token keyword import span cv2 span class token comment 打开本地摄像头 span cap span class to
  • python+opencv拉流(串流)

    解释看注释 xff0c 直接上代码 xff01 span class token keyword import span cv2 span class token comment 流链接 span url span class token
  • python+opencv做一个视频录制器(mp4)

    1 功能说明 代码的功能就是读取摄像头视频显示 xff0c 并同时保存为mp4文件 xff0c 示例代码为1小时保存一个视频 2 代码 解释看注释 xff0c 直接上代码 xff01 span class token keyword imp
  • [Python] Pandas 中 read_csv 与 read_hdf 速度对比

    1 read csv VS read hdf 一般情况下 我们习惯使用 Pandas 中的 read csv 函数来读取 CSV 文件 但当 CSV 文件比较大时 read csv 的速度会显得有点慢 这时可以考虑使用 HDF5 格式来存储
  • inode节点(详解)

    首先 xff0c 要明确理解inode是理解Linux Unix文件系统和硬盘存储的基础 1 什么是inode xff1f 理解inode xff0c 要从文件存储说起 文件存储在硬盘上 xff0c 硬盘的最小存储单位叫做 扇区 每个扇区能
  • 8b/10b编码技术系列(一):Serdes、CDR、K码

    和大家分享一下关于8b 10b编码的知识点 xff0c 如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言 xff01 一 Serdes高速收发器 在传统的源同步传输中 xff0c 数据和时钟分离 xff0c 在速率较低 lt 1

随机推荐