Bläddra i källkod

feat(map): update

gemercheung 1 år sedan
förälder
incheckning
03b0a60682
4 ändrade filer med 42 tillägg och 14 borttagningar
  1. 4 1
      src/core/Scene.js
  2. 14 2
      src/core/player/Player.js
  3. 10 4
      src/view/case/photos/edit.vue
  4. 14 7
      src/view/case/photos/index.vue

+ 4 - 1
src/core/Scene.js

@@ -106,6 +106,7 @@ export default class Scene extends Mitt {
     for (var i = this.scene.children.length - 1; i >= 0; i--) {
       let obj = this.scene.children[i];
       if (obj.uuid === uuid) {
+        console.log("deleteItemById", obj);
         this.scene.remove(obj);
       }
     }
@@ -128,7 +129,9 @@ export default class Scene extends Mitt {
       this.player.floorplanControls.enablePan = false;
     }
   }
-
+  setMode(mode) {
+    this.player.setMode(mode);
+  }
   onResize = (width, height) => {
     this.width = width !== undefined ? width : this.domElement.clientWidth;
     this.height = height !== undefined ? height : this.domElement.clientHeight;

+ 14 - 2
src/core/player/Player.js

@@ -92,6 +92,7 @@ export default class Player {
       pos.y = 5;
       this.text = new PureTextLabel(this.showText, pos);
       this.text.visible = false;
+      this.showText = "文本";
       this.scene.scene.add(this.text);
       this.drawing = true;
     }
@@ -531,8 +532,14 @@ export default class Player {
       this.scene.scene.remove(this.text);
       this.text = null;
       this.showText = item.text;
-      console.log("this.text", lastPos, newP, item);
-      this.text = new PureTextLabel(item.text, newP, item.fontsize, item.color);
+      // console.log("this.text", lastPos, newP, item);
+      this.text = new PureTextLabel(
+        item.text,
+        newP,
+        item.fontsize,
+        item.color,
+        item.id
+      );
       this.scene.scene.add(this.text);
     }
   }
@@ -625,6 +632,11 @@ export default class Player {
     if (this.activeEdge) {
       this.activeEdge = null;
     }
+    if (this.text) {
+      this.text = null;
+      this.scene.scene.remove(this.text);
+    }
+    this.showText = "文本";
     this.drawing = false;
   }
 

+ 10 - 4
src/view/case/photos/edit.vue

@@ -30,7 +30,7 @@
         />
       </el-form-item>
       <el-form-item label="删除:">
-        <el-button type="primary" @handle="handleClick">删除</el-button>
+        <el-button type="primary" @click="handleClick">删除</el-button>
       </el-form-item>
     </el-form>
   </div>
@@ -69,14 +69,15 @@ watch(
 );
 
 // do not use same name with ref
-const form = reactive({
+const defaultfrom = {
   id: "",
   text: "",
   fontsize: 12,
   type: null,
   pos: null,
   color: "#000000",
-});
+};
+const form = reactive(defaultfrom);
 
 watch(
   form,
@@ -96,13 +97,18 @@ for (let i = fontSizeRange[0]; i <= fontSizeRange[1]; i++) {
 
 const handleClose = () => {
   isShow.value = false;
+  emit("close", form);
+  form = defaultfrom;
 };
 const handleUpdate = () => {
   emit("update", form);
 };
 
 const handleClick = () => {
-  emit("del", form.id, form.type);
+  isShow.value = false;
+  emit("del", form);
+  form = defaultfrom;
+  // console.log("handleClick", form);
 };
 </script>
 

+ 14 - 7
src/view/case/photos/index.vue

@@ -54,6 +54,7 @@
         :data="editing.data"
         @update="handleEditingUpdate"
         @del="handleEditingDel"
+        @close="handleEditingClose"
       />
     </div>
   </div>
@@ -238,23 +239,23 @@ const handleDetele = async (item) => {
 };
 const handleLine = () => {
   if (window.scene) {
-    window.scene.player.setMode(1);
+    window.scene.setMode(1);
   }
 };
 const handleMark = () => {
   if (window.scene) {
-    window.scene.player.setMode(2);
+    window.scene.setMode(2);
   }
 };
 
 const handleSymbol = () => {
   if (window.scene) {
-    window.scene.player.setMode(3);
+    window.scene.setMode(3);
   }
 };
 const handleText = () => {
   if (window.scene) {
-    window.scene.player.setMode(4);
+    window.scene.setMode(4);
   }
 };
 const handleSave = async () => {
@@ -273,7 +274,7 @@ const handleSave = async () => {
 };
 const handleFree = () => {
   if (window.scene) {
-    window.scene.player.setMode(0);
+    window.scene.setMode(0);
   }
 };
 const handleClear = () => {
@@ -288,11 +289,17 @@ const handleEditingUpdate = (data) => {
     window.scene.editing(data);
   }
 };
-const handleEditingDel = (id, type) => {
+const handleEditingDel = (form) => {
   if (window.scene) {
-    window.deleteItemById(id, type);
+    const { id, type } = form;
+    console.log("handleEditingDel", form);
+    window.scene.deleteItemById(id, type);
+    window.scene.setMode(0);
   }
 };
+const handleEditingClose = () => {
+  window.scene.setMode(0);
+};
 
 onMounted(() => {
   renderCanvas();