| | |
| | | <el-input |
| | | class="range-min" |
| | | v-model="arg.min" |
| | | @input="forceUpdate" |
| | | @input="rangeInput(arg)" |
| | | @blur="validateArgVal(arg, $event)" |
| | | ></el-input> |
| | | <span class="devide"></span> |
| | | <el-input |
| | | class="range-max" |
| | | v-model="arg.max" |
| | | @input="forceUpdate" |
| | | @input="rangeInput(arg)" |
| | | @blur="validateArgVal(arg, $event)" |
| | | ></el-input> |
| | | <span class="font">{{ arg.unit }}</span> |
| | |
| | | |
| | | <div class="btns"> |
| | | <div class="cancelBtn button" @click="close">取消</div> |
| | | <div class="confirmBtn button" @click="save">添加</div> |
| | | <div class="confirmBtn button" @click="save"> |
| | | {{ editSdk ? "保存" : "添加" }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | isLinkRule: { |
| | | type: Boolean, |
| | | default: false, |
| | | |
| | | editSdk: {}, |
| | | |
| | | linkEditCamera: {}, |
| | | }, |
| | | computed: { |
| | | isLinkRule() { |
| | | return this.Cameras.length > 1; |
| | | }, |
| | | }, |
| | | created() { |
| | | this.initOption(); |
| | | this.initPolygon(); |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }; |
| | | }, |
| | | methods: { |
| | | rangeInput(arg) { |
| | | arg.sdk_arg_value = arg.min + "|" + arg.max; |
| | | this.$forceUpdate(); |
| | | }, |
| | | selectPolygonOption(rule) { |
| | | rule.polygon_id = rule.polygonObj.polygonId |
| | | ? rule.polygonObj.polygonId |
| | |
| | | rule.camera_id = rule.polygonObj.cameraId |
| | | ? rule.polygonObj.cameraId |
| | | : rule.camera_id; |
| | | rule.group_id = this.group_id; |
| | | }, |
| | | close() { |
| | | this.$emit("close"); |
| | | }, |
| | | initOption() { |
| | | let sdkItem = this.$store.state.newSdk; |
| | | sdkItem.argDef = JSON.parse(sdkItem.argDef); |
| | | this.initPolygon(); |
| | | let sdkItem = null; |
| | | if (this.editSdk) { |
| | | this.TaskMange.list1.forEach((item) => { |
| | | if (item.id === this.editSdk.sdk_id) { |
| | | sdkItem = item; |
| | | } |
| | | }); |
| | | |
| | | if (typeof sdkItem.argDef === "string") { |
| | | 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.editRule(); |
| | | return; |
| | | } else { |
| | | sdkItem = this.$store.state.newSdk; |
| | | } |
| | | if (typeof sdkItem.argDef === "string") { |
| | | sdkItem.argDef = JSON.parse(sdkItem.argDef); |
| | | } |
| | | //取出默认参数 |
| | | sdkItem.defaultArg = sdkItem.argDef.filter( |
| | | (arg) => !arg.config.isOptional |
| | |
| | | this.sdkItem = sdkItem; |
| | | }, |
| | | initPolygon() { |
| | | let polygon = []; |
| | | let 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 |
| | | ? cameras[i].cameraName + ":" + p.name |
| | | : p.name, |
| | | |
| | | cameraId: cameras[i].cameraId, |
| | | }; |
| | | let cameras = []; |
| | | if (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, |
| | | }); |
| | | }); |
| | | }); |
| | | polygon = polygon.concat(polyOpt); |
| | | } else { |
| | | 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, |
| | | |
| | | this.allPolygonData = polygon; |
| | | cameraId: cameras[i].cameraId, |
| | | }; |
| | | }); |
| | | this.allPolygonData = this.allPolygonData.concat(polyOpt); |
| | | } |
| | | } |
| | | |
| | | this.$forceUpdate(); |
| | | }, |
| | | |
| | | editRule() { |
| | | let tempObj = {}; |
| | | |
| | | // 填充区域选项列表 |
| | | this.allPolygonData.forEach((p) => { |
| | | if (p.polygonId === this.sdkItem.polygon_id) { |
| | | 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, |
| | | }; |
| | | } |
| | | |
| | | // 设置区域 |
| | | this.selectPolygonOption(this.sdkItem); |
| | | |
| | | //算法对象,算法参数配置数组,(用于数据处理的)默认参数数组, 可选参数数组, 已配置的可选参数数组, (用于去重判断)存放可选参数名的数组 |
| | | let argDef = [], |
| | | defaultArg = [], |
| | | optionalArg = [], |
| | | optArg = [], |
| | | optNames = []; |
| | | |
| | | argDef = this.sdkItem.argDef; |
| | | |
| | | 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; |
| | | } |
| | | }); |
| | | if (optItem) { |
| | | //if (optItem.operators.length > 1) { |
| | | optItem.operator = arg.operator; |
| | | //this.selOperator(optItem) |
| | | //} |
| | | |
| | | //赋值 |
| | | 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 |
| | | ); |
| | | if (isMultiOne) { |
| | | optItem.sdk_arg_value = arg.sdk_arg_value.split(","); |
| | | } |
| | | |
| | | if (optItem.type == "option") { |
| | | this.setOptArgValueOptions(optItem); |
| | | } |
| | | 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) { |
| | | //区间值 |
| | | 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); |
| | | } else { |
| | | d.sdk_arg_value = arg.sdk_arg_value; |
| | | } |
| | | d.operator = arg.operator; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | optNames = optionalArg.map((arg) => ({ |
| | | name: arg.name, |
| | | sort: arg.sort, |
| | | isSelected: false, |
| | | })); |
| | | |
| | | tempObj = { |
| | | polygonObj: this.sdkItem.polygonObj, |
| | | rule_with_pre: this.sdkItem.rule_with_pre, |
| | | is_save_anyhow: this.sdkItem.is_save_anyhow, |
| | | isSpread: true, |
| | | argDef, |
| | | initAddOptional: false, |
| | | optionalArg, |
| | | optArg, |
| | | defaultArg, |
| | | optNames, |
| | | isAddable: true, |
| | | camera_id: this.sdkItem.camera_id, |
| | | polygon_id: this.sdkItem.polygon_id, |
| | | 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, |
| | | }; |
| | | //回显是否显示添加可选参数 |
| | | tempObj.initAddOptional = |
| | | tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0 |
| | | ? true |
| | | : false; |
| | | //回显是否显示可选参数添加按钮 |
| | | if (tempObj.optArg.length < tempObj.optionalArg.length) { |
| | | tempObj.isAddable = true; |
| | | } else { |
| | | tempObj.isAddable = false; |
| | | } |
| | | |
| | | this.sdkItem = tempObj; |
| | | this.$forceUpdate(); |
| | | }, |
| | | |
| | | validateArgVal(sdkArgItem, e) { |
| | | console.log(sdkArgItem); |
| | | if ( |
| | | typeof sdkArgItem.sdk_arg_value == "string" && |
| | | sdkArgItem.sdk_arg_value == "" |
| | |
| | | |
| | | setOptArgValueOptions(optArg) { |
| | | let alias = optArg.alias; |
| | | console.log(121212); |
| | | console.log(alias); |
| | | optArg.valueOptions = this.VideoManageData.Dictionary[alias].map((r) => { |
| | | return { |
| | | name: r.name, |
| | |
| | | console.log(this.sdkItem); |
| | | |
| | | let tempObj = { |
| | | sdk_id: this.sdkItem.id, |
| | | sdk_id: this.editSdk ? this.sdkItem.sdk_id : this.sdkItem.id, |
| | | camera_id: this.sdkItem.camera_id, |
| | | group_id: "", |
| | | is_save_anyhow: this.sdkItem.is_save_anyhow, |
| | | polygon_id: this.sdkItem.polygon_id, |
| | | rule_with_pre: this.sdkItem.rule_with_pre, |
| | |
| | | } |
| | | }); |
| | | let optArgDesc = " "; |
| | | |
| | | //新增 |
| | | |
| | | //新增 |
| | | |
| | | this.sdkItem.optArg.forEach((arg) => { |
| | | let val = ""; |
| | | let valRange = ""; |
| | |
| | | optArgDesc.substring(optArgDesc.length - 1, optArgDesc.length); |
| | | optArgDesc += ")"; |
| | | tempObj.sdk_set = defaultArgs.concat(optArgs); |
| | | tempObj.icon_blob = this.$store.state.newSdk.iconBlob; |
| | | tempObj.ruleDes = defaultArgDesc + optArgDesc; |
| | | console.log(tempObj.ruleDes); |
| | | |
| | | this.$emit("getNewSdk", tempObj); |
| | | 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); |
| | | } else { |
| | | tempObj.icon_blob = this.$store.state.newSdk.iconBlob; |
| | | this.$emit("getNewSdk", tempObj); |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | |
| | | } |
| | | |
| | | .el-input ::v-deep { |
| | | width: 50px; |
| | | width: 100px; |
| | | height: 32px; |
| | | |
| | | input { |
| | | width: 50px; |
| | | width: 100px; |
| | | height: 32px; |
| | | } |
| | | } |
| | | |
| | | .el-select { |
| | | width: 68px; |
| | | width: 100px; |
| | | } |
| | | |
| | | .font { |
| | |
| | | .btns { |
| | | position: absolute; |
| | | display: flex; |
| | | justify-content: end; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | left: 0; |
| | | right: 0; |