Browse Source

解决操作多屏中的一个bug,并不是新添加的信号源就排在最后

liuwei 4 years ago
parent
commit
df274b7708
1 changed files with 20 additions and 17 deletions
  1. 20 17
      src/renderer/components/BigShow.vue

+ 20 - 17
src/renderer/components/BigShow.vue

@@ -150,20 +150,20 @@
 
             // 拖动结束
             dragStop(positon,item,obj,Id) {
-                item.left = positon.left
+                /*item.left = positon.left
                 item.top = positon.top
                 const arr = obj[Id].signalArr.filter(s => s.Id !== item.Id)
                 obj[Id].signalArr = [...arr,item]
-                this.refreshBigScreen(obj,Id)
+                this.refreshBigScreen(obj,Id)*/
             },
 
             // 缩放结束
             resizeSignal(size,item,obj,Id) {
-                item.width = size.width
+                /*item.width = size.width
                 item.height = size.height
                 const arr = obj[Id].signalArr.filter(s => s.Id !== item.Id)
                 obj[Id].signalArr = [...arr,item]
-                this.refreshBigScreen(obj,Id)
+                this.refreshBigScreen(obj,Id)*/
             },
 
             // 关闭信号源
@@ -193,23 +193,26 @@
                     const bigScale = this.$store.state.bigScale
                     const positionNum = this.$store.state.positionNum
 
+                    // debugger
+
                     const arr2 = []
                     arr.forEach(item => {
                         arr2.push(JSON.parse(JSON.stringify(item)))
                     })
-
-                    let lastObj = arr2[arr.length-1]
-                    lastObj.Id = guId()
-                    lastObj.bigscreenId = bigscreenId
-                    lastObj.splitScreenStatus = bigScreenObj[bigscreenId].splitStatus + 1
-                    lastObj.width = bigScreenObj[bigscreenId].width * bigScale / lastObj.splitScreenStatus
-                    lastObj.height = bigScreenObj[bigscreenId].height * bigScale / lastObj.splitScreenStatus
-                    lastObj.widthScale = lastObj.width / (bigScreenObj[bigscreenId].width * bigScale)
-                    lastObj.heightScale = lastObj.height / (bigScreenObj[bigscreenId].height * bigScale)
-                    const positionInfo = elePosition(lastObj.width,lastObj.height,positionNum,this.screenPosition[bigscreenId].top,this.screenPosition[bigscreenId].left,bigScreenObj[bigscreenId].splitStatus+1)
-                    lastObj.top = positionInfo.top - this.screenPosition[bigscreenId].top
-                    lastObj.left = positionInfo.left - this.screenPosition[bigscreenId].left
-                    bigScreenObj[bigscreenId].signalArr = arr2
+                    
+                    const newObj = arr2.filter(item => !item.Id)
+                    const otherSignals = arr2.filter(item => item.Id)
+                    newObj[0].Id = guId()
+                    newObj[0].bigscreenId = bigscreenId
+                    newObj[0].splitScreenStatus = bigScreenObj[bigscreenId].splitStatus + 1
+                    newObj[0].width = bigScreenObj[bigscreenId].width * bigScale / newObj[0].splitScreenStatus
+                    newObj[0].height = bigScreenObj[bigscreenId].height * bigScale / newObj[0].splitScreenStatus
+                    newObj[0].widthScale = newObj[0].width / (bigScreenObj[bigscreenId].width * bigScale)
+                    newObj[0].heightScale = newObj[0].height / (bigScreenObj[bigscreenId].height * bigScale)
+                    const positionInfo = elePosition(newObj[0].width,newObj[0].height,positionNum,this.screenPosition[bigscreenId].top,this.screenPosition[bigscreenId].left,bigScreenObj[bigscreenId].splitStatus+1)
+                    newObj[0].top = positionInfo.top - this.screenPosition[bigscreenId].top
+                    newObj[0].left = positionInfo.left - this.screenPosition[bigscreenId].left
+                    bigScreenObj[bigscreenId].signalArr = [...newObj,...otherSignals]
                     this.refreshBigScreen(bigScreenObj,bigscreenId)
                 }
             },