From 658915facb9ec5a5ad83abceb4d64dccac15e631 Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期二, 29 三月 2022 14:52:46 +0800
Subject: [PATCH] 摄像机管理

---
 src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue |  210 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 189 insertions(+), 21 deletions(-)

diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
index a5ec2ac..c1e1726 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
@@ -61,14 +61,14 @@
               <el-input
                 class="range-min"
                 v-model="arg.min"
-                @input="forceUpdate"
+                @input="rangeInput(arg)"
                 @blur="validateArgVal(arg, $event)"
               ></el-input>
               <span class="devide"></span>
               <el-input
                 class="range-max"
                 v-model="arg.max"
-                @input="forceUpdate"
+                @input="rangeInput(arg)"
                 @blur="validateArgVal(arg, $event)"
               ></el-input>
               <span class="font">{{ arg.unit }}</span>
@@ -206,7 +206,9 @@
 
     <div class="btns">
       <div class="cancelBtn button" @click="close">鍙栨秷</div>
-      <div class="confirmBtn button" @click="save">娣诲姞</div>
+      <div class="confirmBtn button" @click="save">
+        {{ editSdk ? "淇濆瓨" : "娣诲姞" }}
+      </div>
     </div>
   </div>
 </template>
@@ -224,14 +226,18 @@
       type: Boolean,
       default: false,
     },
