Browse Source

perfect_save

ananzhusen 2 years ago
parent
commit
00bd10a9de
2 changed files with 17 additions and 13 deletions
  1. 5 0
      src/services/api.ts
  2. 12 13
      src/views/components/View.vue

+ 5 - 0
src/services/api.ts

@@ -42,3 +42,8 @@ export async function updateCollection(collection: string, data: any) {
 // export async function addCollection(collection: string, data: any) {
 //   return await axios.post(`/data/${collection}/add`, data); // 新增
 // }
+export async function getLe5le2d(id: string) {
+  return await axios.post("/data/le5le2d/get", {
+    id,
+  });
+}

+ 12 - 13
src/views/components/View.vue

@@ -117,6 +117,7 @@ import {
   updateFolders,
 } from "@/services/api";
 import { baseVer } from "@/services/upgrade";
+import { getLe5le2d } from "@/services/api";
 
 const router = useRouter();
 const route = useRoute();
@@ -146,9 +147,7 @@ const watcher = watch(
 
 const open = async () => {
   if (route.query.id) {
-    const ret: any = await axios.post('/data/le5le2d/get', {
-      id: route.query.id,
-    });
+    const ret: any = getLe5le2d(route.query.id+'');
     ret && meta2d.open(ret);
   } else {
     meta2d.open();
@@ -171,8 +170,8 @@ enum SaveType {
 const localMeta2dDataName = "meta2dData";
 
 const save = async (type: SaveType = SaveType.Save) => {
-  (<any>globalThis).meta2d.stopAnimate();
-  const data: Meta2dBackData = (<any>globalThis).meta2d.data();
+  meta2d.stopAnimate();
+  const data: Meta2dBackData = meta2d.data();
   if (!(user && user.username)) {
     MessagePlugin.warning("请先登录,否则无法保存!");
     localforage.setItem(localMeta2dDataName, JSON.stringify(data));
@@ -197,7 +196,7 @@ const save = async (type: SaveType = SaveType.Save) => {
   if (!((data as any).teams && data.owner?.id !== user.id)) {
     let blob: Blob;
     try {
-      blob = dataURLtoBlob((<any>globalThis).meta2d.toPng(10));
+      blob = dataURLtoBlob(meta2d.toPng(10)+'');
     } catch (e) {
       MessagePlugin.error(
         "无法下载,宽度不合法,画布可能没有画笔/画布大小超出浏览器最大限制"
@@ -217,14 +216,14 @@ const save = async (type: SaveType = SaveType.Save) => {
 
     // 缩略图
     data.image = file.url;
-    (<any>globalThis).meta2d.store.data.image = data.image;
+    (meta2d.store.data as Meta2dBackData).image = data.image;
   }
 
   if (data.component) {
     // pens 存储原数据用于二次编辑 ; componentDatas 组合后的数据,用于复用
-    data.componentDatas = (<any>globalThis).meta2d.toComponent(
+    data.componentDatas = meta2d.toComponent(
       undefined,
-      (<any>globalThis).meta2d.store.data.showChild,
+      (meta2d.store.data as Meta2dBackData).showChild,
       false //自定义组合节点生成默认锚点
     );
   } else {
@@ -235,7 +234,7 @@ const save = async (type: SaveType = SaveType.Save) => {
   if (!data.name) {
     // 文件名称
     data.name = `meta2d.${new Date().toLocaleString()}`;
-    (<any>globalThis).meta2d.store.data.name = data.name;
+    (meta2d.store.data as Meta2dBackData).name = data.name;
   }
   !data.version && (data.version = baseVer);
 
@@ -349,7 +348,7 @@ const save = async (type: SaveType = SaveType.Save) => {
     type === SaveType.SaveAs // 另存为肯定走新增,也会产生新的 id
   ) {
     data._id = ret._id;
-    (<any>globalThis).meta2d.store.data._id = data._id;
+    (meta2d.store.data as Meta2dBackData)._id = data._id;
     router.replace({
       path: "/",
       query: {
@@ -362,14 +361,14 @@ const save = async (type: SaveType = SaveType.Save) => {
 
   MessagePlugin.success("保存成功!");
   // 保存成功,重新请求文件夹
-  (<any>globalThis).meta2d.emit("t-save-success", true);
+  meta2d.emit("t-save-success", true);
   // 已保存,不再是新的,无需提示保存
   // isNew.value = false;
   localforage.removeItem(localMeta2dDataName);
 };
 
 const saveAsComponents = () => {
-  // (<any>globalThis).meta2d.store.data.component = true;
+  // meta2d.store.data.component = true;
   save();
 }
 </script>