lucas.Yan 发表于 2024-11-12 18:15:31

GridChart:魔术图(Card)组件的简单替代

本帖最后由 lucas.Yan 于 2024-11-21 16:50 编辑

       当我们需要展示今年12个月的指标时,可以使用魔术图(Magic Chart)。通过在魔术图中绑定简单的富文本和条件格式化,可以轻松实现所需的效果。然而,当大量使用魔术图时,浏览器会发送许多HTTP请求。由于HTTP协议的限制,这些请求无法迅速完成,从而拖慢了大屏的展示速度。

       虽然魔术图可以根据用户自定义的模板和绑定的数据,循环生成最终的图表结果,但在这种场景下显得有些大材小用,且首屏加载性能不佳。因此,建议使用新的GridChart组件来替代魔术图,以提高加载性能。

       GridChart组件不仅轻量级,还能有效减少HTTP请求次数,加快页面加载速度。同时,它支持数据绑定和条件格式化,能够满足展示多维度指标的需求,确保大屏展示既美观又高效。
魔术图

GridChart



使用方法:
本插件使用handlebarsjs实现条目的复用,所以在使用中要参考handlebarsjs的语法。
1 首先我们使用GridChart组件并绑定数据


2 输入自定义helpers
Handlebars.registerHelper({
compare: function (v1, v2, options) {
    const number1= parseFloat(v1, 10); // 提取整数部分
    const number2 = parseFloat(v2, 10); // 提取整数部分
    if (number1 > number2) {
      //满足添加继续执行
      return options.fn(this);
    } else {
      //不满足条件执行{{else}}部分
      return options.inverse(this);
    }
},
text: function () {
    return "<p>tefsdafasxt</p>";
},
});
3 输入条目模板
<p class="head">{{"订购日期(月)"}} 月</p>
{{#compare "17万" 订单利润 }}
<p class="item" style="color: red">{{订单利润}}</p>
{{else}}
<p class="item">{{订单利润}}</p>
{{/compare}}

<style>
.head ,.item {
    margin: 5px 0 0 0;
    background: #18b48a;
    text-align: center;
    font-size: 1.2em;
    color: white;
}
</style>

4 调整插件的条目布局等


语法参考文档:https://handlebarsjs.com/


感谢用户Run2024提供的插件GridChart!
插件下载:

页: [1]
查看完整版本: GridChart:魔术图(Card)组件的简单替代