大屏可视化

左下角

先拿到数据连接。

使用axios方法获取数据

因大屏可视化图表较多导致后面写起来较困难

进行抽离封装

import React,{useEffect,useState,useRef} from 'react'
import './index.css'
import { getWather } from '../../request'
import * as echarts from 'echarts'
// import electric from '../../images/electric.png'
// import water from '../../images/water.png'
import xz from '../../images/xiaozuo.png'
import xy from '../../images/xiaoyou.png'
function Index() {
  const [option , setOption] = useState({
    legend: {
      icon: 'circle',
      textStyle: {
          color: '#fff' 

      }
    },
    tooltip: {},
    dataset: {
      dimensions: ['product', '教学用水', '安防设备机电', '生态用水', '生活用水'],
      source: [
        { product: '八月', '教学用水': 43.3, '安防设备机电': 85.8, '生态用水': 93.7, '生活用水': 88 },
        { product: '七月', '教学用水': 76, '安防设备机电': 89, '生态用水': 65, '生活用水': 56 },
      ]
    },
    xAxis: { type: 'category' },
    yAxis: {},
    series: [{ type: 'bar' }, { type: 'bar' }, { type: 'bar' }, { type: 'bar' }]
  })
  const eleWaterChart = useRef(null)
  useEffect(()=>{
    const mychart = echarts.init(eleWaterChart.current)
    getWather().then(resp=>{
      let dimensions = resp.data.data.result[0].series.map(item=>{
        return item.name
      })
      dimensions.unshift('product')
      option.dataset.dimensions=dimensions
      let source = resp.data.data.result[0].yAxis.data.map((item,index)=>{
        let inSource = dimensions.slice(1)
        let obj={}
        inSource.forEach((v,i)=>{
          obj[v] = resp.data.data.result[0].series[i].data[index]
        })
        return{
          product:item,
         ...obj
        }
      })
    })
    mychart.setOption(option)
  },[])
  return (
    <div className="right-top-echarts">
      <div className="right-top-top">
      <div className="right-top-left">
        <img src={xz}/>
      </div>
      <div className="right-top-right">
        <img src={xy}/> 
      </div>
      </div>
      <div className='ele-water' ref={eleWaterChart}></div>
    </div>
  )
}

export default Index

写完直接在主页面导入就好了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值