react + echarts (radar)

import React from 'react';
import {render} from "react-dom";


let Page = React.createClass({
    getInitialState(){
        return{

        }
    },
    componentWillMount(){

    },
    componentDidMount(){
        this.radarConfig();
    },
    radarConfig(){
        //示例数据
        let arr = [
            {
                id:1,
                A: 40,
                act:'查看图片',
            },
            {
                id:2,
                A: 100,
                act:'查看图片',
            },
            {
                id:3,
                A: 80,
                act:'查看图片',
            },
            {
                id:4,
                A: 80,
                act:'查看图片',
            },
            {
                id:5,
                A: 80,
                act:'查看图片',
            },
            {
                id:6,
                A: 100,
                act:'查看图片',
            },
        ];
        let newArr = [];
        arr.map((v,i)=>{
            newArr[i]=arr[i].A;
        });
        let echarts = require('echarts');
        let myChart = echarts.init(document.getElementById('echartsRadar'));
        let myareaStyle={
            // color:['lightBlue','white','red'],//分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
            color:{
                type: 'linear',
                x: 1,
                y: 0,
                x2: 1,
                y2: 1,
                colorStops: [{
                    offset: 0, color: 'lightskyblue' // 0% 处的颜色
                },{
                    offset: .25, color: 'white' // 25% 处的颜色
                },{
                    offset: .5, color: 'white' // 50% 处的颜色
                },{
                    offset: .75, color: 'white' // 75% 处的颜色
                },{
                    offset: 1, color: 'lightskyblue' // 100% 处的颜色
                }],
                global: false, // 缺省为 false
            },
            shadowColor:"rgba(171,220,254,.3)",          //阴影颜色
            shadowOffsetX:0,            //阴影水平方向上的偏移距离。
            shadowOffsetY:0,            //阴影垂直方向上的偏移距离
            shadowBlur:10,              //图形阴影的模糊大小。
            opacity:.6,                  //图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形
        };
        let option = {
            radar: [
                {
                    indicator: [
                        {text: '形象品质', max: 100},
                        {text: '人数合理', max: 100},
                        {text: '时间控制', max: 100},
                        {text: '现场把控及配合', max: 100},
                        {text: '合作推广规范性', max: 100},
                        {text: '现场气氛', max: 100}
                    ],
                    center: ['50%','50%'],//调整雷达图的位置
                    radius: 150,//半径,可放大放小雷达图
                    axisLine: {//坐标轴线相关设置
                        show: true,
                        lineStyle: {
                            width:2,
                            color:  '#E6E9F1'
                        }
                    },
                    splitLine : {
                        show : true,
                        lineStyle : {
                            width : 2,
                            color : '#E6E9F1' // 图表背景网格线的颜色
                        }
                    },
                    splitArea: {
                        show: false,
                    },
                },
            ],
            series: [
                {
                    type: 'radar',
                    symbol: 'circle',//节点设置
                    symbolSize:12,//节点尺寸
                    data: [
                        {
                            value: newArr,//展示的分数
                            // name: '评分',//可加可不加
                            areaStyle: {
                                normal:myareaStyle
                            },
                            lineStyle: {
                                width:4,
                                color:"#E6E9F1",//描边颜色
                            },
                            itemStyle:{
                                color:"rgba(56,161,247,1)",//节点颜色
                            }
                        }
                    ]
                },
            ],
            triggerEvent:true//是否支持点击事件
        };

        myChart.setOption(option);

        var i = -1;

        //配置显示的节点内容
        myChart.setOption({
            radar: [
                {
                    name: {
                        rich: {
                            a: {
                                fontSize:26,
                                fontFamily:'PingFangHK-Regular',
                                lineHeight:36,
                                fontWeight:400,
                                color: 'rgba(153,153,153,1)',
                            },
                            b: {
                                color: 'rgba(84,84,84,1)',
                                fontSize:26,
                                lineHeight:32,
                                fontFamily:'HelveticaNeue-Bold',
                                fontWeight:'bold',
                                align: 'center',
                                paddingTop: 8,
                                paddingBottom: 8,
                            },
                            c: {
                                fontSize:26,
                                fontFamily:'PingFangHK-Regular',
                                lineHeight:36,
                                fontWeight:400,
                                color: '#38A1F7',
                                align: 'center',
                                paddingTop:4,
                                borderBottomWidth:2,
                                borderColor:'#38A1F7',
                                borderStyle:'solid',
                            },
                        },
                        formatter: (a,b,c)=>{
                            i++;
                            return `{a|${a}}\n{b|${arr[i].A}}\n{c|${arr[i].act}}`
                        }
                    }
                }
            ]
        });
        //添加点击事件
        myChart.on('click', function (params) {

        //这边都是看你自己业务需要进行操作的

            let c = params.name;
            let a = c.slice(3,c.indexOf('}'));
            //处理一下 自己是点的哪一个
            console.log('a',a);
        });
    },
render() {
    return (
        
); } }); render(, document.getElementById("app"));

 

 

嘿嘿,如果有什么可以精进的地方 欢迎各位老铁在线dd

你可能感兴趣的:(react+echarts)