前端歌谣-第玖拾捌课-vue2+echarts讲解

本文介绍了如何在Vue2项目中使用ElementUI和axios进行数据交互,展示了一个实例,包括表格数据的获取、ECharts折线图的渲染以及如何通过表单提交触发网络请求并更新图表。
摘要由CSDN通过智能技术生成

前言

我是歌谣 今天来说一个vue2+element的项目

业务的需求点

需求点一 需要保证页面数据得echart的渲染

第一步 安装依赖

npm install --save echarts

引入依赖

import * as echarts from "echarts";

开始程序设计提交的时候调用接口渲染

   //查询表单
    submitForm(formName) {
      console.log(this.$refs[formName], "formName");
      this.$refs[formName].validate((valid) => {
        console.log(this.formInline, "valid");
        if (valid) {
          this.getZheData(this.formInline);
        } else {
          return false;
        }
      });
    },

获取折线图数据

   //获取折线图数据
    getZheData(formInlineData) {
      const { deviceId, productFunId, startTime, endTime } = formInlineData;
      axios
        .get(
          `${BaseUrl}/linechart/querylinechart?deviceId=${deviceId}&productFunId=${productFunId}&startTime=${startTime.getTime()}&endTime=${endTime.getTime()}`
        )
        .then((res) => {
          console.log(res, "111111");
          if (res.data.code === 1) {
            this.setZheData(res.data.data);
            this.showZheData();
          } else {
            this.$message({
              message: res.data.message,
              type: "error",
            });
          }
        });
    },

处理数据

//处理数据
    setZheData(datas) {
      const Datax = [];
      const DataY = [];
      datas &&
        datas.map((item, index) => {
          Datax.push(item.x);
        });
      datas &&
        datas.map((item, index) => {
          DataY.push(item.y);
        });
      this.zheOption.xAxis.data = Datax;
      this.zheOption.series.data = DataY;
    },

渲染数据

//渲染dom节点
    showZheData() {
      let myEchart = echarts.init(this.$refs.mychart);
      myEchart.setOption(this.zheOption, true);
    },

需求点贰 axios发起网络请求

请求演示

 axios.get(`${BaseUrl}/linechart/queryDeviceList`, {}).then((res) => {
      console.log(res, "res.data");
      if (res.data.code === 1) {
        this.deviceOptions = res.data.data;
      } else {
        this.$message({
          message: res.data.message,
          type: "error",
        });
      }
    });

需求点3页面绘制和渲染

<template>
  <div>
    <el-form
      :inline="true"
      ref="ruleForm"
      :model="formInline"
      class="demo-form-inline"
      :rules="rules"
    >
      <el-form-item label="设备名称" prop="deviceId">
        <el-select
          @change="handleProductChange"
          v-model="formInline.deviceId"
          placeholder="请选择设备名称"
        >
          <el-option
            v-for="item in deviceOptions"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          >
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="测点名称" prop="productFunId">
        <el-select
          v-model="formInline.productFunId"
          placeholder="请选择测点名称"
        >
          <el-option
            v-for="item in productOptions"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          >
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="开始时间" prop="startTime">
        <el-date-picker
          type="date"
          placeholder="选择开始时间"
          v-model="formInline.startTime"
          style="width: 100%"
        ></el-date-picker>
      </el-form-item>
      <el-form-item label="结束时间" prop="endTime">
        <el-date-picker
          type="date"
          placeholder="选择结束时间"
          v-model="formInline.endTime"
          style="width: 100%"
        ></el-date-picker>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')"
          >查询</el-button
        >
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="resetForm('ruleForm')"
          >重置</el-button
        >
      </el-form-item>
    </el-form>
    <div ref="mychart" id="demoDiv"></div>
  </div>
</template>

运行结果

在这里插入图片描述

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值