Przeglądaj źródła

feat(draw): update

gemercheung 1 rok temu
rodzic
commit
4c20bdccae
3 zmienionych plików z 15 dodań i 7 usunięć
  1. 1 0
      src/core/Scene.js
  2. 3 1
      src/core/player/Player.js
  3. 11 6
      src/view/case/photos/index.vue

+ 1 - 0
src/core/Scene.js

@@ -92,6 +92,7 @@ export default class Scene extends Mitt {
       let obj = this.scene.children[i];
       if (
         String(obj.name).includes("marker_") ||
+        String(obj.name).includes("line_") ||
         String(obj.name).includes("line_point_")
       ) {
         this.scene.remove(obj);

+ 3 - 1
src/core/player/Player.js

@@ -466,6 +466,7 @@ export default class Player {
         });
       }
     }
+    this.syncDrawData();
   }
   reset() {
     if (this.marker) {
@@ -489,8 +490,9 @@ export default class Player {
     this.activeEdges = [];
     this.renderLines = [];
     this.renderMarkers = [];
-    this.scene.clearDrawScene();
     this.reset();
+    this.scene.clearDrawScene();
+    this.syncDrawData();
   }
 
   update = () => {

+ 11 - 6
src/view/case/photos/index.vue

@@ -26,9 +26,9 @@
         <el-button @click="handleLine">标注连线</el-button>
         <el-button @click="handleSave" type="success">保存</el-button>
 
-        <!-- <el-button @click="handleClear" v-if="hasDrawData" type="warning"
+        <el-button @click="handleClear" v-if="hasDrawData" type="warning"
           >清空</el-button
-        > -->
+        >
 
         <el-button @click="handleFree" v-if="isShowExitEdit" type="warning"
           >退出编辑</el-button
@@ -131,7 +131,7 @@ const changeList = async (list) => {
 
   if (scene) {
     scene.load(arr, type, loadedDrawData.value || []);
-    console.log("changeList", arr, type, data);
+    console.log("changeList", arr, type, loadedDrawData.value);
   }
 };
 const renderCanvas = () => {
@@ -148,12 +148,16 @@ const renderCanvas = () => {
     ElMessage.error("该案件已有方向标注!");
   });
   scene.on("data", (data) => {
-    console.log("sync", data);
+    let hasData = false;
     Object.keys(data).forEach((key) => {
-      if (Array.isArray(data[key]) && data[key].length > 0) {
-        hasDrawData.value = true;
+      if (Array.isArray(data[key])) {
+        if (data[key].length > 0) {
+          hasData = true;
+        }
       }
     });
+    hasDrawData.value = hasData;
+    console.log("sync", data, hasData);
   });
 };
 const onSwiper = (swiper) => {
@@ -190,6 +194,7 @@ const handleLine = () => {
 const handleSave = async () => {
   if (window.scene) {
     const data = scene.player.getDrawData();
+    scene.player.syncDrawData();
     console.log("data", data);
     const res = await saveCaseImgTagData({
       caseId: caseId.value,