工作笔记 报表项目- 关键3:echarts封装20230309

环境:idea

语言:java

框架:springboot

思路:后台封装百度的echarts,便于生产曲线,前端只需要调用对象

  1. 创建文件夹:EChartsOptions,用于存放各种echarts属性对象

  1. 创建子文件夹01:EChartsParts

  1. 创建对象ECAxisLabel

  1. 创建对象ECAxisLine

  1. 创建对象ECLineStyle

  1. 创建对象ECxAxisAxisLabel

@Data
public class ECAxisLabel {
    private String formatter;
}
@Data
public class ECAxisLine {
    private ECLineStyle lineStyle;
}
@Data
public class ECLineStyle {
    private String color;
}
@Data
public class ECxAxisAxisLabel {
    private String interval; //坐标轴刻度标签的显示间隔
    private String rotate; //刻度标签旋转的角度
}
  1. 创建子文件夹02:EChartsPie

  1. 创建对象EChartsPieISEmphasis

  1. 创建对象EChartsPieItemStyle

  1. 创建对象EChartsPieOneSerie

  1. 创建对象EChartsPieOneSerieData

  1. 创建对象EChartsPieOptions

@Data
public class EChartsPieISEmphasis {
    private String shadowBlur = "10";
    private String shadowOffsetX = "0";
    private String shadowColor="rgba(0, 0, 0, 0.5)";
}
@Data
public class EChartsPieItemStyle {
    private EChartsPieISEmphasis emphasis;

    public EChartsPieItemStyle(){
        this.setEmphasis(new EChartsPieISEmphasis());
    }
}
@Data
public class EChartsPieOneSerie {
    private String name;
    private String type="pie";
    private List<String> radius;
    private List<String> center;
    private String selectedMode="single";
    private List<EChartsPieOneSerieData> data;
    private EChartsPieItemStyle itemStyle;

    public EChartsPieOneSerie(){
        List<String> mRadius = new ArrayList<>();
        mRadius.add("0%");
        mRadius.add("65%");
        this.setRadius(mRadius);
        List<String> mCenter = new ArrayList<>();
        mCenter.add("50%");
        mCenter.add("50%");
        this.setCenter(mCenter);
        this.setItemStyle(new EChartsPieItemStyle());
    }
}
@Data
public class EChartsPieOneSerieData {
    private String value;
    private String name;
}
@Data
public class EChartsPieOptions {
    private EChartsTitle title;
    private EChartsTooltip tooltip;
    private EChartsLegend legend;
    private List<EChartsPieOneSerie> series;
    private String[] color;

    public EChartsPieOptions() {
        this.setColor(EChartsUtil.Color());
        EChartsTooltip eChartsTooltip = new EChartsTooltip();
        eChartsTooltip.setTrigger("item");
        eChartsTooltip.setFormatter("{a} <br/>{b}: {c} ({d}%)");
        this.setTooltip(eChartsTooltip);
    }
}
  1. 创建子文件夹03:EChartsTBF

  1. 创建对象EctbfBase

  1. 创建对象EctbfDataView

  1. 创建对象EctbfDataZoom

  1. 创建对象EctbfMagicType

  1. 创建对象EctbfMark

  1. 创建对象EctbfRestore

  1. 创建对象EctbfSaveAsImage

@Data
public class EctbfBase {
    private Boolean show = true;
}
@Data
public class EctbfDataView extends EctbfBase {
    private Boolean readOnly = false;
}
public class EctbfDataZoom extends EctbfBase {
    public EctbfDataZoom(){
        this.setShow(false);
    }
}
public class EctbfMagicType extends EctbfBase {
    private String[] type;

    public void setType(String[] type) {
        this.type = type;
    }

    public String[] getType() {
        String[] myType = new String[2];
        myType[0] = "line";
        myType[1] = "bar";
        return myType;
    }
}
public class EctbfMark extends EctbfBase{
}
public class EctbfRestore extends EctbfBase {
    public EctbfRestore(){
        this.setShow(true);
    }
}
public class EctbfSaveAsImage extends EctbfBase {

}
  1. 创建子文件夹04:EChartTtip

  1. 创建对象EcttipAxisPointer

@Data
public class EcttipAxisPointer {
    String type;
}
  1. 创建子文件夹05:parameter

  1. 创建对象ParameterBase

  1. 创建对象ParameterData

@Data
public class ParameterBase {
    private String name;
    private String type = "line";
    private int yAxisIndex = 0;
    private String connectNulls = "true";
    private String symbol = "circle";//拐点样式
    private int symbolSize = 8;//拐点大小
    private Boolean showAllSymbol = true; //是否显示拐点
    private EcsMarkPoint markPoint;
    private EcsMarkLine markLine;

}
@Data
public class ParameterData extends ParameterBase {

    private List<String> data;

    public String findMaxValue() {
        return DataConvertor.findMaxValue(data);
    }

