From ccee429d379e0108b7445f72ade8d97c110a6fb3 Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期二, 09 十一月 2021 18:01:59 +0800 Subject: [PATCH] 问题修复 --- src/pages/cameraAccess/components/scene/Editor.vue | 253 +++++++++++++++++++++++++++++++------------------- 1 files changed, 156 insertions(+), 97 deletions(-) diff --git a/src/pages/cameraAccess/components/scene/Editor.vue b/src/pages/cameraAccess/components/scene/Editor.vue index 7ddb8a9..ae96008 100644 --- a/src/pages/cameraAccess/components/scene/Editor.vue +++ b/src/pages/cameraAccess/components/scene/Editor.vue @@ -23,7 +23,7 @@ :class="{ init: index == 0 }" v-cloak v-for="(sdkItem, index) in sdkGroup" - :key="sdkItem.id" + :key="index" > <div class="connection" v-if="index !== 0"> <el-select @@ -32,12 +32,19 @@ placeholder="閫夊叧绯�" @change="selConnection(sdkItem)" > - <el-option value="&&" title="and/涓�" label="and/涓�"></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 == '=>'" + v-show="sdkItem.rule_with_pre == '=>' || sdkItem.rule_with_pre == '!=>'" v-model="sdkItem.is_save_anyhow" style="margin-left:30px" >淇濆瓨杩囩▼鏁版嵁</el-checkbox> @@ -99,7 +106,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 +155,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" @@ -213,6 +233,7 @@ ></el-input>--> <el-select + :disabled="optArgItem.operators.length==1" v-model="optArgItem.operator" size="mini" @change="selOperator(optArgItem)" @@ -338,7 +359,6 @@ watch: { Cameras: { handler(n, o) { - debugger let polygon = [] let cameras = [...n] @@ -358,7 +378,6 @@ this.allPolygonData = polygon //娣诲姞鍦烘櫙鍒濆鍖栧尯鍩熼�夐」涓�'鍏ㄩ儴鍖哄煙' - debugger // if (polygon.length > 0 && this.ruleList == '') { // this.polygonObj = polygon[0] // this.sdkGroup[0].polygonObj = JSON.parse( @@ -374,22 +393,14 @@ sdkGroup: { handler(newV, oldV) { if (newV) { - debugger + newV.forEach(sdk => { let rangeOne = sdk.defaultArg.find( arg => arg.operators[0].operator == 'range' ) 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; } @@ -414,30 +425,16 @@ }, deep: true } - // ruleList: { - // handler(newVal, oldVal) { - // debugger - // this.editHandle(newVal) - // } - // } }, mounted() { this.TaskMange.findAllSdk({ installed: true }) - //this.TaskMange.list1 = sdkJson.data; //this.editHandle(this.ruleList) }, data() { return { - // rule: { - // sdk_id:'', - // sdkObj: {}, - // polygonObj: {}, - // argDef: [] - // }, hideDel: true, - //isAddable: true, allPolygonData: [], group_id: '', baseSdkItem: { @@ -518,8 +515,17 @@ } }, methods: { + getSdkConnection() { + this.sdkConnects = this.VideoManageData.Dictionary['RULECOMPUTEBETWEEN'].map(r => { + + return { + name: r.name, + value: r.value + } + }); + }, selConnection(sdkItem) { - debugger + }, addSdkItem() { @@ -528,9 +534,9 @@ itemTemp.polygonObj = JSON.parse(JSON.stringify(this.allPolygonData[0])) this.selectPolygonOption(itemTemp) this.sdkGroup.push(itemTemp) + }, delConfigItem(index) { - debugger // if(index != 0){ // this.sdkGroup.splice(index,1); // }else{ @@ -560,7 +566,6 @@ this.sdkGroup[index].isSpread = !this.sdkGroup[index].isSpread }, addOptionalArg(sdkItem) { - debugger sdkItem.initAddOptional = false sdkItem.optArg.forEach(arg => { sdkItem.optNames.forEach(name => { @@ -591,6 +596,10 @@ this.setOptArgValueOptions(copyArgTemp) } + //榛樿閫変腑绗竴涓猳perator + //if (copyArgTemp.operators.length == 1) { + this.$set(copyArgTemp, 'operator', copyArgTemp.operators[0].operator) + //} if (copyArgTemp.default_value) { this.$set(copyArgTemp, 'sdk_arg_value', copyArgTemp.default_value) @@ -618,7 +627,7 @@ } }, selOptionalArg(sdkItem, optArgItem) { - debugger + let newSort = 0 sdkItem.optNames.forEach(name => { if (name.name == optArgItem.name) { @@ -635,7 +644,10 @@ if (argObj.type == 'option') { this.setOptArgValueOptions(argObj); } - debugger + //榛樿閫変腑绗竴涓猳perator + //if (argObj.operators.length == 1) { + this.$set(argObj, 'operator', argObj.operators[0].operator) + //} //鏇挎崲鏂扮殑鍙傛暟閰嶇疆瀵硅薄 sdkItem.optArg.forEach((arg, index) => { if (arg.sort == optArgItem.sort) { @@ -643,11 +655,10 @@ } }) - 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, @@ -656,7 +667,7 @@ }); }, validateArgVal(sdkArgItem, e) { - debugger + if (typeof (sdkArgItem.sdk_arg_value) == 'string' && sdkArgItem.sdk_arg_value == '') { this.$notify({ type: 'warning', @@ -676,7 +687,7 @@ let res = sdkArgItem.range.match(reg) let min = Number(res[1]), max = Number(res[2]) - debugger + //鍒ゆ柇闈炲尯闂寸被 if (sdkArgItem.sdk_arg_value && sdkArgItem.operator != 'range') { @@ -810,7 +821,7 @@ this.valideArgValue(rule) }, selectPolygonOption(rule) { - debugger + rule.polygon_id = rule.polygonObj.polygonId ? rule.polygonObj.polygonId : rule.polygon_id @@ -821,11 +832,10 @@ }, //閫夋嫨绠楁硶 resetArgs涓簍rue鏄坊鍔犱负false鏄垵濮嬪寲缂栬緫 selectSDKOption(sdkItem, resetArgs) { - debugger + //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 @@ -837,12 +847,15 @@ if (arg.operators[0].operator == 'range') { //鍖洪棿鍊肩殑澶勭悊 - debugger + //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') { + this.setOptArgValueOptions(arg) + } if (arg.default_value) { //arg.sdk_arg_value = arg.default_value this.$set(arg, 'sdk_arg_value', arg.default_value) @@ -858,14 +871,14 @@ sort: arg.sort, isSelected: false })) - debugger + sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false sdkItem.optArg = [] } //娣诲姞鍦烘櫙鏃�,濡傛灉鍦烘櫙鍚嶇О涓虹┖,灏卞皢閫夋嫨鐨勭涓�涓畻娉曞悕鍚屾鍒板満鏅悕绉� if (this.sdkGroup[0] && resetArgs) { - debugger + this.$emit('sdkNameChange', this.sdkGroup[0].sdkObj.sdk_name) } @@ -897,7 +910,7 @@ }, //閫夋嫨绠楁硶閰嶇疆 selOperator(rule) { - debugger + }, selectArgsOption(rule, resetArgValue) { // rule.operator_type = ""; @@ -1087,14 +1100,12 @@ this.groupRules.splice(index + 1, 0, newRule) }, editHandle(ruleTxt) { - debugger + this.getSdkConnection(); // if (ruleTxt.length < 1) { // return // } let ruleInfo = JSON.parse(ruleTxt); - debugger; - //let ruleInfo = JSON.parse(ruleTxt) this.editRule(ruleInfo) // 濡傛灉鏄仈鍔ㄤ换鍔�, 鏌ヨ鑱斿姩鎽勫儚鏈哄垪琛�, 灏嗘爲閫変腑鐨勫垪琛ㄦ洿鏀逛负璇ユ潯瑙勫垯鎵�闇�瑕佺殑鎽勫儚鏈�, 骞跺浠藉綋鍓嶇殑閫変腑鐘舵��, 瑙勫垯淇濆瓨鍚庢仮澶� // if (this.isLinkRule) { @@ -1114,27 +1125,12 @@ // } }, editRule(ruleGroup) { - debugger + this.sdkGroup = [] this.group_id = '' - // this.sdkGroup = ruleGroup; - // sdkGroup: [ - // { - // sdkObj: {}, - // polygonObj: {}, - // is_save_anyhow: true, - // isSpread: true, - // argDef: [], - // initAddOptional: false, - // defaultArg: [], - // optionalArg: [], - // optArg: [], - // optNames: [] - // } - // ], ruleGroup.forEach(rule => { - debugger + let tempObj = {} if (rule.group_id && rule.group_id != '') { @@ -1172,6 +1168,7 @@ 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) @@ -1182,10 +1179,10 @@ } }) if (optItem) { - if (optItem.operators.length > 1) { - optItem.operator = arg.operator - //this.selOperator(optItem) - } + //if (optItem.operators.length > 1) { + optItem.operator = arg.operator + //this.selOperator(optItem) + //} //璧嬪�� optItem.sdk_arg_value = arg.sdk_arg_value @@ -1199,15 +1196,28 @@ 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) { + + if (arg.sdk_arg_value.indexOf('|') > 0) { //鍖洪棿鍊� - d.min = arg.sdk_arg_value.split(',')[0]; - d.max = arg.sdk_arg_value.split(',')[1]; + 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 } @@ -1243,7 +1253,6 @@ tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0 ? true : false; - debugger //鍥炴樉鏄惁鏄剧ず鍙�夊弬鏁版坊鍔犳寜閽� if (tempObj.optArg.length < tempObj.optionalArg.length) { tempObj.isAddable = true; @@ -1251,7 +1260,7 @@ tempObj.isAddable = false; } //this.selectSDKOption(tempObj, false) - debugger + this.sdkGroup.push(tempObj) //璁剧疆绠楁硶 }) @@ -1282,7 +1291,7 @@ .catch(() => { }) }, submitRule() { - debugger + let groupRule = { rules: [] } let group_text = '' @@ -1303,17 +1312,38 @@ } else { //鏍¢獙蹇呭~椤� let undefinished = this.sdkGroup.some((sdk, index) => { - debugger + //娌℃湁閰嶇疆绠楁硶 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) { + arg.sdk_arg_value = arg.default_value + } + }) //琛ㄥ崟鎻愪氦鍓嶆牎楠�:鎵�鏈夌畻娉曠殑鍙傛暟鍊间笉鑳戒负绌�,(鏈塺ange鐨�,瑕佸湪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 } @@ -1326,7 +1356,7 @@ } else { //鍖洪棿绫诲弬鏁板�兼渶灏�,鏈�澶у�兼槸鍚﹂兘璁剧疆 if (arg.operator == 'range') { - debugger + if (!arg.min.trim() && arg.max.trim()) { return arg } @@ -1367,9 +1397,9 @@ } //鏍¢獙鑻ョ畻娉曞叧绯讳负瑙﹀彂,鍒欑畻娉曞悕涓嶈兘閲� let sameSdk = this.sdkGroup.some((sdk, index) => { - debugger - if (sdk.index != 0 && sdk.rule_with_pre == '=>') { - debugger + + if (sdk.index != 0 && (sdk.rule_with_pre == '=>' || sdk.rule_with_pre == '!=>')) { + if (sdk.sdkObj.id == this.sdkGroup[index - 1].sdkObj.id) { return sdk } @@ -1409,20 +1439,44 @@ 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 + 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.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); @@ -1446,7 +1500,6 @@ let val = ''; let valRange = ''; - //澶勭悊涓嬫媺閫夊�肩被鍨� if (arg.type == 'option') { if (arg.sdk_arg_value instanceof Array) { @@ -1465,16 +1518,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) @@ -1493,11 +1550,14 @@ case '=>': rule_with_pre = ' -> ' break + case '!=>': + rule_with_pre = ' !-> ' + break default: rule_with_pre = '' } } - debugger; + ; group_text += `${rule_with_pre ? "<br/>" + rule_with_pre + "<br/>" : ""} <span style="background-color:RGB(183,183,183);">${ sdk.sdkObj.sdk_name }</span> ${ @@ -1513,9 +1573,8 @@ group_text.substring(0, group_text.length - 3) + group_text.substring(group_text.length - 2, group_text.length) } - debugger + }) - console.log(group_text) } groupRule.text = group_text -- Gitblit v1.8.0