thirdlogs&blt
This commit is contained in:
parent
d4b72069f2
commit
0231e6ce32
|
|
@ -35,6 +35,15 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
blt:{
|
blt:{
|
||||||
|
list:{
|
||||||
|
name: "全部在线标签列表信息",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(
|
||||||
|
`${config.API_URL}/third/tdevice/blt/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
all:{
|
all:{
|
||||||
name: "全部在线标签列表信息",
|
name: "全部在线标签列表信息",
|
||||||
req: async function(data){
|
req: async function(data){
|
||||||
|
|
@ -64,5 +73,14 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
thirdLog:{
|
||||||
|
name: "第三方日志",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.get(
|
||||||
|
`${config.API_URL}/third/tlog/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -525,6 +525,14 @@ const routes = [
|
||||||
"icon": "el-icon-menu",
|
"icon": "el-icon-menu",
|
||||||
},
|
},
|
||||||
"component": "am/audio"
|
"component": "am/audio"
|
||||||
|
},{
|
||||||
|
"name": "blt",
|
||||||
|
"path": "/am/blt",
|
||||||
|
"meta": {
|
||||||
|
"title": "定位标签",
|
||||||
|
"icon": "el-icon-menu",
|
||||||
|
},
|
||||||
|
"component": "am/blt"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -669,15 +677,15 @@ const routes = [
|
||||||
},
|
},
|
||||||
"component": "ops/log_request"
|
"component": "ops/log_request"
|
||||||
},
|
},
|
||||||
/*{
|
{
|
||||||
"name": "monitor",
|
"name": "thirdLogs",
|
||||||
"path": "/ops/monitor",
|
"path": "/ops/thirdLogs",
|
||||||
"meta": {
|
"meta": {
|
||||||
"title": "服务监控",
|
"title": "第三方日志",
|
||||||
"icon": "el-icon-fold",
|
"icon": "el-icon-fold",
|
||||||
},
|
},
|
||||||
"component": "ops/monitor"
|
"component": "ops/thirdLogs"
|
||||||
},*/
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
<template>
|
||||||
|
<el-container>
|
||||||
|
<el-header>
|
||||||
|
<div class="left-panel">
|
||||||
|
<div class="right-panel-search">
|
||||||
|
<el-button type="primary" icon="el-icon-search" @click="upsearch">同步</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main class="nopadding">
|
||||||
|
<scTable ref="table" :apiObj="apiObj" row-key="id" @selection-change="selectionChange" stripe @resetQuery="resetQuery" >
|
||||||
|
<el-table-column type="selection" width="50"></el-table-column>
|
||||||
|
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||||
|
<el-table-column label="喇叭名称" prop="name" min-width="150"></el-table-column>
|
||||||
|
<el-table-column label="音量" prop="extra" min-width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.extra&&scope.row.extra.player">{{scope.row.extra.player.EnvVolume}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="设备sn" prop="sn" min-width="90"></el-table-column>
|
||||||
|
<el-table-column label="ip" prop="extra" min-width="90">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.extra">{{scope.row.extra.ip}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="状态" prop="extra" min-width="90">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.extra">{{scope.row.extra.online}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!--<el-table-column label="位置" prop="count_people" min-width="90"></el-table-column>-->
|
||||||
|
<el-table-column label="所在区域" prop="create_time" min-width="180"></el-table-column>
|
||||||
|
<el-table-column label="覆盖区域" prop="create_time" width="160"></el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" align="center" width="160">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button-group>
|
||||||
|
<el-button text type="primary" size="small" @click="handlePosition(scope.row)">标记位置</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
<channel-view v-if="dialogSave" ref="saveDialog" :channelType="50" :channelCode="channelCode" :channelName="channelName" @closed="dialogSave=false"></channel-view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import channelView from './vchannel_view'
|
||||||
|
export default {
|
||||||
|
name: 'blt',
|
||||||
|
components: {
|
||||||
|
channelView
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
apiObj: this.$API.third.blt.list,
|
||||||
|
dialogSave: false,
|
||||||
|
limitedVisible: false,
|
||||||
|
query: {},
|
||||||
|
selection: [],
|
||||||
|
search: {
|
||||||
|
keyword: null
|
||||||
|
},
|
||||||
|
channelCode:'',
|
||||||
|
channelName:'',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handlePosition(row){
|
||||||
|
this.channelCode = row.sn;
|
||||||
|
this.channelName = row.name;
|
||||||
|
this.dialogSave = true;
|
||||||
|
},
|
||||||
|
//表格选择后回调事件
|
||||||
|
selectionChange(selection){
|
||||||
|
this.selection = selection;
|
||||||
|
},
|
||||||
|
|
||||||
|
//搜索
|
||||||
|
upsearch(){
|
||||||
|
},
|
||||||
|
|
||||||
|
resetQuery(){
|
||||||
|
this.query = {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -833,6 +833,7 @@
|
||||||
userMaskerLayer: null,
|
userMaskerLayer: null,
|
||||||
jobDomMarkerLayer: null,
|
jobDomMarkerLayer: null,
|
||||||
riskMarkerLayer: null,//风险区域
|
riskMarkerLayer: null,//风险区域
|
||||||
|
areaMarkerLayer: null,//区域展示
|
||||||
pointMarkerLayer: null,//点位图层
|
pointMarkerLayer: null,//点位图层
|
||||||
polygonMaskerLayer: null,//危险作业
|
polygonMaskerLayer: null,//危险作业
|
||||||
cameraMaskerLayer: null,//摄像头
|
cameraMaskerLayer: null,//摄像头
|
||||||
|
|
@ -840,6 +841,7 @@
|
||||||
carsMaskerLayer: null,//车辆
|
carsMaskerLayer: null,//车辆
|
||||||
manMaskerLayer: null,//人员
|
manMaskerLayer: null,//人员
|
||||||
flyManager: null,
|
flyManager: null,
|
||||||
|
eareMarker: null,
|
||||||
dropIndex: '1',
|
dropIndex: '1',
|
||||||
countIndex: '2',
|
countIndex: '2',
|
||||||
markList: [false, false, false, false, false, false, false],
|
markList: [false, false, false, false, false, false, false],
|
||||||
|
|
@ -963,6 +965,8 @@
|
||||||
this.polygonMarkerLayers();//危险作业
|
this.polygonMarkerLayers();//危险作业
|
||||||
this.speakersMaskerLayers();//喇叭
|
this.speakersMaskerLayers();//喇叭
|
||||||
this.jobDomMarkerLayers();//危险作业图片
|
this.jobDomMarkerLayers();//危险作业图片
|
||||||
|
this.areaMarkerLayers();//危险作业图片
|
||||||
|
|
||||||
let compassControl = new jsmap.JSCompassControl({
|
let compassControl = new jsmap.JSCompassControl({
|
||||||
position: jsmap.JSControlPosition.LEFT_TOP,
|
position: jsmap.JSControlPosition.LEFT_TOP,
|
||||||
offset: {
|
offset: {
|
||||||
|
|
@ -979,7 +983,6 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
window.map.addControl(zoomControl);
|
window.map.addControl(zoomControl);
|
||||||
// this.pointMaskerLayers();//点
|
|
||||||
});
|
});
|
||||||
window.map.on('mapClickNode', event => {
|
window.map.on('mapClickNode', event => {
|
||||||
let item = event;
|
let item = event;
|
||||||
|
|
@ -1096,9 +1099,45 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
areaRowClick(data) {
|
areaRowClick(data) {
|
||||||
this.areaDetail = true;
|
let that = this;
|
||||||
console.log(data);
|
that.areaDetail = true;
|
||||||
debugger;
|
// let points = data.third_info.xx_rail.detail.polygon.points[0];
|
||||||
|
window.map.flyToPosition(new jsmap.JSPoint(114.63168864138028, 38.81254802029822, 0),{duration:1000});
|
||||||
|
|
||||||
|
/*debugger;
|
||||||
|
let tool = new jsmap.JSMapCoordTool(map);
|
||||||
|
let points = data.third_info.xx_rail.detail.polygon.points;
|
||||||
|
let position = [];*/
|
||||||
|
/*for(let i=0;i<points.length;i++){
|
||||||
|
let item = tool.screenToMapCoordinate(points[i]);
|
||||||
|
// let item = new jsmap.JSPoint(points[i].x, points[i].y, 0);
|
||||||
|
position.push(item);
|
||||||
|
}*/
|
||||||
|
/*window.map.flyToPosition ({x: points[0].x, y: points[0].y, z:0},{
|
||||||
|
duration:1000,
|
||||||
|
offset:{
|
||||||
|
rotate: 45,
|
||||||
|
tilt: 60,
|
||||||
|
range: 100
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
/*that.eareMarker = new jsmap.JSPolygonMarker({
|
||||||
|
id: data.id,//id
|
||||||
|
position: [
|
||||||
|
new jsmap.JSPoint(114.63168864138028, 38.81254802029822, 0),
|
||||||
|
new jsmap.JSPoint(114.63185023632963, 38.81241816295427, 0),
|
||||||
|
new jsmap.JSPoint(114.63160294240738, 38.812229296478634,0),
|
||||||
|
new jsmap.JSPoint(114.63143965827588, 38.81235778393449, 0),
|
||||||
|
|
||||||
|
],//坐标集合
|
||||||
|
// position:position,//坐标集合
|
||||||
|
floorId: 1,//楼层id
|
||||||
|
color: 'rgba(0,0,255,.44)',//填充颜色
|
||||||
|
strokeColor: '#2bff1d',//边线颜色
|
||||||
|
depthTest: false,//是否开启深度检测
|
||||||
|
displayCondition: new jsmap.JSDisplayCondition(0.0, 1000), //可见范围
|
||||||
|
});
|
||||||
|
that.areaMarkerLayer.addMarker(that.eareMarker);*/
|
||||||
},
|
},
|
||||||
//岗位
|
//岗位
|
||||||
getAllPost() {
|
getAllPost() {
|
||||||
|
|
@ -1299,6 +1338,16 @@
|
||||||
window.map.addLayer(that.jobDomMarkerLayer);
|
window.map.addLayer(that.jobDomMarkerLayer);
|
||||||
that.showJobDomMarkers();
|
that.showJobDomMarkers();
|
||||||
},
|
},
|
||||||
|
//点击区域显示图层
|
||||||
|
areaMarkerLayers() {
|
||||||
|
let that = this;
|
||||||
|
that.areaMarkerLayer = new jsmap.JSDomMarkerLayer({
|
||||||
|
minimumLevel: 3,
|
||||||
|
maxmumLevel: 22,
|
||||||
|
show: true
|
||||||
|
});
|
||||||
|
window.map.addLayer(that.areaMarkerLayer);
|
||||||
|
},
|
||||||
//员工标记layer
|
//员工标记layer
|
||||||
userMaskerLayers() {//图标文字
|
userMaskerLayers() {//图标文字
|
||||||
let that = this;
|
let that = this;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@
|
||||||
<el-descriptions :column="1" border size="small">
|
<el-descriptions :column="1" border size="small">
|
||||||
<el-descriptions-item label="请求接口">{{data.path}}</el-descriptions-item>
|
<el-descriptions-item label="请求接口">{{data.path}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="请求方法">{{data.method}}</el-descriptions-item>
|
<el-descriptions-item label="请求方法">{{data.method}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="状态代码">{{data.status_code}}</el-descriptions-item>
|
<el-descriptions-item v-if="data.target" label="target">{{data.target}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item v-if="data.result" label="状态代码">{{data.result}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item v-if="data.status_code" label="状态代码">{{data.status_code}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="日志id">{{data.id}}</el-descriptions-item>
|
<el-descriptions-item label="日志id">{{data.id}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="日志时间">{{data.requested_at}}</el-descriptions-item>
|
<el-descriptions-item label="日志时间">{{data.requested_at}}</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
@ -32,15 +34,17 @@
|
||||||
methods: {
|
methods: {
|
||||||
setData(data){
|
setData(data){
|
||||||
this.data = data;
|
this.data = data;
|
||||||
// debugger;
|
|
||||||
console.log(data);
|
|
||||||
let dataStr = '';
|
let dataStr = '';
|
||||||
for (let i in data) {
|
for (let i in data) {
|
||||||
let X = i + ':' + data[i]+'<br>';
|
let X='';
|
||||||
dataStr += X;
|
if(typeof data[i] ==='object'){
|
||||||
console.log(i);
|
let temp =JSON.stringify(data[i]);
|
||||||
|
X ='<span style="color: #43e669;margin-right: 6px;">'+i+'</span>'+ ':' + temp+'<br>';
|
||||||
|
}else{
|
||||||
|
X ='<span style="color: #43e669;margin-right: 6px;">'+i+'</span>'+ ':' + data[i]+'<br>';
|
||||||
|
}
|
||||||
|
dataStr += X;
|
||||||
}
|
}
|
||||||
console.log(dataStr);
|
|
||||||
this.dataStr = dataStr;
|
this.dataStr = dataStr;
|
||||||
document.getElementById("logDetail").innerHTML = dataStr;
|
document.getElementById("logDetail").innerHTML = dataStr;
|
||||||
}
|
}
|
||||||
|
|
@ -50,7 +54,7 @@
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.code {
|
.code {
|
||||||
background: #848484;
|
background: #0F0F0F;
|
||||||
padding:15px;
|
padding:15px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|
|
||||||
|
|
@ -11,16 +11,25 @@
|
||||||
<el-main class="nopadding">
|
<el-main class="nopadding">
|
||||||
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick">
|
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick">
|
||||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||||
<el-table-column label="id" prop="id" min-width="250"></el-table-column>
|
<el-table-column label="method" prop="method" min-width="80"></el-table-column>
|
||||||
|
<el-table-column label="id" prop="id" min-width="200"></el-table-column>
|
||||||
<el-table-column label="路径" prop="path" min-width="150"></el-table-column>
|
<el-table-column label="路径" prop="path" min-width="150"></el-table-column>
|
||||||
<el-table-column label="view" prop="view" min-width="150"></el-table-column>
|
<el-table-column label="view" prop="view" min-width="150"></el-table-column>
|
||||||
<el-table-column label="method" prop="method" min-width="150"></el-table-column>
|
|
||||||
|
<el-table-column label="状态码" prop="status_code" min-width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag class="ml-2" type="success" v-if="scope.row.status_code>=200&&scope.row.status_code<300">{{scope.row.status_code}}</el-tag>
|
||||||
|
<el-tag class="ml-2" type="warning" v-if="scope.row.status_code>=400&&scope.row.status_code<500">{{scope.row.status_code}}</el-tag>
|
||||||
|
<el-tag class="ml-2" type="danger" v-if="scope.row.status_code>=500">{{scope.row.status_code}}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作时间" prop="requested_at" min-width="150"></el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="100">
|
<el-table-column label="操作" align="center" width="100">
|
||||||
<el-button type="text" size="small">查看详情</el-button>
|
<el-button type="text" size="small">查看详情</el-button>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
</el-main>
|
</el-main>
|
||||||
<el-drawer v-model="infoDrawer" title="日志详情" :size="600" destroy-on-close>
|
<el-drawer v-model="infoDrawer" title="日志详情" :size="'50%'" destroy-on-close>
|
||||||
<logInfo ref="logInfo"></logInfo>
|
<logInfo ref="logInfo"></logInfo>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
<template>
|
||||||
|
<el-container>
|
||||||
|
<el-header>
|
||||||
|
<div class="left-panel">
|
||||||
|
<div class="right-panel-search">
|
||||||
|
<el-input v-model="search.id" placeholder="logId" clearable></el-input>
|
||||||
|
<el-button type="primary" icon="el-icon-search" @click="getSearch"></el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main class="nopadding">
|
||||||
|
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick">
|
||||||
|
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||||
|
<el-table-column label="method" prop="method" min-width="80"></el-table-column>
|
||||||
|
<el-table-column label="id" prop="id" min-width="200"></el-table-column>
|
||||||
|
<el-table-column label="路径" prop="path" min-width="150"></el-table-column>
|
||||||
|
<el-table-column label="target" prop="target" min-width="80"></el-table-column>
|
||||||
|
<el-table-column label="状态" prop="status_code" min-width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag class="ml-2" type="success" v-if="scope.row.result==='success'">成功</el-tag>
|
||||||
|
<el-tag class="ml-2" type="warning" v-if="scope.row.result==='fail'">报错</el-tag>
|
||||||
|
<el-tag class="ml-2" type="danger" v-if="scope.row.result==='error'">失败</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作时间" prop="requested_at" min-width="150"></el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" width="100">
|
||||||
|
<el-button type="text" size="small">查看详情</el-button>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
<el-drawer v-model="infoDrawer" title="日志详情" :size="'50%'" destroy-on-close>
|
||||||
|
<logInfo ref="logInfo"></logInfo>
|
||||||
|
</el-drawer>
|
||||||
|
|
||||||
|
</el-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import logInfo from './logInfo'
|
||||||
|
export default {
|
||||||
|
name: 'thirdLogs',
|
||||||
|
components: {
|
||||||
|
logInfo
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
apiObj: this.$API.third.thirdLog,
|
||||||
|
search:{
|
||||||
|
id:null,
|
||||||
|
},
|
||||||
|
logLists:[],
|
||||||
|
infoDrawer:false,
|
||||||
|
logDetailVisible:false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getSearch(){
|
||||||
|
this.$refs.table.reload(this.search);
|
||||||
|
},
|
||||||
|
rowClick(row){
|
||||||
|
this.infoDrawer = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.logInfo.setData(row)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.treeMain {height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;}
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue