湖里大屏(数字工地):完成升降机弹框报警信息联调

This commit is contained in:
Jack 2022-08-18 18:15:24 +08:00
parent ec7a7759d4
commit 8b9ba57796
2 changed files with 126 additions and 62 deletions

View File

@ -1336,16 +1336,11 @@
</div>
<div class="deviceInfo">
<p>
<!-- 设备名称 -->
{{ $t('message.dataBoard.devName2') + ':' }}{{ (lifterInfo.lifter || {}).devName || '--' }}
<!-- 设备名称 -->{{ $t('message.dataBoard.devName2') + ':' }}{{ (lifterInfo.lifter || {}).devName || '--' }}
</p>
<p><!-- 设备编号 -->{{ $t('message.dataBoard.devCode') + ':' }}{{ (lifterInfo.lifter || {}).devSn || '--' }}</p>
<p>
<!-- 设备编号 -->
{{ $t('message.dataBoard.devCode') + ':' }}{{ (lifterInfo.lifter || {}).devSn || '--' }}
</p>
<p>
<!-- 设备备案号 -->
{{ $t('message.dataBoard.devAQ') + ':' }}{{ (lifterInfo.lifter || {}).registNo || '--' }}
<!-- 设备备案号 -->{{ $t('message.dataBoard.devAQ') + ':' }}{{ (lifterInfo.lifter || {}).registNo || '--' }}
</p>
<p>
<!-- 设备最大载重 -->
@ -1365,50 +1360,38 @@
<i></i>
{{ company == 'longguang' ? $t('message.dataBoard.lifterPlayer') : $t('message.dataBoard.driverInfo2') }}
</div>
<vue-scroll v-if="lifterInfoDriverList.length" style="width: 100%; height: 236px">
<div
v-for="(item, index) in lifterInfo.driverList"
:key="index"
v-if="company == 'longguang' || item.idCard == lifterCurrentData.driverIdCard"
style="margin: 5px 0"
>
<div
class="deviceInfo"
style="
display: inline-block;
width: 50%;
vertical-align: middle;
"
>
<p>
<!-- 姓名 -->
{{ $t('message.dataBoard.name') + ':' }}{{ item.workerName }}
</p>
<p>
<!-- 年龄 -->
{{ $t('message.dataBoard.age') + ':' }}{{ item.age }}
</p>
<p>
<!-- 特种证书编号 -->
{{ $t('message.dataBoard.certificateNumber') + ':' }}{{ item.certificateNumber }}
</p>
<p>
<!-- 上岗时间 -->
{{ $t('message.dataBoard.workTime') + ':' }}{{ item.enterDate }}
</p>
</div>
<img
width="80"
height="90"
:src="fileUrl + item.fieldAcquisitionUrl"
@click="openImg(fileUrl + item.fieldAcquisitionUrl)"
style="
display: inline-block;
vertical-align: middle;
"
/>
</div>
</vue-scroll>
<template v-if="lifterInfoDriverList.length">
<vue-scroll style="width: 100%; height: 236px">
<template v-if="company == 'longguang' || item.idCard == lifterCurrentData.driverIdCard">
<div v-for="(item, index) in lifterInfo.driverList" :key="index" style="margin: 5px 0">
<div
class="deviceInfo"
style="display: inline-block; width: 50%; vertical-align: middle;"
>
<p>
<!-- 姓名 -->{{ $t('message.dataBoard.name') + ':' }}{{ item.workerName }}
</p>
<p>
<!-- 年龄 -->{{ $t('message.dataBoard.age') + ':' }}{{ item.age }}
</p>
<p>
<!-- 特种证书编号 -->{{ $t('message.dataBoard.certificateNumber') + ':' }}{{ item.certificateNumber }}
</p>
<p>
<!-- 上岗时间 -->{{ $t('message.dataBoard.workTime') + ':' }}{{ item.enterDate }}
</p>
</div>
<img
width="80"
height="90"
:src="fileUrl + item.fieldAcquisitionUrl"
@click="openImg(fileUrl + item.fieldAcquisitionUrl)"
style="display: inline-block;vertical-align: middle;"
/>
</div>
</template>
</vue-scroll>
</template>
<div v-else style="text-align: center">
<img style="height: 150px; margin-top: 40px" src="@/assets/images/09b108269bb2491369b67686bd74c6a.png" />
<p>

View File

