Bob's Blog

Web开发、测试框架、自动化平台、APP开发、机器学习等

返回上页首页

Django restframework加Vue打造前后端分离的网站(十一)自定义图表



在上一篇文章中,已经大致做了sider / header / footer,接下来可以考虑主页面的内容。

由于主页一般是汇总的信息,以图表来展现当然是容易理解也比较美观。

图表可以用echarts或者highcharts。两者的区别就不详述了。个人使用都是免费,highcharts商用收费,功能类似,稳定性和兼容据说highcharts会好一点,这个我目前没有体会到。我打算就以echarts来做图表。

先安装

npm install --save echarts

在main.js中新增

import echarts from 'echarts'

Vue.prototype.$echarts = echarts

接着在home.vue中新增一个图表的区域。

<a-row>
....
</a-row>
<div id="coverageByProjects" :style="{width: '90%', height: '400px'}"></div>

然后需要向这个图表区域里填充数据。在data中定义,然后在mounted里对图表区域初始化。对应的x轴数据和series数据都是预设的,之后会改成调用后台API修改数据。

这里只能在mounted中定义才生效,在created中定义则不生效。

export default {
  name: 'Home',
  data () {
    return {
      ...
      coverage_by_projects_chart: '' //data中先定义
    }
  },

  mounted: function() { //mounted中定义数据展示并对图表区域初始化
    this.coverage_by_projects_chart = this.$echarts.init(document.getElementById('coverageByProjects'));
    this.coverage_by_projects_chart.setOption({
      //title: {
      //  text: 'Automation Coverage by Project',
      //  left: 'center'
      //},
      tooltip: {
        trigger: 'item',
        formatter:'{b}: {c}%'
      },
      xAxis: {
        type: 'category',
        data: ['ByBlog', 'MobileSTF', 'RestAPI']
      },
      yAxis: {
        type: 'value',
        axisLabel: {
          formatter: '{value} %'
        }
      },
      series: [{
        data: [60, 90, 100],
        type: 'bar',
        itemStyle: {
          normal: {
            color: function(params) {
              var colorList = ['#708090', '#4682B4', '#008B8B', '#4B0082', '#4169E1', '#BDB76B', '#8B4513', '#800000'];
              var index = params.dataIndex;
              if (params.dataIndex >= colorList.length) {
                index = params.dataIndex - colorList.length;
              }
              return colorList[index];
            },
            label: {
               show: true,
               position: 'top',
               formatter: '{c}%'
            }
          }
        }
      }]
    });
  }
}

为了美观,这里用了antd的card卡片容器,设置了一些css属性,目前主页就会变成如下图的样子,各类数据就只等后台API完成后调用API修改数据列即可。样例文件可以参考:https://github.com/bobjiangps/automation_center/tree/master/frontend里的home.vue。

 

 

下一篇:  android自动化测试中不能触发search的解决方法
上一篇:  手机app性能测试工具之PerfDog

共有0条评论

添加评论

暂无评论