代码拉取完成,页面将自动刷新
堆叠图动态数据配置时,SQL返回的数据没有中文信息,导致图例无法配置
思路是将数据格式转换成静态数据的格式,需要借助到js脚本
原始SQL查询出来的json格式
[{
"weekNewPayUserNum": 149.0,
"weekNewUserBindPenNum": 1224.0,
"weekNewUserNum": 2726.0,
"weekNewPayUserBindPenNum": 70.0,
"start_date": "2021-08-09"
}, {
"weekNewPayUserNum": 168.0,
"weekNewUserBindPenNum": 1090.0,
"weekNewUserNum": 2458.0,
"weekNewPayUserBindPenNum": 86.0,
"start_date": "2021-08-16"
}]
通过js脚本需要转成以下格式即可实现动态图例
[
{
"data": 2726,
"name": "每周新增用户",
"axis": "2021-08-09"
},
{
"data": 1224,
"name": "每周新增用户(绑笔)",
"axis": "2021-08-09"
},
{
"data": 149,
"name": "每周新增付费用户数",
"axis": "2021-08-09"
},
{
"data": 70,
"name": "每周新增付费用户数(绑笔)",
"axis": "2021-08-09"
},
{
"data": 2458,
"name": "每周新增用户",
"axis": "2021-08-16"
},
{
"data": 1090,
"name": "每周新增用户(绑笔)",
"axis": "2021-08-16"
},
{
"data": 168,
"name": "每周新增付费用户数",
"axis": "2021-08-16"
},
{
"data": 86,
"name": "每周新增付费用户数(绑笔)",
"axis": "2021-08-16"
}
]
编写js后,后台数据转换时候报错,数据转换异常
解决方式,更改后台JsTransformServiceImpl.java
思路:执行invokeFunction方法返回值toString,
再次通过JSONArray解析强转List,解决invocable.invokeFunction返回Map数据结构强制转换List异常问题
下图为后台代码改动截图
/*fix:执行invokeFunction方法返回值toString,
再次通过JSONArray解析强转List<JSONObject>,解决 invocable.invokeFunction
返回Map数据结构问题*/
String jsonStr = invocable.invokeFunction("dataTransform", data).toString();
return (List<JSONObject>) JSONArray.parse(jsonStr);
下图为js代码示例
下图为大屏堆叠柱状配置
下图为大屏效果
欢迎大家学习交流,感谢作者开源