@ -43,14 +43,50 @@
</div>
</div>
<!-- 设备信息 -->
<div class="card">
<div class="card-title">设备信息</div>
<div class="device">
<div class="device-item">设备名称{{ (deviceInfo.lifter || {}).devName || '-' }}</div>
<div class="device-item">设备编号{{ (deviceInfo.lifter || {}).devSn || '-' }}</div>
<div class="device-item">设备备案号{{ (deviceInfo.lifter || {}).registNo || '-' }}</div>
<div class="device-item">设备最大载重{{ (deviceInfo.lifter || {}).maxLoad || '-' }} kg</div>
<div class="infos">
<!-- 设备信息 -->
<div class="card">
<div class="card-title">设备信息</div>
<div class="device">
<div class="device-item">设备名称{{ (deviceInfo.lifter || {}).devName || '-' }}</div>
<div class="device-item">设备编号{{ (deviceInfo.lifter || {}).devSn || '-' }}</div>
<div class="device-item">设备备案号{{ (deviceInfo.lifter || {}).registNo || '-' }}</div>
<div class="device-item">设备最大载重{{ (deviceInfo.lifter || {}).maxLoad || '-' }} kg</div>
</div>
</div>
<div class="card">
<div class="card-title">司机信息</div>
<div class="driver">
<template v-if="(deviceInfo.driverList || []).length">司机信息</template>
<div v-else class="nodata">
<img src="@/assets/images/09b108269bb2491369b67686bd74c6a.png" />
<div class="notice">暂无数据</div>
</div>
</div>
</div>
<div class="card">
<div class="card-title">报警信息</div>
<div class="alert">
<vue-scroll>
<div v-for="(alert, index) in alerts" :key="index" class="alert-info">
<div class="alert-item">设备名称{{ alert.devName }}</div>
<div class="alert-item">设备时间{{ fmtDate(alert.addTime) }}</div>
<div class="alert-item" v-if="alert.bottomAlarm">下限位报警</div>
<div class="alert-item" v-if="alert.fallAlarm">防坠器报警</div>
<div class="alert-item" v-if="alert.heightAlarm">高度报警</div>
<div class="alert-item" v-if="alert.motor1Alarm">1号电机报警</div>
<div class="alert-item" v-if="alert.motor2Alarm">2号电机报警</div>
<div class="alert-item" v-if="alert.motor3Alarm">3号电机报警</div>
<div class="alert-item" v-if="alert.obliguityXAlarm">倾角X报警</div>
<div class="alert-item" v-if="alert.obliguityYAlarm">倾角Y报警</div>
<div class="alert-item" v-if="alert.peopleCntAlarm">人数报警</div>
<div class="alert-item" v-if="alert.speedAlarm">速度报警</div>
<div class="alert-item" v-if="alert.topAlarm">防冲顶报警</div>
<div class="alert-item" v-if="alert.weightAlarm">载重报警</div>
<div class="alert-item" v-if="alert.windSpeedAlarm">风速报警</div>
</div>
</vue-scroll>
</div>
</div>
</div>
</div>
@ -60,7 +96,8 @@
<script>
import AreaTree from '@/components/areaTree'
import VideoModule from '@/components/videoModule/videoModule'
import { getLifterCurrentDataApi, getSelectLifterBySnApi } from '@/assets/js/api/lifter'
import { getLifterCurrentDataApi, getSelectLifterBySnApi, getLifterAlarmApi } from '@/assets/js/api/lifter'
import moment from 'moment'
export default {
components: { AreaTree, VideoModule },
props: {
@ -72,14 +109,17 @@ export default {
mounted() {
this.getEnvironmentInfo()
this.getDeviceInfo()
this.getAlertInfo()
},
data() {
return {
projectSn: this.$store.state.projectSn,
videoList: [],
playList: [],
activeLiveData: { devSn: '' },
environmentInfo: {},
deviceInfo: {}
deviceInfo: {},
alerts: []
}
},
methods: {
@ -104,6 +144,16 @@ export default {
this.deviceInfo = res.result
}
})
},
getAlertInfo() {
getLifterAlarmApi({ devSn: '2DE46E53AEF7483B98C9B8825ECAA12F', projectSn: this.projectSn }).then(res => {
if (res.code == 200) {
this.alerts = res.result.records
}
})
},
fmtDate(date) {
return moment(date).format('YYYY-MM-DD日 HH:mm:ss')
}
}
}
@ -165,6 +215,37 @@ export default {
margin-bottom: 10px;
}
}
.driver {
.nodata {
display: flex;
flex-direction: column;
align-items: center;
img {
margin-top: 40px;
height: 150px;
}
}
}
.alert {
height: 200px;
.alert-info {
margin-bottom: 20px;
display: flex;
flex-wrap: wrap;
.alert-item {
margin-bottom: 10px;
width: 50%;
}
}
}
}
.infos {
height: 260px;
display: flex;
> div {
flex: 1;
}
}
}
.green {