PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

使用表格的templateView实现一个图表渲染的功能

管理员 2024-12-14
Fastadmin
49

FastAdmin中Bootstrap-table表格参数templateView拥有强大的自定义功能,这里我们使用templateView来实现一个图表渲染的功能。
首先我们itemtpl模板中的数据需要填充为一个JSON数据,包含column和data两列 ,chartdata为我们服务器返回的行中的数据。其次在js中添加一个表格渲染后的事件绑定。此功能会使用上Echarts图表渲染,因此需在头部define处添加好echarts和echats-theme依赖,以下是详细步骤和代码

视图index.html中的itemtpl的模板数据为

<script id="itemtpl" type="text/html">    <div class="col-sm-4 col-md-3">        <div class="echart" style="height:200px;width:100%;">            <textarea class="hide"><%=item.chartdata%></textarea>        </div>    </div></script>

服务端控制器index的方法为

/** * 查看 */public function index(){    if ($this->request->isAjax())    {        list($where, $sort, $order, $offset, $limit) = $this->buildparams(NULL);        $total = $this->model                ->where($where)                ->order($sort, $order)                ->count();        $list = $this->model                ->where($where)                ->order($sort, $order)                ->limit($offset, $limit)                ->select();        foreach ($list as $key => &$v)        {            $v['chartdata'] = json_encode(array(                'column' => array('2017-06-16', '2017-06-17', '2017-06-18', '2017-06-19', '2017-06-20', '2017-06-21', '2017-06-22'),                'data'   => array(6, 32, 2, 3, 1, 7, 25),            ));        }        $result = array("total" => $total, "rows" => $list);        return json($result);    }    return $this->view->fetch();}

JS文件中我们在var table = $("#table");后追加一个渲染数据后的处理,代码如下

table.on('post-body.bs.table', function (e, data) {    $(".echart").each(function () {        var json = JSON.parse($("textarea", this).val());        // 基于准备好的dom,初始化echarts实例        var myChart = Echarts.init($(this)[0], 'walden');        // 指定图表的配置项和数据        var option = {            title: {                text: '',                subtext: ''            },            tooltip: {                trigger: 'axis'            },            legend: {                data: ['成交']            },            toolbox: {                show: false,                feature: {                    magicType: {show: true, type: ['stack', 'tiled']},                    saveAsImage: {show: true}                }            },            xAxis: {                type: 'category',                boundaryGap: false,                data: json.column            },            yAxis: {            },            grid: [{                    left: 'left',                    top: 'top',                    right: '10',                    bottom: 30                }],            series: [{                    name: '成交',                    type: 'line',                    smooth: true,                    areaStyle: {                        normal: {                        }                    },                    lineStyle: {                        normal: {                            width: 1.5                        }                    },                    data: json.data                }]        };        // 使用刚指定的配置项和数据显示图表。        myChart.setOption(option);    });});

最终的效果图为

https://cdn.fastadmin.net/uploads/2017/201706/23/4e26b106f05189cf1f852cfae91c987b


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部