import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, Image, Text, Input } from "@tarojs/components";
import { Popup, Progress, Slider } from "@antmjs/vantui";
import { useEffect, useRef, useState, useCallback } from "react";
import Echarts, { EChartOption, EchartsHandle } from "taro-react-echarts";
import echarts from "@/utils/echarts.min.js";

import "./index.less";

interface Props {
  series: any,
  full:any
}



function Index({ series ,full}: Props) {
  const echartsRef = useRef<EchartsHandle>(null);
  const [options, setOptions] = useState({
    animation: false,
    grid: {
      // 让图表占满容器
      // containLabel: true,
      top: "28rpx",
      left: "18rpx",
      right: "28rpx",
      bottom: "17rpx",
    },
    // legend: {
    //   itemStyle: {
    //     decal: {
    //       rotation: 90
    //     }
    //   }
    // },
    xAxis: {
      // name: '',
      // nameGap: 5,
      // nameTextStyle: {
      //   color: '#e4e4e4',
      //   fontSize:7
      // },
      type: "category",
      axisLine: {
        //坐标轴轴线相关设置。数学上的x轴
        show: true,
        lineStyle: {
          color: "#cccccc",
        },
      },
      axisLabel: {
        //坐标轴刻度标签的相关设置
        color: "#cccccc",
        fontSize: 8,
      },
      axisTick: {
        show: false,
      },
      data: [
        "00:01",
        "00:02",
        "00:03",
        "00:04",
        "00:05",
        "00:06",
        "00:07",
        "00:08",
        "00:09",
        "00:10",
      ],
    },
    yAxis: {
      type: "value",
      min: 0,
      max: 8,
      splitNumber: 8,
      splitLine: {
        show: true,
        lineStyle: {
          color: "#cccccc",
          type: [4, 2],
          dashOffset: 4,
        },
      },
      axisLine: {
        show: false,
      },
      axisLabel: {
        show: false,
      },
      axisTick: {
        show: false,
      },
    },
    visualMap: {
      z: 1,
      top: 0,
      right: 0,
      seriesIndex: 0,
      show: false,
      pieces: [
        {
          gt: 0,
          lte: 1,
          color: "#fff8c9",
        },
        {
          gt: 1,
          lte: 2,
          color: "#fff0c6",
        },
        {
          gt: 2,
          lte: 3,
          color: "#ffe5c3",
        },
        {
          gt: 3,
          lte: 4,
          color: "#ffdbbf",
        },
        {
          gt: 4,
          lte: 5,
          color: "#ffcfbb",
        },
        {
          gt: 5,
          lte: 6,
          color: "#ffbab5",
        },
        {
          gt: 6,
          lte: 7,
          color: "#ffb4b3",
        },
        {
          gt: 7,
          lte: 8,
          color: "#ffb4b3",
        },
      ],
      outOfRange: {
        color: "#ff8410",
      },
    },
    series: []
  })

  const level = [8, 7, 6, 5, 4, 3, 2];
  const [newOptions, setNewOptions] = useState(options)

  const updata = useCallback((res) => {
    let option = JSON.parse(JSON.stringify(options))
    option.series = JSON.parse(JSON.stringify(res))
    // 更新图表数据
    setNewOptions(option)
  }, [])

  const cancelFull = useCallback((res) => {
    full()
  }, [])



  useEffect(() => {
    setOptions(newOptions)
  }, [newOptions]);


  useEffect(() => {
    updata(series)
  }, [series])


  return (
    <Block>
      <View id='box' className='box'>
        <Echarts
          force-use-old-canvas='false'
          echarts={echarts}
          option={options}
          ref={echartsRef}
          // isPage={false}
          // style自定义设置echarts宽高
          style={{ width: "630rpx", height: "260rpx", zIndex: 1 }}
        />
        <View className='box_background'>
          <Image className='full' src={require("@/img/full-scran.png")} onClick={cancelFull}></Image>
          <View className='power'>实时能量</View>
          {level.map((item) => (
            <View className='line' key={item}>
              <View className='number'>{item}</View>
              <View className='bottom_line'></View>
            </View>
          ))}
          <View className='line'>
            <View className='number'>1</View>
          </View>
          <View className='time'>时间</View>
        </View>
      </View>
    </Block >
  );
}

export default Index;
