| | |
| | | <div v-for="(arg, index) in sdkItem.defaultArg" :key="arg.sort"> |
| | | <div class="argums-item" v-show="arg.config.isShow"> |
| | | <div class="arg-name"> |
| | | <el-select |
| | | class="h32" |
| | | v-model="arg.name" |
| | | size="mini" |
| | | :disabled="true" |
| | | > |
| | | <el-option |
| | | :label="arg.name" |
| | | :title="arg.name" |
| | | :value="arg" |
| | | ></el-option> |
| | | <el-select class="h32" v-model="arg.name" size="mini" :disabled="true"> |
| | | <el-option :label="arg.name" :title="arg.name" :value="arg"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="operator-name"> |
| | | <el-select |
| | | :disabled="arg.operators.length == 1" |
| | | v-model="arg.operator" |
| | | size="mini" |
| | | class="h32" |
| | | > |
| | | <el-select :disabled="arg.operators.length == 1" v-model="arg.operator" size="mini" class="h32"> |
| | | <el-option |
| | | v-for="operator in arg.operators" |
| | | :key="operator.operator" |
| | |
| | | <span class="font">{{ arg.unit }}</span> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="optional" |
| | | v-if=" |
| | | sdkItem.initAddOptional && index == sdkItem.defaultArg.length - 1 |
| | | " |
| | | > |
| | | <div class="optional" v-if="sdkItem.initAddOptional && index == sdkItem.defaultArg.length - 1"> |
| | | <span class="btn" @click="addOptionalArg()"> |
| | | <i class="iconfont addBtn"></i> |
| | | </span> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div |
| | | class="argums-item optional-line" |
| | | v-for="optArgItem in sdkItem.optArg" |
| | | :key="optArgItem.sort" |
| | | > |
| | | <div class="argums-item optional-line" v-for="optArgItem in sdkItem.optArg" :key="optArgItem.sort"> |
| | | <div class="arg-name"> |
| | | <el-input |
| | | v-if="sdkItem.optNames.length == 1" |
| | |
| | | </el-select> |
| | | </div> |
| | | <div class="operator-name"> |
| | | <el-select |
| | | :disabled="optArgItem.operators.length == 1" |
| | | v-model="optArgItem.operator" |
| | | size="mini" |
| | | class="h32" |
| | | > |
| | | <el-select :disabled="optArgItem.operators.length == 1" v-model="optArgItem.operator" size="mini" class="h32"> |
| | | <el-option |
| | | v-for="operatorItem in optArgItem.operators" |
| | | :key="operatorItem.operator" |
| | |
| | | <span class="font">{{ optArgItem.unit }}</span> |
| | | </div> |
| | | <div class="optional"> |
| | | <span |
| | | class="btn" |
| | | @click="addOptionalArg()" |
| | | v-show="sdkItem.isAddable" |
| | | > |
| | | <span class="btn" @click="addOptionalArg()" v-show="sdkItem.isAddable"> |
| | | <i class="iconfont addBtn"></i> |
| | | </span> |
| | | <span class="btn" @click="delOptionalArg(optArgItem)"> |
| | |
| | | Cameras: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | }, |
| | | return [] |
| | | } |
| | | }, |
| | | isTemplate: { |
| | | type: Boolean, |
| | | default: false, |
| | | default: false |
| | | }, |
| | | |
| | | editSdk: {}, |
| | | |
| | | linkEditCamera: {}, |
| | | linkEditCamera: {} |
| | | }, |
| | | computed: { |
| | | isLinkRule() { |
| | | return this.Cameras.length > 1; |
| | | }, |
| | | return this.Cameras.length > 1 |
| | | } |
| | | }, |
| | | created() { |
| | | this.initOption(); |
| | | this.initOption() |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | optionalArg: [], |
| | | optArg: [], |
| | | optNames: [], |
| | | isAddable: true, |
| | | isAddable: true |
| | | }, |
| | | allPolygonData: [], |
| | | }; |
| | | allPolygonData: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | rangeInput(arg) { |
| | | arg.sdk_arg_value = arg.min + "|" + arg.max; |
| | | this.$forceUpdate(); |
| | | arg.sdk_arg_value = arg.min + "|" + arg.max |
| | | this.$forceUpdate() |
| | | }, |
| | | selectPolygonOption(rule) { |
| | | rule.polygon_id = rule.polygonObj.polygonId |
| | | ? rule.polygonObj.polygonId |
| | | : rule.polygon_id; |
| | | rule.camera_id = rule.polygonObj.cameraId |
| | | ? rule.polygonObj.cameraId |
| | | : rule.camera_id; |
| | | rule.polygon_id = rule.polygonObj.polygonId ? rule.polygonObj.polygonId : rule.polygon_id |
| | | rule.camera_id = rule.polygonObj.cameraId ? rule.polygonObj.cameraId : rule.camera_id |
| | | }, |
| | | close() { |
| | | this.$emit("close"); |
| | | this.$emit("close") |
| | | }, |
| | | initOption() { |
| | | this.initPolygon(); |
| | | let sdkItem = null; |
| | | this.initPolygon() |
| | | let sdkItem = null |
| | | if (this.editSdk) { |
| | | this.TaskMange.list1.forEach((item) => { |
| | | if (item.id === this.editSdk.sdk_id) { |
| | | sdkItem = item; |
| | | sdkItem = item |
| | | } |
| | | }); |
| | | }) |
| | | |
| | | if (typeof sdkItem.argDef === "string") { |
| | | sdkItem.argDef = JSON.parse(sdkItem.argDef); |
| | | sdkItem.argDef = JSON.parse(sdkItem.argDef) |
| | | } |
| | | |
| | | this.sdkItem = sdkItem; |
| | | this.sdkItem.sdk_set = JSON.parse(JSON.stringify(this.editSdk.sdk_set)); |
| | | this.sdkItem.polygon_id = this.editSdk.polygon_id; |
| | | this.sdkItem = sdkItem |
| | | this.sdkItem.sdk_set = JSON.parse(JSON.stringify(this.editSdk.sdk_set)) |
| | | this.sdkItem.polygon_id = this.editSdk.polygon_id |
| | | |
| | | this.editRule(); |
| | | return; |
| | | this.editRule() |
| | | return |
| | | } else { |
| | | sdkItem = this.$store.state.newSdk; |
| | | sdkItem = this.$store.state.newSdk |
| | | } |
| | | if (typeof sdkItem.argDef === "string") { |
| | | sdkItem.argDef = JSON.parse(sdkItem.argDef); |
| | | sdkItem.argDef = JSON.parse(sdkItem.argDef) |
| | | } |
| | | //取出默认参数 |
| | | sdkItem.defaultArg = sdkItem.argDef.filter( |
| | | (arg) => !arg.config.isOptional |
| | | ); |
| | | sdkItem.defaultArg = sdkItem.argDef.filter((arg) => !arg.config.isOptional) |
| | | //赋默认operator/值 |
| | | sdkItem.defaultArg.forEach((arg) => { |
| | | if (arg.operators.length == 1) { |
| | | this.$set(arg, "operator", arg.operators[0].operator); |
| | | this.$set(arg, "operator", arg.operators[0].operator) |
| | | |
| | | if (arg.operators[0].operator == "range") { |
| | | //区间值的处理 |
| | |
| | | } |
| | | |
| | | if (arg.type == "option") { |
| | | this.setOptArgValueOptions(arg); |
| | | this.setOptArgValueOptions(arg) |
| | | } |
| | | if (arg.default_value) { |
| | | this.$set(arg, "sdk_arg_value", arg.default_value); |
| | | this.$set(arg, "sdk_arg_value", arg.default_value) |
| | | } |
| | | }); |
| | | sdkItem.defaultArg; |
| | | }) |
| | | sdkItem.defaultArg |
| | | //取出可选参数 |
| | | sdkItem.optionalArg = sdkItem.argDef.filter( |
| | | (arg) => arg.config.isOptional |
| | | ); |
| | | sdkItem.optionalArg = sdkItem.argDef.filter((arg) => arg.config.isOptional) |
| | | sdkItem.optNames = sdkItem.optionalArg.map((arg) => ({ |
| | | name: arg.name, |
| | | sort: arg.sort, |
| | | isSelected: false, |
| | | })); |
| | | isSelected: false |
| | | })) |
| | | |
| | | sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false; |
| | | sdkItem.optArg = []; |
| | | sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false |
| | | sdkItem.optArg = [] |
| | | |
| | | this.sdkItem = sdkItem; |
| | | this.sdkItem = sdkItem |
| | | }, |
| | | initPolygon() { |
| | | let cameras = []; |
| | | let cameras = [] |
| | | if (this.linkEditCamera) { |
| | | this.allPolygonData = []; |
| | | cameras = this.linkEditCamera; |
| | | this.allPolygonData = [] |
| | | cameras = this.linkEditCamera |
| | | this.linkEditCamera.forEach((camera) => { |
| | | camera.polygon.forEach((polygon) => { |
| | | this.allPolygonData.push({ |
| | | defence_state: polygon.defenceState, |
| | | polygonId: polygon.id, |
| | | name: camera.camera_name + ":" + polygon.name, |
| | | cameraId: camera.camera_id, |
| | | }); |
| | | }); |
| | | }); |
| | | cameraId: camera.camera_id |
| | | }) |
| | | }) |
| | | }) |
| | | } else { |
| | | cameras = [...this.Cameras]; |
| | | cameras = [...this.Cameras] |
| | | for (let i = 0; i < cameras.length; i++) { |
| | | let polyOpt = cameras[i].polygonData.map((p) => { |
| | | return { |
| | | defence_state: p.defence_state, |
| | | polygonId: p.id, |
| | | name: |
| | | this.isLinkRule || this.linkEditCamera |
| | | ? cameras[i].cameraName + ":" + p.name |
| | | : p.name, |
| | | name: this.isLinkRule || this.linkEditCamera ? cameras[i].cameraName + ":" + p.name : p.name, |
| | | |
| | | cameraId: cameras[i].cameraId, |
| | | }; |
| | | }); |
| | | this.allPolygonData = this.allPolygonData.concat(polyOpt); |
| | | cameraId: cameras[i].cameraId |
| | | } |
| | | }) |
| | | this.allPolygonData = this.allPolygonData.concat(polyOpt) |
| | | } |
| | | } |
| | | |
| | | this.$forceUpdate(); |
| | | this.$forceUpdate() |
| | | }, |
| | | |
| | | editRule() { |
| | | let tempObj = {}; |
| | | let tempObj = {} |
| | | |
| | | // 填充区域选项列表 |
| | | this.allPolygonData.forEach((p) => { |
| | | if (p.polygonId === this.sdkItem.polygon_id) { |
| | | this.sdkItem.polygonObj = p; |
| | | this.sdkItem.polygonObj = p |
| | | } |
| | | }); |
| | | }) |
| | | |
| | | if (!this.sdkItem.polygonObj) { |
| | | this.sdkItem.polygonObj = { |
| | | cameraId: this.sdkItem.camera_id, |
| | | defence_state: 1, |
| | | name: "未知区域", |
| | | polygonId: this.sdkItem.polygon_id, |
| | | }; |
| | | polygonId: this.sdkItem.polygon_id |
| | | } |
| | | } |
| | | |
| | | // 设置区域 |
| | | this.selectPolygonOption(this.sdkItem); |
| | | this.selectPolygonOption(this.sdkItem) |
| | | |
| | | //算法对象,算法参数配置数组,(用于数据处理的)默认参数数组, 可选参数数组, 已配置的可选参数数组, (用于去重判断)存放可选参数名的数组 |
| | | let argDef = [], |
| | | defaultArg = [], |
| | | optionalArg = [], |
| | | optArg = [], |
| | | optNames = []; |
| | | optNames = [] |
| | | |
| | | argDef = this.sdkItem.argDef; |
| | | argDef = this.sdkItem.argDef |
| | | |
| | | defaultArg = argDef.filter((arg) => !arg.config.isOptional); |
| | | optionalArg = argDef.filter((arg) => arg.config.isOptional); |
| | | defaultArg = argDef.filter((arg) => !arg.config.isOptional) |
| | | optionalArg = argDef.filter((arg) => arg.config.isOptional) |
| | | |
| | | this.sdkItem.sdk_set.forEach((arg) => { |
| | | let optItem = optionalArg.find((oarg) => { |
| | | if (oarg.sort == arg.sort) { |
| | | return oarg; |
| | | return oarg |
| | | } |
| | | }); |
| | | }) |
| | | if (optItem) { |
| | | //if (optItem.operators.length > 1) { |
| | | optItem.operator = arg.operator; |
| | | optItem.operator = arg.operator |
| | | //this.selOperator(optItem) |
| | | //} |
| | | |
| | | //赋值 |
| | | optItem.sdk_arg_value = arg.sdk_arg_value; |
| | | optItem.sdk_arg_value = arg.sdk_arg_value |
| | | //if(arg.sdk_arg_value.indexOf(',')>0){ |
| | | //判断是否是多选值类型的参数 |
| | | let isMultiOne = optionalArg.find( |
| | | (oarg) => oarg.sort == optItem.sort && optItem.config.isMulti |
| | | ); |
| | | let isMultiOne = optionalArg.find((oarg) => oarg.sort == optItem.sort && optItem.config.isMulti) |
| | | if (isMultiOne) { |
| | | optItem.sdk_arg_value = arg.sdk_arg_value.split(","); |
| | | optItem.sdk_arg_value = arg.sdk_arg_value.split(",") |
| | | } |
| | | |
| | | if (optItem.type == "option") { |
| | | this.setOptArgValueOptions(optItem); |
| | | this.setOptArgValueOptions(optItem) |
| | | } |
| | | if (optItem.alias == "bForceSend") { |
| | | } |
| | | //在push之前,需要判断是否配置了这个可选项 在sdk_set配置数组里, |
| | | |
| | | optArg.push(optItem); |
| | | optArg.push(optItem) |
| | | } else { |
| | | defaultArg.forEach((d) => { |
| | | if (d.sort == arg.sort) { |
| | | if (arg.sdk_arg_value.indexOf("|") > 0) { |
| | | //区间值 |
| | | d.min = arg.sdk_arg_value.split("|")[0]; |
| | | d.max = arg.sdk_arg_value.split("|")[1]; |
| | | d.operator = "range"; |
| | | 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); |
| | | d.sdk_arg_value = arg.sdk_arg_value.split(",") |
| | | this.setOptArgValueOptions(d) |
| | | } else { |
| | | d.sdk_arg_value = arg.sdk_arg_value; |
| | | d.sdk_arg_value = arg.sdk_arg_value |
| | | } |
| | | d.operator = arg.operator; |
| | | d.operator = arg.operator |
| | | } |
| | | }); |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | optNames = optionalArg.map((arg) => ({ |
| | | name: arg.name, |
| | | sort: arg.sort, |
| | | isSelected: false, |
| | | })); |
| | | isSelected: false |
| | | })) |
| | | |
| | | tempObj = { |
| | | polygonObj: this.sdkItem.polygonObj, |
| | |
| | | sdk_id: this.editSdk.sdk_id, |
| | | rule_with_pre: this.editSdk.rule_with_pre, |
| | | is_save_anyhow: this.editSdk.is_save_anyhow, |
| | | icon_blob: this.editSdk.icon_blob, |
| | | }; |
| | | icon_blob: this.editSdk.icon_blob |
| | | } |
| | | //回显是否显示添加可选参数 |
| | | tempObj.initAddOptional = |
| | | tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0 |
| | | ? true |
| | | : false; |
| | | tempObj.initAddOptional = tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0 ? true : false |
| | | //回显是否显示可选参数添加按钮 |
| | | if (tempObj.optArg.length < tempObj.optionalArg.length) { |
| | | tempObj.isAddable = true; |
| | | tempObj.isAddable = true |
| | | } else { |
| | | tempObj.isAddable = false; |
| | | tempObj.isAddable = false |
| | | } |
| | | |
| | | this.sdkItem = tempObj; |
| | | this.$forceUpdate(); |
| | | this.sdkItem = tempObj |
| | | this.$forceUpdate() |
| | | }, |
| | | |
| | | validateArgVal(sdkArgItem, e) { |
| | | if ( |
| | | typeof sdkArgItem.sdk_arg_value == "string" && |
| | | sdkArgItem.sdk_arg_value == "" |
| | | ) { |
| | | if (typeof sdkArgItem.sdk_arg_value == "string" && sdkArgItem.sdk_arg_value == "") { |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: "参数设定值不能为空!", |
| | | }); |
| | | sdkArgItem.valid = false; |
| | | message: "参数设定值不能为空!" |
| | | }) |
| | | sdkArgItem.valid = false |
| | | |
| | | return false; |
| | | return false |
| | | } |
| | | //输入非数字 |
| | | |
| | | //范围是否合法 |
| | | if (sdkArgItem.range) { |
| | | let leftHand = sdkArgItem.range.substr(0, 1); |
| | | let rightHand = sdkArgItem.range.substr(sdkArgItem.range.length - 1, 1); |
| | | let reg = /.*(\d+),(\d+).*/; |
| | | let res = sdkArgItem.range.match(reg); |
| | | let leftHand = sdkArgItem.range.substr(0, 1) |
| | | let rightHand = sdkArgItem.range.substr(sdkArgItem.range.length - 1, 1) |
| | | let reg = /.*(\d+),(\d+).*/ |
| | | let res = sdkArgItem.range.match(reg) |
| | | let min = Number(res[1]), |
| | | max = Number(res[2]); |
| | | max = Number(res[2]) |
| | | |
| | | //判断非区间类 |
| | | if (sdkArgItem.sdk_arg_value && sdkArgItem.operator != "range") { |
| | | if (leftHand == "(" && rightHand == ")") { |
| | | if ( |
| | | Number(sdkArgItem.sdk_arg_value) <= min || |
| | | Number(sdkArgItem.sdk_arg_value) >= max |
| | | ) { |
| | | sdkArgItem.valid = false; |
| | | if (Number(sdkArgItem.sdk_arg_value) <= min || Number(sdkArgItem.sdk_arg_value) >= max) { |
| | | sdkArgItem.valid = false |
| | | |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数设定值须大于${min},小于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数设定值须大于${min},小于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } else if (leftHand == "[" && rightHand == ")") { |
| | | if ( |
| | | Number(sdkArgItem.sdk_arg_value) < min || |
| | | Number(sdkArgItem.sdk_arg_value) >= max |
| | | ) { |
| | | sdkArgItem.valid = false; |
| | | if (Number(sdkArgItem.sdk_arg_value) < min || Number(sdkArgItem.sdk_arg_value) >= max) { |
| | | sdkArgItem.valid = false |
| | | |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数设定值须大于等于${min},小于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数设定值须大于等于${min},小于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } else if (leftHand == "(" && rightHand == "]") { |
| | | if ( |
| | | Number(sdkArgItem.sdk_arg_value) <= min || |
| | | Number(sdkArgItem.sdk_arg_value) > max |
| | | ) { |
| | | sdkArgItem.valid = false; |
| | | if (Number(sdkArgItem.sdk_arg_value) <= min || Number(sdkArgItem.sdk_arg_value) > max) { |
| | | sdkArgItem.valid = false |
| | | |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数设定值须大于${min},小于等于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数设定值须大于${min},小于等于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } else if (leftHand == "[" && rightHand == "]") { |
| | | if ( |
| | | Number(sdkArgItem.sdk_arg_value) < min || |
| | | Number(sdkArgItem.sdk_arg_value) > max |
| | | ) { |
| | | sdkArgItem.valid = false; |
| | | this.showErrorColor(e); |
| | | if (Number(sdkArgItem.sdk_arg_value) < min || Number(sdkArgItem.sdk_arg_value) > max) { |
| | | sdkArgItem.valid = false |
| | | this.showErrorColor(e) |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数设定值须大于等于${min},小于等于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数设定值须大于等于${min},小于等于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } |
| | | } else if (sdkArgItem.min || sdkArgItem.max) { |
| | | //判断区间类 |
| | | if (leftHand == "(" && rightHand == ")") { |
| | | if ( |
| | | Number(sdkArgItem.min) <= min || |
| | | Number(sdkArgItem.min) >= max |
| | | ) { |
| | | sdkArgItem.valid = false; |
| | | if (Number(sdkArgItem.min) <= min || Number(sdkArgItem.min) >= max) { |
| | | sdkArgItem.valid = false |
| | | |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数区间设定值须大于${min},小于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数区间设定值须大于${min},小于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } else if (leftHand == "[" && rightHand == ")") { |
| | | if (Number(sdkArgItem.min) < min || Number(sdkArgItem.max) >= max) { |
| | | sdkArgItem.valid = false; |
| | | sdkArgItem.valid = false |
| | | |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数区间设定值须大于等于${min},小于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数区间设定值须大于等于${min},小于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } else if (leftHand == "(" && rightHand == "]") { |
| | | if (Number(sdkArgItem.min) <= min || Number(sdkArgItem.max) > max) { |
| | | sdkArgItem.valid = false; |
| | | sdkArgItem.valid = false |
| | | |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数区间设定值须大于${min},小于等于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数区间设定值须大于${min},小于等于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } else if (leftHand == "[" && rightHand == "]") { |
| | | if ( |
| | |
| | | Number(sdkArgItem.min) > max || |
| | | Number(sdkArgItem.max) < min |
| | | ) { |
| | | sdkArgItem.valid = false; |
| | | sdkArgItem.valid = false |
| | | // this.showErrorColor(e); |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: `参数区间设定值须大于等于${min},小于等于${max}`, |
| | | }); |
| | | return false; |
| | | message: `参数区间设定值须大于等于${min},小于等于${max}` |
| | | }) |
| | | return false |
| | | } |
| | | } |
| | | } |
| | | } |
| | | e.currentTarget.style.borderColor = ""; |
| | | return true; |
| | | e.currentTarget.style.borderColor = "" |
| | | return true |
| | | }, |
| | | |
| | | addOptionalArg() { |
| | | this.sdkItem.initAddOptional = false; |
| | | this.sdkItem.initAddOptional = false |
| | | this.sdkItem.optArg.forEach((arg) => { |
| | | this.sdkItem.optNames.forEach((name) => { |
| | | if (arg.sort == name.sort) { |
| | | name.isSelected = true; |
| | | name.isSelected = true |
| | | } |
| | | }); |
| | | }); //找到可选sdkItem.optNames的第一个对应的sdkItem.optionalArg push到sdkItem.optArg |
| | | let oneNotSelected = this.sdkItem.optNames.find( |
| | | (name) => !name.isSelected |
| | | ); |
| | | }) |
| | | }) //找到可选sdkItem.optNames的第一个对应的sdkItem.optionalArg push到sdkItem.optArg |
| | | let oneNotSelected = this.sdkItem.optNames.find((name) => !name.isSelected) |
| | | if (oneNotSelected) { |
| | | oneNotSelected.isSelected = true; |
| | | oneNotSelected.isSelected = true |
| | | } |
| | | |
| | | let argTemp = this.sdkItem.optionalArg.find((arg) => { |
| | | return arg.sort == oneNotSelected.sort; |
| | | }); |
| | | return arg.sort == oneNotSelected.sort |
| | | }) |
| | | |
| | | let copyArgTemp = JSON.parse(JSON.stringify(argTemp)); |
| | | let copyArgTemp = JSON.parse(JSON.stringify(argTemp)) |
| | | if (copyArgTemp.type == "option") { |
| | | this.setOptArgValueOptions(copyArgTemp); |
| | | this.setOptArgValueOptions(copyArgTemp) |
| | | } |
| | | //默认选中第一个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); |
| | | this.$set(copyArgTemp, "sdk_arg_value", copyArgTemp.default_value) |
| | | } |
| | | |
| | | this.sdkItem.optArg.push(copyArgTemp); |
| | | this.$forceUpdate(); |
| | | this.sdkItem.optArg.push(copyArgTemp) |
| | | this.$forceUpdate() |
| | | |
| | | if (this.sdkItem.optArg.length < this.sdkItem.optionalArg.length) { |
| | | this.sdkItem.isAddable = true; |
| | | this.sdkItem.isAddable = true |
| | | } else { |
| | | this.sdkItem.isAddable = false; |
| | | this.sdkItem.isAddable = false |
| | | } |
| | | }, |
| | | |
| | | selOptionalArg(optArgItem) { |
| | | let newSort = 0; |
| | | let newSort = 0 |
| | | this.sdkItem.optNames.forEach((name) => { |
| | | if (name.name == optArgItem.name) { |
| | | //新切换的参数名 |
| | | name.isSelected = true; |
| | | newSort = name.sort; |
| | | name.isSelected = true |
| | | newSort = name.sort |
| | | } else if (name.sort == optArgItem.sort) { |
| | | //切换前的参数名 |
| | | name.isSelected = false; |
| | | name.isSelected = false |
| | | } |
| | | }); |
| | | }) |
| | | //根据新的参数sort找到其对应配置对象 |
| | | let argObj = this.sdkItem.optionalArg.find((arg) => arg.sort == newSort); |
| | | let argObj = this.sdkItem.optionalArg.find((arg) => arg.sort == newSort) |
| | | if (argObj.type == "option") { |
| | | this.setOptArgValueOptions(argObj); |
| | | this.setOptArgValueOptions(argObj) |
| | | } |
| | | //默认选中第一个operator |
| | | //if (argObj.operators.length == 1) { |
| | | this.$set(argObj, "operator", argObj.operators[0].operator); |
| | | this.$set(argObj, "operator", argObj.operators[0].operator) |
| | | //} |
| | | //替换新的参数配置对象 |
| | | this.sdkItem.optArg.forEach((arg, index) => { |
| | | if (arg.sort == optArgItem.sort) { |
| | | this.$set( |
| | | this.sdkItem.optArg, |
| | | index, |
| | | JSON.parse(JSON.stringify(argObj)) |
| | | ); |
| | | this.$set(this.sdkItem.optArg, index, JSON.parse(JSON.stringify(argObj))) |
| | | } |
| | | }); |
| | | }) |
| | | }, |
| | | |
| | | delOptionalArg(optArgItem) { |
| | | let index = this.sdkItem.optArg.findIndex( |
| | | (arg) => arg.sort == optArgItem.sort |
| | | ); |
| | | this.sdkItem.optArg.splice(index, 1); |
| | | let index = this.sdkItem.optArg.findIndex((arg) => arg.sort == optArgItem.sort) |
| | | this.sdkItem.optArg.splice(index, 1) |
| | | this.sdkItem.optNames.forEach((name) => { |
| | | if (name.sort == optArgItem.sort) { |
| | | name.isSelected = false; |
| | | name.isSelected = false |
| | | } |
| | | }); |
| | | this.sdkItem.initAddOptional = |
| | | this.sdkItem.optArg.length == 0 ? true : false; |
| | | }) |
| | | this.sdkItem.initAddOptional = this.sdkItem.optArg.length == 0 ? true : false |
| | | if (this.sdkItem.optArg.length < this.sdkItem.optionalArg.length) { |
| | | this.sdkItem.isAddable = true; |
| | | this.sdkItem.isAddable = true |
| | | } else { |
| | | this.sdkItem.isAddable = false; |
| | | this.sdkItem.isAddable = false |
| | | } |
| | | this.$forceUpdate(); |
| | | this.$forceUpdate() |
| | | }, |
| | | |
| | | setOptArgValueOptions(optArg) { |
| | | let alias = optArg.alias; |
| | | console.log(121212); |
| | | console.log(alias); |
| | | let alias = optArg.alias |
| | | console.log(121212) |
| | | console.log(alias) |
| | | optArg.valueOptions = this.VideoManageData.Dictionary[alias].map((r) => { |
| | | return { |
| | | name: r.name, |
| | | value: r.value, |
| | | }; |
| | | }); |
| | | value: r.value |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | forceUpdate() { |
| | | console.log(1); |
| | | this.$forceUpdate(); |
| | | console.log(1) |
| | | this.$forceUpdate() |
| | | }, |
| | | |
| | | save() { |
| | | let warn = false; |
| | | let warn = false |
| | | |
| | | //复制算法时检测区域不能为空 |
| | | if (!this.sdkItem.polygon_id) { |
| | | console.log(1); |
| | | warn = true; |
| | | console.log(1) |
| | | warn = true |
| | | } |
| | | |
| | | //处理未展示的参数的值 |
| | | this.sdkItem.defaultArg.forEach((arg) => { |
| | | if (!arg.config.isShow) { |
| | | arg.sdk_arg_value = arg.default_value; |
| | | arg.sdk_arg_value = arg.default_value |
| | | } |
| | | }); |
| | | }) |
| | | //表单提交前校验:所有算法的参数值不能为空,(有range的,要在range范围内)失焦时校验 |
| | | let defaultArgFlag = this.sdkItem.defaultArg.find((arg) => { |
| | | if (arg.sdk_arg_value instanceof Array) { |
| | | if (arg.sdk_arg_value.length == 0) { |
| | | return arg; |
| | | return arg |
| | | } |
| | | } else if (!arg.sdk_arg_value) { |
| | | return arg; |
| | | return arg |
| | | } |
| | | }); |
| | | }) |
| | | if (defaultArgFlag) { |
| | | warn = true; |
| | | warn = true |
| | | } |
| | | //查找可选参数值是否都设置(多选值为数组类型) |
| | | let optionalArgFlag = this.sdkItem.optArg.find((arg) => { |
| | | if (arg.sdk_arg_value instanceof Array) { |
| | | if (arg.sdk_arg_value.length == 0) { |
| | | return arg; |
| | | return arg |
| | | } |
| | | } else { |
| | | //区间类参数值最小,最大值是否都设置 |
| | | if (arg.operator == "range") { |
| | | if (!arg.min.trim() && arg.max.trim()) { |
| | | return arg; |
| | | return arg |
| | | } |
| | | } |
| | | if (!arg.sdk_arg_value) { |
| | | return arg; |
| | | return arg |
| | | } |
| | | } |
| | | }); |
| | | }) |
| | | |
| | | if (optionalArgFlag) { |
| | | warn = true; |
| | | warn = true |
| | | } |
| | | |
| | | //校验区间左侧值是否小于右侧值 |
| | | let rangeArg = this.sdkItem.defaultArg.find( |
| | | (arg) => arg.operator == "range" |
| | | ); |
| | | let rangeArg = this.sdkItem.defaultArg.find((arg) => arg.operator == "range") |
| | | if (rangeArg) { |
| | | if (Number(rangeArg.max) <= Number(rangeArg.min)) { |
| | | warn = true; |
| | | warn = true |
| | | } |
| | | } |
| | | |
| | | if (warn) { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "算法参数有误,请完善后再保存", |
| | | }); |
| | | return false; |
| | | message: "算法参数有误,请完善后再保存" |
| | | }) |
| | | return false |
| | | } |
| | | |
| | | console.log(this.sdkItem); |
| | | console.log(this.sdkItem) |
| | | |
| | | let tempObj = { |
| | | sdk_id: this.editSdk ? this.sdkItem.sdk_id : this.sdkItem.id, |
| | |
| | | is_save_anyhow: this.sdkItem.is_save_anyhow, |
| | | polygon_id: this.sdkItem.polygon_id, |
| | | rule_with_pre: this.sdkItem.rule_with_pre, |
| | | sdk_set: [], |
| | | }; |
| | | sdk_set: [] |
| | | } |
| | | |
| | | let defaultArgs = this.sdkItem.defaultArg.map((arg) => ({ |
| | | operator: arg.operator, |
| | | operator_type: arg.type, |
| | | sdk_arg_alias: arg.alias, |
| | | sdk_arg_value: arg.sdk_arg_value, |
| | | sort: arg.sort, |
| | | })); |
| | | sort: arg.sort |
| | | })) |
| | | |
| | | let defaultArgDesc = "( "; |
| | | let defaultArgDesc = "( " |
| | | this.sdkItem.defaultArg.forEach((arg) => { |
| | | //不显示隐藏的参数配置 |
| | | if (!arg.config.isShow) { |
| | | return; |
| | | return |
| | | } |
| | | let val = ""; |
| | | let val = "" |
| | | //处理下拉选值类型 |
| | | if (arg.type == "option") { |
| | | if (arg.sdk_arg_value instanceof Array) { |
| | | //多选值 |
| | | let multiNames = ""; |
| | | let multiNames = "" |
| | | arg.sdk_arg_value.forEach((val) => { |
| | | let opV = arg.valueOptions.find((opt) => opt.value == val); |
| | | multiNames += opV.name + " "; |
| | | }); |
| | | val = multiNames; |
| | | 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; |
| | | let res = arg.valueOptions.find((opt) => opt.value == arg.sdk_arg_value) |
| | | val = res.name |
| | | } |
| | | } |
| | | if (arg.operator == "range") { |
| | | let valRange = ""; |
| | | let valRange = "" |
| | | |
| | | valRange = arg.sdk_arg_value.replace(",", "-"); |
| | | defaultArgDesc += `${arg.name}${arg.operators[0].name}${valRange}${ |
| | | arg.unit || "" |
| | | }, `; |
| | | 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.unit || ""}, `; |
| | | }${arg.unit || ""}, ` |
| | | } |
| | | }); |
| | | 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); |
| | |
| | | operator_type: arg.type, |
| | | sdk_arg_alias: arg.alias, |
| | | sdk_arg_value: arg.sdk_arg_value, |
| | | sort: arg.sort, |
| | | })); |
| | | sort: arg.sort |
| | | })) |
| | | //将多选项的值拼成字符串 |
| | | optArgs.forEach((one) => { |
| | | if (one.sdk_arg_value instanceof Array) { |
| | | one.sdk_arg_value = one.sdk_arg_value.join(); |
| | | one.sdk_arg_value = one.sdk_arg_value.join() |
| | | } |
| | | }); |
| | | let optArgDesc = " "; |
| | | }) |
| | | let optArgDesc = " " |
| | | |
| | | //新增 |
| | | |
| | | //新增 |
| | | |
| | | this.sdkItem.optArg.forEach((arg) => { |
| | | let val = ""; |
| | | let valRange = ""; |
| | | let val = "" |
| | | let valRange = "" |
| | | |
| | | //处理下拉选值类型 |
| | | if (arg.type == "option") { |
| | | if (arg.sdk_arg_value instanceof Array) { |
| | | //多选值 |
| | | let multiNames = ""; |
| | | let multiNames = "" |
| | | arg.sdk_arg_value.forEach((val) => { |
| | | let opV = arg.valueOptions.find((opt) => opt.value == val); |
| | | multiNames += opV.name + " "; |
| | | }); |
| | | val = multiNames; |
| | | 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 |
| | | ); |
| | | let res = arg.valueOptions.find((opt) => opt.value == arg.sdk_arg_value) |
| | | |
| | | val = res.name; |
| | | val = res.name |
| | | } |
| | | } |
| | | |
| | | let operatorSelected = arg.operators.find( |
| | | (opr) => opr.operator == arg.operator |
| | | ); |
| | | 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 || ""}, `; |
| | | }); |
| | | }${arg.unit || ""}, ` |
| | | }) |
| | | //将多选项的值拼成字符串 |
| | | defaultArgs.forEach((one) => { |
| | | if (one.sdk_arg_value instanceof Array) { |
| | | one.sdk_arg_value = one.sdk_arg_value.join(); |
| | | 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); |
| | | tempObj.ruleDes = defaultArgDesc + optArgDesc; |
| | | console.log(tempObj.ruleDes); |
| | | optArgDesc.substring(0, optArgDesc.length - 2) + optArgDesc.substring(optArgDesc.length - 1, optArgDesc.length) |
| | | optArgDesc += ")" |
| | | tempObj.sdk_set = defaultArgs.concat(optArgs) |
| | | tempObj.ruleDes = defaultArgDesc + optArgDesc |
| | | console.log(tempObj.ruleDes) |
| | | |
| | | if (this.editSdk) { |
| | | tempObj.icon_blob = this.editSdk.icon_blob; |
| | | tempObj.group_id = this.editSdk.group_id; |
| | | tempObj.sort = this.editSdk.sort; |
| | | tempObj.id = this.editSdk.id; |
| | | tempObj.icon_blob = this.editSdk.icon_blob; |
| | | tempObj.icon_blob2 = this.editSdk.icon_blob2; |
| | | this.$emit("getEditSdk", tempObj); |
| | | tempObj.icon_blob = this.editSdk.icon_blob |
| | | tempObj.group_id = this.editSdk.group_id |
| | | tempObj.sort = this.editSdk.sort |
| | | tempObj.id = this.editSdk.id |
| | | tempObj.icon_blob = this.editSdk.icon_blob |
| | | tempObj.icon_blob2 = this.editSdk.icon_blob2 |
| | | this.$emit("getEditSdk", tempObj) |
| | | } else { |
| | | tempObj.icon_blob = this.$store.state.newSdk.iconBlob; |
| | | this.$emit("getNewSdk", tempObj); |
| | | tempObj.icon_blob = this.$store.state.newSdk.iconBlob |
| | | this.$emit("getNewSdk", tempObj) |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | watch: { |
| | | sdkItem: { |
| | | handler(newVal) { |
| | | let rangeOne = newVal.defaultArg.find( |
| | | (arg) => arg.operators[0].operator == "range" |
| | | ); |
| | | let rangeOne = newVal.defaultArg.find((arg) => arg.operators[0].operator == "range") |
| | | if (rangeOne) { |
| | | if ( |
| | | rangeOne.min && |
| | | rangeOne.max && |
| | | rangeOne.min.trim() && |
| | | rangeOne.max.trim() |
| | | ) { |
| | | rangeOne.sdk_arg_value = rangeOne.min + "|" + rangeOne.max; |
| | | if (rangeOne.min && rangeOne.max && rangeOne.min.trim() && rangeOne.max.trim()) { |
| | | rangeOne.sdk_arg_value = rangeOne.min + "|" + rangeOne.max |
| | | } else { |
| | | rangeOne.sdk_arg_value = false; |
| | | rangeOne.sdk_arg_value = false |
| | | } |
| | | } |
| | | }, |
| | | deep: true, |
| | | }, |
| | | }, |
| | | }; |
| | | deep: true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | </style> |