From ccee429d379e0108b7445f72ade8d97c110a6fb3 Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期二, 09 十一月 2021 18:01:59 +0800
Subject: [PATCH] 问题修复

---
 src/pages/cameraAccess/components/scene/Editor.vue |  253 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 156 insertions(+), 97 deletions(-)

diff --git a/src/pages/cameraAccess/components/scene/Editor.vue b/src/pages/cameraAccess/components/scene/Editor.vue
index 7ddb8a9..ae96008 100644
--- a/src/pages/cameraAccess/components/scene/Editor.vue
+++ b/src/pages/cameraAccess/components/scene/Editor.vue
@@ -23,7 +23,7 @@
               :class="{ init: index == 0 }"
               v-cloak
               v-for="(sdkItem, index) in sdkGroup"
-              :key="sdkItem.id"
+              :key="index"
             >
               <div class="connection" v-if="index !== 0">
                 <el-select
@@ -32,12 +32,19 @@
                   placeholder="閫夊叧绯�"
                   @change="selConnection(sdkItem)"
                 >
-                  <el-option value="&&" title="and/涓�" label="and/涓�"></el-option>
+                  <el-option
+                    :value="item.value"
+                    :title="item.name"
+                    :label="item.name"
+                    v-for="item in sdkConnects"
+                    :key="item.id"
+                  ></el-option>
+                  <!-- <el-option value="&&" title="and/涓�" label="and/涓�"></el-option>
                   <el-option value="||" title="or/鎴�" label="or/鎴�"></el-option>
-                  <el-option value="=>" title="鈥�>/瑙﹀彂" label="鈥�>/瑙﹀彂"></el-option>
+                  <el-option value="=>" title="鈥�>/瑙﹀彂" label="鈥�>/瑙﹀彂"></el-option>-->
                 </el-select>
                 <el-checkbox
-                  v-show="sdkItem.rule_with_pre == '=>'"
+                  v-show="sdkItem.rule_with_pre == '=>' || sdkItem.rule_with_pre == '!=>'"
                   v-model="sdkItem.is_save_anyhow"
                   style="margin-left:30px"
                 >淇濆瓨杩囩▼鏁版嵁</el-checkbox>
@@ -99,7 +106,7 @@
 
               <div class="argums derive-line" v-show="sdkItem.isSpread">
                 <div v-for="(arg, index) in sdkItem.defaultArg" :key="arg.sort">
-                  <div class="argums-item" v-if="arg.config.isShow">
+                  <div class="argums-item" v-show="arg.config.isShow">
                     <div class="arg-name">
                       <!-- <el-input
                         v-model="arg.name"
@@ -148,9 +155,22 @@
                         <span>{{ arg.unit }}</span>
                       </div>
                       <div v-else>
-                        <el-select v-if="arg.type == 'option'" v-model="arg.sdk_arg_value">
-                          <el-option>璇烽�夋嫨</el-option>
+                        <el-select
+                          v-if="arg.type == 'option'"
+                          v-model="arg.sdk_arg_value"
+                          :multiple="arg.config.isMulti"
+                          collapse-tags
+                          size="mini"
+                        >
+                          <el-option
+                            v-for="one in arg.valueOptions"
+                            :key="one.value"
+                            :value="one.value"
+                            :label="one.name"
+                            :title="one.name"
+                          ></el-option>
                         </el-select>
+
                         <el-input
                           v-if="arg.type == 'value'"
                           v-model="arg.sdk_arg_value"
@@ -213,6 +233,7 @@
                     ></el-input>-->
 
                     <el-select
+                      :disabled="optArgItem.operators.length==1"
                       v-model="optArgItem.operator"
                       size="mini"
                       @change="selOperator(optArgItem)"
