跳转到内容

统计卡片

我们在0.11 的时候,做过一次dashboard,是依赖旧的一套实现机制,在0.16 之后,dashboard就被废弃了。 新的工作台设计需要重新把dashboard 重新用起来。 与之前最大不同的是:

  1. 之前是通过json配置通过上报的方式,现在需要在页面配置。
  2. 之前是dataAction 获取数据,现在需要基于新的机制(Logic/Flow)去获取。
  3. 新增自定义卡片

本次卡片类型支持:自定义卡片、指标图、柱状图、折线图、饼图、环形图、雷达图、漏斗图卡

注意⚠️:

  1. 数据获取所有Func/Flow 返回数据都是List<ChartOutput>,使用base业务域下的io.terminus.trantor.module.base.model.dashboard.ChartOutput返回
  2. 卡片配置的Flow、Func不支持接受参数,因此不支持筛选。

统计卡片

指标卡片

配置指标卡片

进入具体运行环境->仪表盘->卡片配置->新增统计卡片

image-20220425143736204 其中:

  1. 所属业务域:调用逻辑流或逻辑函数所在业务域
  2. 卡片标题:在工作台显示卡片时的标题展示
  3. 单位:指标数据单位
  4. 所属应用:调用逻辑流或逻辑函数所在的应用
  5. 触发逻辑:枚举值,当前只支持逻辑流或逻辑函数

工作台配置卡片权限

用户需要配置工作台->卡片权限菜单。 image-20220425143750675 指定可见条件,目前支持全公司、指定角色、指定人员。

逻辑流和逻辑函数编写

如Func接口定义:

@Function(name = "ChartFunc")
public interface ChartFunc {
List<ChartOutput> execute(QCompany qcompany);
}

实现为:

@FunctionImpl(name = "ChartFunc impl")
public class ChartFuncImpl implements ChartFunc {
@Override
public List<ChartOutput> execute(Company company) {
ArrayList<ChartOutput> chartOutputs = new ArrayList<>();
ChartOutput chartOutput = new ChartOutput();
chartOutput.setValue(3L);
chartOutput.setGroup("端点科技");
chartOutput.setLabel("2021");
ChartOutput chartOutput2 = new ChartOutput();
chartOutput2.setValue(4L);
chartOutput2.setGroup("阿里巴巴");
chartOutput2.setLabel("2021");
ChartOutput chartOutput3 = new ChartOutput();
chartOutput3.setValue(2L);
chartOutput3.setGroup("端点科技");
chartOutput3.setLabel("2022");
ChartOutput chartOutput4 = new ChartOutput();
chartOutput4.setValue(1L);
chartOutput4.setGroup("阿里巴巴");
chartOutput4.setLabel("2022");
chartOutputs.add(chartOutput);
chartOutputs.add(chartOutput2);
chartOutputs.add(chartOutput3);
chartOutputs.add(chartOutput4);
return chartOutputs;
}
}

展示效果

进入个人工作台,添加指标卡片,展示效果如下图所示: image-20220425143816921

Flow、Func 返回数据与页面对应关系

ChartOutput 模型下有3个字段,分别是: group :分组 label:标签 value: 值 页面关系为: image-20220425143829848

柱状图

配置,权限,逻辑流和逻辑函数定义与指标卡片一致,下面描述Flow、Func返回数据与页面对应关系。

image-20220425143859245

折线图

配置,权限,逻辑流和逻辑函数定义与指标卡片一致,下面描述Flow、Func返回数据与页面对应关系。 对应关系为 image-20220425143920147

环形图

配置,权限,逻辑流和逻辑函数定义与指标卡片一致,下面描述Flow、Func返回数据与页面对应关系。

逻辑流和逻辑函数编写

如Func接口定义:

@Function(name = "CircularChartFunc")
public interface CircularChartFunc {
List<ChartOutput> execute(Company company);
}

实现为:

@FunctionImpl(name = "CircularChartFuncImpl")
public class CircularChartFuncImpl implements CircularChartFunc {
@Override
public List<ChartOutput> execute(Company company) {
ArrayList<ChartOutput> chartOutputs = new ArrayList<>();
ChartOutput chartOutput = new ChartOutput();
chartOutput.setValue(87L);
chartOutput.setGroup("2021");
chartOutputs.add(chartOutput);
return chartOutputs;
}
}

展示效果

image-20220425143935331

饼图

配置,权限,逻辑流和逻辑函数定义与指标卡片一致,下面描述Flow、Func返回数据与页面对应关系。

逻辑流和逻辑函数编写

如Func接口定义:

@Function(name = "PieChartFunc")
public interface PieChartFunc {
List<ChartOutput> execute(QCompany company);
}

实现为:

@FunctionImpl(name = "PieChartFuncImpl")
public class PieChartFuncImpl implements PieChartFunc {
@Override
public List<ChartOutput> execute(Company company) {
ArrayList<ChartOutput> chartOutputs = new ArrayList<>();
ChartOutput chartOutput = new ChartOutput();
chartOutput.setValue(3L);
chartOutput.setGroup("2021");
ChartOutput chartOutput3 = new ChartOutput();
chartOutput3.setValue(2L);
chartOutput3.setGroup("2022");
chartOutputs.add(chartOutput);
chartOutputs.add(chartOutput3);
return chartOutputs;
}
}

