import GraphBase from "../../../Common/GraphBase";
import ReactECharts from "echarts-for-react";
// import getOptions from "../../../../hooks/getChartOption";
import { useSelector } from "react-redux";
import { useState } from "react";
import * as echarts from "echarts";

function Dust(props) {
  const dayTrend = useSelector((state) => state.smoke?.dayTrend);
  const weekTrend = useSelector((state) => state.smoke?.weekTrend);
  const monthTrend = useSelector((state) => state.smoke?.monthTrend);
  const yearTrend = useSelector((state) => state.smoke?.yearTrend);
  const [period, setPeriod] = useState("日");

  const currentTrend =
    period === "日"
      ? dayTrend
      : period === "周"
      ? weekTrend
      : period === "月"
      ? monthTrend
      : yearTrend;

  const options = getOptions("dust_float", period, currentTrend);

  function handleSwitch(v) {
    // console.log('switched ', v);
  }

  function handleDateChange(v) {
    setPeriod(v);
    // console.log('date ', v);
  }

  return (
    <GraphBase
      icon="smoke"
      title="颗粒物"
      desc="能耗趋势图"
      switchOptions={false}
      defaultSelect={period}
      onSwitch={handleSwitch}
      dateOptions={["日", "周", "月", "年"]}
      //   legend={["总量", "白班", "夜班"]}
      onDateChange={handleDateChange}
      size={["long", "middle"]}
    >
      {/* real echarts here */}
      {options && (
        <ReactECharts
          key={Math.random()}
          option={options}
          // option={getOptions(
          //   [
          //     [91, 164, 88, 120, 167, 158, 43],
          //     [30, 75, 52, 43, 73, 66, 36],
          //     [61, 89, 36, 77, 94, 92, 7],
          //   ],
          //   "氧气"
          // )}
          style={{ height: "100%" }}
        />
      )}
      {!options && (
        <p
          style={{
            color: "#cccf",
            fontSize: "24px",
            userSelect: "none",
            textAlign: "center",
            paddingTop: "96px",
          }}
        >
          暂无数据
        </p>
      )}
      {/* real table data here  */}
    </GraphBase>
  );
}

export default Dust;

function getOptions(source, period, trend) {
  if (trend[source].length == 0) return null;
  return {
    color: ["#FFD160", "#12FFF5", "#2760FF"],
    grid: { top: 40, right: 12, bottom: 20, left: 56 },
    xAxis: {
      type: "category",
      //   data: Array(7)
      //     .fill(1)
      //     .map((_, index) => {
      //       const today = new Date();
      //       const dtimestamp = today - index * 24 * 60 * 60 * 1000;
      //       return `${new Date(dtimestamp).getMonth() + 1}.${new Date(
      //         dtimestamp
      //       ).getDate()}`;
      //     })
      //     .reverse(),
      data: trend[source].map((item) => item.time),
      axisLabel: {
        color: "#fff",
        fontSize: 12,
      },
      axisTick: { show: false },
      axisLine: {
        lineStyle: {
          width: 1,
          color: "#213259",
        },
      },
    },
    yAxis: {
      name: "单位mg/m³",
      nameTextStyle: {
        color: "#fff",
        fontSize: 12,
        align: "right",
      },
      type: "value",
      axisLabel: {
        color: "#fff",
        fontSize: 12,
        formatter: "{value}",
      },
      axisLine: {
        show: true,
        lineStyle: {
          color: "#213259",
        },
      },
      splitLine: {
        lineStyle: {
          color: "#213259a0",
        },
      },
      //   interval: 10,
      //   min: 0,
      //   max: 100,
    },
    series: [
      {
        // (isNaN((+"f")) ? 0 : (+"f")).toFixed(2)
        data: trend[source].map((item) => !(item.value == null || isNaN(+item.value)) ? (+item.value).toFixed(2) : null),
        type: "line",
        symbol: "circle",
        symbolSize: 6,
        areaStyle: {
          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
            { offset: 0, color: "#FFD16040" },
            { offset: 0.5, color: "#FFD16020" },
            { offset: 1, color: "#FFD16010" },
          ]),
        },
        // smooth: true,
      },
      //   {
      //     data: Array(7)
      //       .fill(1)
      //       .map((_) => {
      //         return randomInt(60, 100);
      //       }),
      //     type: "line",
      //     areaStyle: {
      //       color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
      //         { offset: 0, color: "#12FFF540" },
      //         { offset: 0.5, color: "#12FFF520" },
      //         { offset: 1, color: "#12FFF510" },
      //       ]),
      //     },
      //     // smooth: true,
      //   },
      //   {
      //     data: Array(7)
      //       .fill(1)
      //       .map((_) => {
      //         return randomInt(60, 100);
      //       }),
      //     type: "line",
      //     areaStyle: {
      //       color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
      //         { offset: 0, color: "#2760FF40" },
      //         { offset: 0.5, color: "#2760FF20" },
      //         { offset: 1, color: "#2760FF10" },
      //       ]),
      //     },
      //     // smooth: true,
      //   },
    ],
    tooltip: {
      trigger: "axis",
      axisPointer: {
        type: "shadow",
      },
      className: "xc-chart-tooltip",
      // backgroundColor: ''
    },
  };
}