Commit 77350747 authored by zhanglw's avatar zhanglw

车辆实时历史报警

parent 9f0099e6
...@@ -3,10 +3,10 @@ ENV = 'development' ...@@ -3,10 +3,10 @@ ENV = 'development'
# 接口地址 # 接口地址
#VUE_APP_BASE_API = 'http://8.143.203.103:9091' #VUE_APP_BASE_API = 'http://8.143.203.103:9091'
VUE_APP_BASE_API = 'http://192.168.3.216:9092' #VUE_APP_BASE_API = 'http://192.168.3.216:9092'
VUE_APP_LOCAL_API = 'http://192.168.3.216:9092' #VUE_APP_LOCAL_API = 'http://192.168.3.216:9092'
#VUE_APP_BASE_API = 'http://192.168.3.23:9092' VUE_APP_BASE_API = 'http://192.168.3.23:9092'
#VUE_APP_LOCAL_API = 'http://192.168.3.23:9092' VUE_APP_LOCAL_API = 'http://192.168.3.23:9092'
VUE_APP_LOCAL_API2 = 'http://8.143.203.103:9091/' VUE_APP_LOCAL_API2 = 'http://8.143.203.103:9091/'
VUE_APP_WS_API = 'ws://8.143.203.103:9092/webSocket' VUE_APP_WS_API = 'ws://8.143.203.103:9092/webSocket'
......
...@@ -2677,14 +2677,6 @@ var HttpReq = function(){ ...@@ -2677,14 +2677,6 @@ var HttpReq = function(){
data:data, data:data,
}) })
}, },
//查询安检报告列表
// ajReportListFind: function(param){
// return request({
// url: '/api/anjian',
// method: 'get',
// params:param,
// })
// },
ajReportListFind: function(data){ ajReportListFind: function(data){
return request({ return request({
url: '/api/anjian/getAllAnJian', url: '/api/anjian/getAllAnJian',
...@@ -3031,6 +3023,21 @@ var HttpReq = function(){ ...@@ -3031,6 +3023,21 @@ var HttpReq = function(){
params:param, params:param,
}) })
}, },
propleGetLocus: function(param){
return request({
url: '/tab/perhis/locus',
method: 'get',
params:param,
})
},
propleGetLocusout: function(param){
return request({
url: '/tab/perhis/locusout',
method: 'get',
params:param,
responseType: 'blob'
})
},
propleGetPerabnormal: function(param){ propleGetPerabnormal: function(param){
return request({ return request({
url: '/tab/perabnormal', url: '/tab/perabnormal',
...@@ -3045,6 +3052,31 @@ var HttpReq = function(){ ...@@ -3045,6 +3052,31 @@ var HttpReq = function(){
data:data, data:data,
}) })
}, },
//获取车辆历史报警
cpGetAlarmHistory: function(param){
return request({
url: '/api/alarmHistory',
method: 'get',
params:param,
})
},
//获取车辆实时报警
cpGetRealTimeAlarm: function(param){
return request({
url: '/api/realTimeAlarm',
method: 'get',
params:param,
})
},
//解除车辆实时报警
cpPutRealTimeAlarm: function(data){
return request({
url: '/api/realTimeAlarm/remove',
method: 'PUT',
data: data,
})
},
}, },
......
This diff is collapsed.
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</div> </div>
<!-- 嵌入三维地图页面 --> <!-- 嵌入三维地图页面 -->
<!-- <iframe :src="url" frameborder="0" class="mapcontainer1"></iframe>--> <!-- <iframe :src="url" frameborder="0" class="mapcontainer1"></iframe>-->
<!-- <iframe ref="iframe" src="http://192.168.3.60:18041//#/Index" frameborder="0" class="mapcontainer1"></iframe>--> <iframe ref="iframe" src="http://192.168.3.60:18041//#/Index" frameborder="0" class="mapcontainer1"></iframe>
<!-- <iframe ref="iframe" src="http://192.168.3.38:3002/#/Index" frameborder="0" class="mapcontainer1"></iframe>--> <!-- <iframe ref="iframe" src="http://192.168.3.38:3002/#/Index" frameborder="0" class="mapcontainer1"></iframe>-->
<!-- 单个车辆视频监控 --> <!-- 单个车辆视频监控 -->
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<el-table-column label="操作" align="center" fixed="right"> <el-table-column label="操作" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="link-cell">轨迹回放</span> <span class="link-cell">轨迹回放</span>
<span class="link-cell">轨迹数据</span> <span class="link-cell" @click="openPosView(scope.row)">轨迹数据</span>
<span v-show="scope.row.userid" class="link-cell" @click="openvideoView(scope.row)">视频回放</span> <span v-show="scope.row.userid" class="link-cell" @click="openvideoView(scope.row)">视频回放</span>
<span v-show="scope.row.userid" class="link-cell" @click="openPhotoView(scope.row)">相册</span> <span v-show="scope.row.userid" class="link-cell" @click="openPhotoView(scope.row)">相册</span>
</template> </template>
...@@ -58,6 +58,32 @@ ...@@ -58,6 +58,32 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 轨迹数据 -->
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible="posView" title="轨迹数据" width="900px">
<div class="head-container">
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="posDate"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-button size="mini" type="success" icon="el-icon-search" @click="loadPosList">查询</el-button>
<el-button size="mini" icon="el-icon-document" @click="downloadFilePos">导出</el-button>
</div>
<el-table :data="posList" border style="width:auto;overflow-y:auto;" height="46vh">
<el-table-column type="index" width="50" :index="indexMethod"></el-table-column>
<el-table-column prop="safetyhatmac" label="安全帽MAC" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" align="center"></el-table-column>
<el-table-column prop="x" label="X坐标" align="center"></el-table-column>
<el-table-column prop="y" label="Y坐标" align="center"></el-table-column>
<el-table-column prop="time" label="时间" align="center"></el-table-column>
</el-table>
<el-pagination :total="totalPos" :current-page="pagePos" style="margin-top: 8px;"
layout="total, prev, pager, next, sizes" @size-change="sizeChangePos" @current-change="pageChangePso"/>
</el-dialog>
<!-- 视频 --> <!-- 视频 -->
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelFormViedoRtc" :visible="videoRtc" title="实况" width="800px"> <el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelFormViedoRtc" :visible="videoRtc" title="实况" width="800px">
<video id="remoteVideo" controls style="width:100%;height:440px;"></video> <video id="remoteVideo" controls style="width:100%;height:440px;"></video>
...@@ -71,7 +97,7 @@ ...@@ -71,7 +97,7 @@
</el-dialog> </el-dialog>
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible="videoView" :title="title" width="800px"> <el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible="videoView" :title="title" width="800px">
<div class="head-container"> <div class="head-container">
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label> <label class="el-form-item-label" style="font-weight: 500;">日期</label>
<el-date-picker <el-date-picker
v-model="videoDate" v-model="videoDate"
type="date" type="date"
...@@ -131,6 +157,7 @@ export default { ...@@ -131,6 +157,7 @@ export default {
loading: false, loading: false,
videoDia: false, videoDia: false,
videoRtc: false, videoRtc: false,
posView: false,
page: 1, page: 1,
size: 10, size: 10,
total: 0, total: 0,
...@@ -148,6 +175,11 @@ export default { ...@@ -148,6 +175,11 @@ export default {
videoDate: '', videoDate: '',
videoList: [], videoList: [],
peoItem: null, peoItem: null,
posDate: [],
posList: [],
pagePos: 1,
sizePos: 10,
totalPos: 0,
} }
}, },
mounted() { mounted() {
...@@ -234,6 +266,30 @@ export default { ...@@ -234,6 +266,30 @@ export default {
}) })
}) })
}, },
indexMethod(index) {
return 1+index+this.pagePos*this.sizePos-this.sizePos;
},
loadPosList() {
let param = {
safetyhatmac: this.peoItem.safetyhatmac,
page: this.pagePos - 1,
size: this.sizePos,
};
param.daterange = undefined;
if (this.posDate && this.posDate.length) {
param.daterange = this.posDate.join(',');
}
this.$nextTick(() => {
HttpReq.truckDispatching.propleGetLocus(param).then((res) => {
if (res.code == 200) {
if(res.body){
this.posList = res.body.list;
this.totalPos = res.body.total;
}
}
})
})
},
openPhotoView(item) { openPhotoView(item) {
this.title = '相册'; this.title = '相册';
this.photoView = true; this.photoView = true;
...@@ -303,6 +359,16 @@ export default { ...@@ -303,6 +359,16 @@ export default {
let d = time ? new Date(time * 1000) : new Date(); let d = time ? new Date(time * 1000) : new Date();
return `${d.getFullYear()}/${('0' + (d.getMonth() + 1)).substr(-2)}/${('0' + (d.getDate())).substr(-2)} ${('0' + (d.getHours())).substr(-2)}:${('0' + (d.getMinutes())).substr(-2)}:${('0' + (d.getSeconds())).substr(-2)}`; return `${d.getFullYear()}/${('0' + (d.getMonth() + 1)).substr(-2)}/${('0' + (d.getDate())).substr(-2)} ${('0' + (d.getHours())).substr(-2)}:${('0' + (d.getMinutes())).substr(-2)}:${('0' + (d.getSeconds())).substr(-2)}`;
}, },
openPosView(item) {
this.posView = true;
this.peoItem = item;
this.posList = [];
this.posDate = [];
this.pagePos = 1;
this.sizePos = 10;
this.totalPos = 0;
this.loadPosList();
},
openvideoView(item) { openvideoView(item) {
this.title = '视频回放'; this.title = '视频回放';
this.videoView = true; this.videoView = true;
...@@ -340,6 +406,28 @@ export default { ...@@ -340,6 +406,28 @@ export default {
this.download(res, `人员设备历史记录${d.getFullYear()}${('0'+(d.getMonth()+1)).substr(-2)}${('0'+(d.getDate())).substr(-2)}`, 'xlsx') this.download(res, `人员设备历史记录${d.getFullYear()}${('0'+(d.getMonth()+1)).substr(-2)}${('0'+(d.getDate())).substr(-2)}`, 'xlsx')
}) })
}, },
downloadFilePos() {
var loading = this.$loading({
lock: true,
text: '请稍后.....',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
let param = {
safetyhatmac: this.peoItem.safetyhatmac,
page: this.pagePos - 1,
size: this.sizePos,
};
param.daterange = undefined;
if (this.posDate && this.posDate.length) {
param.daterange = this.posDate.join(',');
}
HttpReq.truckDispatching.propleGetLocusout(param).then((res) => {
loading.close();
let d = new Date();
this.download(res, `轨迹数据${d.getFullYear()}${('0'+(d.getMonth()+1)).substr(-2)}${('0'+(d.getDate())).substr(-2)}`, 'xlsx')
})
},
cancelFormViedoRtc(){ cancelFormViedoRtc(){
this.videoRtc = false; this.videoRtc = false;
if(this.videoRtcPlayer){ if(this.videoRtcPlayer){
...@@ -354,6 +442,7 @@ export default { ...@@ -354,6 +442,7 @@ export default {
this.photoView = false; this.photoView = false;
this.videoView = false; this.videoView = false;
this.videoDia = false; this.videoDia = false;
this.posView = false;
}, },
// 点击搜索 // 点击搜索
toSearch() { toSearch() {
...@@ -369,11 +458,20 @@ export default { ...@@ -369,11 +458,20 @@ export default {
this.page = e this.page = e
this.loadData() this.loadData()
}, },
pageChangePso(e) {
this.pagePos = e
this.loadPosList()
},
sizeChange(e) { sizeChange(e) {
this.page = 1 this.page = 1
this.size = e this.size = e
this.loadData() this.loadData()
}, },
sizeChangePos(e) {
this.pagePos = 1
this.sizePos = e
this.loadPosList()
},
priorP(){ priorP(){
this.pageP -= 1; this.pageP -= 1;
this.loadDataP() this.loadDataP()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment