From 61167e460b5273b05a23854742e3e450e656cd08 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期一, 18 七月 2022 16:08:14 +0800 Subject: [PATCH] 修复国标摄像机配置相关的bug --- src/pages/cameraAccess/components/CameraInfo.vue | 432 ++++++++++++++++++++--------------------------------- 1 files changed, 167 insertions(+), 265 deletions(-) diff --git a/src/pages/cameraAccess/components/CameraInfo.vue b/src/pages/cameraAccess/components/CameraInfo.vue index 00b0eda..4b886b0 100644 --- a/src/pages/cameraAccess/components/CameraInfo.vue +++ b/src/pages/cameraAccess/components/CameraInfo.vue @@ -4,32 +4,17 @@ <el-row> <el-col :span="9"> <el-form-item label="RTSP鍦板潃" :span="11" prop="rtsp"> - <el-input - v-model="form.rtsp" - placeholder="rtsp://" - :disabled="isDisabled" - size="small" - ></el-input> + <el-input v-model="form.rtsp" placeholder="rtsp://" :disabled="isDisabled" size="small"></el-input> </el-form-item> </el-col> <el-col :span="9" :offset="1"> <el-form-item label="鍧愭爣" style="width: 100%"> <label slot="label">鍧愭爣</label> <el-col :span="11"> - <el-input - v-model="form.latitude" - placeholder="缁忓害" - :disabled="isDisabled" - size="small" - ></el-input> + <el-input v-model="form.latitude" placeholder="缁忓害" :disabled="isDisabled" size="small"></el-input> </el-col> <el-col :span="11" :offset="2"> - <el-input - v-model="form.longitude" - placeholder="绾害" - :disabled="isDisabled" - size="small" - ></el-input> + <el-input v-model="form.longitude" placeholder="绾害" :disabled="isDisabled" size="small"></el-input> </el-col> </el-form-item> </el-col> @@ -37,22 +22,12 @@ <el-row> <el-col :span="9"> <el-form-item label="璁惧鍚嶇О" style="width: 100%" prop="name"> - <el-input - v-model="form.name" - placeholder="璇疯緭鍏ヨ澶囧悕绉�" - :disabled="isDisabled" - size="small" - ></el-input> + <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ澶囧悕绉�" :disabled="isDisabled" size="small"></el-input> </el-form-item> </el-col> <el-col :span="9" :offset="1"> <el-form-item label="璁惧鍦板潃" style="width: 100%" prop="addr"> - <el-input - v-model="form.addr" - placeholder="璇疯緭鍏ュ湴鍧�鎻忚堪" - :disabled="isDisabled" - size="small" - ></el-input> + <el-input v-model="form.addr" placeholder="璇疯緭鍏ュ湴鍧�鎻忚堪" :disabled="isDisabled" size="small"></el-input> </el-form-item> </el-col> </el-row> @@ -112,39 +87,20 @@ <el-row v-show="isGb28182"> <el-col :span="9"> <el-form-item label="璁惧鍒悕" style="width: 100%" prop="alias"> - <el-input - v-model="form.alias" - placeholder="璇疯緭鍏ヨ澶囧埆鍚�" - size="small" - ></el-input> + <el-input v-model="form.alias" placeholder="璇疯緭鍏ヨ澶囧埆鍚�" size="small"></el-input> </el-form-item> </el-col> </el-row> <el-row> <!-- 娣诲姞浼犳劅鍣� --> - <CameraInfoEditor - ref="cameraEditor" - :Carmeras="form" - :sensors="sensors" - ></CameraInfoEditor> + <CameraInfoEditor ref="cameraEditor" :Carmeras="form" :sensors="sensors"></CameraInfoEditor> </el-row> <el-row style="padding-top: 15px"> <el-col :span="19" style="text-align: right"> - <el-button - size="small" - type="primary" - @click="onSubmit('addForm')" - :disabled="conDisabled" - >淇濆瓨</el-button - > - <el-button - type="danger" - size="small" - @click="deleteCamera" - v-if="!isAdd" - :disabled="isDisabled" + <el-button size="small" type="primary" @click="onSubmit('addForm')" :disabled="conDisabled">淇濆瓨</el-button> + <el-button type="danger" size="small" @click="deleteCamera" v-if="!isAdd" :disabled="isDisabled" >鍒犻櫎鎽勫儚鏈�</el-button > </el-col> @@ -154,13 +110,7 @@ <input v-model="form.areaid" type="hidden" /> <el-row> <el-col :span="12" style="text-align: right"> - <el-button - size="small" - type="primary" - @click="cameraConnet" - :disabled="conDisabled" - >杩炴帴娴嬭瘯</el-button - > + <el-button size="small" type="primary" @click="cameraConnet" :disabled="conDisabled">杩炴帴娴嬭瘯</el-button> </el-col> </el-row> <el-row style="padding: 15px 0"> @@ -181,18 +131,9 @@ :rtspUrl="videoItem.rtsp" :isRunning="false" :showArea="false" - v-if=" - videoItem !== '' && - videoItem !== undefined && - videoItem !== null && - visibilityState - " + v-if="videoItem !== '' && videoItem !== undefined && videoItem !== null && visibilityState" ></wasm-player> - <video - v-else - poster="/images/cameraAccess/video-poster.png" - preload="none" - ></video> + <video v-else poster="/images/cameraAccess/video-poster.png" preload="none"></video> </el-col> <!-- 绯荤粺杩愯淇℃伅 --> @@ -214,10 +155,7 @@ :style="`width:80%;height:174px;position: relative;left: -12px;`" v-if="PollData.barCharts && PollData.barCharts.length !== 0" > - <eChartsBar - ref="cpuMeneryCharts" - :xAxisData="PollData.barCharts" - ></eChartsBar> + <eChartsBar ref="cpuMeneryCharts" :xAxisData="PollData.barCharts"></eChartsBar> </div> </div> </el-col> @@ -226,21 +164,15 @@ </div> </template> <script> -import { - createCamera, - updateCameraInfo, - getCameraInfo, - getGB28181CameraInfo, - delCamera, -} from "@/api/camera"; -import { getSoundList } from "@/api/event"; +import { createCamera, updateCameraInfo, getCameraInfo, getGB28181CameraInfo, delCamera } from "@/api/camera" +import { getSoundList } from "@/api/event" -import WasmPlayer from "@/components/wasmPlayer"; -import CameraPlayer from "@/components/player"; -import eChartsBar from "@/components/subComponents/eChartsBar"; +import WasmPlayer from "@/components/wasmPlayer" +import CameraPlayer from "@/components/player" +import eChartsBar from "@/components/subComponents/eChartsBar" -import InfoCard from "./infoCard"; -import CameraInfoEditor from "./CameraInfoEditor"; +import InfoCard from "./infoCard" +import CameraInfoEditor from "./CameraInfoEditor" export default { name: "CameraInfo", @@ -249,15 +181,15 @@ WasmPlayer, InfoCard, eChartsBar, - CameraInfoEditor, + CameraInfoEditor }, props: { cameraList: { default: () => { - return []; + return [] }, - type: Array, - }, + type: Array + } }, data() { return { @@ -272,103 +204,95 @@ isAdd: false, addParentId: "", rules: { - name: [ - { required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, - ], - rtsp: [ - { required: true, message: "RTSP鍦板潃涓嶈兘涓虹┖", trigger: "blur" }, - ], - addr: [ - { required: true, message: "璁惧鍦板潃涓嶈兘涓虹┖", trigger: "blur" }, - ], + name: [{ required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }], + rtsp: [{ required: true, message: "RTSP鍦板潃涓嶈兘涓虹┖", trigger: "blur" }], + addr: [{ required: true, message: "璁惧鍦板潃涓嶈兘涓虹┖", trigger: "blur" }] }, resolutionList: [], //浼犳劅鍣ㄥ垪琛� sensors: [], - voice: null, - }; + voice: null + } }, computed: { isSelected() { - return this.TreeDataPool.selectedNode.type !== "4"; + return this.TreeDataPool.selectedNode.type !== "4" }, isGb28182() { - return this.TreeDataPool.selectedNode.cameraType === 1; + return this.TreeDataPool.selectedNode.cameraType === 1 }, isDisabled() { if (this.isGb28182) { - return true; + return true } - return this.isAdd ? false : this.TreeDataPool.selectedNode.type !== "4"; + return this.isAdd ? false : this.TreeDataPool.selectedNode.type !== "4" }, conDisabled() { - return this.isAdd ? false : this.TreeDataPool.selectedNode.type !== "4"; - }, + return this.isAdd ? false : this.TreeDataPool.selectedNode.type !== "4" + } }, mounted() { - this.initFormData(); + this.initFormData() document.addEventListener("visibilitychange", () => { - this.visibilitychange(); - }); - this.getSounds(); + this.visibilitychange() + }) + this.getSounds() this.eventAudio.addEventListener("ended", () => { - this.togglePlay = true; - }); + this.togglePlay = true + }) }, methods: { getSounds() { getSoundList() .then((res) => { if (res.success) { - this.soundList = res.data; + this.soundList = res.data } }) - .catch((e) => console.log(e)); + .catch((e) => console.log(e)) }, selSound(sound) { - this.soundPath = sound.path; - this.form.voiceId = sound.id; - this.togglePlay = true; - this.eventAudio.pause(); + this.soundPath = sound.path + this.form.voiceId = sound.id + this.togglePlay = true + this.eventAudio.pause() // this.eventAudio. }, togglePlayer() { if (!this.soundPath) { this.$notify({ type: "info", - message: "璇峰厛閫夋嫨涓�涓0闊�!", - }); - return false; + message: "璇峰厛閫夋嫨涓�涓0闊�!" + }) + return false } - this.eventAudio.src = this.soundPath; + this.eventAudio.src = this.soundPath if (this.togglePlay) { - this.eventAudio.play(); - this.togglePlay = false; + this.eventAudio.play() + this.togglePlay = false } else { - this.eventAudio.pause(); - this.togglePlay = true; + this.eventAudio.pause() + this.togglePlay = true } // this.togglePlay = !this.togglePlay }, visibilitychange() { switch (document.visibilityState) { case "hidden": - this.visibilityState = false; - break; + this.visibilityState = false + break case "visible": - this.visibilityState = true; - break; + this.visibilityState = true + break } }, selectCamera(node) { - this.isAdd = false; - this.videoItem = null; - this.$refs.addForm.resetFields(); - this.voice = null; - - console.log(node); + this.isAdd = false + this.videoItem = null + this.$refs.addForm.resetFields() + this.voice = null // this.initFormData(); // this.$refs.addForm.clearValidate(); @@ -380,197 +304,176 @@ // console.log(res, '鑾峰彇鎽勫儚鏈轰俊鎭�') if (res.data.resolutions) { let list = res.data.resolutions.map((i) => { - let obj = {}; + let obj = {} if (i.width == 0 && i.height == 0) { - obj.label = "鏈満鍒嗚鲸鐜�"; - obj.value = "0*0"; + obj.label = "鏈満鍒嗚鲸鐜�" + obj.value = "0*0" } else { - obj.label = i.width + "*" + i.height; - obj.value = i.width + "*" + i.height; + obj.label = i.width + "*" + i.height + obj.value = i.width + "*" + i.height } - return obj; - }); - this.resolutionList = list; - this.sensors = res.data.sensors; - console.log(list); + return obj + }) + this.resolutionList = list + this.sensors = res.data.sensors } this.$nextTick(() => { - this.initFormData(); - Object.assign(this.form, res.data); + this.initFormData() + Object.assign(this.form, res.data) this.soundList.forEach((element) => { if (this.form.voiceId == element.id) { - this.voice = element; + this.voice = element } - }); + }) if (this.form.run_type !== -1) { - this.form.isAI = true; + this.form.isAI = true } else { - this.form.isAI = false; + this.form.isAI = false } - this.form.resolution = - this.form.resolution_width + - "*" + - this.form.resolution_height; - }); + this.form.resolution = this.form.resolution_width + "*" + this.form.resolution_height + }) } - }); + }) } else { getCameraInfo(node.id).then((res) => { if (res.success) { // console.log(res, '鑾峰彇鎽勫儚鏈轰俊鎭�') if (res.data.resolutions) { let list = res.data.resolutions.map((i) => { - let obj = {}; + let obj = {} if (i.width == 0 && i.height == 0) { - obj.label = "鏈満鍒嗚鲸鐜�"; - obj.value = "0*0"; + obj.label = "鏈満鍒嗚鲸鐜�" + obj.value = "0*0" } else { - obj.label = i.width + "*" + i.height; - obj.value = i.width + "*" + i.height; + obj.label = i.width + "*" + i.height + obj.value = i.width + "*" + i.height } - return obj; - }); - this.resolutionList = list; - this.sensors = res.data.sensors; - console.log(list); + return obj + }) + this.resolutionList = list + this.sensors = res.data.sensors } this.$nextTick(() => { - this.initFormData(); - Object.assign(this.form, res.data); + this.initFormData() + Object.assign(this.form, res.data) this.soundList.forEach((element) => { if (this.form.voiceId == element.id) { - this.voice = element; + this.voice = element } - }); + }) if (this.form.run_type !== -1) { - this.form.isAI = true; + this.form.isAI = true } else { - this.form.isAI = false; + this.form.isAI = false } - this.form.resolution = - this.form.resolution_width + - "*" + - this.form.resolution_height; - }); + this.form.resolution = this.form.resolution_width + "*" + this.form.resolution_height + }) } - }); + }) } } }, // 淇濆瓨 onSubmit(formName) { - let list = this.$refs.cameraEditor.getResult(); + let list = this.$refs.cameraEditor.getResult() this.$refs[formName].validate(async (valid) => { if (valid) { - const isRequire = this.verifyRequrie(); - if (!isRequire) return false; + const isRequire = this.verifyRequrie() + if (!isRequire) return false - this.form.latitude = Number.isNaN(parseFloat(this.form.latitude)) - ? 0 - : parseFloat(this.form.latitude); - this.form.longitude = Number.isNaN(parseFloat(this.form.longitude)) - ? 0 - : parseFloat(this.form.longitude); - this.form.sensors = list; - this.form.resolution_width = Number( - this.form.resolution.split("*")[0] - ); - this.form.resolution_height = Number( - this.form.resolution.split("*")[1] - ); - let _this = this; + this.form.latitude = Number.isNaN(parseFloat(this.form.latitude)) ? 0 : parseFloat(this.form.latitude) + this.form.longitude = Number.isNaN(parseFloat(this.form.longitude)) ? 0 : parseFloat(this.form.longitude) + this.form.sensors = list + this.form.resolution_width = Number(this.form.resolution.split("*")[0]) + this.form.resolution_height = Number(this.form.resolution.split("*")[1]) + let _this = this // 鏇存柊 if (this.form.id !== "") { - this.form.areaid = this.TreeDataPool.getParent( - this.form.id, - this.isGb28182 - ); - console.log(this.TreeDataPool.selectedNode); + this.form.areaid = this.TreeDataPool.getParent(this.form.id, this.isGb28182) updateCameraInfo(this.form) .then((rsp) => { if (rsp.success) { this.$notify({ type: "success", - message: "鎽勫儚鏈轰俊鎭慨鏀规垚鍔燂紒", - }); - this.TreeDataPool.fetchTreeData(); - console.log(this.TreeDataPool.selectedNode); + message: "鎽勫儚鏈轰俊鎭慨鏀规垚鍔燂紒" + }) + this.TreeDataPool.fetchTreeData() //_this.$root.$children[0].$refs['leftTree'].$refs.tree.ztreeObj.checkNode(_this.TreeDataPool.selectedNode, true, false, false); //閫変腑淇敼鍚庣殑鑺傜偣 - let { evt, treeId } = - _this.$root.$children[0].$refs["leftTree"].$refs.tree; - console.log(evt, treeId); + // let { evt, treeId } = + // _this.$root.$children[0].$refs["leftTree"].$refs.tree; + // console.log(evt, treeId); // this.$nextTick(()=>{ //_this.$root.$children[0].$refs['leftTree'].$refs.tree.handleCreated() // }) } else { - this.selectCamera(this.TreeDataPool.selectedNode); + this.selectCamera(this.TreeDataPool.selectedNode) this.$notify({ type: "error", - message: "鎽勫儚鏈轰俊鎭慨鏀瑰け璐ワ紒", - }); + message: "鎽勫儚鏈轰俊鎭慨鏀瑰け璐ワ紒" + }) } }) .catch((err) => { this.$notify({ type: "error", - message: err.msg, - }); - }); + message: err.msg + }) + }) } else { - this.form.areaid = this.addParentId; + this.form.areaid = this.addParentId createCamera(this.form) .then((rsp) => { if (rsp.success) { this.$notify({ type: "success", - message: "鎽勫儚鏈烘坊鍔犳垚鍔燂紒", - }); - this.TreeDataPool.selectedNode = rsp.data; - this.TreeDataPool.fetchTreeData(); + message: "鎽勫儚鏈烘坊鍔犳垚鍔燂紒" + }) + this.TreeDataPool.selectedNode = rsp.data + this.TreeDataPool.fetchTreeData() // 鍚庣杩斿洖缁撴灉涓�0锛屾煡璇㈠悗涓�4 - this.TreeDataPool.selectedNode.type = "4"; - this.selectCamera(this.TreeDataPool.selectedNode); + this.TreeDataPool.selectedNode.type = "4" + this.selectCamera(this.TreeDataPool.selectedNode) } else { this.$notify({ type: "error", - message: "鎽勫儚鏈烘坊鍔犲け璐ワ紒", - }); + message: "鎽勫儚鏈烘坊鍔犲け璐ワ紒" + }) } }) .catch((err) => { this.$notify({ type: "error", - message: err.msg, - }); - }); + message: err.msg + }) + }) } } - }); + }) }, // 杩炴帴娴嬭瘯 cameraConnet() { - this.videoItem = null; + this.videoItem = null this.$nextTick(() => { this.videoItem = { name: this.form.name, rtsp: this.form.rtsp, id: this.form.id, isRunning: this.form.run_enable, - cameraType: this.form.type, - }; - }); + cameraType: this.form.type + } + }) }, // * 楠岃瘉蹇呴�夐」 verifyRequrie() { if (this.isGb28182) { - return true; + return true } // const rtspReg = /^(rtsp:\/\/)([a-zA-Z0-9_]+):([a-zA-Z0-9_]+)@(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])(\/)([a-zA-Z0-9_/]+)$/; // !rtspReg.test(this.form.rtsp @@ -578,36 +481,36 @@ if (this.form.rtsp === "") { this.$notify({ type: "warning", - message: "璇疯緭鍏ユ纭殑rtsp鍦板潃", - }); - return false; + message: "璇疯緭鍏ユ纭殑rtsp鍦板潃" + }) + return false } - return true; + return true }, // 鍒犻櫎鎽勫儚鏈� deleteCamera() { this.$confirm("鏄惁鍒犻櫎姝ゆ憚鍍忔満锛�", { center: true, cancelButtonClass: "comfirm-class-cancle", - confirmButtonClass: "comfirm-class-sure", + confirmButtonClass: "comfirm-class-sure" }).then(() => { delCamera(this.form.id).then((res) => { if (res.success) { - this.initFormData(); + this.initFormData() this.$notify({ type: "success", - message: "鍒犻櫎鎴愬姛锛�", - }); - this.TreeDataPool.fetchTreeData(); - this.TreeDataPool.selectedNode = {}; + message: "鍒犻櫎鎴愬姛锛�" + }) + this.TreeDataPool.fetchTreeData() + this.TreeDataPool.selectedNode = {} } else { this.$notify({ type: "error", - message: "鍒犻櫎澶辫触锛�", - }); + message: "鍒犻櫎澶辫触锛�" + }) } - }); - }); + }) + }) }, // 娓呯┖杈撳叆妗� initFormData() { @@ -629,32 +532,31 @@ password: "", resolution: "", voiceId: "", - voiceEnable: false, - }; + voiceEnable: false + } }, // 娣诲姞璁惧 addDevice(node) { - console.log("1111"); - this.isAdd = true; - this.addParentId = node; + this.isAdd = true + this.addParentId = node this.resolutionList = [ { label: "鏈満鍒嗚鲸鐜�", - value: "0*0", + value: "0*0" }, { label: "1920*1080", - value: "1920*1080", + value: "1920*1080" }, { label: "2688*1520", - value: "2688*1520", - }, - ]; - this.initFormData(); - }, - }, -}; + value: "2688*1520" + } + ] + this.initFormData() + } + } +} </script> <style lang="scss"> @@ -706,4 +608,4 @@ height: 450px; } } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0