From a689af1348938afd3b4506aad9b6d5057193e25d Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期五, 27 五月 2022 09:59:00 +0800
Subject: [PATCH] bug修复

---
 src/views/hashrate/CameraManage/CameraRules/index.vue |  101 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 78 insertions(+), 23 deletions(-)

diff --git a/src/views/hashrate/CameraManage/CameraRules/index.vue b/src/views/hashrate/CameraManage/CameraRules/index.vue
index 595de68..6c3c454 100644
--- a/src/views/hashrate/CameraManage/CameraRules/index.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/index.vue
@@ -56,7 +56,7 @@
             :disabled="false"
             :snapshot_url="Camera.baseImg"
             :canvasDataShow="Camera.canvasData"
-            :currentCameraId="Camera.cameraId"
+            :currentCamera="Camera"
             :loading="Camera.loading"
             :canvasWidth="canvasWidth"
             :canvasHeight="canvasHeight"
@@ -92,14 +92,14 @@
                   v-loading="loading"
                   element-loading-text="鍒锋柊涓紝璇风◢绛�..."
                   element-loading-background="rgba(0, 0, 0, 0.8)"
-                  :divId="data.cameraId"
+                  :divId="data.camera.cameraId"
                   :isShowDrawArrow="true"
                   :isLink="true"
                   :disabled="false"
                   :loading="data.loading"
                   :snapshot_url="data.baseImg"
                   :canvasDataShow="data.canvasData"
-                  :currentCameraId="data.cameraId"
+                  :currentCamera="data.camera"
                   @changeLoading="changeLoading"
                   @refresh="refresh2"
                 ></polygon-canvas>
@@ -178,7 +178,7 @@
           <!-- 鎽勫儚鏈� -->
           <LinkageCameraBox
             :cameras="item.cameraIds"
-            @addLinkageRule="addLinkageRule"
+            @addLinkageRule="addLinkageRule(item.cameraIds)"
           ></LinkageCameraBox>
           <div class="Anchor" :id="'linkage_camera' + index"></div>
 
@@ -189,7 +189,7 @@
               :rule="item"
               @edit="editRules(item, index, 'linkage')"
               @addSdk="addSdk('linkage', index)"
-              @backToOrigin="backToOrigin('linkage', index)"
+              @backToOrigin="backToOrigin('linkage', index, item.cameraIds)"
               @editSdk="editSdk($event, 'linkage', index)"
               @deletRule="deletRule('linkage', index)"
               :id="'linkage_' + index"
@@ -198,9 +198,27 @@
         </div>
       </template>
 
-      <div class="empty" @click="addLinkageRule" v-else>
+      <div
+        class="empty"
+        v-if="linkageRule.length <= 0 && !TreeDataPool.multiple"
+      >
         <img src="/images/hashrate/鑱斿姩鍦烘櫙绌洪〉闈�.png" alt="" />
         <div class="des">鏆傛棤鑱斿姩鍦烘櫙</div>
+      </div>
+
+      <div
+        class="newCameraArea"
+        v-if="linkageRule.length <= 0 && TreeDataPool.multiple"
+      >
+        <LinkageCameraBox
+          :cameras="CarmerasId"
+          @addLinkageRule="addLinkageRule(CarmerasId)"
+        ></LinkageCameraBox>
+
+        <div class="empty">
+          <img src="/images/hashrate/鑱斿姩鍦烘櫙绌洪〉闈�.png" alt="" />
+          <div class="des">鏆傛棤鑱斿姩鍦烘櫙</div>
+        </div>
       </div>
     </div>
 
@@ -286,6 +304,13 @@
     selectedCameraIds() {
       return this.TreeDataPool.selectedNodes;
     },
+    CarmerasId() {
+      let arr = [];
+      this.Carmeras.forEach((item) => {
+        arr.push(item.cameraId);
+      });
+      return arr;
+    },
   },
   data() {
     return {
@@ -328,6 +353,8 @@
           prevEl: ".swiper-next-border",
         },
       },
+      showNewLinkage: false,
+      newLinkageIds: [],
 
       // swiperOption: {
       //   slidesPerView: 5,
@@ -471,6 +498,7 @@
         this.$refs.canvas.showModal();
       }
     },
