diff --git a/src/views/realTimeMonitor/components/setChannel/setChannelDialog copy.vue b/src/views/realTimeMonitor/components/setChannel/setChannelDialog copy.vue new file mode 100644 index 0000000..5fadc81 --- /dev/null +++ b/src/views/realTimeMonitor/components/setChannel/setChannelDialog copy.vue @@ -0,0 +1,1738 @@ + + + diff --git a/src/views/realTimeMonitor/components/setChannel/setChannelDialog.vue b/src/views/realTimeMonitor/components/setChannel/setChannelDialog.vue index b3042e2..249c2b1 100644 --- a/src/views/realTimeMonitor/components/setChannel/setChannelDialog.vue +++ b/src/views/realTimeMonitor/components/setChannel/setChannelDialog.vue @@ -504,9 +504,9 @@ export default { channelsetLoading: false, isShow: false, channelList: [], //通道列表 + selectChannel: "", //通道选中 imageSizeOption: [{}], channelForm: { - selectChannel: "", //通道选中 templateVal: 2, //模板选中 usbchecked: false, //usb摄像头 resolutionCX: "", //图片尺寸X @@ -536,6 +536,7 @@ export default { lbosd: "", //水印 rbosd: "", //水印 }, + originalChannelForm: {}, // 用于存储 channelForm 的初始值 moreForm: [ { parmasName: "", @@ -862,6 +863,10 @@ export default { parmaresult: [], //填写的参数组成想要的内容 configNum: 26, resultJson: "", + searchNum: 0, + searchTimer: null, + setNum: 0, + setTimer: null, }; }, computed: { @@ -875,7 +880,21 @@ export default { if (this.channelForm.afchecked) val |= 4; return val; }, + // 计算属性,返回已更改的字段对象 + changedChannelFields() { + const changes = {}; + for (const key in this.channelForm) { + if ( + this.channelForm.hasOwnProperty(key) && + this.channelForm[key] !== this.originalChannelForm[key] + ) { + changes[key] = this.channelForm[key]; + } + } + return changes; + }, }, + created() {}, mounted() {}, methods: { //获取通道 @@ -888,11 +907,9 @@ export default { Number(localStorage.getItem("channelId")) == -1 || Number(localStorage.getItem("channelId")) == 0 ) { - this.channelForm.selectChannel = this.channelList[0].channelid; + this.selectChannel = this.channelList[0].channelid; } else { - this.channelForm.selectChannel = Number( - localStorage.getItem("channelId") - ); + this.selectChannel = Number(localStorage.getItem("channelId")); } console.log(this.channelList); this.changeChannel(); @@ -901,17 +918,14 @@ export default { }, //修改通道 changeChannel() { - console.log(this.channelForm.selectChannel); - if (this.channelForm.selectChannel == 1) { + console.log(this.selectChannel); + if (this.selectChannel == 1) { this.channelForm.resolutionCX = 5376; this.channelForm.resolutionCY = 3024; - } else if ( - this.channelForm.selectChannel == 2 || - this.channelForm.selectChannel == 3 - ) { + } else if (this.selectChannel == 2 || this.selectChannel == 3) { this.channelForm.resolutionCX = 1920; this.channelForm.resolutionCY = 1080; - } else if (this.channelForm.selectChannel == 4) { + } else if (this.selectChannel == 4) { this.channelForm.resolutionCX = 2048; this.channelForm.resolutionCY = 1536; } @@ -987,8 +1001,7 @@ export default { }, { name: "path", - value: - "data/channels/" + this.channelForm.selectChannel + ".json", + value: "data/channels/" + this.selectChannel + ".json", }, ]; console.log(params); @@ -1095,6 +1108,9 @@ export default { } this.channelForm.videoDuration = resultContent.videoDuration; this.channelForm.templateVal = resultContent.requestTemplate; + this.originalChannelForm = JSON.parse( + JSON.stringify(this.channelForm) + ); } else { } this.$message({ @@ -1122,20 +1138,119 @@ export default { //点击确定 handleConfim(flag) { this.channelsetLoading = true; - console.log(this.moreForm); - this.configNum = 26 + this.moreForm.length; - console.log(this.configNum); + console.log(this.channelForm); + console.log(this.changedChannelFields); // 查看哪些字段被更改了 let result = []; + //定义上面写好的内容 + let configResult = [ + { name: "name1", value: "wait3ALocked" }, + { name: "value1", value: this.waite3alockVal }, + { name: "type1", value: 0 }, + ]; + let index = 2; + for (const [key, value] of Object.entries(this.changedChannelFields)) { + if (key == "ltosd") { + configResult.push({ name: `name${index}`, value: `osd.leftTop` }); + } else if (key == "rtosd") { + configResult.push({ name: `name${index}`, value: `osd.rightTop` }); + } else if (key == "lbosd") { + configResult.push({ name: `name${index}`, value: `osd.leftBottom` }); + } else if (key == "rbosd") { + configResult.push({ name: `name${index}`, value: `osd.rightBottom` }); + } else if (key == "templateVal") { + configResult.push({ name: `name${index}`, value: `requestTemplate` }); + } else if (key == "usbchecked") { + configResult.push({ name: `name${index}`, value: `usbCamera` }); + } else if (key == "resolutionCX") { + configResult.push({ name: `name${index}`, value: `resolutionCX` }); + } else if (key == "resolutionCY") { + configResult.push({ name: `name${index}`, value: `resolutionCY` }); + } else if (key == "videoCX") { + configResult.push({ name: `name${index}`, value: `videocX` }); + } else if (key == "videocY") { + configResult.push({ name: `name${index}`, value: `videoCY` }); + } else if (key == "videoDuration") { + configResult.push({ name: `name${index}`, value: `videoDuration` }); + } else if (key == "ysl") { + configResult.push({ name: `name${index}`, value: `quality` }); + } else if (key == "isImageZoomEnabled") { + configResult.push({ name: `name${index}`, value: `zoom` }); + } else if (key == "zoomVal") { + configResult.push({ name: `name${index}`, value: `zoomRatio` }); + } else if (key == "modelVal") { + configResult.push({ name: `name${index}`, value: `sceneMode` }); + } else if (key == "gmkzchecked") { + configResult.push({ name: `name${index}`, value: `ldrEnabled` }); + } else if (key == "zdbgchecked") { + configResult.push({ name: `name${index}`, value: `autoExposure` }); + } else if (key == "bgsi") { + configResult.push({ name: `name${index}`, value: `exposureTime` }); + } else if (key == "expsTimeUs") { + configResult.push({ name: `name${index}`, value: `expsTimeUs` }); + } else if (key == "iso") { + configResult.push({ name: `name${index}`, value: `sensitivity` }); + } else if (key == "compensationVal") { + configResult.push({ name: `name${index}`, value: `compensation` }); + } else if (key == "zzdjchecked") { + configResult.push({ name: `name${index}`, value: `autoFocus` }); + } else if (key == "awbMode") { + configResult.push({ name: `name${index}`, value: `awbMode` }); + } else if (key == "roteval") { + configResult.push({ name: `name${index}`, value: `orientation` }); + } else if (key == "aival") { + configResult.push({ name: `name${index}`, value: `recognization` }); + } else { + configResult.push({ name: `name${index}`, value: key }); + } + + // 判断并处理值的类型 + let type; + if (typeof value === "string") { + type = 1; // 字符串 + } else if (typeof value === "number") { + if (Number.isInteger(value)) { + type = 0; // 整数 + } else { + type = 2; // 浮点数 + } + } else if (typeof value === "boolean") { + // 布尔值特殊处理为整数0或1 + configResult.push({ name: `value${index}`, value: value ? 1 : 0 }); + configResult.push({ name: `type${index}`, value: 0 }); // 布尔值视为整数处理,但type为0可能不够准确,这里保留原样 + index++; // 由于已经添加了value和type,所以索引递增 + continue; // 跳过当前循环的剩余部分 + } + // 对于非布尔值,添加value和type + configResult.push({ name: `value${index}`, value: value }); + configResult.push({ name: `type${index}`, value: type }); + index++; + } + console.log(configResult); + console.log("我是config", configResult); + let moreResult = []; this.moreForm.forEach((param, index) => { - let baseIndex = 26 + index + 1; // 计算每个参数的起始索引 + let baseIndex = configResult.length + index + 1; // 计算每个参数的起始索引 // 添加 name - result.push({ name: `name${baseIndex}`, value: param.parmasName }); - // 添加 value - result.push({ name: `value${baseIndex}`, value: param.parmasValue }); - // 添加 type - result.push({ name: `type${baseIndex}`, value: param.parmasType }); + if (param.parmasName && param.parmasValue) { + moreResult.push({ + name: `name${baseIndex}`, + value: param.parmasName, + }); + // 添加 value + moreResult.push({ + name: `value${baseIndex}`, + value: param.parmasValue, + }); + // 添加 type + moreResult.push({ + name: `type${baseIndex}`, + value: param.parmasType, + }); + } }); - console.log(result); + console.log("我是more", moreResult); + result = [...configResult, ...moreResult]; + console.log("我是最后的", result); getTermStatus({ termId: this.areaData.id }).then((res) => { console.log(res); if (res.data.isonline) { @@ -1162,133 +1277,12 @@ export default { }, { name: "path", - value: - "data/channels/" + this.channelForm.selectChannel + ".json", + value: "data/channels/" + this.selectChannel + ".json", }, { name: "configs", - value: this.configNum, + value: result.length / 3, }, - { name: "name1", value: "resolutionCX" }, - { name: "value1", value: this.channelForm.resolutionCX }, - { name: "type1", value: 0 }, - - { name: "name2", value: "resolutionCY" }, - { name: "value2", value: this.channelForm.resolutionCY }, - { name: "type2", value: 0 }, - - { name: "name3", value: "quality" }, - { name: "value3", value: this.channelForm.ysl }, - { name: "type3", value: 0 }, - - { name: "name4", value: "usbCamera" }, - { name: "value4", value: this.channelForm.usbchecked ? 1 : 0 }, - { name: "type4", value: 0 }, - - { name: "name5", value: "autoFocus" }, - { name: "value5", value: this.channelForm.zzdjchecked ? 1 : 0 }, - { name: "type5", value: 0 }, - - { name: "name6", value: "autoExposure" }, - { name: "value6", value: this.channelForm.zdbgchecked ? 1 : 0 }, - { name: "type6", value: 0 }, - - { name: "name7", value: "exposureTime" }, - { name: "value7", value: this.channelForm.bgsj }, - { name: "type7", value: 0 }, - - { name: "name8", value: "sensitivity" }, - { name: "value8", value: this.channelForm.iso }, - { name: "type8", value: 0 }, - - { name: "name9", value: "sceneMode" }, - { name: "value9", value: this.channelForm.modelVal }, - { name: "type9", value: 0 }, - - { name: "name10", value: "orientation" }, - { name: "value10", value: this.channelForm.roteval }, - { name: "type10", value: 0 }, - - { name: "name11", value: "recognization" }, - { name: "value11", value: this.channelForm.aival }, - { name: "type11", value: 0 }, - - { name: "name12", value: "osd.leftTop" }, - { - name: "value12", - value: - this.channelForm.ltosd == null ? "" : this.channelForm.ltosd, - }, - { name: "type12", value: 1 }, - - { name: "name13", value: "osd.rightTop" }, - { - name: "value13", - value: - this.channelForm.rtosd == null ? "" : this.channelForm.rtosd, - }, - { name: "type13", value: 1 }, - - { name: "name14", value: "osd.leftBottom" }, - { - name: "value14", - value: - this.channelForm.lbosd == null ? "" : this.channelForm.lbosd, - }, - { name: "type14", value: 1 }, - - { name: "name15", value: "osd.rightBottom" }, - { - name: "value15", - value: - this.channelForm.rbosd == null ? "" : this.channelForm.rbosd, - }, - { name: "type15", value: 1 }, - //视频分辨率 - - { name: "name16", value: "videoCX" }, - { name: "value16", value: this.channelForm.videoCX }, - { name: "type16", value: 0 }, - - { name: "name17", value: "videoCY" }, - { name: "value17", value: this.channelForm.videoCY }, - { name: "type17", value: 0 }, - //视频时长 - { name: "name18", value: "videoDuration" }, - { name: "value18", value: this.channelForm.videoDuration }, - { name: "type18", value: 0 }, - //图片放大 - { name: "name19", value: "zoom" }, - { name: "value19", value: this.channelForm.isImageZoomEnabled }, - { name: "type19", value: 0 }, - //放大倍数 - { name: "name20", value: "zoomRatio" }, - { name: "value20", value: this.channelForm.zoomVal }, - { name: "type20", value: 2 }, - //compensation - { name: "name21", value: "compensation" }, - { name: "value21", value: this.channelForm.compensationVal }, - { name: "type21", value: 0 }, - //光敏控制 - { name: "name22", value: "ldrEnabled" }, - { name: "value22", value: this.channelForm.gmkzchecked ? 1 : 0 }, - { name: "type22", value: 0 }, - //模板template - { name: "name23", value: "requestTemplate" }, - { name: "value23", value: this.channelForm.templateVal }, - { name: "type23", value: 0 }, - //曝光时间 - { name: "name24", value: "expsTimeUs" }, - { name: "value24", value: this.channelForm.expsTimeUs }, - { name: "type24", value: 0 }, - //wait3Lock - { name: "name25", value: "wait3ALocked" }, - { name: "value25", value: this.waite3alockVal }, - { name: "type25", value: 0 }, - //awbMode - { name: "name26", value: "awbMode" }, - { name: "value26", value: this.channelForm.awbMode }, - { name: "type26", value: 0 }, ]; console.log(params); console.log("我是", result); @@ -1336,6 +1330,7 @@ export default { if (flag) { this.isShow = false; } + this.$message({ duration: 1500, showClose: true, diff --git a/src/views/realTimeMonitor/components/setschedule.vue b/src/views/realTimeMonitor/components/setschedule.vue index 99424e7..9b7a757 100644 --- a/src/views/realTimeMonitor/components/setschedule.vue +++ b/src/views/realTimeMonitor/components/setschedule.vue @@ -907,7 +907,15 @@ export default { }, ]; console.log(params); - this.setTermFnRule(params); + this.$confirm("确定要删除拍照时间表吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + this.setTermFnRule(params); + }) + .catch(() => {}); } else { this.$message({ duration: 1500,