thirdlogs&blt
This commit is contained in:
parent
d4b72069f2
commit
0231e6ce32
|
@ -35,6 +35,15 @@ export default {
|
|||
|
||||
},
|
||||
blt:{
|
||||
list:{
|
||||
name: "全部在线标签列表信息",
|
||||
req: async function(data){
|
||||
return await http.post(
|
||||
`${config.API_URL}/third/tdevice/blt/`,
|
||||
data
|
||||
);
|
||||
}
|
||||
},
|
||||
all:{
|
||||
name: "全部在线标签列表信息",
|
||||
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",
|
||||
},
|
||||
"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"
|
||||
},
|
||||
/*{
|
||||
"name": "monitor",
|
||||
"path": "/ops/monitor",
|
||||
{
|
||||
"name": "thirdLogs",
|
||||
"path": "/ops/thirdLogs",
|
||||
"meta": {
|
||||
"title": "服务监控",
|
||||
"title": "第三方日志",
|
||||
"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,
|
||||
jobDomMarkerLayer: null,
|
||||
riskMarkerLayer: null,//风险区域
|
||||
areaMarkerLayer: null,//区域展示
|
||||
pointMarkerLayer: null,//点位图层
|
||||
polygonMaskerLayer: null,//危险作业
|
||||
cameraMaskerLayer: null,//摄像头
|
||||
|
@ -840,6 +841,7 @@
|
|||
carsMaskerLayer: null,//车辆
|
||||
manMaskerLayer: null,//人员
|
||||
flyManager: null,
|
||||
eareMarker: null,
|
||||
dropIndex: '1',
|
||||
countIndex: '2',
|
||||
markList: [false, false, false, false, false, false, false],
|
||||
|
@ -963,6 +965,8 @@
|
|||
this.polygonMarkerLayers();//危险作业
|
||||
this.speakersMaskerLayers();//喇叭
|
||||
this.jobDomMarkerLayers();//危险作业图片
|
||||
this.areaMarkerLayers();//危险作业图片
|
||||
|
||||
let compassControl = new jsmap.JSCompassControl({
|
||||
position: jsmap.JSControlPosition.LEFT_TOP,
|
||||
offset: {
|
||||
|
@ -979,7 +983,6 @@
|
|||
}
|
||||
});
|
||||
window.map.addControl(zoomControl);
|
||||
// this.pointMaskerLayers();//点
|
||||
});
|
||||
window.map.on('mapClickNode', event => {
|
||||
let item = event;
|
||||
|
@ -1096,9 +1099,45 @@
|
|||
},
|
||||
methods: {
|
||||
areaRowClick(data) {
|
||||
this.areaDetail = true;
|
||||
console.log(data);
|
||||
debugger;
|
||||
let that = this;
|
||||
that.areaDetail = true;
|
||||
// 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() {
|
||||
|
@ -1299,6 +1338,16 @@
|
|||
window.map.addLayer(that.jobDomMarkerLayer);
|
||||
that.showJobDomMarkers();
|
||||
},
|
||||
//点击区域显示图层
|
||||
areaMarkerLayers() {
|
||||
let that = this;
|
||||
that.areaMarkerLayer = new jsmap.JSDomMarkerLayer({
|
||||
minimumLevel: 3,
|
||||
maxmumLevel: 22,
|
||||
show: true
|
||||
});
|
||||
window.map.addLayer(that.areaMarkerLayer);
|
||||
},
|
||||
//员工标记layer
|
||||
userMaskerLayers() {//图标文字
|
||||
let that = this;
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
<el-descriptions :column="1" border size="small">
|
||||
<el-descriptions-item label="请求接口">{{data.path}}</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="日志时间">{{data.requested_at}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
@ -32,15 +34,17 @@
|
|||
methods: {
|
||||
setData(data){
|
||||
this.data = data;
|
||||
// debugger;
|
||||
console.log(data);
|
||||
let dataStr = '';
|
||||
for (let i in data) {
|
||||
let X = i + ':' + data[i]+'<br>';
|
||||
let X='';
|
||||
if(typeof data[i] ==='object'){
|
||||
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(i);
|
||||
}
|
||||
console.log(dataStr);
|
||||
this.dataStr = dataStr;
|
||||
document.getElementById("logDetail").innerHTML = dataStr;
|
||||
}
|
||||
|
@ -50,7 +54,7 @@
|
|||
|
||||
<style scoped>
|
||||
.code {
|
||||
background: #848484;
|
||||
background: #0F0F0F;
|
||||
padding:15px;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
|
|
|
@ -11,16 +11,25 @@
|
|||
<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="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="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-button type="text" size="small">查看详情</el-button>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</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>
|
||||
</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