hanbaoshan
2020-08-21 56d3f8396ce1fa3ea9cf439fddd6528a91e5de7f
场景配置默认参数相关逻辑调整
1个文件已修改
134 ■■■■ 已修改文件
src/pages/cameraAccess/components/scene/Editor.vue 134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/components/scene/Editor.vue
@@ -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"
@@ -383,14 +396,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;
              }
@@ -653,6 +659,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 => {
@@ -849,7 +856,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)
@@ -1177,9 +1187,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)
        //过滤掉rule.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) {
@@ -1204,18 +1234,30 @@
            if (optItem.type == 'option') {
              this.setOptArgValueOptions(optItem)
            }
            if(optItem.alias=="bForceSend"){
            }
            //在push之前,需要判断是否配置了这个可选项  在sdk_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;
@@ -1250,7 +1292,6 @@
          tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0
            ? true
            : false;
        debugger
        //回显是否显示可选参数添加按钮
        if (tempObj.optArg.length < tempObj.optionalArg.length) {
          tempObj.isAddable = true;
@@ -1319,8 +1360,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
            }
          })
          //表单提交前校验:所有算法的参数值不能为空,(有range的,要在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
          }
@@ -1416,6 +1473,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
@@ -1423,13 +1503,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);
@@ -1453,7 +1534,6 @@
            let val = '';
            let valRange = '';
            //处理下拉选值类型
            if (arg.type == 'option') {
              if (arg.sdk_arg_value instanceof Array) {
@@ -1472,16 +1552,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)