+
     getCanvasData(data) {
       let polyon = { ...data };
       polyon.camera_id = this.Camera.cameraId;
@@ -484,8 +512,12 @@
       let carmeras = this.Carmeras;
       for (let i = 0; i < carmeras.length; i++) {
         swipers = swipers.concat({
-          cameraId: carmeras[i].cameraId,
-          name: carmeras[i].camearInfo.name,
+          camera: {
+            cameraId: carmeras[i].cameraId,
+            cameraName: carmeras[i].cameraName,
+            type: carmeras[i].type,
+            rtsp: carmeras[i].rtsp,
+          },
           baseImg: carmeras[i].baseImg ? carmeras[i].baseImg : undefined,
           canvasData: carmeras[i].canvasData,
           loading: carmeras[i].loading,
@@ -494,6 +526,7 @@
       this.swipercanvasData = swipers;
     },
     refresh(url) {
+      console.log(url);
       this.Camera.baseImg = url;
     },
     refresh2(url, id) {
@@ -538,16 +571,19 @@
           this.runType = element.run_type;
         }
       });
-
-      // 鑾峰彇娣峰悎鍦烘櫙
-      this.showRules(id);
     },
 
     // 鑾峰彇娣峰悎鍦烘櫙
     showRules(id) {
+      if (!id) {
+        return;
+      }
+      if (typeof id === "string") {
+        id = [id];
+      }
       let rules = [];
 
-      getLinkSceneRule({ cameraIds: [id] })
+      getLinkSceneRule({ cameraIds: id })
         .then((rsp) => {
           if (rsp && rsp.success) {
             rules = rsp.data.rules;
@@ -781,14 +817,15 @@
       this.showAddBox = true;
     },
 
-    addLinkageRule() {
-      if (this.Carmeras.length < 2) {
+    addLinkageRule(ids) {
+      if (ids.length < 2) {
         this.$message({
           message: "璇疯嚦灏戦�夋嫨涓ゅ彴鎽勫儚鏈�",
           type: "warning",
         });
         return;
       }
+      this.newLinkageIds = ids;
       this.ruleType = "linkage";
       this.showAddBox = true;
     },
@@ -808,13 +845,7 @@
           });
         } else {
           //鑱斿姩鍦烘櫙
-          let arr = [this.Camera.cameraId];
-          this.Carmeras.forEach((item) => {
-            if (item.cameraId != this.Camera.cameraId) {
-              arr.push(item.cameraId);
-            }
-          });
-          newRule.data.cameraIds = arr;
+          newRule.data.cameraIds = this.newLinkageIds;
           this.linkageRule.push(newRule.data);
           this.$nextTick(() => {
             this.connectLine2();
@@ -854,6 +885,7 @@
         }
 
         this.showAddBox = false;
+        this.$forceUpdate();
       }
       this.editData = {};
     },
@@ -912,7 +944,7 @@
     },
 
     //鍙栨秷淇敼
-    async backToOrigin(type, index) {
+    async backToOrigin(type, index, ids) {
       if (type === "separate") {
         const rsp = await getCameraSceneRule({
           cameraId: this.Camera.cameraId,
@@ -931,7 +963,7 @@
         this.$forceUpdate();
         this.connectLine();
       } else {
-        getLinkSceneRule({ cameraIds: [this.Camera.cameraId] }).then((rsp) => {
+        getLinkSceneRule({ cameraIds: ids }).then((rsp) => {
           if (rsp && rsp.success) {
             let rules = rsp.data.rules ? rsp.data.rules : [];
             if (rules[index]) {
@@ -1226,6 +1258,29 @@
       }
     }
 
+    .newCameraArea {
+      display: flex;
+      .empty {
+        margin-left: 60px;
+        width: 1220px;
+        height: 198px;
+        border: 1px solid #c0c5cc;
+        border-radius: 5px;
+        text-align: center;
+        background: #f0f5fa;
+        img {
+          margin-top: 14px;
+          width: 250px;
+          height: 150px;
+        }
+
+        .des {
+          margin-top: 2px;
+          color: #666;
+        }
+      }
+    }
+
     ::v-deep .sourcePoint {
       margin-top: -4px;
       margin-left: -6px;

--
Gitblit v1.8.0