echarts 饼图移动端_echarts饼图在vue项目中实现

本文介绍如何在Vue项目中使用ECharts组件库实现饼图,并详细讲解了从导入ECharts到配置图表选项,处理接口数据,以及在数据加载完成后更新图表的整个过程。特别强调了在接口数据获取和图表渲染之间正确同步的重要性。
摘要由CSDN通过智能技术生成

一 下包导包(一般在vue中是全局注册)

二 准备容器 给宽高

三 在vue的data数据模型中 指定图表的配置项和数据

// echart数据

option: {

tooltip: {

trigger: 'item',

formatter: '{a}
{b}: {c} ({d}%)'

},

legend: {

orient: 'vertical',

left: 10,

top: 40,

data: ['人民币', '美元','港币','欧元','日元']

},

series: [

{

name: '资产',

type: 'pie',

radius: ['70%', '90%'],

avoidLabelOverlap: false,

label: {

show: false,

position: 'center'

},

emphasis: {

label: {

show: true,

fontSize: '30',

fontWeight: 'bold'

}

},

data: [

{ value: 335, name: '人民币' },

{ value: 310, name: '美元' },

{ value: 310, name: '港币' },

{ value: 310, name: '欧元' },

{ value: 310, name: '日元' },

],

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

shadowColor: 'rgba(0, 0, 0, 0.5)'

},

normal: {

color: function(params) {

//自定义颜色

var colorList = [

'#019e97',

'#FF4500',

'#FFA500',

'#33ff33',

'#4B0082',

]

return colorList[params.dataIndex]

}

}

}

}

]

}

四 在接口拿数据并处理数据

created() {

this.getCurrentRate() // 执行1

let setTimeId = setTimeout(()=>{ // 执行2

this.$axios.post( POST_ASSETSOVERIEWQRY ).then(res=>{

if(res._RejCode === "000000"){

// 处理echarts数据

this.RmbToatlAmt=(+res.RmbToatlAmt).toFixed(2)

this.USDToatlAmt=(+res.USDToatlAmt*this.USDSaleRate).toFixed(2)

///

this.option.series[0].data[4].value = this.JPYToatlAmt

this.$nextTick(() => { // 执行3

this.setChart()

})

}

})

clearTimeout(setTimeId)

},1000)

},

五 画!!!

methods:{

setChart(){

let toatlAmtChart = this.$echarts.init(document.getElementById('toatlAmt')) // 基于准备好的dom,初始化echarts实例

toatlAmtChart.setOption(this.option) // 使用刚指定的配置项和数据显示图表

},

}

关键在于 方法的执行顺序问题

用 setTimeout来限制 执行2 要晚于 执行1 后才执行

执行3要确保所有数据回来后才执行dom生成(也就是画echarts图)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值