@@ -338,7 +359,6 @@
   watch: {
     Cameras: {
       handler(n, o) {
-        debugger
         let polygon = []
         let cameras = [...n]
 
@@ -358,7 +378,6 @@
 
           this.allPolygonData = polygon
           //娣诲姞鍦烘櫙鍒濆鍖栧尯鍩熼�夐」涓�'鍏ㄩ儴鍖哄煙'
-          debugger
           // if (polygon.length > 0 && this.ruleList == '') {
           //   this.polygonObj = polygon[0]
           //   this.sdkGroup[0].polygonObj = JSON.parse(
@@ -374,22 +393,14 @@
     sdkGroup: {
       handler(newV, oldV) {
         if (newV) {
-          debugger
+
           newV.forEach(sdk => {
             let rangeOne = sdk.defaultArg.find(
               arg => arg.operators[0].operator == 'range'
             )
             if (rangeOne) {
-              debugger
               if (rangeOne.min.trim() && rangeOne.max.trim()) {
-                // if (Number(rangeOne.min) >= Number(rangeOne.max)) {
-                //   this.$notify({
-                //     type: 'error',
-                //     message: '鍖洪棿宸︿晶涓嶈兘澶т簬鎴栫瓑浜庡尯闂村彸渚х殑鍊�'
-                //   })
-                //   rangeOne.valid = false
-                // }
-                rangeOne.sdk_arg_value = rangeOne.min + ',' + rangeOne.max
+                rangeOne.sdk_arg_value = rangeOne.min + '|' + rangeOne.max
               } else {
                 rangeOne.sdk_arg_value = false;
               }
@@ -414,30 +425,16 @@
       },
       deep: true
     }
-    // ruleList: {
-    //   handler(newVal, oldVal) {
-    //     debugger
-    //     this.editHandle(newVal)
-    //   }
 
-    // }
   },
   mounted() {
     this.TaskMange.findAllSdk({ installed: true })
-    //this.TaskMange.list1 = sdkJson.data;
 
     //this.editHandle(this.ruleList)
   },
   data() {
     return {
-      // rule: {
-      //   sdk_id:'',
-      //   sdkObj: {},
-      //   polygonObj: {},
-      //   argDef: []
-      // },
       hideDel: true,
-      //isAddable: true,
       allPolygonData: [],
       group_id: '',
       baseSdkItem: {
@@ -518,8 +515,17 @@
     }
   },
   methods: {
+    getSdkConnection() {
+      this.sdkConnects = this.VideoManageData.Dictionary['RULECOMPUTEBETWEEN'].map(r => {
+
+        return {
+          name: r.name,
+          value: r.value
+        }
+      });
+    },
     selConnection(sdkItem) {
-      debugger
+
 
     },
     addSdkItem() {
@@ -528,9 +534,9 @@
       itemTemp.polygonObj = JSON.parse(JSON.stringify(this.allPolygonData[0]))
       this.selectPolygonOption(itemTemp)
       this.sdkGroup.push(itemTemp)
+
     },
     delConfigItem(index) {
-      debugger
       // if(index != 0){
       //   this.sdkGroup.splice(index,1);
       // }else{
@@ -560,7 +566,6 @@
       this.sdkGroup[index].isSpread = !this.sdkGroup[index].isSpread
     },
     addOptionalArg(sdkItem) {
-      debugger
       sdkItem.initAddOptional = false
       sdkItem.optArg.forEach(arg => {
         sdkItem.optNames.forEach(name => {
@@ -591,6 +596,10 @@
 
         this.setOptArgValueOptions(copyArgTemp)
       }
+      //榛樿閫変腑绗竴涓猳perator
+      //if (copyArgTemp.operators.length == 1) {
+      this.$set(copyArgTemp, 'operator', copyArgTemp.operators[0].operator)
+      //}
 
       if (copyArgTemp.default_value) {
         this.$set(copyArgTemp, 'sdk_arg_value', copyArgTemp.default_value)
@@ -618,7 +627,7 @@
       }
     },
     selOptionalArg(sdkItem, optArgItem) {
-      debugger
+
       let newSort = 0
       sdkItem.optNames.forEach(name => {
         if (name.name == optArgItem.name) {
@@ -635,7 +644,10 @@
       if (argObj.type == 'option') {
         this.setOptArgValueOptions(argObj);
       }
-      debugger
+      //榛樿閫変腑绗竴涓猳perator
+      //if (argObj.operators.length == 1) {
+      this.$set(argObj, 'operator', argObj.operators[0].operator)
+      //}
       //鏇挎崲鏂扮殑鍙傛暟閰嶇疆瀵硅薄
       sdkItem.optArg.forEach((arg, index) => {
         if (arg.sort == optArgItem.sort) {
@@ -643,11 +655,10 @@
         }
       })
 
-      console.log(argObj.valueOptions)
     },
     setOptArgValueOptions(optArg) {
+
       let alias = optArg.alias;
-      console.log(this.VideoManageData.Dictionary[alias])
       optArg.valueOptions = this.VideoManageData.Dictionary[alias].map(r => {
         return {
           name: r.name,
@@ -656,7 +667,7 @@
       });
     },
     validateArgVal(sdkArgItem, e) {
-      debugger
+
       if (typeof (sdkArgItem.sdk_arg_value) == 'string' && sdkArgItem.sdk_arg_value == '') {
         this.$notify({
           type: 'warning',
@@ -676,7 +687,7 @@
         let res = sdkArgItem.range.match(reg)
         let min = Number(res[1]),
           max = Number(res[2])
-        debugger
+
 
         //鍒ゆ柇闈炲尯闂寸被
         if (sdkArgItem.sdk_arg_value && sdkArgItem.operator != 'range') {
@@ -810,7 +821,7 @@
       this.valideArgValue(rule)
     },
     selectPolygonOption(rule) {
-      debugger
+
       rule.polygon_id = rule.polygonObj.polygonId
         ? rule.polygonObj.polygonId
         : rule.polygon_id
@@ -821,11 +832,10 @@
     },
     //閫夋嫨绠楁硶 resetArgs涓簍rue鏄坊鍔犱负false鏄垵濮嬪寲缂栬緫
     selectSDKOption(sdkItem, resetArgs) {
-      debugger
+
       //sdkItem.sdk_id = sdkItem.sdkObj.id;
       if (resetArgs) {
         sdkItem.argDef = JSON.parse(sdkItem.sdkObj.argDef)
-        console.log(sdkItem.argDef)
         //鍙栧嚭榛樿鍙傛暟
         sdkItem.defaultArg = sdkItem.argDef.filter(
           arg => !arg.config.isOptional
@@ -837,12 +847,15 @@
 
             if (arg.operators[0].operator == 'range') {
               //鍖洪棿鍊肩殑澶勭悊
-              debugger
+
               //this.$set(arg, 'sdk_arg_value', arg.min+','+arg.max)
               //this.$set(arg, 'sdk_arg_value', arg.range.substring(1,arg.range.length-1));
             }
           }
 
+          if (arg.type == 'option') {
+            this.setOptArgValueOptions(arg)
+          }
           if (arg.default_value) {
             //arg.sdk_arg_value = arg.default_value
             this.$set(arg, 'sdk_arg_value', arg.default_value)
@@ -858,14 +871,14 @@
           sort: arg.sort,
           isSelected: false
         }))
-        debugger
+
         sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false
         sdkItem.optArg = []
       }
 
       //娣诲姞鍦烘櫙鏃�,濡傛灉鍦烘櫙鍚嶇О涓虹┖,灏卞皢閫夋嫨鐨勭涓�涓畻娉曞悕鍚屾鍒板満鏅悕绉�
       if (this.sdkGroup[0] && resetArgs) {
-        debugger
+
         this.$emit('sdkNameChange', this.sdkGroup[0].sdkObj.sdk_name)
       }
 
@@ -897,7 +910,7 @@
     },
     //閫夋嫨绠楁硶閰嶇疆
     selOperator(rule) {
-      debugger
+
     },
     selectArgsOption(rule, resetArgValue) {
       // rule.operator_type = "";
@@ -1087,14 +1100,12 @@
       this.groupRules.splice(index + 1, 0, newRule)
     },
     editHandle(ruleTxt) {
-      debugger
+      this.getSdkConnection();
       // if (ruleTxt.length < 1) {
       //   return
       // }
       let ruleInfo = JSON.parse(ruleTxt);
-      debugger;
 
-      //let ruleInfo = JSON.parse(ruleTxt)
       this.editRule(ruleInfo)
       // 濡傛灉鏄仈鍔ㄤ换鍔�, 鏌ヨ鑱斿姩鎽勫儚鏈哄垪琛�, 灏嗘爲閫変腑鐨勫垪琛ㄦ洿鏀逛负璇ユ潯瑙勫垯鎵�闇�瑕佺殑鎽勫儚鏈�, 骞跺浠藉綋鍓嶇殑閫変腑鐘舵��, 瑙勫垯淇濆瓨鍚庢仮澶�
       // if (this.isLinkRule) {
@@ -1114,27 +1125,12 @@
       // }
     },
     editRule(ruleGroup) {
-      debugger
+
       this.sdkGroup = []
       this.group_id = ''
 
-      // this.sdkGroup = ruleGroup;
-      //  sdkGroup: [
-      //   {
-      //     sdkObj: {},
-      //     polygonObj: {},
-      //     is_save_anyhow: true,
-      //     isSpread: true,
-      //     argDef: [],
-      //     initAddOptional: false,
-      //     defaultArg: [],
-      //     optionalArg: [],
-      //     optArg: [],
-      //     optNames: []
-      //   }
-      // ],
       ruleGroup.forEach(rule => {
-        debugger
+
         let tempObj = {}
 
         if (rule.group_id && rule.group_id != '') {
@@ -1172,6 +1168,7 @@
         sdkObj = this.TaskMange.list1.find(sdk => sdk.id == rule.sdk_id)
 
         argDef = JSON.parse(sdkObj.argDef)
+
         defaultArg = argDef.filter(arg => !arg.config.isOptional)
         optionalArg = argDef.filter(arg => arg.config.isOptional)
 
@@ -1182,10 +1179,10 @@
             }
           })
           if (optItem) {
-            if (optItem.operators.length > 1) {
-              optItem.operator = arg.operator
-              //this.selOperator(optItem)
-            }
+            //if (optItem.operators.length > 1) {
+            optItem.operator = arg.operator
+            //this.selOperator(optItem)
+            //}
 
             //璧嬪��
             optItem.sdk_arg_value = arg.sdk_arg_value
@@ -1199,15 +1196,28 @@
             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) {
+
+                if (arg.sdk_arg_value.indexOf('|') > 0) {
                   //鍖洪棿鍊�
-                  d.min = arg.sdk_arg_value.split(',')[0];
-                  d.max = arg.sdk_arg_value.split(',')[1];
+                  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
                 }
@@ -1243,7 +1253,6 @@
           tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0
             ? true
             : false;
-        debugger
         //鍥炴樉鏄惁鏄剧ず鍙�夊弬鏁版坊鍔犳寜閽�
         if (tempObj.optArg.length < tempObj.optionalArg.length) {
           tempObj.isAddable = true;
@@ -1251,7 +1260,7 @@
           tempObj.isAddable = false;
         }
         //this.selectSDKOption(tempObj, false)
-        debugger
+
         this.sdkGroup.push(tempObj)
         //璁剧疆绠楁硶
       })
@@ -1282,7 +1291,7 @@
         .catch(() => { })
     },
     submitRule() {
-      debugger
+
       let groupRule = { rules: [] }
 
       let group_text = ''
@@ -1303,17 +1312,38 @@
       } else {
         //鏍¢獙蹇呭~椤�
         let undefinished = this.sdkGroup.some((sdk, index) => {
-          debugger
+
           //娌℃湁閰嶇疆绠楁硶
           if (Object.keys(sdk.sdkObj).length == 0) {
             return sdk
           }
+          //澶嶅埗绠楁硶鏃舵娴嬪尯鍩熶笉鑳戒负绌�
+          if (!sdk.polygon_id) {
+            return sdk
+          }
+
           //澶氫簬涓ら」绠楁硶鏃�,绠楁硶鍏崇郴涓嶈兘涓虹┖
           if (sdk.rule_with_pre === '' && index != 0) {
             return sdk
           }
+
+          //澶勭悊鏈睍绀虹殑鍙傛暟鐨勫��
+          sdk.defaultArg.forEach(arg => {
+            if (!arg.config.isShow) {
+              arg.sdk_arg_value = arg.default_value
+            }
+          })
           //琛ㄥ崟鎻愪氦鍓嶆牎楠�:鎵�鏈夌畻娉曠殑鍙傛暟鍊间笉鑳戒负绌�,(鏈塺ange鐨�,瑕佸湪range鑼冨洿鍐�)澶辩劍鏃舵牎楠�
-          let defaultArgFlag = sdk.defaultArg.find(arg => !arg.sdk_arg_value)
+          let defaultArgFlag = sdk.defaultArg.find(arg => {
+
+            if (arg.sdk_arg_value instanceof Array) {
+              if (arg.sdk_arg_value.length == 0) {
+                return arg
+              }
+            } else if (!arg.sdk_arg_value) {
+              return arg
+            }
+          });
           if (defaultArgFlag) {
             return sdk
           }
@@ -1326,7 +1356,7 @@
             } else {
               //鍖洪棿绫诲弬鏁板�兼渶灏�,鏈�澶у�兼槸鍚﹂兘璁剧疆
               if (arg.operator == 'range') {
-                debugger
+
                 if (!arg.min.trim() && arg.max.trim()) {
                   return arg
                 }
@@ -1367,9 +1397,9 @@
         }
         //鏍¢獙鑻ョ畻娉曞叧绯讳负瑙﹀彂,鍒欑畻娉曞悕涓嶈兘閲�
         let sameSdk = this.sdkGroup.some((sdk, index) => {
-          debugger
-          if (sdk.index != 0 && sdk.rule_with_pre == '=>') {
-            debugger
+
+          if (sdk.index != 0 && (sdk.rule_with_pre == '=>' || sdk.rule_with_pre == '!=>')) {
+
             if (sdk.sdkObj.id == this.sdkGroup[index - 1].sdkObj.id) {
               return sdk
             }
@@ -1409,20 +1439,44 @@
 
           let defaultArgDesc = '( '
           sdk.defaultArg.forEach(arg => {
+            //涓嶆樉绀洪殣钘忕殑鍙傛暟閰嶇疆
+            if (!arg.config.isShow) {
+              return
+            }
+            let val = '';
+            //澶勭悊涓嬫媺閫夊�肩被鍨�
+            if (arg.type == 'option') {
+              if (arg.sdk_arg_value instanceof Array) {
+                //澶氶�夊��
+                let multiNames = '';
+                arg.sdk_arg_value.forEach(val => {
+                  let opV = arg.valueOptions.find(opt => opt.value == val);
+                  multiNames += opV.name + ' ';
+                })
+                val = multiNames;
+              } else {
+                let res = arg.valueOptions.find(
+                  opt => opt.value == arg.sdk_arg_value
+                );
+                val = res.name;
+              }
+
+            }
             if (arg.operator == 'range') {
               let valRange = '';
-              debugger
+
               valRange = arg.sdk_arg_value.replace(',', '-');
               defaultArgDesc += `${arg.name}${arg.operators[0].name}${valRange}${arg.unit || ''}, `
             } else {
               defaultArgDesc += `${arg.name}${arg.operators[0].name}${
-                arg.sdk_arg_value
+                arg.type == 'option' ? val : arg.sdk_arg_value
                 }${arg.unit || ''}, `
             }
 
           });
-          debugger;
-          defaultArgDesc = defaultArgDesc.substring(0, defaultArgDesc.length - 2)
+          ;
+          defaultArgDesc = defaultArgDesc.substring(0, defaultArgDesc.length - 2);
+
           //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-3)+defaultArgDesc.substring(defaultArgDesc.length-1,defaultArgDesc.length);
           //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-1);
 
@@ -1446,7 +1500,6 @@
             let val = '';
             let valRange = '';
 
-
             //澶勭悊涓嬫媺閫夊�肩被鍨�
             if (arg.type == 'option') {
               if (arg.sdk_arg_value instanceof Array) {
@@ -1465,16 +1518,20 @@
 
                 val = res.name;
               }
-              //optArgDesc += `,${arg.name}${arg.operators[0].operator}${val}${arg.unit || ''}, `
-            } else {
-              //optArgDesc += `,${arg.name}${arg.operators[0].operator}${ arg.sdk_arg_value }${arg.unit || ''}, `
+
             }
 
             let operatorSelected = arg.operators.find(opr => opr.operator == arg.operator)
             optArgDesc += `,${arg.name}${operatorSelected.name}${
               arg.type == 'option' ? val : arg.sdk_arg_value
               }${arg.unit || ''}, `
-          })
+          });
+          //灏嗗閫夐」鐨勫�兼嫾鎴愬瓧绗︿覆
+          defaultArgs.forEach(one => {
+            if (one.sdk_arg_value instanceof Array) {
+              one.sdk_arg_value = one.sdk_arg_value.join();
+            }
+          });
           optArgDesc = optArgDesc.substring(0, optArgDesc.length - 2) + optArgDesc.substring(optArgDesc.length - 1, optArgDesc.length);
           optArgDesc += ')'
           tempObj.sdk_set = defaultArgs.concat(optArgs)
@@ -1493,11 +1550,14 @@
               case '=>':
                 rule_with_pre = ' -> '
                 break
+              case '!=>':
+                rule_with_pre = ' !-> '
+                break
               default:
                 rule_with_pre = ''
             }
           }
-          debugger;
+          ;
           group_text += `${rule_with_pre ? "<br/>" + rule_with_pre + "<br/>" : ""} <span style="background-color:RGB(183,183,183);">${
             sdk.sdkObj.sdk_name
             }</span>  ${
@@ -1513,9 +1573,8 @@
               group_text.substring(0, group_text.length - 3) +
               group_text.substring(group_text.length - 2, group_text.length)
           }
-          debugger
+
         })
-        console.log(group_text)
       }
 
       groupRule.text = group_text

--
Gitblit v1.8.0