mpvue 使用echarts動態繪製圖表(數據改變從新渲染圖表)

  最近在公司開發一款微信小程序,按照客戶需求用餅狀圖顯示當前設備狀態(開機、故障、關機),因而就在網上尋找各類資料,找了不少mpvue使用關於echarts繪製圖表,最終功夫不負有心人,找到一篇關於mpvue使用echarts的文章,連接點擊這裏,須要的同窗自行查看。這裏面說明了如何使用echarts繪製圖表,其中echarts的配置項option你們能夠查看echarts的官方文檔進行配置,請移步這裏,點擊對應的實例,裏面就有詳細的option配置,還有一些關於echarts使用參數及配置手冊請看這裏html

  下面我將爲你們介紹如何會根據後臺返回的數據屢次渲染圖表,先給你們看一段mpvue中使用echarts的代碼vue

  
 1 <template>
 2   <div class="container">
 3     <div class="echarts">
 4       <div class="wrap">
 5         <mpvue-echarts :echarts="echarts" :onInit="initChart" />
 6       </div>
 7     </div>
 8   </div>
 9 </template>
10 <script>
11 import machineList from './machineList'
12 import * as echarts from '../../../static/echarts/echarts.min'
13 import mpvueEcharts from 'mpvue-echarts'
14 let chart = null
15 export default { 16  data () { 17     return { 18  echarts, 19       IN_PRODUCTION: 1, 20       IN_STAND: 1, 21       OFF_LINE: 1, 22       BREAKDOWN: 1, 23  machineList: [], 24       showState: false, 25       machineState: 'IN_PRODUCTION'
26  } 27  }, 28  components: { 29  mpvueEcharts, 30  machineList 31  }, 32  onLoad () { 33     this.getMachineStateInfo() 34  }, 35  methods: { 36  stateChange (val) { 37       this.machineState = val 38  }, 39  test () { 40       var option = { 41         calculable: false, 42  series: [ 43  { 44             type: 'pie', 45             radius: '55%', 46             center: ['50%', '60%'], 47  data: [ 48               {value: this.IN_PRODUCTION, name: '開機 : ' + this.IN_PRODUCTION}, 49               {value: this.OFF_LINE, name: '關機 : ' + this.OFF_LINE}, 50               {value: this.BREAKDOWN, name: '故障 : ' + this.BREAKDOWN} 51  ] 52  } 53  ] 54  } 55  chart.setOption(option) 56  }, 57  initChart (canvas, width, height) { 58       chart = echarts.init(canvas, 'light', { 59  width: width, 60  height: height 61  }) 62  canvas.setChart(chart) 63       return chart 64  }, 65  async getMachineStateInfo () { 66       let resp = await this.$http.get('machine/state/count') 67       if (resp.data.code === 1) { 68         this.IN_PRODUCTION = resp.data.data.machineOpen 69         this.OFF_LINE = resp.data.data.machineClosed 70         this.BREAKDOWN = resp.data.data.machineAlarm 71         setTimeout(() => { 72           this.test() 73         },1000) 74       } else { 75  wx.showToast({ 76  title: resp.data.message, 77           icon: 'none', 78           duration: 3000
79  }) 80  } 81  } 82  } 83 } 84 </script>
85 
86 <style scoped>
87  .echarts{ 88     width: 100%; 89     font-size: 14px; 90  } 91  .wrap { 92     width: 100%; 93  height: 200px; 94  margin: 30px auto; 95     margin-top: 0px; 96  } 97 </style>
mpvue 使用 echarts

  按照其餘博客介紹,echarts的option配置選項是寫到圖表初始化函數initChart中,我這裏把配置項option提出來寫到test函數中目的就是根據後臺數據屢次渲染圖表,echarts圖表屢次渲染的原理就是更換配置項中的某些值,而後chart.setOption(option)。這裏有一個getMachineStateInfo函數,就是從後臺讀取渲染圖表須要的數據。若是看了代碼還有什麼不懂的能夠評論區評論或者留言,我將會在第一時間解答。canvas

相關文章
相關標籤/搜索