From d4cd7df0bd1484c31e37bcb0642e89ecdcf7ab29 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 17 九月 2020 10:55:22 +0800
Subject: [PATCH] 处理外网端口映射无法跳转的问题

---
 src/pages/cameraAccess/components/scene/Editor.vue |  157 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 123 insertions(+), 34 deletions(-)

diff --git a/src/pages/cameraAccess/components/scene/Editor.vue b/src/pages/cameraAccess/components/scene/Editor.vue
index 7ddb8a9..189afe5 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
@@ -99,7 +99,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 +148,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 +226,7 @@
                     ></el-input>-->
 
                     <el-select
+                      :disabled="optArgItem.operators.length==1"
                       v-model="optArgItem.operator"
                       size="mini"
                       @change="selOperator(optArgItem)"
@@ -338,7 +352,6 @@
   watch: {
     Cameras: {
       handler(n, o) {
-        debugger
         let polygon = []
         let cameras = [...n]
 
@@ -358,7 +371,6 @@
 
           this.allPolygonData = polygon
           //娣诲姞鍦烘櫙鍒濆鍖栧尯鍩熼�夐」涓�'鍏ㄩ儴鍖哄煙'
-          debugger
           // if (polygon.length > 0 && this.ruleList == '') {
           //   this.polygonObj = polygon[0]
           //   this.sdkGroup[0].polygonObj = JSON.parse(
@@ -382,14 +394,7 @@
             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;
               }
@@ -560,7 +565,6 @@
       this.sdkGroup[index].isSpread = !this.sdkGroup[index].isSpread
     },
     addOptionalArg(sdkItem) {
-      debugger
       sdkItem.initAddOptional = false
       sdkItem.optArg.forEach(arg => {
         sdkItem.optNames.forEach(name => {
@@ -591,7 +595,11 @@
 
         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)
       }
@@ -635,7 +643,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) {
@@ -646,6 +657,7 @@
       console.log(argObj.valueOptions)
     },
     setOptArgValueOptions(optArg) {
+      debugger
       let alias = optArg.alias;
       console.log(this.VideoManageData.Dictionary[alias])
       optArg.valueOptions = this.VideoManageData.Dictionary[alias].map(r => {
@@ -842,7 +854,10 @@
               //this.$set(arg, 'sdk_arg_value', arg.range.substring(1,arg.range.length-1));
             }
           }
-
+          debugger
+          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)
@@ -1092,9 +1107,7 @@
       //   return
       // }
       let ruleInfo = JSON.parse(ruleTxt);
-      debugger;
 
-      //let ruleInfo = JSON.parse(ruleTxt)
       this.editRule(ruleInfo)
       // 濡傛灉鏄仈鍔ㄤ换鍔�, 鏌ヨ鑱斿姩鎽勫儚鏈哄垪琛�, 灏嗘爲閫変腑鐨勫垪琛ㄦ洿鏀逛负璇ユ潯瑙勫垯鎵�闇�瑕佺殑鎽勫儚鏈�, 骞跺浠藉綋鍓嶇殑閫変腑鐘舵��, 瑙勫垯淇濆瓨鍚庢仮澶�
       // if (this.isLinkRule) {
@@ -1172,9 +1185,29 @@
         sdkObj = this.TaskMange.list1.find(sdk => sdk.id == rule.sdk_id)
 
         argDef = JSON.parse(sdkObj.argDef)
+        debugger
         defaultArg = argDef.filter(arg => !arg.config.isOptional)
         optionalArg = argDef.filter(arg => arg.config.isOptional)
-
+        //杩囨护鎺塺ule.sdk_set閲屾病鏈夊嚭鐜扮殑鍙�夐厤缃」
+        let isConfiged = false;
+        let configedAlias = [];
+        optionalArg.forEach(optArg=>{
+          rule.sdk_set.forEach(sdkSet => {
+            if(sdkSet.sdk_arg_alias == optArg.alias){
+              isConfiged = true;
+              configedAlias.push(optArg)
+            }
+          })
+        });
+        if(!isConfiged){
+          optionalArg = [];
+        }
+        if(isConfiged){
+          optionalArg = configedAlias
+        }
+        rule.sdk_set.forEach(sdkSet => {
+          rule.sdk_set
+        })
         rule.sdk_set.forEach(arg => {
           let optItem = optionalArg.find(oarg => {
             if (oarg.sort == arg.sort) {
@@ -1182,10 +1215,10 @@
             }
           })
           if (optItem) {
-            if (optItem.operators.length > 1) {
+            //if (optItem.operators.length > 1) {
               optItem.operator = arg.operator
               //this.selOperator(optItem)
-            }
+            //}
 
             //璧嬪��
             optItem.sdk_arg_value = arg.sdk_arg_value
@@ -1199,16 +1232,30 @@
             if (optItem.type == 'option') {
               this.setOptArgValueOptions(optItem)
             }
+            if(optItem.alias=="bForceSend"){
+
+            }
+            //鍦╬ush涔嬪墠,闇�瑕佸垽鏂槸鍚﹂厤缃簡杩欎釜鍙�夐」  鍦╯dk_set閰嶇疆鏁扮粍閲�,
+            debugger
             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) {
+                  debugger
                   //鍖洪棿鍊�
                   d.min = arg.sdk_arg_value.split(',')[0];
                   d.max = arg.sdk_arg_value.split(',')[1];
                   d.operator = 'range'
-                } else {
+                //} else if(arg.sdk_arg_value.indexOf(',') > 0){
+                } else if(arg.operator_type == 'option'){
+                  debugger
+                  //澶氶�夌被鍨嬬殑鍊�
+                  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;
@@ -1243,7 +1290,6 @@
           tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0
             ? true
             : false;
-        debugger
         //鍥炴樉鏄惁鏄剧ず鍙�夊弬鏁版坊鍔犳寜閽�
         if (tempObj.optArg.length < tempObj.optionalArg.length) {
           tempObj.isAddable = true;
@@ -1312,8 +1358,24 @@
           if (sdk.rule_with_pre === '' && index != 0) {
             return sdk
           }
+          debugger
+          //澶勭悊鏈睍绀虹殑鍙傛暟鐨勫��
+          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
           }
@@ -1409,6 +1471,29 @@
 
           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
@@ -1416,13 +1501,14 @@
               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 +1532,6 @@
             let val = '';
             let valRange = '';
 
-
             //澶勭悊涓嬫媺閫夊�肩被鍨�
             if (arg.type == 'option') {
               if (arg.sdk_arg_value instanceof Array) {
@@ -1465,16 +1550,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)

--
Gitblit v1.8.0