亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

echarts.js 動態(tài)生成多個圖表 使用vue封裝組件操作

 更新時間:2020年07月19日 09:05:15   作者:ange2017  
這篇文章主要介紹了echarts.js 動態(tài)生成多個圖表 使用vue封裝組件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

組件只做了簡單的傳值處理,記錄開發(fā)思路及echarts簡單使用。

這里默認所有圖表樣式一致,都為柱狀圖,如需其他類型,可查閱echarts官網文檔,再動態(tài)傳值即可。

vue 使用組件 ------在外層用v-for 循環(huán),傳不同值進charts 即可

   <!-- 傳入對應的數據給子組件 -->
   <charts
    :options="item.select" 
    :id='"charts" +index'
    :index="index"
    style="width: 900px;height:400px;"
   ></charts>
   <!-- 傳入對應的數據給子組件 end -->

vue創(chuàng)建子組件-----初始化空模板

 <!-- 圖表組件 -->
 <template>
  <div></div>
 </template>
 <!-- 圖表組件 end -->

主要部分 ------ 初始化echarts.js

Vue.component('charts', {
  template: '#charts',  
  // 傳入對應的數值與動態(tài)index
  props: ['options', 'index'],
  methods: {
   initOption() {
   var that = this
   var arr1 = [] // x軸刻度
   var arr2 = [] // y軸數據值
 
    // 取出需要的數據
   this.options.forEach(element => {
    arr1.push(element.selectedTopic)
    arr2.push(element.peopleNum)
   })
 
   // 基于準備好的dom,初始化echarts實例
   var myChart = echarts.init(
    document.getElementById('charts' + this.index)
   )
 
   // 指定圖表的配置項和數據
   var option = {
    color: ['#3582F8'],
    tooltip: {
    trigger: 'axis',
    axisPointer: {
     // 坐標軸指示器,坐標軸觸發(fā)有效
     type: 'shadow' // 默認為直線,可選為:'line' | 'shadow'
    }
    },
    grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
    },
    xAxis: [
    {
     type: 'category',
     data: arr1, // X軸的刻度
     axisTick: {
     alignWithLabel: true
     }
    }
    ],
    yAxis: [
    // y軸的刻度值自動調整
    {
     type: 'value'
    }
    ],
    series: {
    name: 'y軸數值',
    type: 'bar',
    barWidth: '60%',
    data: arr2 // 具體選擇數值
    }
   }
 
   // 使用剛指定的配置項和數據顯示圖表。
   myChart.setOption(option)
   }
  },
  mounted() {
   this.initOption()
  },
  created() {}
  })

補充知識:vue根據獲取的數據動態(tài)循環(huán)渲染多個echart(多個dom節(jié)點,多個ID)

//在dom節(jié)點加載之后調用渲染echart儀表盤方法,this.$nextTick(function(){ }

<div class="chart">
 
     <div class="geo" v-for="(dataval, index) in dataVal" :key="index" :id="forId(index)"></div>
 
