vue使用echarts是,动态获取数据,动态更新图表数据。

当我们初始化完数据后,需要更新数据时,虽然请求成功,获取到新的数据。但是echarts的图表没有根据数据更新而更新,原因是数据更新了,但echarts还是初始化时的那个。

我们可以在请求成功后,重新初始化echarts。这样图表就能根据数据进行变化了。

         <div id="first-line-left" style="height: 220px;width: 500px">
           </div>
      
          <div class="first-left-input">
            <el-input v-model.number="pie_count" placeholder="输入50-300的数字"></el-input>
          </div>
          <el-button type="warning" @click="pie_submit(0,pie_count)">提交</el-button>
    

效果图是这个。

我设计的功能是:

1、进来时,就有默认的数据展示出来。

2、在input框中输入数字,提交到后端,获取到特定数据条数,更新图表。

函数设置

 export default {
    name: 'LogAnalyse',
    data () {
      return {
        pie_count: '',//绑定输入框
        pie_data: [], //后端数据可以保存到这里
        
      }
    },
    mounted () {
      this.firstleft()
    },

    methods: {
      //饼状图
      firstleft (type=0,number=100) {
        //获取数据
        let pie_data = this.get_pie_data(type,number)
        pie_data.then(res => {
          this.pie_data = res.data.data
          this.pie_leng = res.data.lenth
          let myChart = echarts.init(document.getElementById('first-line-left'))
          // 绘制图表
          var option = {
            title: { text: '告警类型占比' },
            series: [
              {
                type: 'pie',
                data: this.pie_data
              }
            ]
          }

          myChart.setOption(option)
        })
        // 基于准备好的dom,初始化echarts实例

      },

      //请求函数,这里使用同步请求,才能将后端返回的数据给echarts使用
      get_pie_data (pie = 0, number = 100) {
        return new Promise((resolve, reject) => {
          axios({
            url: this.$settings.base_url + `/user/logdata/?number=${number}&type=${pie}`,
            method: 'post'
          }).then(res => {
            resolve(res)
          }).catch(error => {
            reject(error)
          })
        })
      },

      //点击提交的时候,触发这个函数
      pie_submit (pie = 0, number = 100) {
        console.log(this.pie_count, 123)
        if (Number.isInteger(number)) {
          if (number <= 300 && number >= 10) {
            this.firstleft(pie,number)
          } else {
            this.$message.error('范围需要在50-300之间')
          }
        } else {
          this.$message.error('输入的是非数字!!')
        }
      },

    },

  }
  }
</script>

思路:

 

  • 11
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现Vue-Echarts动态数据绑定,可以按照以下步骤进行操作: 1. 首先,在main.js文件中引入echarts并将其注册为Vue的插件,以便全局使用。可以使用以下代码: ``` import echarts from 'echarts' Vue.use(echarts) Vue.prototype.$echarts = echarts ``` 2. 在组件中定义一个变量来存储动态数据,例如`data`属性中的`eacartsData`。 3. 在绘制echarts样式的方法中,使用`this.eacartsData`来设置数据,确保数据能够动态绑定到echarts图表上。 下面是一个示例代码,演示如何通过动态数据绑定实现echarts动态数据显示: ``` <template> <div> <div id="echartsOne" style="width: 600px; height: 400px;"></div> </div> </template> <script> export default { data() { return { eacartsData: [] // 动态数据 } }, mounted() { this.getEcharts() }, methods: { getEcharts() { var chartDom = document.getElementById('echartsOne') var myChart = this.$echarts.init(chartDom) var option option = { color: ['#5089bd', '#d36e2a', '#929292', '#e3aa00', '#3b65ae', '#63993e'], title: { text: '饼图使用动态数据', subtext: '', left: '50%', top: '4%' }, tooltip: { trigger: 'item' }, legend: { orient: 'vertical', left: '2%', top: '34%' }, grid: { left: '2%', right: '2%', bottom: '4%', top: '2%', containLabel: true }, series: [ { name: '饼图使用动态数据', type: 'pie', radius: '90%', top: '20%', left: '20%', data: this.eacartsData, // 动态数据绑定到饼图 emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 12, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] } option && myChart.setOption(option) } } } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值