import React, { useEffect } from "react"; import { Input, Layout, Tabs, ConfigProvider, Spin } from "antd"; import type { TabsProps } from "antd/lib"; import Toolbar from "./components/Toolbar"; import TablePanel from "./components/TablePanel"; import RelationPanel from "./components/RelationPanel"; import ThemePanel from "./components/ThemePanel"; import RemarkPanel from "./components/RemarkPanel"; import Navigator from "./components/Navigator"; import Menu from "./components/Menu"; import { useModel, useRequest, useParams } from "umi"; import "./index.less"; import { useSessionStorageState } from "ahooks"; import { EnvironmentOutlined, FullscreenExitOutlined, UnorderedListOutlined } from "@ant-design/icons"; import { GetDataModelDetail } from "@/api"; const { Header, Content, Sider } = Layout; const App: React.FC = () => { const containerRef = React.useRef(null); const { initGraph, project, playModeEnable, exitPlayMode, setProject } = useModel("erModel"); const [tabActiveKey, setTabActiveKey] = useSessionStorageState( "tabs-active-key", { defaultValue: "1", listenStorageChange: true, } ); const [show, setShow] = useSessionStorageState('show-navigator'); const params = useParams(); const { run, loading } = useRequest(GetDataModelDetail, { manual: true, onSuccess: (res) => { console.log("模型详情:", res); const result = res?.result; if (result) { setProject( result, false, true ); } }, }); useEffect(() => { if (containerRef.current) { initGraph(containerRef.current); } if(!project.id && params?.id) { run({ id: params.id }); } }, []); const tabItems: TabsProps["items"] = [ { key: "1", label: "表", children: , }, { key: "2", label: "关系", children: , }, { key: "3", label: "主题区域", children: , }, { key: "4", label: "注释", children: , }, ]; return ( {!playModeEnable && (
)} {!playModeEnable && ( )}
{ playModeEnable &&
setShow(!show)}/>
exitPlayMode()} >
}
); }; export default App;