|
@@ -6,10 +6,11 @@ import { useModel, Icon } from "umi";
|
|
|
import { addTopic } from "../../mindMap";
|
|
|
import { TopicType, GraphType } from "@/enum";
|
|
|
import { selectTopic, addBorder, addSummary } from "@/utils/mindmapHander";
|
|
|
-import { createNew } from "@/utils";
|
|
|
+import { base64ToFile, createNew } from "@/utils";
|
|
|
import FindReplaceModal from "@/components/FindReplaceModal";
|
|
|
import { useFindReplace } from "@/hooks/useFindReplace";
|
|
|
import { SaveAll } from "@/api/systemDesigner";
|
|
|
+import { UploadFile } from "@/api";
|
|
|
|
|
|
export default function index() {
|
|
|
const {
|
|
@@ -62,22 +63,44 @@ export default function index() {
|
|
|
|
|
|
// 保存
|
|
|
const handleSave = async () => {
|
|
|
- const graphInfo = {
|
|
|
- ...(mindProjectInfo || {}),
|
|
|
- ...mindProjectInfo?.pageSetting,
|
|
|
- id: sessionStorage.getItem("projectId"),
|
|
|
- type: GraphType.mindmap
|
|
|
- }
|
|
|
- delete graphInfo.pageSetting;
|
|
|
- delete graphInfo.topics;
|
|
|
- await SaveAll({
|
|
|
- graph: graphInfo,
|
|
|
- elements: mindProjectInfo?.topics
|
|
|
+ graph?.toPNG(async (dataUri) => {
|
|
|
+ const file = base64ToFile(dataUri, mindProjectInfo?.name || '封面图', "image/png");
|
|
|
+
|
|
|
+ const formData = new FormData();
|
|
|
+ formData.append("file", file);
|
|
|
+ const res = await UploadFile(formData);
|
|
|
+
|
|
|
+ const graphInfo = {
|
|
|
+ ...(mindProjectInfo || {}),
|
|
|
+ ...mindProjectInfo?.pageSetting,
|
|
|
+ id: sessionStorage.getItem("projectId"),
|
|
|
+ type: GraphType.mindmap
|
|
|
+ }
|
|
|
+ delete graphInfo.pageSetting;
|
|
|
+ delete graphInfo.topics;
|
|
|
+ await SaveAll({
|
|
|
+ graph: {
|
|
|
+ ...graphInfo,
|
|
|
+ coverImage: res?.result?.[0]?.id
|
|
|
+ },
|
|
|
+ elements: mindProjectInfo?.topics
|
|
|
+ });
|
|
|
+
|
|
|
+ message.success("保存成功");
|
|
|
+ }, {
|
|
|
+ width: 300,
|
|
|
+ height: 150,
|
|
|
+ quality: 0.2
|
|
|
});
|
|
|
-
|
|
|
- message.success("保存成功");
|
|
|
};
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
+ graph?.bindKey("ctrl+s", (e: KeyboardEvent) => {
|
|
|
+ e.preventDefault();
|
|
|
+ handleSave();
|
|
|
+ });
|
|
|
+ }, [graph]);
|
|
|
+
|
|
|
// 克隆 todo
|
|
|
const handleClone = () => {};
|
|
|
|