# Conflicts:
#	nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/OutController.java
This commit is contained in:
2022-10-11 18:31:09 +08:00
21 changed files with 407 additions and 176 deletions

View File

@@ -1,20 +1,5 @@
import request from '@/utils/request'
export function getAllLabels() {
return request({
url: 'api/loki/labels',
method: 'get'
})
}
export function getAllValues(label) {
return request({
url: 'api/loki/values',
method: 'post',
data: label
})
}
export function getLogData(param) {
return request({
url: 'api/loki/logs',
@@ -23,4 +8,11 @@ export function getLogData(param) {
})
}
export default { getAllLabels, getAllValues, getLogData }
export function labelsValues() {
return request({
url: 'api/loki/labels/values',
method: 'get'
})
}
export default { getLogData, labelsValues }

View File

@@ -2,37 +2,25 @@
<div class="app-container">
<div class="head-container">
<!--工具栏-->
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="标签">
<el-select v-model="logLabel" filterable placeholder="请选择标签" size="mini" @change="getValues">
<el-option
v-for="item in labelOptions"
:key="item.index"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="=">
<el-select v-model="logLabelValue" filterable placeholder="请选择标签" size="mini" @change="queryData">
<el-option
v-for="item in labelValueOptions"
:key="item.index"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="方向">
<el-radio-group v-model="direction" size="mini" @change="queryData">
<el-radio label="backward">backward</el-radio>
<el-radio label="forward">forward</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="时间范围" style="margin-left: 10px" v-show="!showOptions">
<el-date-picker
<el-form :inline="true" class="demo-form-inline" label-suffix=":" label-width="80px">
<el-form-item label="日志标签">
<el-cascader
v-model="labelAndValue"
:options="labelsOptions"
placeholder="请选择标签"
@change="queryData"
@blur="queryData"
/>
</el-form-item>
<el-form-item label="关键字">
<el-input
v-model="text"
size="mini"
placeholder="请输入内容"
clearable
/>
</el-form-item>
<el-form-item v-show="!showOptions" label="时间范围">
<el-date-picker
v-model="timeRange"
size="mini"
clearable
@@ -41,9 +29,11 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"
@change="queryData"
@blur="queryData"
/>
</el-form-item>
<el-form-item v-show="showOptions" label="时差" style="margin-left: 10px">
<el-form-item v-show="showOptions" label="时间段">
<el-select v-model="timeZoneValue" filterable placeholder="请选择标签" size="mini" @change="queryData">
<el-option
v-for="item in timeZoneOptions"
@@ -58,18 +48,13 @@
<span class="el-icon-sort" @click="changeShow" />
</el-tooltip>
</el-form-item>
</el-form>
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="关键字">
<el-input
v-model="text"
style="width: 300px"
size="mini"
placeholder="请输入内容"
clearable
/>
<el-form-item label="方向">
<el-radio-group v-model="direction" size="mini" @change="queryData">
<el-radio label="backward">backward</el-radio>
<el-radio label="forward">forward</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="条数" style="margin-left: 10px">
<el-form-item label="显示条数">
<el-input-number
v-model="limits"
size="mini"
@@ -79,7 +64,7 @@
:step="100"
/>
</el-form-item>
<el-form-item label="滚动步数" style="margin-left: 10px">
<el-form-item label="滚动步数">
<el-input-number
v-model="scrollStep"
size="mini"
@@ -105,7 +90,7 @@
<!--数据加载-->
<el-card v-else shadow="hover" style="width: 100%" class="log-warpper">
<div style="width: 100%">
<div v-for="(log, index) in logs" :key="index" >
<div v-for="(log, index) in logs" :key="index">
<div style="margin-bottom: 5px; font-size: 12px;" v-html="log[1]" />
</div>
</div>
@@ -132,10 +117,8 @@ export default {
name: 'Loki',
data() {
return {
labelOptions: [], // 标签数据
labelValueOptions: [], // 标签值
logLabel: '',
logLabelValue: '',
labelAndValue: [], // 搜索的值
labelsOptions: [], // 所有标签和对应所有值数据
timeRange: [],
text: '',
limits: 100,
@@ -214,7 +197,14 @@ export default {
window.addEventListener('scroll', this.handleScroll)
},
created() {
this.initLabelOptions()
this.initLabelsValues()
},
// 关闭定时器 - 加了缓存就必须使用deactivated
deactivated() {
// js提供的clearInterval方法用来清除定时器
console.log('定时任务销毁')
clearInterval(this.timer)
window.removeEventListener('scroll', this.handleScroll)
},
beforeDestroy() {
// js提供的clearInterval方法用来清除定时器
@@ -223,25 +213,18 @@ export default {
window.removeEventListener('scroll', this.handleScroll)
},
methods: {
initLabelOptions() { // 获取lables
logOperation.getAllLabels().then(res => {
this.labelOptions = res.data
})
},
getValues() {
this.logLabelValue = null
logOperation.getAllValues(this.logLabel).then(res => {
this.labelValueOptions = res.data
initLabelsValues() {
logOperation.labelsValues().then(res => {
this.labelsOptions = res
})
},
queryData() {
console.log(this.labelAndValue)
// 清空查询数据
this.clearParam()
if (this.logLabel !== '') { // 标签
queryParam.logLabel = this.logLabel
}
if (this.logLabelValue !== '') { // 标签值
queryParam.logLabelValue = this.logLabelValue
if (this.labelAndValue.length > 0) {
queryParam.logLabel = this.labelAndValue[0]
queryParam.logLabelValue = this.labelAndValue[1]
}
if (queryParam.logLabelValue === null) { // 判空
this.$message({
@@ -256,14 +239,8 @@ export default {
if (this.timeRange.length !== 0) { // 如果是输入时间范围
queryParam.start = (new Date(this.timeRange[0]).getTime() * 1000000).toString()
queryParam.end = (new Date(this.timeRange[1]).getTime() * 1000000).toString()
console.log(queryParam.start)
console.log('-----------------------------')
console.log(queryParam.end)
}
if (this.timeZoneValue) {
// console.log('时差:', this.timeZoneValue)
// console.log('start时间', new Date().getTime() - this.timeZoneValue)
// console.log('end时间', new Date().getTime())
const time = new Date()
queryParam.start = ((time.getTime() - this.timeZoneValue) * 1000000).toString()
queryParam.end = (time.getTime() * 1000000).toString()
@@ -275,10 +252,8 @@ export default {
queryParam.limits = this.limits
}
queryParam.direction = this.direction
console.log('最后参数:', queryParam)
var ansi_up = new AnsiUp()
logOperation.getLogData(queryParam).then(res => {
console.log('结果', res)
this.showEmpty = false
if (res.data.result.length === 1) {
this.logs = res.data.result[0].values
@@ -324,7 +299,6 @@ export default {
const scrollHeight = document.documentElement.scrollHeight// 内容高度
const bottomest = Math.ceil(scrollTop + clientHeight)
if (bottomest >= scrollHeight) {
console.log(1)
// 加载新数据
queryParam.limits = this.scrollStep
queryParam.direction = this.direction
@@ -339,7 +313,6 @@ export default {
if (zone === 0) {
zone = 3600 * 1000 * 6
}
console.log('时间差:', zone)
if (this.direction === 'backward') { // 设置时间区间
queryParam.start = (this.logs[this.logs.length - 1][0] - zone).toString()
queryParam.end = this.logs[this.logs.length - 1][0]
@@ -347,7 +320,6 @@ export default {
queryParam.start = this.logs[this.logs.length - 1][0]
queryParam.end = (parseFloat(this.logs[this.logs.length - 1][0]) + parseFloat(zone.toString())).toString()
}
console.log('滚动的参数:', queryParam)
var ansi_up = new AnsiUp()
logOperation.getLogData(queryParam).then(res => {
this.showEmpty = false
@@ -464,7 +436,7 @@ export default {
<style scoped>
.log-warpper {
word-break: break-all;
word-break: break-word;
word-wrap: break-word
}
</style>

View File

@@ -33,9 +33,9 @@
<el-table-column prop="username" label="用户名" />
<el-table-column prop="requestIp" label="IP" />
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
<el-table-column prop="description" label="描述" />
<el-table-column prop="browser" label="浏览器" />
<el-table-column prop="createTime" label="创建日期">
<el-table-column prop="description" label="描述" show-overflow-tooltip />
<el-table-column prop="browser" label="浏览器" min-width="120" show-overflow-tooltip />
<el-table-column prop="createTime" label="创建日期" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
@@ -78,7 +78,7 @@ export default {
add: false,
edit: false,
del: false,
download: true
download: false
}
},
methods: {

View File

@@ -33,8 +33,8 @@
<el-table-column prop="username" label="用户名" />
<el-table-column prop="requestIp" label="IP" />
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
<el-table-column prop="description" label="描述" />
<el-table-column prop="browser" label="浏览器" />
<el-table-column prop="description" label="描述" show-overflow-tooltip />
<el-table-column prop="browser" label="浏览器" min-width="120" show-overflow-tooltip />
<el-table-column prop="time" label="请求耗时" align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.time <= 300">{{ scope.row.time }}ms</el-tag>
@@ -72,7 +72,7 @@ export default {
add: false,
edit: false,
del: false,
download: true
download: false
}
},
methods: {

View File

@@ -83,7 +83,7 @@ export default {
add: false,
edit: false,
del: false,
download: true
download: false
}
},
methods: {

View File

@@ -42,11 +42,10 @@
>
<el-table-column type="selection" width="55" />
<el-table-column v-if="false" prop="id" label="id" />
<el-table-column prop="code" label="编码" />
<el-table-column prop="code" label="编码" min-width="130" show-overflow-tooltip />
<el-table-column prop="name" label="名称" min-width="120" show-overflow-tooltip />
<el-table-column prop="value" label="" min-width="270" show-overflow-tooltip />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="update_optname" label="修改者" />
<el-table-column v-permission="['admin','param:edit','param:del']" label="操作" width="150px" align="center">
<template slot-scope="scope">
<udOperation

View File

@@ -63,10 +63,10 @@
<!-- 操作日志 -->
<el-tab-pane label="操作日志" name="second">
<el-table v-loading="loading" :data="data" style="width: 100%;">
<el-table-column prop="description" label="行为" />
<el-table-column prop="description" label="行为" min-width="130" show-overflow-tooltip />
<el-table-column prop="requestIp" label="IP" />
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
<el-table-column prop="browser" label="浏览器" />
<el-table-column prop="browser" label="浏览器" min-width="120" show-overflow-tooltip />
<el-table-column prop="time" label="请求耗时" align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.time <= 300">{{ scope.row.time }}ms</el-tag>
@@ -76,6 +76,8 @@
</el-table-column>
<el-table-column
align="right"
min-width="120"
show-overflow-tooltip
>
<template slot="header">
<div style="display:inline-block;float: right;cursor: pointer" @click="init">创建日期<i class="el-icon-refresh" style="margin-left: 40px" /></div>