老师,您好!在水球图替换的时候,console.log(this.userGrowthLastMonth)有输出,但是其他组件替换完成后,水球图那里反而是空值了
来源:8-18 销售大盘+用户增长+热门搜索API对接

Yitea
2021-03-02
<template>
<ve-liquidfill :data="chartData" height="100%" :settings="chartSettings"></ve-liquidfill>
</template>
<script>
import commonDataMixin from '../../mixin/commonDataMixin'
function getColor (value) {
return value > 0 && value <= 0.5 ? 'rgba(241,47,28,.7)'
: value > 0.5 && value <= 0.8 ? 'rgba(204,178,26,.7)'
: value > 0.8 ? 'rgba(97,216,0,.7)' : '#c7c7cb'
}
export default {
mixins: [commonDataMixin],
watch: {
userGrowthLastMonth () {
this.chartData = {
columns: ['title', 'percent'],
rows: [{
title: 'rate',
percent: this.userGrowthLastMonth / 100
}]
}
this.chartSettings = {
seriesMap: {
rate: {
radius: '86%',
label: {
formatter: (v) => {
return `${Math.floor(v.data.value * 100)}%`
},
textStyle: {
fontSize: 36,
color: '#999',
fontWeight: 'normal'
},
position: ['50%', '50%'],
insideColor: '#fff'
},
outline: {
// show: false
itemStyle: {
borderColor: '#aaa4a4',
borderWidth: 1,
color: 'none',
shadowBlur: 0,
shadowColor: '#fff'
},
borderDistance: 0
},
backgroundStyle: {
color: '#fff'
},
itemStyle: {
shadowBlur: 0,
shadowColor: '#fff'
},
amplitude: 8,
color: [getColor(this.chartData.rows[0].percent)]
}
}
}
}
},
name: 'index',
data () {
return {
chartData: {},
chartSettings: {}
}
}
}
</script>
<style scoped>
</style>
写回答
2回答
-
同学你好,测试了你的代码commonDataMixin中userGrowthLastMonth返回值的格式是“xx%”字符串而percent需要的格式类型是Number,所以最后水球图显示的是"NaN%" 解决办法是修改代码和课程代码保持一致,或者你在水球图页面修改数据.另外水球图的渲染条件是监听userGrowthLastMonth值发生变化后才渲染的。如果想要水球图重新渲染需要修改userGrowthLastMonth的值,
112021-03-03 -
扬_灵
2021-03-03
同学你好,测试了你的代码是可以显示图表内容的,可以把完整的项目发一下吗,我在本地帮你测试定位一下问题。
042021-03-03
相似问题
NPM 水球图插件报错
回答 1
子组件图表渲染的问题
回答 1