hanbaoshan
2020-10-13 1fbade862552c9387809f7e50dd75d6b019086f1
src/pages/cameraAccess/components/scene/Editor.vue
@@ -32,12 +32,13 @@
                  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>
@@ -386,13 +387,13 @@
    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()) {
                rangeOne.sdk_arg_value = rangeOne.min + '|' + rangeOne.max
              } else {
@@ -421,13 +422,14 @@
    }
    // ruleList: {
    //   handler(newVal, oldVal) {
    //     debugger
    //
    //     this.editHandle(newVal)
    //   }
    // }
  },
  mounted() {
    this.TaskMange.findAllSdk({ installed: true })
    //this.TaskMange.list1 = sdkJson.data;
@@ -523,8 +525,18 @@
    }
  },
  methods: {
    getSdkConnection(){
      console.log(this.VideoManageData.Dictionary)
      this.sdkConnects = this.VideoManageData.Dictionary['RULECOMPUTEBETWEEN'].map(r => {
        return {
          name: r.name,
          value: r.value
        }
      });
    },
    selConnection(sdkItem) {
      debugger
    },
    addSdkItem() {
@@ -533,9 +545,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{
@@ -626,7 +638,7 @@
      }
    },
    selOptionalArg(sdkItem, optArgItem) {
      debugger
      let newSort = 0
      sdkItem.optNames.forEach(name => {
        if (name.name == optArgItem.name) {
@@ -657,7 +669,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 => {
@@ -668,7 +680,7 @@
      });
    },
    validateArgVal(sdkArgItem, e) {
      debugger
      if (typeof (sdkArgItem.sdk_arg_value) == 'string' && sdkArgItem.sdk_arg_value == '') {
        this.$notify({
          type: 'warning',
@@ -688,7 +700,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') {
@@ -822,7 +834,7 @@
      this.valideArgValue(rule)
    },
    selectPolygonOption(rule) {
      debugger
      rule.polygon_id = rule.polygonObj.polygonId
        ? rule.polygonObj.polygonId
        : rule.polygon_id
@@ -833,7 +845,7 @@
    },
    //选择算法 resetArgs为true是添加为false是初始化编辑
    selectSDKOption(sdkItem, resetArgs) {
      debugger
      //sdkItem.sdk_id = sdkItem.sdkObj.id;
      if (resetArgs) {
        sdkItem.argDef = JSON.parse(sdkItem.sdkObj.argDef)
@@ -849,12 +861,12 @@
            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));
            }
          }
          debugger
          if(arg.type == 'option'){
            this.setOptArgValueOptions(arg)
          }
@@ -873,14 +885,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)
      }
@@ -912,7 +924,7 @@
    },
    //选择算法配置
    selOperator(rule) {
      debugger
    },
    selectArgsOption(rule, resetArgValue) {
      // rule.operator_type = "";
@@ -1102,7 +1114,7 @@
      this.groupRules.splice(index + 1, 0, newRule)
    },
    editHandle(ruleTxt) {
      debugger
      // if (ruleTxt.length < 1) {
      //   return
      // }
@@ -1127,12 +1139,12 @@
      // }
    },
    editRule(ruleGroup) {
      debugger
      this.sdkGroup = []
      this.group_id = ''
      ruleGroup.forEach(rule => {
        debugger
        let tempObj = {}
        if (rule.group_id && rule.group_id != '') {
@@ -1170,7 +1182,7 @@
        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)
@@ -1202,7 +1214,7 @@
            }
            //在push之前,需要判断是否配置了这个可选项  在sdk_set配置数组里,
            debugger
            optArg.push(optItem)
          
          } else {
@@ -1210,14 +1222,14 @@
              if (d.sort == arg.sort) {
              
                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 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)
@@ -1263,7 +1275,7 @@
          tempObj.isAddable = false;
        }
        //this.selectSDKOption(tempObj, false)
        debugger
        this.sdkGroup.push(tempObj)
        //设置算法
      })
@@ -1294,7 +1306,7 @@
        .catch(() => { })
    },
    submitRule() {
      debugger
      let groupRule = { rules: [] }
      let group_text = ''
@@ -1315,7 +1327,7 @@
      } else {
        //校验必填项
        let undefinished = this.sdkGroup.some((sdk, index) => {
          debugger
          //没有配置算法
          if (Object.keys(sdk.sdkObj).length == 0) {
            return sdk
@@ -1324,7 +1336,7 @@
          if (sdk.rule_with_pre === '' && index != 0) {
            return sdk
          }
          debugger
          //处理未展示的参数的值
          sdk.defaultArg.forEach(arg => {
            if(!arg.config.isShow){
@@ -1354,7 +1366,7 @@
            } else {
              //区间类参数值最小,最大值是否都设置
              if (arg.operator == 'range') {
                debugger
                if (!arg.min.trim() && arg.max.trim()) {
                  return arg
                }
@@ -1395,9 +1407,9 @@
        }
        //校验若算法关系为触发,则算法名不能重
        let sameSdk = this.sdkGroup.some((sdk, index) => {
          debugger
          if (sdk.index != 0 && sdk.rule_with_pre == '=>') {
            debugger
            if (sdk.sdkObj.id == this.sdkGroup[index - 1].sdkObj.id) {
              return sdk
            }
@@ -1462,7 +1474,7 @@
            }
            if (arg.operator == 'range') {
              let valRange = '';
              debugger
              valRange = arg.sdk_arg_value.replace(',', '-');
              defaultArgDesc += `${arg.name}${arg.operators[0].name}${valRange}${arg.unit || ''}, `
            } else {
@@ -1472,7 +1484,7 @@
            }
          });
          debugger;
          ;
          defaultArgDesc = defaultArgDesc.substring(0, defaultArgDesc.length - 2);
          
          //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-3)+defaultArgDesc.substring(defaultArgDesc.length-1,defaultArgDesc.length);
@@ -1548,11 +1560,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>  ${
@@ -1568,7 +1583,7 @@
              group_text.substring(0, group_text.length - 3) +
              group_text.substring(group_text.length - 2, group_text.length)
          }
          debugger
        })
        console.log(group_text)
      }