当前位置: 代码网 > it编程>前端脚本>Vue.js > Vue+echart 展示后端获取的数据实现

Vue+echart 展示后端获取的数据实现

2024年05月19日 Vue.js 我要评论
最近在合作做一个前后端分离项目时,为了测试我写的后端部分获取数据的效果,自己也学了一下 vue 的知识,在获取 json 信息这里也踩了很多坑。这里列举下我返回的 json 部分信息:{  "hous

最近在合作做一个前后端分离项目时,为了测试我写的后端部分获取数据的效果,自己也学了一下 vue 的知识,在获取 json 信息这里也踩了很多坑。

这里列举下我返回的 json 部分信息:

{
  "house_basic": [
    {
      "house_id": "00001",
      "house_name": "盈翠华庭122a户型",
      "house_area": "122",
      "house_state": 0,
      "house_special": "采光好,南北通透"
    },
    {
      "house_id": "00002",
      "house_name": "北海中心中间户",
      "house_area": "92",
      "house_state": 0,
      "house_special": "采光好,客厅朝南"
    }
  ]
}

vue 的 script 部分:

<script>
// 基本的script部分框架
import axios from 'axios';
export default {
    created() {
        axios.get('http://<ip>:9999/vote/api')
        .then((res) = > {
            console.log(res);
        })
    }
}
</script>    

我们打印一下 res.data,得到的是:

{
    {
        "score": [
        {
            "house_id": "00001",
            "house_vote": 5,
            "house_name": "盈翠华庭122a户型"
        },
        {
            "house_id": "00002",
            "house_vote": 22,
            "house_name": "北海中心中间户"
        }
    ]},
    // 略过不重要信息
}

我们再打印 res.data.score,这才得到了我们想要的数组:

[
    {
      "house_id": "00001",
      "house_vote": 5,
      "house_name": "盈翠华庭122a户型"
    },
    {
      "house_id": "00002",
      "house_vote": 22,
      "house_name": "北海中心中间户"
    }
]

输出其中一条的子条目看看 res.data.score[0].house_id:00001。

在搞清楚返回的 data 后,就可以来写 script 部分获取,保存数据了。

<template>
    <div id='main'></div>
</template>
<script>
// barchart.vue
import axios from 'axios';
export default {
    name: 'barchart',
    methods :{
        initchart() {
            var echarts = require('echarts');
            let mychart = echarts.init(document.getelementbuid('main'));
            // 这里需要一个id为main的空div标签,注意,必须是空标签
            var option = {
                tooltip: {
                    trigger: 'axis',
                    axispointer: {
                        type: 'shadow',
                    }
                },
                xaxis: {
                    type: 'category',
                    name: 'id', //x轴的名称
                    data: this.iddata,
                },
                yaxis: {
                    type: 'value',
                    name: 'vote',
                   // data: this.votedata,
                    // y轴好像不放data也没多大影响
                },
                series: [{
                    data: this.votedata,
                    type: 'bar',
                }]
            }
            mychart.setoption(option); // 设置图标样式
        }
    },
    created() {
        // 这里拿投票数接口来举例
        axios.get('http://<ip>:9999/vote/api')
        .then((res) => {
            this.iddata = [];
            this.votedata = [];
            if (res.status == 200) {
                let temp = res.data.score;
                for (let i in temp) {
                    this.iddata.push(temp[i].house_id);
                    this.votedata.push(temp[i].house_vote);                    
                }
            }
            this.initchart();
        })
    },
    mounted() {
        this.initchart();
    }
}
</script>

到此这篇关于vue+echart 展示后端获取的数据实现的文章就介绍到这了,更多相关vue echart 展示后端数据内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com