From 0b737708e696c45720499759b5c31aced87fdbb6 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期三, 07 七月 2021 14:10:03 +0800
Subject: [PATCH] merge master

---
 src/pages/cameraAccess/components/LinkageRule.vue |   69 +++++++++++++++++++---------------
 1 files changed, 39 insertions(+), 30 deletions(-)

diff --git a/src/pages/cameraAccess/components/LinkageRule.vue b/src/pages/cameraAccess/components/LinkageRule.vue
index accc45d..490536a 100644
--- a/src/pages/cameraAccess/components/LinkageRule.vue
+++ b/src/pages/cameraAccess/components/LinkageRule.vue
@@ -109,6 +109,7 @@
           :tableRuleList="tableRuleList"
           :onSaveScene="saveSceneRule"
           @delete-rule="showRules"
+          v-loading="loadingRuleList"
         ></scene-rule>
       </div>
     </div>
@@ -139,26 +140,13 @@
   },
   computed: {
     selectedCameraIds() {
-      let ids = [];
-      if (this.TreeDataPool.treeActiveName == 'dataStack') {
-        if (this.TreeDataPool.checkedLocalVedio.length > 0) {
-          ids = this.TreeDataPool.checkedLocalVedio.map(i => {
-            return i.id;
-          })
-
-        }
-      } else {
-        if (this.TreeDataPool.selectedNodes.length > 0) {
-          ids = this.TreeDataPool.selectedNodes;
-        }
-      }
-
-      return ids;
+      return this.TreeDataPool.selectedNodes;
     }
   },
   data() {
     return {
       loading: false,
+      loadingRuleList: false,
       Carmeras: [],
       Camera: new VideoRuleData(),
       tasksTable: {},
@@ -189,7 +177,8 @@
           prevEl: ".pre-border"
         }
       },
-      showSysInfo: false
+      showSysInfo: false,
+      requestSeq: ""
     };
   },
   watch: {
@@ -208,17 +197,12 @@
     initCameraData() {
       this.$nextTick(() => {
         this.Carmeras = [];
-        this.loading = false;
         this.showSysInfo = true;
-        if (this.TreeDataPool.treeActiveName == 'dataStack') {
-          this.TreeDataPool.checkedLocalVedio.forEach(camera => {
-            this.Carmeras.push(new VideoRuleData(camera.id));
-          });
-        } else {
-          this.TreeDataPool.selectedNodes.forEach(camera => {
-            this.Carmeras.push(new VideoRuleData(camera));
-          });
-        }
+
+        this.selectedCameraIds.forEach(cid => {
+          this.Carmeras.push(new VideoRuleData(cid));
+        });
+
         this.$refs.timeSlider.activeTab = this.VideoManageData.TimeRules[0].id;
         this.showRules();
       })
@@ -246,13 +230,27 @@
       //this.Camera.baseImg = url
     },
     getCanvasData() { },
+    newUid() {
+
+      let originStr = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
+      let originChar = "0123456789abcdef";
+      let len = originChar.length;
+      return originStr.replace(/x/g, function (match) {
+        return originChar.charAt(Math.floor(Math.random() * len));
+      });
+    },
     showRules() {
       this.tableRuleList = [];
 
       if (this.selectedCameraIds.length > 0) {
+        this.loadingRuleList = true;
+        let seq = this.newUid();
+        this.requestSeq = seq;
+
         getLinkSceneRule({ cameraIds: this.selectedCameraIds }).then(
           rsp => {
-            if (rsp && rsp.success) {
+            this.loadingRuleList = false;
+            if (rsp && rsp.success && seq === this.requestSeq) {
 
               this.tableRuleList = rsp.data;
 
@@ -263,19 +261,30 @@
             }
             // this.TreeDataPool.fetchTreeData();
           }
-        );
+        ).catch(() => {
+          this.loadingRuleList = false;
+        });
       }
-
     },
 
     saveSceneRule(groupRule) {
       const payload = { ...groupRule }
+      if (!payload.rules) {
+        this.$message({
+          type: "warning",
+          message: "瑙勫垯鍙傛暟鏈夎"
+        });
+
+        return
+      }
+
       payload.cameraIds = this.selectedCameraIds;
 
       saveLinkScene(payload).then(rsp => {
         if (rsp && rsp.success) {
           //this.Camera.update();
           this.initCameraData();
+          // this.showRules();
           this.$notify({
             type: "success",
             message: "浠诲姟淇濆瓨鎴愬姛锛�"
@@ -289,7 +298,7 @@
       }).catch(err => {
         this.$message({
           type: "error",
-          message: "淇濆瓨澶辫触锛�" + err.data
+          message: "淇濆瓨澶辫触锛�"
         });
       });
     },

--
Gitblit v1.8.0