-    isLinkRule: {
-      type: Boolean,
-      default: false,
+
+    editSdk: {},
+
+    linkEditCamera: {},
+  },
+  computed: {
+    isLinkRule() {
+      return this.Cameras.length > 1;
     },
   },
   created() {
     this.initOption();
-    this.initPolygon();
   },
   data() {
     return {
@@ -251,6 +257,10 @@
     };
   },
   methods: {
+    rangeInput(arg) {
+      arg.sdk_arg_value = arg.min + "|" + arg.max;
+      this.$forceUpdate();
+    },
     selectPolygonOption(rule) {
       rule.polygon_id = rule.polygonObj.polygonId
         ? rule.polygonObj.polygonId
@@ -258,14 +268,37 @@
       rule.camera_id = rule.polygonObj.cameraId
         ? rule.polygonObj.cameraId
         : rule.camera_id;
-      rule.group_id = this.group_id;
     },
     close() {
       this.$emit("close");
     },
     initOption() {
-      let sdkItem = this.$store.state.newSdk;
-      sdkItem.argDef = JSON.parse(sdkItem.argDef);
+      this.initPolygon();
+      let sdkItem = null;
+      if (this.editSdk) {
+        this.TaskMange.list1.forEach((item) => {
+          if (item.id === this.editSdk.sdk_id) {
+            sdkItem = item;
+          }
+        });
+
+        if (typeof sdkItem.argDef === "string") {
+          sdkItem.argDef = JSON.parse(sdkItem.argDef);
+        }
+
+        this.sdkItem = sdkItem;
+        this.sdkItem.sdk_set = JSON.parse(JSON.stringify(this.editSdk.sdk_set));
+        this.sdkItem.polygon_id = this.editSdk.polygon_id;
+
+        this.editRule();
+        return;
+      } else {
+        sdkItem = this.$store.state.newSdk;
+      }
+      console.log(typeof sdkItem.argDef);
+      if (typeof sdkItem.argDef === "string") {
+        sdkItem.argDef = JSON.parse(sdkItem.argDef);
+      }
       //鍙栧嚭榛樿鍙傛暟
       sdkItem.defaultArg = sdkItem.argDef.filter(
         (arg) => !arg.config.isOptional
@@ -304,25 +337,157 @@
       this.sdkItem = sdkItem;
     },
     initPolygon() {
-      let polygon = [];
-      let cameras = [...this.Cameras];
+      let cameras = [];
+      if (this.linkEditCamera) {
+        cameras = this.linkEditCamera;
+      } else {
+        cameras = [...this.Cameras];
+      }
 
       for (let i = 0; i < cameras.length; i++) {
         let polyOpt = cameras[i].polygonData.map((p) => {
           return {
             defence_state: p.defence_state,
             polygonId: p.id,
-            name: this.isLinkRule
-              ? cameras[i].cameraName + ":" + p.name
-              : p.name,
+            name:
+              this.isLinkRule || this.linkEditCamera
+                ? cameras[i].cameraName + ":" + p.name
+                : p.name,
 
             cameraId: cameras[i].cameraId,
           };
         });
-        polygon = polygon.concat(polyOpt);
-
-        this.allPolygonData = polygon;
+        this.allPolygonData = this.allPolygonData.concat(polyOpt);
       }
+
+      this.$forceUpdate();
+    },
+
+    editRule() {
+      let tempObj = {};
+
+      // 濉厖鍖哄煙閫夐」鍒楄〃
+      this.allPolygonData.forEach((p) => {
+        if (p.polygonId === this.sdkItem.polygon_id) {
+          this.sdkItem.polygonObj = p;
+        }
+      });
+
+      if (!this.sdkItem.polygonObj) {
+        this.sdkItem.polygonObj = {
+          cameraId: this.sdkItem.camera_id,
+          defence_state: 1,
+          name: "鏈煡鍖哄煙",
+          polygonId: this.sdkItem.polygon_id,
+        };
+      }
+
+      // 璁剧疆鍖哄煙
+      this.selectPolygonOption(this.sdkItem);
+
+      //绠楁硶瀵硅薄,绠楁硶鍙傛暟閰嶇疆鏁扮粍,(鐢ㄤ簬鏁版嵁澶勭悊鐨�)榛樿鍙傛暟鏁扮粍, 鍙�夊弬鏁版暟缁�, 宸查厤缃殑鍙�夊弬鏁版暟缁�, (鐢ㄤ簬鍘婚噸鍒ゆ柇)瀛樻斁鍙�夊弬鏁板悕鐨勬暟缁�
+      let argDef = [],
+        defaultArg = [],
+        optionalArg = [],
+        optArg = [],
+        optNames = [];
+
+      argDef = this.sdkItem.argDef;
+
+      defaultArg = argDef.filter((arg) => !arg.config.isOptional);
+      optionalArg = argDef.filter((arg) => arg.config.isOptional);
+
+      this.sdkItem.sdk_set.forEach((arg) => {
+        let optItem = optionalArg.find((oarg) => {
+          if (oarg.sort == arg.sort) {
+            return oarg;
+          }
+        });
+        if (optItem) {
+          //if (optItem.operators.length > 1) {
+          optItem.operator = arg.operator;
+          //this.selOperator(optItem)
+          //}
+
+          //璧嬪��
+          optItem.sdk_arg_value = arg.sdk_arg_value;
+          //if(arg.sdk_arg_value.indexOf(',')>0){
+          //鍒ゆ柇鏄惁鏄閫夊�肩被鍨嬬殑鍙傛暟
+          let isMultiOne = optionalArg.find(
+            (oarg) => oarg.sort == optItem.sort && optItem.config.isMulti
+          );
+          if (isMultiOne) {
+            optItem.sdk_arg_value = arg.sdk_arg_value.split(",");
+          }
+
+          if (optItem.type == "option") {
+            this.setOptArgValueOptions(optItem);
+          }
+          if (optItem.alias == "bForceSend") {
+          }
+          //鍦╬ush涔嬪墠,闇�瑕佸垽鏂槸鍚﹂厤缃簡杩欎釜鍙�夐」  鍦╯dk_set閰嶇疆鏁扮粍閲�,
+
+          optArg.push(optItem);
+        } else {
+          defaultArg.forEach((d) => {
+            if (d.sort == arg.sort) {
+              if (arg.sdk_arg_value.indexOf("|") > 0) {
+                //鍖洪棿鍊�
+                d.min = arg.sdk_arg_value.split("|")[0];
+                d.max = arg.sdk_arg_value.split("|")[1];
+                d.operator = "range";
+                //} else if(arg.sdk_arg_value.indexOf(',') > 0){
+              } else if (arg.operator_type == "option") {
+                //澶氶�夌被鍨嬬殑鍊�
+                d.sdk_arg_value = arg.sdk_arg_value.split(",");
+                this.setOptArgValueOptions(d);
+              } else {
+                d.sdk_arg_value = arg.sdk_arg_value;
+              }
+              d.operator = arg.operator;
+            }
+          });
+        }
+      });
+      optNames = optionalArg.map((arg) => ({
+        name: arg.name,
+        sort: arg.sort,
+        isSelected: false,
+      }));
+
+      tempObj = {
+        polygonObj: this.sdkItem.polygonObj,
+        rule_with_pre: this.sdkItem.rule_with_pre,
+        is_save_anyhow: this.sdkItem.is_save_anyhow,
+        isSpread: true,
+        argDef,
+        initAddOptional: false,
+        optionalArg,
+        optArg,
+        defaultArg,
+        optNames,
+        isAddable: true,
+        camera_id: this.sdkItem.camera_id,
+        polygon_id: this.sdkItem.polygon_id,
+        sdk_id: this.editSdk.sdk_id,
+        rule_with_pre: this.editSdk.rule_with_pre,
+        is_save_anyhow: this.editSdk.is_save_anyhow,
+        icon_blob: this.editSdk.icon_blob,
+      };
+      //鍥炴樉鏄惁鏄剧ず娣诲姞鍙�夊弬鏁�
+      tempObj.initAddOptional =
+        tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0
+          ? true
+          : false;
+      //鍥炴樉鏄惁鏄剧ず鍙�夊弬鏁版坊鍔犳寜閽�
+      if (tempObj.optArg.length < tempObj.optionalArg.length) {
+        tempObj.isAddable = true;
+      } else {
+        tempObj.isAddable = false;
+      }
+
+      this.sdkItem = tempObj;
+      this.$forceUpdate();
     },
 
     validateArgVal(sdkArgItem, e) {
@@ -645,9 +810,8 @@
       console.log(this.sdkItem);
 
       let tempObj = {
-        sdk_id: this.sdkItem.id,
+        sdk_id: this.editSdk ? this.sdkItem.sdk_id : this.sdkItem.id,
         camera_id: this.sdkItem.camera_id,
-        group_id: "",
         is_save_anyhow: this.sdkItem.is_save_anyhow,
         polygon_id: this.sdkItem.polygon_id,
         rule_with_pre: this.sdkItem.rule_with_pre,
@@ -763,7 +927,11 @@
       tempObj.sdk_set = defaultArgs.concat(optArgs);
       tempObj.icon_blob = this.$store.state.newSdk.iconBlob;
 
-      this.$emit("getNewSdk", tempObj);
+      if (this.editSdk) {
+        this.$emit("getEditSdk", tempObj);
+      } else {
+        this.$emit("getNewSdk", tempObj);
+      }
     },
   },
   watch: {

--
Gitblit v1.8.0