| | |
| | | placeholder="选关系"
|
| | | @change="selConnection(sdkItem)"
|
| | | >
|
| | | <el-option :value="item.value" :title="item.name" :label="item.name" v-for="item in sdkConnects" :key="item.id"></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 == '=>' || sdkItem.rule_with_pre == '!=>'"
|
| | |
| | | </div>
|
| | | <div v-else>
|
| | | <el-select
|
| | | v-if="arg.type == 'option'" |
| | | v-if="arg.type == 'option'"
|
| | | v-model="arg.sdk_arg_value"
|
| | | :multiple="arg.config.isMulti"
|
| | | collapse-tags
|
| | |
| | | :title="one.name"
|
| | | ></el-option>
|
| | | </el-select>
|
| | | |
| | |
|
| | | <el-input
|
| | | v-if="arg.type == 'value'"
|
| | | v-model="arg.sdk_arg_value"
|
| | |
| | | sdkGroup: {
|
| | | handler(newV, oldV) {
|
| | | if (newV) {
|
| | | |
| | |
|
| | | 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 {
|
| | |
| | | }
|
| | | },
|
| | | methods: {
|
| | | getSdkConnection(){
|
| | | console.log(this.VideoManageData.Dictionary)
|
| | | getSdkConnection() {
|
| | | this.sdkConnects = this.VideoManageData.Dictionary['RULECOMPUTEBETWEEN'].map(r => {
|
| | | |
| | |
|
| | | return {
|
| | | name: r.name,
|
| | | value: r.value
|
| | |
| | | });
|
| | | },
|
| | | selConnection(sdkItem) {
|
| | | |
| | |
|
| | |
|
| | | },
|
| | | addSdkItem() {
|
| | |
| | | itemTemp.polygonObj = JSON.parse(JSON.stringify(this.allPolygonData[0]))
|
| | | this.selectPolygonOption(itemTemp)
|
| | | this.sdkGroup.push(itemTemp)
|
| | | |
| | |
|
| | | },
|
| | | delConfigItem(index) {
|
| | | // if(index != 0){
|
| | |
| | | }
|
| | | //默认选中第一个operator
|
| | | //if (copyArgTemp.operators.length == 1) {
|
| | | this.$set(copyArgTemp, 'operator', copyArgTemp.operators[0].operator)
|
| | | this.$set(copyArgTemp, 'operator', copyArgTemp.operators[0].operator)
|
| | | //}
|
| | | |
| | |
|
| | | if (copyArgTemp.default_value) {
|
| | | this.$set(copyArgTemp, 'sdk_arg_value', copyArgTemp.default_value)
|
| | | }
|
| | |
| | | }
|
| | | },
|
| | | selOptionalArg(sdkItem, optArgItem) {
|
| | | |
| | |
|
| | | let newSort = 0
|
| | | sdkItem.optNames.forEach(name => {
|
| | | if (name.name == optArgItem.name) {
|
| | |
| | | }
|
| | | //默认选中第一个operator
|
| | | //if (argObj.operators.length == 1) {
|
| | | this.$set(argObj, 'operator', argObj.operators[0].operator)
|
| | | this.$set(argObj, 'operator', argObj.operators[0].operator)
|
| | | //}
|
| | | //替换新的参数配置对象
|
| | | sdkItem.optArg.forEach((arg, index) => {
|
| | |
| | | }
|
| | | })
|
| | |
|
| | | 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,
|
| | |
| | | });
|
| | | },
|
| | | validateArgVal(sdkArgItem, e) {
|
| | | |
| | |
|
| | | if (typeof (sdkArgItem.sdk_arg_value) == 'string' && sdkArgItem.sdk_arg_value == '') {
|
| | | this.$notify({
|
| | | type: 'warning',
|
| | |
| | | let res = sdkArgItem.range.match(reg)
|
| | | let min = Number(res[1]),
|
| | | max = Number(res[2])
|
| | | |
| | |
|
| | |
|
| | | //判断非区间类
|
| | | if (sdkArgItem.sdk_arg_value && sdkArgItem.operator != 'range') {
|
| | |
| | | this.valideArgValue(rule)
|
| | | },
|
| | | selectPolygonOption(rule) {
|
| | | |
| | |
|
| | | rule.polygon_id = rule.polygonObj.polygonId
|
| | | ? rule.polygonObj.polygonId
|
| | | : rule.polygon_id
|
| | |
| | | },
|
| | | //选择算法 resetArgs为true是添加为false是初始化编辑
|
| | | selectSDKOption(sdkItem, resetArgs) {
|
| | | |
| | |
|
| | | //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
|
| | |
| | |
|
| | | if (arg.operators[0].operator == 'range') {
|
| | | //区间值的处理
|
| | | |
| | |
|
| | | //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'){
|
| | |
|
| | | if (arg.type == 'option') {
|
| | | this.setOptArgValueOptions(arg)
|
| | | }
|
| | | if (arg.default_value) {
|
| | |
| | | sort: arg.sort,
|
| | | isSelected: false
|
| | | }))
|
| | | |
| | |
|
| | | sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false
|
| | | sdkItem.optArg = []
|
| | | }
|
| | |
|
| | | //添加场景时,如果场景名称为空,就将选择的第一个算法名同步到场景名称
|
| | | if (this.sdkGroup[0] && resetArgs) {
|
| | | |
| | |
|
| | | this.$emit('sdkNameChange', this.sdkGroup[0].sdkObj.sdk_name)
|
| | | }
|
| | |
|
| | |
| | | },
|
| | | //选择算法配置
|
| | | selOperator(rule) {
|
| | | |
| | |
|
| | | },
|
| | | selectArgsOption(rule, resetArgValue) {
|
| | | // rule.operator_type = "";
|
| | |
| | | // }
|
| | | },
|
| | | editRule(ruleGroup) {
|
| | | |
| | |
|
| | | this.sdkGroup = []
|
| | | this.group_id = ''
|
| | |
|
| | | ruleGroup.forEach(rule => {
|
| | | |
| | |
|
| | | let tempObj = {}
|
| | |
|
| | | if (rule.group_id && rule.group_id != '') {
|
| | |
| | | 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)
|
| | |
|
| | |
| | | })
|
| | | if (optItem) {
|
| | | //if (optItem.operators.length > 1) {
|
| | | optItem.operator = arg.operator
|
| | | //this.selOperator(optItem)
|
| | | optItem.operator = arg.operator
|
| | | //this.selOperator(optItem)
|
| | | //}
|
| | |
|
| | | //赋值
|
| | |
| | | if (optItem.type == 'option') {
|
| | | this.setOptArgValueOptions(optItem)
|
| | | }
|
| | | if(optItem.alias=="bForceSend"){
|
| | | if (optItem.alias == "bForceSend") {
|
| | |
|
| | | }
|
| | | //在push之前,需要判断是否配置了这个可选项 在sdk_set配置数组里,
|
| | | |
| | |
|
| | | optArg.push(optItem)
|
| | | |
| | |
|
| | | } else {
|
| | | defaultArg.forEach(d => {
|
| | | 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'){
|
| | | |
| | | //} 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{
|
| | | } else {
|
| | | d.sdk_arg_value = arg.sdk_arg_value
|
| | | }
|
| | | d.operator = arg.operator;
|
| | |
| | | tempObj.isAddable = false;
|
| | | }
|
| | | //this.selectSDKOption(tempObj, false)
|
| | | |
| | |
|
| | | this.sdkGroup.push(tempObj)
|
| | | //设置算法
|
| | | })
|
| | |
| | | .catch(() => { })
|
| | | },
|
| | | submitRule() {
|
| | | |
| | |
|
| | | let groupRule = { rules: [] }
|
| | |
|
| | | let group_text = ''
|
| | |
| | | } else {
|
| | | //校验必填项
|
| | | let undefinished = this.sdkGroup.some((sdk, index) => {
|
| | | |
| | |
|
| | | //没有配置算法
|
| | | 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){
|
| | | if (!arg.config.isShow) {
|
| | | arg.sdk_arg_value = arg.default_value
|
| | | }
|
| | | })
|
| | | //表单提交前校验:所有算法的参数值不能为空,(有range的,要在range范围内)失焦时校验
|
| | | let defaultArgFlag = sdk.defaultArg.find(arg => {
|
| | | |
| | | if (arg.sdk_arg_value instanceof Array ) {
|
| | |
|
| | | if (arg.sdk_arg_value instanceof Array) {
|
| | | if (arg.sdk_arg_value.length == 0) {
|
| | | return arg
|
| | | }
|
| | | }else if(!arg.sdk_arg_value){
|
| | | } else if (!arg.sdk_arg_value) {
|
| | | return arg
|
| | | }
|
| | | });
|
| | |
| | | } else {
|
| | | //区间类参数值最小,最大值是否都设置
|
| | | if (arg.operator == 'range') {
|
| | | |
| | |
|
| | | if (!arg.min.trim() && arg.max.trim()) {
|
| | | return arg
|
| | | }
|
| | |
| | | }
|
| | | //校验若算法关系为触发,则算法名不能重
|
| | | let sameSdk = this.sdkGroup.some((sdk, index) => {
|
| | | |
| | | if (sdk.index != 0 && (sdk.rule_with_pre == '=>'||sdk.rule_with_pre == '!=>')) {
|
| | | |
| | |
|
| | | if (sdk.index != 0 && (sdk.rule_with_pre == '=>' || sdk.rule_with_pre == '!=>')) {
|
| | |
|
| | | if (sdk.sdkObj.id == this.sdkGroup[index - 1].sdkObj.id) {
|
| | | return sdk
|
| | | }
|
| | |
| | | let defaultArgDesc = '( '
|
| | | sdk.defaultArg.forEach(arg => {
|
| | | //不显示隐藏的参数配置
|
| | | if(!arg.config.isShow){
|
| | | if (!arg.config.isShow) {
|
| | | return
|
| | | }
|
| | | let val = '';
|
| | |
| | | }
|
| | | if (arg.operator == 'range') {
|
| | | let valRange = '';
|
| | | |
| | |
|
| | | 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.type=='option' ? val : arg.sdk_arg_value
|
| | | arg.type == 'option' ? val : arg.sdk_arg_value
|
| | | }${arg.unit || ''}, `
|
| | | }
|
| | |
|
| | | });
|
| | | ;
|
| | | 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);
|
| | |
|
| | |
| | |
|
| | | val = res.name;
|
| | | }
|
| | | |
| | |
|
| | | }
|
| | |
|
| | | let operatorSelected = arg.operators.find(opr => opr.operator == arg.operator)
|
| | |
| | | group_text.substring(0, group_text.length - 3) +
|
| | | group_text.substring(group_text.length - 2, group_text.length)
|
| | | }
|
| | | |
| | |
|
| | | })
|
| | | console.log(group_text)
|
| | | }
|
| | |
|
| | | groupRule.text = group_text
|