Merge branch 'liujun-2024-09-05-九公司人员定位' into dev
commit
2b54822d58
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
|
@ -55,7 +55,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block4">
|
<div v-if="corpInfoId !== '21590a00ea5e462e9ee44dd332dddc26'" class="block4">
|
||||||
<layout-title title="报警列表"/>
|
<layout-title title="报警列表"/>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="table">
|
<div class="table">
|
||||||
|
@ -72,6 +72,25 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="corpInfoId === '21590a00ea5e462e9ee44dd332dddc26'" class="block4">
|
||||||
|
<layout-title title="报警列表"/>
|
||||||
|
<div class="content">
|
||||||
|
<div class="table">
|
||||||
|
<div class="tr">
|
||||||
|
<div class="td">报警类型</div>
|
||||||
|
<div class="td">报警时间</div>
|
||||||
|
<div class="td">触发人</div>
|
||||||
|
<div class="td">报警地点</div>
|
||||||
|
</div>
|
||||||
|
<div v-for="(item,index) in block4List" :key="index" class="tr">
|
||||||
|
<div class="td">{{ item.alarmName }}</div>
|
||||||
|
<div class="td">{{ item.alarmTime }}</div>
|
||||||
|
<div class="td">{{ item.foulUserName }}</div>
|
||||||
|
<div class="td">{{ item.place }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -173,37 +192,59 @@ export default {
|
||||||
},
|
},
|
||||||
getData() {
|
getData() {
|
||||||
requestFN(
|
requestFN(
|
||||||
'/map/getAllDwMessage',
|
'/map/getAllDwMessage', { corpId: this.corpInfoId }
|
||||||
{ corpId: this.corpInfoId }
|
|
||||||
).then((data) => {
|
).then((data) => {
|
||||||
this.block4List = data.alarmList.list
|
// 一公司人员定位系统(我知道这里写的拉但是没办法,一天要把功能改完,后续有缘人在重构吧)
|
||||||
this.block1OptionsList = [
|
if (this.corpInfoId === '035958e685cf4850bc40151c5e0617a6') {
|
||||||
{
|
this.block4List = data.alarmList.list
|
||||||
title: '在线设备数',
|
this.block1OptionsList = [
|
||||||
img: require('../../../assets/map/renyuan/ico1.png'),
|
{
|
||||||
count: data.orthermessage.onlineDeviceNum
|
title: '在线设备数',
|
||||||
},
|
img: require('../../../assets/map/renyuan/ico1.png'),
|
||||||
{
|
count: data.orthermessage.onlineDeviceNum
|
||||||
title: '在线人员',
|
},
|
||||||
img: require('../../../assets/map/renyuan/img1ico1.png'),
|
{
|
||||||
count: data.orthermessage.infoList.UwbBQ.num
|
title: '在线人员',
|
||||||
},
|
img: require('../../../assets/map/renyuan/img1ico1.png'),
|
||||||
{
|
count: data.orthermessage.infoList.UwbBQ.num
|
||||||
title: '在线基站数',
|
},
|
||||||
img: require('../../../assets/map/renyuan/ico3.png'),
|
{
|
||||||
count: data.orthermessage.infoList.UwbJiZhan.num
|
title: '在线基站数',
|
||||||
},
|
img: require('../../../assets/map/renyuan/ico3.png'),
|
||||||
{
|
count: data.orthermessage.infoList.UwbJiZhan.num
|
||||||
title: '在线摄像头数',
|
},
|
||||||
img: require('../../../assets/map/renyuan/ico4.png'),
|
{
|
||||||
count: data.orthermessage.infoList.HKcamera.num
|
title: '在线摄像头数',
|
||||||
},
|
img: require('../../../assets/map/renyuan/ico4.png'),
|
||||||
{
|
count: data.orthermessage.infoList.HKcamera.num
|
||||||
title: '在线报警设备数',
|
},
|
||||||
img: require('../../../assets/map/renyuan/ico5.png'),
|
{
|
||||||
count: data.orthermessage.infoList.tklyr.num
|
title: '在线报警设备数',
|
||||||
}
|
img: require('../../../assets/map/renyuan/ico5.png'),
|
||||||
]
|
count: data.orthermessage.infoList.tklyr.num
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
if (this.corpInfoId === '21590a00ea5e462e9ee44dd332dddc26') {
|
||||||
|
this.block1OptionsList = [
|
||||||
|
{
|
||||||
|
title: '总设备数',
|
||||||
|
img: require('../../../assets/map/renyuan/img1ico1.png'),
|
||||||
|
count: data.orthermessage.onlineDeviceNum
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '在线人员数',
|
||||||
|
img: require('../../../assets/map/renyuan/img1ico1.png'),
|
||||||
|
count: data.orthermessage.lockNum
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '离线人数',
|
||||||
|
img: require('../../../assets/map/renyuan/img1ico1.png'),
|
||||||
|
count: data.orthermessage.unLockNum
|
||||||
|
}
|
||||||
|
]
|
||||||
|
this.block4List = data.orthermessage.alarmList
|
||||||
|
}
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
this.$message.error(e)
|
this.$message.error(e)
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container print-work" style="width: 100%;">
|
<div class="app-container print-work">
|
||||||
<div class="level-title">
|
<div class="level-title">
|
||||||
<h1>人员信息</h1>
|
<h1>人员信息</h1>
|
||||||
</div>
|
</div>
|
||||||
|
@ -29,12 +29,12 @@
|
||||||
<td>{{ otherInfo?otherInfo.postName:'' }}</td>
|
<td>{{ otherInfo?otherInfo.postName:'' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table class="table-ui">
|
<!-- 一公司人员定位页面 -->
|
||||||
|
<table v-if="corpId === '035958e685cf4850bc40151c5e0617a6'" class="table-ui">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="bbg-transparent">姓名</td>
|
<td class="bbg-transparent">姓名</td>
|
||||||
<td >{{ info?info.userName:'' }}</td>
|
<td >{{ info?info.userName:'' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="bbg-transparent">定位卡号:</td>
|
<td class="bbg-transparent">定位卡号:</td>
|
||||||
<td >{{ info?info.id:'' }}</td>
|
<td >{{ info?info.id:'' }}</td>
|
||||||
|
@ -48,6 +48,25 @@
|
||||||
<td>{{ info?info.departmentName:'' }}</td>
|
<td>{{ info?info.departmentName:'' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
<!-- 九公司人员定位页面 -->
|
||||||
|
<table v-if="corpId === '21590a00ea5e462e9ee44dd332dddc26'" class="table-ui">
|
||||||
|
<tr>
|
||||||
|
<td class="bbg-transparent">姓名</td>
|
||||||
|
<td >{{ (info && info.name) ? info.name : '未绑定人员' }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="bbg-transparent">定位卡号:</td>
|
||||||
|
<td >{{ info?info.id:'' }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="bbg-transparent">定位卡电量</td>
|
||||||
|
<td >{{ info?info.battery:'' }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="bbg-transparent">公司</td>
|
||||||
|
<td>{{ info?info.corpName:'' }}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -182,6 +182,18 @@
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
<transition
|
||||||
|
enter-active-class="animate__animated animate__fadeInDown"
|
||||||
|
leave-active-class="animate__animated animate__fadeOutUp"
|
||||||
|
>
|
||||||
|
<div v-if="isPeopleTrajectory" class="people_trajectory">
|
||||||
|
<el-select v-model="peopleTrajectoryValue" popper-class="people_trajectory_select">
|
||||||
|
<el-option v-for="item in onePerLocArr" :key="item.id" :value="item.id" :label="item.id"/>
|
||||||
|
</el-select>
|
||||||
|
<el-button class="search_btn" @click="addTrajectory">搜索</el-button>
|
||||||
|
<el-button class="reset_btn" @click="()=>{removeTrajectory();peopleTrajectoryValue = ''}">重置</el-button>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
<div class="right_options">
|
<div class="right_options">
|
||||||
|
@ -656,26 +668,17 @@ export default {
|
||||||
checkImg: require('../../assets/map/gangkou_index/buttom/ico21_on.png'),
|
checkImg: require('../../assets/map/gangkou_index/buttom/ico21_on.png'),
|
||||||
containAuthorization: [],
|
containAuthorization: [],
|
||||||
eliminateAuthorization: []
|
eliminateAuthorization: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '人员轨迹',
|
||||||
|
dialog_width: '1200px',
|
||||||
|
check: false,
|
||||||
|
type: 'peopleTrajectory',
|
||||||
|
img: require('../../assets/map/gangkou_index/buttom/ico29.png'),
|
||||||
|
checkImg: require('../../assets/map/gangkou_index/buttom/ico29_on.png'),
|
||||||
|
containAuthorization: [],
|
||||||
|
eliminateAuthorization: []
|
||||||
}
|
}
|
||||||
// {
|
|
||||||
// label: '摄像头',
|
|
||||||
// dialog_width: '1200px',
|
|
||||||
// check: false,
|
|
||||||
// type: 'platcamera',
|
|
||||||
// img: require('../../assets/map/gangkou_index/buttom/ico26.png'),
|
|
||||||
// checkImg: require('../../assets/map/gangkou_index/buttom/ico26_on.png'),
|
|
||||||
// containAuthorization: [],
|
|
||||||
// eliminateAuthorization: []
|
|
||||||
// }
|
|
||||||
// {
|
|
||||||
// label: '车辆定位',
|
|
||||||
// dialog_width: '1200px',
|
|
||||||
// check: false,
|
|
||||||
// img: require('../../assets/map/gangkou_index/buttom/ico22.png'),
|
|
||||||
// checkImg: require('../../assets/map/gangkou_index/buttom/ico22_on.png'),
|
|
||||||
// containAuthorization: [],
|
|
||||||
// eliminateAuthorization: []
|
|
||||||
// }
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1091,7 +1094,9 @@ export default {
|
||||||
longitude: '',
|
longitude: '',
|
||||||
latitude: ''
|
latitude: ''
|
||||||
},
|
},
|
||||||
trajectoryEntityCollection: {}
|
trajectoryEntityCollection: {},
|
||||||
|
isPeopleTrajectory: false,
|
||||||
|
peopleTrajectoryValue: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -1226,12 +1231,13 @@ export default {
|
||||||
}
|
}
|
||||||
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
|
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
|
||||||
},
|
},
|
||||||
addTrajectory(point_id, corpInfoId) {
|
addTrajectory() {
|
||||||
|
this.removeTrajectory()
|
||||||
requestFN(
|
requestFN(
|
||||||
'/map/getPersonTrace',
|
'/map/getPersonTrace',
|
||||||
{
|
{
|
||||||
id: point_id,
|
id: this.peopleTrajectoryValue,
|
||||||
corpId: corpInfoId
|
corpId: this.CORP_INFO_ID
|
||||||
}
|
}
|
||||||
).then((data) => {
|
).then((data) => {
|
||||||
if (data.list) {
|
if (data.list) {
|
||||||
|
@ -1671,6 +1677,7 @@ export default {
|
||||||
this.bottomOptionsList[i].list[j].check = false
|
this.bottomOptionsList[i].list[j].check = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.isPeopleTrajectory = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clearAllBottomOptionsItemsEntityCollection() {
|
clearAllBottomOptionsItemsEntityCollection() {
|
||||||
|
@ -1757,10 +1764,22 @@ export default {
|
||||||
}
|
}
|
||||||
this.carLocArr = []
|
this.carLocArr = []
|
||||||
}
|
}
|
||||||
|
if (urlType === 'peopleTrajectory') {
|
||||||
|
this.isPeopleTrajectory = false
|
||||||
|
}
|
||||||
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') {
|
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') {
|
||||||
this.doUnSubscribe()
|
this.doUnSubscribe()
|
||||||
this.clearMqttPoint('+/UwbBQ/')
|
this.clearMqttPoint('+/UwbBQ/')
|
||||||
this.removeTrajectory()
|
this.removeTrajectory()
|
||||||
|
for (let i = 0; i < this.bottomOptionsList[pindex].list.length; i++) {
|
||||||
|
if (this.bottomOptionsList[pindex].list[i].type === 'peopleTrajectory') {
|
||||||
|
if (this.bottomOptionsList[pindex].list[i].check) {
|
||||||
|
this.bottomOptionsList[pindex].list[i].check = false
|
||||||
|
this.isPeopleTrajectory = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '21590a00ea5e462e9ee44dd332dddc26' && urlType === 'peoplePosition') {
|
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '21590a00ea5e462e9ee44dd332dddc26' && urlType === 'peoplePosition') {
|
||||||
this.clearRYDWPoint('+/UwbBQ/')
|
this.clearRYDWPoint('+/UwbBQ/')
|
||||||
|
@ -1778,6 +1797,23 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
if (urlType === 'peopleTrajectory') {
|
||||||
|
let flag = false
|
||||||
|
for (let i = 0; i < this.bottomOptionsList[pindex].list.length; i++) {
|
||||||
|
if (this.bottomOptionsList[pindex].list[i].type === 'peoplePosition') {
|
||||||
|
if (!this.bottomOptionsList[pindex].list[i].check) {
|
||||||
|
flag = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flag) {
|
||||||
|
this.$message.warning('请先选择人员定位!!!')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
this.isPeopleTrajectory = true
|
||||||
|
}
|
||||||
|
}
|
||||||
this.bottomOptionsList[pindex].list[index].check = true
|
this.bottomOptionsList[pindex].list[index].check = true
|
||||||
if (this.gangkouActive === '00004') {
|
if (this.gangkouActive === '00004') {
|
||||||
this.cfdBottomOptionsList[pindex].list[index].check = true
|
this.cfdBottomOptionsList[pindex].list[index].check = true
|
||||||
|
@ -2341,10 +2377,10 @@ export default {
|
||||||
_this.fwebsocket = new WebSocket(encodeURI(wsUrl))
|
_this.fwebsocket = new WebSocket(encodeURI(wsUrl))
|
||||||
_this.fwebsocket.onmessage = function(message) {
|
_this.fwebsocket.onmessage = function(message) {
|
||||||
console.info('接收消息')
|
console.info('接收消息')
|
||||||
const peopleList = JSON.parse(message.data).data.data
|
const peopleList = JSON.parse(message.data)
|
||||||
for (let i = 0; i < peopleList.length; i++) {
|
for (let i = 0; i < peopleList.length; i++) {
|
||||||
const item = peopleList[i]
|
const item = peopleList[i]
|
||||||
if ((!item) || (item.ts === 1)) continue
|
if ((!item)) continue
|
||||||
// 将地图上剩余的点与最新的定位人员点进行对比 更新地图上已存在的点 新增地图上之前没有的点
|
// 将地图上剩余的点与最新的定位人员点进行对比 更新地图上已存在的点 新增地图上之前没有的点
|
||||||
const index = _this.onePerLocArr.findIndex(item1 => {
|
const index = _this.onePerLocArr.findIndex(item1 => {
|
||||||
return item1.id.toString() === item.id.toString()
|
return item1.id.toString() === item.id.toString()
|
||||||
|
@ -2360,6 +2396,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
const perLoc = {
|
const perLoc = {
|
||||||
id: item.id,
|
id: item.id,
|
||||||
|
name: item.name,
|
||||||
x: x,
|
x: x,
|
||||||
y: y,
|
y: y,
|
||||||
icon_type: 'img4_0' + pointColor,
|
icon_type: 'img4_0' + pointColor,
|
||||||
|
@ -3099,9 +3136,52 @@ export default {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.people_trajectory{
|
||||||
|
position: absolute;
|
||||||
|
top: -60px;
|
||||||
|
left: 0;
|
||||||
|
width: 400px;
|
||||||
|
padding: 10px;
|
||||||
|
background-image: linear-gradient(to right, rgb(31 62 129 / 57%) 0%, rgb(17 93 255 / 40%) 50%, rgb(31 62 129 / 57%) 100%);
|
||||||
|
.search_btn{
|
||||||
|
background-color: #1563e3;
|
||||||
|
color: #fff;
|
||||||
|
border-color: #1563e3;
|
||||||
|
}
|
||||||
|
.reset_btn{
|
||||||
|
background-color: #558be5;
|
||||||
|
color: #fff;
|
||||||
|
border-color: #558be5;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
.cesium-viewer-toolbar, .cesium-viewer-fullscreenContainer, .cesium-infoBox-visible {
|
.cesium-viewer-toolbar, .cesium-viewer-fullscreenContainer, .cesium-infoBox-visible {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
.people_trajectory .el-input__inner{
|
||||||
|
background-color: #100693 !important;
|
||||||
|
border-color: #100693 !important;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
.people_trajectory_select{
|
||||||
|
background-color: #100693 !important;
|
||||||
|
border-color: #100693 !important;
|
||||||
|
}
|
||||||
|
.people_trajectory_select .el-select-dropdown__item{
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
.people_trajectory_select .el-select-dropdown__item.hover{
|
||||||
|
background-color: #2111ec !important;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
.people_trajectory_select .popper__arrow{
|
||||||
|
border-top-color: #100693 !important;
|
||||||
|
border-bottom-color: #100693 !important;
|
||||||
|
}
|
||||||
|
.people_trajectory_select .popper__arrow::after{
|
||||||
|
border-top-color: #100693 !important;
|
||||||
|
border-bottom-color: #100693 !important;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -30,6 +30,16 @@ export default class DragEntity {
|
||||||
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
||||||
disableDepthTestDistance: Number.POSITIVE_INFINITY
|
disableDepthTestDistance: Number.POSITIVE_INFINITY
|
||||||
},
|
},
|
||||||
|
label: {
|
||||||
|
text: point.name ? point.name : point.id,
|
||||||
|
font: '13px sans-serif',
|
||||||
|
pixelOffset: new Cesium.Cartesian2(0, -55),
|
||||||
|
showBackground: true,
|
||||||
|
// eslint-disable-next-line new-cap
|
||||||
|
backgroundColor: new Cesium.Color.fromCssColorString('rgba(20, 58, 142, 1)'),
|
||||||
|
backgroundPadding: new Cesium.Cartesian2(7, 5),
|
||||||
|
disableDepthTestDistance: Number.POSITIVE_INFINITY
|
||||||
|
},
|
||||||
orientation: new Cesium.VelocityOrientationProperty(point.property),
|
orientation: new Cesium.VelocityOrientationProperty(point.property),
|
||||||
|
|
||||||
monitoItems: {
|
monitoItems: {
|
||||||
|
@ -43,7 +53,9 @@ export default class DragEntity {
|
||||||
this.viewer.clock.clockRange = Cesium.ClockRange.CLAMPED
|
this.viewer.clock.clockRange = Cesium.ClockRange.CLAMPED
|
||||||
this.viewer.clock.shouldAnimate = false
|
this.viewer.clock.shouldAnimate = false
|
||||||
}
|
}
|
||||||
|
delEntity(point) {
|
||||||
|
this.viewer.entities.remove(point)
|
||||||
|
}
|
||||||
getPosition(point) {
|
getPosition(point) {
|
||||||
if (this.viewer.clock.shouldAnimate === false) {
|
if (this.viewer.clock.shouldAnimate === false) {
|
||||||
this.viewer.clock.shouldAnimate = true
|
this.viewer.clock.shouldAnimate = true
|
||||||
|
|
Loading…
Reference in New Issue