Browse Source

护栏碰撞控制,视频录像,事件对应相机

develop
王兴琳 4 months ago
parent
commit
90f7a70ef7
  1. 37
      ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/index.vue
  2. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/GuardrailCollision/index.vue
  3. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue

37
ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/index.vue

@ -1,30 +1,32 @@
<template>
<div class="video-container">
<div class="header">
<ElSelect @change="cameraChange" v-model="cameraId">
<ElSelect v-model="cameraId" @change="cameraChange">
<ElOption v-for="item in urls" :key="item.id" :label="item.deviceName" :value="item.iotDeviceId">
</ElOption>
</ElSelect>
<img @click="controlDialogVisible = true" v-if="[0, '0'].includes(
<img v-if="[0, '0'].includes(
dialogData.parseOtherConfig &&
dialogData.parseOtherConfig.ptzCtrl
)
" src="@screen/images/camera-control-icon.svg" width="18px" height="18px"
style="cursor: pointer;background-color: #0d5f79;margin-top: 3px" />
" height="18px" src="@screen/images/camera-control-icon.svg" style="cursor: pointer;background-color: #0d5f79;margin-top: 3px" width="18px"
@click="controlDialogVisible = true"/>
</div>
<Transition name="fade" mode="out-in">
<video controls autoplay muted class="video-stream" v-bind="$attrs" ref="videoContainerRef" />
<Transition mode="out-in" name="fade">
<video ref="videoContainerRef" v-bind="$attrs" autoplay class="video-stream" controls muted/>
</Transition>
<CameraControlDialog :deviceId="dialogData.iotDeviceId" :dialogData="dialogData" :visible="controlDialogVisible" @update:value="handleClose" />
<CameraControlDialog :deviceId="dialogData.iotDeviceId" :dialogData="dialogData" :visible="controlDialogVisible"
@update:value="handleClose"/>
</div>
</template>
<script>
import { HttpLivePlayer, openLiveVideo } from "./videoStream.js"
import {HttpLivePlayer} from "./videoStream.js"
import {find} from "lodash"
import {
getNearCameraNew,getNearCameraNewStation,
getNearCameraNew,
getNearCameraNewStation,
} from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js";
import CameraControlDialog from "@screen/pages/Home/components/Dialogs/Camera/components/CameraControlDialog.vue";
@ -111,14 +113,22 @@ export default {
urls = [...urls, ...data[i]]
}
this.$emit('nearload', urls.map(x => x.iotDeviceId))
}
else if (data[this.rangeIndex]) {
} else if (data[this.rangeIndex]) {
urls = data[this.rangeIndex]
}
if (urls.length > 0) {
let firstItem
this.urls = urls;
const firstItem = urls[0];
let list = urls.filter(itm => itm.stakeMark === this.pileNum & itm.childType === "1-1");
if (list.length === 0) {
firstItem = urls[0];
}else if (list.length>0){
firstItem = list[0];
}
// console.log("+++++++++++++++++++++++++++++++++++++++++++++++++")
// console.log(this.pileNum)
this.cameraId = firstItem['iotDeviceId'];
// console.log("id"+this.cameraId)
this.dialogData = {...firstItem, parseOtherConfig: firstItem.otherConfig && JSON.parse(firstItem.otherConfig)}
this.showVideo();
}
@ -150,6 +160,7 @@ export default {
display: flex;
justify-content: center;
flex-direction: column;
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.24s ease;
@ -166,6 +177,7 @@ export default {
display: flex;
justify-content: space-between;
background-color: #145775;
.radio {
background: #265A70;
border-radius: 41px 41px 41px 41px;
@ -227,6 +239,7 @@ export default {
.video-stream {
width: 100%;
}
@media (min-width: 3000px) {
.video-stream {
height: 90%;

5
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/GuardrailCollision/index.vue

@ -16,9 +16,8 @@
">
警示灯:
</span>
<Button style="margin-left: 5px" @click.native="controlClick(30)"></Button>
<Button style="margin-left: 5px" @click.native="controlClick(31)"></Button>
<Button style="margin-left: 5px" @click.native="controlClick(34)">退出</Button>
<Button style="margin-left: 5px" @click.native="controlClick(30)">强制开启</Button>
<Button style="margin-left: 5px" @click.native="controlClick(31)">强制关闭</Button>
</div>
</ElTabPane>

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue

@ -67,7 +67,7 @@
" @close="onCloseAddNew" />
<template #footer>
<Button @click.native="onOpen" :style="{ marginTop: '30px', padding: '0 24px' }">视频录像</Button>
<Button v-if="[1,2,5].includes(data.warningSource)" @click.native="onOpen" :style="{ marginTop: '30px', padding: '0 24px' }">视频录像</Button>
<Button :loading="submitLoading" v-if="check(['business:home:event','control:event:event:disposalAndRelease','control:event:event:disposeOf','home:notice:releaseEvent','home:notice:closeEvent']) && activeName == '1'" style="margin-top: 30px;padding: 0 24px"
@click.native="onEnd">终止</Button>
<Button :loading="submitLoading" v-if="check(['business:home:event','control:event:event:disposalAndRelease','control:event:event:disposeOf','home:notice:releaseEvent']) && (activeName == '-1' || activeName == '0')" style="margin-top: 30px;padding: 0 24px"

Loading…
Cancel
Save