echarts树图实现的组织架构

img

demo: https://d9yb5o.csb.app/

import React, { useEffect, useRef, useState } from "react";
import { treeData, orgLogo } from "./mockdata";
import * as echarts from "echarts";

const WinnerHeight = window.innerHeight;

export default function App() {
  const [treeHeight, setTreeHeight] = useState(WinnerHeight);
  let myChart = null;
  const chart = useRef();

  const formatData = (it, index) => {
    const newObj = { ...it };
    const { title: name, key = 0 } = newObj;
    if (index <= 1) {
      Object.assign(newObj, {
        label: {
          height: 40,
          verticalAlign: "middle",
          align: index === 0 ? "left" : "center",
          color: "#fff",
          formatter: () => `{logo|}{name|${name}(${key})}`,
          backgroundColor: "rgba(79,125,217,1)",
          borderRadius: [20, 5, 5, 20],
          rich: {
            logo: {
              backgroundColor: {
                image: orgLogo
              },
              width: 40,
              height: 40
            },
            name: {
              height: 40,
              color: "#FFF",
              padding: [0, 10],
              align: "center",
              fontSize: 16,
              borderRadius: [5]
            }
          }
        },
        emphasis: {
          label: {
            height: 40,
            verticalAlign: "middle",
            align: index === 0 ? "left" : "center",
            color: "#fff",
            formatter: () => `{logo|}{name|${name}(${key})}`,
            backgroundColor: "rgba(62,101,226,1)",
            borderRadius: [20, 5, 5, 20],
            rich: {
              logo: {
                backgroundColor: {
                  image: orgLogo
                },
                width: 40,
                height: 40
              },
              name: {
                height: 40,
                color: "#FFF",
                padding: [0, 10],
                align: "center",
                fontSize: 16,
                borderRadius: [5]
              }
            }
          }
        }
      });
    }

    if (index > 1) {
      Object.assign(newObj, {
        label: {
          height: 30,
          verticalAlign: "middle",
          align: "center",
          color: "#fff",
          backgroundColor: "rgba(62,101,226,1)",
          borderRadius: [5],
          formatter: () => `{name|${name}(${key})}`,
          rich: {
            name: {
              height: 30,
              color: "#FFF",
              padding: [0, 10],
              align: "center",
              fontSize: 12
            }
          }
        },
        emphasis: {
          label: {
            backgroundColor: "rgba(62,101,226,1)"
          }
        }
      });
    }

    if (newObj.children) {
      const newChildren = [];
      const sourceChildren = [...newObj.children];
      sourceChildren.forEach((el) => {
        newChildren.push(formatData(el, index + 1));
      });
      newObj.children = newChildren;
    }
    return newObj;
  };

  const getTreeLeafnode = (it) => {
    const leafnode = [];
    const getChildren = (children) => {
      if (children && children.children && children.children.length) {
        children.children.forEach((el) => {
          getChildren(el);
        });
      } else {
        leafnode.push(children);
      }
    };

    getChildren(it);
    return leafnode.length;
  };
  const drawSaveTrend = () => {
    myChart.clear();
    const res = treeData.map((el) => formatData(el, 0));
    const leafnode = getTreeLeafnode(treeData[0]);
    const option = {
      series: [
        {
          type: "tree",
          orient: "horizontal",
          name: "机构",
          edgeShape: "polyline",
          data: res,
          top: 20,
          bottom: 20,
          left: 20,
          lineStyle: {
            color: "rgba(207,5,183,1)",
            width: 3
          },
          expandAndCollapse: true,
          animationDuration: 550,
          animationDurationUpdate: 750
        }
      ]
    };
    myChart.setOption(option);
    const newTreeHeight =
      leafnode * 35 > WinnerHeight ? leafnode * 35 : WinnerHeight;
    setTreeHeight(newTreeHeight);
    myChart.resize({ height: newTreeHeight });
  };

  const resize = () => {
    myChart?.resize();
  };
  useEffect(() => {}, []);

  useEffect(() => {
    window.addEventListener("resize", () => resize());
    if (chart.current) {
      echarts.dispose(chart.current);
    }
    myChart = echarts.init(chart.current);
    drawSaveTrend();
  }, []);

  return (
    <div
      ref={chart}
      style={{
        width: "100%",
        height: treeHeight
      }}
    />
  );
}


数据文件mockdata

const treeData = [
  {
    title: "0-0",
    key: "0-0",
    children: [
      {
        title: "0-0-0",
        key: "0-0-0",
        children: [
          {
            title: "0-0-0-0",
            key: "0-0-0-0"
          },
          {
            title: "0-0-0-1",
            key: "0-0-0-1"
          },
          {
            title: "0-0-0-2",
            key: "0-0-0-2"
          }
        ]
      },
      {
        title: "0-0-1",
        key: "0-0-1",
        children: [
          {
            title: "0-0-1-0",
            key: "0-0-1-0"
          },
          {
            title: "0-0-1-1",
            key: "0-0-1-1"
          },
          {
            title: "0-0-1-2",
            key: "0-0-1-2"
          }
        ]
      },
      {
        title: "0-0-2",
        key: "0-0-2"
      }
    ]
  },
  {
    title: "0-1",
    key: "0-1",
    children: [
      {
        title: "0-1-0-0",
        key: "0-1-0-0"
      },
      {
        title: "0-1-0-1",
        key: "0-1-0-1"
      },
      {
        title: "0-1-0-2",
        key: "0-1-0-2"
      }
    ]
  },
  {
    title: "0-2",
    key: "0-2"
  }
];

const orgLogo =
  "data:image/png;base64,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";

export { orgLogo, treeData };

// 图片转为Base64格式
// const image2Base64 = img => {
//   const canvas = document.createElement('canvas')
//   canvas.width = img.width
//   canvas.height = img.height
//   const ctx = canvas.getContext('2d')
//   ctx.drawImage(img, 0, 0, img.width, img.height)
//   const dataURL = canvas.toDataURL('image/png')
//   return dataURL
// }

// const img = new Image()
// img.src = 图片来源
// const imgdata = image2Base64(img)
posted @ 2022-10-28 09:49  VictoriaC~  阅读(502)  评论(0编辑  收藏  举报