From 3e998850b5c4af147a60ed0b86b47379fc9eb1f2 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期四, 16 六月 2022 15:42:33 +0800
Subject: [PATCH] bei bei ke
---
src/pages/cameraAccess/components/CameraInfo.vue | 463 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 298 insertions(+), 165 deletions(-)
diff --git a/src/pages/cameraAccess/components/CameraInfo.vue b/src/pages/cameraAccess/components/CameraInfo.vue
index 72cec9a..00b0eda 100644
--- a/src/pages/cameraAccess/components/CameraInfo.vue
+++ b/src/pages/cameraAccess/components/CameraInfo.vue
@@ -4,11 +4,16 @@
<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%;">
+ <el-form-item label="鍧愭爣" style="width: 100%">
<label slot="label">鍧愭爣</label>
<el-col :span="11">
<el-input
@@ -31,23 +36,33 @@
</el-row>
<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-form-item label="璁惧鍚嶇О" style="width: 100%" prop="name">
+ <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-form-item label="璁惧鍦板潃" style="width: 100%" prop="addr">
+ <el-input
+ v-model="form.addr"
+ placeholder="璇疯緭鍏ュ湴鍧�鎻忚堪"
+ :disabled="isDisabled"
+ size="small"
+ ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="9">
- <el-form-item label="澶勭悊鍒嗚鲸鐜�" style="width:100%">
+ <el-form-item label="澶勭悊鍒嗚鲸鐜�" style="width: 100%">
<el-select
v-model="form.resolution"
placeholder="鏈満鍒嗚鲸鐜�"
- style="position: absolute;left: 0;"
+ style="position: absolute; left: 0"
size="small"
>
<el-option
@@ -61,7 +76,7 @@
</el-col>
<el-col :span="9" :offset="1">
<el-form-item label="浜嬩欢澹伴煶">
- <div class="flex-wrap" style="margin-top: 10px;">
+ <div class="flex-wrap" style="margin-top: 10px">
<el-switch v-model="form.voiceEnable" :width="50"></el-switch>
<!-- 灞忚斀澹伴煶閫夋嫨,璋冩暣鍒板満鏅� -->
<!-- <el-select
@@ -96,45 +111,61 @@
</el-row>
<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-form-item label="璁惧鍒悕" style="width: 100%" prop="alias">
+ <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-col :span="19" style="text-align: right">
<el-button
size="small"
type="primary"
@click="onSubmit('addForm')"
:disabled="conDisabled"
- >淇濆瓨</el-button>
+ >淇濆瓨</el-button
+ >
<el-button
type="danger"
size="small"
@click="deleteCamera"
v-if="!isAdd"
:disabled="isDisabled"
- >鍒犻櫎鎽勫儚鏈�</el-button>
+ >鍒犻櫎鎽勫儚鏈�</el-button
+ >
</el-col>
</el-row>
<el-divider></el-divider>
<input v-model="form.id" type="hidden" />
<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-col :span="12" style="text-align: right">
+ <el-button
+ size="small"
+ type="primary"
+ @click="cameraConnet"
+ :disabled="conDisabled"
+ >杩炴帴娴嬭瘯</el-button
+ >
</el-col>
</el-row>
<el-row style="padding: 15px 0">
<el-col :span="12">
- <camera-player
+ <!-- <camera-player
:cameraName="videoItem.name"
:cameraID="videoItem.id"
:isGb="videoItem.cameraType === 1"
@@ -142,7 +173,26 @@
:isRunning="false"
v-if="videoItem !== '' && videoItem !== undefined && videoItem !== null && visibilityState"
></camera-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> -->
+ <wasm-player
+ :cameraName="videoItem.name"
+ :cameraID="videoItem.id"
+ :isGb="videoItem.cameraType === 1"
+ :rtspUrl="videoItem.rtsp"
+ :isRunning="false"
+ :showArea="false"
+ v-if="
+ videoItem !== '' &&
+ videoItem !== undefined &&
+ videoItem !== null &&
+ visibilityState
+ "
+ ></wasm-player>
+ <video
+ v-else
+ poster="/images/cameraAccess/video-poster.png"
+ preload="none"
+ ></video>
</el-col>
<!-- 绯荤粺杩愯淇℃伅 -->
@@ -150,9 +200,9 @@
<div class="sysinfo-box">
<div style="width: 70%">
<ul>
- <li style="width:100%">
+ <li style="width: 100%">
<info-card
- style="width:100%;min-width: 440px"
+ style="width: 100%; min-width: 440px"
:realtime="PollData.RealTimeValidCount"
:polling="PollData.PollValidCount"
:dataStack="PollData.stackChannelCount"
@@ -164,7 +214,10 @@
: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>
@@ -174,36 +227,37 @@
</template>
<script>
import {
- checkCameraConnet,
createCamera,
updateCameraInfo,
getCameraInfo,
- delCamera
+ getGB28181CameraInfo,
+ delCamera,
} from "@/api/camera";
import { getSoundList } from "@/api/event";
-import { changeRunType } from "@/api/pollConfig";
+import WasmPlayer from "@/components/wasmPlayer";
import CameraPlayer from "@/components/player";
-import eChartsBar from '@/components/subComponents/eChartsBar'
+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",
components: {
- CameraPlayer,
+ // CameraPlayer,
+ WasmPlayer,
InfoCard,
eChartsBar,
- CameraInfoEditor
+ CameraInfoEditor,
},
props: {
cameraList: {
default: () => {
return [];
},
- type: Array
- }
+ type: Array,
+ },
},
data() {
return {
@@ -212,32 +266,31 @@
soundList: [],
togglePlay: true,
eventAudio: new Audio(),
- soundPath: '',
- form: {
- },
+ soundPath: "",
+ form: {},
// 璁板綍娣诲姞鐘舵��
isAdd: false,
addParentId: "",
rules: {
name: [
- { required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
],
rtsp: [
- { required: true, message: "RTSP鍦板潃涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "RTSP鍦板潃涓嶈兘涓虹┖", trigger: "blur" },
],
addr: [
- { required: true, message: "璁惧鍦板潃涓嶈兘涓虹┖", trigger: "blur" }
- ]
+ { 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;
@@ -251,7 +304,7 @@
},
conDisabled() {
return this.isAdd ? false : this.TreeDataPool.selectedNode.type !== "4";
- }
+ },
},
mounted() {
this.initFormData();
@@ -261,41 +314,41 @@
this.getSounds();
this.eventAudio.addEventListener("ended", () => {
- this.togglePlay = true
- })
+ this.togglePlay = true;
+ });
},
methods: {
getSounds() {
- getSoundList().then(res => {
- if (res.success) {
- this.soundList = res.data.list
- }
- }).catch(
- e => console.log(e)
- )
+ getSoundList()
+ .then((res) => {
+ if (res.success) {
+ this.soundList = res.data;
+ }
+ })
+ .catch((e) => console.log(e));
},
selSound(sound) {
this.soundPath = sound.path;
this.form.voiceId = sound.id;
this.togglePlay = true;
- this.eventAudio.pause()
+ this.eventAudio.pause();
// this.eventAudio.
},
togglePlayer() {
if (!this.soundPath) {
this.$notify({
- type: 'info',
- message: '璇峰厛閫夋嫨涓�涓0闊�!'
- })
+ type: "info",
+ message: "璇峰厛閫夋嫨涓�涓0闊�!",
+ });
return false;
}
this.eventAudio.src = this.soundPath;
if (this.togglePlay) {
this.eventAudio.play();
- this.togglePlay = false
+ this.togglePlay = false;
} else {
- this.eventAudio.pause()
- this.togglePlay = true
+ this.eventAudio.pause();
+ this.togglePlay = true;
}
// this.togglePlay = !this.togglePlay
},
@@ -315,127 +368,188 @@
this.$refs.addForm.resetFields();
this.voice = null;
+ console.log(node);
+
// this.initFormData();
// this.$refs.addForm.clearValidate();
if (node.type === "4") {
- getCameraInfo(node.id).then(res => {
- if (res.success) {
- // console.log(res, '鑾峰彇鎽勫儚鏈轰俊鎭�')
- if (res.data.resolutions) {
- let list = res.data.resolutions.map(i => {
- let obj = {}
- if (i.width == 0 && i.height == 0) {
- obj.label = "鏈満鍒嗚鲸鐜�"
- obj.value = "0*0"
- } else {
- obj.label = i.width + "*" + i.height
- obj.value = i.width + "*" + i.height
- }
- return obj
- })
- this.resolutionList = list
- this.sensors = res.data.sensors
- }
- this.$nextTick(() => {
- this.initFormData()
- Object.assign(this.form, res.data)
-
- this.soundList.forEach(element => {
- if (this.form.voiceId == element.id) {
- this.voice = element
- }
- })
-
- if (this.form.run_type !== -1) {
- this.form.isAI = true
- } else {
- this.form.isAI = false
+ // 鍥芥爣鎽勫儚鏈�
+ if (node.cameraType === 1) {
+ getGB28181CameraInfo(node.id).then((res) => {
+ if (res.success) {
+ // console.log(res, '鑾峰彇鎽勫儚鏈轰俊鎭�')
+ if (res.data.resolutions) {
+ let list = res.data.resolutions.map((i) => {
+ let obj = {};
+ if (i.width == 0 && i.height == 0) {
+ obj.label = "鏈満鍒嗚鲸鐜�";
+ obj.value = "0*0";
+ } else {
+ 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);
}
- this.form.resolution = this.form.resolution_width + "*" + this.form.resolution_height
- })
- }
- });
+
+ this.$nextTick(() => {
+ this.initFormData();
+ Object.assign(this.form, res.data);
+
+ this.soundList.forEach((element) => {
+ if (this.form.voiceId == element.id) {
+ this.voice = element;
+ }
+ });
+
+ if (this.form.run_type !== -1) {
+ this.form.isAI = true;
+ } else {
+ this.form.isAI = false;
+ }
+ 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 = {};
+ if (i.width == 0 && i.height == 0) {
+ obj.label = "鏈満鍒嗚鲸鐜�";
+ obj.value = "0*0";
+ } else {
+ 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);
+ }
+
+ this.$nextTick(() => {
+ this.initFormData();
+ Object.assign(this.form, res.data);
+
+ this.soundList.forEach((element) => {
+ if (this.form.voiceId == element.id) {
+ this.voice = element;
+ }
+ });
+
+ if (this.form.run_type !== -1) {
+ this.form.isAI = true;
+ } else {
+ this.form.isAI = false;
+ }
+ this.form.resolution =
+ this.form.resolution_width +
+ "*" +
+ this.form.resolution_height;
+ });
+ }
+ });
+ }
}
},
// 淇濆瓨
onSubmit(formName) {
- let list = this.$refs.cameraEditor.getResult()
- // console.log(list, "sensor")
- // id涓虹┖锛屾柊澧炴憚鍍忔満
-
- // if (this.form.voiceEnable && this.form.voiceId === "") {
- // this.$notify({
- // type: "error",
- // message: "璇烽�夋嫨涓�涓簨浠跺0闊�"
- // });
-
- // return;
- // }
-
- this.$refs[formName].validate(async valid => {
+ let list = this.$refs.cameraEditor.getResult();
+ this.$refs[formName].validate(async (valid) => {
if (valid) {
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])
+ 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)
- updateCameraInfo(this.form).then(rsp => {
- if (rsp.success) {
- this.$notify({
- type: "success",
- message: "鎽勫儚鏈轰俊鎭慨鏀规垚鍔燂紒"
- });
- this.TreeDataPool.fetchTreeData();
- console.log(this.TreeDataPool.selectedNode)
- //_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)
- // this.$nextTick(()=>{
- _this.$root.$children[0].$refs['leftTree'].$refs.tree.itemClick(evt,treeId,_this.TreeDataPool.selectedNode)
- // })
-
- } else {
- this.selectCamera(this.TreeDataPool.selectedNode);
+ this.form.areaid = this.TreeDataPool.getParent(
+ this.form.id,
+ this.isGb28182
+ );
+ console.log(this.TreeDataPool.selectedNode);
+ updateCameraInfo(this.form)
+ .then((rsp) => {
+ if (rsp.success) {
+ this.$notify({
+ type: "success",
+ message: "鎽勫儚鏈轰俊鎭慨鏀规垚鍔燂紒",
+ });
+ this.TreeDataPool.fetchTreeData();
+ console.log(this.TreeDataPool.selectedNode);
+ //_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);
+ // this.$nextTick(()=>{
+ //_this.$root.$children[0].$refs['leftTree'].$refs.tree.handleCreated()
+ // })
+ } else {
+ this.selectCamera(this.TreeDataPool.selectedNode);
+ this.$notify({
+ type: "error",
+ message: "鎽勫儚鏈轰俊鎭慨鏀瑰け璐ワ紒",
+ });
+ }
+ })
+ .catch((err) => {
this.$notify({
type: "error",
- message: "鎽勫儚鏈轰俊鎭慨鏀瑰け璐ワ紒"
+ message: err.msg,
});
- }
- }).catch(err => {
- this.$notify({
- type: "error",
- message: err.data
});
- });
} else {
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();
- // 鍚庣杩斿洖缁撴灉涓�0锛屾煡璇㈠悗涓�4
- this.TreeDataPool.selectedNode.type = "4";
- this.selectCamera(this.TreeDataPool.selectedNode);
- } else {
+ createCamera(this.form)
+ .then((rsp) => {
+ if (rsp.success) {
+ this.$notify({
+ type: "success",
+ message: "鎽勫儚鏈烘坊鍔犳垚鍔燂紒",
+ });
+ this.TreeDataPool.selectedNode = rsp.data;
+ this.TreeDataPool.fetchTreeData();
+ // 鍚庣杩斿洖缁撴灉涓�0锛屾煡璇㈠悗涓�4
+ this.TreeDataPool.selectedNode.type = "4";
+ this.selectCamera(this.TreeDataPool.selectedNode);
+ } else {
+ this.$notify({
+ type: "error",
+ message: "鎽勫儚鏈烘坊鍔犲け璐ワ紒",
+ });
+ }
+ })
+ .catch((err) => {
this.$notify({
type: "error",
- message: "鎽勫儚鏈烘坊鍔犲け璐ワ紒"
+ message: err.msg,
});
- }
- });
+ });
}
}
});
@@ -449,9 +563,9 @@
rtsp: this.form.rtsp,
id: this.form.id,
isRunning: this.form.run_enable,
- cameraType: this.form.type
+ cameraType: this.form.type,
};
- })
+ });
},
// * 楠岃瘉蹇呴�夐」
verifyRequrie() {
@@ -464,7 +578,7 @@
if (this.form.rtsp === "") {
this.$notify({
type: "warning",
- message: "璇疯緭鍏ユ纭殑rtsp鍦板潃"
+ message: "璇疯緭鍏ユ纭殑rtsp鍦板潃",
});
return false;
}
@@ -475,21 +589,21 @@
this.$confirm("鏄惁鍒犻櫎姝ゆ憚鍍忔満锛�", {
center: true,
cancelButtonClass: "comfirm-class-cancle",
- confirmButtonClass: "comfirm-class-sure"
+ confirmButtonClass: "comfirm-class-sure",
}).then(() => {
- delCamera(this.form.id).then(res => {
+ delCamera(this.form.id).then((res) => {
if (res.success) {
this.initFormData();
this.$notify({
type: "success",
- message: "鍒犻櫎鎴愬姛锛�"
+ message: "鍒犻櫎鎴愬姛锛�",
});
this.TreeDataPool.fetchTreeData();
this.TreeDataPool.selectedNode = {};
} else {
this.$notify({
type: "error",
- message: "鍒犻櫎澶辫触锛�"
+ message: "鍒犻櫎澶辫触锛�",
});
}
});
@@ -515,16 +629,31 @@
password: "",
resolution: "",
voiceId: "",
- voiceEnable: false
+ voiceEnable: false,
};
},
// 娣诲姞璁惧
addDevice(node) {
+ console.log("1111");
this.isAdd = true;
this.addParentId = node;
+ this.resolutionList = [
+ {
+ label: "鏈満鍒嗚鲸鐜�",
+ value: "0*0",
+ },
+ {
+ label: "1920*1080",
+ value: "1920*1080",
+ },
+ {
+ label: "2688*1520",
+ value: "2688*1520",
+ },
+ ];
this.initFormData();
- }
- }
+ },
+ },
};
</script>
@@ -572,5 +701,9 @@
}
}
}
+
+ .video-player {
+ height: 450px;
+ }
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0