index.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React, { useEffect } from "react";
  2. import { Layout } from "antd";
  3. import Menu from "./components/Menu";
  4. import DataModel from "./components/DataModel";
  5. import Navigator from "./components/Navigator";
  6. import { useModel } from "umi";
  7. const { Header, Content, Sider } = Layout;
  8. const App: React.FC = () => {
  9. const containerRef = React.useRef(null);
  10. const { initGraph } = useModel("erModel");
  11. useEffect(() => {
  12. if (containerRef.current) {
  13. initGraph?.(containerRef.current);
  14. }
  15. }, [containerRef.current]);
  16. return (
  17. <Layout className="h-100vh">
  18. <Header className="bg-white h-100px border-b-1px border-b-solid border-b-gray-200">
  19. <Menu />
  20. </Header>
  21. <Layout>
  22. <Sider
  23. width={360}
  24. style={{ background: "#fff", borderRight: "1px solid #f0f0f0" }}
  25. >
  26. <div className="flex flex-col h-full">
  27. <div className="flex-1">
  28. <div className="header px-10px py-4px bg-#ddd">数据模型</div>
  29. <DataModel />
  30. </div>
  31. <div className="flex-1 bg-#eee">
  32. <div className="header px-10px py-4px bg-#ddd">导航</div>
  33. <Navigator />
  34. </div>
  35. </div>
  36. </Sider>
  37. <Layout>
  38. <Content>
  39. <div id="graph-container" ref={containerRef}></div>
  40. </Content>
  41. </Layout>
  42. </Layout>
  43. </Layout>
  44. );
  45. };
  46. export default App;