echarts + vue 使用

1 篇文章 0 订阅
<template>
  <div class="h100p">
                <div class="basic_title">监控</div>
                <div v-for="(item,index) in containerMonitor" :key="index">
                  <div class="basic_model" style="margin-top: 10px;!important;">
                    <div class="dIB mL10" style="width:99%">
                      <span class="fs12 fwb">{{item.name}}</span>
                       //定义一个div装监控图表
                      <div :id="getChartName(item.chartId)" style="width: 100%;height: 190px"></div>
                    </div>
                  </div>
                </div>
              </div>
</template>

<style lang="scss">

  .nodeDetail {
    min-height:100%;
    padding: 10px;
    background: #f9f9f9;
  }
</style>

<script>
  import echarts from 'echarts'

  export default{
    data () {
      return {
        infoData:{},
        containerMonitor:[
          {name:'CPU使用量(core)',chartId:'_cpuUsedCiCharts'}
        ],
        //option
        cpuUsedCiChartOption: {
          tooltip: {
            trigger: 'axis',
              //弹出的自定义信息
             formatter: function(data){
                  return  data[0].axisValueLabel + '<br/>' + data[0].marker +'' +data[0].seriesName + ':'+(data[0].value[1])+'%';            }
          },
          legend: {
            top: 0,
            right:25,
            icon:'circle',
            data:['']
          },
          color:['#2191ca'],
          calculable: true,
          grid:{
            x:50,
            y:30,
            x2:30,
            y2:30,
          },
          xAxis: [
            {
              type: 'time',
              axisTick:{
                show:false
              },
              axisLine:{
                lineStyle:{
                  color:'#dfdfdf',
                  width:1,
                }
              },
              splitLine:{
                lineStyle:{
                  color:'#dfdfdf',
                }
              },
              axisLabel:{
                formatter:function (value) {
                  return echarts.format.formatTime('hh:mm:ss', new Date(value));
                },
                margin:12
              }
            }
          ],
          yAxis: [
            {
              type: 'value',
              axisTick:{
                show:false
              },
              axisLine:{
                lineStyle:{
                  color:'#dfdfdf',
                  width:1,//轴线宽度
                }
              },
              splitLine:{
                lineStyle:{
                  type:'dashed',//轴线样式
                  color:'#dfdfdf',
                }
              },
              axisLabel: {
                formatter: function(value){
                  return (value).toString()
                },
                textStyle: {
                  color: '#ccc'
                },
              }
            }
          ],
          series: []
        },
        dashboardData:{},
        pannelList:{
          monitor:'监控',
        },
        activeName:'monitor',
      }
    },
    created(){
    
      this.$nextTick(function () {
        this._getDashboardContainer()
      })
    },
    methods:{
      _getDashboardContainer(){
        let param='*****'
        getDashboardContainer(param).then(res => {
          this.dashboardData=res.data.data
          this.infoData=res.data.data.containerInfo
          for (let data in this.infoData){
            if (this.infoData[data].toString()===undefined||this.infoData[data].toString()==='') {
              this.infoData[data]='-'
            }
          }
          this.dashForChart(this.dashboardData)
        }).catch(() => {})
      },
      getChartName(chart){
        return chart
      },
      dashForChart(dashData){
        let cpuUsedCi = this.dashForCpuUsedCi(dashData.cpuUsedCi)
   
        setTimeout(function(){
          window.onresize = function () {
            cpuUsedCi.resize()
      }
        },200)
      },
      dashForCpuUsedCi(cpuUsedCiData){
        let series = [],cpuUsedCi
        var data = cpuUsedCiData.current
        console.log(data)
        series.push({
          name:'使用量',
          type: 'line',
          data: data,
          symbol: 'none',
          itemStyle : {
            normal : {
              lineStyle:{
                color:'#2191ca',
                width:1
              },
              areaStyle:{
                color:'#2191ca',
                opacity:0.1
              }
            }
          }
        })
        this.cpuUsedCiChartOption.series = series
        //初始化
        cpuUsedCi = echarts.init(document.getElementById('_cpuUsedCiCharts'))
        cpuUsedCi.setOption(this.cpuUsedCiChartOption)
        return cpuUsedCi
      },
    
    },
  }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一款基于JavaScript的开源可视化图表库,而Vue是一套用于构建用户界面的渐进式JavaScript框架。结合使用EChartsVue可以创建各种交互式的数据可视化图表。 一个常见的ECharts Vue案例是在Vue项目中使用ECharts来展示特定数据集的柱状图。以下是该案例的简要实现步骤: 1. 安装ECharts使用npm或yarn命令在Vue项目中安装ECharts。例如,可以执行以下命令来安装ECharts: ``` npm install echarts --save ``` 2. 导入ECharts库:在需要使用EChartsVue组件中导入ECharts库。例如,可以在script标签中添加以下代码: ```javascript import echarts from 'echarts' ``` 3. 创建图表容器:在Vue组件中创建一个div元素作为图表的容器。例如,可以在template标签中添加以下代码: ```html <template> <div id="chartContainer"></div> </template> ``` 4. 初始化图表实例:在Vue组件的mounted生命周期钩子函数中通过ECharts初始化图表的实例。例如,可以在script标签中添加以下代码: ```javascript mounted() { const chartContainer = document.getElementById('chartContainer') const chart = echarts.init(chartContainer) } ``` 5. 配置图表选项:通过设置ECharts实例的option属性来配置图表的选项。例如,可以在mounted函数中添加以下代码: ```javascript mounted() { const chartContainer = document.getElementById('chartContainer') const chart = echarts.init(chartContainer) chart.setOption({ xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar' }] }) } ``` 6. 渲染图表:通过调用ECharts实例的render方法将图表渲染到页面中。例如,可以在mounted函数中最后添加以下代码: ```javascript mounted() { const chartContainer = document.getElementById('chartContainer') const chart = echarts.init(chartContainer) chart.setOption({ // 配置图表选项 }) chart.render() } ``` 以上就是一个简单的ECharts Vue案例的实现步骤。通过按照以上步骤,可以在Vue项目中使用ECharts来展示各种类型的可视化图表,包括折线图、饼图、雷达图等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值