You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
< template >
< view class = "charts-box" > < qiun -data -charts type = "ring" :opts ="opts" :chartData ="chartData" / > < / view >
< / template >
< script >
export default {
props : {
dataArr : {
type : Array
}
} ,
//props数据传值组件给其异步加载, 使用监听
watch : {
dataArr ( newData ) {
this . dataArr = newData ;
//获取数据后再去渲染图表
this . getServerData ( ) ;
}
} ,
data ( ) {
return {
chartData : { } ,
//您可以通过修改 config-ucharts.js 文件中下标为 ['pie'] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
opts : {
type : 'ring' ,
rotate : false ,
rotateLock : false ,
color : [ "#31cda6" ,
"#cbd1e7" ,
"#3763fa" ,
"#74BA19" ,
] ,
// padding: [5, 5, 5, 5],
dataLabel : false ,
enableScroll : false ,
legend : {
show : true ,
position : "right" ,
layout : "vertical" ,
itemWidth : 10 ,
textStyle : {
fontSize : 12 ,
color : 'red'
} ,
lineHeight : 25 ,
formatter : ( name ) => {
// let total = 0;
let tarValue = 1 ;
// for (let i = 0; i < seriesData.length; i++) {
// total += seriesData[i].value;
// if (seriesData[i].name == name) {
// tarValue = seriesData[i].value;
// }
// }
// return `${name} ${tarValue}个`;
return name + "个"
} ,
} ,
title : {
show : false ,
name : "" ,
fontSize : 15 ,
color : "#666666"
} ,
subtitle : {
show : false ,
name : "" ,
fontSize : 25 ,
color : "#7cb5ec"
} ,
extra : {
ring : {
ringWidth : 0 ,
activeOpacity : 0.5 ,
activeRadius : 10 ,
offsetAngle : 0 ,
labelWidth : 0 ,
border : false ,
borderWidth : 3 ,
borderColor : "#FFFFFF"
}
}
}
} ;
} ,
mounted ( ) {
this . getServerData ( ) ;
} ,
methods : {
getServerData ( ) {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let res = {
series : [ {
data : this . dataArr
// data: [{ name: '待接收', value: 0 }, { name: '进行中', value: 0 }, { name: '已完成', value: 20 }, { name: '已逾期', value: 20 }]
} ]
} ;
this . chartData = JSON . parse ( JSON . stringify ( res ) ) ;
}
}
} ;
< / script >
< style scoped >
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
. charts - box {
width : 100 % ;
height : 100 % ;
}
< / style >