tangning 12 horas atrás
pai
commit
b638edad18

+ 23 - 16
src/view/case/photos/canvas-photo-editor.js

@@ -524,7 +524,7 @@ export class CanvasPhotoEditor {
       let newX = addPage * (this.pageWidth + this.pageMargin)
       points.splice(1, 0, { x: newX, y: this.indexingStartY }, { x: newX, y: endIindexing1.y })
     }
-    if (startInfo.count == PhotoIndex.count && startInfo.itemIndex == PhotoIndex.itemIndex && (mouseX - coordinate.x) > ceY) {//同数量 同item
+    if (startInfo.count == 2 && startInfo.count == PhotoIndex.count && startInfo.itemIndex == PhotoIndex.itemIndex && (mouseX - coordinate.x) > ceY) {//同数量 同item
       console.log(startInfo, endIindexing1, coordinate, '坐标', mouseX, mouseY)
       let newY = PhotoIndex.itemIndex == 0 ? (coordinate.y - 30) : (coordinate.y + coordinate.height + 80)
       points.splice(1, 0, { x: this.indexingStartX, y: newY }, { x: mouseX, y: newY })
@@ -1206,6 +1206,14 @@ export class CanvasPhotoEditor {
       newPages.splice(PageIndex + 1, 0, newPageItem)
     }
     if (direction == 'double' && list.length != 2) {
+      newPages = this.autoFill(newPages, PageIndex)
+    }
+    if (!direction) this.selectedPageIndex++
+    this.pages = newPages
+    this.saveHistory()
+    return this.pages
+  }
+  autoFill(newPages, PageIndex){
       let newPageList = {
         list: [],
         item: []
@@ -1246,26 +1254,25 @@ export class CanvasPhotoEditor {
       if (newPageList.list.length == 1 && direction == 'double') {
         newPages.pop();
       }
-    }
-    if (!direction) this.selectedPageIndex++
-    this.pages = newPages
-    this.saveHistory()
-    return this.pages
+      return newPages
   }
-  deleteSelectedPage(backFun) {
-    console.log(this.selectedPageItem, 'selectedPageItem', this.pages)
+  async deleteSelectedPage(backFun) {
+    console.log(this.selectedPageItem, this.selectedPageIndex, 'selectedPageItem', this.pages)
+    if(this.selectedPageItem.pageIndex === -1){//未选中页面直接返回
+      return
+    }
     if (this.selectedPageItem.index == -1 && (this.selectedPageIndex === -1 || this.pages.length <= 1)) return backFun()
-    const newPages = [...this.pages]
+    let newPages = [...this.pages]
     if (this.selectedPageItem.index == -1) {//删除整页
+      const check = await this.checkIndexing();
       newPages.splice(this.selectedPageIndex, 1)
+      this.selectedPageItem.pageIndex = -1
+      this.selectedPageIndex = -1
     } else {//删除单个图片
-      newPages.forEach((ele, index) => {
-        if (index == this.selectedPageIndex) {
-          ele.list[this.selectedPageItem.index] = null
-          ele.item[this.selectedPageItem.index] = null
-          // ele.list.splice(this.selectedPageItem.index, 1)
-        }
-      })
+      newPages[this.selectedPageIndex].list[this.selectedPageItem.index] = null
+      newPages[this.selectedPageIndex].item[this.selectedPageItem.index] = null
+      newPages = this.autoFill(newPages, this.selectedPageIndex)
+      this.selectedPageItem.pageIndex = -1
     }
     // this.saveHistory()
     this.pages = newPages

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

@@ -154,7 +154,7 @@
             >
               <img
                 :src="
-                  photo.url + '?x-oss-process=image/resize,w_300/quality,q_80'
+                  photo.ognFilesUrl||photo.url 
                 "
                 alt="现场照片"
               />
@@ -467,9 +467,12 @@ watch(
     scale.value = newScale;
   }
 );
-const backPageHandler = () => {
+const backPageHandler = async () => {
   let history = editor.value?.history;
-  if(history.length > 1) {
+  if (indexing.value) {
+   await changeIndexing();
+  }
+  if(indexing.value || history.length > 1) {
     ElMessageBox.confirm("编辑内容尚未保存,确定要离开吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
@@ -611,8 +614,7 @@ const changeIndexing = async () => {
 // 删除选中页
 const deleteSelectedPage = async () => {
   if (editor.value) {
-    const check = await editor.value.checkIndexing();
-    pages.value = editor.value.deleteSelectedPage(del2);
+    pages.value = await editor.value.deleteSelectedPage(del2);
     // selectedPageIndex.value = editor.value.selectedPageIndex;
   }
 };