展示效果

image-20220425143947885

雷达图

配置,权限,逻辑流和逻辑函数定义与指标卡片一致,下面描述Flow、Func返回数据与页面对应关系。

逻辑流和逻辑函数编写

如Func接口定义:

@Function(name = "RadarChartFunc")
public interface RadarChartFunc {
List<ChartOutput> execute(Company company);
}

实现为:

@FunctionImpl(name = "RadarChartChartFuncImpl")
public class RadarChartChartFuncImpl implements RadarChartFunc {
@Override
public List<ChartOutput> execute(Company company) {
ArrayList<ChartOutput> chartOutputs = new ArrayList<>();
ChartOutput chartOutput = new ChartOutput();
chartOutput.setValue(3L);
chartOutput.setGroup("端点科技");
chartOutput.setLabel("2018");
ChartOutput chartOutput1 = new ChartOutput();
chartOutput1.setValue(2L);
chartOutput1.setGroup("端点科技");
chartOutput1.setLabel("2019");
ChartOutput chartOutput2 = new ChartOutput();
chartOutput2.setValue(1L);
chartOutput2.setGroup("端点科技");
chartOutput2.setLabel("2020");
ChartOutput chartOutput3 = new ChartOutput();
chartOutput3.setValue(2L);
chartOutput3.setGroup("端点科技");
chartOutput3.setLabel("2021");
ChartOutput chartOutput4 = new ChartOutput();
chartOutput4.setValue(1L);
chartOutput4.setGroup("阿里巴巴");
chartOutput4.setLabel("2018");
ChartOutput chartOutput5 = new ChartOutput();
chartOutput5.setValue(4L);
chartOutput5.setGroup("阿里巴巴");
chartOutput5.setLabel("2019");
ChartOutput chartOutput6 = new ChartOutput();
chartOutput6.setValue(4L);
chartOutput6.setGroup("阿里巴巴");
chartOutput6.setLabel("2020");
ChartOutput chartOutput7 = new ChartOutput();
chartOutput7.setValue(4L);
chartOutput7.setGroup("阿里巴巴");
chartOutput7.setLabel("2021");
chartOutputs.add(chartOutput);
chartOutputs.add(chartOutput1);
chartOutputs.add(chartOutput2);
chartOutputs.add(chartOutput3);
chartOutputs.add(chartOutput4);
chartOutputs.add(chartOutput5);
chartOutputs.add(chartOutput6);
chartOutputs.add(chartOutput7);
return chartOutputs;
}
}

展示效果

image-20220425144000145

漏斗图

配置,权限,逻辑流和逻辑函数定义与指标卡片一致,下面描述Flow、Func返回数据与页面对应关系。

逻辑流和逻辑函数编写

接口定义如下:

@Function(name = "FunnelChartFunc")
public interface FunnelChartFunc {
List<ChartOutput> execute(Company company);
}

实现代码为:

@FunctionImpl(name = "FunnelChartFuncImpl")
public class FunnelChartFuncImpl implements FunnelChartFunc {
@Override
public List<ChartOutput> execute(Company company) {
ArrayList<ChartOutput> chartOutputs = new ArrayList<>();
ChartOutput chartOutput = new ChartOutput();
chartOutput.setValue(3L);
chartOutput.setGroup("2021");
ChartOutput chartOutput2 = new ChartOutput();
chartOutput2.setValue(4L);
chartOutput2.setGroup("2021");
ChartOutput chartOutput3 = new ChartOutput();
chartOutput3.setValue(2L);
chartOutput3.setGroup("2022");
ChartOutput chartOutput4 = new ChartOutput();
chartOutput4.setValue(1L);
chartOutput4.setGroup("2022");
chartOutputs.add(chartOutput);
chartOutputs.add(chartOutput2);
chartOutputs.add(chartOutput3);
chartOutputs.add(chartOutput4);
return chartOutputs;
}
}

展示效果

image-20220425144012291

自定义卡片

自定义卡片,允许用户通过上报自定义容器,并在工作台展示自定义容器。

自定义容器上报、发布

上报完成后,可以在研发中心->界面->容器 可以看到上报的卡片,注意:容器类型需要为卡片容器。

image-20220425144027687 从发布管理,将业务域发到对应的环境。

配置自定义卡片

进入具体运行环境->仪表盘->卡片配置->新增自定义卡片

image-20220425144044826 卡片组件参数作用是: 方便传递一些额外信息给前端自定义卡片,看自定义容器而定。

工作台配置卡片权限

用户需要配置工作台->卡片权限菜单。 image-20220425144059702 指定可见条件,目前支持全公司、指定角色、指定人员。

展示效果

进入个人工作台,添加自定义卡片,展示效果如下图所示:

image-20220425144225393