91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Vue中如何實現循環渲染多個相同echarts圖表

發布時間:2020-07-20 17:26:58 來源:億速云 閱讀:1742 作者:小豬 欄目:開發技術

小編這次要給大家分享的是在Vue中如何實現循環渲染多個相同echarts圖表,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

在開發過程中我們常常需要,在一個頁面中使用相同的圖表來展示同級別的多個事物(如:同級別的多個不同id的倉庫、同級別的多個不同id的設備等)。

在Vue中如何實現循環渲染多個相同echarts圖表

上圖效果實現代碼:

<template>
 <div class="projectCost">
 <div class="container">
  <div class="wrapper" v-for="(item,index) in list" :key="index"> 
  <div class="roseChart"></div> // 使用class,不是id
  </div>
 </div>
 </div>
</template>

<script>
export default {
 data(){
 return {
  list:[ // 假數據
  {
   id:1,
   price:{
   name:'項目一',
   resData:[
    {name:'訂購費用',value:12},
    {name:'飼養費用',value:18},
    {name:'實驗費用',value:8},
    {name:'其他費用',value:10},
   ]
   }
  },{
   id:2,
   price:{
   name:'項目二',
   resData:[
    {name:'訂購費用',value:18},
    {name:'飼養費用',value:10},
    {name:'實驗費用',value:20},
    {name:'其他費用',value:9},
   ]
   }
  }
  ]
 }
 },
 methods:{
 drawRose(){
  var echarts = require("echarts");
  var roseCharts = document.getElementsByClassName('roseChart'); // 對應地使用ByClassName
  for(var i = 0;i < roseCharts.length;i++ ){ // 通過for循環,在相同class的dom內繪制元素
  var myChart = echarts.init(roseCharts[i]);
  myChart.setOption({
   color: ["#4DFFFD", "#7B3FF6", "#1F6DFE", "#34A6FE"],
   title: {
   text: this.list[i].price.name,
   left: '70',
   top: 5,
   textStyle: {
    color: '#4DFFFD',
    fontSize: 14,
   }
   },
   tooltip: {
   trigger: 'item',
   formatter: "{b} : {c} (aegqsqibtmh%)"
   },
   legend: {
   type: "scroll",
   orient: "vartical",
   top: "center",
   right: '0px',
   itemWidth: 16,
   itemHeight: 8,
   itemGap: 16,
   textStyle: {
    color: '#FFFFFF',
    fontSize: 12,
   },
   data: ['訂購費用', '飼養費用', '實驗費用', '其他費用']
   },
   polar: {
   center:['36%','56%'],
   },
   angleAxis: {
   interval: 3, // 強制設置坐標軸分割間隔
   type: 'category',
   z: 10,
   axisLine: {show: false},
   axisLabel: {show: false},
   },
   radiusAxis: {
   min: 10,
   max: 1000,
   interval: 200,
   axisLine: {show: false},
   axisLabel: {show: false},
   splitLine: {
    lineStyle: {
    color: "#2277C3",
    width: 1,
    type: "solid"
    }
   }
   },
   calculable: true,
   series: [
   {
    type: 'pie',
    radius: ["10%", "14%"],
    center:['36%','56%'],
    hoverAnimation: false,
    labelLine: {show: false},
    data: [{
    value: 0,
    itemStyle: {
     normal: {
     color: "#809DF5"
     }
    }
    }]
   },{
    stack: 'a',
    type: 'pie',
    radius: ['20%', '80%'],
    center:['36%','56%'],
    roseType: 'area',
    zlevel:10,
    label: {show: false},
    labelLine: {show: false},
    data: this.list[i].price.resData // 渲染每個圖表對應的數據
   }]
  	})
  }
 }
 },
 mounted(){
 this.drawRose()
 }
}
</script>

<style lang="scss" scoped>
.projectCost{
 margin-left: 40px;
 .container{
 display: flex;
 width: 680px;
 height: 240px;
 background-size: 100% 100%;
 // background-image: url('../../../assets/images/projectTest/costDetail.png');
 .wrapper{
  margin-top: 20px;
  width: 340px;
  height:180px;
  border-right: 1px solid #0B61B3;
  .roseChart{
  width: 260px;
  height:180px;
  }
 }
 }
}
</style>

補充知識:echarts 同時控制多個圖表的屬性值變更

echarts v4.x 版本如何同時控制多個圖標的屬性值變更

簡單理解:

echarts為一個對象形式出現在代碼中,通過 Canvas、SVG(4.0+)、VML 的形式渲染圖表

實現方法:

echarts.init 方法初始化一個 echarts 實例并通過 setOption 方法生成一個簡單的圖表

需求:

將頁面多個圖表渲染完成后 選擇更新數據或者查看固定時間段區域數據等按鈕實現動態的改變echarts的圖表數據表現。

分析:

1、首先對于echarts而言,每個圖表都是一個單獨的echarts對象,那么我們只需要將每個對象獲取到并通過getOption()函數獲取到每個對象的屬性,并對其賦值。

2、然后通過setOption(echartsObject)方法對其執行渲染就可以了(echartsObject為每個echarts對象)。

設計思路:

1、設置一個全局數組用來裝入每一個echarts對象。

var myCharts=[];

然后在每個echarts實例化完成后將當前的echarts對象放進myCharts數組中。

function darwChart(id, monitorItemData, monitorItemDecimal,oiltime) {
 ...
 var chartid = "chart_" + id;
 chartid = echarts.init(dom);
 chartid.setOption(option={...})
 myCharts.push(chartid);
 ...
}

注:這里說明id為每個表加載的時候獲取的數據id,本人通過這個id來區分不同的echarts對象,如果設置多個方法互相不關聯,可以不用這么寫,這里自由分配,主要理解實現思想。

2、然后外部按鈕觸發事件的方法:循環賦值實現,這里就簡單了。ok,祝你成功。

function gettimeradio(){
 var rr = $('input:radio[name="r2"]:checked').attr('id');
 Xmin = getDateTime(rr);
 Xmax = getDateTime(0);
 myCharts = Array.from(new Set(myCharts));
 myCharts.forEach(data=>{
  var chart = data.getOption();
  chart.xAxis[0].min =Xmin ;
  chart.xAxis[0].max =Xmax ;
  data.setOption(chart); 
 })
}

看完這篇關于在Vue中如何實現循環渲染多個相同echarts圖表的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆安县| 京山县| 逊克县| 桐梓县| 湾仔区| 旬邑县| 桑植县| 高邮市| 泸州市| 多伦县| 汨罗市| 保山市| 乌拉特后旗| 江永县| 松潘县| 东丽区| 建昌县| 临沭县| 合川市| 延川县| 曲水县| 攀枝花市| 中卫市| 新绛县| 瑞昌市| 桃江县| 邹城市| 育儿| 亚东县| 鄂州市| 金坛市| 丰镇市| 云南省| 明水县| 曲麻莱县| 安龙县| 老河口市| 兴城市| 麻城市| 孟村| 海安县|