初始化提交
This commit is contained in:
10
nladmin-ui/src/views/lucene/api/log.js
Normal file
10
nladmin-ui/src/views/lucene/api/log.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function delAll(id) {
|
||||
return request({
|
||||
url: 'api/lucene/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export default { delAll }
|
||||
31
nladmin-ui/src/views/lucene/api/lucene.js
Normal file
31
nladmin-ui/src/views/lucene/api/lucene.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getLogData(param) {
|
||||
return request({
|
||||
url: 'api/lucene/getAll',
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
|
||||
export function getTagName() {
|
||||
return request({
|
||||
url: 'api/lucene/getTagName',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
export function deleteAllLog() {
|
||||
return request({
|
||||
url: 'api/lucene/deleteAllLog',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
export function labelsValues() {
|
||||
return request({
|
||||
url: 'api/loki/labels/values',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export default { getLogData, labelsValues, getTagName, deleteAllLog }
|
||||
172
nladmin-ui/src/views/lucene/index.vue
Normal file
172
nladmin-ui/src/views/lucene/index.vue
Normal file
@@ -0,0 +1,172 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="head-container">
|
||||
<el-form
|
||||
:inline="true"
|
||||
label-position="right"
|
||||
label-width="=100px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item :label="$t('Log.label')">
|
||||
<el-select
|
||||
v-model="query.label"
|
||||
clearable
|
||||
size="mini"
|
||||
:placeholder="$t('Log.label')"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tagList"
|
||||
:label="item"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('Log.level')">
|
||||
<el-select
|
||||
v-model="query.level"
|
||||
clearable
|
||||
size="mini"
|
||||
:placeholder="$t('Log.level')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in levelOptions"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('Log.search')">
|
||||
<el-input
|
||||
v-model="query.message"
|
||||
clearable
|
||||
size="mini"
|
||||
:placeholder="$t('Log.content')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('Log.link_id')">
|
||||
<el-input
|
||||
v-model="query.tlogTraceId"
|
||||
clearable
|
||||
size="mini"
|
||||
:placeholder="$t('Log.link_id_msg')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('Log.time')">
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
:range-separator="$t('Log.to')"
|
||||
:start-placeholder="$t('Log.start_time')"
|
||||
:end-placeholder="$t('Log.end_time')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="mini" @click="queryData">
|
||||
{{ $t('common.Query') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!--表格渲染-->
|
||||
<el-card shadow="hover" style="width: 100%" class="log-warpper">
|
||||
<div style="width: 100%">
|
||||
<div v-for="(log, index) in logs" :key="index">
|
||||
<div style="margin-bottom: 5px; font-size: 14px;" v-html="log" />
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<!-- 分页 -->
|
||||
<el-pagination
|
||||
:page-sizes="[100, 500, 1000]"
|
||||
:page-size.sync="query.size"
|
||||
:total="query.total"
|
||||
:current-page.sync="query.page"
|
||||
style="margin-top: 8px;"
|
||||
layout="total, prev, pager, next, sizes"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import luceneOperation from '@/views/lucene/api/lucene'
|
||||
import { default as AnsiUp } from 'ansi_up'
|
||||
export default {
|
||||
name: 'LuceneLog',
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'param:add'],
|
||||
edit: ['admin', 'param:edit'],
|
||||
del: ['admin', 'param:del']
|
||||
},
|
||||
levelOptions: [{
|
||||
value: 'DEBUG',
|
||||
label: 'DEBUG'
|
||||
}, {
|
||||
value: 'INFO',
|
||||
label: 'INFO'
|
||||
}, {
|
||||
value: 'ERROR',
|
||||
label: 'ERROR'
|
||||
}, {
|
||||
value: 'WARN',
|
||||
label: 'WARN'
|
||||
}],
|
||||
rules: {},
|
||||
logs: [],
|
||||
tagList: [],
|
||||
query: {
|
||||
tlogTraceId: '',
|
||||
message: '',
|
||||
page: 0,
|
||||
size: 100,
|
||||
total: 0,
|
||||
createTime: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.queryData()
|
||||
this.getTagList()
|
||||
},
|
||||
methods: {
|
||||
handleSizeChange(val) {
|
||||
this.query.size = val
|
||||
this.queryData()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.query.page = val
|
||||
this.queryData()
|
||||
},
|
||||
getTagList() {
|
||||
luceneOperation.getTagName().then(res => {
|
||||
this.tagList = res
|
||||
})
|
||||
},
|
||||
queryData() {
|
||||
if (this.query.createTime) {
|
||||
this.query.startTime = this.query.createTime[0]
|
||||
this.query.endTime = this.query.createTime[1]
|
||||
}
|
||||
luceneOperation.getLogData(this.query).then(res => {
|
||||
this.logs = [] // 清空
|
||||
var ansi_up = new AnsiUp()
|
||||
// 数据初始化
|
||||
for (const i in res.content) {
|
||||
this.logs[i] = ansi_up.ansi_to_html(res.content[i])
|
||||
}
|
||||
// this.logs = res.content
|
||||
this.query.total = res.totalElements
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
113
nladmin-ui/src/views/lucene/search.vue
Normal file
113
nladmin-ui/src/views/lucene/search.vue
Normal file
@@ -0,0 +1,113 @@
|
||||
<template>
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<el-input
|
||||
v-model="query.device_code"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="请输入你要搜索的设备号"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
<el-input
|
||||
v-model="query.method"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="请输入你要搜索的方法名"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
<el-input
|
||||
v-model="query.status_code"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="请输入你要搜索的状态码"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
<el-input
|
||||
v-model="query.requestparam"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="请输入你要搜索的请求参数"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
<el-input
|
||||
v-model="query.responseparam"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="请输入你要搜索的返回参数"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
<el-input
|
||||
v-model="query.blurry"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="请输入你要搜索的内容详情"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
<!--
|
||||
<date-range-picker v-model="query.createTime" class="date-item" />
|
||||
-->
|
||||
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="datetimerange"
|
||||
format="yyyy-MM-dd HH:mm:ss"
|
||||
:picker-options="pickerOptions"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
align="right"
|
||||
/>
|
||||
<rrOperation />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { header } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
|
||||
export default {
|
||||
components: { rrOperation },
|
||||
mixins: [header()],
|
||||
|
||||
data() {
|
||||
return {
|
||||
pickerOptions: {
|
||||
shortcuts: [{
|
||||
text: '最近一周',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}, {
|
||||
text: '最近一个月',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}, {
|
||||
text: '最近三个月',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}]
|
||||
},
|
||||
value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
|
||||
value2: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
63
nladmin-ui/src/views/lucene/time.vue
Normal file
63
nladmin-ui/src/views/lucene/time.vue
Normal file
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!--
|
||||
<date-range-picker v-model="query.createTime" class="date-item" />
|
||||
-->
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="datetimerange"
|
||||
:picker-options="pickerOptions"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
align="right"
|
||||
/>
|
||||
<rrOperation />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { header } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
|
||||
export default {
|
||||
components: { rrOperation },
|
||||
mixins: [header()],
|
||||
|
||||
data() {
|
||||
return {
|
||||
pickerOptions: {
|
||||
shortcuts: [{
|
||||
text: '最近一周',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}, {
|
||||
text: '最近一个月',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}, {
|
||||
text: '最近三个月',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}]
|
||||
},
|
||||
value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
|
||||
value2: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user