湖里大屏(数字工地):新增人脸闸机弹框
This commit is contained in:
parent
6b697f65a3
commit
77c3ba4ad7
@ -508,17 +508,6 @@
|
|||||||
<!-- 顺时针回转限位报警 -->
|
<!-- 顺时针回转限位报警 -->
|
||||||
{{ $t('message.dataBoard.alarmTypeArray2')[8] }}
|
{{ $t('message.dataBoard.alarmTypeArray2')[8] }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- <p v-if="item.windSpeedAlarm" class="p1">风速报警:{{item.windSpeedAlarm == 0?'正常':item.windSpeedAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!--<!– <p class="p1">警报类别:{{ item.alarmType == 1?'报警':item.alarmType == 2?'预警':"--" }}</p>–>-->
|
|
||||||
<!-- <p v-if="item.environmentAlarm" class="p2">环境防撞报警:{{item.environmentAlarm == 0?'正常':item.environmentAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.heightAlarm" class="p1">高度上限位报警:{{item.heightAlarm == 0?'正常':item.heightAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.maxRangeAlarm" class="p2">幅度外限位报警:{{item.maxRangeAlarm == 0?'正常':item.maxRangeAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.minRangeAlarm" class="p1">幅度内限位报警:{{item.minRangeAlarm == 0?'正常':item.minRangeAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.momentAlarm" class="p2">力矩报警:{{item.momentAlarm == 0?'正常':item.momentAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.multiAlarm" class="p1">多机防撞报警:{{item.multiAlarm == 0?'正常':item.multiAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.negAngleAlarm" class="p2">逆时针回转限位报警:{{item.negAngleAlarm == 0?'正常':item.negAngleAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
<!-- <p v-if="item.posAngleAlarm" class="p1">顺时针回转限位报警 :{{item.posAngleAlarm == 0?'正常':item.posAngleAlarm == 1?'报警':'预警'}}</p>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
@ -538,27 +527,6 @@
|
|||||||
<div class="svg-box" id="svg_box" v-if="company == 'longguang'">
|
<div class="svg-box" id="svg_box" v-if="company == 'longguang'">
|
||||||
<svg id="svg" ref="svg" class="svg-pan-zoom_viewport" style="width: 100%; height: 100%" />
|
<svg id="svg" ref="svg" class="svg-pan-zoom_viewport" style="width: 100%; height: 100%" />
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="blockTitle blockTitle2"><i></i>预警信息</div>-->
|
|
||||||
<!-- <div class="deviceInfo">-->
|
|
||||||
<!-- <vue-scroll v-if="TowerWarningList" style="height: 145px; margin-bottom: 10px">-->
|
|
||||||
<!-- <div-->
|
|
||||||
<!-- class="driverInfo"-->
|
|
||||||
<!-- v-for="(item, index) in TowerWarningList"-->
|
|
||||||
<!-- :key="index"-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- <div class="TowerAlarm_item">-->
|
|
||||||
<!-- <p class="p1">设备名称:{{item.devName}}</p>-->
|
|
||||||
<!-- <p class="p2">预警时间:{{ transformTimestamp(item.alarmTime) }}</p>-->
|
|
||||||
<!-- <p class="p1">报警类别:{{ item.alarmType == 1?'报警':'预警' }}</p>-->
|
|
||||||
<!-- <p class="p2">角度:{{item.angle}}°</p>-->
|
|
||||||
<!-- <p class="p1">高度:{{item.height}}m</p>-->
|
|
||||||
<!-- <p class="p2">载重:{{item.loading}}kg</p>-->
|
|
||||||
<!-- <p class="p1">载重量比:{{item.loadRatio}}%</p>-->
|
|
||||||
<!-- <p class="p2">风速:{{item.windspeed}}m/s</p>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </vue-scroll>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="towerBox center2">
|
<div class="towerBox center2">
|
||||||
@ -1566,37 +1534,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="right fullHeight">
|
|
||||||
<div class="dialogBlock fullHeight">
|
|
||||||
<div class="dialogBlockContent">
|
|
||||||
<div class="blockTitle blockTitle2"><i></i>循环记录</div>
|
|
||||||
<table class="dialogTable">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>开始时间</th>
|
|
||||||
<th>结束时间</th>
|
|
||||||
<th>工作时长</th>
|
|
||||||
<th>载重(kg)</th>
|
|
||||||
<th>司机</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr
|
|
||||||
v-for="(item, index) in lifterWorkCycleList"
|
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<td>{{ item.startTime }}</td>
|
|
||||||
<td>{{ item.endTime }}</td>
|
|
||||||
<td>{{ item.workTime }}</td>
|
|
||||||
<td>{{ item.loading }}</td>
|
|
||||||
<td>{{ item.driverName }}</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -1708,17 +1645,6 @@
|
|||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>1</td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>
|
|
||||||
<img src />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -2142,7 +2068,6 @@
|
|||||||
v-for="(item, index) in devTypeList"
|
v-for="(item, index) in devTypeList"
|
||||||
:key="index"
|
:key="index"
|
||||||
:class="{ active: devTypeIndex == index }"
|
:class="{ active: devTypeIndex == index }"
|
||||||
v-if="company == 'nanchang' || (company != 'nanchang' && item.id != 99)"
|
|
||||||
>
|
>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</li>
|
</li>
|
||||||
@ -2173,9 +2098,7 @@ import {
|
|||||||
selectEnvironmentDevAlaramCountList,
|
selectEnvironmentDevAlaramCountList,
|
||||||
getAllTowerDangerInfo,
|
getAllTowerDangerInfo,
|
||||||
getAllLifterDangerInfo,
|
getAllLifterDangerInfo,
|
||||||
getEnvironmentInfo,
|
getEnvironmentInfo
|
||||||
getAiVideoInfo,
|
|
||||||
getAIDangerList
|
|
||||||
} from '@/assets/js/api/dataBoard'
|
} from '@/assets/js/api/dataBoard'
|
||||||
import { selectCarTotal } from '@/assets/js/api/carManage.js'
|
import { selectCarTotal } from '@/assets/js/api/carManage.js'
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
v-for="(point, index) in points"
|
v-for="(point, index) in points"
|
||||||
:key="index"
|
:key="index"
|
||||||
></div>
|
></div>
|
||||||
|
<FaceGageDialog v-if="faceGateDialog" :close="() => (faceGateDialog = false)" :data="faceGateData" />
|
||||||
</div>
|
</div>
|
||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
<div class="tab" :class="{ checked: index === tabIndex }" v-for="(tab, index) in tabs" :key="index" @click="changeTab(index)">
|
<div class="tab" :class="{ checked: index === tabIndex }" v-for="(tab, index) in tabs" :key="index" @click="changeTab(index)">
|
||||||
@ -19,16 +20,22 @@
|
|||||||
<script>
|
<script>
|
||||||
import Card from '../components/Card.vue'
|
import Card from '../components/Card.vue'
|
||||||
import JNestedRingChart from '../jChart/pie/JNestedRingChart.vue'
|
import JNestedRingChart from '../jChart/pie/JNestedRingChart.vue'
|
||||||
|
import FaceGageDialog from './components/FaceGageDialog.vue'
|
||||||
|
import { selectWorkerAttendanceByDevApi } from '@/assets/js/api/dataBoard'
|
||||||
export default {
|
export default {
|
||||||
components: { Card, JNestedRingChart },
|
components: { Card, JNestedRingChart, FaceGageDialog },
|
||||||
props: {
|
props: {
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
this.selectWorkerAttendanceByDev()
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
projectSn: this.$store.state.projectSn,
|
||||||
tabIndex: 0,
|
tabIndex: 0,
|
||||||
tabs: [
|
tabs: [
|
||||||
{ label: '全部', value: 'all' },
|
{ label: '全部', value: 'all' },
|
||||||
@ -37,12 +44,26 @@ export default {
|
|||||||
{ label: '视频监测', value: 'video' },
|
{ label: '视频监测', value: 'video' },
|
||||||
{ label: '环境监测', value: 'environment' },
|
{ label: '环境监测', value: 'environment' },
|
||||||
{ label: '人脸闸机', value: 'gate' }
|
{ label: '人脸闸机', value: 'gate' }
|
||||||
]
|
],
|
||||||
|
faceGateDialog: true,
|
||||||
|
faceGateData: {
|
||||||
|
list: [],
|
||||||
|
totalAttendance: { inTotalNum: 0, outTotalNum: 0 },
|
||||||
|
ufaceDev: { deviceState: 1 }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
changeTab(index) {
|
changeTab(index) {
|
||||||
this.tabIndex = index
|
this.tabIndex = index
|
||||||
|
},
|
||||||
|
selectWorkerAttendanceByDev() {
|
||||||
|
selectWorkerAttendanceByDevApi({
|
||||||
|
projectSn: this.projectSn,
|
||||||
|
devSn: '2525'
|
||||||
|
}).then(res => {
|
||||||
|
this.faceGateData = { ...res.result }
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|||||||
@ -0,0 +1,101 @@
|
|||||||
|
<template>
|
||||||
|
<div class="faceGateDialog">
|
||||||
|
<div class="title">
|
||||||
|
<div class="text">{{ data.ufaceDev.devName }}</div>
|
||||||
|
<div class="status" :class="isOnline ? 'online' : 'offline'">{{ isOnline ? '在线' : '离线' }}</div>
|
||||||
|
<div class="close" @click="close">×</div>
|
||||||
|
</div>
|
||||||
|
<div class="list-title">进出统计</div>
|
||||||
|
<div class="person-times">
|
||||||
|
今日进场人数:<span>{{ data.totalAttendance.inTotalNum }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="person-times">
|
||||||
|
今日出场人数:<span>{{ data.totalAttendance.outTotalNum }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
close: {
|
||||||
|
type: Function,
|
||||||
|
require: true,
|
||||||
|
default: () => {}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
console.log(this.data, '是第三方士大夫')
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log(this.data, '收待发送发生的方法')
|
||||||
|
}, 2000)
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
isOnline() {
|
||||||
|
return this.data.ufaceDev && this.data.ufaceDev.deviceState === '1'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.faceGateDialog {
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 30px;
|
||||||
|
padding: 20px;
|
||||||
|
width: 200px;
|
||||||
|
height: 140px;
|
||||||
|
border: 1px solid #0081c3;
|
||||||
|
background-color: #07162b;
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.text {
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.status {
|
||||||
|
width: 40px;
|
||||||
|
height: 22px;
|
||||||
|
line-height: 22px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: white;
|
||||||
|
background-color: #61c9d6;
|
||||||
|
border-radius: 4px;
|
||||||
|
&.offline {
|
||||||
|
background-color: #fe6c7f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.close {
|
||||||
|
margin-left: 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list-title {
|
||||||
|
margin: 10px 0;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #6ce9f0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 7px;
|
||||||
|
background-color: #6ce9f0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.person-times {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user