</div>
methods: {
 forId:function(index){
  return "geo_" +index
 },
 
 mapTree() {
   this.$nextTick(function(){
    for(var i=0;i<this.dataVal.length;i++){
      //獲取id放入數組中,以便下面渲染echart儀表盤使用
     this.getId.push(this.$echarts.init(document.getElementById('geo_'+i)));
     this.getId[i].setOption({
      title: {
       text: this.dataVal[i].name+'棟',
       textStyle: {
        color: '#00f2f1',
        fontSize: 14
       },
       left: 'center',
       top: 5
      },
      tooltip: {
       formatter: '{a} <br/>{c}'
      },
      series:[
      {
       name: '工作電表數',
       type: 'gauge',
       radius: '80%',
       min: 0,
       max: Number(this.dataVal[i].sum),
       splitNumber: 10,
       axisLine: {      // 坐標軸線
        lineStyle: {    // 屬性lineStyle控制線條樣式
          color: [[0.30, '#ff4500'], [0.80, '#1e90ff'], [1, 'lime']],
          width: 1,
          shadowColor: '#fff', //默認透明
        }
       },
       axisLabel: {      // 坐標軸小標記
        color: '#fff',
        shadowColor: '#fff', //默認透明
        shadowBlur: 10
       },
       axisTick: {      // 坐標軸小標記
        length: 4,    // 屬性length控制線長
        lineStyle: {    // 屬性lineStyle控制線條樣式
          color: 'auto',
          shadowColor: '#fff', //默認透明
          shadowBlur: 10
        }
       },
       splitLine: {      // 分隔線
        length: 7,     // 屬性length控制線長
        lineStyle: {    // 屬性lineStyle(詳見lineStyle)控制線條樣式
         width: 2,
         color: '#fff',
         shadowColor: '#fff', //默認透明
         shadowBlur: 10
        }
       },
       pointer: {      // 分隔線
        width:4,//指針的寬度
        length:"70%", //指針長度,按照半圓半徑的百分比
        shadowColor: '#fff', //默認透明
        shadowBlur: 5
       },
       title: {
        textStyle: {    // 其余屬性默認使用全局文本樣式,詳見TEXTSTYLE
         fontWeight: 'bolder',
         fontSize: 10,
         fontStyle: 'italic',
         color: '#fff',
         shadowColor: '#fff', //默認透明
         shadowBlur: 10
        }
       },
       detail: {
        fontSize: 12,
       },
       data: [{value: this.dataVal[i].normalSum, name: ''}]
      }]
     });
    }
   })
  }
}

以上這篇echarts.js 動態(tài)生成多個圖表 使用vue封裝組件操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue實現微信公眾號h5跳轉小程序的示例代碼

    vue實現微信公眾號h5跳轉小程序的示例代碼

    本文主要介紹了vue實現微信公眾號h5跳轉小程序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Vue使用.sync 實現父子組件的雙向綁定數據問題

    Vue使用.sync 實現父子組件的雙向綁定數據問題

    這篇文章主要介紹了Vue使用.sync 實現父子組件的雙向綁定數據,需要的朋友可以參考下
    2019-04-04
  • vue axios調用接口方法報錯500 internal server error的兩種解決方法

    vue axios調用接口方法報錯500 internal server err

    前端使用axios 訪問后端接口時報錯,在瀏覽器中點擊紅色的報錯數據,本文給大家分享vue axios調用接口方法報錯500 internal server error的兩種解決方法,感興趣的朋友一起看看吧
    2023-10-10
  • Vue綁定用戶接口實現代碼示例

    Vue綁定用戶接口實現代碼示例

    這篇文章主要介紹了Vue綁定用戶接口代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • vue如何調用攝像頭實現拍照上傳圖片、本地上傳圖片

    vue如何調用攝像頭實現拍照上傳圖片、本地上傳圖片

    這篇文章主要給大家介紹了關于vue如何調用攝像頭實現拍照上傳圖片、本地上傳圖片的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-07-07
  • Vue中的 DOM與Diff詳情

    Vue中的 DOM與Diff詳情

    這篇文章主要介紹了Vue中的 DOM與Diff詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-08-08
  • Vue子父組件之間傳值的三種方法示例

    Vue子父組件之間傳值的三種方法示例

    Vue的組件化給前端開發(fā)帶來極大的便利,下面這篇文章主要給大家介紹了關于Vue子父組件之間傳值的三種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • vite+vue3搭建的工程熱更新失效問題及解決

    vite+vue3搭建的工程熱更新失效問題及解決

    這篇文章主要介紹了vite+vue3搭建的工程熱更新失效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue Element前端應用開發(fā)之菜單資源管理

    Vue Element前端應用開發(fā)之菜單資源管理

    在權限管理系統中,菜單也屬于權限控制的一個資源,屬于角色控制的一環(huán)。不同角色用戶,登錄系統后,出現的系統菜單是不同的。菜單結合路由集合,實現可訪問路由的過濾,也就實現了對應角色菜單的展示和可訪問路由的控制。
    2021-05-05
  • 解決Vue大括號字符換行踩的坑

    解決Vue大括號字符換行踩的坑

    這篇文章主要介紹了解決Vue大括號字符換行踩的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論