老师,您好!在水球图替换的时候,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回答

扬_灵

2021-03-03

同学你好,测试了你的代码commonDataMixin中userGrowthLastMonth返回值的格式是“xx%”字符串而percent需要的格式类型是Number,所以最后水球图显示的是"NaN%" 解决办法是修改代码和课程代码保持一致,或者你在水球图页面修改数据.另外水球图的渲染条件是监听userGrowthLastMonth值发生变化后才渲染的。如果想要水球图重新渲染需要修改userGrowthLastMonth的值,

//img.mukewang.com/szimg/603f3c9909afde7a15440406.jpg

1
1
Yitea
原来出错在这里,非常感谢老师解惑!
2021-03-03
共1条回复

扬_灵

2021-03-03

同学你好,测试了你的代码是可以显示图表内容的,可以把完整的项目发一下吗,我在本地帮你测试定位一下问题。

0
4
Yitea
回复
扬_灵
不好意思,老师。新的代码已经上传到master分支下,网址为https://github.com/mingSummer/DataVisualizationTest.git
2021-03-03
共4条回复

数据可视化入门到精通-打造前端差异化竞争力

同级别前端,掌握数据可视化薪资更高

1520 学习 · 1043 问题

查看课程