uniapp在一个页面包含多个uCharts图表


前言

uCharts包含了很多非常实用的图表组件,为开发图表页面的前端省事了不少。uniapp在单页面添加单图表的源码,官方文档都已经非常完备了,就不在这里过多赘述。本文集中解决一个页面包含多个uCharts图表组件的问题。


一、案例描述

示例:有app页面,需要包含柱状图和环形图。原型效果图如下:
在这里插入图片描述

二、源码解析

1.在模板中引入柱形图和环形图组件

代码如下:

<template>
	<view>
		<view>
			<p>日收支统计</p>
			<qiun-data-charts 
		      type="column"
		      :opts="optsColumn"
		      :chartData="chartDataColumn"
			/>
		</view>
		<view>
			<p>分类统计</p>
			<qiun-data-charts 
		      type="ring"
		      :opts="optsRing"
		      :chartData="chartDataRing"
		    />
		</view>
	</view>
</template>

注意,2个图表组件使用到的opts和chartDate要区分命名。如,柱状图可以拼接column拼接,环形图可以拼接Ring,方便区分。

2.数据部分

代码如下:

<script>
	export default {
    
    
	  data() {
    
    
	    return {
    
    
	      chartDataColumn: {
    
    },
	      optsColumn: {
    
    
	        color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
	        padding: [15,15,0,5],
	        enableScroll: false,
	        legend: {
    
    },
	        xAxis: {
    
    
	          disableGrid: true
	        },
	        yAxis: {
    
    
	          data: [
	            {
    
    
	              min: 0
	            }
	          ]
	        },
	        extra: {
    
    
	          column: {
    
    
	            type: "group",
	            width: 10,
	            activeBgColor: "#000000",
	            activeBgOpacity: 0.08
	          }
	        }
	      },
		  chartDataRing: {
    
    },
		        optsRing: {
    
    
		          rotate: false,
		          rotateLock: false,
		          color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
		          padding: [5,5,5,5],
		          dataLabel: true,
		          enableScroll: false,
		          legend: {
    
    
		            show: true,
		            position: "right",
		            lineHeight: 25
		          },
		          title: {
    
    
		            name: "收益率",
		            fontSize: 15,
		            color: "#666666"
		          },
		          subtitle: {
    
    
		            name: "70%",
		            fontSize: 25,
		            color: "#7cb5ec"
		          },
		          extra: {
    
    
		            ring: {
    
    
		              ringWidth: 60,
		              activeOpacity: 0.5,
		              activeRadius: 10,
		              offsetAngle: 0,
		              labelWidth: 15,
		              border: true,
		              borderWidth: 3,
		              borderColor: "#FFFFFF"
		            }
		          }
		        }
	    };
	  },
	  onReady() {
    
    
	    this.getServerData();
	  },
	  methods: {
    
    
	    getServerData() {
    
    
	      setTimeout(() => {
    
    
	        let resColumn = {
    
    
	            categories: ["1","2","3","4","5","6"],
	            series: [
	              {
    
    
	                name: "支出",
	                data: [35,36,31,33,13,34]
	              },
				  {
    
     
	                name: "收入",
	                data: [18,27,21,24,6,28]
	              }
	            ]
	          };
			let resRing = {
    
    
			    series: [
			    {
    
    
			        data: [{
    
    "name":"一班","value":50},{
    
    "name":"二班","value":30},{
    
    "name":"三班","value":20},{
    
    "name":"四班","value":18,"labelText":"四班:18人"},{
    
    "name":"五班","value":8}]
			    }
			    ]
			  };
	        this.chartDataColumn = JSON.parse(JSON.stringify(resColumn));
			this.chartDataRing = JSON.parse(JSON.stringify(resRing));
	      }, 500);
	    },
	  }
	};
</script>

这部分也就是把官网这2个组件的数据和方法进行拼接。同样要注意的问题是,要对2个组件的数据进行区分命名。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了uniapp单页面包含多个uCharts图表的一个小案例,希望对大家有所启发。

猜你喜欢

转载自blog.csdn.net/liangxiaoyan0426/article/details/130973905