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

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

View File

@ -43,14 +43,50 @@
</div> </div>
</div> </div>
<!-- 设备信息 --> <div class="infos">
<div class="card"> <!-- 设备信息 -->
<div class="card-title">设备信息</div> <div class="card">
<div class="device"> <div class="card-title">设备信息</div>
<div class="device-item">设备名称{{ (deviceInfo.lifter || {}).devName || '-' }}</div> <div class="device">
<div class="device-item">设备编号{{ (deviceInfo.lifter || {}).devSn || '-' }}</div> <div class="device-item">设备名称{{ (deviceInfo.lifter || {}).devName || '-' }}</div>
<div class="device-item">设备备案号{{ (deviceInfo.lifter || {}).registNo || '-' }}</div> <div class="device-item">设备编号{{ (deviceInfo.lifter || {}).devSn || '-' }}</div>
<div class="device-item">设备最大载重{{ (deviceInfo.lifter || {}).maxLoad || '-' }} kg</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> </div>
</div> </div>
@ -60,7 +96,8 @@
<script> <script>
import AreaTree from '@/components/areaTree' import AreaTree from '@/components/areaTree'
import VideoModule from '@/components/videoModule/videoModule' 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 { export default {
components: { AreaTree, VideoModule }, components: { AreaTree, VideoModule },
props: { props: {
@ -72,14 +109,17 @@ export default {
mounted() { mounted() {
this.getEnvironmentInfo() this.getEnvironmentInfo()
this.getDeviceInfo() this.getDeviceInfo()
this.getAlertInfo()
}, },
data() { data() {
return { return {
projectSn: this.$store.state.projectSn,
videoList: [], videoList: [],
playList: [], playList: [],
activeLiveData: { devSn: '' }, activeLiveData: { devSn: '' },
environmentInfo: {}, environmentInfo: {},
deviceInfo: {} deviceInfo: {},
alerts: []
} }
}, },
methods: { methods: {
@ -104,6 +144,16 @@ export default {
this.deviceInfo = res.result 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; 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 { .green {