jhwxapp/miniprogram/pages/components/pie-chart/index.js

141 lines
4.7 KiB
JavaScript

// components/bar-chart/index.js
import * as echarts from '../../../ec-canvas/echarts'
Component({
/**
* 组件的属性列表
*/
properties: {
chartId:{
type: String
},
chartData:{
type: Object
}
},
observers: {
chartData: function (val) {
//console.log(val)
this.initChart()
},
},
/**
* 组件的初始数据
*/
data: {
ec: {
lazyLoad: true
},
chart:undefined,
},
lifetimes: {
created: function(){
//在组件实例刚刚被创建时执行,注意此时不能调用 setData
},
attached: function () {
//在组件实例进入页面节点树时执行
},
ready: function () {
// 在组件在视图层布局完成后执行
this.initChart();
},
detached: function () {
// 在组件实例被从页面节点树移除时执行
},
},
/**
* 组件的方法列表
*/
methods: {
initChart(){
var id ='#' + this.data.chartId;
this.component = this.selectComponent(id);
this.component.init((canvas, width, height, dpr) => {
let chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr
})
chart.setOption(this.getData());
return chart;
})
},
getData() {
var data = this.data.chartData
var option = {
series: [
{
type: "pie",
radius: ["65%", "80%"],
label: {
normal: {
position: "center",
},
},
data: [
{
value: data.value,
label: {
normal: {
formatter: "{d} %",
textStyle: {
fontSize: 20,
color: "#00ecfe",
fontWeight:'bold',
},
},
},
itemStyle: {
normal: {
color: {
// 完成的圆环的颜色
colorStops: [
{
offset: 0,
color: "#00cefc", // 0% 处的颜色
},
{
offset: 1,
color: "#367bec", // 100% 处的颜色
},
],
},
labelLine: {
show: false,
},
},
},
},
{
value: (100-data.value),
label: {
normal: {
formatter: "\n\n\n\n"+data.text,
textStyle: {
color: "#ffffff",
fontSize: 12,
},
},
},
tooltip: {
show: false,
},
itemStyle: {
normal: {
color: "#273259",
}
},
hoverAnimation: false,
},
],
},
],
};
return option;
}
}
})