vue+echarts封装一

1.开发环境 vue+echarts+node.js
2.电脑系统 windows10专业版
3.在开发的过程中,咱们常常会应用到echarts,联合vue我的项目,我做了一个封装!整体代码如下:
4.在template中增加如下代码:

<div id="main" style="width: 100%; height: 400px"></div><div id="zhe" style="width: 100%; height: 400px"></div><button @click="qie">切换数据</button>

5.在return 中增加如下代码:

// 承受echarts 的值  Chenoption: undefined,  Chenoptionzhe: undefined,  chenechartsres: undefined,

6.在methods中增加申请数据代码:

// 页面已加载就申请数据    chenget() {      feng().then((res) => {        console.log(res);        this.chenechartsres = res.data;        console.log(this.chenechartsres);        this.tt(this.chenechartsres);      });    },

7.在methods中增加画图再次封装办法:

tt(a) {      console.log(a);      this.Chenoption = {        title: {          text: "ECharts 入门示例1",        },        tooltip: {        trigger: 'axis'    },        legend: {          data: ["销量"],        },        xAxis: {          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子", "褂子", "短裤"],        },        yAxis: {          min: a.echartsObj.echartsZheMin,          max: a.echartsObj.echartsZheMax,        },        series: [          {            name: "销量",            type: "bar",            // data: [5, 20, 36, 10, 10, 20],            data: a.echartsObj.echartsZheArr,          },        ],      };      // console.log(this.Chenoption.yAxis.min);      // this.Chenoption.yAxis.interval=(this.Chenoption.yAxis.min+this.Chenoption.yAxis.max)/2;      this.Chenoptionzhe = {        title: {          text: "ECharts 入门示例2",        },        tooltip: {          trigger: "axis",        },        xAxis: {          type: "category",          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", ""],        },        yAxis: {          type: "value",          min: a.echartsObj.echartsZhuMin,          max: a.echartsObj.echartsZhuMax,          interval:(a.echartsObj.echartsZhuMin+a.echartsObj.echartsZhuMax)/2        },        series: [          {            // data: [820, 932, 901, 934, 1290, 1330, 1320],            data: a.echartsObj.echartsZhuArr,            type: "line",          },        ],      };      this.drawChart("main", this.Chenoption);      this.drawChart("zhe", this.Chenoptionzhe);    },

8.在methods增加画图封装,代码如下:

// 对echarts 办法的封装    drawChart(drawChartId, Chenoption) {      this.myChart = echarts.init(document.getElementById(drawChartId));      let option = Chenoption;      // 指定图表的配置项和数据      this.myChart.setOption(option);      // window.onresize = function() {      //   myChart.resize();      // };    },

9.点击切换申请不同的数据,代码如下:

// 点击切换数据按钮,切换对应的数据    qie(){      console.log("999");      echartsqie().then((res) => {        console.log(res);        this.chenechartsres = res.data;        console.log(this.chenechartsres);        this.tt(this.chenechartsres);      });    }

10.整体代码如下:

<template>  <div class="home">    <p>我是home页面</p>    <div id="main" style="width: 100%; height: 400px"></div>    <div id="zhe" style="width: 100%; height: 400px"></div>    <button @click="qie">切换数据</button>  </div></template><script>import echarts from "echarts";import { feng,echartsqie} from "@/api/chenecharts";export default {  name: "home",  components: {},  data() {    return {      // 承受echarts 的值      Chenoption: undefined,      Chenoptionzhe: undefined,      chenechartsres: undefined,    };  },  computed: {    // ...mapState(['chen']);  },  mounted() {    this.chenget();  },  methods: {    // 页面已加载就申请数据    chenget() {      feng().then((res) => {        console.log(res);        this.chenechartsres = res.data;        console.log(this.chenechartsres);        this.tt(this.chenechartsres);      });    },    tt(a) {      console.log(a);      this.Chenoption = {        title: {          text: "ECharts 入门示例1",        },        tooltip: {        trigger: 'axis'    },        legend: {          data: ["销量"],        },        xAxis: {          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子", "褂子", "短裤"],        },        yAxis: {          min: a.echartsObj.echartsZheMin,          max: a.echartsObj.echartsZheMax,        },        series: [          {            name: "销量",            type: "bar",            // data: [5, 20, 36, 10, 10, 20],            data: a.echartsObj.echartsZheArr,          },        ],      };      // console.log(this.Chenoption.yAxis.min);      // this.Chenoption.yAxis.interval=(this.Chenoption.yAxis.min+this.Chenoption.yAxis.max)/2;      this.Chenoptionzhe = {        title: {          text: "ECharts 入门示例2",        },        tooltip: {          trigger: "axis",        },        xAxis: {          type: "category",          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", ""],        },        yAxis: {          type: "value",          min: a.echartsObj.echartsZhuMin,          max: a.echartsObj.echartsZhuMax,          interval:(a.echartsObj.echartsZhuMin+a.echartsObj.echartsZhuMax)/2        },        series: [          {            // data: [820, 932, 901, 934, 1290, 1330, 1320],            data: a.echartsObj.echartsZhuArr,            type: "line",          },        ],      };      this.drawChart("main", this.Chenoption);      this.drawChart("zhe", this.Chenoptionzhe);    },    // 对echarts 办法的封装    drawChart(drawChartId, Chenoption) {      this.myChart = echarts.init(document.getElementById(drawChartId));      let option = Chenoption;      // 指定图表的配置项和数据      this.myChart.setOption(option);      // window.onresize = function() {      //   myChart.resize();      // };    },    // 点击切换数据按钮,切换对应的数据    qie(){      console.log("999");      echartsqie().then((res) => {        console.log(res);        this.chenechartsres = res.data;        console.log(this.chenechartsres);        this.tt(this.chenechartsres);      });    }  },};</script>

11.node.js接口,页面已加载就申请echarts接口,代码如下:

var express = require('express');var mysql = require("mysql");var router = express.Router();/* GET home page. */router.get('/', function (req, res, next) {    //   res.render('index', { title: 'Express' });    console.log(req.body);    var chenfe = {        chenfedata: [{            name: '我是陈',            code: '200'        }]    }    res.json(chenfe);});router.post("/", function (req, res, next) {    console.log(req.body);    console.log("+++++++++++");    var data={        code:200,        chenmeg:"申请胜利",        chenfengdata:{            chenfengname:"你好,我是尘封"        },        echartsObj:{            echartsZheArr:[10,30,50,80,90,132,150,200],            echartsZheMin:10,            echartsZheMAx:300,            echartsZhuArr:[80,100,22,99,120,152,190,300],            echartsZhuMin:0,            echartsZhuMax:300,        }    };    res.json(data);})module.exports = router;

12.点击切换,申请 echartsqie接口,代码如下:

var express = require('express');var mysql = require("mysql");var router = express.Router();/* GET home page. */router.get('/', function (req, res, next) {    //   res.render('index', { title: 'Express' });    console.log(req.body);    var chenfe = {        chenfedata: [{            name: '我是陈',            code: '200'        }]    }    res.json(chenfe);});router.post("/", function (req, res, next) {    console.log(req.body);    console.log("+++++++++++");    var data={        code:200,        chenmeg:"申请胜利",        chenfengdata:{            chenfengname:"你好,我是echarts切换数据"        },        echartsObj:{            echartsZheArr:[30,60,100,200,180,122,130,500],            echartsZheMin:90,            echartsZheMAx:400,            echartsZhuArr:[160,200,92,19,190,352,290,30],            echartsZhuMin:22,            echartsZhuMax:360,        }    };    res.json(data);})module.exports = router;

13.页面已加载成果如下:

14.点击切换按钮,成果如下:

15.本期的教程到了这里就完结啦,是不是很nice,让咱们一起致力走向巅峰!