|
|
export default {
|
|
|
name: 'esDataIndex',
|
|
|
template: '',
|
|
|
components: {
|
|
|
'esDataDetail': Vue.defineAsyncComponent(
|
|
|
() => myImport('views/esData/esDataDetail/index')
|
|
|
)
|
|
|
},
|
|
|
props: [],
|
|
|
setup(props, {attrs, slots, emit}) {
|
|
|
const {proxy} = Vue.getCurrentInstance();
|
|
|
let height = Vue.ref(window.innerHeight);
|
|
|
let dateTime=Vue.ref([])
|
|
|
let search = Vue.ref({
|
|
|
program:'',
|
|
|
sortBy:'dbTime',
|
|
|
scopeBy:'dbTimeStr.keyword',
|
|
|
keyword: '',
|
|
|
type:'syslog',
|
|
|
pageNum: 1,
|
|
|
pageSize: 20,
|
|
|
dateTime:[],
|
|
|
resType:'',
|
|
|
});
|
|
|
let dialog = Vue.ref({
|
|
|
title : "日志详情",
|
|
|
show:false,
|
|
|
esId : ''
|
|
|
});
|
|
|
//表格字段
|
|
|
let tableData = Vue.ref({
|
|
|
count:0,
|
|
|
dataList: [],
|
|
|
columns: [
|
|
|
{
|
|
|
prop: 'logDate',
|
|
|
label: '日志时间',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '250',
|
|
|
},
|
|
|
{
|
|
|
prop: 'resName',
|
|
|
label: '资源名称',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '250'
|
|
|
},
|
|
|
{
|
|
|
prop: 'resTypeName',
|
|
|
label: '资源类型',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
}, {
|
|
|
prop: 'host',
|
|
|
label: 'IP地址',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
}, {
|
|
|
prop: 'type',
|
|
|
label: '日志来源',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
},
|
|
|
{
|
|
|
prop: 'program',
|
|
|
label: '日志类型',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
},
|
|
|
{
|
|
|
prop: 'message',
|
|
|
label: '日志内容',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
},
|
|
|
]
|
|
|
})
|
|
|
let resTypeArr = Vue.ref([]);
|
|
|
let getResType = (arr) => {
|
|
|
var types = arr.map(function (v) {
|
|
|
return v.id;
|
|
|
});
|
|
|
resTypeArr.value = types;
|
|
|
search.value.resType=resTypeArr.value.join(',');
|
|
|
// getDataList();
|
|
|
}
|
|
|
//获取时间点 转年月日的方法
|
|
|
const getDateTime=(newDate)=>{
|
|
|
let dateTime='';
|
|
|
let year=newDate.getFullYear();//获取当前年
|
|
|
let month1=(newDate.getMonth()+1)+'';
|
|
|
let month=timeFormat(month1);//获取当前月
|
|
|
let day=timeFormat(newDate.getDate());//获取当前日
|
|
|
let hours=timeFormat(newDate.getHours()+'');//获取当前时
|
|
|
let minutes=timeFormat(newDate.getMinutes()+'');//获取当前分
|
|
|
let seconds=timeFormat(newDate.getSeconds()+'');//获取当前秒
|
|
|
dateTime= year+'-'+month+'-'+day;//' '+hours+':'+minutes+':'+seconds;
|
|
|
return dateTime;
|
|
|
}
|
|
|
//转换个位数为 00
|
|
|
let timeFormat =(number)=> {
|
|
|
return number.length == 1 ? ('0' + number) : number
|
|
|
}
|
|
|
// 获取列表
|
|
|
let getDataList = () => {
|
|
|
let nowDate=getDateTime(new Date());
|
|
|
let startTime=(search.value.dateTime && search.value.dateTime[0])?search.value.dateTime[0]:'';
|
|
|
let endTime=(search.value.dateTime && search.value.dateTime[1])?search.value.dateTime[1]:'';
|
|
|
let startDateStr=startTime?startTime.split(' ')[0]:'';
|
|
|
let endDateStr=endTime?endTime.split(' ')[0]:'';
|
|
|
let dateStr='';
|
|
|
if(search.value.dateTime && search.value.dateTime.length>0){
|
|
|
if(startDateStr!=endDateStr){
|
|
|
dateStr='log-syslog-search';
|
|
|
}else{
|
|
|
dateStr='log-syslog_'+startDateStr;
|
|
|
|
|
|
}
|
|
|
}else {
|
|
|
dateStr='log-syslog_'+nowDate;
|
|
|
}
|
|
|
|
|
|
let params={
|
|
|
indexName:dateStr,
|
|
|
pageNum: search.value.pageNum,
|
|
|
pageSize: search.value.pageSize,
|
|
|
type:search.value.type,
|
|
|
sortBy:search.value.sortBy,
|
|
|
scopeBy:search.value.scopeBy,
|
|
|
startTime:startTime,
|
|
|
endTime: endTime,
|
|
|
resType:search.value.resType,
|
|
|
param:{}
|
|
|
}
|
|
|
if(search.value.keyword){
|
|
|
params.param={
|
|
|
'resName.keyword': search.value.keyword,
|
|
|
'host.keyword':search.value.keyword,
|
|
|
'message.keyword':search.value.keyword,
|
|
|
}
|
|
|
}
|
|
|
if(search.value.program){
|
|
|
params['param']['program.keyword']=search.value.program;
|
|
|
}
|
|
|
proxy.$http.post(`/api-web/esData/list`, params, function (res) {
|
|
|
if (res && res.object) {
|
|
|
let dataList=res.object.content;
|
|
|
let arr=[];
|
|
|
dataList.map(item=>{
|
|
|
arr.push(item[0])
|
|
|
})
|
|
|
tableData.value.dataList = arr;
|
|
|
tableData.value.count = parseInt(res.object.total);
|
|
|
} else {
|
|
|
tableData.value.dataList = [];
|
|
|
tableData.value.count = 0;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
let loaddata = ({page, limit}) => {
|
|
|
search.value.pageNum = page;
|
|
|
search.value.pageSize = limit;
|
|
|
getDataList();
|
|
|
}
|
|
|
|
|
|
let hideDialog = (flg) => {
|
|
|
dialog.value.show = flg;
|
|
|
}
|
|
|
|
|
|
// 处理弹框
|
|
|
let handle = (row) =>{
|
|
|
hideDialog(true);
|
|
|
dialog.value.detail = row;
|
|
|
}
|
|
|
|
|
|
//查看详情
|
|
|
let handleView = (row) =>{
|
|
|
handle(row);
|
|
|
}
|
|
|
//查看资源详情
|
|
|
let goResDetail=(resId,resName,resType)=>{
|
|
|
proxy.$global.openDetail(resId, resType, proxy);
|
|
|
|
|
|
}
|
|
|
//日志类型数据
|
|
|
let logTypeData=Vue.ref([]);
|
|
|
let getLogType=()=>{
|
|
|
proxy.$http.post(`/api-web/manage/ddic/findSucDdics/LOG_SOURCE_TYPE`, {}, function (res) {
|
|
|
if (res && res.data) {
|
|
|
logTypeData.value = res.data;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
// 挂载完
|
|
|
Vue.onMounted(() => {
|
|
|
getDataList();
|
|
|
getLogType();
|
|
|
})
|
|
|
|
|
|
|
|
|
return {
|
|
|
logTypeData,
|
|
|
getLogType,
|
|
|
dateTime,
|
|
|
height,
|
|
|
search,
|
|
|
dialog,
|
|
|
hideDialog,
|
|
|
handle,
|
|
|
loaddata,
|
|
|
tableData,
|
|
|
getDataList,
|
|
|
resTypeArr,
|
|
|
getResType,
|
|
|
handleView,
|
|
|
goResDetail,
|
|
|
getDateTime
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|