From 658915facb9ec5a5ad83abceb4d64dccac15e631 Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期二, 29 三月 2022 14:52:46 +0800 Subject: [PATCH] 摄像机管理 --- src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue | 210 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 189 insertions(+), 21 deletions(-) diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue index a5ec2ac..c1e1726 100644 --- a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue +++ b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue @@ -61,14 +61,14 @@ <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> @@ -206,7 +206,9 @@ <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> @@ -224,14 +226,18 @@ 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 { @@ -251,6 +257,10 @@ }; }, methods: { + rangeInput(arg) { + arg.sdk_arg_value = arg.min + "|" + arg.max; + this.$forceUpdate(); + }, selectPolygonOption(rule) { rule.polygon_id = rule.polygonObj.polygonId ? rule.polygonObj.polygonId @@ -258,14 +268,37 @@ 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; + } + console.log(typeof sdkItem.argDef); + if (typeof sdkItem.argDef === "string") { + sdkItem.argDef = JSON.parse(sdkItem.argDef); + } //鍙栧嚭榛樿鍙傛暟 sdkItem.defaultArg = sdkItem.argDef.filter( (arg) => !arg.config.isOptional @@ -304,25 +337,157 @@ this.sdkItem = sdkItem; }, initPolygon() { - let polygon = []; - let cameras = [...this.Cameras]; + let cameras = []; + if (this.linkEditCamera) { + cameras = this.linkEditCamera; + } 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 - ? cameras[i].cameraName + ":" + p.name - : p.name, + name: + this.isLinkRule || this.linkEditCamera + ? cameras[i].cameraName + ":" + p.name + : p.name, cameraId: cameras[i].cameraId, }; }); - polygon = polygon.concat(polyOpt); - - this.allPolygonData = polygon; + 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") { + } + //鍦╬ush涔嬪墠,闇�瑕佸垽鏂槸鍚﹂厤缃簡杩欎釜鍙�夐」 鍦╯dk_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) { @@ -645,9 +810,8 @@ 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, @@ -763,7 +927,11 @@ tempObj.sdk_set = defaultArgs.concat(optArgs); tempObj.icon_blob = this.$store.state.newSdk.iconBlob; - this.$emit("getNewSdk", tempObj); + if (this.editSdk) { + this.$emit("getEditSdk", tempObj); + } else { + this.$emit("getNewSdk", tempObj); + } }, }, watch: { -- Gitblit v1.8.0