首页 前端知识 Vue echart 展示后端获取的数据

Vue echart 展示后端获取的数据

2024-03-12 01:03:38 前端知识 前端哥 761 266 我要收藏

最近在合作做一个前后端分离项目时,为了测试我写的后端部分获取数据的效果,自己也学了一下 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_ID00001

在搞清楚返回的 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>
复制
转载请注明出处或者链接地址:https://www.qianduange.cn//article/3673.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

jquery监听input值改变

2024-04-08 11:04:31

jquery 笔记

2024-04-08 11:04:27

jQuery Ajax前后端数据交互

2024-04-08 11:04:24

JQuery入门基础

2024-02-20 10:02:06

JQuery中的事件对象

2024-04-08 11:04:16

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!