From f20a554bdb24e9dfde9dc6a69d78595944f61d15 Mon Sep 17 00:00:00 2001
From: mark <mark18340872469@163.com>
Date: 星期二, 25 十月 2022 14:53:57 +0800
Subject: [PATCH] 设备管理 样式调整

---
 src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue |  261 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 226 insertions(+), 35 deletions(-)

diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
index a5ec2ac..e984e29 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,36 @@
       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;
+      }
+      if (typeof sdkItem.argDef === "string") {
+        sdkItem.argDef = JSON.parse(sdkItem.argDef);
+      }
       //鍙栧嚭榛樿鍙傛暟
       sdkItem.defaultArg = sdkItem.argDef.filter(
         (arg) => !arg.config.isOptional
@@ -304,29 +336,170 @@
       this.sdkItem = sdkItem;
     },
     initPolygon() {
-      let polygon = [];
-      let 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,
-
-            cameraId: cameras[i].cameraId,
-          };
+      let cameras = [];
+      if (this.linkEditCamera) {
+        this.allPolygonData = [];
+        cameras = this.linkEditCamera;
+        this.linkEditCamera.forEach((camera) => {
+          camera.polygon.forEach((polygon) => {
+            this.allPolygonData.push({
+              defence_state: polygon.defenceState,
+              polygonId: polygon.id,
+              name: camera.camera_name + ":" + polygon.name,
+              cameraId: camera.camera_id,
+            });
+          });
         });
-        polygon = polygon.concat(polyOpt);
+      } 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 || this.linkEditCamera
+                  ? cameras[i].cameraName + ":" + p.name
+                  : p.name,
 
-        this.allPolygonData = polygon;
+              cameraId: cameras[i].cameraId,
+            };
+          });
+          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) {
-      console.log(sdkArgItem);
       if (
         typeof sdkArgItem.sdk_arg_value == "string" &&
         sdkArgItem.sdk_arg_value == ""
@@ -560,6 +733,8 @@
 
     setOptArgValueOptions(optArg) {
       let alias = optArg.alias;
+      console.log(121212);
+      console.log(alias);
       optArg.valueOptions = this.VideoManageData.Dictionary[alias].map((r) => {
         return {
           name: r.name,
@@ -645,9 +820,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,
@@ -720,6 +894,11 @@
         }
       });
       let optArgDesc = " ";
+
+      //鏂板
+
+      //鏂板
+
       this.sdkItem.optArg.forEach((arg) => {
         let val = "";
         let valRange = "";
@@ -761,9 +940,21 @@
         optArgDesc.substring(optArgDesc.length - 1, optArgDesc.length);
       optArgDesc += ")";
       tempObj.sdk_set = defaultArgs.concat(optArgs);
-      tempObj.icon_blob = this.$store.state.newSdk.iconBlob;
+      tempObj.ruleDes = defaultArgDesc + optArgDesc;
+      console.log(tempObj.ruleDes);
 
-      this.$emit("getNewSdk", tempObj);
+      if (this.editSdk) {
+        tempObj.icon_blob = this.editSdk.icon_blob;
+        tempObj.group_id = this.editSdk.group_id;
+        tempObj.sort = this.editSdk.sort;
+        tempObj.id = this.editSdk.id;
+        tempObj.icon_blob = this.editSdk.icon_blob;
+        tempObj.icon_blob2 = this.editSdk.icon_blob2;
+        this.$emit("getEditSdk", tempObj);
+      } else {
+        tempObj.icon_blob = this.$store.state.newSdk.iconBlob;
+        this.$emit("getNewSdk", tempObj);
+      }
     },
   },
   watch: {
@@ -902,17 +1093,17 @@
       }
 
       .el-input ::v-deep {
-        width: 50px;
+        width: 100px;
         height: 32px;
 
         input {
-          width: 50px;
+          width: 100px;
           height: 32px;
         }
       }
 
       .el-select {
-        width: 68px;
+        width: 100px;
       }
 
       .font {
@@ -939,7 +1130,7 @@
   .btns {
     position: absolute;
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     align-items: center;
     left: 0;
     right: 0;

--
Gitblit v1.8.0