    public String findMinValue() {
        return DataConvertor.findMinValue(data);
    }
}
  1. 在EChartsOptions文件夹下面创建对象:EChartsLegend

  1. 在EChartsOptions文件夹下面创建对象:EChartsTitle

  1. 在EChartsOptions文件夹下面创建对象:EChartsToolBox

  1. 在EChartsOptions文件夹下面创建对象:EChartsToolBoxFeature

  1. 在EChartsOptions文件夹下面创建对象:EChartsTooltip

  1. 在EChartsOptions文件夹下面创建对象:EChartsUtil

  1. 在EChartsOptions文件夹下面创建对象:EChartsXAxis

  1. 在EChartsOptions文件夹下面创建对象:EChartsYAxis

  1. 在EChartsOptions文件夹下面创建对象:EcsMarkLine

  1. 在EChartsOptions文件夹下面创建对象:EcsMarkPoint

  1. 在EChartsOptions文件夹下面创建对象:EcsmplData

  1. 在EChartsOptions文件夹下面创建对象:EcSplitLine

  1. 在EChartsOptions文件夹下面创建对象:WebEChartsOptions

@Data
public class EChartsLegend {
    private List<String> data;
    private String bottom = "auto";
    private String left = "auto";
    private String show = "true";
}
@Data
public class EChartsTitle {
    private String text = "历史曲线";
    private String subtext = "";
    private String left = "auto";
}
@Data
public class EChartsToolBox {
    private Boolean show = true;
    private EChartsToolBoxFeature feature;


    public EChartsToolBox()
    {
        setFeature(new EChartsToolBoxFeature());
    }
}
@Data
public class EChartsToolBoxFeature {
    private EctbfMark mark;
    private EctbfDataView dataView;
    private EctbfMagicType magicType;
    private EctbfRestore restore;
    private EctbfDataZoom dataZoom;
    private EctbfSaveAsImage saveAsImage;


    public EChartsToolBoxFeature()
    {
        setMark(new EctbfMark());
        setDataView(new EctbfDataView());
        setMagicType(new EctbfMagicType());
        setRestore(new EctbfRestore());
        setDataZoom(new EctbfDataZoom());
        setSaveAsImage(new EctbfSaveAsImage());
    }
}
@Data
public class EChartsTooltip {
    private String trigger = "axis";
    private String formatter;
    private EcttipAxisPointer axisPointer;
}
public class EChartsUtil {
    public static String[] Color(){
        String[] myColor = new String[7];
        myColor[0] = "#c23531";
        myColor[1] = "#2f4554";
        myColor[2] = "#80FFA5";
        myColor[3] = "#00DDFF";
        myColor[4] = "#37A2FF";
        myColor[5] = "#FF0087";
        myColor[6] = "#FFBF00";
        return myColor;
    }
}
@Data
public class EChartsXAxis {
    private List<String> data;
    private EcSplitLine splitLine;
    private ECxAxisAxisLabel axisLabel;
}
@Data
public class EChartsYAxis {
    private String name;
    private String position;
    private String offset;
    private ECAxisLine axisLine;
    private ECAxisLabel axisLabel;
    private String splitNumber;
    private String interval;
    private String minInterval;
    private String min;
    private String max;
    private String type;
    private EcSplitLine splitLine;
}
@Data
public class EcsMarkLine {
    private boolean silent = true;
    private List<EcsmplData> data;


    public EcsMarkLine() {
        data = new ArrayList<>();
        EcsmplData ecsmplData = new EcsmplData();
        ecsmplData.setType("average");
        ecsmplData.setName("平均值");
        data.add(ecsmplData);
    }
}
@Data
public class EcsMarkPoint {
    private List<EcsmplData> data;

    public EcsMarkPoint() {
        data = new ArrayList<>();
        EcsmplData ecsmplDataMax = new EcsmplData();
        ecsmplDataMax.setType("max");
        ecsmplDataMax.setName("最大值");
        data.add(ecsmplDataMax);

        EcsmplData ecsmplDataMin = new EcsmplData();
        ecsmplDataMin.setType("min");
        ecsmplDataMin.setName("最小值");
        data.add(ecsmplDataMin);
    }
}
@Data
public class EcsmplData {
    private String type;
    private String name;
    private String yAxis;

}
@Data
public class EcSplitLine {
    private boolean show = true;

}
@Data
public class WebEChartsOptions {
    private EChartsTitle title;
    private EChartsTooltip tooltip;
    private EChartsToolBox toolbox;
    private EChartsLegend legend;
    @JsonProperty("xAxis")
    private EChartsXAxis xAxis;
    @JsonProperty("yAxis")
    private List<EChartsYAxis> yAxis;
    private List<ParameterData> series;
    private String[] color;


    public WebEChartsOptions() {
        this.setTooltip(new EChartsTooltip());
        this.setToolbox(new EChartsToolBox());
        String[] myColor = new String[2];
        myColor[0] = "#c23531";
        myColor[1] = "#2f4554";
        this.color = myColor;
    }

    public void showPoint(boolean showAvgPoint, boolean showMaxMinPoint) {
        if (showMaxMinPoint) {
            for (ParameterData parameterData : series
                    ) {
                parameterData.setMarkPoint(new EcsMarkPoint());
            }
        }
        if (showAvgPoint) {
            for (ParameterData parameterData : series
                    ) {
                parameterData.setMarkLine(new EcsMarkLine());
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值