Highcharts 图表中图例显示状态存储的功能设计

文章讨论了在公司前端使用Highcharts时,如何存储用户自定义的图例显示状态。首先介绍了使用枚举值的简单方案,然后提出使用JSON字段存储所有图例状态,但会占用大量空间。最后,文章详细阐述了一种改进方案,通过存储二进制值并利用PHP的Laravel框架中的访问器和设置器功能,实现了更高效且节省存储空间的解决方案。
摘要由CSDN通过智能技术生成

需求背景

公司前端使用 Highcharts 构建图表,图表的图例支持点击显示或隐藏相应的指标。现在有需求后端需要存储用户在前端点击后显示图表的状态,对于已经隐藏的图例相应的指标线下次进入页面后依然隐藏。

这样做的目的是简化图表信息和去除噪音,有些信息对于某些用户来说是不太关心的,用户取消显示它们是合理的。

需求方案

方案一

使用数据库枚举值,将图表的存储状态枚举。这是一种实现上比较简单的方案,但是其组合较多,图例越多所需要添加的枚举值就越多,原本的图表状态中有两个图例可以进行此操作,因此使用了这种方案。

现在需要将这个功能扩展到 4 个图表,未来又可能扩展到更多图表,所以这种简单的方案已经不适用了。

方案二

使用一个数据库 JSON 类型字段存储图例的是否显示的状态,其结构类似下面这样:

 
{
 
"chart_1":{
 
"legend_1":true,
 
"legend_2":true,
 
"legend_3":true,
 
"legend_4":true,
 
"legend_5":true,
 
"legend_6":true,
 
"legend_7":false,
 
"legend_8":false
 
},
 
"chart_2":{
 
"legend_1":true,
 
"legend_2":true,
 
"legend_3":true,
 
"legend_4":true,
 
"legend_5":true
 
},
 
"chart_3":{
 
"legend_1":true,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wzh小吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值