953a7bff创建于 2023年3月10日历史提交
import { FC, useEffect, useRef, useState } from "react";
import { ChartLines } from "coerger-design";
import CountUp from "react-countup";
const UsersAge: FC<{}> = (props) => {
  let todayUser = useRef(15);
  let todayUserBefore = useRef(0);

  let ageArr = useRef([
    {
      type: "0-20",
      data: 1200,
    },
    {
      type: "20-30",
      data: 1500,
    },
    {
      type: "30-40",
      data: 900,
    },
    {
      type: "≥50",
      data: 500,
    },
  ]);
  const [first, setfirst] = useState(0);

  useEffect(() => {
    let task: any;
    task = setInterval(() => {
      todayUserBefore.current = todayUser.current;
      todayUser.current += 0.88;
      for (let index = 0; index < ageArr.current.length; index++) {
        ageArr.current[index].data += 1;
      }
      setfirst((first) => first + 1);
    }, 2000);
    return () => {
      task && clearInterval(task);
    };
  }, []);
  return (
    <div className="UsersAge">
      <h1>用户年龄分布&平均年龄</h1>
      <div className="subTitle">User age distribution&average age</div>
      <div className="subTitle1 sui">
        <CountUp start={todayUserBefore.current} end={todayUser.current} duration={1} decimals={2} />
        <span style={{ fontSize: "30px" }}></span>
      </div>
      <div className="ChartLinesBox">
        <ChartLines width={800} height={50}></ChartLines>
      </div>

      <div className="ageType">
        {ageArr.current.map((item, index) => {
          return (
            <div className="age-item" key={index}>
              <div>
                <CountUp end={item.data} duration={1} />
              </div>
              <div className="cirBox">
                <div className="cir"></div>
                <span>{item.type}</span>
              </div>
            </div>
          );
        })}
      </div>
    </div>
  );
};

export default UsersAge;