fastadmin 引入echart饼图

本文档介绍了如何在项目中引入ECharts饼图,首先在HTML中添加图表容器,然后在JavaScript文件中通过AJAX获取控制器数据,并初始化ECharts图表。在不同事件触发时,如本周和上周按钮点击,会根据传入参数更新图表数据。控制器接收POST请求,返回数据用于更新图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要新建页面引入echart饼图

1、打开/application/admin/view/classification/index.html,添加echart标签

<div class="chart tab-pane active" id="bar-chart" style="position: relative; height: 400px;"></div>

2、打开/public/assets/js/backend/classification.js,通过ajax获取控制器的数据。

新建函数,函数名自取,如果需要传数据就自定义字段名,在success函数中初始化echart,echart的图形定义可参考echart文档

url是控制器的路径

然后在index函数中调用上述新建函数方法。如果需要点击传参改变数据,就要函数里面重新调用传参。

define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template', 'echarts', 'echarts-theme'], function ($, undefined, Backend, Table, Form, Template, Echarts) {

    var Controller = {
        index: function () {
            let weeks = '';
            Controller.change(weeks);
            $(document).on("click", ".btn-theWeek", function () {
                console.log('本周');
                weeks = "YEARWEEK( date_format( q.createtime,'%Y-%m-%d' ) ) = YEARWEEK( now() )";
                Controller.change(weeks);
            });
            $(document).on("click", ".btn-lastWeek", function () {
                console.log('上周');
                weeks = "YEARWEEK( date_format( q.createtime,'%Y-%m-%d' ) ) = YEARWEEK( now() ) - 1";
                Controller.change(weeks);
            });
        },
        change: function (weeks){
            $.ajax({
                url:"rectification/index",
                type:"POST",
                data:{
                    weeks: weeks
                },
                dataType:"json",
                success:function (row){
                    console.log(row);
                    let one = [];
                    let one_a = {};
                    for(let i=0;i<row.rows.length;i++){
                        one_a = {
                            value: row.rows[i].rate,
                            name: row.rows[i].village
                        };
                        one.push(one_a);
                    }
                    //这句话在多选项卡统计表时必须存在,否则会导致影响的图表宽度不正确
                    $(document).on("click", ".charts-custom a[data-toggle=\"tab\"]", function () {
                        var that = this;
                        setTimeout(function () {
                            var id = $(that).attr("href");
                            var chart = Echarts.getInstanceByDom($(id)[0]);
                            chart.resize();
                        }, 0);
                    });

                    var pieChart = Echarts.init(document.getElementById('pie-chart'), 'walden');
                    option = {
                        title: {
                            show: true,
                            text: '问题整改率',
                            x:'center',
                            y: 'top',
                        },
                        series : [
                            {   
                                name: '问题整改率',
                                type: 'pie',
                                radius: '55%',
                                data: one,
                                roseType: 'angle',
                                label: {
                                    normal: {
                                        show: true,
                                        formatter: '{b}: {c}%'
                                    }
                                },
                            }
                        ]
                    };
                    // 使用刚指定的配置项和数据显示图表。
                    pieChart.setOption(option);
                }
            });
        }
    };
    return Controller;
});

3、控制器获取传参数据,查询。请求类型是post。

### ECharts 的额外配置与高级用法 在构建复杂的时,除了基本设置外,还可以利用更多高级选项来自定义表样式和行为。这些功能有助于提升用户体验并使数据呈现更加直观。 #### 自定义标签位置与格式化器 对于标签的位置调整以及自定义显示内容,可以通过`label`属性实现更为精细控制: ```javascript option = { series: [{ type: 'pie', label: { formatter: '{b}: {c} ({d}%)', // 定制标签文本格式 position: 'outside' // 设置标签相对于扇区的位置 } }] }; ``` 此段代码展示了如何修改默认标签文字,并指定其位于外部[^1]。 #### 数据项形样式定制 为了突出某些特定部分或者按照业务需求改变外观,可针对单个数据条目应用独特的视觉效果: ```javascript option = { series: [{ type: 'pie', data: [ {value: 30, name: '类别A'}, { value: 70, name: '类别B', itemStyle: { color: '#FF6347' // 更改颜色 }, emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' // 添加阴影效果 } } ] }] }; ``` 上述实例说明了怎样单独设定某一片段的颜色及其高亮状态下的附加特效。 #### 动态更新数据源 当需要实时反映最新情况或是响应用户操作时,动态加载新数据成为必要条件之一。借助于JavaScript的强大能力,能够轻松完成这一目标: ```javascript // 假设已存在一个echarts实例chart function updatePieData(newDataArray){ chart.setOption({ series : [ { // 更新series中的data字段即可刷新视 data : newDataArray } ] }); } ``` 这段脚本提供了一种简便的方法来即时更改所展示的信息集合[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值