IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> echarts控制台打印有数据,但是图显示不出来 -> 正文阅读

[JavaScript知识库]echarts控制台打印有数据,但是图显示不出来

原因:axios的异步问题,
解决方法:必须先获取到数据再进行画图
解决部分代码:

this.getRes().then(res=>{
                    // console.log(res)
                    if(res.code==200){
                        this.factorRes = res.data.data.factorRes;
                        this.factorRes.forEach(item => {
                            this.factorX.push(item.factorName)
                            this.factorY.push(item.factorScore)
                        })
                        this.option.xAxis.data = this.factorX;
                        this.option.series[0].data = this.factorY;
                        // console.log(this.option)
                        var myChart = echarts.init(document.getElementById('echart'));
                        // 绘制图表
                        myChart.setOption(this.option, true);
                    }
                })

完全代码:

<template>
    <div>
        <el-card style="margin: 20px 40px 0px 40px">
            <div style="text-align: center;"><h2 style="margin-top: 0px">{{this.scale.scaleName}}测评报告</h2></div>
            <div style="justify-content: center;display: flex">
                <span style="float: right;font-size: 14px">测试日期:{{this.record.redTime}}</span>
            </div>
            <div>
                <el-icon class="el-icon-s-opportunity" style="color: #0a76a4"></el-icon>
                测评结果
            </div>
            <div style="margin-top: 20px;">
                <div style="margin-left: 20px">您的量表总得分为:{{this.record.redScore}}</div>
                <div style="margin-left: 20px;margin-top: 10px">具体因子得分为:</div>

                <el-table :data="factorRes" border stripe style="width: 500px;margin: 20px auto"
                          :header-cell-style="getRowClass">
                    <el-table-column prop="factorName" label="因子名称"></el-table-column>
                    <el-table-column prop="factorScore" label="因子得分"></el-table-column>
                </el-table>
                <template>
                    <div id="echart" style="width:600px;height:400px;margin:0 auto"></div>
                </template>

            </div>
            <div>
                <el-icon class="el-icon-s-opportunity" style="color: #0a76a4"></el-icon>
                得分说明
            </div>
            <div style="margin-top: 20px;margin-left: 10px">
                <b>【量表结果解释】:</b>{{this.scale.scaleRes}}
            </div>
            <div style="margin-top: 20px;margin-left: 10px" v-for="item in this.factorRes" :key="item.fcId">
                <b>{{item.factorName}}】:</b>{{item.factorInfo}}
            </div>

        </el-card>
    </div>
</template>

<script>
    import request from "@/utils/request";
    import moment from 'moment'
    import * as echarts from 'echarts'

    export default {
        name: "StudentRes",
        data() {
            return {
                redId: '',
                factorRes: [],
                factorX: [],
                factorY: [],
                record: {},
                scale: {},
                option: {
                    tooltip: {},
                    xAxis: {
                        type:'category',
                        data: []
                    },
                    yAxis: {
                        type: 'value',
                        axisLine: {
                            show: true, //y轴线显示
                        }
                    },
                    series: [
                        {
                            type: 'bar',
                            data: [],
                            barWidth: '20%',
                            barGap:1,
                            label:{
                                show:true,
                                position:'top'
                            }
                        },
                    ]
                }
            }
        },
        created() {
            this.redId = this.$route.params.redId;
            // console.log(this.redId)
            this.getRes();

        },
        mounted() {
            this.draw()
        },
        methods: {
            draw() {
                // 基于准备好的dom,初始化echarts实例
                this.getRes().then(res=>{
                    // console.log(res)
                    if(res.code==200){
                        this.factorRes = res.data.data.factorRes;
                        this.factorRes.forEach(item => {
                            this.factorX.push(item.factorName)
                            this.factorY.push(item.factorScore)
                        })
                        this.option.xAxis.data = this.factorX;
                        this.option.series[0].data = this.factorY;
                        // console.log(this.option)
                        var myChart = echarts.init(document.getElementById('echart'));
                        // 绘制图表
                        myChart.setOption(this.option, true);
                    }
                })

            },
            //数据自动刷新,必然需要一个监听机制告诉Echarts重新设置数据

            async getRes() {
                const res = await request.get(`${this.GLOBAL.BASE_URL}/scale/res/${this.redId}`);
                // console.log(res)
                if (res.code !== 200) return this.$message.error("获取测评结果失败!")

                this.record = res.data.data.record;
                this.record.redTime = moment(this.record.redTime).format("yyyy年MM月DD日 HH:mm:ss")
                const res1 = await request.get(`${this.GLOBAL.BASE_URL}/scale/${this.record.scaleId}`);
                if (res1.code !== 200) return this.$message.error("获取量表信息失败!")
                this.scale = res1.data.data.scale
                return res
            },
            // eslint-disable-next-line no-unused-vars
            getRowClass({row, column, rowIndex, columnIndex}) {
                if (rowIndex === 0) {
                    return 'background:#87CEEB'
                } else {
                    return ''
                }
            }
        }
    }
</script>

<style scoped>

</style>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:34:53  更:2022-04-07 22:35:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:54:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码