react echarts动态数据展示

import React from 'react';

import http from 'misc/http';
import Constant from 'misc/constant';
import moment from 'moment';
import global from 'misc/global';
import echarts from 'echarts/lib/echarts';
import 'echarts/lib/chart/line';
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title'
import { format } from 'echarts/lib/export';


export default class Welcome extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            data: [],
            seriesData: []
        };
        this.initBarEcharts = this.initBarEcharts.bind(this);
    }

    initBarEcharts() {
        console.log(this.props)
        let day = this.props.day
        // let tockPointName = this.props.tockPointName
        let myChart = echarts.init(document.getElementById('main'));
        let options = {
            title: { text: '实时库存记录' },
            tooltip: {
                trigger: 'axis',
                formatter: function(a) {
                    // console.log(a)
                    let list = []
                    let listItem = ''
                    for (var i = 0; i < a.length; i++) {
                        if(a[i].value!='' ){
                            list.push(
                                a[i].seriesName +':'+ a[i].value
                              )
                        }
                    }
                    listItem = list.join('<br>')
                    return  listItem 
                  }
            },
            xAxis: {
                data: day
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            yAxis: {},
            series: [
                {
                    name: '物料名称',
                    type: 'line',
                    data: this.props.productName
                },
                {
                    name: '库存点',
                    type: 'line',
                    data: this.props.count
                },
                {
                    name: '即时库存',
                    type: 'line',
                    data: this.props.stockPointName
                },
                {
                    name: '变更时间',
                    type: 'line',
                    data: this.props.day
                }

            ]
        };
        myChart.setOption(options, true)
    }
    componentDidMount() {
        this.initBarEcharts();
    }
    render() {
        return (
            <div>
                <div id="main" style={{ width: '100%', height: 400 }}></div>
                {/* <button onClick={this.changeData}>changeData</button> */}
                <p>{this.state.seriesData}</p>
            </div>
        );
    }
    componentWillUpdate() {

    }
    componentDidUpdate() {
        this.initBarEcharts();
    }
}



在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在项目中引入 echarts 和百度地图的 JS 库。可以通过 npm 安装,也可以直接在 html 中引入。 然后,在组件中引入 echarts 和百度地图的 JS 库,并创建一个 div 作为容器,用于存放 echarts 和地图。 ```jsx import React, { useEffect, useRef } from 'react'; import echarts from 'echarts'; import 'echarts-gl/dist/echarts-gl'; import 'echarts/map/js/world'; import BMap from 'BMap'; const MapChart = ({ data }) => { const chartRef = useRef(null); useEffect(() => { if (chartRef.current) { const myChart = echarts.init(chartRef.current); const option = { tooltip: { trigger: 'item', formatter: '{b}' }, series: [ { type: 'map3d', map: 'world', roam: true, itemStyle: { areaColor: '#fff', borderColor: '#333' }, label: { show: true }, data: [] } ] }; myChart.setOption(option); const map = new BMap.Map(chartRef.current); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.enableScrollWheelZoom(true); const overlay = new BMap.Overlay(); overlay.initialize = function (map) { this._map = map; const div = document.createElement('div'); div.style.position = 'absolute'; div.style.width = '10px'; div.style.height = '10px'; div.style.background = '#f00'; map.getPanes().labelPane.appendChild(div); this._div = div; return div; }; overlay.draw = function () { const position = map.pointToOverlayPixel(new BMap.Point(116.404, 39.915)); this._div.style.left = position.x + 'px'; this._div.style.top = position.y + 'px'; }; map.addOverlay(overlay); } }, [data]); return <div ref={chartRef} style={{ width: '100%', height: '600px' }} />; }; export default MapChart; ``` 在 useEffect 中,先初始化 echarts 实例,然后创建地图,并将 echarts 实例与地图容器绑定。然后,初始化地图,并添加一个自定义的覆盖物。 这里的 data 是从 props 中传递过来的,可以根据需要进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值