// 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;
        }
    }
})
