2021-08-05

本文介绍了在Vue项目中如何引入和使用ECharts插件。首先通过npm安装echarts,然后在单个组件中导入并创建图表。此外,还展示了在main.js中全局挂载ECharts到Vue原型上,以便在所有组件中使用。如果遇到无法直接通过`this.echarts`访问的问题,可以使用`this.$root.$options.echarts`来调用。
摘要由CSDN通过智能技术生成

vue项目中echarts插件的引入方式

当我们在项目中用到echarts时,我们要怎么引入和使用呢,
首先要下载依赖,然后我们在项目中引用。

npm install echarts --save
在单个组件中引入

在单个组件中使用的时候

import echarts from "echarts";
export default {
  name: "addEcharts",
  data() {
    return {
    };
  },
  created() {},
  methods: {
    drawChart() {
      // 基于准备好的dom,初始化echarts实例
      let myChart = echarts.init(document.getElementById("main"));
      // 指定图表的配置项和数据
      let option = {
        series: [
          {
            type: "gauge",
            progress: {
              show: true,
              width: 25,
            },
            pointer: {
              show: false,
            },
            axisLine: {
              shwo: false,
              lineStyle: {
                width: 25,
              },
            },
            axisTick: {
              show: false,
            },
            splitLine: {
              show: false,
              length: 15,
              lineStyle: {
                width: 2,
                color: "#999",
              },
            },
            axisLabel: {
              show: false,
              distance: 25,
              color: "#999",
              fontSize: 20,
            },
            anchor: {
              show: false,
              showAbove: true,
              size: 25,
              itemStyle: {
                borderWidth: 10,
              },
            },
            title: {
              show: false,
            },
            detail: {
              valueAnimation: true,
              fontSize: 80,
              offsetCenter: [0, "10%"],
            },
            data: [
              {
                value: 70,
              },
            ],
          },
        ],
      };
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    },
  },
  mounted() {
     this.drawChart();
  },
};
在main.js中引入

在main.js中引入后,我们一般会选择挂载到原型上在各个组件中调用,如下:

import echarts from "echarts";
Vue.prototype.$echarts = echarts;

然后在用到的组件中这样使用

  let myChart = this.$echarts.init(document.getElementById("main"));

在main.js中引入store和router的时候我在思考,第三方插件可以在new Vue初始化时候注入然后在各个组件中用$来调用吗?然后我就尝试了一下

new Vue({
  router,
  store,
  echarts,
  render: h => h(App)
}).$mount('#app')

然后发现在别的组件中直接用 e c h a r t s 是 行 不 通 的 , 打 印 了 一 下 e c h a r t s 和 d a o l a e c h a r t s 发 现 后 者 是 u n d e f i n e d , 最 后 解 决 的 方 法 是 在 用 到 的 组 件 中 用 t h i s . echarts是行不通的,打印了一下echarts和daola echarts发现后者是undefined,最后解决的方法是在用到的组件中用this. echartsechartsdaolaechartsundefinedthis.root.$options.echarts来调用

  let myChart = this.$root.$options.echarts.init(document.getElementById("main"));

通过root去拿到根组件,再去拿到根组件上的echarts属性来实现的,当然还是建议用挂载原型的方法。

这个数据可以使用Python进行解析和处理。可以按照以下步骤进行: 1. 将数据分割成每个数据项。 ``` data_items = data.split(',') ``` 2. 对于每个数据项,将其按#分割成四个小项,并存储到一个列表中。 ``` data_list = [] for item in data_items: item_list = item.split('#') data_list.append(item_list) ``` 3. 对于每个小项,进行相应的类型转换。 ``` for item in data_list: item[0] = int(item[0]) # 题号转换为整数 item[1] = datetime.datetime.strptime(item[1], '%Y-%m-%d %H:%M:%S') # 时间转换为datetime类型 if item[2] != '': # 操作类型转换为整数 item[2] = int(item[2]) item[3] = str(item[3]) # 科目转换为字符串类型 ``` 4. 可以按照需要对数据进行进一步处理,如按照题号、时间等进行排序、筛选等操作。 完整的Python代码如下: ``` import datetime data = '''1#2021-05-18 14:31:55##初级会计实务,2#2021-05-18 14:31:57#12#初级会计实务,2#2021-05-18 14:32:08##初级会计实务,3#2021-05-18 14:32:09#12#初级会计实务,4#2021-05-18 14:32:34#12#初级会计实务,4#2021-05-18 14:32:45##初级会计实务,5#2021-05-18 14:32:46#12#初级会计实务,5#2021-05-18 14:32:57##初级会计实务,6#2021-05-18 14:33:00#12#初级会计实务,7#2021-05-18 14:33:44#12#初级会计实务,7#2021-05-18 14:34:42##初级会计实务,8#2021-05-18 14:34:43#12''' # 将数据分割成每个数据项 data_items = data.split(',') # 对于每个数据项,将其按#分割成四个小项,并存储到一个列表中 data_list = [] for item in data_items: item_list = item.split('#') data_list.append(item_list) # 对于每个小项,进行相应的类型转换 for item in data_list: item[0] = int(item[0]) # 题号转换为整数 item[1] = datetime.datetime.strptime(item[1], '%Y-%m-%d %H:%M:%S') # 时间转换为datetime类型 if item[2] != '': # 操作类型转换为整数 item[2] = int(item[2]) item[3] = str(item[3]) # 科目转换为字符串类型 print(data_list) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值